/**
 * 请求入参。
 *
 * URL 解析规则：
 * - `url` 有值时直接使用（业务自定义 URL 场景）
 * - `url` 为空且 `path` 有值时，自动拼接动态域名 + AI_TABLE_API_BASE_URL + path
 * - 两者都没有则报错
 *
 * `withCredentials` 自动注入规则：
 * - 显式传入时使用传入值
 * - 未传时自动取 `isUsingDynamicDomain()` 的返回值
 */
export interface AiHttpConfig {
    url?: string;
    path?: string;
    method?: 'GET' | 'POST';
    params?: Record<string, unknown> | object;
    data?: unknown;
    withCredentials?: boolean;
}
/**
 * 业务请求失败时抛出的标准化错误。
 * 调用方可通过 `instanceof AiRequestError` 区分业务失败与网络异常。
 */
export declare class AiRequestError extends Error {
    readonly errorCode: string | number | undefined;
    readonly errorMsg: string | undefined;
    readonly raw: unknown;
    constructor(opts: {
        errorCode?: string | number;
        errorMsg?: string;
        raw?: unknown;
    });
}
/**
 * 统一请求入口（data-only 契约）。
 *
 * 所有 AI 相关 service（agent / smart-follow / ai-column 等）均通过此函数发请求。
 * 本文件是整个组件库唯一直接依赖 `@cainiaofe/cn-request` 的位置（domain-service 除外）。
 *
 * 归一化流程：
 * 1. 若返回值为 Axios-like（跨域场景），取 `.data` 得到 HTTP body
 * 2. 若 HTTP body 为信封结构（含 `success`/`errorCode`）：
 *    - 失败（`success === false` 或失败码）→ 抛 `AiRequestError`
 *    - 成功 → 返回 `envelope.data`
 * 3. 非信封场景直接返回 HTTP body
 *
 * 调用方只需处理正常数据，失败统一走 catch。
 */
export declare function aiRequest<T = unknown>(config: AiHttpConfig): Promise<T>;
