import { NativeTypeCodegenDescriptor } from '@il2js/core';
import { Il2CppTypeDefinitionInfo, Il2CppTypeInfo } from './Types';
import { CodegenContext } from './Targets';
import { TypeDisposition, ITypeRegistry } from './Types/Compiler';
import { TypeImport } from './Types/Compiler/TypeImport';
export declare class TypeRegistry implements ITypeRegistry {
    private types;
    private typeIds;
    readonly imports: [string[], string][];
    constructor(types?: (string | TypeImport)[]);
    findType(type: Il2CppTypeInfo): NativeTypeCodegenDescriptor | undefined;
    getTypeDisposition(type: Il2CppTypeInfo): TypeDisposition;
    hasType(type: Il2CppTypeInfo): boolean;
    getTypeName(typeDef: Il2CppTypeInfo, context: CodegenContext, relativeToType?: Il2CppTypeInfo): string;
    addTypeDefs(types: Il2CppTypeDefinitionInfo[]): void;
    addTypeInfo(types: Il2CppTypeInfo[]): void;
    addTypes({ from, types }: TypeImport): void;
}
