import { Cata, WhenNever } from '../Basics'; import Maybe from '../Maybe'; import Either from '../Either'; import { RemoteData } from './index'; export interface Optional extends RemoteData { isNotAsked(): boolean; isEqual(another: Optional, WhenNever>): boolean; swap(): Optional; map(fn: (value: T) => R): Optional; mapFailure(fn: (error: E) => S): Optional; mapBoth(onFailure: (error: E) => S, onSucceed: (value: T) => R): Optional; chain(fn: (value: T) => Optional, R>): Optional, R>; orElse(fn: () => Optional, WhenNever>): Optional, WhenNever>; cata(pattern: Optional.Pattern): R; tap(fn: (that: Optional) => R): R; } export declare namespace Optional { type Pattern = Cata<{ NotAsked(): R; Loading(): R; Failure(error: E): R; Succeed(value: T): R; }>; const NotAsked: Optional; const Loading: Optional; const Failure: (error: E) => Optional; const Succeed: (value: T) => Optional; const fromMaybe: (error: E, maybe: Maybe) => Optional; const fromEither: (either: Either) => Optional; const shape: (object: { [K in keyof O]: Optional; }) => Optional; const combine: (array: Optional[]) => Optional; } export declare type Pattern = Optional.Pattern; export declare const NotAsked: Optional; export declare const Loading: Optional; export declare const Failure: (error: E) => Optional; export declare const Succeed: (value: T) => Optional; export declare const fromMaybe: (error: E, maybe: Maybe) => Optional; export declare const fromEither: (either: Either) => Optional; export declare const shape: (object: { [K in keyof O]: Optional; }) => Optional; export declare const combine: (array: Optional[]) => Optional; export default Optional;