type DefaultErrorType = Error;
export type OutcomeSuccess<SuccessType> = {
    type: 'success';
    isSuccess: true;
    value: SuccessType;
};
export type OutcomeError<ErrorType> = {
    type: 'error';
    isSuccess: false;
    error: ErrorType;
};
/**
 * An Outcome type representing either a successful value or an error.
 */
export type Outcome<SuccessType, ErrorType = DefaultErrorType> = OutcomeSuccess<SuccessType> | OutcomeError<ErrorType>;
/**
 * Creates a successful Outcome.
 */
export declare function makeSuccess<SuccessType, ErrorType = DefaultErrorType>(value: SuccessType): Outcome<SuccessType, ErrorType>;
/**
 * Creates an error Outcome.
 */
export declare function makeError<SuccessType, ErrorType = DefaultErrorType>(error: ErrorType): Outcome<SuccessType, ErrorType>;
/**
 * Checks if an Outcome is successful.
 */
export declare function isSuccess<SuccessType, ErrorType = DefaultErrorType>(result: Outcome<SuccessType, ErrorType>): result is OutcomeSuccess<SuccessType>;
/**
 * Checks if an Outcome is an error.
 */
export declare function isError<SuccessType, ErrorType = DefaultErrorType>(result: Outcome<SuccessType, ErrorType>): result is OutcomeError<ErrorType>;
export {};
