/**
 * Integrity Validator
 *
 * Validates data integrity using checksums and signatures
 */
import { EventEmitter } from "node:events";
import type { IntegrityValidation, ChecksumAlgorithm, ValidationResult } from "../types/porter-types";
export interface ValidationContext {
    requestId: string;
    userId: string;
    correlationId: string;
    timestamp: number;
    metadata: Record<string, unknown>;
}
export interface IntegrityCheck {
    algorithm: ChecksumAlgorithm;
    expected: string;
    actual: string;
    valid: boolean;
    executionTime: number;
}
export interface SignatureCheck {
    algorithm: string;
    publicKey: string;
    signature: string;
    valid: boolean;
    executionTime: number;
}
export declare class IntegrityValidator extends EventEmitter {
    private config;
    constructor(config: IntegrityValidation);
    /**
     * Validate data integrity
     */
    validate(data: unknown, context: ValidationContext): Promise<ValidationResult>;
    /**
     * Validate checksums using configured algorithms
     */
    private validateChecksums;
    /**
     * Calculate checksum using specified algorithm
     */
    private calculateChecksum;
    /**
     * Validate digital signatures
     */
    private validateSignatures;
    /**
     * Verify digital signature
     */
    private verifySignature;
    /**
     * Perform additional integrity checks
     */
    private performAdditionalChecks;
    /**
     * Prepare data for validation (convert to Buffer)
     */
    private prepareDataForValidation;
    /**
     * Calculate data size in bytes
     */
    private calculateDataSize;
    /**
     * Generate checksums for data
     */
    generateChecksums(data: unknown): Promise<Record<ChecksumAlgorithm, string>>;
    /**
     * Verify data against provided checksums
     */
    verifyChecksums(data: unknown, expectedChecksums: Partial<Record<ChecksumAlgorithm, string>>): Promise<{
        algorithm: ChecksumAlgorithm;
        expected: string;
        actual: string;
        valid: boolean;
    }[]>;
    /**
     * Update integrity validator configuration
     */
    updateConfig(newConfig: Partial<IntegrityValidation>): void;
    /**
     * Get integrity validator health status
     */
    getHealthStatus(): {
        status: "healthy" | "degraded" | "unhealthy";
        details: unknown;
    };
    /**
     * Test integrity validator
     */
    test(testData?: unknown): Promise<{
        success: boolean;
        error?: string;
        checksums?: Record<string, string>;
    }>;
}
