import { DataSource, EntityManager } from 'typeorm';
import { CreateModuleMetadataDto } from '../dtos/create-module-metadata.dto';
import { ModuleMetadata } from '../entities/module-metadata.entity';
import { ModuleMetadataHelperService } from '../helpers/module-metadata-helper.service';
import { ModuleMetadataRepository } from '../repository/module-metadata.repository';
import { PermissionMetadataSeederService } from '../seeders/permission-metadata-seeder.service';
import { DiskFileService } from '../services/file';
import { BasicFilterDto } from '../dtos/basic-filters.dto';
import { UpdateModuleMetadataDto } from '../dtos/update-module-metadata.dto';
import { SchematicService } from '../helpers/schematic.service';
import { CommandService } from '../helpers/command.service';
import { SolidRegistry } from '../helpers/solid-registry';
import { CodeGenerationOptions } from '../interfaces';
import { CrudHelperService } from './crud-helper.service';
import { ModelMetadataService } from './model-metadata.service';
import { SettingService } from './setting.service';
export declare class ModuleMetadataService {
    private readonly dataSource;
    private readonly moduleMetadataRepo;
    private readonly crudHelperService;
    private readonly schematicService;
    private readonly commandService;
    private readonly fileService;
    private readonly settingService;
    private readonly permissionsSeederService;
    private readonly modelMetadataService;
    private readonly solidRegistry;
    private readonly moduleMetadataHelperService;
    private readonly logger;
    constructor(dataSource: DataSource, moduleMetadataRepo: ModuleMetadataRepository, crudHelperService: CrudHelperService, schematicService: SchematicService, commandService: CommandService, fileService: DiskFileService, settingService: SettingService, permissionsSeederService: PermissionMetadataSeederService, modelMetadataService: ModelMetadataService, solidRegistry: SolidRegistry, moduleMetadataHelperService: ModuleMetadataHelperService);
    findMany(basicFilterDto: BasicFilterDto): Promise<{
        meta: {
            totalRecords: number;
            currentPage: number;
            nextPage: number;
            prevPage: number;
            totalPages: number;
            perPage: number;
        };
        records: ModuleMetadata[];
    }>;
    find(basicFilterDto: BasicFilterDto): Promise<{
        meta: {
            totalRecords: number;
            currentPage: number;
            nextPage: number;
            prevPage: number;
            totalPages: number;
            perPage: number;
        };
        records: ModuleMetadata[];
    }>;
    findOneByUserKey(name: string, relations?: {}): Promise<ModuleMetadata>;
    findOne(id: number, relations?: {}): Promise<ModuleMetadata>;
    create(createDto: CreateModuleMetadataDto, files?: Express.Multer.File[]): Promise<ModuleMetadata>;
    createInDB(manager: EntityManager, createDto: CreateModuleMetadataDto, files?: Express.Multer.File[]): Promise<ModuleMetadata>;
    createInFile(module: ModuleMetadata): Promise<void>;
    update(id: number, updateModuleMetadataDto: UpdateModuleMetadataDto, files?: Express.Multer.File[]): Promise<ModuleMetadata>;
    updateInDB(manager: EntityManager, id: number, updateModuleMetadataDto: UpdateModuleMetadataDto, files?: Express.Multer.File[]): Promise<ModuleMetadata>;
    updateInFile(module: ModuleMetadata): Promise<void>;
    upsert(updateModuleMetadataDto: UpdateModuleMetadataDto): Promise<ModuleMetadata>;
    removeByName(name: string): Promise<void>;
    remove(id: number): Promise<ModuleMetadata>;
    cleanupOnDelete(moduleEntityId: number): Promise<void>;
    deleteMany(ids: number[]): Promise<any>;
    refreshPermission(): Promise<boolean>;
    generateCodeViaCtl(moduleId: number): Promise<string>;
    generateCode(options: CodeGenerationOptions): Promise<string>;
    private generateAddModuleCode;
    private generateRefreshModuleCode;
    private getFullFilePathForDisk;
    private getFileName;
}
//# sourceMappingURL=module-metadata.service.d.ts.map