/** * @license Angular v16.2.9 * (c) 2010-2022 Google LLC. https://angular.io/ * License: MIT */ import { DestroyRef } from '@angular/core'; import { Injector } from '@angular/core'; import { MonoTypeOperatorFunction } from 'rxjs'; import { Observable } from 'rxjs'; import { Signal } from '@angular/core'; import { Subscribable } from 'rxjs'; /** * Operator which completes the Observable when the calling context (component, directive, service, * etc) is destroyed. * * @param destroyRef optionally, the `DestroyRef` representing the current context. This can be * passed explicitly to use `takeUntilDestroyed` outside of an [injection * context](guide/dependency-injection-context). Otherwise, the current `DestroyRef` is injected. * * @developerPreview */ export declare function takeUntilDestroyed(destroyRef?: DestroyRef): MonoTypeOperatorFunction; /** * Exposes the value of an Angular `Signal` as an RxJS `Observable`. * * The signal's value will be propagated into the `Observable`'s subscribers using an `effect`. * * `toObservable` must be called in an injection context unless an injector is provided via options. * * @developerPreview */ export declare function toObservable(source: Signal, options?: ToObservableOptions): Observable; /** * Options for `toObservable`. * * @developerPreview */ export declare interface ToObservableOptions { /** * The `Injector` to use when creating the underlying `effect` which watches the signal. * * If this isn't specified, the current [injection context](guide/dependency-injection-context) * will be used. */ injector?: Injector; } /** * Get the current value of an `Observable` as a reactive `Signal`. * * `toSignal` returns a `Signal` which provides synchronous reactive access to values produced * by the given `Observable`, by subscribing to that `Observable`. The returned `Signal` will always * have the most recent value emitted by the subscription, and will throw an error if the * `Observable` errors. * * Before the `Observable` emits its first value, the `Signal` will return `undefined`. To avoid * this, either an `initialValue` can be passed or the `requireSync` option enabled. * * By default, the subscription will be automatically cleaned up when the current [injection * context](guide/dependency-injection-context) is destroyed. For example, when `toObservable` is * called during the construction of a component, the subscription will be cleaned up when the * component is destroyed. If an [injection context](/guide/dependency-injection-context) is not * available, an explicit `Injector` can be passed instead. * * If the subscription should persist until the `Observable` itself completes, the `manualCleanup` * option can be specified instead, which disables the automatic subscription teardown. No injection * context is needed in this configuration as well. */ export declare function toSignal(source: Observable | Subscribable): Signal; /** * Get the current value of an `Observable` as a reactive `Signal`. * * `toSignal` returns a `Signal` which provides synchronous reactive access to values produced * by the given `Observable`, by subscribing to that `Observable`. The returned `Signal` will always * have the most recent value emitted by the subscription, and will throw an error if the * `Observable` errors. * * Before the `Observable` emits its first value, the `Signal` will return the configured * `initialValue`, or `undefined` if no `initialValue` is provided. If the `Observable` is * guaranteed to emit synchronously, then the `requireSync` option can be passed instead. * * By default, the subscription will be automatically cleaned up when the current [injection * context](/guide/dependency-injection-context) is destroyed. For example, when `toObservable` is * called during the construction of a component, the subscription will be cleaned up when the * component is destroyed. If an injection context is not available, an explicit `Injector` can be * passed instead. * * If the subscription should persist until the `Observable` itself completes, the `manualCleanup` * option can be specified instead, which disables the automatic subscription teardown. No injection * context is needed in this configuration as well. * * @developerPreview */ export declare function toSignal(source: Observable | Subscribable, options?: ToSignalOptions & { requireSync?: false; }): Signal; /** * Get the current value of an `Observable` as a reactive `Signal`. * * `toSignal` returns a `Signal` which provides synchronous reactive access to values produced * by the given `Observable`, by subscribing to that `Observable`. The returned `Signal` will always * have the most recent value emitted by the subscription, and will throw an error if the * `Observable` errors. * * Before the `Observable` emits its first value, the `Signal` will return the configured * `initialValue`. If the `Observable` is guaranteed to emit synchronously, then the `requireSync` * option can be passed instead. * * By default, the subscription will be automatically cleaned up when the current [injection * context](guide/dependency-injection-context) is destroyed. For example, when `toObservable` is * called during the construction of a component, the subscription will be cleaned up when the * component is destroyed. If an [injection context](/guide/dependency-injection-context) is not * available, an explicit `Injector` can be passed instead. * * If the subscription should persist until the `Observable` itself completes, the `manualCleanup` * option can be specified instead, which disables the automatic subscription teardown. No injection * context is needed in this configuration as well. * * @developerPreview */ export declare function toSignal(source: Observable | Subscribable, options: ToSignalOptions & { initialValue: U; requireSync?: false; }): Signal; /** * Get the current value of an `Observable` as a reactive `Signal`. * * `toSignal` returns a `Signal` which provides synchronous reactive access to values produced * by the given `Observable`, by subscribing to that `Observable`. The returned `Signal` will always * have the most recent value emitted by the subscription, and will throw an error if the * `Observable` errors. * * With `requireSync` set to `true`, `toSignal` will assert that the `Observable` produces a value * immediately upon subscription. No `initialValue` is needed in this case, and the returned signal * does not include an `undefined` type. * * By default, the subscription will be automatically cleaned up when the current [injection * context](/guide/dependency-injection-context) is destroyed. For example, when `toObservable` is * called during the construction of a component, the subscription will be cleaned up when the * component is destroyed. If an injection context is not available, an explicit `Injector` can be * passed instead. * * If the subscription should persist until the `Observable` itself completes, the `manualCleanup` * option can be specified instead, which disables the automatic subscription teardown. No injection * context is needed in this configuration as well. * * @developerPreview */ export declare function toSignal(source: Observable | Subscribable, options: ToSignalOptions & { requireSync: true; }): Signal; /** * Options for `toSignal`. * * @publicApi */ export declare interface ToSignalOptions { /** * Initial value for the signal produced by `toSignal`. * * This will be the value of the signal until the observable emits its first value. */ initialValue?: T; /** * Whether to require that the observable emits synchronously when `toSignal` subscribes. * * If this is `true`, `toSignal` will assert that the observable produces a value immediately upon * subscription. Setting this option removes the need to either deal with `undefined` in the * signal type or provide an `initialValue`, at the cost of a runtime error if this requirement is * not met. */ requireSync?: boolean; /** * `Injector` which will provide the `DestroyRef` used to clean up the Observable subscription. * * If this is not provided, a `DestroyRef` will be retrieved from the current [injection * context](/guide/dependency-injection-context), unless manual cleanup is requested. */ injector?: Injector; /** * Whether the subscription should be automatically cleaned up (via `DestroyRef`) when * `toObservable`'s creation context is destroyed. * * If manual cleanup is enabled, then `DestroyRef` is not used, and the subscription will persist * until the `Observable` itself completes. */ manualCleanup?: boolean; } export { }