interface BaseResult { readonly ok: boolean; unwrap(): T; unwrapErr(): E; map(m: (value: T) => T2): Result; flatMap>(m: (value: T) => T2): Result, E>; flatMap>(m: (value: T) => E2): Result>; flatMap>(m: (value: T) => R): Result, E | ErrValueOf>; } type OkValueOf = R extends OkResult ? T : never; type ErrValueOf = R extends ErrResult ? E : never; type ValueOf = OkValueOf | ErrValueOf; export declare class OkResult implements BaseResult { private readonly value; readonly ok = true; constructor(value: T); unwrap(): T; unwrapErr(): never; map(m: (value: T) => T2): OkResult; flatMap>(m: (value: T) => T2): T2; flatMap>(m: (value: T) => E2): E2; flatMap>(m: (value: T) => R): R; } export declare const Ok: (value: T) => OkResult; export declare class ErrResult implements BaseResult { private readonly value; readonly ok = false; constructor(value: E); unwrap(): never; unwrapErr(): E; map(): ErrResult; flatMap(): ErrResult; } export declare const Err: (value: E) => ErrResult; export type Result = OkResult | ErrResult; export {}; //# sourceMappingURL=result.d.ts.map