import { BaseExtension, ExtensionTypeEnum } from '../extension' import { GpuSetting, HuggingFaceRepoData, ImportingModel, Model, ModelFile, ModelInterface, OptionType, } from '../../types' /** * Model extension for managing models. */ export abstract class ModelExtension extends BaseExtension implements ModelInterface { /** * Model extension type. */ type(): ExtensionTypeEnum | undefined { return ExtensionTypeEnum.Model } abstract downloadModel( model: Model, gpuSettings?: GpuSetting, network?: { proxy: string; ignoreSSL?: boolean } ): Promise abstract cancelModelDownload(modelId: string): Promise abstract deleteModel(model: ModelFile): Promise abstract getDownloadedModels(): Promise abstract getConfiguredModels(): Promise abstract importModels(models: ImportingModel[], optionType: OptionType): Promise abstract updateModelInfo(modelInfo: Partial): Promise abstract fetchHuggingFaceRepoData(repoId: string): Promise abstract getDefaultModel(): Promise }