hunk.code_window: import { Observable } from '../Observable';
   import { ReplaySubject } from '../ReplaySubject';
   import { multicast } from './multicast';
   import { ConnectableObservable } from '../observable/ConnectableObservable';
   import { UnaryFunction, MonoTypeOperatorFunction, OperatorFunction, SchedulerLike } from '../types';
   /* tslint:disable:max-line-length */
   export function publishReplay<T>(bufferSize?: number, windowTime?: number, scheduler?: SchedulerLike): MonoTypeOperatorFunction<T>;
  
hunk.labels: keep keep keep keep replace keep keep keep
hunk.after_edit: import { UnaryFunction, MonoTypeOperatorFunction, OperatorFunction, SchedulerLike, ObservableInput, ObservedValueOf } from '../types';
  
hunk.file_path: src/internal/operators/publishReplay.ts
hunk.type: replace
file: import { of, asyncScheduler, Observable } from 'rxjs';
  import { publishReplay } from 'rxjs/operators';
  
  it('should accept empty parameter', () => {
    const a = of(1, 2, 3).pipe(publishReplay()); // $ExpectType Observable<number>
  });
  
  it('should accept bufferSize parameter only', () => {
    const a = of(1, 2, 3).pipe(publishReplay(1)); // $ExpectType Observable<number>
  });
  
  it('should accept windowTime and bufferSize', () => {
    const a = of(1, 2, 3).pipe(publishReplay(1, 1)); // $ExpectType Observable<number>
  });
  
  it('should accept windowTime, bufferSize, scheduler', () => {
    const a = of(1, 2, 3).pipe(publishReplay(1, 1, asyncScheduler)); // $ExpectType Observable<number>
  });
  
  it('should accept windowTime, bufferSize, selector of OperatorFunction', () => {
    const a = of(1, 2, 3).pipe(publishReplay(1, 1, (x) => of('a'))); // $ExpectType Observable<string>
  });
  
  it('should accept windowTime, bufferSize, selector  of MonoTypeOperatorFunction', () => {
    const a = of(1, 2, 3).pipe(publishReplay(1, 1, (x) => x)); // $ExpectType Observable<number>
  });
  
  it('should accept windowTime, bufferSize, selector of OperatorFunction, and scheduler', () => {
    const a = of(1, 2, 3).pipe(publishReplay(1, 1, (x) => of('a'), asyncScheduler)); // $ExpectType Observable<string>
  });
  
  it('should accept windowTime, bufferSize, selector of MonoTypeOperatorFunction, and scheduler', () => {
    const a = of(1, 2, 3).pipe(publishReplay(1, 1, (x) => x, asyncScheduler)); // $ExpectType Observable<number>
  });
  
  it('should enforce type on selector', () => {
    const a = of(1, 2, 3).pipe(publishReplay(1, 1, (x: Observable<string>) => x)); // $ExpectError
  });
  