import { Subject } from './Subject'; import { Observable } from './Observable'; import { CoreOperators } from './CoreOperators'; import { Scheduler as IScheduler } from './Scheduler'; export interface KitchenSinkOperators extends CoreOperators { isEmpty?: () => Observable; elementAt?: (index: number, defaultValue?: any) => Observable; distinct?: (compare?: (x: T, y: T) => boolean, flushes?: Observable) => Observable; distinctKey?: (key: string, compare?: (x: T, y: T) => boolean, flushes?: Observable) => Observable; distinctUntilKeyChanged?: (key: string, compare?: (x: any, y: any) => boolean) => Observable; find?: (predicate: (value: T, index: number, source: Observable) => boolean, thisArg?: any) => Observable; findIndex?: (predicate: (value: T, index: number, source: Observable) => boolean, thisArg?: any) => Observable; max?: (comparer?: (x: R, y: T) => R) => Observable; min?: (comparer?: (x: R, y: T) => R) => Observable; pairwise?: () => Observable; timeInterval?: (scheduler?: IScheduler) => Observable; mergeScan?: (project: (acc: R, x: T) => Observable, seed: R, concurrent?: number) => Observable; exhaust?: () => Observable; exhaustMap?: (project: ((x: T, ix: number) => Observable), projectResult?: (x: T, y: any, ix: number, iy: number) => R) => Observable; } import { Observer } from './Observer'; import { Subscription, UnsubscriptionError } from './Subscription'; import { Subscriber } from './Subscriber'; import { AsyncSubject } from './subject/AsyncSubject'; import { ReplaySubject } from './subject/ReplaySubject'; import { BehaviorSubject } from './subject/BehaviorSubject'; import { ConnectableObservable } from './observable/ConnectableObservable'; import { Notification } from './Notification'; import { EmptyError } from './util/EmptyError'; import { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError'; import { ArgumentOutOfRangeError } from './util/ArgumentOutOfRangeError'; import { AsapScheduler } from './scheduler/AsapScheduler'; import { QueueScheduler } from './scheduler/QueueScheduler'; import { TimeInterval } from './operator/timeInterval'; import { TestScheduler } from './testing/TestScheduler'; import { VirtualTimeScheduler } from './scheduler/VirtualTimeScheduler'; declare var Scheduler: { asap: AsapScheduler; queue: QueueScheduler; }; declare var Symbol: { rxSubscriber: any; }; export { Subject, Scheduler, Observable, Observer, Subscriber, Subscription, AsyncSubject, ReplaySubject, BehaviorSubject, ConnectableObservable, Notification, EmptyError, ArgumentOutOfRangeError, ObjectUnsubscribedError, UnsubscriptionError, TestScheduler, VirtualTimeScheduler, TimeInterval, Symbol };