/**
 * 性能监控中间件
 * 记录 API 请求的响应时间、吞吐量和错误率
 */
interface EndpointStats {
    count: number;
    errors: number;
    totalDuration: number;
    minDuration: number;
    maxDuration: number;
    avgDuration: number;
}
interface RequestData {
    route: string;
    method: string;
    path: string;
    statusCode: number;
    duration: number;
    userAgent?: string;
    ip?: string;
    timestamp: string;
}
export declare class PerformanceMonitor {
    config: {
        slowRequestThreshold: number;
        maxResponseTimeSamples: number;
        maxSlowRequests: number;
    };
    metrics: {
        requests: {
            total: number;
            success: number;
            errors: number;
        };
        endpoints: Map<string, EndpointStats>;
        responseTimes: number[];
        slowRequests: RequestData[];
        errorRate: number | string;
        averageResponseTime: number;
        startTime: number;
        rpm?: number;
        p95?: number;
        p99?: number;
    };
    statsInterval: ReturnType<typeof setInterval>;
    constructor();
    /** Express 中间件 */
    middleware(): (req: {
        method: string;
        path: string;
        get: (header: string) => string | undefined;
        ip?: string;
    }, res: {
        on: (event: string, cb: () => void) => void;
        statusCode: number;
    }, next: () => void) => void;
    /** 记录请求 */
    recordRequest(requestData: RequestData): void;
    /** 计算统计数据。silent=true 时不输出日志（定时器调用） */
    calculateStats(silent?: boolean): void;
    /** 获取统计信息 */
    getStats(): {
        summary: {
            totalRequests: number;
            successfulRequests: number;
            failedRequests: number;
            errorRate: string;
            averageResponseTime: string;
            requestsPerMinute: number | undefined;
            p95ResponseTime: string;
            p99ResponseTime: string;
            uptime: number;
        };
        topEndpoints: {
            avgDuration: number;
            count: number;
            errors: number;
            totalDuration: number;
            minDuration: number;
            maxDuration: number;
            route: string;
        }[];
        slowestEndpoints: {
            route: string;
            avgDuration: number;
            count: number;
        }[];
        recentSlowRequests: {
            route: string;
            duration: string;
            timestamp: string;
            statusCode: number;
        }[];
    };
    /** 重置统计 */
    reset(): void;
    /** 停止监控 */
    shutdown(): void;
}
/** 初始化性能监控 */
export declare function initPerformanceMonitor(): PerformanceMonitor;
/** 获取性能监控实例 */
export declare function getPerformanceMonitor(): PerformanceMonitor;
export default PerformanceMonitor;
