export declare class BladeApiError extends Error { readonly response: Response; readonly status: number; readonly statusText: string; constructor(response: Response, message?: string); } /** * 从 FastAPI 风格的错误响应中提取 detail 字段,作为用户可读的中文错误文案。 * 失败时返回 undefined,调用方会回退到默认提示。 */ export declare function extractErrorDetail(response: Response): Promise; /** 401/403 补充"怎么办"的指引,避免初级开发者对着裸状态码发呆。 */ export declare function decorateAuthError(error: unknown): unknown; export type HttpMethod = "DELETE" | "GET" | "PATCH" | "POST" | "PUT" | (string & {}); export interface BladeFetchInit { body?: BodyInit | null; credentials?: RequestCredentials; expectOk?: boolean; headers?: HeadersInit; signal?: AbortSignal | null; } /** * 按客户端规则把后端路径拼成绝对 URL:`baseUrl` 自带路径前缀时保留前缀, * 路径里的前导 `/` 只表示"从后端根开始",不会被解释成站点根目录。 * * 单独放在传输层,是为了让不走 `fetch()` 鉴权通道的资源(例如匿名的站点统计) * 落到同一个后端地址上,不必各自再写一份 URL 规则。 */ export declare function buildBackendUrl(baseUrl: string, path: string): URL;