import { type MaybeRefOrGetter } from 'vue';
import type { IRequestOptions } from '../types';
import type { IUseChatHelperOptions, RequestData } from '@blueking/chat-helper';
/**
 * 将外层 requestOptions（可为 ref/computed/函数）转为 chat-helper 的 requestData。
 * 使用稳定 getter，每次请求时读取最新的 headers/data。
 */
export declare function buildRequestDataFromOptions(urlPrefix: string, requestOptions?: MaybeRefOrGetter<IRequestOptions | undefined>): IUseChatHelperOptions['requestData'];
/**
 * 将 requestOptions.context 转为结构化数组格式（与 shortcuts property.extra.context 一致）
 *
 * 支持两种输入格式：
 * - Record<string, unknown>: 简单 KV，每个 entry 转为结构化条目
 * - Array<Record<string, unknown>>: 数组，有 __key 的条目直接透传，简单 KV 自动转换
 *
 * 转换规则：{ key: value } → { key: value, context_type: 'input', __label: key, __key: key, __value: value }
 */
export declare function resolveContextEntries(context: RequestData | Array<Record<string, unknown>> | undefined): Array<Record<string, unknown>>;
/**
 * 解析 requestOptions.context（支持 ref/computed/函数），返回结构化数组
 */
export declare function resolveRequestOptionsContext(requestOptions?: MaybeRefOrGetter<IRequestOptions | undefined>): Array<Record<string, unknown>>;
/**
 * 将 requestOptions.context 合并到 message property 中
 *
 * 统一处理：从 getter 获取 requestOptions → 解析 context → 合并到 property
 * 消除了 doSendMessage 和 handleUserShortcutConfirm 中的重复逻辑
 *
 * @param property 原始消息 property（可能已有 shortcut context）
 * @param getRequestOptions 返回最新 requestOptions 的 getter
 * @returns 合并后的 property，无 context 时返回原 property
 */
export declare function applyRequestOptionsContext(property: Record<string, unknown> | undefined, getRequestOptions?: () => IRequestOptions | undefined): Record<string, unknown> | undefined;
/**
 * 将 requestOptions 的 context 合并到 message property 中
 *
 * 合并策略：
 * - requestOptions context 条目追加到 shortcut context 之后
 * - key 冲突时（以 __key 判断），requestOptions 的条目覆盖已有的
 */
export declare function mergePropertyContext(property: Record<string, unknown> | undefined, contextEntries: Array<Record<string, unknown>>): Record<string, unknown>;
//# sourceMappingURL=build-request-data.d.ts.map