import { UModel } from "../entities/model";
import { URenderer } from "../entities/renderer";
import { RenderContent, RenderPath, RenderSelection } from "../types/renderer";
import { UModule } from "../entities/module";
import { UField } from "../entities/field";
export default class TSClassRenderer extends URenderer {
    private _entityDir;
    private _dtoDir;
    private _enumDir;
    private _includeModuleInDir;
    private _where?;
    constructor(options?: {
        modelDir?: string;
        dtoDir?: string;
        includeModuleInDir?: boolean;
        where?: (module: UModule, model: UModel) => boolean;
    });
    $isDto(model: UModel): boolean | null;
    $resolveImport(from: string, model: UModel): string;
    $key(model: UModel): string;
    $keys(models: UModel[]): string[];
    $paths(models?: UModel[]): RenderPath[];
    $className(model: UModel): string;
    $fileName(model: UModel, extension?: boolean): string;
    $fieldName(field: UField): string;
    $fieldType(field: UField): string;
    $fieldSignature(field: UField): string;
    select(): Promise<RenderSelection>;
    render(): Promise<RenderContent[]>;
}
