import { CreateModelDto } from '@/infrastructure/dtos/models/create-model.dto'; import { UpdateModelDto } from '@/infrastructure/dtos/models/update-model.dto'; import { Model, ModelSettingParams } from '@/domain/models/model.interface'; import { StartModelSuccessDto } from '@/infrastructure/dtos/models/start-model-success.dto'; import { ExtensionRepository } from '@/domain/repositories/extension.interface'; import { TelemetryUsecases } from '../telemetry/telemetry.usecases'; import { ModelRepository } from '@/domain/repositories/model.interface'; import { HuggingFaceRepoSibling } from '@/domain/models/huggingface.interface'; import { EventEmitter2 } from '@nestjs/event-emitter'; import { ModelId, ModelStatus } from '@/domain/models/model.event'; import { DownloadManagerService } from '@/infrastructure/services/download-manager/download-manager.service'; import { ContextService } from '@/infrastructure/services/context/context.service'; import { CortexUsecases } from '../cortex/cortex.usecases'; export declare class ModelsUsecases { private readonly modelRepository; private readonly cortexUsecases; private readonly extensionRepository; private readonly downloadManagerService; private readonly telemetryUseCases; private readonly contextService; private readonly eventEmitter; constructor(modelRepository: ModelRepository, cortexUsecases: CortexUsecases, extensionRepository: ExtensionRepository, downloadManagerService: DownloadManagerService, telemetryUseCases: TelemetryUsecases, contextService: ContextService, eventEmitter: EventEmitter2); private activeModelStatuses; create(createModelDto: CreateModelDto): Promise; findAll(): Promise; findOne(model: string): Promise; getModelOrThrow(id: string): Promise; update(id: string, updateModelDto: UpdateModelDto): Promise; remove(id: string): Promise<{ message: string; modelId: string; } | undefined>; startModel(modelId: string, settings?: ModelSettingParams, filePath?: string, metadataPath?: string): Promise; stopModel(modelId: string): Promise; abortDownloadModel(downloadId: string): Promise; pullModel(originModelId: string, inSequence?: boolean, selection?: (siblings: HuggingFaceRepoSibling[]) => Promise, persistedModelId?: string): Promise; populateHuggingFaceModel(ggufUrl: string, overridenId?: string): Promise; getModelStatuses(): Record; isModelRunning(modelId: string): Promise; private validFileDownload; }