import { Entity, ProjectModel } from "../../../common/model/cuba-model";
import * as Generator from "yeoman-generator";
import * as ts from "typescript";
import { ImportInfo } from "../import-utils";
import { ModelContext } from "./model-utils";
export interface ProjectEntityInfo {
    entity: Entity;
    isBaseProjectEntity: boolean;
}
export declare type ClassCreationContext = ModelContext & {
    entity: Entity;
    isBaseProjectEntity: boolean;
};
/**
 *
 * Generate TS entity classes from ProjectModel, write generated files to destDir
 *
 * @param projectModel project model entities generated from
 * @param destDir where created TS files should be placed, also need to compute correct imports in generated TS files
 * @param fs Yeoman MemFs editor
 * @return model context contains entity and enum maps with fqn as key
 */
export declare function generateEntities(projectModel: ProjectModel, destDir: string, fs: Generator.MemFsEditor): ModelContext;
export declare function createEntityClass(ctx: ClassCreationContext): {
    classDeclaration: ts.ClassDeclaration;
    importInfos: ImportInfo[];
};
