export declare const ResultType: { Ok: symbol; Err: symbol; }; export interface Match { ok: (val: T) => U; err: (val: E) => U; } export interface Result { type: symbol; is_ok(): boolean; is_err(): boolean; ok(): T | never; err(): E | never; ok_or(optb: T): T; match(fn: Match): U; map(fn: (val: T) => U): Result; } export interface _Ok extends Result { ok(): T; err(): never; match(fn: Match): U; map(fn: (val: T) => U): _Ok; } export interface _Err extends Result { ok(): never; err(): E; match(fn: Match): U; map(fn: (val: T) => U): _Err; } export declare function Ok(val: T): _Ok; export declare function Err(val: E): _Err; export declare function is_result(val: Result | any): val is Result; export declare function is_ok(val: Result): val is _Ok; export declare function is_err(val: Result): val is _Err;