import { default as Alt } from '../../interface/Alt'; import { default as Monad } from '../../interface/Monad'; import { default as PatternMatch } from '../../interface/Patternmatch'; import { default as Setoid } from '../../interface/Setoid'; import { default as Either } from './../Either'; export default abstract class Maybe implements Setoid, Monad, Alt, PatternMatch { protected _value: A; static of(v: B): Maybe; static zero(): Maybe; static Just(v: B): Maybe; static Nothing(): Maybe; static fromNullable(v: any): Maybe; static withDefault(def: any, v: any): Maybe; static catMaybes(ar: Array>): Array; static isNothing(v: Maybe): boolean; static isJust(v: Maybe): boolean; of(v: A): Maybe; alt(v: Maybe): Maybe; ap(j: Maybe): Maybe; getValue(): A; abstract equals(n: Setoid): boolean; abstract map(f: (a: A) => B): Maybe; abstract chain(f: (a: A) => Maybe): Maybe; abstract caseOf(o: { Nothing: () => T; Just: (a: A) => T; }): T; abstract isNothing(): boolean; abstract isJust(): boolean; } export declare class Nothing extends Maybe { equals(n: Setoid): boolean; map(f: (a: A) => B): Maybe; chain(f: (a: A) => Maybe): Maybe; isJust(): boolean; isNothing(): boolean; toString(): string; caseOf(o: { Nothing: () => B; Just: (a: A) => B; }): B; } export declare class Just extends Maybe { constructor(v: any); equals(j: Setoid): boolean; map(f: (a: A) => B): Maybe; chain(f: (a: A) => Maybe): Maybe; isJust(): boolean; isNothing(): boolean; toString(): string; caseOf(o: { Just: (a: A) => B; Nothing: () => B; }): B; } export declare const eitherToMaybe: (e: Either) => any; export declare const prop: Function; export declare const pick: Function;