import type { Logger } from '@iota-big3/sdk-observability';
import { EventEmitter } from 'events';
import { AuditEvent, AuditQuery, BlockchainAuditConfig } from '../types/security.types';
export interface AuditConfig {
    enabled: boolean;
    blockchain?: BlockchainAuditConfig;
    retentionDays: number;
    realTimeStreaming: boolean;
    encryptionEnabled: boolean;
    bufferSize: number;
    flushInterval: number;
}
export declare class BlockchainAuditTrail extends EventEmitter {
    private config;
    private logger;
    private gateway?;
    private contract?;
    private network?;
    private wallet?;
    private buffer;
    private flushTimer?;
    private encryptionKey?;
    private eventCounter;
    constructor(_config: AuditConfig, logger: Logger);
    private initializeEncryption;
    private initializeBlockchain;
    private initializeHyperledger;
    private registerUser;
    private loadConnectionProfile;
    private initializeEthereum;
    private initializePrivateBlockchain;
    private listenForBlockchainEvents;
    logEvent(_event: Omit<AuditEvent, 'id' | 'timestamp' | 'immutable'>): Promise<AuditEvent>;
    private validateEvent;
    private encryptData;
    private decryptData;
    private startFlushTimer;
    private flushBuffer;
    private writeToBlockchain;
    private calculateEventHash;
    private writeToLocalStorage;
    queryEvents(_query: AuditQuery): Promise<AuditEvent[]>;
    private queryBlockchain;
    private buildBlockchainQuery;
    private queryLocalStorage;
    private matchesQuery;
    verifyEventIntegrity(_eventId: string): Promise<boolean>;
    exportAuditTrail(query: AuditQuery, format: 'json' | 'csv' | 'pdf'): Promise<Buffer>;
    private exportToCSV;
    private exportToPDF;
    getStatistics(timeRange?: {
        start: Date;
        end: Date;
    }): Promise<any>;
    cleanupOldLogs(): Promise<number>;
    getMetrics(): unknown;
    destroy(): Promise<void>;
}
//# sourceMappingURL=blockchain-audit.d.ts.map