export interface IHttpError { status: number; message: string; expose?: boolean; data?: any; } type ResultErrorInput = IResultErrorAttributes | ResultError | Error; export declare class Result { readonly ok: boolean; readonly _error: RError | null; readonly _value: RValue | null; constructor(ok: boolean, _error: RError | null, _value?: RValue | null); get value(): RValue | RError; getValue(): V; getError(): E; error(): ResultError; static ok(value: V): Result; static error(error: ResultErrorInput): Result; static allOk(...results: Result[]): Result; with(): void; } export interface IResult { value: RError | RValue; getValue(): V; getError(): E; error(): ResultError; } export interface IResultErrorAttributes { message: string; code: any; data?: IResultErrorData; } export interface IResultErrorData { [key: string | number | symbol]: any; } export declare class ResultError extends Error { readonly message: string; readonly code: any; protected _data: {}; expose: boolean; constructor(message: string, code: any, _data?: {}); get status(): any; get data(): {}; metadata(data?: any): {}; static from(error: ResultErrorInput, data?: IResultErrorData): ResultError; static try(error: ResultErrorInput, data?: IResultErrorData): ResultError; toHttpResponse(): { status: any; body: { message: string; }; }; toHttpError(): IHttpError; toObject(): { code: any; message: string; expose: boolean; data: {}; }; toJSON(): { code: any; message: string; expose: boolean; data: {}; }; } export {};