import { BaseExtension, ExtensionTypeEnum } from '../extension' import { GpuSetting, HuggingFaceRepoData, ImportingModel, Model, 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(modelId: string): Promise abstract saveModel(model: Model): Promise abstract getDownloadedModels(): Promise abstract getConfiguredModels(): Promise abstract importModels(models: ImportingModel[], optionType: OptionType): Promise abstract updateModelInfo(modelInfo: Partial): Promise abstract fetchHuggingFaceRepoData(repoId: string): Promise }