import type { Logger } from "pino";
import type { AgentProvider, ProviderSnapshotEntry } from "./agent-sdk-types.js";
import type { ProviderDefinition } from "./provider-registry.js";
type ProviderSnapshotChangeListener = (entries: ProviderSnapshotEntry[], cwd?: string) => void;
export declare class ProviderSnapshotManager {
    private readonly providerRegistry;
    private readonly logger;
    private readonly snapshots;
    private readonly warmUps;
    private readonly events;
    private destroyed;
    constructor(providerRegistry: Record<AgentProvider, ProviderDefinition>, logger: Logger);
    getSnapshot(cwd?: string): ProviderSnapshotEntry[];
    refresh(cwd?: string): void;
    on(event: "change", listener: ProviderSnapshotChangeListener): this;
    off(event: "change", listener: ProviderSnapshotChangeListener): this;
    destroy(): void;
    private createLoadingEntries;
    private warmUp;
    private refreshProvider;
    private emitChange;
    private getOrCreateSnapshot;
    private resetSnapshotToLoading;
    private getProviderIds;
}
export {};
//# sourceMappingURL=provider-snapshot-manager.d.ts.map