export declare class NCOptional<T> {
    private value;
    private constructor();
    static of<U>(value: U): NCOptional<U>;
    static ofNullable<U>(value: U | undefined | null): NCOptional<U>;
    static try<U>(f: () => U): NCOptional<U>;
    static empty<U>(): NCOptional<U>;
    isPresent(): boolean;
    isEmpty(): boolean;
    ifPresent(action: (value: T) => void): void;
    ifPresentOrElse(action: (value: T) => void, orElse: () => void): void;
    get(): T;
    orUndefined(): T | undefined;
    orElse(other: T): T;
    orElseGet(other: () => T): T;
    orElseThrow(error: () => Error): T;
    do(f: (value: T) => void): NCOptional<T>;
    map<U>(mapper: (value: T) => U): NCOptional<U>;
    try<U>(f: (t: T) => U): NCOptional<U>;
    flatMap<U>(mapper: (value: T) => NCOptional<U>): NCOptional<U>;
    filter(predicate: (value: T) => boolean): NCOptional<T>;
    equals(other: NCOptional<T>): boolean;
    toString(): string;
}
