import { d as RequestEndEvent, f as RequestStartEvent, h as TelemetryOptions, p as RetryEvent } from "../index-BwyPXpMS.mjs"; //#region src/telemetry/console-logger.d.ts type WriteStream = { write: (data: string) => boolean; }; type ConsoleLoggerOptions = { /** * Enable colored output using ANSI escape codes. * @default true */ colors?: boolean; /** * Include timestamps in output. * @default true */ timestamps?: boolean; /** * Stream to write output to. * @default process.stderr */ errorStream?: WriteStream; }; /** * Create a console logger that formats telemetry events as human-readable output. * * @example * ```typescript * const client = new EdgarClient({ * userAgent: "Bot/1.0", * telemetry: createConsoleLogger() * }) * ``` */ declare function createConsoleLogger(options?: ConsoleLoggerOptions): TelemetryOptions; //#endregion //#region src/telemetry/metrics-aggregator.d.ts type LatencyStats = { count: number; min: number; max: number; avg: number; total: number; }; type MetricsSnapshot = { requestsTotal: number; requestsSuccessful: number; requestsFailed: number; requestsFailedByError: Record; retriesTotal: number; latencyByOperation: Record; rateLimitedRequests: number; runtime: "node" | "bun"; }; /** * Create a metrics aggregator that tracks request lifecycle and rate limiting metrics. * * @example * ```typescript * const metrics = createMetricsAggregator() * const client = new EdgarClient({ * userAgent: "Bot/1.0", * telemetry: metrics * }) * * // Later... * const snapshot = metrics.getSnapshot() * console.log(snapshot.requestsTotal) * console.log(snapshot.latencyByOperation) * ``` */ declare function createMetricsAggregator(): TelemetryOptions & { getSnapshot(): MetricsSnapshot; reset(): void; }; //#endregion //#region src/telemetry/noop.d.ts /** * Create a no-op telemetry implementation (all hooks are empty functions). * Useful for testing or explicitly disabling telemetry without removing code. * * @example * ```typescript * const client = new EdgarClient({ * userAgent: "Bot/1.0", * telemetry: createNoopTelemetry() * }) * ``` */ declare function createNoopTelemetry(): TelemetryOptions; //#endregion //#region src/telemetry/structured-logger.d.ts type TelemetryEvent = RequestStartEvent | RequestEndEvent | RetryEvent; type WritableStream = { write: (data: string) => boolean; writable: boolean; }; type StructuredLoggerOptions = { /** * Writable stream to output logs to. * @default process.stdout */ stream?: WritableStream; /** * Custom formatter for events. * @default JSON.stringify */ formatter?: (event: TelemetryEvent & { event: string; }) => string; }; /** * Create a structured logger that outputs JSON Lines format (one JSON object per line). * * @example * ```typescript * const client = new EdgarClient({ * userAgent: "Bot/1.0", * telemetry: createStructuredLogger() * }) * ``` */ declare function createStructuredLogger(options?: StructuredLoggerOptions): TelemetryOptions; //#endregion export { type ConsoleLoggerOptions, type MetricsSnapshot, type StructuredLoggerOptions, createConsoleLogger, createMetricsAggregator, createNoopTelemetry, createStructuredLogger }; //# sourceMappingURL=index.d.mts.map