import { type FrameworkError } from './errors';
import type { PerformanceMetrics, PerformanceMetricsWithUnits } from './performance';
/**
 * 错误监控配置
 */
export interface ErrorMonitorConfig {
    /**
     * 是否自动捕获未处理的错误
     */
    autoCapture?: boolean;
    /**
     * 错误上报回调
     */
    onError?: (error: FrameworkError, context?: Record<string, unknown>) => void;
    /**
     * 采样率 (0-1)
     */
    sampleRate?: number;
    /**
     * 是否在控制台显示错误
     */
    showInConsole?: boolean;
    /**
     * 是否启用错误聚合
     */
    enableAggregation?: boolean;
    /**
     * 错误聚合窗口大小（毫秒）
     */
    aggregationWindow?: number;
    /**
     * 最大错误记录数
     */
    maxErrorRecords?: number;
}
/**
 * 错误聚合信息
 */
export interface ErrorAggregation {
    /**
     * 错误代码
     */
    code: string;
    /**
     * 错误消息
     */
    message: string;
    /**
     * 错误类型
     */
    type: string;
    /**
     * 错误数量
     */
    count: number;
    /**
     * 首次出现时间
     */
    firstOccurrence: number;
    /**
     * 最后出现时间
     */
    lastOccurrence: number;
    /**
     * 错误堆栈（示例）
     */
    stack?: string;
    /**
     * 错误上下文（示例）
     */
    context?: Record<string, unknown>;
}
/**
 * 监控服务类
 */
export declare class MonitoringService {
    private errorConfig;
    private errorHandlers;
    private performanceMetrics;
    private unhandledRejectionHandler?;
    private errorHandler?;
    private errorRecords;
    private errorAggregations;
    private aggregationTimer?;
    constructor(errorConfig?: ErrorMonitorConfig);
    /**
     * 初始化错误捕获
     */
    private initErrorCapture;
    /**
     * 清理资源
     */
    destroy(): void;
    /**
     * 启动错误聚合定时器
     */
    private startAggregationTimer;
    /**
     * 聚合错误
     */
    private aggregateErrors;
    /**
     * 捕获错误
     */
    captureError(error: unknown, context?: Record<string, unknown>): void;
    /**
     * 获取错误聚合信息
     *
     * @param code - 错误代码（可选，如果提供则只返回该错误的聚合信息）
     * @returns 错误聚合信息
     */
    getErrorAggregations(code?: string): ErrorAggregation[];
    /**
     * 获取错误记录
     *
     * @param limit - 限制返回的记录数
     * @param since - 只返回此时间之后的错误
     * @returns 错误记录
     */
    getErrorRecords(limit?: number, since?: number): Array<{
        error: FrameworkError;
        timestamp: number;
    }>;
    /**
     * 清空错误记录
     */
    clearErrorRecords(): void;
    /**
     * 注册错误处理器
     */
    onError(handler: (error: FrameworkError) => void): () => void;
    /**
     * 上报性能指标
     */
    reportPerformance(metrics: PerformanceMetrics, context?: Record<string, unknown>): void;
    /**
     * 批量上报性能指标
     */
    reportPerformanceBatch(metricsArray: Array<{
        metrics: PerformanceMetrics;
        context?: Record<string, unknown>;
    }>): void;
    /**
     * 获取性能指标（带单位）
     */
    getPerformanceMetrics(): PerformanceMetricsWithUnits;
    /**
     * 获取性能指标（原始数值格式，向后兼容）
     */
    getPerformanceMetricsRaw(): PerformanceMetrics;
    /**
     * 记录用户行为（匿名）
     */
    trackEvent(eventName: string, properties?: Record<string, unknown>): void;
}
/**
 * 初始化默认监控服务
 */
export declare function initMonitoring(config?: ErrorMonitorConfig): MonitoringService;
/**
 * 获取默认监控服务
 */
export declare function getMonitoring(): MonitoringService;
//# sourceMappingURL=monitoring.d.ts.map