import * as t from 'io-ts'; import { Serialisable } from './Serialisable'; export declare type URI = 'Maybe'; export declare class Maybe { private readonly value; static just: (a: A_1) => Maybe; static nothing: Maybe; static fromNullable: (a: A_1 | null | undefined) => Maybe; static tryCatch: (f: () => A_1) => Maybe; private constructor(); uri: URI; map: (f: (a: A) => B) => Maybe; flatMap: (f: (a: A) => Maybe) => Maybe; mapNullable: (f: (a: A) => B | null | undefined) => Maybe; fold: (onNothing: B, onJust: (a: A) => B) => B; foldL: (onNothing: () => B, onJust: (a: A) => B) => B; getOrElse(a: A): A; filter: (p: (a: A) => boolean) => Maybe; isNothing: boolean; isJust: boolean; exists: (p: (a: A) => boolean) => boolean; toNullable: A | null; foldToNullable: (f: (a: A) => B) => B | null; } declare type t = Nothing | Just; declare type Nothing = { tag: 'Nothing'; }; declare type Just = { tag: 'Just'; value: A; }; export declare type SerialiseableMaybe = Serialisable>; export declare const serialisableMaybeC: (a: t.Type) => t.Type>, Serialisable<"Maybe", t>, unknown>; export declare const fromSerialisable: (a: t.Type) => t.Type, Maybe, unknown>; export declare const JustC: (a: t.Type) => t.Type, Maybe, unknown>; export declare const NothingC: (a: t.Type) => t.Type, Maybe, unknown>; export declare const MaybeC: (a: t.Type) => t.Type, Maybe, unknown>; export declare const requiredC: (aC: t.Type, message?: string) => t.Type, unknown>; export {};