declare module wdFrp { class JudgeUtils extends wdCb.JudgeUtils { static isPromise(obj: any): boolean; static isEqual(ob1: Entity, ob2: Entity): boolean; static isIObserver(i: IObserver): () => any; } } declare module wdFrp { var fromNodeCallback: (func: Function, context?: any) => (...funcArgs: any[]) => AnonymousStream; var fromStream: (stream: any, finishEventName?: string) => AnonymousStream; var fromReadableStream: (stream: any) => AnonymousStream; var fromWritableStream: (stream: any) => AnonymousStream; var fromTransformStream: (stream: any) => AnonymousStream; } declare module wdFrp { abstract class Entity { static UID: number; private _uid; uid: string; constructor(uidPre: string); } } declare module wdFrp { class Main { static isTest: boolean; } } declare module wdFrp { function assert(cond: boolean, message?: string): void; function require(InFunc: any): (target: any, name: any, descriptor: any) => any; function ensure(OutFunc: any): (target: any, name: any, descriptor: any) => any; function requireGetter(InFunc: any): (target: any, name: any, descriptor: any) => any; function requireSetter(InFunc: any): (target: any, name: any, descriptor: any) => any; function ensureGetter(OutFunc: any): (target: any, name: any, descriptor: any) => any; function ensureSetter(OutFunc: any): (target: any, name: any, descriptor: any) => any; function invariant(func: any): (target: any) => void; } declare module wdFrp { interface IDisposable { dispose(): void; } } declare module wdFrp { class SingleDisposable extends Entity implements IDisposable { static create(disposeHandler?: Function): SingleDisposable; private _disposeHandler; private _isDisposed; constructor(disposeHandler: Function); setDisposeHandler(handler: Function): void; dispose(): void; } } declare module wdFrp { class GroupDisposable extends Entity implements IDisposable { static create(disposable?: IDisposable): GroupDisposable; private _group; private _isDisposed; constructor(disposable?: IDisposable); add(disposable: IDisposable): this; remove(disposable: IDisposable): this; dispose(): void; } } declare module wdFrp { interface IObserver extends IDisposable { next(value: any): any; error(error: any): any; completed(): any; } } declare module wdFrp { class InnerSubscription implements IDisposable { static create(subject: Subject | GeneratorSubject, observer: Observer): InnerSubscription; private _subject; private _observer; constructor(subject: Subject | GeneratorSubject, observer: Observer); dispose(): void; } } declare module wdFrp { class InnerSubscriptionGroup implements IDisposable { static create(): InnerSubscriptionGroup; private _container; addChild(child: IDisposable): void; dispose(): void; } } declare var global: any, window: Window; declare module wdFrp { var root: any; } declare module wdFrp { } declare module wdFrp { } declare module wdFrp { } declare module wdFrp { abstract class Stream extends Entity { scheduler: Scheduler; subscribeFunc: (observer: IObserver) => Function | void; constructor(subscribeFunc: any); abstract subscribe(arg1: Function | Observer | Subject, onError?: Function, onCompleted?: Function): IDisposable; buildStream(observer: IObserver): IDisposable; do(onNext?: Function, onError?: Function, onCompleted?: Function): DoStream; map(selector: Function): MapStream; flatMap(selector: Function): MergeAllStream; concatMap(selector: Function): any; mergeAll(): MergeAllStream; concatAll(): any; skipUntil(otherStream: Stream): SkipUntilStream; takeUntil(otherStream: Stream): TakeUntilStream; take(count?: number): AnonymousStream; takeLast(count?: number): AnonymousStream; takeWhile(predicate: (value: any, index: number, source: Stream) => boolean, thisArg?: this): AnonymousStream; lastOrDefault(defaultValue?: any): AnonymousStream; filter(predicate: (value: any) => boolean, thisArg?: this): any; filterWithState(predicate: (value: any) => boolean, thisArg?: this): any; concat(streamArr: Array): any; concat(...otherStream: any[]): any; merge(maxConcurrent: number): any; merge(streamArr: Array): any; merge(...otherStreams: any[]): any; repeat(count?: number): RepeatStream; ignoreElements(): IgnoreElementsStream; protected handleSubject(subject: any): boolean; private _isSubject(subject); private _setSubject(subject); } } declare module wdFrp { class Scheduler { static create(...args: any[]): Scheduler; private _requestLoopId; requestLoopId: any; publishRecursive(observer: IObserver, initial: any, action: Function): void; publishInterval(observer: IObserver, initial: any, interval: number, action: Function): number; publishIntervalRequest(observer: IObserver, action: Function): void; publishTimeout(observer: IObserver, time: number, action: Function): number; } } declare module wdFrp { abstract class Observer extends Entity implements IObserver { private _isDisposed; isDisposed: boolean; protected onUserNext: Function; protected onUserError: Function; protected onUserCompleted: Function; private _isStop; private _disposable; constructor(observer: IObserver); constructor(onNext: Function, onError: Function, onCompleted: Function); next(value: any): any; error(error: any): void; completed(): void; dispose(): void; setDisposable(disposable: IDisposable): void; protected abstract onNext(value: any): any; protected abstract onError(error: any): any; protected abstract onCompleted(): any; } } declare module wdFrp { class Subject implements IObserver { static create(): Subject; private _source; source: Stream; private _observer; subscribe(arg1?: Function | Observer, onError?: Function, onCompleted?: Function): IDisposable; next(value: any): void; error(error: any): void; completed(): void; start(): void; remove(observer: Observer): void; dispose(): void; } } declare module wdFrp { class GeneratorSubject extends Entity implements IObserver { static create(): GeneratorSubject; private _isStart; isStart: boolean; constructor(); observer: any; onBeforeNext(value: any): void; onAfterNext(value: any): void; onIsCompleted(value: any): boolean; onBeforeError(error: any): void; onAfterError(error: any): void; onBeforeCompleted(): void; onAfterCompleted(): void; subscribe(arg1?: Function | Observer, onError?: Function, onCompleted?: Function): IDisposable; next(value: any): void; error(error: any): void; completed(): void; toStream(): any; start(): void; stop(): void; remove(observer: Observer): void; dispose(): void; } } declare module wdFrp { class AnonymousObserver extends Observer { static create(onNext: Function, onError: Function, onCompleted: Function): AnonymousObserver; protected onNext(value: any): void; protected onError(error: any): void; protected onCompleted(): void; } } declare module wdFrp { class AutoDetachObserver extends Observer { static create(observer: IObserver): any; static create(onNext: Function, onError: Function, onCompleted: Function): any; dispose(): void; protected onNext(value: any): void; protected onError(error: any): void; protected onCompleted(): void; } } declare module wdFrp { class MapObserver extends Observer { static create(currentObserver: IObserver, selector: Function): MapObserver; private _currentObserver; private _selector; constructor(currentObserver: IObserver, selector: Function); protected onNext(value: any): void; protected onError(error: any): void; protected onCompleted(): void; } } declare module wdFrp { class DoObserver extends Observer { static create(currentObserver: IObserver, prevObserver: IObserver): DoObserver; private _currentObserver; private _prevObserver; constructor(currentObserver: IObserver, prevObserver: IObserver); protected onNext(value: any): void; protected onError(error: any): void; protected onCompleted(): void; } } declare module wdFrp { class MergeAllObserver extends Observer { static create(currentObserver: IObserver, streamGroup: wdCb.Collection, groupDisposable: GroupDisposable): MergeAllObserver; constructor(currentObserver: IObserver, streamGroup: wdCb.Collection, groupDisposable: GroupDisposable); done: boolean; currentObserver: IObserver; private _streamGroup; private _groupDisposable; protected onNext(innerSource: any): void; protected onError(error: any): void; protected onCompleted(): void; } } declare module wdFrp { class MergeObserver extends Observer { static create(currentObserver: IObserver, maxConcurrent: number, streamGroup: wdCb.Collection, groupDisposable: GroupDisposable): MergeObserver; constructor(currentObserver: IObserver, maxConcurrent: number, streamGroup: wdCb.Collection, groupDisposable: GroupDisposable); done: boolean; currentObserver: IObserver; activeCount: number; q: Array; private _maxConcurrent; private _groupDisposable; private _streamGroup; handleSubscribe(innerSource: any): void; protected onNext(innerSource: any): void; protected onError(error: any): void; protected onCompleted(): void; private _isReachMaxConcurrent(); } } declare module wdFrp { class TakeUntilObserver extends Observer { static create(prevObserver: IObserver): TakeUntilObserver; private _prevObserver; constructor(prevObserver: IObserver); protected onNext(value: any): void; protected onError(error: any): void; protected onCompleted(): void; } } declare module wdFrp { class SkipUntilSourceObserver extends Observer { static create(prevObserver: IObserver, skipUntilStream: SkipUntilStream): SkipUntilSourceObserver; private _prevObserver; private _skipUntilStream; constructor(prevObserver: IObserver, skipUntilStream: SkipUntilStream); protected onNext(value: any): void; protected onError(error: any): void; protected onCompleted(): void; } } declare module wdFrp { class SkipUntilOtherObserver extends Observer { static create(prevObserver: IObserver, skipUntilStream: SkipUntilStream): SkipUntilOtherObserver; otherDisposable: IDisposable; private _prevObserver; private _skipUntilStream; constructor(prevObserver: IObserver, skipUntilStream: SkipUntilStream); protected onNext(value: any): void; protected onError(error: any): void; protected onCompleted(): void; } } declare module wdFrp { class ConcatObserver extends Observer { static create(currentObserver: IObserver, startNextStream: Function): ConcatObserver; protected currentObserver: any; private _startNextStream; constructor(currentObserver: IObserver, startNextStream: Function); protected onNext(value: any): void; protected onError(error: any): void; protected onCompleted(): void; } } declare module wdFrp { interface ISubjectObserver { addChild(observer: Observer): any; removeChild(observer: Observer): any; } } declare module wdFrp { class SubjectObserver implements IObserver { observers: wdCb.Collection; private _disposable; isEmpty(): boolean; next(value: any): void; error(error: any): void; completed(): void; addChild(observer: Observer): void; removeChild(observer: Observer): void; dispose(): void; setDisposable(disposable: IDisposable): void; } } declare module wdFrp { class IgnoreElementsObserver extends Observer { static create(currentObserver: IObserver): IgnoreElementsObserver; private _currentObserver; constructor(currentObserver: IObserver); protected onNext(value: any): void; protected onError(error: any): void; protected onCompleted(): void; } } declare module wdFrp { class FilterObserver extends Observer { static create(prevObserver: IObserver, predicate: (value: any, index?: number, source?: Stream) => boolean, source: Stream): FilterObserver; constructor(prevObserver: IObserver, predicate: (value: any) => boolean, source: Stream); protected prevObserver: IObserver; protected source: Stream; protected i: number; protected predicate: (value: any, index?: number, source?: Stream) => boolean; protected onNext(value: any): void; protected onError(error: any): void; protected onCompleted(): void; } } declare module wdFrp { class FilterWithStateObserver extends FilterObserver { static create(prevObserver: IObserver, predicate: (value: any, index?: number, source?: Stream) => boolean, source: Stream): FilterWithStateObserver; private _isTrigger; protected onNext(value: any): void; } } declare module wdFrp { abstract class BaseStream extends Stream { abstract subscribeCore(observer: IObserver): IDisposable; subscribe(arg1: Function | Observer | Subject, onError?: any, onCompleted?: any): IDisposable; buildStream(observer: IObserver): IDisposable; } } declare module wdFrp { class DoStream extends BaseStream { static create(source: Stream, onNext?: Function, onError?: Function, onCompleted?: Function): DoStream; private _source; private _observer; constructor(source: Stream, onNext: Function, onError: Function, onCompleted: Function); subscribeCore(observer: IObserver): IDisposable; } } declare module wdFrp { class MapStream extends BaseStream { static create(source: Stream, selector: Function): MapStream; private _source; private _selector; constructor(source: Stream, selector: Function); subscribeCore(observer: IObserver): IDisposable; } } declare module wdFrp { class FromArrayStream extends BaseStream { static create(array: Array, scheduler: Scheduler): FromArrayStream; private _array; constructor(array: Array, scheduler: Scheduler); subscribeCore(observer: IObserver): SingleDisposable; } } declare module wdFrp { class FromPromiseStream extends BaseStream { static create(promise: any, scheduler: Scheduler): FromPromiseStream; private _promise; constructor(promise: any, scheduler: Scheduler); subscribeCore(observer: IObserver): SingleDisposable; } } declare module wdFrp { class FromEventPatternStream extends BaseStream { static create(addHandler: Function, removeHandler: Function): FromEventPatternStream; private _addHandler; private _removeHandler; constructor(addHandler: Function, removeHandler: Function); subscribeCore(observer: IObserver): SingleDisposable; } } declare module wdFrp { class AnonymousStream extends Stream { static create(subscribeFunc: Function): AnonymousStream; constructor(subscribeFunc: Function); subscribe(subject: Subject): IDisposable; subscribe(observer: IObserver): IDisposable; subscribe(onNext: (value: any) => void): IDisposable; subscribe(onNext: (value: any) => void, onError: (e: any) => void): IDisposable; subscribe(onNext: (value: any) => void, onError: (e: any) => void, onComplete: () => void): IDisposable; } } declare module wdFrp { class IntervalStream extends BaseStream { static create(interval: number, scheduler: Scheduler): IntervalStream; private _interval; constructor(interval: number, scheduler: Scheduler); initWhenCreate(): void; subscribeCore(observer: IObserver): SingleDisposable; } } declare module wdFrp { class IntervalRequestStream extends BaseStream { static create(scheduler: Scheduler): IntervalRequestStream; private _isEnd; constructor(scheduler: Scheduler); subscribeCore(observer: IObserver): SingleDisposable; } } declare module wdFrp { class TimeoutStream extends BaseStream { static create(time: number, scheduler: Scheduler): TimeoutStream; private _time; constructor(time: number, scheduler: Scheduler); subscribeCore(observer: IObserver): SingleDisposable; } } declare module wdFrp { class MergeAllStream extends BaseStream { static create(source: Stream): MergeAllStream; constructor(source: Stream); private _source; private _observer; subscribeCore(observer: IObserver): GroupDisposable; } } declare module wdFrp { class MergeStream extends BaseStream { static create(source: Stream, maxConcurrent: number): MergeStream; constructor(source: Stream, maxConcurrent: number); private _source; private _maxConcurrent; subscribeCore(observer: IObserver): GroupDisposable; } } declare module wdFrp { class TakeUntilStream extends BaseStream { static create(source: Stream, otherSteam: Stream): TakeUntilStream; private _source; private _otherStream; constructor(source: Stream, otherStream: Stream); subscribeCore(observer: IObserver): GroupDisposable; } } declare module wdFrp { class SkipUntilStream extends BaseStream { static create(source: Stream, otherSteam: Stream): SkipUntilStream; isOpen: boolean; private _source; private _otherStream; constructor(source: Stream, otherStream: Stream); subscribeCore(observer: IObserver): GroupDisposable; } } declare module wdFrp { class ConcatStream extends BaseStream { static create(sources: Array): ConcatStream; private _sources; constructor(sources: Array); subscribeCore(observer: IObserver): GroupDisposable; } } declare module wdFrp { class RepeatStream extends BaseStream { static create(source: Stream, count: number): RepeatStream; private _source; private _count; constructor(source: Stream, count: number); subscribeCore(observer: IObserver): GroupDisposable; } } declare module wdFrp { class IgnoreElementsStream extends BaseStream { static create(source: Stream): IgnoreElementsStream; private _source; constructor(source: Stream); subscribeCore(observer: IObserver): IDisposable; } } declare module wdFrp { class DeferStream extends BaseStream { static create(buildStreamFunc: Function): DeferStream; private _buildStreamFunc; constructor(buildStreamFunc: Function); subscribeCore(observer: IObserver): GroupDisposable; } } declare module wdFrp { class FilterStream extends BaseStream { static create(source: Stream, predicate: (value: any, index?: number, source?: Stream) => boolean, thisArg: any): FilterStream; constructor(source: Stream, predicate: (value: any, index?: number, source?: Stream) => boolean, thisArg: any); predicate: (value: any, index?: number, source?: Stream) => boolean; private _source; subscribeCore(observer: IObserver): IDisposable; internalFilter(predicate: (value: any, index?: number, source?: Stream) => boolean, thisArg: any): Stream; protected createObserver(observer: IObserver): Observer; protected createStreamForInternalFilter(source: Stream, innerPredicate: any, thisArg: any): Stream; private _innerPredicate(predicate, self); } } declare module wdFrp { class FilterWithStateStream extends FilterStream { static create(source: Stream, predicate: (value: any, index?: number, source?: Stream) => boolean, thisArg: any): FilterWithStateStream; protected createObserver(observer: IObserver): FilterWithStateObserver; protected createStreamForInternalFilter(source: Stream, innerPredicate: any, thisArg: any): Stream; } } declare module wdFrp { var createStream: (subscribeFunc: any) => AnonymousStream; var fromArray: (array: any[], scheduler?: Scheduler) => FromArrayStream; var fromPromise: (promise: any, scheduler?: Scheduler) => FromPromiseStream; var fromEventPattern: (addHandler: Function, removeHandler: Function) => FromEventPatternStream; var interval: (interval: any, scheduler?: Scheduler) => IntervalStream; var intervalRequest: (scheduler?: Scheduler) => IntervalRequestStream; var timeout: (time: any, scheduler?: Scheduler) => TimeoutStream; var empty: () => AnonymousStream; var callFunc: (func: Function, context?: any) => AnonymousStream; var judge: (condition: Function, thenSource: Function, elseSource: Function) => any; var defer: (buildStreamFunc: Function) => DeferStream; var just: (returnValue: any) => AnonymousStream; } declare module wdFrp { enum FilterState { TRIGGER = 0, ENTER = 1, LEAVE = 2, } } declare module wdFrp { class Record { static create(time: number, value: any, actionType?: ActionType, comparer?: Function): Record; private _time; time: number; private _value; value: number; private _actionType; actionType: ActionType; private _comparer; constructor(time: any, value: any, actionType: ActionType, comparer: Function); equals(other: any): any; } } declare module wdFrp { class MockObserver extends Observer { static create(scheduler: TestScheduler): MockObserver; private _messages; messages: [Record]; private _scheduler; constructor(scheduler: TestScheduler); protected onNext(value: any): void; protected onError(error: any): void; protected onCompleted(): void; dispose(): void; clone(): MockObserver; } } declare module wdFrp { class MockPromise { static create(scheduler: TestScheduler, messages: [Record]): MockPromise; private _messages; private _scheduler; constructor(scheduler: TestScheduler, messages: [Record]); then(successCb: Function, errorCb: Function, observer: IObserver): void; } } declare module wdFrp { class TestScheduler extends Scheduler { static next(tick: any, value: any): Record; static error(tick: any, error: any): Record; static completed(tick: any): Record; static create(isReset?: boolean): TestScheduler; constructor(isReset: boolean); private _clock; clock: number; private _isReset; private _isDisposed; private _timerMap; private _streamMap; private _subscribedTime; private _disposedTime; private _observer; setStreamMap(observer: IObserver, messages: [Record]): void; remove(observer: Observer): void; publishRecursive(observer: MockObserver, initial: any, recursiveFunc: Function): void; publishInterval(observer: IObserver, initial: any, interval: number, action: Function): number; publishIntervalRequest(observer: IObserver, action: Function): number; publishTimeout(observer: IObserver, time: number, action: Function): number; private _setClock(); startWithTime(create: Function, subscribedTime: number, disposedTime: number): MockObserver; startWithSubscribe(create: any, subscribedTime?: number): MockObserver; startWithDispose(create: any, disposedTime?: number): MockObserver; publicAbsolute(time: any, handler: any): void; start(): void; createStream(args: any): TestStream; createObserver(): MockObserver; createResolvedPromise(time: number, value: any): MockPromise; createRejectPromise(time: number, error: any): MockPromise; private _getMinAndMaxTime(); private _exec(time, map); private _runStream(time); private _runAt(time, callback); private _tick(time); } } declare module wdFrp { enum ActionType { NEXT = 0, ERROR = 1, COMPLETED = 2, } } declare module wdFrp { class TestStream extends BaseStream { static create(messages: [Record], scheduler: TestScheduler): TestStream; scheduler: TestScheduler; private _messages; constructor(messages: [Record], scheduler: TestScheduler); subscribeCore(observer: IObserver): SingleDisposable; } } declare module "wdfrp" { export = wdFrp; }