import type { LLMProvider } from './interface.js';
import { type BuiltinCompatDefinition } from './builtin-catalog.js';
import type { BenchmarkEntry } from './model-benchmarks.js';
import type { RuntimeEventBus } from '../runtime/events/index.js';
import type { CanonicalModel } from './synthetic.js';
import type { SubscriptionManager } from '../config/subscriptions.js';
export interface ProviderRegistrar {
    register(provider: LLMProvider): void;
}
export declare const CATALOG_PROVIDER_NAME_ALIASES: Record<string, string>;
export declare function createBuiltinCompatProvider(definition: BuiltinCompatDefinition, apiKey: string, options: {
    readonly cacheHitTracker?: import('./cache-strategy.js').CacheHitTracker | undefined;
}): LLMProvider;
/**
 * Register the complete set of builtin provider implementations.
 * Kept in a separate module so the registry composition root stays focused.
 */
export declare function registerBuiltinProviders(registry: ProviderRegistrar, hasProvider: (name: string) => boolean, apiKey: (name: string) => string, options: {
    readonly resolveProvider: (providerName: string) => LLMProvider;
    readonly cacheHitTracker?: import('./cache-strategy.js').CacheHitTracker | undefined;
    readonly getCatalogModels: () => readonly CanonicalModel[];
    readonly getBenchmarks: (modelId: string) => BenchmarkEntry | undefined;
    readonly githubCopilotTokenCachePath: string;
    readonly subscriptionManager: Pick<SubscriptionManager, 'get' | 'getPending' | 'saveSubscription' | 'resolveAccessToken'>;
    readonly runtimeBus?: RuntimeEventBus | null | undefined;
}): void;
//# sourceMappingURL=builtin-registry.d.ts.map