import { Type } from "./data-types/Type";
import { And, Exclude, Omit, Partial, Pick, Required } from "./intrinsic-type-utils/index";
import { toJsonSchema } from "./json-schema-parser/to-json-schema";
import { toTsType } from "./ts-type-generator/to-ts-type";
import { parseWith } from "./universal-parser/universal-parser";
import { compile } from "./validation-algorithms/compile-fast-validator";
import { validateWith, validator } from "./validation-algorithms/create-validator";
import { assertType } from "./validation-algorithms/ensure-data-type";
import { ValidationError } from "./validation-algorithms/validation-error/validation-error";
export type { BaseType, TypeMetadata } from "./data-types/base-type";
export type { ChangeDefault, DefaultReplacementType, GetTypeFromRecursive, IsDefaultReplacement, MapRecordTypeSchema, MapToIntersection, MapToUnion, MapTupleType, ParseRecursiveDataType, RecursiveTypesMap, ReplaceIfRef, ReplacementType, ReplaceRecursiveRefs, UnRecursiveType, } from "./data-types/recursive-type-utils";
export type { AnyType, BasicType, BasicTypeNames, ComplexType, DataTypeKind, FieldDescriptor, Metadata, OptionalField, RecordTypeSchema, RecordVisitChild, TypeVisitor, } from "./data-types/type-types";
export type { EnsureStringType, ExcludeOptional, ExcludeRequired, GetDescriptorType, GetFieldDescriptorsFromSetOf, GetFnAssertType, GetTypeFromAllOf, GetTypeFromArrayOf, GetTypeFromCustom, GetTypeFromDict, GetTypeFromEnum, GetTypeFromEnumMember, GetTypeFromInstanceOf, GetTypeFromLiteral, GetTypeFromOneOf, GetTypeFromRecordOf, GetTypeFromStringMatching, GetTypeFromTuple, Infer, InferDType, InferRecordType, IsRequiredDescriptor, ParseBasicDataType, ParseComplexType, ParseDataTypeIntersectionTuple, RepackTuple, ReWrap, Static, TypeMap, UnknownFunction, ValueOf, } from "./data-types/type-utils";
export type { ArrayType } from "./data-types/types/array";
export type { BooleanType } from "./data-types/types/boolean";
export type { CustomType } from "./data-types/types/custom";
export type { DictType } from "./data-types/types/dict";
export type { EnumType } from "./data-types/types/enum";
export type { EnumMemberType } from "./data-types/types/enum-member";
export type { FunctionType } from "./data-types/types/function";
export type { InstanceOfType } from "./data-types/types/instance";
export type { IntegerType } from "./data-types/types/integer";
export type { IntersectionType } from "./data-types/types/intersection";
export type { LiteralType } from "./data-types/types/literal";
export type { NullType } from "./data-types/types/null";
export type { NumberType } from "./data-types/types/number";
export type { RecordType } from "./data-types/types/record";
export type { RecursiveType, RecursiveTypeReference, } from "./data-types/types/recursive";
export type { SetType } from "./data-types/types/set";
export type { StringType } from "./data-types/types/string";
export type { StringFloatType as StringNumeralType } from "./data-types/types/string-float";
export type { StringIntegerType } from "./data-types/types/string-integer";
export type { StringMatchingType } from "./data-types/types/string-matching";
export type { SymbolType } from "./data-types/types/symbol";
export type { TupleType } from "./data-types/types/tuple";
export type { UndefinedType } from "./data-types/types/undefined";
export type { UnionType } from "./data-types/types/union";
export type { UnknownType } from "./data-types/types/unknown";
export * from "./intrinsic-type-utils/index";
export type { ParseToJsonSchemaOptions } from "./json-schema-parser/to-json-schema";
export type { TsParsingMode, TsParsingOptions, } from "./ts-type-generator/parser-options";
export type { FastValidator } from "./validation-algorithms/compile-fast-validator";
export { And, assertType, compile, 
/** alias for `compile()` */
compile as compileFastValidator, Exclude, Omit, parseWith, Partial, Pick, Required, toJsonSchema, toTsType, Type, validateWith, ValidationError, validator, };
declare const _default: {
    And: <R1 extends import("./data-types/type-types").RecordTypeSchema, R2 extends import("./data-types/type-types").RecordTypeSchema>(recordDataTypeA: import("./data-types/types/record").RecordType<R1>, recordDataTypeB: import("./data-types/types/record").RecordType<R2>) => import("./intrinsic-type-utils/types").SumRecord<R1, R2>;
    assertType: <DT extends import("./data-types/type-types").AnyType>(type: DT, data: unknown) => asserts data is import("./data-types/type-utils").ReWrap<import("./data-types/type-utils").InferDType<DT>>;
    compile: <DT_1 extends import("./data-types/type-types").AnyType>(dataType: DT_1, options?: {
        inlineHelpers?: boolean | undefined;
    } | undefined) => import("./validation-algorithms/compile-fast-validator").FastValidator<import("./data-types/type-utils").ReWrap<import("./data-types/type-utils").InferDType<DT_1>>>;
    /** alias for `compile()` */
    compileFastValidator: <DT_1 extends import("./data-types/type-types").AnyType>(dataType: DT_1, options?: {
        inlineHelpers?: boolean | undefined;
    } | undefined) => import("./validation-algorithms/compile-fast-validator").FastValidator<import("./data-types/type-utils").ReWrap<import("./data-types/type-utils").InferDType<DT_1>>>;
    Exclude: <U extends import("./data-types/types/union").UnionType<any[]>, E extends import("./data-types/type-types").BasicType>(union: U, ...excludeTypes: E[]) => import("./intrinsic-type-utils/types").ExcludeOneOf<U, E>;
    Omit: <R extends import("./data-types/type-types").RecordTypeSchema, K extends keyof R>(recordDataType: import("./data-types/types/record").RecordType<R>, ...omitKeys: readonly K[]) => import("./intrinsic-type-utils/types").OmitRecord<R, K>;
    parseWith: <R_1>(visitor: import("./data-types/type-types").TypeVisitor<R_1>, type: import("./data-types/type-types").AnyType) => R_1;
    Partial: <R_2 extends import("./data-types/type-types").RecordTypeSchema>(recordDataType: import("./data-types/types/record").RecordType<R_2>) => import("./intrinsic-type-utils/types").PartialRecord<R_2>;
    Pick: <R_3 extends import("./data-types/type-types").RecordTypeSchema, K_1 extends keyof R_3>(recordDataType: import("./data-types/types/record").RecordType<R_3>, ...pickKeys: readonly K_1[]) => import("./intrinsic-type-utils/types").PickRecord<R_3, K_1>;
    Required: <R_4 extends import("./data-types/type-types").RecordTypeSchema>(recordDataType: import("./data-types/types/record").RecordType<R_4>) => import("./intrinsic-type-utils/types").RequiredRecord<R_4>;
    toJsonSchema: (type: import("./data-types/type-types").AnyType, options?: import("./json-schema-parser/to-json-schema").ParseToJsonSchemaOptions, include$schemaProperty?: boolean) => import("json-schema").JSONSchema6 | undefined;
    toTsType: (dataType: import("./data-types/type-types").AnyType, options?: Partial<import("./ts-type-generator/parser-options").TsParsingOptions> | undefined) => string;
    Type: {
        readonly Unknown: import("./data-types/types/unknown").UnknownType;
        readonly String: import("./data-types/types/string").StringType;
        readonly Number: import("./data-types/types/number").NumberType;
        readonly Int: import("./data-types/types/integer").IntegerType;
        readonly Boolean: import("./data-types/types/boolean").BooleanType;
        readonly Symbol: import("./data-types/types/symbol").SymbolType;
        readonly Function: import("./data-types/types/function").FunctionType;
        readonly Null: import("./data-types/types/null").NullType;
        readonly Undefined: import("./data-types/types/undefined").UndefinedType;
        Record<TS extends import("./data-types/type-types").RecordTypeSchema>(args: TS): import("./data-types/types/record").RecordType<TS>;
        Dict<DT_2 extends import("./data-types/type-types").AnyType[]>(...args: DT_2): import("./data-types/types/dict").DictType<DT_2>;
        Array<DT_3 extends import("./data-types/type-types").AnyType[]>(...args: DT_3): import("./data-types/types/array").ArrayType<DT_3>;
        Tuple<DT_4 extends import("./data-types/type-types").AnyType[]>(...args: DT_4): import("./data-types/types/tuple").TupleType<DT_4>;
        Set<DT_5 extends import("./data-types/type-types").AnyType[]>(...args: DT_5): import("./data-types/types/set").SetType<DT_5>;
        OneOf<DT_6 extends import("./data-types/type-types").AnyType[]>(...args: DT_6): import("./data-types/types/union").UnionType<DT_6>;
        AllOf<DT_7 extends import("./data-types/type-types").AnyType[]>(...args: DT_7): import("./data-types/types/intersection").IntersectionType<DT_7>;
        Literal<V extends (string | number | boolean)[]>(...values: V): import("./data-types/types/union").UnionType<[import("./data-types/types/literal").LiteralType<V[number]>]>;
        EnumMember<M extends string | number>(enumMember: M): import("./data-types/types/enum-member").EnumMemberType<M>;
        Enum<T extends string, TEnumValue extends string | number>(enumInstance: { [key in T]: TEnumValue; }): import("./data-types/types/enum").EnumType<TEnumValue>;
        InstanceOf<DT_8>(instanceOf: new (...args: any[]) => DT_8): import("./data-types/types/instance").InstanceOfType<DT_8>;
        Custom<VF extends (v: any) => v is any>(validateFunction: VF): import("./data-types/types/custom").CustomType<VF>;
        Recursive<DT_9 extends import("./data-types/type-types").AnyType>(getDataType: (ref: import("./data-types/types/recursive").RecursiveTypeReference) => DT_9): import("./data-types/types/recursive").RecursiveType<DT_9>;
        Option<DT_10 extends import("./data-types/type-types").AnyType>(type: DT_10): import("./data-types/type-types").OptionalField<DT_10>;
    };
    validateWith: typeof validateWith;
    ValidationError: typeof ValidationError;
    validator: typeof validator;
};
export default _default;
