import { Config } from '../types/core.js';
export interface IntegrityResult {
    valid: boolean;
    checksum?: string;
    expectedChecksum?: string;
    size: number;
    lastModified: Date;
    error?: string;
    recoveryAttempted?: boolean;
    recoverySuccessful?: boolean;
}
export interface AgentManifest {
    version: string;
    lastUpdated: string;
    agents: Array<{
        name: string;
        checksum: string;
        size: number;
        lastModified: string;
        signature?: string;
    }>;
}
export interface CorruptionReport {
    agentName: string;
    issues: string[];
    severity: 'low' | 'medium' | 'high' | 'critical';
    recoverable: boolean;
    quarantined: boolean;
}
export declare class IntegrityManager {
    private config;
    private agentsDir;
    private tempDir;
    private static readonly MANIFEST_FILE;
    private static readonly QUARANTINE_DIR;
    private static readonly BACKUP_DIR;
    private static readonly SUPPORTED_HASH_ALGORITHMS;
    private manifestPath;
    private quarantinePath;
    private backupPath;
    constructor(config: Config, agentsDir: string, tempDir: string);
    initialize(): Promise<void>;
    verifyAgentIntegrity(agentName: string): Promise<IntegrityResult>;
    verifyAllAgentsIntegrity(): Promise<Map<string, IntegrityResult>>;
    createBackup(agentName: string): Promise<string>;
    quarantineAgent(agentName: string, reason: string): Promise<string>;
    attemptRecovery(agentName: string, integrityResult: IntegrityResult): Promise<boolean>;
    updateManifest(agentName: string): Promise<void>;
    private loadManifest;
    private loadOrCreateManifest;
    private calculateChecksum;
    private calculateFileChecksum;
    private parseAgentSpec;
    private extractSpecFromSections;
    private extractMetadata;
    private extractCapabilities;
    private extractPrompt;
    private extractWorkflow;
    private extractValue;
    private extractList;
    private extractListItems;
    private validateAgentSemantics;
    private validateContentSecurity;
    private restoreFromBackup;
    private redownloadFromSource;
    private attemptContentRepair;
    private generateCorruptionReport;
    private determineSeverity;
    private cleanupOldBackups;
    private chunkArray;
    getIntegrityStats(): Promise<{
        totalAgents: number;
        validAgents: number;
        corruptedAgents: number;
        quarantinedAgents: number;
        totalBackups: number;
        manifestLastUpdated?: string;
    }>;
}
//# sourceMappingURL=integrity-manager.d.ts.map