/**
 * 监控插件
 *
 * 提供请求监控能力，包括耗时、错误率、上报等
 */
import type { RequestPlugin } from './RequestPlugin';
/**
 * 监控事件类型
 */
export declare enum MonitoringEventType {
    /**
     * 请求开始
     */
    REQUEST_START = "request_start",
    /**
     * 请求成功
     */
    REQUEST_SUCCESS = "request_success",
    /**
     * 请求失败
     */
    REQUEST_ERROR = "request_error",
    /**
     * 请求完成（无论成功或失败）
     */
    REQUEST_COMPLETE = "request_complete"
}
/**
 * 监控事件数据
 */
export interface MonitoringEvent {
    /**
     * 事件类型
     */
    type: MonitoringEventType;
    /**
     * 请求 URL
     */
    url: string;
    /**
     * 请求方法
     */
    method: string;
    /**
     * 请求耗时（毫秒）
     */
    duration?: number;
    /**
     * HTTP 状态码
     */
    status?: number;
    /**
     * 错误信息（如果有）
     */
    error?: {
        type: string;
        code: string;
        message: string;
    };
    /**
     * 请求标签
     */
    tags?: string[];
    /**
     * 时间戳
     */
    timestamp: number;
}
/**
 * 监控上报函数类型
 */
export type MonitoringReporter = (event: MonitoringEvent) => void | Promise<void>;
/**
 * 监控插件配置
 */
export interface MonitoringPluginConfig {
    /**
     * 是否启用监控
     */
    enabled?: boolean;
    /**
     * 监控上报函数
     */
    reporter?: MonitoringReporter;
    /**
     * 是否记录请求开始事件
     */
    recordStart?: boolean;
    /**
     * 是否记录请求成功事件
     */
    recordSuccess?: boolean;
    /**
     * 是否记录请求错误事件
     */
    recordError?: boolean;
    /**
     * 是否记录请求完成事件
     */
    recordComplete?: boolean;
    /**
     * 慢请求阈值（毫秒），超过此阈值的请求会被标记为慢请求
     */
    slowRequestThreshold?: number;
}
/**
 * 创建监控插件
 *
 * @param config - 监控插件配置
 * @returns 监控插件实例
 */
export declare function createMonitoringPlugin(config?: MonitoringPluginConfig): RequestPlugin;
//# sourceMappingURL=monitoring.d.ts.map