/** * Data is an ADT which allows you to represent all the states involved in loading a * piece of data asynchronously. * * @since 0.9.2 */ import * as AD from 'fp-ts/Alt'; import * as Alternative_ from 'fp-ts/Alternative'; import * as App from 'fp-ts/Applicative'; import * as Ap from 'fp-ts/Apply'; import * as Ch from 'fp-ts/Chain'; import { Compactable1 } from 'fp-ts/Compactable'; import * as Ei from 'fp-ts/Either'; import { Eq } from 'fp-ts/Eq'; import { Filterable1 } from 'fp-ts/Filterable'; import { Foldable1 } from 'fp-ts/Foldable'; import { Lazy } from 'fp-ts/function'; import * as F from 'fp-ts/Functor'; import { HKT } from 'fp-ts/HKT'; import { Monad1 } from 'fp-ts/Monad'; import { Monoid } from 'fp-ts/Monoid'; import * as O from 'fp-ts/Option'; import { Pointed1 } from 'fp-ts/Pointed'; import { Predicate } from 'fp-ts/Predicate'; import { Semigroup } from 'fp-ts/Semigroup'; import { Separated } from 'fp-ts/Separated'; import { Show } from 'fp-ts/Show'; import { Traversable1 } from 'fp-ts/Traversable'; import * as P from './Progress'; /** * @since 0.9.2 * @category Model */ export declare type Data = NoData | Loading | Refresh | Replete; /** * @since 0.9.2 * @category Type-level */ export declare type Value = [A] extends [Data] ? R : never; /** * @since 0.9.2 * @category Refinement */ export declare const isNoData: (data: Data) => data is NoData; /** * @since 0.9.2 * @category Refinement */ export declare const isLoading: (data: Data) => data is Loading; /** * @since 0.9.2 * @category Refinement */ export declare const isRefresh: (data: Data) => data is Refresh; /** * @since 0.9.2 * @category Refinement */ export declare const isReplete: (data: Data) => data is Replete; /** * @since 0.9.2 * @category Refinement */ export declare const hasValue: (data: Data) => data is Refresh | Replete; /** * @since 0.9.2 * @category Model */ export interface NoData { readonly _tag: 'NoData'; } /** * @since 0.9.2 * @category Constructor */ export declare const noData: NoData; /** * @since 0.9.2 * @category Model */ export interface Loading { readonly _tag: 'Loading'; readonly progress: O.Option; } /** * @since 0.9.2 * @category Constructor */ export declare const loading: Loading; /** * @since 0.9.2 * @category Constructor */ export declare const fromProgress: (progress: P.Progress) => Loading; /** * @since 0.9.2 * @category Model */ export interface Refresh { readonly _tag: 'Refresh'; readonly value: A; readonly progress: O.Option; } /** * @since 0.9.2 * @category Constructor */ export declare const refresh: (value: A, progress?: O.Option) => Refresh; /** * @since 0.9.2 * @category Model */ export interface Replete { readonly _tag: 'Replete'; readonly value: A; } /** * @since 0.9.2 * @category Constructor */ export declare const replete: (value: A) => Replete; /** * @since 0.9.2 * @category Deconstructor */ export declare const matchW: (onNoData: () => A, onLoading: (progress: O.Option) => B, onRefresh: (value: C, progress: O.Option) => D, onReplete: (value: C) => E) => (data: Data) => A | B | D | E; /** * @since 0.9.2 * @category Deconstructor */ export declare const match3W: (onNoData: () => A, onLoading: (progress: O.Option) => B, onRefreshOrReplete: (value: C) => D) => (data: Data) => A | B | D; /** * @since 0.9.2 * @category Deconstructor */ export declare const match: (onNoData: () => A, onLoading: () => A, onRefresh: (value: B) => A, onReplete: (value: B) => A) => (data: Data) => A; /** * @since 0.9.2 * @category Combinator */ export declare const toLoading: (data: Data) => Data; /** * @since 0.9.2 * @category Constructor */ export declare const fromNullable: (a: A | null | undefined) => Data; /** * @since 0.9.2 * @category Typeclass Constructor */ export declare const getShow: (S: Show) => Show>; /** * @since 0.9.2 * @category Typeclass Constructor */ export declare const getEq: (S: Eq) => Eq>; /** * @since 0.9.2 * @category Typeclass Constructor */ export declare const getSemigroup: (S: Semigroup) => Semigroup>; /** * @since 0.9.2 * @category Typeclass Constructor */ export declare const getMonoid: (S: Semigroup) => Monoid>; /** * @since 0.9.2 * @category Combinator */ export declare const getOrElse: (onInitial: () => A, onLoading: (progress: O.Option) => A) => (ma: Data) => A; /** * @since 0.9.2 * @category Combinator */ export declare const getOrElseW: (onInitial: () => A, onLoading: (progress: O.Option) => B) => (ma: Data) => A | B | C; /** * @since 0.9.2 * @category Combinator */ export declare const elem: (E: Eq) => (a: A) => (ma: Data) => boolean; /** * @since 0.9.2 * @category Combinator */ export declare const exists: (predicate: Predicate) => (ma: Data) => boolean; /** * @since 0.9.2 * @category Constructor */ export declare const of: (value: A) => Data; /** * @since 0.9.2 * @category Combinator */ export declare const map: (f: (value: A) => B) => (data: Data) => Data; /** * @since 0.9.2 * @category Combinator */ export declare const chain: (f: (value: A) => Data) => (data: Data) => Data; /** * @since 0.9.2 * @category URI */ export declare const URI = "@typed/fp/Data"; /** * @since 0.9.2 * @category URI */ export declare type URI = typeof URI; declare module 'fp-ts/HKT' { interface URItoKind { [URI]: Data; } } /** * @since 0.9.2 * @category Instance */ export declare const Pointed: Pointed1; /** * @since 0.9.2 * @category Instance */ export declare const Functor: F.Functor1; /** * @since 0.9.2 * @category Combinator */ export declare const bindTo: (name: N) => (fa: Data) => Data<{ [K in N]: A; }>; /** * @since 0.9.2 * @category Combinator */ export declare const flap: (a: A) => (fab: Data<(a: A) => B>) => Data; /** * @since 0.9.2 * @category Combinator */ export declare const tupled: (fa: Data) => Data; /** * @since 0.9.2 * @category Instance */ export declare const Chain: Ch.Chain1; /** * @since 0.9.2 * @category Combinator */ export declare const ap: (fa: Data) => (fab: Data<(a: A) => B>) => Data; /** * @since 0.9.2 * @category Combinator */ export declare const bind: (name: Exclude, f: (a: A) => Data) => (ma: Data) => Data<{ readonly [K in N | keyof A]: K extends keyof A ? A[K] : B; }>; /** * @since 0.9.2 * @category Combinator */ export declare const chainFirst: (f: (a: A) => Data) => (first: Data) => Data; /** * @since 0.9.2 * @category Instance */ export declare const Apply: Ap.Apply1; /** * @since 0.9.2 * @category Combinator */ export declare const apFirst: (second: Data) => (first: Data) => Data; /** * @since 0.9.2 * @category Combinator */ export declare const apS: (name: Exclude, fb: Data) => (fa: Data) => Data<{ readonly [K in N | keyof A]: K extends keyof A ? A[K] : B; }>; /** * @since 0.9.2 * @category Combinator */ export declare const apSecond: (second: Data) => (first: Data) => Data; /** * @since 0.9.2 * @category Combinator */ export declare const apT: (fb: Data) => (fas: Data) => Data; /** * @since 0.9.2 * @category Typeclass Constructor */ export declare const getApplySemigroup: (S: Semigroup) => Semigroup>; /** * @since 0.9.2 * @category Instance */ export declare const Applicative: App.Applicative1; /** * @since 0.9.2 * @category Typeclass Constructor */ export declare const getApplicativeMonoid: (M: Monoid) => Monoid>; /** * @since 0.9.2 * @category Instance */ export declare const Monad: Monad1; /** * @since 0.9.2 * @category Combinator */ export declare const chainRec: (f: (value: A) => Data>) => (value: A) => Data; /** * @since 0.9.2 * @category Combinator */ export declare const alt: (f: Lazy>) => (b: Data) => Data; /** * @since 0.9.2 * @category Instance */ export declare const Alt: AD.Alt1; /** * @since 0.9.2 * @category Combinator */ export declare const altAll: (startWith: Data) => (as: readonly Data[]) => Data; /** * @since 0.9.2 * @category Constructor */ export declare const zero: () => Data; /** * @since 0.9.2 * @category Instance */ export declare const Alternative: Alternative_.Alternative1; /** * @since 0.9.2 * @category Natural Transformation */ export declare const fromOption: (option: O.Option) => Data; /** * @since 0.9.2 * @category Natural Transformation */ export declare const toOption: (data: Data) => O.Option; /** * @since 0.9.2 * @category Combinator */ export declare function foldMap(M: Monoid): (f: (a: A) => M) => (fa: Data) => M; /** * @since 0.9.2 * @category Deconstructor */ export declare const reduce: (seed: A, f: (acc: A, value: B) => A) => (data: Data) => A; /** * @since 0.9.2 * @category Deconstructor */ export declare const reduceRight: (seed: A, f: (value: B, acc: A) => A) => (data: Data) => A; /** * @since 0.9.2 * @category Instance */ export declare const Foldable: Foldable1; /** * @since 0.9.2 * @category Combinator */ export declare function traverse(F: App.Applicative): (f: (value: A) => HKT) => (data: Data) => HKT>; /** * @since 0.9.2 * @category Instance */ export declare const Traversable: Traversable1; /** * @since 0.9.2 * @category Combinator */ export declare const compact: (dataOption: Data>) => Data; /** * @since 0.9.2 * @category Combinator */ export declare const separate: (dataEither: Data>) => Separated, Data>; /** * @since 0.9.2 * @category Instance */ export declare const Compactable: Compactable1; /** * @since 0.9.2 * @category Combinator */ export declare const partitionMap: Filterable1['partitionMap']; /** * @since 0.9.2 * @category Combinator */ export declare const partition: import("fp-ts/Filterable").Partition1<"@typed/fp/Data">; /** * @since 0.9.2 * @category Combinator */ export declare const filterMap: Filterable1['filterMap']; /** * @since 0.9.2 * @category Combinator */ export declare const filter: import("fp-ts/Filterable").Filter1<"@typed/fp/Data">; /** * @since 0.9.2 * @category Instance */ export declare const Filterable: Filterable1; //# sourceMappingURL=Data.d.ts.map