import { Option } from "../option/option"; export declare const ResultType: { Ok: symbol; Err: symbol; }; export interface Match { ok: (val: T) => U; err: (val: E) => U; } export interface Result { type: symbol; isOk(): boolean; isErr(): boolean; ok(): Option; err(): Option; unwrap(): T | never; unwrapOr(optb: T): T; unwrapOrElse(fn: (err: E) => T): T; unwrapErr(): E | never; match(fn: Match): U; map(fn: (val: T) => U): Result; mapErr(fn: (err: E) => U): Result; andThen(fn: (val: T) => Result): Result; orElse(fn: (err: E) => Result): Result | Result; } export interface ResOk extends Result { unwrap(): T; unwrapOr(optb: T): T; unwrapOrElse(fn: (err: E) => T): T; unwrapErr(): never; match(fn: Match): U; map(fn: (val: T) => U): ResOk; mapErr(fn: (err: E) => U): ResOk; andThen(fn: (val: T) => Result): Result; orElse(fn: (err: E) => Result): Result; } export interface ResErr extends Result { unwrap(): never; unwrapOr(optb: T): T; unwrapOrElse(fn: (err: E) => T): T; unwrapErr(): E; match(fn: Match): U; map(fn: (val: T) => U): ResErr; mapErr(fn: (err: E) => U): ResErr; andThen(fn: (val: T) => Result): ResErr; orElse(fn: (err: E) => Result): Result; } export declare function Ok(val: T): ResOk; export declare function Err(err: E): ResErr; export declare function isOk(val: Result): val is ResOk; export declare function isErr(val: Result): val is ResErr; //# sourceMappingURL=result.d.ts.map