import type { AgentActionEvent } from './schemas.js';
import type { EventBus } from './EventBus.js';
import type { RiskAssessment } from './RiskClassifier.js';
import { ConfirmationStore } from './ConfirmationStore.js';
import type { NotificationChannel } from './NotificationDispatcher.js';
export interface ConfirmationResult {
    id: string;
    status: 'approved' | 'rejected' | 'expired' | 'cancelled';
    response?: string;
}
interface StorageProvider {
    getDatabase(): import('better-sqlite3').Database;
}
export declare class ConfirmationManager {
    private readonly store;
    private readonly dispatcher;
    private readonly eventBus;
    private readonly pending;
    private expiryCheckId;
    private readonly timeoutSeconds;
    constructor(deps: {
        storage: StorageProvider;
        eventBus: EventBus;
        channels: NotificationChannel[];
        timeoutSeconds?: number;
    });
    requestConfirmation(action: AgentActionEvent, riskAssessment: RiskAssessment): Promise<ConfirmationResult>;
    handleResponse(confirmationId: string, approved: boolean, response?: string): ConfirmationResult;
    checkExpired(): number;
    loadPendingOnStartup(): void;
    startExpiryCheck(): void;
    stopExpiryCheck(): void;
    getStore(): ConfirmationStore;
    getPendingCount(): number;
    private waitForResponse;
    private resolvePending;
    private enforceMaxPending;
    private emitRequested;
    private emitResolved;
}
export {};
//# sourceMappingURL=ConfirmationManager.d.ts.map