import AnyType from './types/AnyType'; import ArrayType from './types/ArrayType'; import BooleanLiteralType from './types/BooleanLiteralType'; import BooleanType from './types/BooleanType'; import InstanceOfType, { Constructor } from './types/InstanceOfType'; import IntersectionType from './types/IntersectionType'; import merge from './merge'; import MergedObjectType from './types/MergedObjectType'; import mergeInexact from './mergeInexact'; import NullLiteralType from './types/NullLiteralType'; import NumberType from './types/NumberType'; import NumericLiteralType from './types/NumericLiteralType'; import ObjectType from './types/ObjectType'; import ObjectTypeProperty from './types/ObjectTypeProperty'; import OpaqueType from './types/OpaqueType'; import oneOf from './oneOf'; import PrimitiveLiteralType from './types/PrimitiveLiteralType'; import RecordType from './types/RecordType'; import RuntimeTypeError from './errorReporting/RuntimeTypeError'; import RuntimeTypeErrorItem from './errorReporting/RuntimeTypeErrorItem'; import StringLiteralType from './types/StringLiteralType'; import StringType from './types/StringType'; import SymbolLiteralType from './types/SymbolLiteralType'; import SymbolType from './types/SymbolType'; import TupleType from './types/TupleType'; import Type from './types/Type'; import TypeAlias from './types/TypeAlias'; import TypeReference from './types/TypeReference'; import UndefinedLiteralType from './types/UndefinedLiteralType'; import UnionType from './types/UnionType'; import UnknownType from './types/UnknownType'; import Validation from './Validation'; export { AnyType, ArrayType, BooleanLiteralType, BooleanType, InstanceOfType, IntersectionType, merge, MergedObjectType, mergeInexact, NullLiteralType, NumberType, NumericLiteralType, ObjectType, ObjectTypeProperty, OpaqueType, oneOf, PrimitiveLiteralType, RecordType, RuntimeTypeError, RuntimeTypeErrorItem, StringLiteralType, StringType, SymbolLiteralType, SymbolType, TupleType, Type, TypeAlias, TypeReference, UndefinedLiteralType, UnionType, UnknownType, Validation, }; export declare const any: () => Type; export declare const unknown: () => Type; export declare const opaque: (type: () => Type) => OpaqueType; export declare const array: (elementType: Type) => Type; export declare const readonlyArray: (elementType: Type) => Type; export declare const readonly: >(type: Type) => Type>; export declare const nullLiteral: () => Type; export { nullLiteral as null }; export declare const nullOr: (type: Type) => Type; export declare const undefinedLiteral: () => Type; export { undefinedLiteral as undefined }; export declare const nullish: () => Type; export declare const nullishOr: (type: Type) => Type; export declare function boolean(): Type; export declare function boolean(literal: T): Type; export declare function number(): Type; export declare function number(literal: T): Type; export declare function string(): Type; export declare function string(literal: T): Type; export declare function symbol(): Type; export declare function symbol(literal: T): Type; export declare function object>>(required: R): ObjectType<{ [K in keyof R]: ExtractType; }>; export declare function object>>({ required, exact, }: { required: R; exact?: boolean; }): ObjectType<{ [K in keyof R]: ExtractType; }>; export declare function object>>({ optional, exact, }: { optional: S; exact?: boolean; }): ObjectType<{ [K in keyof S]?: ExtractType; }>; export declare function object>, S extends Record>>({ required, optional, exact, }: { required: R; optional: S; exact?: boolean; }): ObjectType<{ [K in keyof R]: ExtractType; } & { [K in keyof S]?: ExtractType; }>; export declare const record: (key: Type, value: Type) => RecordType; export declare const instanceOf: (classType: () => Constructor) => Type; export declare const tuple: []>(...types: T) => Type<{ [Index in keyof T]: T[Index] extends Type ? E : never; }>; export declare function allOf(...types: [Type]): Type; export declare function allOf(...types: [Type, Type]): Type; export declare function allOf(...types: [Type, Type, Type]): Type; export declare function allOf(...types: [Type, Type, Type, Type]): Type; export declare function allOf(...types: [Type, Type, Type, Type, Type]): Type; export declare function allOf(...types: [Type, Type, Type, Type, Type, Type]): Type; export declare function allOf(...types: [ Type, Type, Type, Type, Type, Type, Type ]): Type; export declare function allOf(...types: [ Type, Type, Type, Type, Type, Type, Type, Type ]): Type; export declare const alias: (name: string, type: Type) => TypeAlias; export declare const ref: (type: () => TypeAlias) => Type; export declare type ExtractType> = T['__type'];