import { OperatorFunction, ObservableNotification, ValueFromNotification } from '../types'; /** * Converts an Observable of {@link ObservableNotification} objects into the emissions * that they represent. * * Unwraps {@link ObservableNotification} objects as actual `next`, * `error` and `complete` emissions. The opposite of {@link materialize}. * * ![](dematerialize.png) * * `dematerialize` is assumed to operate an Observable that only emits * {@link ObservableNotification} objects as `next` emissions, and does not emit any * `error`. Such Observable is the output of a `materialize` operation. Those * notifications are then unwrapped using the metadata they contain, and emitted * as `next`, `error`, and `complete` on the output Observable. * * Use this operator in conjunction with {@link materialize}. * * ## Example * * Convert an Observable of Notifications to an actual Observable * * ```ts * import { of } from 'rxjs'; * import { dematerialize } from 'rxjs/operators'; * * const notifA = { kind: 'N', value: 'A' }; * const notifB = { kind: 'N', value: 'B' }; * const notifE = { kind: 'E', error: new TypeError('x.toUpperCase is not a function') } * * const materialized = of(notifA, notifB, notifE); * * const upperCase = materialized.pipe(dematerialize()); * upperCase.subscribe({ * next: x => console.log(x), * error: e => console.error(e) * }); * * // Results in: * // A * // B * // TypeError: x.toUpperCase is not a function * ``` * @see {@link materialize} * * @return A function that returns an Observable that emits items and * notifications embedded in Notification objects emitted by the source * Observable. */ export declare function dematerialize>(): OperatorFunction>; //# sourceMappingURL=dematerialize.d.ts.map