/** * @since 2.2.3 */ import { Contravariant1 } from 'fp-ts/es6/Contravariant'; import * as E from './Encoder'; import { Schemable1 } from './Schemable'; /** * @since 2.2.3 */ export interface JsonArray extends Array { } /** * @since 2.2.3 */ export declare type JsonObject = { [key: string]: Json; }; /** * @since 2.2.3 */ export declare type Json = null | string | number | boolean | JsonObject | JsonArray; /** * @since 2.2.3 */ export interface JsonEncoder { readonly encode: (a: A) => Json; } /** * @since 2.2.3 */ export declare type TypeOf = E.TypeOf; /** * @since 2.2.5 */ export declare function id(): JsonEncoder; /** * @since 2.2.3 */ export declare const nullable: (or: JsonEncoder) => JsonEncoder; /** * @since 2.2.3 */ export declare const type: (properties: { [K in keyof A]: JsonEncoder; }) => JsonEncoder<{ [K in keyof A]: A[K]; }>; /** * @since 2.2.3 */ export declare const partial: (properties: { [K in keyof A]: JsonEncoder; }) => JsonEncoder>; /** * @since 2.2.3 */ export declare const record: (codomain: JsonEncoder) => JsonEncoder>; /** * @since 2.2.3 */ export declare const array: (items: JsonEncoder) => JsonEncoder>; /** * @since 2.2.3 */ export declare const tuple: >(...components: { [K in keyof A]: JsonEncoder; }) => JsonEncoder; /** * @since 2.2.3 */ export declare const intersection: (left: JsonEncoder, right: JsonEncoder) => JsonEncoder; /** * @since 2.2.3 */ export declare const sum: (tag: T) => (members: { [K in keyof A]: JsonEncoder; }) => JsonEncoder; /** * @since 2.2.3 */ export declare const lazy: (f: () => JsonEncoder) => JsonEncoder; /** * @since 2.2.3 */ export declare const contramap: (f: (b: B) => A) => (fa: JsonEncoder) => JsonEncoder; /** * @since 2.2.3 */ export declare const URI = "io-ts/JsonEncoder"; /** * @since 2.2.3 */ export declare type URI = typeof URI; declare module 'fp-ts/es6/HKT' { interface URItoKind { readonly [URI]: JsonEncoder; } } /** * @since 2.2.3 */ export declare const contravariantJsonEncoder: Contravariant1; /** * @since 2.2.3 */ export declare const schemableJsonEncoder: Schemable1;