import { Injector, type Signal } from '@angular/core'; import { type ObservableInput, type OperatorFunction } from 'rxjs'; export type ObservableSignalInput = ObservableInput | Signal; export type DerivedFromOptions = { readonly injector?: Injector; readonly initialValue?: T | null; }; export type InferObservableSignalOutput = { [K in keyof I]: I[K] extends Signal ? S : I[K] extends ObservableInput ? O : never; }; /** * So that we can have `fn([Observable, Signal]): Observable<[A, B]>` */ type ObservableSignalInputTuple = { [K in keyof T]: ObservableSignalInput | (() => T[K]); }; export declare function derivedFrom(sources: readonly [...ObservableSignalInputTuple], operator?: OperatorFunction, options?: DerivedFromOptions): Signal; export declare function derivedFrom(sources: readonly [...ObservableSignalInputTuple], options?: DerivedFromOptions): Signal; export declare function derivedFrom(sources: ObservableSignalInputTuple, operator?: OperatorFunction, options?: DerivedFromOptions): Signal; export declare function derivedFrom(sources: ObservableSignalInputTuple, options?: DerivedFromOptions): Signal; export {};