import type { LLMDebugCallback } from './types.js'; /** 调试上下文:来自 ChatParams.debug / ChatParams.onDebug */ export interface DebugContext { debug: boolean; onDebug?: LLMDebugCallback; } /** 从 URL 中提取 host(含端口),解析失败返回原始 URL */ export declare function extractHost(url: string): string; /** * 解析域名对应的 IP(Node 环境)。 * * 使用动态 import('node:dns/promises'),避免在非 Node 环境(如浏览器打包) * 静态加载 node:dns 导致模块加载失败。仅在调试模式启用时调用, * 解析失败(离线、域名不存在等)时返回 undefined,不影响主流程。 */ export declare function resolveHostIp(domain: string): Promise; export interface FetchDiagnosticsOptions { /** 请求超时(毫秒) */ timeout: number; /** 网络代理 URL(model config 注入) */ proxy?: string; /** 供应商标识 */ provider: string; /** 模型名称 */ model: string; /** 外部中止信号(如用户取消) */ externalSignal?: AbortSignal; /** 调试上下文(debug=false 时不捕获任何信息) */ debugCtx?: DebugContext; } /** * 包装一次 fetch,捕获网络层诊断信息并在调试模式下回调。 * * 行为: * - 合并外部 abortSignal 与内部超时控制器; * - 调试模式下先做 DNS 解析,再发请求,记录总耗时; * - 无论成功/失败/超时,均在 finally 中回调调试信息(若 debug=true); * - 调试回调抛错不会影响主流程。 */ export declare function fetchWithDiagnostics(url: string, init: RequestInit & { proxy?: string; }, opts: FetchDiagnosticsOptions): Promise; //# sourceMappingURL=debug.d.ts.map