import { ReplaySubject } from '../ReplaySubject'; import { Scheduler } from '../Scheduler'; import { multicast } from './multicast'; import { ConnectableObservable } from '../observable/ConnectableObservable'; /** * @param bufferSize * @param windowTime * @param scheduler * @return {ConnectableObservable} * @method publishReplay * @owner Observable */ export function publishReplay(bufferSize: number = Number.POSITIVE_INFINITY, windowTime: number = Number.POSITIVE_INFINITY, scheduler?: Scheduler): ConnectableObservable { return multicast.call(this, new ReplaySubject(bufferSize, windowTime, scheduler)); } export interface PublishReplaySignature { (bufferSize?: number, windowTime?: number, scheduler?: Scheduler): ConnectableObservable; }