export declare const enum TypeKind { Any = 0, Array = 1, BigInt = 2, BigIntLiteral = 3, Boolean = 4, BooleanLiteral = 5, Enum = 6, EnumLiteral = 7, Intersection = 8, Mapped = 9, Never = 10, Null = 11, Number = 12, NumberLiteral = 13, Object = 14, String = 15, StringLiteral = 16, Symbol = 17, TemplateLiteral = 18, Tuple = 19, Undefined = 20, Union = 21, Unknown = 22, Void = 23 } export declare const enum ObjectKind { None = 0, Class = 1, Interface = 2, Reference = 4, Tuple = 8, Anonymous = 16, Mapped = 32, Instantiated = 64, ObjectLiteral = 128, EvolvingArray = 256, ObjectLiteralPatternWithComputedProperties = 512, ReverseMapped = 1024, JsxAttributes = 2048, JSLiteral = 4096, FreshLiteral = 8192, ArrayLiteral = 16384, /** @internal */ PrimitiveUnion = 32768, /** @internal */ ContainsWideningType = 65536, /** @internal */ ContainsObjectOrArrayLiteral = 131072, /** @internal */ NonInferrableType = 262144, /** @internal */ CouldContainTypeVariablesComputed = 524288, /** @internal */ CouldContainTypeVariables = 1048576, ClassOrInterface = 3, /** @internal */ RequiresWidening = 196608, /** @internal */ PropagatingFlags = 458752, /** @internal */ InstantiatedMapped = 96, /** @internal */ ObjectTypeKindMask = 1343, ContainsSpread = 2097152, ObjectRestType = 4194304, InstantiationExpressionType = 8388608, /** @internal */ IsClassInstanceClone = 16777216, /** @internal */ IdenticalBaseTypeCalculated = 33554432, /** @internal */ IdenticalBaseTypeExists = 67108864, /** @internal */ IsGenericTypeComputed = 2097152, /** @internal */ IsGenericObjectType = 4194304, /** @internal */ IsGenericIndexType = 8388608, /** @internal */ IsGenericType = 12582912, /** @internal */ ContainsIntersections = 16777216, /** @internal */ IsUnknownLikeUnionComputed = 33554432, /** @internal */ IsUnknownLikeUnion = 67108864, /** @internal */ /** @internal */ IsNeverIntersectionComputed = 16777216, /** @internal */ IsNeverIntersection = 33554432 } interface BaseType { kind: T; toString(): string; } export interface AnyType extends BaseType { } export interface ArrayType extends BaseType { type?: Type; } export interface BigIntType extends BaseType { } export interface BigIntLiteralType extends BaseType { value?: bigint; } export interface BooleanType extends BaseType { } export interface BooleanLiteralType extends BaseType { value?: boolean; } export interface EnumType extends BaseType { } export interface EnumLiteralType extends BaseType { value?: unknown; } export interface IntersectionType extends BaseType { types?: Type[]; } export interface NeverType extends BaseType { } export interface NullType extends BaseType { } export interface NumberType extends BaseType { } export interface NumberLiteralType extends BaseType { value?: number; } export type ObjectType = AnonymousObjectType | MappedObjectType | BaseObjectType>; export interface StringType extends BaseType { } export interface StringLiteralType extends BaseType { value?: string; } export interface SymbolType extends BaseType { unique?: boolean; } export interface TemplateLiteralType extends BaseType { template?: (string | Type)[]; } export interface TupleType extends BaseType { types?: Type[]; } export interface UndefinedType extends BaseType { } export interface UnionType extends BaseType { types?: Type[]; } export interface UnknownType extends BaseType { } export interface VoidType extends BaseType { } export interface BaseObjectType extends BaseType { objectKind: T; } export interface AnonymousObjectType extends BaseObjectType { indexes?: Array<{ keyType: Type; type: Type; }>; properties?: Record; } export interface MappedObjectType extends BaseObjectType { properties?: string[]; templateType?: Type; } export type Type = AnyType | ArrayType | UnknownType | StringType | NumberType | BooleanType | EnumType | BigIntType | StringLiteralType | NumberLiteralType | BooleanLiteralType | EnumLiteralType | BigIntLiteralType | SymbolType | VoidType | UndefinedType | NullType | NeverType | ObjectType | UnionType | IntersectionType | TupleType | TemplateLiteralType; declare const _default: { array: (type?: Type) => ArrayType; bigInt: () => BigIntType; bigIntLiteral: (value?: bigint) => BigIntLiteralType; boolean: () => BooleanType; booleanLiteral: (value?: boolean) => BooleanLiteralType; intersection: (types?: Type[]) => IntersectionType; mappedType: (options?: Pick) => MappedObjectType; never: () => NeverType; null: () => NullType; number: () => NumberType; numberLiteral: (value?: number) => NumberLiteralType; anonymousObject: (options?: Pick) => AnonymousObjectType; object: (object?: ObjectType) => ObjectType; string: () => StringType; stringLiteral: (value?: string) => StringLiteralType; symbol: (unique?: boolean) => SymbolType; templateLiteral: (template?: (string | Type)[]) => TemplateLiteralType; tuple: (types?: Type[]) => TupleType; undefined: () => UndefinedType; union: (types?: Type[]) => UnionType; unknown: () => UnknownType; void: () => VoidType; }; export default _default; //# sourceMappingURL=types.d.ts.map