type Ok = { _tag: 'ok'; value: A; }; type Err = { _tag: 'err'; error: E; }; type Die = { _tag: 'die'; cause?: unknown; }; export type Exit = Ok | Err | Die; export declare const Exit: { ok: (value: A) => Exit; err: (error: E) => Exit; die: (cause?: unknown) => Exit; isOk: (e: Exit) => e is Ok; isErr: (e: Exit) => e is Err; isDie: (e: Exit) => e is Die; }; export declare class Task { private readonly effect; private constructor(); run(signal: AbortSignal): Promise>; fork(): { exit: Promise>; abort: () => void; }; unsafeRun(): Promise>; map(f: (a: A) => B): Task; flatMap(f: (a: A) => Task): Task; tap(f: (a: A) => void | PromiseLike): Task; mapError(f: (e: E) => E2): Task; catchAll(f: (e: E) => Task): Task; catchWhen(key: K, value: V, handler: (e: Extract>) => Task): Task>>; filter(predicate: (a: A) => a is B, onFalse: (a: A) => E2): Task; filter(predicate: (a: A) => boolean, onFalse: (a: A) => E2): Task; tapError(f: (e: E) => void | PromiseLike): Task; withTimeout(ms: number): Task; static succeed(value: A): Task; static fail(error: E): Task; static die(cause?: unknown): Task; static never(): Task; static sync(thunk: () => A): Task; static lazy(thunk: () => Task): Task; static attempt(options: { try: () => A | PromiseLike; catch: (error: unknown) => E; }): Task; static gen, T>(f: () => Generator): Task ? E : never>; [Symbol.iterator](): Generator, A, any>; } export {}; //# sourceMappingURL=index.d.ts.map