import * as F from "./index"; import { Accum, Dispose, EndHandler, EndProjection, Eq, ErrorHandler, EventStream, FlatAccum, Handler, Observable, Predicate, Projection, Property, ValueHandler, ValuesHandler } from "./index"; import * as Logic from "./operators/logic"; declare module "./Observable" { interface Observable { subscribe(handler: Handler): Dispose; awaiting(otherObservable: Observable): Property; onValue(f: ValueHandler): Dispose; onValues(f: ValuesHandler): Dispose; onError(f: ErrorHandler): Dispose; onEnd(f: EndHandler): Dispose; doAction(f: (val: A) => void): Observable; doError(f: (err: Error) => void): Observable; doEnd(f: () => void): Observable; doLog(label?: string): Observable; assign(obj: any, method: string, ...params: any[]): Dispose; log(label?: string): Dispose; map(project: Projection): Observable; mapError(project: Projection): Observable; mapEnd(f: EndProjection): Observable; filter(predicate: Predicate | Property): Observable; take(n: number): Observable; takeUntil(trigger: Observable): Observable; takeWhile(f: Predicate | Property): Observable; first(): Observable; last(): Observable; skip(n: number): Observable; skipUntil(trigger: Observable): Observable; skipWhile(trigger: Predicate | Property): Observable; skipErrors(): Observable; flatMapLatest(project: Projection>): Observable; flatMapFirst(project: Projection>): Observable; flatMap(project: Projection>): Observable; flatMapConcat(project: Projection>): Observable; flatMapWithConcurrencyLimit(limit: number, project: Projection>): Observable; flatMapError(project: Projection>): Observable; startWith(value: A): Observable; scan(seed: B, f: Accum): Property; fold(seed: B, f: Accum): Property; flatScan(seed: B, f: FlatAccum): Property; reduce(seed: B, f: Accum): Property; zip(other: Observable, f: (a: A, b: B) => C): EventStream; merge(other: Observable): EventStream; concat(other: Observable): EventStream; combine(other: Observable, f: (a: A, b: B) => C): Property; errors(): Observable; throttle(delay: number): Observable; debounce(delay: number): Observable; debounceImmediate(delay: number): Observable; delay(delay: number): Observable; bufferingThrottle(minimumInterval: number): Observable; slidingWindow(max: number, min?: number): Property; skipDuplicates(isEqual?: Eq): Observable; diff(start: A, f: F.Delta): Observable; toPromise(ctor?: PromiseConstructor): Promise; firstToPromise(ctor?: PromiseConstructor): Promise; } } declare module "./EventStream" { interface EventStream { toProperty(initialValue?: A): Property; doAction(f: (val: A) => void): EventStream; doError(f: (err: Error) => void): EventStream; doEnd(f: () => void): EventStream; doLog(label?: string): EventStream; map(project: Projection): EventStream; mapError(project: Projection): EventStream; mapEnd(f: EndProjection): EventStream; filter(predicate: Predicate | Property): EventStream; take(n: number): EventStream; takeUntil(trigger: Observable): EventStream; takeWhile(f: Predicate | Property): EventStream; first(): EventStream; last(): EventStream; skip(n: number): EventStream; skipUntil(trigger: Observable): EventStream; skipWhile(trigger: Predicate | Property): EventStream; skipErrors(): EventStream; flatMapLatest(project: Projection>): EventStream; flatMapFirst(project: Projection>): EventStream; flatMap(project: Projection>): EventStream; flatMapConcat(project: Projection>): EventStream; flatMapWithConcurrencyLimit(limit: number, project: Projection>): EventStream; flatMapError(project: Projection>): EventStream; startWith(value: A): EventStream; errors(): EventStream; throttle(delay: number): EventStream; debounce(delay: number): EventStream; debounceImmediate(delay: number): EventStream; delay(delay: number): EventStream; bufferingThrottle(minimumInterval: number): EventStream; bufferWithTime(delay: number): EventStream; bufferWithCount(count: number): EventStream; bufferWithTimeOrCount(delay: number, count: number): EventStream; skipDuplicates(isEqual?: Eq): EventStream; diff(start: A, f: F.Delta): EventStream; } } declare module "./Property" { interface Property { toEventStream(): EventStream; changes(): EventStream; doAction(f: (val: A) => void): Property; doError(f: (err: Error) => void): Property; doEnd(f: () => void): Property; doLog(label?: string): Property; map(project: Projection): Property; mapError(project: Projection): Property; mapEnd(f: EndProjection): Property; filter(predicate: Predicate | Property): Property; take(n: number): Property; takeUntil(trigger: Observable): Property; takeWhile(f: Predicate | Property): Property; first(): Property; last(): Property; skip(n: number): Property; skipUntil(trigger: Observable): Property; skipWhile(trigger: Predicate | Property): Property; skipErrors(): Property; flatMapLatest(project: Projection>): Property; flatMapFirst(project: Projection>): Property; flatMap(project: Projection>): Property; flatMapConcat(project: Projection>): Property; flatMapWithConcurrencyLimit(limit: number, project: Projection>): Property; flatMapError(project: Projection>): Property; sampledBy(sampler: EventStream): EventStream; sampledBy(sampler: Property): Property; sampledBy(sampler: EventStream, f: SampleFn): EventStream; sampledBy(sampler: Property, f: SampleFn): Property; sample(interval: number): EventStream; startWith(value: A): Property; and(other: Property): Property>; or(other: Property): Property>; not(): Property; errors(): Property; throttle(delay: number): Property; debounce(delay: number): Property; debounceImmediate(delay: number): Property; delay(delay: number): Property; bufferingThrottle(minimumInterval: number): Property; skipDuplicates(isEqual?: Eq): Property; diff(start: A, f: F.Delta): Property; } } declare module "./Bus" { interface Bus { push(event: T | F.AnyEvent): void; end(): void; error(err: Error): void; plug(obs: Observable): F.Dispose; } } export declare type SampleFn = (value: V, sample: S) => R; export { End, Error, Next } from "./Event"; export { EventStream } from "./EventStream"; export { Observable } from "./Observable"; export { Property } from "./Property"; export { Bus } from "./Bus"; export { Combineable, combineAsArray, combineTemplate } from "./operators/combine"; export { update } from "./operators/update"; export { when } from "./operators/when"; export { zipAsArray } from "./operators/zip"; export { fromArray } from "./sources/fromArray"; export { fromBinder } from "./sources/fromBinder"; export { fromPromise } from "./sources/fromPromise"; export { never } from "./sources/never"; export { repeat } from "./sources/repeat"; export { constant, once } from "./sources/single"; export * from "./_interfaces"; export declare function later(delay: number): EventStream; export declare function later(delay: number, value: T): EventStream; export declare function interval(period: number): EventStream; export declare function interval(period: number, value: T): EventStream; export declare function fromEvent(target: EventTarget, event: string, ...args: any[]): EventStream; export declare function fromPoll(interval: number, f: () => T | F.AnyEvent): EventStream; export declare function repeatedly(interval: number, events: Array>): EventStream; export declare function sequentially(interval: number, events: Array>): EventStream; export declare function fromCallback(f: F.AsyncCallback, ...args: any[]): EventStream; export declare function fromNodeCallback(f: F.AsyncNodeCallback, ...args: any[]): EventStream; export declare function zipWith(f: (a: A) => T, streams: [Observable]): EventStream; export declare function zipWith(f: (a: A, b: B) => T, streams: [Observable, Observable]): EventStream; export declare function zipWith(f: (a: A, b: B, c: C) => T, streams: [Observable, Observable, Observable]): EventStream; export declare function zipWith(f: (a: A, b: B, c: C, d: D) => T, streams: [Observable, Observable, Observable, Observable]): EventStream; export declare function zipWith(f: (a: A, b: B, c: C, d: D, e: E) => T, streams: [Observable, Observable, Observable, Observable, Observable]): EventStream; export declare function zipWith(f: (a: A, b: B, c: C, d: D, e: E, f: F) => T, streams: [Observable, Observable, Observable, Observable, Observable, Observable]): EventStream; export declare function zipWith(f: (...args: A[]) => T, streams: A[]): EventStream; export declare function zipWith(f: (streams: [Observable], a: A) => T): EventStream; export declare function zipWith(streams: [Observable, Observable], f: (a: A, b: B) => T): EventStream; export declare function zipWith(streams: [Observable, Observable, Observable], f: (a: A, b: B, c: C) => T): EventStream; export declare function zipWith(streams: [Observable, Observable, Observable, Observable], f: (a: A, b: B, c: C, d: D) => T): EventStream; export declare function zipWith(streams: [Observable, Observable, Observable, Observable, Observable], f: (a: A, b: B, c: C, d: D, e: E) => T): EventStream; export declare function zipWith(streams: [Observable, Observable, Observable, Observable, Observable, Observable], f: (a: A, b: B, c: C, d: D, e: E, f: F) => T): EventStream; export declare function zipWith(streams: A[], f: (...args: A[]) => T): EventStream; export declare function combineWith(f: (a: A) => R, observables: [F.Combineable]): Property; export declare function combineWith(f: (a: A, b: B) => R, observables: [F.Combineable, F.Combineable]): Property; export declare function combineWith(f: (a: A, b: B, c: C) => R, observables: [F.Combineable, F.Combineable, F.Combineable]): Property; export declare function combineWith(f: (a: A, b: B, c: C, d: D) => R, observables: [F.Combineable, F.Combineable, F.Combineable, F.Combineable]): Property; export declare function combineWith(f: (a: A, b: B, c: C, d: D, e: E) => R, observables: [F.Combineable, F.Combineable, F.Combineable, F.Combineable, F.Combineable]): Property; export declare function combineWith(f: (a: A, b: B, c: C, d: D, e: E, f: F) => R, observables: [F.Combineable, F.Combineable, F.Combineable, F.Combineable, F.Combineable, F.Combineable]): Property; export declare function combineWith(observables: [F.Combineable], f: (a: A) => R): Property; export declare function combineWith(observables: [F.Combineable, F.Combineable], f: (a: A, b: B) => R): Property; export declare function combineWith(observables: [F.Combineable, F.Combineable, F.Combineable], f: (a: A, b: B, c: C) => R): Property; export declare function combineWith(observables: [F.Combineable, F.Combineable, F.Combineable, F.Combineable], f: (a: A, b: B, c: C, d: D) => R): Property; export declare function combineWith(observables: [F.Combineable, F.Combineable, F.Combineable, F.Combineable, F.Combineable], f: (a: A, b: B, c: C, d: D, e: E) => R): Property; export declare function combineWith(observables: [F.Combineable, F.Combineable, F.Combineable, F.Combineable, F.Combineable, F.Combineable], f: (a: A, b: B, c: C, d: D, e: E, f: F) => R): Property; export declare function concatAll(...observables: Array>): EventStream; export declare function concatAll(observables: Array>): EventStream; export declare function mergeAll(...observables: Array>): EventStream; export declare function mergeAll(observables: Array>): EventStream;