export type Result = { ok: true; value: TValue; } | { ok: false; error: TError; }; export declare const Result: { ok(value: TValue): Result; err(error: TError): Result; isOk(result: Result): result is { ok: true; value: TValue; }; isErr(result: Result): result is { ok: false; error: TError; }; }; export interface TaggedErrorValue extends Error { readonly _tag: Tag; toJSON(): { _tag: Tag; message: string; } & Record; } export interface TaggedErrorFactory { new (props: Props): TaggedErrorValue & Readonly; is(value: unknown): value is TaggedErrorValue; } export declare function TaggedError(tag: Tag): TaggedErrorFactory; declare const LaneBusy_base: TaggedErrorFactory<"LaneBusy">; export declare class LaneBusy extends LaneBusy_base<{ lane: string; operationId: string; operationKind: "run" | "compaction" | "navigation"; message: string; }> { } declare const OperationMismatch_base: TaggedErrorFactory<"OperationMismatch">; export declare class OperationMismatch extends OperationMismatch_base<{ lane: string; expectedOperationId: string; currentOperationId?: string; lastOperationId?: string; message: string; }> { } declare const NoActiveRun_base: TaggedErrorFactory<"NoActiveRun">; export declare class NoActiveRun extends NoActiveRun_base<{ lane: string; message: string; }> { } declare const NoActiveOperation_base: TaggedErrorFactory<"NoActiveOperation">; export declare class NoActiveOperation extends NoActiveOperation_base<{ lane: string; message: string; }> { } declare const NothingToResume_base: TaggedErrorFactory<"NothingToResume">; export declare class NothingToResume extends NothingToResume_base<{ lane: string; message: string; }> { } declare const NothingToCompact_base: TaggedErrorFactory<"NothingToCompact">; export declare class NothingToCompact extends NothingToCompact_base<{ lane: string; message: string; }> { } declare const InvalidMessage_base: TaggedErrorFactory<"InvalidMessage">; export declare class InvalidMessage extends InvalidMessage_base<{ lane: string; reason: string; message: string; }> { } declare const InvalidNavigation_base: TaggedErrorFactory<"InvalidNavigation">; export declare class InvalidNavigation extends InvalidNavigation_base<{ lane: string; reason: string; message: string; }> { } declare const UnknownSkill_base: TaggedErrorFactory<"UnknownSkill">; export declare class UnknownSkill extends UnknownSkill_base<{ name: string; message: string; }> { } declare const UnknownTemplate_base: TaggedErrorFactory<"UnknownTemplate">; export declare class UnknownTemplate extends UnknownTemplate_base<{ name: string; message: string; }> { } declare const UnknownTarget_base: TaggedErrorFactory<"UnknownTarget">; export declare class UnknownTarget extends UnknownTarget_base<{ targetId: string; message: string; }> { } declare const InvalidLane_base: TaggedErrorFactory<"InvalidLane">; export declare class InvalidLane extends InvalidLane_base<{ lane: string; reason: string; message: string; }> { } declare const Closed_base: TaggedErrorFactory<"Closed">; export declare class Closed extends Closed_base<{ message: string; }> { } export declare class HarnessFault extends Error { readonly cause: unknown; constructor(message: string, cause: unknown); } export declare class HarnessClosed extends Error { constructor(); } export type ErrorMatchers, TValue> = { [Tag in TError["_tag"]]: (error: Extract) => TValue; }; export declare function matchError, TValue>(error: TError, matchers: ErrorMatchers): TValue; export {}; //# sourceMappingURL=result.d.ts.map