import { EventEmitter } from 'events';
import { ApprovalRequest, ActionPolicy, AuditLogEntry } from './types.js';
import { ConfigManager } from '../../config/config-manager.js';
export declare class ApprovalManager extends EventEmitter {
    private store;
    private configManager;
    private cleanupInterval?;
    constructor(configManager?: ConfigManager);
    init(): Promise<void>;
    createApprovalRequest(params: {
        toolName: string;
        action: string;
        parameters: any;
        userId: string;
        ttl?: number;
    }): Promise<ApprovalRequest>;
    approveRequest(requestId: string, userId: string): Promise<boolean>;
    rejectRequest(requestId: string, userId: string, reason?: string): Promise<boolean>;
    getPendingRequests(userId?: string): Promise<ApprovalRequest[]>;
    getActionPolicy(toolName: string, action: string): ActionPolicy;
    private getImpact;
    private isReversible;
    private getDefaultTTL;
    private checkAutoApproveConditions;
    private getNestedValue;
    private evaluateCondition;
    private logAudit;
    private startCleanupTask;
    private loadStore;
    private saveStore;
    private loadDefaultPolicies;
    getAuditLog(filters?: {
        startDate?: Date;
        endDate?: Date;
        userId?: string;
        toolName?: string;
        result?: string;
    }): Promise<AuditLogEntry[]>;
    dispose(): void;
}
//# sourceMappingURL=approval-manager.d.ts.map