import { Observable } from '../Observable'; import { SchedulerAction, SchedulerLike } from '../types'; import { Subscriber } from '../Subscriber'; import { Subscription } from '../Subscription'; /** * Convert an object into an Observable of `[key, value]` pairs. * * Turn entries of an object into a stream. * * * * `pairs` takes an arbitrary object and returns an Observable that emits arrays. Each * emitted array has exactly two elements - the first is a key from the object * and the second is a value corresponding to that key. Keys are extracted from * an object via `Object.keys` function, which means that they will be only * enumerable keys that are present on an object directly - not ones inherited * via prototype chain. * * By default these arrays are emitted synchronously. To change that you can * pass a {@link SchedulerLike} as a second argument to `pairs`. * * @example Converts a javascript object to an Observable * ```ts * import { pairs } from 'rxjs'; * * const obj = { * foo: 42, * bar: 56, * baz: 78 * }; * * pairs(obj) * .subscribe( * value => console.log(value), * err => {}, * () => console.log('the end!') * ); * * // Logs: * // ["foo", 42], * // ["bar", 56], * // ["baz", 78], * // "the end!" * ``` * * @param {Object} obj The object to inspect and turn into an * Observable sequence. * @param {Scheduler} [scheduler] An optional IScheduler to schedule * when resulting Observable will emit values. * @returns {(Observable>)} An observable sequence of * [key, value] pairs from the object. */ export declare function pairs(obj: Object, scheduler?: SchedulerLike): Observable<[string, T]>; /** @internal */ export declare function dispatch(this: SchedulerAction, state: { keys: string[]; index: number; subscriber: Subscriber<[string, T]>; subscription: Subscription; obj: Object; }): void;