import { type Observable } from "rxjs"; /** * Per-field observable derivation factory. Enforces the ยง19.4 invariant: * * - `distinctUntilChanged` โ€” prevents re-emission storms when the upstream * state object ticks but the field a consumer cares about hasn't changed. * Without this, every keystroke would re-render every async-pipe binding * in the consumer's template even when nothing changed for that binding. * - `shareReplay({ bufferSize: 1, refCount: true })` โ€” guarantees that * multiple subscribers (multiple `async` pipes in a template, e.g. * `*ngIf="isLoading$ | async"` and `[disabled]="isLoading$ | async"`) * share a single upstream subscription. `refCount: true` is non-obvious * but essential: without it, the inner subscription survives after the * last subscriber unmounts, leaking the chain back to `state$`. * * Every public observable on {@link AIAutocompleteController} must go through * this factory โ€” no exceptions. * * @internal */ export declare function deriveField(source$: Observable, selector: (value: T) => R, equalityFn?: (a: R, b: R) => boolean): Observable; //# sourceMappingURL=observables.d.ts.map