/** * @since 2.2.3 */ import { Contravariant2 } from 'fp-ts/es6/Contravariant'; import { Category2 } from 'fp-ts/es6/Category'; /** * @since 2.2.3 */ export interface Encoder { readonly encode: (a: A) => O; } /** * @since 2.2.3 */ export declare type TypeOf = E extends Encoder ? A : never; /** * @since 2.2.3 */ export declare type OutputOf = E extends Encoder ? O : never; /** * @since 2.2.3 */ export declare function id(): Encoder; /** * @since 2.2.3 */ export declare function nullable(or: Encoder): Encoder; /** * @since 2.2.3 */ export declare function type

>>(properties: P): Encoder<{ [K in keyof P]: OutputOf; }, { [K in keyof P]: TypeOf; }>; /** * @since 2.2.3 */ export declare function partial

>>(properties: P): Encoder; }>, Partial<{ [K in keyof P]: TypeOf; }>>; /** * @since 2.2.3 */ export declare function record(codomain: Encoder): Encoder, Record>; /** * @since 2.2.3 */ export declare function array(items: Encoder): Encoder, Array>; /** * @since 2.2.3 */ export declare function tuple>>(...components: C): Encoder<{ [K in keyof C]: OutputOf; }, { [K in keyof C]: TypeOf; }>; /** * @since 2.2.3 */ export declare function intersection(left: Encoder, right: Encoder): Encoder; /** * @since 2.2.3 */ export declare function sum(tag: T): >>(members: M) => Encoder, TypeOf>; /** * @since 2.2.3 */ export declare function lazy(f: () => Encoder): Encoder; /** * @since 2.2.3 */ export declare const contramap: (f: (b: B) => A) => (fa: Encoder) => Encoder; /** * @since 2.2.3 */ export declare const compose: (ea: Encoder) => (ab: Encoder) => Encoder; /** * @since 2.2.3 */ export declare const URI = "io-ts/Encoder"; /** * @since 2.2.3 */ export declare type URI = typeof URI; declare module 'fp-ts/es6/HKT' { interface URItoKind2 { readonly [URI]: Encoder; } } /** * @since 2.2.3 */ export declare const contravariantEncoder: Contravariant2; /** * @since 2.2.3 */ export declare const categoryEncoder: Category2;