import StringBuilder = require('string-builder'); export declare type Imports = { [moduleName: string]: string[]; }; export declare type TypeInfo = { replaceBy?: string; definedIn?: string; code?: string; }; export declare type TypeInfos = { [typeName: string]: TypeInfo; }; export declare const baseTypes: TypeInfos; export declare function mergeTypeInfos(a: TypeInfos, b: TypeInfos): TypeInfos; export declare class GenEnv { readonly imports: Imports; private currModuleName; private typeInfos; readonly sb: StringBuilder; private indentation; private firstInLine; private static warnedAbout; constructor(currModuleName: string, imports: Imports, typeInfos: TypeInfos, sb: StringBuilder, indentation?: string, firstInLine?: boolean); indent(): GenEnv; customCodeFor(rawName: string): string | undefined; resolveTypeName(rawName: string): string; append(str: string): void; appendLine(str: string): void; } export declare function emptyEnvForTests(additionalTypes?: TypeInfos): GenEnv;