<commit_before>import Observable from './Observable';
import Scheduler from './Scheduler';
import ConnectableObservable from './observables/ConnectableObservable';
import Subject from './Subject'
import {GroupedObservable} from './operators/groupBy-support';
import Notification from './Notification';

export interface CoreOperators<T> {
  buffer?: (closingNotifier: Observable<any>) => Observable<T[]>;
  bufferCount?: (bufferSize: number, startBufferEvery: number) => Observable<T[]>;
  bufferTime?: (bufferTimeSpan: number, bufferCreationInterval?: number, scheduler?: Scheduler) => Observable<T[]>;
  bufferToggle?: <O>(openings: Observable<O>, closingSelector?: (openValue: O) => Observable<any>) => Observable<T[]>
  bufferWhen?: (closingSelector: () => Observable<any>) => Observable<T[]>;
  catch?: (selector: (err: any, source: Observable<T>, caught: Observable<any>) => Observable<any>) => Observable<T>;
  combineAll?: <R>(project?: (...values: Array<any>) => R) => Observable<R>;
  combineLatest?: <R>(...observables: Array<Observable<any> | ((...values: Array<any>) => R)>) => Observable<R>;
  concat?: <R>(...observables: (Observable<any> | Scheduler)[]) => Observable<R>;
  concatAll?: () => Observable<T>;
  concatMap?: <R>(project: ((x: T, ix: number) => Observable<any>), projectResult?: (x: T, y: any, ix: number, iy: number) => R) => Observable<R>;
  concatMapTo?: <R>(observable: Observable<any>, projectResult?: (x: T, y: any, ix: number, iy: number) => R) => Observable<R>;
  count?: (predicate?: (value: T, index: number, source: Observable<T>) => boolean, thisArg?: any) => Observable<number>;
  dematerialize?: () => Observable<any>;
  debounce?: (durationSelector: (value: T) => Observable<any> | Promise<any>) => Observable<T>;
  debounceTime?: <R>(dueTime: number, scheduler?: Scheduler) => Observable<R>;
  defaultIfEmpty?: <R>(defaultValue: R) => Observable<T> | Observable<R>;
  delay?: (delay: number, scheduler?: Scheduler) => Observable<T>;
  distinctUntilChanged?: (compare?: (x: T, y: T) => boolean, thisArg?: any) => Observable<T>;
  do?: (next?: (x: T) => void, error?: (e: any) => void, complete?: () => void) => Observable<T>;
  expand?: <R>(project: (x: T, ix: number) => Observable<R>) => Observable<R>;
  filter?: (predicate: (x: T) => boolean, ix?: number, thisArg?: any) => Observable<T>;
  finally?: (ensure: () => void, thisArg?: any) => Observable<T>;
  first?: <R>(predicate?: (value: T, index: number, source: Observable<T>) => boolean, resultSelector?: (value: T, index: number) => R, thisArg?: any, defaultValue?: any) => Observable<T> | Observable<R>;
  flatMap?: <R>(project: ((x: T, ix: number) => Observable<any>), projectResult?: (x: T, y: any, ix: number, iy: number) => R, concurrent?: number) => Observable<R>;
  flatMapTo?: <R>(observable: Observable<any>, projectResult?: (x: T, y: any, ix: number, iy: number) => R, concurrent?: number) => Observable<R>;
  groupBy?: <R>(keySelector: (value:T) => string, elementSelector?: (value: T) => R, durationSelector?: (group: GroupedObservable<R>) => Observable<any>) => Observable<GroupedObservable<R>>;
  ignoreElements?: () => Observable<T>;
  last?: <R>(predicate?: (value: T, index: number) => boolean, resultSelector?: (value: T, index: number) => R, thisArg?: any, defaultValue?: any) => Observable<T> | Observable<R>;
  every?: (predicate: (value: T, index: number) => boolean, thisArg?: any) => Observable<T>;
  map?: <R>(project: (x: T, ix?: number) => R, thisArg?: any) => Observable<R>;
  mapTo?: <R>(value: R) => Observable<R>;
  materialize?: () => Observable<Notification<T>>;
  merge?: (...observables: any[]) => Observable<any>;
  mergeAll?: (concurrent?: any) => Observable<any>;
  mergeMap?: <R>(project: ((x: T, ix: number) => Observable<any>), projectResult?: (x: T, y: any, ix: number, iy: number) => R, concurrent?: number) => Observable<R>;
  mergeMapTo?: <R>(observable: Observable<any>, projectResult?: (x: T, y: any, ix: number, iy: number) => R, concurrent?: number) => Observable<R>;
  multicast?: (subjectFactory: () => Subject<T>) => ConnectableObservable<T>;
  observeOn?: (scheduler: Scheduler, delay?: number) => Observable<T>;<commit_msg>chore(mergeAll): make mergeAll operator signature more precise<commit_after>import Observable from './Observable';
import Scheduler from './Scheduler';
import ConnectableObservable from './observables/ConnectableObservable';
import Subject from './Subject'
import {GroupedObservable} from './operators/groupBy-support';
import Notification from './Notification';

export interface CoreOperators<T> {
  buffer?: (closingNotifier: Observable<any>) => Observable<T[]>;
  bufferCount?: (bufferSize: number, startBufferEvery: number) => Observable<T[]>;
  bufferTime?: (bufferTimeSpan: number, bufferCreationInterval?: number, scheduler?: Scheduler) => Observable<T[]>;
  bufferToggle?: <O>(openings: Observable<O>, closingSelector?: (openValue: O) => Observable<any>) => Observable<T[]>
  bufferWhen?: (closingSelector: () => Observable<any>) => Observable<T[]>;
  catch?: (selector: (err: any, source: Observable<T>, caught: Observable<any>) => Observable<any>) => Observable<T>;
  combineAll?: <R>(project?: (...values: Array<any>) => R) => Observable<R>;
  combineLatest?: <R>(...observables: Array<Observable<any> | ((...values: Array<any>) => R)>) => Observable<R>;
  concat?: <R>(...observables: (Observable<any> | Scheduler)[]) => Observable<R>;
  concatAll?: () => Observable<T>;
  concatMap?: <R>(project: ((x: T, ix: number) => Observable<any>), projectResult?: (x: T, y: any, ix: number, iy: number) => R) => Observable<R>;
  concatMapTo?: <R>(observable: Observable<any>, projectResult?: (x: T, y: any, ix: number, iy: number) => R) => Observable<R>;
  count?: (predicate?: (value: T, index: number, source: Observable<T>) => boolean, thisArg?: any) => Observable<number>;
  dematerialize?: () => Observable<any>;
  debounce?: (durationSelector: (value: T) => Observable<any> | Promise<any>) => Observable<T>;
  debounceTime?: <R>(dueTime: number, scheduler?: Scheduler) => Observable<R>;
  defaultIfEmpty?: <R>(defaultValue: R) => Observable<T> | Observable<R>;
  delay?: (delay: number, scheduler?: Scheduler) => Observable<T>;
  distinctUntilChanged?: (compare?: (x: T, y: T) => boolean, thisArg?: any) => Observable<T>;
  do?: (next?: (x: T) => void, error?: (e: any) => void, complete?: () => void) => Observable<T>;
  expand?: <R>(project: (x: T, ix: number) => Observable<R>) => Observable<R>;
  filter?: (predicate: (x: T) => boolean, ix?: number, thisArg?: any) => Observable<T>;
  finally?: (ensure: () => void, thisArg?: any) => Observable<T>;
  first?: <R>(predicate?: (value: T, index: number, source: Observable<T>) => boolean, resultSelector?: (value: T, index: number) => R, thisArg?: any, defaultValue?: any) => Observable<T> | Observable<R>;
  flatMap?: <R>(project: ((x: T, ix: number) => Observable<any>), projectResult?: (x: T, y: any, ix: number, iy: number) => R, concurrent?: number) => Observable<R>;
  flatMapTo?: <R>(observable: Observable<any>, projectResult?: (x: T, y: any, ix: number, iy: number) => R, concurrent?: number) => Observable<R>;
  groupBy?: <R>(keySelector: (value:T) => string, elementSelector?: (value: T) => R, durationSelector?: (group: GroupedObservable<R>) => Observable<any>) => Observable<GroupedObservable<R>>;
  ignoreElements?: () => Observable<T>;
  last?: <R>(predicate?: (value: T, index: number) => boolean, resultSelector?: (value: T, index: number) => R, thisArg?: any, defaultValue?: any) => Observable<T> | Observable<R>;
  every?: (predicate: (value: T, index: number) => boolean, thisArg?: any) => Observable<T>;
  map?: <R>(project: (x: T, ix?: number) => R, thisArg?: any) => Observable<R>;
  mapTo?: <R>(value: R) => Observable<R>;
  materialize?: () => Observable<Notification<T>>;
  merge?: (...observables: any[]) => Observable<any>;
  mergeAll?: (concurrent?: number) => Observable<T>;
  mergeMap?: <R>(project: ((x: T, ix: number) => Observable<any>), projectResult?: (x: T, y: any, ix: number, iy: number) => R, concurrent?: number) => Observable<R>;
  mergeMapTo?: <R>(observable: Observable<any>, projectResult?: (x: T, y: any, ix: number, iy: number) => R, concurrent?: number) => Observable<R>;
  multicast?: (subjectFactory: () => Subject<T>) => ConnectableObservable<T>;
  observeOn?: (scheduler: Scheduler, delay?: number) => Observable<T>;
{'fraction_non_alphanumeric': 0.21586584205518553, 'fraction_numerical': 0.0, 'mean_word_length': 6.34410480349345, 'pattern_counts': {'":': 0, '<': 181, '<?xml version=': 0, '>': 325, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '618379', 'n_tokens_mistral': 2679, 'n_tokens_neox': 2642, 'n_words': 753}