/**
 * Timing Middleware
 *
 * 自动追踪操作耗时的中间件
 * 在 pre 阶段记录开始时间，在 post 阶段计算耗时
 */
import { HookMiddleware, HookContext, HookEventType } from '../hookTypes';
export interface TimingMiddlewareConfig {
    /** 慢操作阈值 (ms) - 超过此值会警告 */
    slowThresholdMs: number;
    /** 是否记录所有计时 */
    logAllTimings: boolean;
    /** 自定义计时回调 */
    onTiming?: (eventType: HookEventType, durationMs: number, context: HookContext) => void;
}
/**
 * 创建计时中间件
 */
export declare function createTimingMiddleware(config?: Partial<TimingMiddlewareConfig>): HookMiddleware;
/**
 * 默认的计时中间件实例
 */
export declare const timingMiddleware: HookMiddleware;
/**
 * 计时指标聚合器
 * 用于收集和分析多次操作的计时统计
 */
export declare class TimingMetricsAggregator {
    private metrics;
    /**
     * 记录一次计时
     */
    record(eventType: HookEventType, durationMs: number, identifier?: string): void;
    /**
     * 获取统计信息
     */
    getStats(eventType: HookEventType, identifier?: string): TimingStats | null;
    /**
     * 获取所有统计
     */
    getAllStats(): Map<string, TimingStats>;
    /**
     * 清除所有记录
     */
    clear(): void;
}
export interface TimingStats {
    count: number;
    min: number;
    max: number;
    avg: number;
    p50: number;
    p95: number;
    p99: number;
}
//# sourceMappingURL=timingMiddleware.d.ts.map