import { Result } from './result.js';
export declare class Option<T> {
    private type;
    private value?;
    private constructor();
    private constructor();
    static Some<T>(value: T): Option<T>;
    static None<T>(): Option<T>;
    isSome(): boolean;
    isNone(): boolean;
    map<U>(mapper: (val: T) => U): Option<U>;
    filter<U extends T = T>(predicate: (val: T) => boolean): Option<U>;
    mapOr<U>(defaultValue: U, mapper: (val: T) => U): U;
    mapOrElse<U>(createDefaultValue: () => U, mapper: (val: T) => U): U;
    unwrap(): T;
    unwrapOr<U>(defaultValue: U): T | U;
    unwrapOrElse<U>(createDefaultValue: () => U): T | U;
    expect(message: string): T;
    okOr<E>(err: E): Result<T, E>;
    okOrElse<E>(createErr: () => E): Result<T, E>;
}
