/** * A type for handling the states of remote (potential) data. */ import * as option from "fp-ts/lib/Option"; /** * Empty value, not yet retrieved. */ interface None { readonly kind: "PotNone"; } export declare const none: None; /** * Empty value, loading. */ interface NoneLoading { readonly kind: "PotNoneLoading"; } export declare const noneLoading: NoneLoading; /** * Empty value, updating a new value to remote store. */ interface NoneUpdating { readonly kind: "PotNoneUpdating"; readonly newValue: T; } export declare const noneUpdating: (newValue: T) => NoneUpdating; /** * Empty value, loading failed. */ interface NoneError { readonly kind: "PotNoneError"; readonly error: E; } export declare const noneError: (error: E) => NoneError; /** * Loaded value. */ interface Some { readonly kind: "PotSome"; readonly value: T; } export declare const some: (value: T) => Some; /** * Loaded value, loading a new value from remote. */ interface SomeLoading { readonly kind: "PotSomeLoading"; readonly value: T; } export declare const someLoading: (value: T) => SomeLoading; /** * Loaded value, updating a new value to remote store. */ interface SomeUpdating { readonly kind: "PotSomeUpdating"; readonly value: T; readonly newValue: T; } export declare const someUpdating: (value: T, newValue: T) => SomeUpdating; /** * Loaded value, loading an updated value failed. */ interface SomeError { readonly kind: "PotSomeError"; readonly value: T; readonly error: E; } export declare const someError: (value: T, error: E) => SomeError; export declare type Pot = None | NoneLoading | NoneUpdating | NoneError | Some | SomeLoading | SomeUpdating | SomeError; export declare type PotType = T extends Some ? A0 : T extends SomeLoading ? A1 : T extends SomeError ? A2 : never; export declare type PotErrorType = T extends NoneError ? E0 : T extends SomeError ? E1 : never; export declare const toSomeLoading: (p: Some | SomeError) => SomeLoading; export declare const isSome: (p: Pot) => p is Some | SomeLoading | SomeUpdating | SomeError; export declare const isNone: (p: Pot) => p is None | NoneLoading | NoneUpdating | NoneError; export declare const isLoading: (p: Pot) => p is NoneLoading | SomeLoading; export declare const isUpdating: (p: Pot) => p is NoneUpdating | SomeUpdating; export declare const isError: (p: Pot) => p is NoneError | SomeError; export declare const toLoading: (p: Pot) => NoneLoading | SomeLoading; export declare const toUpdating: (p: Pot, newValue: T) => SomeUpdating | NoneUpdating; export declare const toError: (p: Pot, error: E) => NoneError | SomeError; export declare const fold: (p: Pot, foldNone: () => O, foldNoneLoading: () => O, foldNoneUpdating: (newValue: A) => O, foldNoneError: (error: E) => O, foldSome: (value: A) => O, foldSomeLoading: (value: A) => O, foldSomeUpdating: (value: A, newValue: A) => O, foldSomeError: (value: A, error: E) => O) => O; export declare const map: (p: Pot, f: (_: A) => B) => Pot; export declare const filter: (p: Pot, f: (v: A) => boolean) => Pot; export declare const mapNullable: (p: Pot, f: (_: A) => B | null | undefined) => Pot; export declare const getOrElse: (p: Pot, o: A) => A; export declare const getOrElseWithUpdating: (p: Pot, o: A) => A; export declare const orElse: (p: Pot, o: Pot) => Pot; export declare const toUndefined: (p: Pot) => A | undefined; export declare const toOption: (p: Pot) => option.Option; export declare const isPot: (value: any) => value is Pot; export {};