export declare type Nothing = { kind: 'Nothing'; }; export declare type Just = { kind: 'Just'; value: A; }; export declare type Maybe = Just | Nothing; export declare function Just(value: A): Maybe; export declare function Nothing(): Maybe; export declare function isJust(maybe: Maybe): maybe is Just; export declare function isNothing(maybe: Maybe): maybe is Just; export declare function withDefault(value: A, maybeValue: Maybe): A; export declare function map(func: (val: A) => Value, maybeValue: Maybe): Maybe; export declare function map2(func: (firstValue: A, secondValue: B) => Value, firstMaybeValue: Maybe, secondMaybeValue: Maybe): Maybe; export declare function map3(func: (firstValue: A, secondValue: B, thirdValue: C) => Value, firstMaybeValue: Maybe, secondMaybeValue: Maybe, thirdMaybeValue: Maybe): Maybe; export declare function andThen(func: (firstValue: A) => Maybe, maybeValue: Maybe): Maybe;