import * as App from 'fp-ts/Applicative'; import * as Ap from 'fp-ts/Apply'; import * as Ch from 'fp-ts/Chain'; import * as F from 'fp-ts/Functor'; import { IO } from 'fp-ts/IO'; import { Json } from 'fp-ts/Json'; import { Monad2 } from 'fp-ts/Monad'; import { Pointed2 } from 'fp-ts/Pointed'; import { Predicate } from 'fp-ts/Predicate'; import { Refinement } from 'fp-ts/Refinement'; import * as DE from './DecodeError'; import { UndoPartial } from './internal'; import { Literal, Schemable2C, WithRefine2C, WithUnion2C } from './Schemable'; import * as T from './These'; /** * @category Model * @since 0.9.4 */ export interface Decoder { readonly decode: (input: I) => T.These; } /** * @category Type-level * @since 0.9.4 */ export declare type InputOf = [A] extends [Decoder] ? I : never; /** * @category Type-level * @since 0.9.4 */ export declare type OutputOf = [A] extends [Decoder] ? O : never; /** * @category Constructor * @since 0.9.4 */ export declare function fromRefinement(refinement: Refinement, expected: string): Decoder; /** * @category Combinator * @since 0.9.4 */ export declare const compose: (second: Decoder) => (first: Decoder) => Decoder; /** * @category Constructor * @since 0.9.4 */ export declare const string: Decoder; /** * @category Constructor * @since 0.9.4 */ export declare const number: Decoder; /** * @category Constructor * @since 0.9.4 */ export declare const boolean: Decoder; /** * @category Decoder * @since 0.9.5 */ export declare const dateFromISOString: Decoder; /** * @category Instance * @since 0.9.5 */ export declare const WithRefine: WithRefine2C; /** * @category Combinator * @since 0.9.5 */ export declare const refine: (refinement: Refinement, id: string) => (from: Decoder) => Decoder; /** * @category Constructor * @since 0.9.4 */ export declare const union: (second: Decoder) => (first: Decoder) => Decoder; /** * @category Refinement * @since 0.9.6 */ export declare const isDate: (x: unknown) => x is Date; /** * @category Constructor * @since 0.9.6 */ export declare const date: Decoder; /** * @category Constructor * @since 0.9.6 */ export declare const sum: (tag: T) => (members: { [K in keyof A]: Decoder>; }) => Decoder; /** * @category Constructor * @since 0.9.6 */ export declare const literal: (...literals: A) => Decoder; /** * @category Combinator * @since 0.9.4 */ export declare const nullable: (first: Decoder) => Decoder; /** * @category Combinator * @since 0.9.4 */ export declare const optional: (first: Decoder) => Decoder; /** * @category Constructor * @since 0.9.4 */ export declare const unknownArray: Decoder; /** * @category Constructor * @since 0.9.4 */ export declare const unknownRecord: Decoder; /** * @category Constructor * @since 0.9.4 */ export declare const fromArray: (member: Decoder) => Decoder; /** * @category Constructor * @since 0.9.4 */ export declare const array: (member: Decoder) => Decoder; /** * @category Constructor * @since 0.9.4 */ export declare const fromStruct: ; }>(properties: A) => Decoder>, Partial<{ readonly [K in keyof A]: OutputOf; }>>; /** * @category Constructor * @since 0.9.4 */ export declare function missingKeys; }>(properties: A): Decoder>, Partial<{ readonly [K in keyof A]: OutputOf; }>>; /** * @category Constructor * @since 0.9.4 */ export declare function unexpectedKeys; }>(properties: A): Decoder>, Partial<{ readonly [K in keyof A]: OutputOf; }>>; /** * @category Constructor * @since 0.9.4 */ export declare function struct; }>(properties: A): Decoder; }>>; /** * @category Constructor * @since 0.9.4 */ export declare function fromRecord(decoder: Decoder): Decoder>, Readonly>>; /** * @category Constructor * @since 0.9.6 */ export declare const record: (codomain: Decoder) => Decoder>>; /** * @category Constructor * @since 0.9.4 */ export declare function fromTuple(...components: { readonly [K in keyof A]: Decoder; }): Decoder; /** * @category Constructor * @since 0.9.4 */ export declare function missingIndexes(...components: { readonly [K in keyof A]: Decoder; }): Decoder; /** * @category Constructor * @since 0.9.4 */ export declare function unexpectedIndexes(...components: { readonly [K in keyof A]: Decoder; }): Decoder; /** * @category Constructor * @since 0.9.4 */ export declare function tuple(...components: { readonly [K in keyof A]: Decoder; }): Decoder; /** * @category Combinator * @since 0.9.6 */ export declare const intersect: (second: Decoder) => (first: Decoder) => Decoder; /** * @category Constructor * @since 0.9.6 */ export declare const lazy: (id: string, f: () => Decoder) => Decoder; /** * @category URI * @since 0.9.4 */ export declare const URI = "@typed/fp/Decoder"; /** * @category URI * @since 0.9.4 */ export declare type URI = typeof URI; declare module 'fp-ts/HKT' { interface URItoKind2 { [URI]: Decoder; } } /** * @category Constructor * @since 0.9.4 */ export declare const of: (value: A) => Decoder; /** * @category Combinator * @since 0.9.4 */ export declare const map: (f: (value: A) => B) => (decoder: Decoder) => Decoder; /** * @category Combinator * @since 0.9.4 */ export declare function condemnWhen(predicate: Predicate): (decoder: Decoder) => Decoder; /** * @category Combinator * @since 0.9.4 */ export declare const condemn: (decoder: Decoder) => Decoder; /** * @category Combinator * @since 0.9.4 */ export declare function absolveWhen(predicate: Predicate): (decoder: Decoder) => Decoder; /** * @category Combinator * @since 0.9.4 */ export declare const absolve: (decoder: Decoder) => Decoder; /** * @category Combinator * @since 0.9.4 */ export declare const condemnUnexpectedKeys: (decoder: Decoder) => Decoder; /** * @category Combinator * @since 0.9.4 */ export declare const condemmMissingKeys: (decoder: Decoder) => Decoder>; /** * @category Combinator * @since 0.9.4 */ export declare const strict: (decoder: Decoder) => Decoder>; /** * @category Instance * @since 0.9.4 */ export declare const Pointed: Pointed2; /** * @category Instance * @since 0.9.4 */ export declare const Functor: F.Functor2; /** * @category Combinator * @since 0.9.4 */ export declare const bindTo: (name: N) => (fa: Decoder) => Decoder; /** * @category Combinator * @since 0.9.4 */ export declare const flap: (a: A) => (fab: Decoder B>) => Decoder; /** * @category Combinator * @since 0.9.4 */ export declare const tupled: (fa: Decoder) => Decoder; /** * @category Constructor * @since 0.9.4 */ export declare const fromIO: (io: IO) => Decoder; /** * @category Combinator * @since 0.9.4 */ export declare const chain: (f: (a: A) => Decoder) => (decoder: Decoder) => Decoder; /** * @category Constructor * @since 0.9.4 */ export declare const Chain: Ch.Chain2; /** * @category Combinator * @since 0.9.4 */ export declare const ap: (fa: Decoder) => (fab: Decoder B>) => Decoder; /** * @category Combinator * @since 0.9.4 */ export declare const chainFirst: (f: (a: A) => Decoder) => (first: Decoder) => Decoder; /** * @category Combinator * @since 0.9.4 */ export declare const bind: (name: Exclude, f: (a: A) => Decoder) => (ma: Decoder) => Decoder; /** * @category Instance * @since 0.9.4 */ export declare const Apply: Ap.Apply2; /** * @category Combinator * @since 0.9.4 */ export declare const apFirst: (second: Decoder) => (first: Decoder) => Decoder; /** * @category Combinator * @since 0.9.4 */ export declare const apS: (name: Exclude, fb: Decoder) => (fa: Decoder) => Decoder; /** * @category Combinator * @since 0.9.4 */ export declare const apSecond: (second: Decoder) => (first: Decoder) => Decoder; /** * @category Combinator * @since 0.9.4 */ export declare const apT: (fb: Decoder) => (fas: Decoder) => Decoder; /** * @category Typeclass Constructor * @since 0.9.4 */ export declare const getApplySemigroup: (S: import("fp-ts/Semigroup").Semigroup) => import("fp-ts/Semigroup").Semigroup>; /** * @category Instance * @since 0.9.4 */ export declare const Applicative: App.Applicative2; /** * @category Combinator * @since 0.9.4 */ export declare const getApplicativeMonoid: (M: import("fp-ts/Monoid").Monoid) => import("fp-ts/Monoid").Monoid>; /** * @category Constructor * @since 0.9.4 */ export declare const Do: Decoder; /** * @category Instance * @since 0.9.4 */ export declare const Monad: Monad2; /** * @category Instance * @since 0.9.5 */ export declare const Schemable: Schemable2C; /** * @category Instance * @since 0.9.5 */ export declare const WithUnion: WithUnion2C; /** * @category Decoder * @since 0.9.5 */ export declare const jsonParseFromString: Decoder; /** * @category Decoder * @since 0.9.5 */ export declare const jsonParse: Decoder; /** * Throw if not a valid decoder. Absolves optional errors * @category Interpreter * @since 0.9.5 */ export declare const assert: (decoder: Decoder) => (i: I) => O; /** * Throw if not a valid decoder. Condemns optional errors * @category Interpreter * @since 0.9.5 */ export declare const assertStrict: (decoder: Decoder) => (i: I) => Required; //# sourceMappingURL=Decoder.d.ts.map