hunk.code_window: 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>
   });
  
hunk.labels: keep keep keep keep add keep keep keep
hunk.after_edit: it('should accept windowTime, bufferSize, selector returning union type', () => {
     const a = of(1, 2, 3).pipe(publishReplay(1, 1,  () => Math.random() > 0.5 ? of(123) : of('test'))); // $ExpectType Observable<string | number>
   });
  
hunk.file_path: spec-dtslint/operators/publishReplay-spec.ts
hunk.type: add
file: 
  import { Observable } from 'rxjs';
  import { min } from '../../operator/min';
  
  (Observable as any).prototype.min = min;
  
  declare module 'rxjs/internal/Observable' {
    interface Observable<T> {
      min: typeof min;
    }
  }
  