/** * 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 }