import type { AgentClient, AgentMode, AgentModelDefinition, AgentProvider, ListModelsOptions, ListModesOptions } from "./agent-sdk-types.js";
import type { AgentProviderRuntimeSettingsMap } from "./provider-launch-config.js";
import type { Logger } from "pino";
import { AGENT_PROVIDER_DEFINITIONS, getAgentProviderDefinition, type AgentProviderDefinition } from "./provider-manifest.js";
export type { AgentProviderDefinition };
export { AGENT_PROVIDER_DEFINITIONS, getAgentProviderDefinition };
export interface ProviderDefinition extends AgentProviderDefinition {
    createClient: (logger: Logger) => AgentClient;
    fetchModels: (options?: ListModelsOptions) => Promise<AgentModelDefinition[]>;
    fetchModes: (options?: ListModesOptions) => Promise<AgentMode[]>;
}
type BuildProviderRegistryOptions = {
    runtimeSettings?: AgentProviderRuntimeSettingsMap;
};
export declare function buildProviderRegistry(logger: Logger, options?: BuildProviderRegistryOptions): Record<AgentProvider, ProviderDefinition>;
export declare const PROVIDER_REGISTRY: Record<AgentProvider, ProviderDefinition>;
export declare function createAllClients(logger: Logger, options?: BuildProviderRegistryOptions): Record<AgentProvider, AgentClient>;
export declare function shutdownProviders(logger: Logger, options?: BuildProviderRegistryOptions): Promise<void>;
//# sourceMappingURL=provider-registry.d.ts.map