/* Copyright IBM Corp. 2018 */ import { NgZone } from '@angular/core'; import { Observable, SchedulerLike, Subject, Subscription } from 'rxjs'; /** * Constructs a callback function that completes the subject and then unsubscribes all pending subscriptions * * @param aSubject the subject * @return the callback */ declare function _completeLater(aSubject: Subject): () => void; declare function _unsubscribeLater(aSubscription: Subscription | null | undefined): () => void; export interface ZoneSchedulers { inside: SchedulerLike; outside: SchedulerLike; } declare function _createZoneSchedulers(aZone: NgZone, aDelegate?: SchedulerLike): ZoneSchedulers; declare function _distinctSubject(aSubject: Subject): Observable; /** * Produces a value at a later point in time on top of a generator * * @param aGenerator the generator function * @return a function that takes a parameter and generates an observable based on the result */ declare function _createLater(aGenerator: (aKey: K, aOpt?: O) => T): (aKey: K, aOpt?: O) => Observable; export { _unsubscribeLater as unsubscribeLater, _completeLater as completeLater, _createZoneSchedulers as createZoneSchedulers, _distinctSubject as distinctSubject, _createLater as createLater };