import type { DSNInfo, SentryEvent } from '../types'; export declare class Reporter { private dsn; private maxRetries; private retryDelay; private useShortFields; constructor(dsn: DSNInfo, maxRetries: number, retryDelay: number); report(events: SentryEvent[]): Promise; reportSync(events: SentryEvent[]): void; /** * 构建 Sentry Envelope * * 优化: * 1. 批量元数据共享 - 同批次共享 release/environment/user * 2. 字段短编码 - 常用字段名使用短码 * 3. 时间戳相对化 - 批次内后续事件用差值 */ private buildEnvelope; /** * 时间戳相对化 * * 批次内: * - 第一个事件:完整时间戳 * - 后续事件:相对于第一个事件的毫秒差值(用 _dts 字段表示) * * 这样可以将时间戳从 13 位数字减少到 2-4 位数字 */ private applyRelativeTimestamps; /** * 提取批次内公共元数据 */ private extractSharedMeta; /** * 移除已共享的字段,减少重复 */ private stripSharedFields; private getEnvelopeType; private send; private sendSync; private sendViaImage; private delay; }