type Success<a> = {
    status: 'success';
    value: a;
};
type Failure<e> = {
    status: 'failure';
    error: e;
};
export type Result<a, e> = Success<a> | Failure<e>;
/**
 * Return a successful response
 */
export declare const succeed: <a>(a: a) => Success<a>;
/**
 * Return a failure result
 */
export declare const willFail: <e>(e: e) => Failure<e>;
export declare const withDefault: <a, e>(defaultValue: a) => (result: Result<a, e>) => a;
export declare const map1: <a, b, e>(func: (value: a) => b) => (result: Result<a, e>) => Result<b, e>;
export declare const andThen: <a, b, e>(func: (value: a) => Result<b, e>) => (result: Result<a, e>) => Result<b, e>;
export {};
