import { Refinement } from 'fp-ts/lib/function'
import * as t from './index'
import * as S 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: Refinement, id: string) => (from: Type) => Type
/**
* @category combinators
* @since 2.2.3
*/
export declare const nullable: (or: Type) => Type
/**
* @category combinators
* @since 2.2.15
*/
export declare const struct: (properties: { [K in keyof A]: Type }) => Type<{ [K_1 in keyof A]: A[K_1] }>
/**
* Use `struct` instead.
*
* @category combinators
* @since 2.2.3
* @deprecated
*/
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<
Partial<{ [K_1 in keyof A]: A[K_1] }>
>
/**
* @category combinators
* @since 2.2.3
*/
export declare const record: (codomain: Type) => Type>
/**
* @category combinators
* @since 2.2.3
*/
export declare const array: (item: 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.15
*/
export declare const readonly: (type: 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 type URI = typeof URI
declare module 'fp-ts/lib/HKT' {
interface URItoKind {
readonly [URI]: Type
}
}
/**
* @category instances
* @since 2.2.8
*/
export declare const Schemable: S.Schemable1
/**
* @category instances
* @since 2.2.8
*/
export declare const WithUnknownContainers: S.WithUnknownContainers1
/**
* @category instances
* @since 2.2.8
*/
export declare const WithUnion: S.WithUnion1
/**
* @category instances
* @since 2.2.8
*/
export declare const WithRefine: S.WithRefine1