import type { ModelProviderConfig } from "../config/types.models.js";
export type ProviderExtensionCatalogSource = "bundled" | "workspace" | "global" | "config";
export type ProviderExtensionCatalogModule = {
    provider?: ModelProviderConfig;
    providers?: Record<string, ModelProviderConfig | undefined>;
    default?: {
        provider?: ModelProviderConfig;
        providers?: Record<string, ModelProviderConfig | undefined>;
    };
};
export type ProviderExtensionCatalogEntry = {
    id: string;
    source: ProviderExtensionCatalogSource;
    providerIds: readonly string[];
    trusted?: boolean;
    load: () => ProviderExtensionCatalogModule | Promise<ProviderExtensionCatalogModule>;
};
export type ProviderExtensionCatalogEntryStatus = {
    id: string;
    source: ProviderExtensionCatalogSource;
    trusted: boolean;
    providerIds: string[];
    loadedProviderIds: string[];
    modelCount: number;
    status: "loaded" | "skipped-untrusted" | "empty" | "error";
    error?: string;
};
export type ProviderExtensionCatalogIndex = {
    providers: Record<string, ModelProviderConfig>;
    entries: ProviderExtensionCatalogEntryStatus[];
};
export declare function __setProviderExtensionCatalogEntriesForTest(entries?: readonly ProviderExtensionCatalogEntry[]): void;
export declare function listBundledProviderExtensionCatalogEntries(): readonly ProviderExtensionCatalogEntry[];
export declare function loadProviderExtensionCatalogIndex(params?: {
    entries?: readonly ProviderExtensionCatalogEntry[];
    includeUntrusted?: boolean;
}): Promise<ProviderExtensionCatalogIndex>;
