import type { CnAiCubePlatformRequestConfig } from './cube-platform-request-config';
/**
 * 源码直连魔方开放平台：仅配置 **`getListRequestConfig` / `createOrUpdateRequestConfig`**（可选）。
 *
 * 形态即 {@link CnAiCubePlatformRequestConfig}（`IServiceConfig` + cn-ui `IRequestConfig`）；
 * 默认走 `request()` 时整份配置透传，仅少量字段由组件合并覆盖；`onBefore` / `onSuccess` / `onError` / `onFinally` 由开放平台封装在请求前后触发。
 *
 * 业务显式提供的 `pageId`、`appCode`、`tenantCode`、`loginType`、`userId` 等须写在
 * **`getListRequestConfig.data` / `createOrUpdateRequestConfig.data`**（与开放平台请求体一致；两处的 `data` 按 `createOrUpdate` 铺底、`getList` 覆盖合并，同 {@link getCubePlatformMeta} / `requestCubeOpenPlatform`）。
 * 无魔方宿主时通常至少要在 **`getListRequestConfig.data`** 中给出 **`pageId` + `appCode`**，否则直连判定失败；亦可再与 `window.siteInfo`、`_GATEWAY_PF`、`currentPageConfig`、`CnAiTable` 的 `id`（`tableId`）回退合并。
 */
export interface CnAiCubePlatformBizConfig {
    getListRequestConfig?: CnAiCubePlatformRequestConfig;
    createOrUpdateRequestConfig?: CnAiCubePlatformRequestConfig;
}
/**
 * 业务侧 AI 请求 URL 配置
 * 仅支持 URL 覆盖，未配置时走组件内置默认地址。
 */
export interface CnAiBizRequestConfig {
    /**
     * 引用字段（lookup）子表配置请求。
     * 说明：
     * - `url` / `method` / `data` 均由业务自定义；
     * - `method` 默认 `POST`；
     * - 组件期望响应结构：`{ success: true, data: { subTables: [...] } }`。
     */
    subTableConfig?: {
        url?: string;
        method?: 'GET' | 'POST' | 'get' | 'post';
        data?: Record<string, unknown>;
    };
    /**
     * AI 字段相关请求 URL 配置
     */
    aiColumn?: {
        /**
         * 查询表格任务接口 URL
         */
        queryTableTasksUrl?: string;
        /**
         * 删除 AI 字段接口 URL
         */
        removeColumnUrl?: string;
        /**
         * 提交 AI 字段任务接口 URL
         */
        submitTasksUrl?: string;
        /**
         * 轮询 AI 字段任务接口 URL
         */
        pollTasksUrl?: string;
        /**
         * 生成 AI 摘要接口 URL
         */
        generateSummaryUrl?: string;
        /**
         * 提交 AI 字段预览接口 URL
         */
        submitPreviewUrl?: string;
        /**
         * 查询 AI 字段预览结果接口 URL
         */
        queryPreviewUrl?: string;
        /**
         * 更新 AI 单元格数据接口 URL
         */
        updateCellDataUrl?: string;
    };
    /**
     * AI 筛选相关请求 URL 配置
     */
    filter?: {
        /**
         * 字段翻译接口 URL（用于自然语言查询转结构化条件）
         */
        fieldTransformUrl?: string;
        /**
         * 常用查询推荐接口 URL
         */
        suggestionUrl?: string;
    };
    /**
     * AI 助理相关请求 URL 配置
     */
    agent?: {
        /**
         * 助理消息提交接口 URL
         */
        submitPromptUrl?: string;
        /**
         * 助理消息轮询接口 URL
         */
        queryResponseUrl?: string;
    };
    /** 仅源码：配 `query`/`save` 则走业务 URL；须成对或都不配。低码走魔方，不用此项。 */
    viewConfig?: {
        /** GET，query：`tableId`，响应 `ViewsData`（或包一层 `data`）。 */
        queryViewsUrl?: string;
        /** POST `{ tableId, viewsData }`。与 `queryViewsUrl` 成对。 */
        saveViewsUrl?: string;
    };
    /**
     * 智能跟单相关请求 URL 配置
     */
    smartFollow?: {
        /**
         * 提交跟单总览任务接口 URL
         */
        submitBriefTaskUrl?: string;
        /**
         * 提交跟单详情任务接口 URL
         */
        submitDetailTaskUrl?: string;
        /**
         * 查询跟单任务状态接口 URL
         */
        queryTasksUrl?: string;
        /**
         * 提交跟单标准会话请求接口 URL
         */
        submitStandardAgentUrl?: string;
        /**
         * 查询跟单标准原文接口 URL
         */
        queryStandardUrl?: string;
        /**
         * 查询跟单会话历史接口 URL
         */
        queryConversationUrl?: string;
        /**
         * 根据 JobId 查询跟单任务接口 URL
         */
        queryTasksByJobIdUrl?: string;
    };
    /**
     * 源码直连魔方开放平台 getList / createOrUpdate（无 `__CN_CUBE_INSTANCE__` 时）。
     */
    cubePlatform?: CnAiCubePlatformBizConfig;
}
