import { AgentIdentityManager } from '../agent-identity';
import { DelegationChainValidator } from '../delegation-chain-validator';
import { CommunicationManager } from '../communication/communication-manager';
import { ActivityLogger } from '../activity/activity-logger';
export interface RevocationRequest {
    targetAgentDID: string;
    reason: string;
    revokedBy: string;
    timestamp: Date;
    cascading: boolean;
    serviceDID?: string;
    effectiveDate?: Date;
}
export interface RevocationResult {
    success: boolean;
    revokedAgents: string[];
    failedRevocations: Array<{
        agentDID: string;
        error: string;
    }>;
    notificationsSent: number;
    auditEntries: number;
}
export interface RevocationAuditEntry {
    id: string;
    targetAgentDID: string;
    revokedBy: string;
    reason: string;
    timestamp: Date;
    cascading: boolean;
    serviceDID?: string;
    effectiveDate: Date;
    childRevocations: string[];
    notificationsSent: string[];
    status: 'pending' | 'completed' | 'failed' | 'partial';
}
export declare class CascadingRevocationManager {
    private agentManager;
    private chainValidator;
    private communicationManager;
    private activityLogger;
    private revocationAudit;
    private activeRevocations;
    constructor(agentManager: AgentIdentityManager, chainValidator: DelegationChainValidator, communicationManager: CommunicationManager, activityLogger: ActivityLogger);
    /**
     * Revokes an agent and optionally cascades to all sub-agents
     */
    revokeAgent(request: RevocationRequest): Promise<RevocationResult>;
    /**
     * Performs revocation of a single agent
     */
    private performSingleRevocation;
    /**
     * Finds all sub-agents of a given agent
     */
    private findSubAgents;
    /**
     * Sends revocation notifications to relevant parties
     */
    private sendRevocationNotifications;
    /**
     * Finds agents that should be notified about a revocation
     */
    private findNotificationTargets;
    /**
     * Gets revocation audit trail for an agent
     */
    getRevocationAudit(agentDID?: string): RevocationAuditEntry[];
    /**
     * Checks if an agent has been revoked
     */
    isAgentRevoked(agentDID: string, serviceDID?: string): boolean;
    /**
     * Gets revocation statistics
     */
    getRevocationStats(): {
        totalRevocations: number;
        cascadingRevocations: number;
        serviceSpecificRevocations: number;
        averageChildRevocations: number;
        notificationsSent: number;
    };
    /**
     * Purges old audit entries
     */
    purgeOldAuditEntries(olderThan: Date): number;
    /**
     * Exports audit trail for compliance
     */
    exportAuditTrail(format?: 'json' | 'csv'): string;
    private generateAuditId;
}
//# sourceMappingURL=cascading-revocation-manager.d.ts.map