import { type ExtensionAutoConvertHandler, type ExtensionKey, type ExtensionManifest, type ExtensionType } from './extension-manifest';
import { type Parameters } from './extension-parameters';
export interface ExtensionProvider<T extends Parameters = any> {
    getAutoConverter: () => Promise<ExtensionAutoConvertHandler[]>;
    getExtension: (type: ExtensionType, key: ExtensionKey) => Promise<ExtensionManifest<T> | undefined>;
    getExtensions: () => Promise<ExtensionManifest<T>[]>;
    getPreloadedExtension?: (type: ExtensionType, key: ExtensionKey) => ExtensionManifest<T> | undefined;
    preload?: () => Promise<void>;
    search: (keyword: string) => Promise<ExtensionManifest<T>[]>;
}
