/** * **This module is experimental** * * Experimental features are published in order to get early feedback from the community, see these tracking * [issues](https://github.com/gcanti/io-ts/issues?q=label%3Av2.2+) for further discussions and enhancements. * * A feature tagged as _Experimental_ is in a high state of flux, you're at risk of it changing without notice. * * @since 2.2.3 */ import * as t from './index'; import { Literal, Schemable1, WithUnion1, WithRefine1, WithUnknownContainers1 } from './Schemable'; /** * @category model * @since 2.2.3 */ export interface Type extends t.Type { } /** * @category constructors * @since 2.2.3 */ export declare const literal: (...values: A) => Type; /** * @category primitives * @since 2.2.3 */ export declare const string: Type; /** * @category primitives * @since 2.2.3 */ export declare const number: Type; /** * @category primitives * @since 2.2.3 */ export declare const boolean: Type; /** * @category primitives * @since 2.2.3 */ export declare const UnknownArray: Type>; /** * @category primitives * @since 2.2.3 */ export declare const UnknownRecord: Type>; /** * @category combinators * @since 2.2.3 */ export declare const refine: (refinement: (a: A) => a is B, id: string) => (from: Type) => Type; /** * @category combinators * @since 2.2.3 */ export declare const nullable: (or: Type) => Type; /** * @category combinators * @since 2.2.3 */ export declare const type: (properties: { [K in keyof A]: Type; }) => Type<{ [K_1 in keyof A]: A[K_1]; }>; /** * @category combinators * @since 2.2.3 */ export declare const partial: (properties: { [K in keyof A]: Type; }) => Type>; /** * @category combinators * @since 2.2.3 */ export declare const record: (codomain: Type) => Type>; /** * @category combinators * @since 2.2.3 */ export declare const array: (items: Type) => Type; /** * @category combinators * @since 2.2.3 */ export declare const tuple: (...components: { [K in keyof A]: Type; }) => Type; /** * @category combinators * @since 2.2.3 */ export declare const intersect: (right: Type) => (left: Type) => Type; /** * @category combinators * @since 2.2.3 */ export declare const lazy: (id: string, f: () => Type) => Type; /** * @category combinators * @since 2.2.3 */ export declare const sum: (_tag: T) => (members: { [K in keyof A]: Type; }) => Type; /** * @category combinators * @since 2.2.3 */ export declare const union: (...members: { [K in keyof A]: Type; }) => Type; /** * @category instances * @since 2.2.3 */ export declare const URI = "io-ts/Type"; /** * @category instances * @since 2.2.3 */ export declare type URI = typeof URI; declare module 'fp-ts/es6/HKT' { interface URItoKind { readonly [URI]: Type; } } /** * @category instances * @since 2.2.3 */ export declare const schemableType: Schemable1 & WithUnknownContainers1 & WithUnion1 & WithRefine1;