export interface ErrorLike { message: string; name?: string; } export declare const isErrorLike: (value: unknown) => value is ErrorLike; interface Pass { ok: true; value: T; } interface Fail { ok: false; error: E; } /** * This type represents the outcome of an operation that can either * succeed or fail. */ export type Result = Pass | Fail; declare function pass(): Pass; declare function pass(value: T): Pass; export declare const RESULT: { /** * Creates a successful Result. * * No argument has to be passed to the method if it is void. * I.e. both of these are valid: * * Result.pass(42) // Result * Result.pass() // Result */ pass: typeof pass; /** * Creates a failed Result. */ fail(error: E): Fail; }; /** * unwrap returns the value form result, if result is Pass, or the * default value. * * @param result the {@link Result} to unwrap * @param defaultValue the value to return if `result` is not {@link Pass} * @returns The unwrapped result or the default value */ export declare function unwrapOr(result: Result, defaultValue: T): T; export {};