/**
* Kind of type
*/
export declare enum TypeKind {
/**
* Interface
*/
Interface = 0,
/**
* Class
*/
Class = 1,
/**
* Native JavaScript/TypeScript type
*/
Native = 2,
/**
* Container for other types in case of types union or intersection
*/
Container = 3,
/**
* Type reference created during type checking
* @description Usually Array<...>, ReadOnly<...> etc.
*/
TransientTypeReference = 4,
/**
* Some specific object
* @description Eg. "{ foo: string, bar: boolean }"
*/
Object = 5,
/**
* Some subtype of string, number, boolean
* @example
type Foo = "hello world" | "hello"
* String "hello world" is literal type and it is subtype of string.
*
* type TheOnlyTrue = true;
* Same as true is literal type and it is subtype of boolean.
*/
LiteralType = 6,
/**
* Fixed lenght arrays literals
* @example type Coords = [x: number, y: number, z: number];
*/
Tuple = 7,
/**
* Generic parameter type
* @description Represent generic type parameter of generic types. Eg. it is TType of class Animal {}.
*/
TypeParameter = 8,
/**
* Conditional type
*/
ConditionalType = 9,
/**
* Indexed access type
* @description Eg. get(key: K): ==>> TypeKind[K] <<==
*/
IndexedAccess = 10,
/**
* Typescript "module"
* @description Value module or namespace module
*/
Module = 11,
/**
* Specific method used as type
*/
Method = 12,
/**
* Enum
*/
Enum = 13,
/**
* function foo() {}
*/
Function = 14
}
export declare enum Accessor {
None = 0,
Getter = 1,
Setter = 2
}
export declare enum AccessModifier {
Private = 0,
Protected = 1,
Public = 2
}