/**
 * 桥接消息的 AxiosResponse / AxiosError 序列化。
 *
 * AxiosResponse 的 config（含函数）和 request（XHR/fetch 宿主对象）过不了
 * chrome.runtime.sendMessage 的 structured clone，所以两边都只挑可序列化的字段。
 *
 * 错误侧用 axios 自带的 err.toJSON()——它会把 Error 上 non-enumerable 的字段
 * （message/name/stack）整理成普通对象，避免 ...err 拷不到关键字段。
 */
import type { AxiosError, AxiosRequestConfig } from 'axios';
/** 桥接消息的统一标识，区分桥接消息和其他业务 onMessage 消息 */
export declare const BRIDGE_MESSAGE_TYPE = "__crxAxiosBridge__";
/** contentScript → background：原样塞 AxiosRequestConfig 让 background replay */
export interface BridgeRequestMessage {
    __bridgeType__: typeof BRIDGE_MESSAGE_TYPE;
    /**对应 createCrxAxios 内 registry 的 key */
    serviceId: string;
    /**原样的 axios 请求配置 */
    config: AxiosRequestConfig;
}
/** 序列化的 AxiosResponse 子集（成功情况） */
export interface SerializedAxiosResponse<T = any> {
    data: T;
    status: number;
    statusText: string;
    headers: Record<string, any>;
}
/** 序列化的 AxiosError 子集（失败情况）。isAxiosError 是 axios 原生标记字段 */
export interface SerializedAxiosError {
    isAxiosError: true;
    message: string;
    name?: string;
    code?: string;
    status?: number;
    config?: any;
    response?: SerializedAxiosResponse;
}
/** 桥接响应消息：成功 or 失败，二选一 */
export type BridgeResponseMessage<T = any> = SerializedAxiosResponse<T> | SerializedAxiosError;
/** 类型守卫：用 isAxiosError 区分两种 */
export declare const isSerializedAxiosError: (resp: any) => resp is SerializedAxiosError;
/** 把真实 AxiosResponse 序列化成可过 structured clone 的对象 */
export declare const serializeResponse: <T>(res: {
    data: T;
    status: number;
    statusText: string;
    headers: any;
}) => SerializedAxiosResponse<T>;
/** 把 AxiosError 序列化成可过 structured clone 的对象 */
export declare const serializeError: (err: AxiosError) => SerializedAxiosError;
