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