/**
 * Represents a failure or error if you will. Use function {@link Fail} to create
 * a failure instance.
 */
export type Failure<T> = {
    readonly isFailure: true;
} & T;
/**
 * Helper to return a non failure result
 * @param result Result to return.
 */
export declare function Ok<T>(result: T): T;
/**
 * Helper to return a {@link Fail} result.
 * @param failure The failure to return
 */
export declare function Fail<T>(failure: T): Failure<T>;
/**
 * Checks if a value is a {@link Failure} or not. A {@link Failure} is a value that was created
 * with the {@link Fail} function.
 * @param resultOrFailure value to check if it is a {@link Fail}'ure nor not.
 */
export declare function isFailure<E>(resultOrFailure: unknown | Failure<E> | undefined | null): resultOrFailure is Failure<E>;
//# sourceMappingURL=fail.d.ts.map