import { WhenNever } from '../Basics'; import Maybe from '../Maybe'; import { Optional } from './Optional'; declare abstract class RemoteData implements Optional { isNotAsked(): boolean; isLoading(): boolean; isFailure(): boolean; isSucceed(): boolean; abstract 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>; getOrElse(defaults: WhenNever): WhenNever; abstract cata(pattern: Optional.Pattern): R; toMaybe(): Maybe; tap(fn: (that: Optional) => R): R; } export declare const NotAsked: { isNotAsked(): boolean; isEqual(another: Optional): boolean; cata(pattern: { NotAsked: () => R; Loading: () => R; Failure: (error: never) => R; Succeed: (value: never) => R; _?: (() => never) | undefined; } | { NotAsked?: (() => R) | undefined; Loading?: (() => R) | undefined; Failure?: ((error: never) => R) | undefined; Succeed?: ((value: never) => R) | undefined; _: () => R; }): R; isLoading(): boolean; isFailure(): boolean; isSucceed(): boolean; swap(): Optional; map(_fn: (value: never) => R): Optional; mapFailure(_fn: (error: never) => S): Optional; mapBoth(onFailure: (error: never) => S, onSucceed: (value: never) => R): Optional; chain(_fn: (value: never) => Optional, R>): Optional, R>; orElse(fn: () => Optional, WhenNever>): Optional, WhenNever>; getOrElse(defaults: WhenNever): WhenNever; toMaybe(): Maybe; tap(fn: (that: Optional) => R): R; }; export declare const Loading: { isLoading(): boolean; isEqual(another: Optional): boolean; cata(pattern: { NotAsked: () => R; Loading: () => R; Failure: (error: never) => R; Succeed: (value: never) => R; _?: (() => never) | undefined; } | { NotAsked?: (() => R) | undefined; Loading?: (() => R) | undefined; Failure?: ((error: never) => R) | undefined; Succeed?: ((value: never) => R) | undefined; _: () => R; }): R; isNotAsked(): boolean; isFailure(): boolean; isSucceed(): boolean; swap(): Optional; map(_fn: (value: never) => R): Optional; mapFailure(_fn: (error: never) => S): Optional; mapBoth(onFailure: (error: never) => S, onSucceed: (value: never) => R): Optional; chain(_fn: (value: never) => Optional, R>): Optional, R>; orElse(fn: () => Optional, WhenNever>): Optional, WhenNever>; getOrElse(defaults: WhenNever): WhenNever; toMaybe(): Maybe; tap(fn: (that: Optional) => R): R; }; export declare class Failure extends RemoteData { private readonly error; constructor(error: E); isFailure(): boolean; isEqual(another: Optional, never>): boolean; swap(): Optional; mapFailure(fn: (error: E) => S): Optional; cata(pattern: Optional.Pattern): R; } export declare class Succeed extends RemoteData { private readonly value; constructor(value: T); isSucceed(): boolean; isEqual(another: Optional>): boolean; swap(): Optional; map(fn: (value: T) => R): Optional; chain(fn: (value: T) => Optional): Optional; orElse(): Optional>; getOrElse(): WhenNever; cata(pattern: Optional.Pattern): R; } export {};