export declare class Result<T, E> {
    get: {
        type: 'OK';
        value: T;
    } | {
        type: 'FAIL';
        error: E;
    };
    map: <V>(f: (value: T) => V) => Result<V, E>;
    mapError: <V>(f: (value: E) => V) => Result<T, V>;
    andThen: <V>(f: (value: T) => Result<V, E>) => Result<V, E>;
    static merge: <T_1, E_1>(values: Result<T_1, E_1>[], addErrorIndex: (index: number, error: E_1) => E_1) => Result<T_1[], E_1[]>;
    static ok: <T_1, E_1>(value: T_1) => Result<T_1, E_1>;
    static fail: <T_1, E_1>(error: E_1) => Result<T_1, E_1>;
    static isOk: <T_1, E_1>(value: Result<T_1, E_1>) => boolean;
    static isFail: <T_1, E_1>(value: Result<T_1, E_1>) => boolean;
    constructor(value: {
        type: 'OK';
        value: T;
    } | {
        type: 'FAIL';
        error: E;
    });
}
