import type { Thunk } from "./interfaces.ts"; import { Step } from "./step.ts"; /** * When using this, always use `const`! Otherwise tuples will show up as arrays * and break things. */ export type Multistep = null | undefined | Step | readonly [...(readonly Step[])] | Record; export type UnwrapMultistep = TMultistepSpec extends null ? null : TMultistepSpec extends undefined ? undefined : TMultistepSpec extends Step ? U : TMultistepSpec extends readonly [...(readonly any[])] ? { [index in keyof TMultistepSpec]: TMultistepSpec[index] extends Step ? V : never; } : { [key in keyof TMultistepSpec]: TMultistepSpec[key] extends Step ? V : never; }; interface MultistepCacheConfig { identifier: string; cacheSize: number; } export declare function multistep(specOrThunk: Thunk, stable?: string | true | MultistepCacheConfig): Step>; export declare function isMultistep(spec: any): spec is TMultistepSpec; export {}; //# sourceMappingURL=multistep.d.ts.map