type CurriedFunction2 = ((t1: T1, t2: T2) => R) & ((t1: T1, ...rest: Array) => (t2: T2) => R); declare namespace flyd { interface Stream { (): T; (value: T): Stream; (value: Promise | PromiseLike): Stream; map(project: (value: T) => V): Stream; ap(this: Stream<(value: A) => B>, stream: Stream): Stream; chain(project: (value: T) => Stream): Stream; of(...values: V[]): Stream; pipe(operator: (input: Stream) => Stream): Stream; ['fantasy-land/map'](project: (value: T) => V): Stream; ['fantasy-land/ap'](fn: (value: Stream) => V): Stream; ['fantasy-land/chain'](project: (value: T) => Stream): Stream; ['fantasy-land/of'](...values: V[]): Stream; end: Stream; val: T; hasVal: boolean; } interface Combine { (fn: (value: Stream, self: Stream) => R | void, streams: [Stream]): Stream; ( fn: (value: Stream, t1: Stream, self: Stream) => R | void, streams: [Stream, Stream] ): Stream; ( fn: (value: Stream, t1: Stream, t2: Stream, self: Stream) => R | void, streams: [Stream, Stream, Stream] ): Stream; ( fn: (value: Stream, t1: Stream, t2: Stream, t3: Stream, self: Stream) => R | void, streams: [Stream, Stream, Stream, Stream] ): Stream; } interface CreateStream { (): Stream; (value: T): Stream; (value: Promise | PromiseLike): Stream; (): Stream; } interface Static { stream: CreateStream; immediate(stream: Stream): Stream; isStream(stream: any): boolean; combine: Combine; endsOn(end$: Stream, stream: Stream): Stream; map(accessor: (value: T) => V): (stream: Stream) => Stream; map(accessor: (value: T) => V, stream: Stream): Stream; ap(value$: Stream, transform$: Stream<(value: A) => B>): Stream; ap(value$: Stream): (transform$: Stream<(value: A) => B>) => Stream chain(accessor: (value: T) => Stream): (stream: Stream) => Stream; chain(accessor: (value: T) => Stream, stream: Stream): Stream; on(onfn: (value: T) => void): (stream: Stream) => Stream; on(onfn: (value: T) => void, stream: Stream): Stream; scan(reducer: (acc: T, value: V) => T, initial: T, stream: Stream): Stream; scan(reducer: (acc: T, value: V) => T, initial: T): (stream: Stream) => Stream; scan(reducer: (acc: T, value: V) => T): (initial: T) => (stream: Stream) => Stream; merge(stream1: Stream, stream2: Stream): Stream; merge(stream1: Stream): (stream2: Stream) => Stream; transduce(mapfn: Function, stream: Stream): Stream; transduce(mapfn: Function): (stream: Stream) => Stream; fromPromise(promise: PromiseLike): Stream; flattenPromise(promise$: Stream>): Stream; curryN(length: number, fn: (...args: Array) => void): Function; } } declare module 'flyd' { const f: flyd.Static; export = f; } declare module 'flyd/module/aftersilence' { interface aftersilence { (delay: number, stream: flyd.Stream): flyd.Stream; (delay: number): (stream: flyd.Stream) => flyd.Stream; } export = aftersilence; } declare module 'flyd/module/droprepeats' { interface dropRepeats { (s: flyd.Stream): flyd.Stream; } interface dropRepeatsWith { (isEqual: (value: T) => boolean, stream: flyd.Stream): flyd.Stream; (isEqual: (value: T) => boolean): (stream: flyd.Stream) => flyd.Stream; } export const dropRepeats: dropRepeats; export const dropRepeatsWith: dropRepeatsWith; } declare module 'flyd/module/every' { interface every { (ms: number): flyd.Stream; } const _every: every; export = _every; } declare module 'flyd/module/filter' { interface Filter { (project: (val: T) => val is V, stream: flyd.Stream): flyd.Stream; (project: (val: T) => val is V): (stream: flyd.Stream) => flyd.Stream; (predicate: (val: T) => boolean, stream: flyd.Stream): flyd.Stream; (predicate: (val: T) => boolean): (stream: flyd.Stream) => flyd.Stream; } const _Filter: Filter; export = _Filter; } declare module 'flyd/module/forwardto' { interface ForwardTo { (stream: flyd.Stream, project: (value: V) => T): flyd.Stream; (stream: flyd.Stream): (project: (value: V) => T) => flyd.Stream; } const _ForwardTo: ForwardTo; export = _ForwardTo; } declare module 'flyd/module/inlast' { interface InLast { (ms: number, stream: flyd.Stream): flyd.Stream; (ms: number): (stream: flyd.Stream) => flyd.Stream; } const _InLast: InLast; export = _InLast; } declare module 'flyd/module/keepwhen' { interface KeepWhen { (when: flyd.Stream, stream: flyd.Stream): flyd.Stream; (when: flyd.Stream): (stream: flyd.Stream) => flyd.Stream; } const _KeepWhen: KeepWhen; export = _KeepWhen; } declare module 'flyd/module/lift' { interface Lift { (liftFn: (t1: T1, t2: T2) => R, s1: flyd.Stream, s2: flyd.Stream): flyd.Stream; (liftFn: (t1: T1, t2: T2, t3: T3) => R, s1: flyd.Stream, s2: flyd.Stream, s3: flyd.Stream): flyd.Stream; (liftFn: (t1: T1, t2: T2, t3: T3, t4: T4) => R, s1: flyd.Stream, s2: flyd.Stream, s3: flyd.Stream, s4: flyd.Stream): flyd.Stream; (liftFn: (...rest: any[]) => T, ...streams: flyd.Stream[]): flyd.Stream; } const _Lift: Lift; export = _Lift; } declare module 'flyd/module/mergeall' { interface MergeAll { (streams: [flyd.Stream, flyd.Stream]): flyd.Stream; (streams: [flyd.Stream, flyd.Stream, flyd.Stream]): flyd.Stream; (streams: flyd.Stream[]): flyd.Stream; } const _MergeAll: MergeAll; export = _MergeAll; } declare module 'flyd/module/obj' { interface ObjModule { streamProps(obj: T): { [P in keyof T]: flyd.Stream }; stream }>(obj: T): flyd.Stream<{ [P in keyof T]: T[P]['val'] }>; extractProps(obj: any): any; } const _ObjModule: ObjModule; export = _ObjModule; } declare module 'flyd/module/previous' { type previous = (stream: flyd.Stream) => flyd.Stream; const _previous: previous; export = _previous; } declare module 'flyd/module/sampleon' { interface SampleOn { (samplewhen: flyd.Stream, stream: flyd.Stream): flyd.Stream; (samplewhen: flyd.Stream): (stream: flyd.Stream) => flyd.Stream; } const _SampleOn: SampleOn; export = _SampleOn; } declare module 'flyd/module/scanmerge' { type ScanFn = (acc: T, value: V) => T; interface ScanMerge { (pairs: Array<[flyd.Stream, ScanFn]>, initial: T): flyd.Stream; (pairs: Array<[flyd.Stream, ScanFn]>): (initial: T) => flyd.Stream; } const _ScanMerge: ScanMerge; export = _ScanMerge; } declare module 'flyd/module/switchlatest' { interface SwitchLatest { (stream: flyd.Stream>): flyd.Stream; } const _SwitchLatest: SwitchLatest; export = _SwitchLatest; } declare module 'flyd/module/takeuntil' { interface takeuntil { (source: flyd.Stream, end: flyd.Stream): flyd.Stream; (source: flyd.Stream): (end: flyd.Stream) => flyd.Stream; } const _takeuntil: takeuntil; export = _takeuntil; }