import { ClassPrototype, Class, Type, Function, Program } from "visitor-as/as"; import { TypeInfo } from "./typeInfo"; export declare type TypeInfoMap = Map; /** * TypeResolver resolve an entrypoint contract type infos, and collect some useful type infos. */ export declare class TypeResolver { readonly program: Program; private readonly entrypoint; private readonly eventPrototypes; private currentIndex; private readonly types; readonly contracts: ClassPrototype[]; readonly messages: Map; readonly constructors: Map; readonly events: Map; constructor(program: Program, entrypoint: ClassPrototype, eventPrototypes: ClassPrototype[]); resolvedTypes(): TypeInfoMap; resolve(): void; private resolveContracts; private resolveEvents; /** * Add the type to types. If the type is not primitive type, add it non-static fields recursively in order. * @param type resolved type * @returns */ private resolveScaleType; private resovleCompositeField; get errorInstance(): Class; private _errorInstance; private resolveContract; private resolveEvent; }