import { HKT } from "@tsplus/stdlib/prelude/HKT";
/**
* @tsplus type Maybe
*/
export type Maybe = None | Some;
export interface MaybeF extends HKT {
readonly type: Maybe;
}
export declare namespace Maybe {
type HKT = MaybeF;
}
/**
* @tsplus type Maybe.Ops
*/
export interface MaybeOps {
$: MaybeAspects;
}
export declare const Maybe: MaybeOps;
/**
* @tsplus type Maybe.Aspects
*/
export interface MaybeAspects {
}
/**
* Definitions
*
* @tsplus type Maybe.None
*/
export interface None {
readonly _tag: "None";
}
/**
* @tsplus type Maybe.Some
*/
export interface Some {
readonly _tag: "Some";
readonly value: A;
}
/**
* @tsplus unify Maybe
* @tsplus unify Maybe.Some
* @tsplus unify Maybe.None
*/
export declare function unifyMaybe>(self: X): Maybe ? A : never>;
export type ArrayOfMaybies[]> = {
[k in keyof Ts]: Ts[k] extends Maybe ? A : never;
}[number];
/**
* Constructs `None`.
* @tsplus static Maybe.Ops none
* @tsplus location "@tsplus/stdlib/data/Maybe/definition"
*/
export declare const none: Maybe;
/**
* Constructs `None`.
* @tsplus static Maybe.Ops empty
* @tsplus location "@tsplus/stdlib/data/Maybe/definition"
*/
export declare function empty(): Maybe;
/**
* Constructs `Some`.
* @tsplus static Maybe.Ops some
* @tsplus location "@tsplus/stdlib/data/Maybe/definition"
*/
export declare function some(a: A): Maybe;
/**
* Returns `true` if the maybe is `None`, `false` otherwise.
* @tsplus fluent Maybe isNone
* @tsplus location "@tsplus/stdlib/data/Maybe/definition"
*/
export declare function isNone(fa: Maybe): fa is None;
/**
* Returns `true` if the maybe is an instance of `Some`, `false` otherwise.
* @tsplus fluent Maybe isSome
* @tsplus location "@tsplus/stdlib/data/Maybe/definition"
*/
export declare function isSome(fa: Maybe): fa is Some;
/**
* @tsplus static Maybe.Ops isMaybe
* @tsplus location "@tsplus/stdlib/data/Maybe/definition"
*/
export declare function isMaybe(u: unknown): u is Maybe;
/**
* @tsplus operator Maybe ==
* @tsplus location "@tsplus/stdlib/data/Maybe/definition"
*/
export declare function equals(a: Maybe, b: Maybe): boolean;
//# sourceMappingURL=definition.d.ts.map