import { EventEmitter } from 'events';
import { AlertHistoryManager } from './alert-history-manager';
import { AlertRuleManager } from './alert-rule-manager';
import { Alert, AlertFilter, AlertEvaluationContext, AlertSystemConfig } from '../types/alert';
export declare class AlertManager extends EventEmitter {
    private alerts;
    private historyManager;
    private ruleManager;
    private config;
    private isRunning;
    private evaluationInterval;
    private cleanupInterval;
    constructor(config?: Partial<AlertSystemConfig>);
    private setupEventHandlers;
    private setupCleanupInterval;
    start(): void;
    stop(): void;
    createAlert(alertData: Omit<Alert, 'id' | 'timestamp' | 'acknowledged' | 'status'>): Alert;
    acknowledgeAlert(alertId: string, user?: string): boolean;
    resolveAlert(alertId: string, user?: string): boolean;
    ignoreAlert(alertId: string, user?: string): boolean;
    deleteAlert(alertId: string): boolean;
    addAlertNotes(alertId: string, notes: string, user?: string): boolean;
    getAlerts(): Alert[];
    getAlert(alertId: string): Alert | undefined;
    getFilteredAlerts(filter?: AlertFilter): Alert[];
    acknowledgeBatch(alertIds: string[], user?: string): {
        success: string[];
        failed: string[];
    };
    resolveBatch(alertIds: string[], user?: string): {
        success: string[];
        failed: string[];
    };
    clearAllAlerts(): number;
    evaluateAlerts(context?: AlertEvaluationContext): void;
    getStatistics(): {
        totalEntries: number;
        uniqueAlerts: number;
        actionCounts: Record<string, number>;
        userCounts: Record<string, number>;
        timeRange: {
            earliest: number;
            latest: number;
        } | null;
        levelCounts: Record<import("../types/alert").AlertLevel, number>;
        typeCounts: Record<import("../types/alert").AlertType, number>;
        statusCounts: Record<import("../types/alert").AlertStatus, number>;
    };
    getRecentActivity(hours?: number): {
        totalAlerts: number;
        newAlerts: number;
        acknowledgedAlerts: number;
        resolvedAlerts: number;
        activeUsers: string[];
        topAlertTypes: Array<{
            type: import("../types/alert").AlertType;
            count: number;
        }>;
    };
    exportAlerts(format?: 'json' | 'csv'): string;
    importAlerts(data: string, format?: 'json', merge?: boolean): {
        imported: number;
        errors: string[];
    };
    getAlertHistory(filter?: AlertFilter, limit?: number, offset?: number): import("../types/alert").AlertHistoryEntry[];
    searchAlertHistory(searchText: string, searchFields?: Array<'title' | 'message' | 'source' | 'action' | 'user'>, limit?: number): import("../types/alert").AlertHistoryEntry[];
    getRuleManager(): AlertRuleManager;
    getHistoryManager(): AlertHistoryManager;
    private performAutomaticCleanup;
    private enforceMemoryLimits;
    private generateAlertId;
    destroy(): Promise<void>;
}
//# sourceMappingURL=alert-manager.d.ts.map