import { EPackage } from '../metamodel/api/epackage.js';
import { EClassifier } from '../metamodel/api/eclassifier.js';
import { EClass } from '../metamodel/api/eclass.js';
/**
 * Source code generation for *gen.ts files for EClasses.
 *
 * @author dtuohy
 */
export declare class TGeneratorGen {
    private _pkg;
    private _packageName;
    /**
     * Generates a template string containing all source code for the *gen.ts
     * file for the given EClass.
     *
     * @param eClass
     * @param toImport
     * @param genToImport
     * @param pkgToImport
     */
    generate(eClass: EClass, toImport: Set<EClassifier>, genToImport: Set<EClassifier>, pkgToImport: Set<EPackage>): string;
    /**
     * Generates import statements for all APIs, Gen classes
     * and packages to import.
     *
     * @param eClass
     * @param toImport
     * @param genToImport
     * @param pkgToImport
     */
    private generateAllImportStatements;
    private generateExtends;
    private genFeatureDeclarations;
    private genConstructor;
    private genGettersAndSetters;
    private genGetter;
    private genSetter;
    private genBasicSetters;
    private genEoperations;
    private genEGet;
    private genESet;
    private genEIsSet;
    private genEUnset;
    private genEInverseAdd;
    private genEInverseRemove;
}
//# sourceMappingURL=tgenerator-gen.d.ts.map