import type { IRequestConfig } from '@cainiaofe/cn-ui/es/types';
/**
 *
 * 魔方场景下 **`url` 可省略**，由 {@link requestCubeOpenPlatform} 的 `defaultUrl` 补齐；其余字段与上述一致。
 */
export interface IServiceConfig {
    /** 请求 url */
    url?: string;
    /** 请求 method */
    method?: 'GET' | 'POST' | 'get' | 'post';
    /** get 请求参数 */
    params?: {
        [prop: string]: unknown;
    } | (() => {
        [prop: string]: unknown;
    });
    /** post 请求参数 */
    data?: {
        [prop: string]: unknown;
    } | (() => {
        [prop: string]: unknown;
    });
}
/**
 * 魔方开放平台单次 HTTP 请求的叠加配置：`IServiceConfig` 与 cn-ui {@link IRequestConfig} 组合（钩子、`service`、`headers`、`formatResult` 等见后者）。
 *
 * 实现上由 {@link requestCubeOpenPlatform} 合并运行时 body：默认走 `request()`；若配置了 `service` 则改走 `service({ data: 合并后 body })`。
 * **整份 `requestConfig` 展开传入**，仅 `url` / `method` / `data` / `withCredentials` 由组件按合并规则覆盖。
 */
export type CnAiCubePlatformRequestConfig = IServiceConfig & IRequestConfig;
