import * as types from '@most/types';
import * as Alt_ from 'fp-ts/Alt';
import { Alternative1 } from 'fp-ts/Alternative';
import * as App from 'fp-ts/Applicative';
import * as Ap from 'fp-ts/Apply';
import * as CH from 'fp-ts/Chain';
import { ChainRec1 } from 'fp-ts/ChainRec';
import { Compactable1 } from 'fp-ts/Compactable';
import { Either } from 'fp-ts/Either';
import { Eq } from 'fp-ts/Eq';
import { Filterable1 } from 'fp-ts/Filterable';
import { FromIO1 } from 'fp-ts/FromIO';
import { FromTask1 } from 'fp-ts/FromTask';
import { Functor1 } from 'fp-ts/Functor';
import { Monad1 } from 'fp-ts/Monad';
import { Monoid } from 'fp-ts/Monoid';
import * as O from 'fp-ts/Option';
import { Pointed1 } from 'fp-ts/Pointed';
import { Predicate } from 'fp-ts/Predicate';
import { Separated } from 'fp-ts/Separated';
import * as FRe from './FromResume';
import { Arity1 } from './function';
import * as R from './Resume';
/**
* @since 0.9.2
* @category Model
*/
export declare type Stream = types.Stream;
/**
* @since 0.9.2
* @category Type-level
*/
export declare type ValueOf = [A] extends [Stream] ? R : never;
/**
* Convert an IO into a Most.js Task
* @since 0.9.2
* @category Constructor
*/
export declare function createCallbackTask(cb: Arity1, onError?: (error: Error) => void): types.Task;
/**
* @since 0.9.2
* @category URI
*/
export declare const URI: "@most/core/Stream";
/**
* @since 0.9.2
* @category URI
*/
export declare type URI = typeof URI;
declare module 'fp-ts/HKT' {
interface URItoKind {
[URI]: types.Stream;
}
}
/**
* Create a Stream monoid where concat is a parallel merge.
*/
/**
* @since 0.9.2
* @category Typeclass Constructor
*/
export declare const getMonoid: () => Monoid>;
/**
* Filter Option's from within a Stream
*/
/**
* @since 0.9.2
* @category Combinator
*/
export declare const compact: (stream: types.Stream>) => types.Stream;
/**
* Separate left and right values
*/
/**
* @since 0.9.2
* @category Combinator
*/
export declare const separate: (stream: types.Stream>) => Separated, types.Stream>;
/**
* @since 0.9.2
* @category Combinator
*/
export declare const partitionMap: (f: (a: A) => Either) => (fa: types.Stream) => Separated, types.Stream>;
/**
* @since 0.9.2
* @category Combinator
*/
export declare const partition: (predicate: Predicate) => (fa: types.Stream) => Separated, types.Stream>;
/**
* @since 0.9.2
* @category Combinator
*/
export declare const filterMap: (f: (a: A) => O.Option) => (fa: types.Stream) => types.Stream;
/**
* @since 0.9.2
* @category Instance
*/
export declare const Functor: Functor1;
/**
* @since 0.9.2
* @category Instance
*/
export declare const Pointed: Pointed1;
/**
* @since 0.9.2
* @category Constructor
*/
export declare const of: (a: A) => types.Stream;
/**
* @since 0.9.2
* @category Instance
*/
export declare const Apply: Ap.Apply1;
/**
* @since 0.9.2
* @category Combinator
*/
export declare const apFirst: (second: types.Stream) => (first: types.Stream) => types.Stream;
/**
* @since 0.9.2
* @category Combinator
*/
export declare const apS: (name: Exclude, fb: types.Stream) => (fa: types.Stream) => types.Stream<{ readonly [K in N | keyof A]: K extends keyof A ? A[K] : B; }>;
/**
* @since 0.9.2
* @category Combinator
*/
export declare const apSecond: (second: types.Stream) => (first: types.Stream) => types.Stream;
/**
* @since 0.9.2
* @category Combinator
*/
export declare const apT: (fb: types.Stream) => (fas: types.Stream) => types.Stream;
/**
* @since 0.9.2
* @category Typeclass Constructor
*/
export declare const getApplySemigroup: (S: import("fp-ts/Semigroup").Semigroup) => import("fp-ts/Semigroup").Semigroup>;
/**
* @since 0.9.2
* @category Instance
*/
export declare const Applicative: App.Applicative1;
/**
* @since 0.9.2
* @category Typeclass Constructor
*/
export declare const getApplicativeMonoid: (M: Monoid) => Monoid>;
/**
* @since 0.9.2
* @category Instance
*/
export declare const Chain: CH.Chain1;
/**
* @since 0.9.2
* @category Combinator
*/
export declare const chainFirst: (f: (a: A) => types.Stream) => (first: types.Stream) => types.Stream;
/**
* @since 0.9.2
* @category Combinator
*/
export declare const bind: (name: Exclude, f: (a: A) => types.Stream) => (ma: types.Stream) => types.Stream<{ readonly [K in N | keyof A]: K extends keyof A ? A[K] : B; }>;
/**
* @since 0.9.2
* @category Instance
*/
export declare const Monad: Monad1;
/**
* @since 0.9.2
* @category Combinator
*/
export declare const chainRec: (f: (value: A) => types.Stream>) => (value: A) => types.Stream;
/**
* @since 0.9.2
* @category Instance
*/
export declare const ChainRec: ChainRec1;
/**
* @since 0.9.2
* @category Combinator
*/
export declare const switchRec: (f: (value: A) => types.Stream>) => (value: A) => types.Stream;
/**
* @since 0.9.2
* @category Instance
*/
export declare const SwitchRec: ChainRec1;
/**
* @since 0.9.2
* @category Combinator
*/
export declare const mergeConcurrentlyRec: (concurrency: number) => (f: (value: A) => types.Stream>) => (value: A) => types.Stream;
/**
* @since 0.9.2
* @category Typeclass Constructor
*/
export declare const getConcurrentChainRec: (concurrency: number) => ChainRec1;
/**
* @since 0.9.2
* @category Instance
*/
export declare const FromIO: FromIO1;
/**
* @since 0.9.2
* @category Constructor
*/
export declare const fromIO: import("fp-ts/NaturalTransformation").NaturalTransformation11<"IO", "@most/core/Stream">;
/**
* @since 0.9.2
* @category Instance
*/
export declare const FromTask: FromTask1;
/**
* @since 0.9.2
* @category Constructor
*/
export declare const fromTask: import("fp-ts/NaturalTransformation").NaturalTransformation11<"Task", "@most/core/Stream">;
/**
* @since 0.9.2
* @category Instance
*/
export declare const FromResume: FRe.FromResume1;
/**
* @since 0.9.2
* @category Constructor
*/
export declare const fromResume: import("fp-ts/NaturalTransformation").NaturalTransformation11<"@typed/fp/Resume", "@most/core/Stream">;
/**
* @since 0.9.2
* @category Combinator
*/
export declare const chainFirstResumeK: (f: (value: A) => R.Resume) => (hkt: types.Stream) => types.Stream;
/**
* @since 0.9.2
* @category Combinator
*/
export declare const chainResumeK: (f: (value: A) => R.Resume) => (hkt: types.Stream) => types.Stream;
/**
* @since 0.9.2
* @category Constructor
*/
export declare const fromResumeK: (f: (...args: A) => R.Resume) => (...args: A) => types.Stream;
/**
* @since 0.9.2
* @category Instance
*/
export declare const Alt: Alt_.Alt1;
/**
* @since 0.9.2
* @category Combinator
*/
export declare const race: (second: import("fp-ts/function").Lazy>) => (first: types.Stream) => types.Stream;
/**
* @since 0.9.2
* @category Instance
*/
export declare const Alternative: Alternative1;
/**
* @since 0.9.2
* @category Constructor
*/
export declare const zero: () => types.Stream;
/**
* @since 0.9.2
* @category Instance
*/
export declare const Compactable: Compactable1;
/**
* @since 0.9.2
* @category Instance
*/
export declare const Filterable: Filterable1;
/**
* @since 0.9.2
* @category Constructor
*/
export declare const Do: types.Stream<{}>;
/**
* @since 0.9.2
* @category Combinator
*/
export declare const bindTo: (name: N) => (fa: types.Stream) => types.Stream<{ [K in N]: A; }>;
/**
* @since 0.9.2
* @category Combinator
*/
export declare const tupled: (fa: types.Stream) => types.Stream;
/**
* @since 0.9.2
* @category Constructor
*/
export declare const createSink: (sink?: Partial>) => types.Sink;
/**
* @since 0.9.2
* @category Combinator
*/
export declare const collectEvents: (scheduler: types.Scheduler) => (stream: types.Stream) => Promise;
/**
* @since 0.9.2
* @category Combinator
*/
export declare const onDispose: (disposable: types.Disposable) => (stream: types.Stream) => types.Stream;
/**
* @since 0.9.2
* @category Combinator
*/
export declare const combineAll: []>(...streams: A) => types.Stream<{ readonly [K in keyof A]: ValueOf; }>;
/**
* @since 0.11.0
* @category Combinator
*/
export declare const combineStruct: (streams: { readonly [K in keyof A]: types.Stream; }) => types.Stream;
/**
* @since 0.9.2
* @category Combinator
*/
export declare const exhaustLatest: (stream: types.Stream>) => types.Stream;
/**
* @since 0.9.2
* @category Combinator
*/
export declare const exhaustMapLatest: (f: (value: A) => types.Stream) => (stream: types.Stream) => types.Stream;
/**
* Using the provided Eq mergeMapWhen conditionally applies a Kliesli arrow
* to the values within an Array when they are added and any values removed
* from the array will be disposed of immediately
* @since 0.9.2
* @category Combinator
*/
export declare const mergeMapWhen: (Eq?: Eq) => (f: (value: V) => types.Stream) => (values: Stream) => Stream;
/**
* @since 0.9.2
* @category Combinator
*/
export declare const keyed: (Eq: Eq) => (stream: Stream) => Stream[]>;
/**
* @since 0.9.2
* @category Combinator
*/
export declare const switchFirst: (second: Stream) => (first: Stream) => Stream;
/**
* @since 0.9.2
* @category Combinator
*/
export declare function mergeFirst(a: Stream): (b: Stream) => Stream;
export * from '@most/core';
export * from '@most/types';
//# sourceMappingURL=Stream.d.ts.map