/**
* @since 2.2.3
*/
import * as t from './index';
import { Literal, Schemable1, WithUnion1, WithRefinement1, WithUnknownContainers1 } from './Schemable';
/**
* @since 2.2.3
*/
export interface Type extends t.Type {
}
/**
* @since 2.2.3
*/
export declare function literal>(...values: A): Type;
/**
* @since 2.2.3
*/
export declare const string: Type;
/**
* @since 2.2.3
*/
export declare const number: Type;
/**
* @since 2.2.3
*/
export declare const boolean: Type;
/**
* @since 2.2.3
*/
export declare const UnknownArray: Type>;
/**
* @since 2.2.3
*/
export declare const UnknownRecord: Type>;
/**
* @since 2.2.3
*/
export declare function refinement(from: Type, refinement: (a: A) => a is B, expected: string): Type;
/**
* @since 2.2.3
*/
export declare function nullable(or: Type): Type;
/**
* @since 2.2.3
*/
export declare function type(properties: {
[K in keyof A]: Type;
}): Type<{
[K in keyof A]: A[K];
}>;
/**
* @since 2.2.3
*/
export declare function partial(properties: {
[K in keyof A]: Type;
}): Type>;
/**
* @since 2.2.3
*/
export declare function record(codomain: Type): Type>;
/**
* @since 2.2.3
*/
export declare function array(items: Type): Type>;
/**
* @since 2.2.3
*/
export declare function tuple>(...components: {
[K in keyof A]: Type;
}): Type;
/**
* @since 2.2.3
*/
export declare function intersection(left: Type, right: Type): Type;
/**
* @since 2.2.3
*/
export declare function lazy(id: string, f: () => Type): Type;
/**
* @since 2.2.3
*/
export declare function sum(_tag: T): (members: {
[K in keyof A]: Type;
}) => Type;
/**
* @since 2.2.3
*/
export declare function union>(...members: {
[K in keyof A]: Type;
}): Type;
/**
* @since 2.2.3
*/
export declare const URI = "io-ts/Type";
/**
* @since 2.2.3
*/
export declare type URI = typeof URI;
declare module 'fp-ts/es6/HKT' {
interface URItoKind {
readonly [URI]: Type;
}
}
/**
* @since 2.2.3
*/
export declare const schemableType: Schemable1 & WithUnknownContainers1 & WithUnion1 & WithRefinement1;