import type * as P from "@principia/prelude"; import type * as HKT from "@principia/prelude/HKT"; import type { Option } from "../Option"; import type { InputOf, KleisliDecoder, TypeOf } from "./model"; export declare function mapLeftWithInput_( M: P.Bifunctor ): (decoder: KleisliDecoder, f: (i: I, e: E) => E) => KleisliDecoder; export declare function mapLeftWithInput( M: P.Bifunctor ): (f: (i: I, e: E) => E) => (decoder: KleisliDecoder) => KleisliDecoder; export declare function compose_( M: P.Monad> ): (ia: KleisliDecoder, ab: KleisliDecoder) => KleisliDecoder; export declare function compose( M: P.Monad> ): ( ab: KleisliDecoder ) => (ia: KleisliDecoder) => KleisliDecoder; export declare function refine_( M: P.MonadFail> ): ( from: KleisliDecoder, refinement: (a: A) => a is B, onError: (a: A) => E ) => KleisliDecoder; export declare function refine( M: P.MonadFail> ): ( refinement: (a: A) => a is B, onError: (a: A) => E ) => (from: KleisliDecoder) => KleisliDecoder; export declare function parse_( M: P.Monad> ): ( from: KleisliDecoder, decode: ( a: A ) => HKT.Kind< M, C, HKT.Initial, HKT.Initial, HKT.Initial, HKT.Initial, HKT.Initial, HKT.Initial, HKT.Initial, HKT.Initial, E, B > ) => KleisliDecoder; export declare function parse( M: P.Monad> ): ( decode: ( a: A ) => HKT.Kind< M, C, HKT.Initial, HKT.Initial, HKT.Initial, HKT.Initial, HKT.Initial, HKT.Initial, HKT.Initial, HKT.Initial, E, B > ) => (from: KleisliDecoder) => KleisliDecoder; export declare function nullable_( M: P.Applicative> & P.Bifunctor> ): ( or: KleisliDecoder, onError: (i: I, e: E) => E ) => KleisliDecoder; export declare function nullable( M: P.Applicative> & P.Bifunctor> ): ( onError: (i: I, e: E) => E ) => (or: KleisliDecoder) => KleisliDecoder; export declare function optional_( M: P.Applicative> & P.Bifunctor> ): ( or: KleisliDecoder, onError: (i: I, e: E) => E ) => KleisliDecoder>; export declare function optional( M: P.Applicative> & P.Bifunctor> ): ( onError: (i: I, e: E) => E ) => (or: KleisliDecoder) => KleisliDecoder>; export declare function fromType_( M: P.Applicative> & P.Bifunctor> ):

>>( properties: P, onPropertyError: (key: string, e: E) => E ) => KleisliDecoder< M, C, { [K in keyof P]: InputOf; }, E, { [K in keyof P]: TypeOf; } >; export declare function fromType( M: P.Applicative> & P.Bifunctor> ): ( onPropertyError: (key: string, e: E) => E ) =>

>>( properties: P ) => KleisliDecoder< M, C, { [K in keyof P]: InputOf; }, E, { [K in keyof P]: TypeOf; } >; export declare function fromPartial_( M: P.Applicative> & P.Bifunctor> ):

>>( properties: P, onPropertyError: (key: string, e: E) => E ) => KleisliDecoder< M, C, Partial< { [K in keyof P]: InputOf; } >, E, Partial< { [K in keyof P]: TypeOf; } > >; export declare function fromPartial( M: P.Applicative> & P.Bifunctor> ): ( onPropertyError: (key: string, e: E) => E ) =>

>>( properties: P ) => KleisliDecoder< M, C, Partial< { [K in keyof P]: InputOf; } >, E, Partial< { [K in keyof P]: TypeOf; } > >; export declare function fromArray_( M: P.Applicative> & P.Bifunctor> ): ( item: KleisliDecoder, onItemError: (index: number, e: E) => E ) => KleisliDecoder, E, ReadonlyArray>; export declare function fromArray( M: P.Applicative> & P.Bifunctor> ): ( onItemError: (index: number, e: E) => E ) => (item: KleisliDecoder) => KleisliDecoder, E, ReadonlyArray>; export declare function fromRecord_( M: P.Applicative> & P.Bifunctor> ): ( codomain: KleisliDecoder, onKeyError: (key: string, e: E) => E ) => KleisliDecoder, E, Record>; export declare function fromRecord( M: P.Applicative> & P.Bifunctor> ): ( onKeyError: (key: string, e: E) => E ) => (codomain: KleisliDecoder) => KleisliDecoder, E, Record>; export declare function fromTuple( M: P.Applicative> & P.Bifunctor ): ( onIndexError: (index: number, e: E) => E ) =>

>>( ...components: P ) => KleisliDecoder< M, C, { [K in keyof P]: InputOf; }, E, { [K in keyof P]: TypeOf; } >; export declare function union( M: P.Alt> & P.Bifunctor ): ( onMemberError: (index: number, e: E) => E ) =>

, ...ReadonlyArray>]>( ...members: P ) => KleisliDecoder, E, TypeOf>; export declare function intersect_( M: P.Applicative> ): ( left: KleisliDecoder, right: KleisliDecoder ) => KleisliDecoder; export declare function intersect( M: P.Applicative> ): ( right: KleisliDecoder ) => (left: KleisliDecoder) => KleisliDecoder; export declare function fromSum_( M: P.MonadFail> ): >>( tag: T, members: P, onTagError: (tag: string, vaue: unknown, tags: ReadonlyArray) => E ) => KleisliDecoder, E, TypeOf>; export declare function fromSum( M: P.MonadFail> ): ( onTagError: (tag: string, value: unknown, tags: ReadonlyArray) => E ) => ( tag: T ) =>

>>( members: P ) => KleisliDecoder, E, TypeOf>; export declare function lazy_( M: P.Bifunctor ): ( id: string, f: () => KleisliDecoder, I, E, A>, onError: (id: string, e: E) => E ) => KleisliDecoder, I, E, A>; export declare function lazy( M: P.Bifunctor ): ( onError: (id: string, e: E) => E ) => ( id: string, f: () => KleisliDecoder, I, E, A> ) => KleisliDecoder, I, E, A>; export declare const id: ( M: P.Applicative> ) => () => KleisliDecoder; export declare const map_: ( F: P.Functor> ) => (ia: KleisliDecoder, f: (a: A) => B) => KleisliDecoder; export declare const map: ( F: P.Functor> ) => (f: (a: A) => B) => (ia: KleisliDecoder) => KleisliDecoder; export declare function alt_( A: P.Alt> ): ( me: KleisliDecoder, that: () => KleisliDecoder ) => KleisliDecoder; export declare function alt( A: P.Alt> ): ( that: () => KleisliDecoder ) => (me: KleisliDecoder) => KleisliDecoder; //# sourceMappingURL=combinators.d.ts.map