import { CodeMaker } from "codemaker";
import { ResourceModel, Struct } from "../models";
import { AttributesEmitter } from "./attributes-emitter";
export declare class StructEmitter {
    private readonly code;
    attributesEmitter: AttributesEmitter;
    private readonly importExtension;
    constructor(code: CodeMaker, importExtension: string);
    emit(resource: ResourceModel): void;
    private warnAboutIdField;
    emitInterface(resource: ResourceModel, struct: Struct, name?: string): void;
    private emitStructs;
    private emitNamespacedStructs;
    private emitClass;
    private emitComplexListClass;
    private emitComplexMapClass;
    private emitComplexMapListClasses;
    private emitComplexMapListClass;
    private emitComplexListMapClasses;
    private emitComplexListMapClass;
    private emitComplexListListClasses;
    private emitComplexListListClass;
    private emitInternalValueGetter;
    private emitInternalValueSetter;
    private emitToHclTerraformFunction;
    private emitToTerraformFunction;
}
//# sourceMappingURL=struct-emitter.d.ts.map