/** * URL 解析工具 * 用于解析 Apifox 分享链接并提取关键信息 */ /** * 分享链接类型 */ export declare enum ShareLinkType { /** 项目分享链接: /apidoc/shared/{shareId} */ PROJECT = "project", /** 接口分享链接: /apidoc/shared/{shareId}/api-{interfaceId} */ INTERFACE = "interface" } /** * 解析后的 URL 信息 */ export interface ParsedUrl { /** 项目 ID(从 x-run-in-apifox 提取的真实 projectId) */ projectId: string; /** 分享 ID(URL 中的 shareId) */ shareId: string; /** 接口 ID(如果是指向特定接口的链接) */ interfaceId?: string; /** 基础 URL */ baseUrl: string; /** 项目名称(从页面 title 提取) */ projectName?: string; /** 链接类型 */ linkType: ShareLinkType; /** llms.txt 的完整 URL */ llmsUrl: string; /** 原始页面 URL */ pageUrl: string; /** 页面标题 */ pageTitle?: string; /** 第一个 API 文档 URL(用于后续 UI) */ firstApiDocUrl?: string; } /** * 从 API 文档中提取真正的 projectId * API 文档包含 x-run-in-apifox 字段,格式为: * x-run-in-apifox: https://apifox.advai.net/web/project/{realProjectId}/apis/api-{interfaceId}-run * * @param apiDocUrl API 文档 URL (格式: .../api-{interfaceId} 或 .../api-{interfaceId}.md) * @returns 真正的 projectId,如果提取失败则返回 null */ export declare function extractRealProjectIdFromApiDoc(apiDocUrl: string): Promise; /** * 从 LLM 文档中提取真正的 projectId 和第一个 API 文档 URL * LLM 文档中的 API 文档包含 x-run-in-apifox 字段,格式为: * https://apifox.advai.net/web/project/{realProjectId}/apis/api-{interfaceId}-run * * @param llmsUrl LLM 文档 URL (llms.txt) * @returns 包含 projectId 和第一个 API 文档 URL 的对象,如果提取失败则返回 null */ export declare function extractRealProjectIdFromLlms(llmsUrl: string): Promise<{ projectId: string; firstApiDocUrl: string; } | null>; /** * 解析 Apifox 分享链接 * 格式: https://apifox.advai.net/apidoc/shared/{shareId}/api-{interfaceId} (接口分享链接) * 或: https://apifox.advai.net/apidoc/shared/{shareId} (项目分享链接) * 或: https://apifox.advai.net/apidoc/shared/{shareId}/llms.txt (LLM 文档) * * @param url Apifox 分享链接 * @returns 解析结果,包含 projectId、项目名称、链接类型等完整信息 */ export declare function parseApifoxUrl(url: string): Promise; /** * 验证 URL 是否为有效的 Apifox 分享链接 * @param url 待验证的 URL * @returns 是否为有效的 Apifox 分享链接 */ export declare function isValidApifoxUrl(url: string): boolean; //# sourceMappingURL=url.d.ts.map