import type { StorageEngine, StorageConfig } from "./storage.interface";
import type { EventAudit, EventMetrics } from "./observability.interface";
export declare class MemoryStorageEngine implements StorageEngine {
    private auditLogs;
    private metrics;
    saveAuditLog(audit: EventAudit): Promise<void>;
    getAuditLogs(filters?: Partial<EventAudit>): Promise<EventAudit[]>;
    saveMetrics(metrics: EventMetrics): Promise<void>;
    getMetrics(): Promise<EventMetrics>;
    clearAuditLogs(): Promise<void>;
    clearMetrics(): Promise<void>;
}
export declare class FileStorageEngine implements StorageEngine {
    private auditLogsPath;
    private metricsPath;
    private maxLogs;
    constructor(config: StorageConfig);
    saveAuditLog(audit: EventAudit): Promise<void>;
    getAuditLogs(filters?: Partial<EventAudit>): Promise<EventAudit[]>;
    saveMetrics(metrics: EventMetrics): Promise<void>;
    getMetrics(): Promise<EventMetrics>;
    clearAuditLogs(): Promise<void>;
    clearMetrics(): Promise<void>;
    private rotateLogs;
}
export declare class DatabaseStorageEngine implements StorageEngine {
    constructor(_config: StorageConfig);
    saveAuditLog(audit: EventAudit): Promise<void>;
    getAuditLogs(filters?: Partial<EventAudit>): Promise<EventAudit[]>;
    saveMetrics(metrics: EventMetrics): Promise<void>;
    getMetrics(): Promise<EventMetrics>;
    clearAuditLogs(): Promise<void>;
    clearMetrics(): Promise<void>;
}
export declare function createStorageEngine(config: StorageConfig): StorageEngine;
//# sourceMappingURL=storage-engines.d.ts.map