import { MapOption, Option, OptionCombinators, OptionMapOption, OptionMapOrElse, OptionMapResult, OptionPromise, Result, ResultPromise, UnwrapableOption } from "./mod"; export declare class SomeValue implements UnwrapableOption { value: T; constructor(value: T); [Symbol.iterator](): IterableIterator; get type(): symbol; and(optb: Option): Option; andThen(fn: (some: T) => OptionPromise): OptionPromise; andThen(fn: (some: T) => Promise>): OptionPromise; andThen(fn: (some: T) => Option): Option; filter(predicate: (some: T) => boolean): Option; flatten(this: Option): Option; flatten(this: Option>): Option; isSome(): boolean; isNone(): boolean; /** * Maps an Option to Option by applying a function to a contained value. */ map(fn: (some: T) => U): MapOption; mapOption(_: () => U, fn: (some: T) => U): OptionMapOption; mapResult(_: () => U, fn: (some: T) => U): OptionMapResult; mapOrElse(_: () => U, fn: (some: T) => U): OptionMapOrElse; okOr(_: E): Result; okOrElse(fn: () => Promise): ResultPromise; okOrElse(fn: () => E): Result; or(_: Option): Option; orElse(fn: () => Promise>): OptionPromise; orElse(fn: () => Option): Option; unwrap(): T; unwrapOr(_: T): T; unwrapOrElse(def: () => T): T; unwrapOrElse(def: () => Promise): T | Promise; xor(optb: Option): Option; } export declare class NoneValue implements OptionCombinators, UnwrapableOption { constructor(); [Symbol.iterator](): IterableIterator; isSome(): boolean; isNone(): boolean; map(_: (val: T) => U): MapOption; mapOption(def: () => U, _: (some: T) => U): OptionMapOption; mapResult(def: () => U, _: (some: T) => U): OptionMapResult; mapOrElse(def: () => U, _: (some: T) => U): OptionMapOrElse; andThen(fn: (some: T) => OptionPromise): OptionPromise; andThen(fn: (some: T) => Promise>): OptionPromise; andThen(fn: (some: T) => Option): Option; okOr(err: E): Result; okOrElse(fn: () => Promise): ResultPromise; okOrElse(fn: () => E): Result; or(optb: Option): Option; orElse(fn: () => Promise>): OptionPromise; orElse(fn: () => Option): Option; and(_: Option): Option; filter(_: (some: T) => boolean): Option; flatten(this: Option): Option; flatten(this: Option>): Option; unwrap(): T; unwrapOr(def: T): T; unwrapOrElse(def: () => T): T; unwrapOrElse(def: () => Promise): T | Promise; xor(optb: Option): Option; get type(): symbol; }