// @strict: true // Repro from #33131 declare function of(a: T): Observable; declare function from>(input: O): Observable>; type ObservedValueOf = O extends ObservableInput ? T : never; interface Subscribable { subscribe(next?: (value: T) => void, error?: (error: any) => void, complete?: () => void): void; } type ObservableInput = Subscribable | Subscribable; declare class Observable implements Subscribable { subscribe(next?: (value: T) => void, error?: (error: any) => void, complete?: () => void): void; } function asObservable(input: string | ObservableInput): Observable { return typeof input === 'string' ? of(input) : from(input) }