import { type Result } from '@ephox/katamari'; import { type DieFn, type NextFn, type RunFn } from '../pipe/Pipe'; import { type GuardFn } from './Guard'; import { Step } from './Step'; import { TestLogs } from './TestLogs'; export interface Chain { runChain: RunFn; } export type ChainGuard = GuardFn; export declare const Chain: { on: (f: (value: T, next: NextFn, die: DieFn, logs: TestLogs) => void) => Chain; op: (fx: (value: T) => void) => Chain; async: (fx: (input: T, next: (v: U) => void, die: (err: any) => void) => void) => Chain; control: (chain: Chain, guard: ChainGuard) => Chain; mapper: (fx: (value: T) => U) => Chain; identity: Chain; binder: (fx: (input: T) => Result) => Chain; runStepsOnValue: (getSteps: (value: I) => Step[]) => Chain; inject: (value: U) => Chain; injectThunked: (f: () => U) => Chain; fromChains: (chains: Chain[]) => Chain; fromChainsWith: (initial: T, chains: Chain[]) => Chain; fromIsolatedChains: (chains: Chain[]) => Chain; fromIsolatedChainsWith: (initial: T, chains: Chain[]) => Chain; exists: (chains: Chain[]) => Chain; fromParent: (parent: Chain, chains: Chain[]) => Chain; asStep: (initial: U, chains: Chain[]) => Step; isolate: (initial: U, chain: Chain) => Step; wait: (amount: number) => Chain; debugging: Chain; log: (message: string) => Chain; label: (label: string, chain: Chain) => Chain; toPromise: (c: Chain) => (a: A) => Promise; fromPromise: (f: (a: A) => Promise) => Chain; pipeline: (chains: Chain[], onSuccess: NextFn, onFailure: DieFn, initLogs?: TestLogs) => void; predicate: (p: (value: T) => boolean) => Chain; }; //# sourceMappingURL=Chain.d.ts.map