import type { Agent0AvailableModel, Agent0ModelListResult, Agent0ProviderConnectionRedacted, Agent0ProviderListResult, Agent0ProviderId, Agent0ProviderView } from '../types.js';
import { Agent0ConfigStore } from '../config/store.js';
import { type Agent0DefaultProviderCatalogSourceOptions, type Agent0ProviderCatalogSource } from './source.js';
export interface Agent0ProviderRegistryOptions {
    store?: Agent0ConfigStore;
    catalogSource?: Agent0ProviderCatalogSource;
    catalogSourceOptions?: Agent0DefaultProviderCatalogSourceOptions;
    now?: () => Date;
}
export interface Agent0ProviderAuthInput {
    apiKey: string;
    baseURL?: string;
    enabled?: boolean;
}
export declare class Agent0ProviderRegistry {
    private readonly store;
    private readonly catalogSource;
    private readonly now;
    constructor(options?: Agent0ProviderRegistryOptions);
    listProviders(): Promise<Agent0ProviderView[]>;
    listProvidersWithStatus(): Promise<Agent0ProviderListResult>;
    listModels(): Promise<Agent0AvailableModel[]>;
    listModelsWithStatus(): Promise<Agent0ModelListResult>;
    putProviderAuth(providerId: Agent0ProviderId, input: Agent0ProviderAuthInput): Promise<Agent0ProviderConnectionRedacted>;
    removeProviderAuth(providerId: Agent0ProviderId): Promise<Agent0ProviderConnectionRedacted | undefined>;
    setProviderEnabled(providerId: Agent0ProviderId, enabled: boolean): Promise<Agent0ProviderConnectionRedacted>;
    private isProviderUsable;
    private listCatalogProviders;
    private readConfigWithStatus;
    private listCatalogModelsWithStatus;
}
//# sourceMappingURL=registry.d.ts.map