function switchMapBy<T, O extends ObservableInput<any>>(property: string, project: (value: T, index: number) => O): OperatorFunction<T, ObservedValueOf<O>>function exhaustMapBy<T, O extends ObservableInput<any>>(property: string, project: (value: T, index: number) => O): OperatorFunction<T, ObservedValueOf<O>>