import type { BackendType } from './backends/types.js'; import type { ProviderCommandDiscoveryResult, ProviderCommandDiscoveryTiming, ProviderCommandKind, ProviderCommandPresentation, ProviderCommandScope } from './provider-command-types.js'; export interface ProviderCommandDiscoverer { capability: { kinds: ProviderCommandKind[]; timing: ProviderCommandDiscoveryTiming; supportsForceReload: boolean; presentation: ProviderCommandPresentation; }; discover(scope: ProviderCommandScope): Promise; } export declare class ProviderCommandDiscovererRegistry { private readonly providerDiscoverers; private readonly backendDiscoverers; registerProvider(providerId: string, discoverer: ProviderCommandDiscoverer): void; registerBackend(backend: BackendType, discoverer: ProviderCommandDiscoverer): void; resolve(providerId: string, backend: BackendType): ProviderCommandDiscoverer | undefined; capability(providerId: string, backend: BackendType): { supported: boolean; details?: ProviderCommandDiscoverer['capability']; }; discover(scope: ProviderCommandScope, backend: BackendType): Promise; } export declare const providerCommandDiscoverers: ProviderCommandDiscovererRegistry; export declare function discoverProviderCommands(scope: ProviderCommandScope): Promise;