import { Injector, Signal, ValueEqualityFn, WritableSignal } from '@angular/core'; import { Path, PathValue, StateStore } from '@emuanalytics/flow-rdf-core'; export interface FlowSignalOptions { /** * Name of signal to use in debugging. */ name?: string; /** * If `true`, the signal will be writable and changes will be propagated to the state store. */ writable?: boolean; /** * `Injector` which will provide the `DestroyRef` used to clean up the toStream subscription. * * If this is not provided, a `DestroyRef` will be retrieved from the current [injection * context](guide/di/dependency-injection-context), unless manual cleanup is requested. */ injector?: Injector; /** * A comparison function which defines equality for values emitted by `toStream`. * * Equality comparisons are executed against the initial value if one is provided. */ equal?: ValueEqualityFn; } export declare function flowSignal>(state: TState, path: P): Signal>; export declare function flowSignal>(state: TState, path: P, options: FlowSignalOptions> & { writable?: false; }): Signal>; export declare function flowSignal>(state: TState, path: P, options: FlowSignalOptions> & { writable: true; }): WritableSignal>; export declare function flowSignal(state: TState, path: (state: TState) => R): Signal; export declare function flowSignal(state: TState, path: (state: TState) => R, options: FlowSignalOptions & { writable?: false; }): Signal;