import { Action } from '../types'; import { Constructor, BaseExecutor } from './__interfaces__'; export declare class StreamExecutorFacade { private _initialValue; private _chainClass; private _batchClass; constructor(initialValue: T, option: { chainClass?: Constructor; batchClass?: Constructor; }); /** * sequential execute. * call `asAsync` method after chain method if you use async/await in chain. * @see https://github.com/nor-ko-hi-jp/stream-executor/blob/master/README.md#4-use-asynchronous-execution-in-createstreamchain * @see https://github.com/nor-ko-hi-jp/stream-executor/blob/master/README.md#using-stream-executor * @param act1 (value: T) => U * @param act2 (value: T) => U * @param act3 (value: T) => U * @param act4 (value: T) => U * @param act5 (value: T) => U * @param act6 (value: T) => U * @param act7 (value: T) => U * @param act8 (value: T) => U * @param act9 (value: T) => U * @param act10 (value: T) => U */ chain(act1: Action, act2?: Action, act3?: Action, act4?: Action, act5?: Action, act6?: Action, act7?: Action, act8?: Action, act9?: Action, act10?: Action): Pick, "execute" | "initialValue">; /** * batch execute, like `when` in Kotlin. * @see https://github.com/nor-ko-hi-jp/stream-executor/blob/master/README.md#using-stream-executor-1 * @param act1 (value: T) => U * @param act2 (value: T) => U * @param act3 (value: T) => U * @param act4 (value: T) => U * @param act5 (value: T) => U * @param act6 (value: T) => U * @param act7 (value: T) => U * @param act8 (value: T) => U * @param act9 (value: T) => U * @param act10 (value: T) => U */ batch(act1: Action, act2?: Action, act3?: Action, act4?: Action, act5?: Action, act6?: Action, act7?: Action, act8?: Action, act9?: Action, act10?: Action): Pick, "execute">; private _create; } /** * create streamer, initialValue is shallow copied. * * * Use `deepCopy` in this library if you'd like to do deep copy. * * * Set `option.chainClass` or `option.batchClass` if you would change execution process. * - https://github.com/nor-ko-hi-jp/stream-executor/blob/master/README.md#6-replace-chain-or-batch-executor * @param initialValue T * @param option: { chainClass?: { new (...args: any[]): BaseExecutor }, batchClass?: { new (...args: any[]): BaseExecutor } } */ export declare const createStream: (initialValue: T, option?: { chainClass?: Constructor; batchClass?: Constructor; }) => StreamExecutorFacade;