import { ConnectableObservable, Observable, OperatorFunction, MonoTypeOperatorFunction, SchedulerLike } from 'rxjs'; import { publishReplay as higherOrder } from 'rxjs/operators'; /* tslint:disable:max-line-length */ export function publishReplay(this: Observable, bufferSize?: number, windowTime?: number, scheduler?: SchedulerLike): ConnectableObservable; export function publishReplay(this: Observable, bufferSize?: number, windowTime?: number, selector?: OperatorFunction): Observable; export function publishReplay(this: Observable, bufferSize?: number, windowTime?: number, selector?: MonoTypeOperatorFunction, scheduler?: SchedulerLike): Observable; /* tslint:enable:max-line-length */ /** * @param bufferSize * @param windowTime * @param selectorOrScheduler * @param scheduler * @return {Observable | ConnectableObservable} * @method publishReplay * @owner Observable */ export function publishReplay(this: Observable, bufferSize?: number, windowTime?: number, selectorOrScheduler?: SchedulerLike | OperatorFunction, scheduler?: SchedulerLike): Observable | ConnectableObservable { return higherOrder(bufferSize, windowTime, selectorOrScheduler as any, scheduler)(this); }