import type { ImageGenerationProviderPlugin, MediaUnderstandingProviderPlugin, MeetingNotesSourceProviderPlugin, MusicGenerationProviderPlugin, ProviderPlugin, RealtimeTranscriptionProviderPlugin, RealtimeVoiceProviderPlugin, SpeechProviderPlugin, VideoGenerationProviderPlugin, WebFetchProviderPlugin, WebSearchProviderPlugin } from "../types.js";
import { type BundledPluginContractSnapshot } from "./inventory/bundled-capability-metadata.js";
type CapabilityContractEntry<T> = {
    pluginId: string;
    provider: T;
};
type ProviderContractEntry = CapabilityContractEntry<ProviderPlugin>;
type WebSearchProviderContractEntry = CapabilityContractEntry<WebSearchProviderPlugin> & {
    credentialValue: unknown;
};
type WebFetchProviderContractEntry = CapabilityContractEntry<WebFetchProviderPlugin> & {
    credentialValue: unknown;
};
type SpeechProviderContractEntry = CapabilityContractEntry<SpeechProviderPlugin>;
type RealtimeTranscriptionProviderContractEntry = CapabilityContractEntry<RealtimeTranscriptionProviderPlugin>;
type RealtimeVoiceProviderContractEntry = CapabilityContractEntry<RealtimeVoiceProviderPlugin>;
type MediaUnderstandingProviderContractEntry = CapabilityContractEntry<MediaUnderstandingProviderPlugin>;
type MeetingNotesSourceProviderContractEntry = CapabilityContractEntry<MeetingNotesSourceProviderPlugin>;
type ImageGenerationProviderContractEntry = CapabilityContractEntry<ImageGenerationProviderPlugin>;
type VideoGenerationProviderContractEntry = CapabilityContractEntry<VideoGenerationProviderPlugin>;
type MusicGenerationProviderContractEntry = CapabilityContractEntry<MusicGenerationProviderPlugin>;
type PluginRegistrationContractEntry = BundledPluginContractSnapshot;
export declare let providerContractLoadError: Error | undefined;
export declare function resolveWebFetchProviderContractEntriesForPluginId(pluginId: string): WebFetchProviderContractEntry[];
export declare function resolveWebSearchProviderContractEntriesForPluginId(pluginId: string): WebSearchProviderContractEntry[];
export declare const providerContractRegistry: ProviderContractEntry[];
export declare const uniqueProviderContractProviders: ProviderPlugin[];
export declare const providerContractPluginIds: string[];
export declare const providerContractCompatPluginIds: string[];
export declare function requireProviderContractProvider(providerId: string): ProviderPlugin;
export declare function resolveProviderContractPluginIdsForProvider(providerId: string): string[] | undefined;
export declare function resolveProviderContractPluginIdsForProviderAlias(providerId: string): string[] | undefined;
export declare function resolveProviderContractProvidersForPluginIds(pluginIds: readonly string[]): ProviderPlugin[];
export declare const webSearchProviderContractRegistry: WebSearchProviderContractEntry[];
export declare const webFetchProviderContractRegistry: WebFetchProviderContractEntry[];
export declare const speechProviderContractRegistry: SpeechProviderContractEntry[];
export declare const realtimeTranscriptionProviderContractRegistry: RealtimeTranscriptionProviderContractEntry[];
export declare const realtimeVoiceProviderContractRegistry: RealtimeVoiceProviderContractEntry[];
export declare const mediaUnderstandingProviderContractRegistry: MediaUnderstandingProviderContractEntry[];
export declare const meetingNotesSourceProviderContractRegistry: MeetingNotesSourceProviderContractEntry[];
export declare const imageGenerationProviderContractRegistry: ImageGenerationProviderContractEntry[];
export declare const videoGenerationProviderContractRegistry: VideoGenerationProviderContractEntry[];
export declare const musicGenerationProviderContractRegistry: MusicGenerationProviderContractEntry[];
export declare const pluginRegistrationContractRegistry: PluginRegistrationContractEntry[];
export {};
