/**
 * DigitalHumanConfig.ts — DigitalHuman 配置解析工具
 *
 * 把 DigitalHuman 的原始配置对象拆解为各子系统所需的配置片段：
 * ChatSession 配置、Frame 状态、工具分类、FileOps、searchPaths、keepHistory 等。
 *
 * 这些函数处理用户提供的松散配置对象，故大量使用 `Record<string, unknown>` /
 * 可选字段；难以静态约束处用 unknown + 运行时判断，避免 any。
 */
/** DigitalHuman 原始配置（松散结构，仅声明常用字段，其余通过索引签名） */
export type DigitalHumanConfigInput = Record<string, unknown> & {
    _configSourceUrl?: string;
    system_prompt?: string;
    enable_system_prompt?: boolean;
    llm_model?: string;
    tools?: Record<string, unknown>;
    workspace?: string;
    mountFolder?: string;
    searchPaths?: SearchPathInput[];
};
/** searchPath 原始条目 */
export interface SearchPathInput {
    prefix?: string;
    baseUrl?: string;
    baseUrlLocal?: string;
    [key: string]: unknown;
}
/** 解析后的 searchPath 条目 */
export interface ResolvedSearchPathEntry {
    prefix: string;
    baseUrl: string;
}
/**
 * 在解析后的配置对象上记录原始配置源 URL，
 * 以便后续将相对资源（如 searchPaths）解析为绝对地址。
 * 内联 JSON（以 `{` 开头）默认不记录，除非 allowInlineJson=true。
 */
export declare function markConfigSourceUrl<T extends Record<string, unknown>>(config: T, source: string | Record<string, unknown>, options?: {
    allowInlineJson?: boolean;
}): T;
/**
 * 从 DigitalHuman 配置派生出 ChatSession 所需的配置片段。
 */
export declare function buildDigitalHumanSessionConfig(config?: DigitalHumanConfigInput): Record<string, unknown>;
/** DigitalHumanFrame 初始状态片段 */
export interface DigitalHumanFrameState {
    characterInfo: Record<string, unknown>;
    initialMessage: string;
    quickReplies: unknown[];
    objective: unknown;
    completionMessages: unknown;
    voiceChatConfig: Record<string, unknown>;
    subtitleConfig: unknown;
    avatarOnlyMode: boolean;
}
/**
 * 从配置中提取 DigitalHumanFrame 的初始状态。
 */
export declare function extractDigitalHumanFrameState(config?: DigitalHumanConfigInput): DigitalHumanFrameState;
/**
 * 根据配置构建启用的工具分类列表。
 * 若提供 options.resolveEnabledCategories（来自 CopilotTools），优先使用其结果。
 */
export declare function resolveEnabledToolCategories(config?: DigitalHumanConfigInput, options?: {
    resolveEnabledCategories?: (tools: unknown) => string[];
}): string[];
/**
 * 重建 restartAgent 的工具配置：保留非分类键，并把指定分类强制 enabled=true。
 */
export declare function buildRestartToolConfig(enabledCategories?: string[], sourceTools?: Record<string, unknown>, options?: {
    registry?: Record<string, unknown>;
}): Record<string, unknown>;
/** resolveFileOpsConfig 返回结构 */
export interface ResolvedFileOpsConfig {
    fileOps: Record<string, unknown>;
    workspace: string | undefined;
    mountFolder: string | undefined;
    pathPrefix: string | undefined;
    searchPaths: SearchPathInput[];
}
/**
 * 从 DigitalHuman 配置中解析 FileOps 的 workspace / pathPrefix / searchPaths。
 */
export declare function resolveFileOpsConfig(config?: DigitalHumanConfigInput): ResolvedFileOpsConfig;
/**
 * 解析并绝对化 PersonalPageStore 的 search-path 条目。
 * 相对 baseUrl 会基于记录的配置源 URL 展开；本地主机下 baseUrlLocal 优先。
 */
export declare function resolveSearchPathEntries(config?: DigitalHumanConfigInput, fallbackConfig?: DigitalHumanConfigInput | null): ResolvedSearchPathEntry[];
/** keepHistory 配置解析结果 */
export interface ResolvedKeepHistoryConfig {
    enabled: boolean;
    historyLength: number;
    fileName: string;
    keepFullHistory: boolean;
    dailyDeltaThreshold: number;
    autoSummarizeContentThreshold: number;
}
/**
 * 从 createSession / characterConfig / constructor 解析 keepHistory 配置。
 * @param source - true 表示使用默认值；对象则覆盖默认值；其余返回 null。
 */
export declare function resolveKeepHistoryConfig(source: boolean | Record<string, unknown> | null | undefined): ResolvedKeepHistoryConfig | null;
//# sourceMappingURL=DigitalHumanConfig.d.ts.map