/**
 * Tool Call ID Manager
 *
 * 提供统一的工具调用 ID 生成、规范化和风格管理功能。
 * 支持 'fc' (function call) 和 'preserve' 两种风格。
 */
import type { JsonObject } from '../hub/types/json.js';
export type ToolCallIdStyle = 'fc' | 'preserve';
export interface ToolCallIdManagerOptions {
    /**
     * ID 风格
     * - 'fc': 使用 fc_ 前缀的短 ID（如 fc_abc123）
     * - 'preserve': 保留原始 ID
     */
    style?: ToolCallIdStyle;
    /**
     * ID 前缀（仅用于 'fc' 风格）
     * 默认 'fc_'
     */
    prefix?: string;
    /**
     * ID 长度（仅用于 'fc' 风格）
     * 默认 8
     */
    idLength?: number;
}
/**
 * 工具调用 ID 管理器
 */
export declare class ToolCallIdManager {
    private options;
    private state;
    constructor(options?: ToolCallIdManagerOptions);
    /**
     * 生成新的工具调用 ID
     */
    generateId(): string;
    /**
     * 规范化工具调用 ID
     *
     * @param id - 原始 ID
     * @returns 规范化后的 ID
     */
    normalizeId(id: string | undefined | null): string;
    /**
     * 规范化工具调用 ID（带别名注册）
     *
     * @param id - 原始 ID
     * @param aliasMap - 别名映射（用于 preserve 风格）
     * @returns 规范化后的 ID
     */
    normalizeIdWithAlias(id: string | undefined | null, aliasMap?: Map<string, string>): string;
    /**
     * 批量规范化工具调用 ID
     *
     * @param ids - ID 列表
     * @returns 规范化后的 ID 列表
     */
    normalizeIds(ids: (string | undefined | null)[]): string[];
    /**
     * 检查 ID 是否为有效的 fc_ 风格
     */
    isValidFcStyle(id: string): boolean;
    /**
     * 从 ID 中提取基础部分（移除前缀）
     */
    extractBaseId(id: string): string;
    /**
     * 重置计数器
     */
    resetCounter(): void;
    /**
     * 获取当前配置
     */
    getOptions(): ToolCallIdManagerOptions;
    /**
     * 更新配置
     */
    updateOptions(options: Partial<ToolCallIdManagerOptions>): void;
}
/**
 * 规范化工具调用 ID 值
 *
 * @param value - ID 值（可能是字符串或其他类型）
 * @param forceGenerate - 如果为 true，总是生成新 ID
 * @returns 规范化后的 ID 字符串
 */
export declare function normalizeIdValue(value: unknown, forceGenerate?: boolean): string;
/**
 * 从对象中提取工具调用 ID
 *
 * @param obj - 包含 ID 的对象
 * @returns 提取的 ID
 */
export declare function extractToolCallId(obj: unknown): string | undefined;
/**
 * 创建工具调用 ID 转换器（用于 Responses 格式）
 *
 * @param style - ID 风格
 * @returns 转换器函数
 */
export declare function createToolCallIdTransformer(style: ToolCallIdStyle): ((id: string) => string) | null;
/**
 * 在消息列表中强制应用工具调用 ID 风格
 *
 * @param messages - 消息列表
 * @param transformer - ID 转换器
 */
export declare function enforceToolCallIdStyle(messages: JsonObject[], transformer: (id: string) => string): void;
