export default interface MaybeProvider { /** * True if value is some, otherwise false */ readonly isSome: boolean; /** * True if value is none, otherwise false */ readonly isNone: boolean; /** * Transform the mapped element and return new MaybeProvider with the result * @param {(wrapped: T) => R} f * @returns {MaybeProvider} */ map(f: (wrapped: T) => R): MaybeProvider; flatMap(f: (unwrapped: T) => MaybeProvider): MaybeProvider; /** * Return value * @returns {T} */ get(): T; /** * Return value or provided value * @param {T} value * @returns {T} */ getOrElse(value: T): T; /** * Default value wrapped in MaybeProvider * @param {T} value * @returns {MaybeProvider} */ defaulting(value: T): MaybeProvider; }