export declare enum IntrospectorTypes { Enum = 0, Mixin = 1, Data = 2, Adt = 3, Id = 4, Service = 5, Method = 6, List = 7, Map = 8, Opt = 9, Set = 10, Str = 11, Bool = 12, I08 = 13, I16 = 14, I32 = 15, I64 = 16, U08 = 17, U16 = 18, U32 = 19, U64 = 20, F32 = 21, F64 = 22, Uid = 23, Tsz = 24, Tsl = 25, Tsu = 26, Time = 27, Date = 28, Blob = 29 } export interface IIntrospectorUserType extends IIntrospectorType { full: string; } export interface IIntrospectorGenericType extends IIntrospectorType { value: IIntrospectorType; } export interface IIntrospectorMapType extends IIntrospectorGenericType { key: IIntrospectorType; } export interface IIntrospectorType { intro: IntrospectorTypes; } export interface IIntrospectorObjectField { name: string; accessName: string; type: IIntrospectorType; } export interface IIntrospectorObjectAdtMember { name: string; type: IIntrospectorType; } export interface IIntrospectorMixinObject extends IIntrospectorObjectWithFields { implementations: () => string[]; } export interface IIntrospectorDataObject extends IIntrospectorObjectWithFields { } export interface IIntrospectorIdObject extends IIntrospectorObjectWithFields { } export interface IIntrospectorObjectWithFields extends IIntrospectorObject { ctor: () => any; fields: IIntrospectorObjectField[]; } export interface IIntrospectorEnumObject extends IIntrospectorObject { options: any[]; } export interface IIntrospectorAdtObject extends IIntrospectorObject { options: IIntrospectorObjectAdtMember[]; } export interface IIntrospectorObject { full: string; short: string; package: string; type: IntrospectorTypes; } export declare class Introspector { private static knownTypesMap; private static knownTypesList; static register(fullClassName: string, intro: IIntrospectorObject): void; static find(fullClassName: string): IIntrospectorObject; static all(): IIntrospectorObject[]; }