/// <reference types="react" />
import type { CSSInterpolation } from '@ant-design/cssinjs';
import type { FullToken as CssUtilsFullToken, GenStyleFn as CssUtilsGenStyleFn, TokenMap } from '@ant-design/cssinjs-utils';
import type { AliasToken } from 'antd/es/theme/interface';
export type { CSSInterpolation };
/**
 * Agentic UI 组件级 ComponentToken 映射表。
 *
 * 与 antd `ComponentTokenMap` 同形：键为组件名，值为该组件追加的 token 类型。
 * 业务组件通过 TypeScript module augmentation 扩展，例如：
 *
 * ```ts
 * declare module '@ant-design/agentic-ui/Hooks/useStyle' {
 *   interface AgenticComponentTokenMap {
 *     Bubble: { bubbleMaxWidth: string };
 *   }
 * }
 * ```
 *
 * 未声明的组件回退为空对象，保持与 antd genStyleHooks 行为一致。
 */
export interface AgenticComponentTokenMap extends TokenMap {
    [componentName: string]: any;
}
/**
 * 组件 styleFn 接收的完整 token：alias token + 组件 token + cssinjs 通用工具
 * （componentCls / prefixCls / antCls / iconCls / calc / max / min）。
 */
export type FullToken<C extends string = string> = CssUtilsFullToken<AgenticComponentTokenMap, AliasToken, C>;
/**
 * 组件 styleFn 类型签名。等价于 antd 内部的 `GenStyleFn`，但绑定到 agentic-ui
 * 的 ComponentTokenMap。
 */
export type GenStyleFn<C extends string = string> = CssUtilsGenStyleFn<AgenticComponentTokenMap, AliasToken, C>;
/**
 * 旧版 ChatTokenType。新代码请直接使用 `FullToken<'ComponentName'>`，
 * 此别名仅为兼容现存 style.ts 与公共导出而保留。
 */
export type ChatTokenType = FullToken & {
    themeId?: number;
    /**
     * agentic-ui 前缀 className（含点号），如 `.agentic-md-editor`
     */
    chatCls?: string;
    /**
     * antd 前缀 className（含点号），如 `.ant`
     */
    antCls: string;
    componentCls: string;
    placeholderContent?: string;
};
export type GenerateStyle<T = ChatTokenType> = (token: T) => Record<string, CSSInterpolation>;
export declare const resetComponent: GenerateStyle<ChatTokenType>;
/**
 * 基于 antd cssinjs-utils 构建的 genStyleHooks 工厂。
 *
 * 与 antd 内部 `theme/util/genStyleUtils` 同源，区别仅在于：
 *   1. 使用 agentic-ui 自有的 ComponentTokenMap（可自由扩展）
 *   2. hashId 始终为空字符串，避免与宿主 antd 主题 hashId 叠加导致选择器失效
 *      —— 组件库选择器需对消费方稳定，不能随主题哈希变化
 */
declare const styleUtils: {
    genStyleHooks: <C extends string>(component: C | [C, string], styleFn: CssUtilsGenStyleFn<AgenticComponentTokenMap, AliasToken, C>, getDefaultToken?: import("@ant-design/cssinjs-utils").GetDefaultToken<AgenticComponentTokenMap, AliasToken, C> | undefined, options?: {
        resetStyle?: boolean | undefined;
        resetFont?: boolean | undefined;
        deprecatedTokens?: [keyof Exclude<import("@ant-design/cssinjs-utils").OverrideTokenMap<AgenticComponentTokenMap, AliasToken>[C], undefined>, keyof Exclude<import("@ant-design/cssinjs-utils").OverrideTokenMap<AgenticComponentTokenMap, AliasToken>[C], undefined>][] | undefined;
        unitless?: Partial<Record<keyof Exclude<import("@ant-design/cssinjs-utils").OverrideTokenMap<AgenticComponentTokenMap, AliasToken>[C], undefined>, boolean>> | undefined;
        clientOnly?: boolean | undefined;
        order?: number | undefined;
        injectStyle?: boolean | undefined;
    } | undefined) => (prefixCls: string, rootCls?: string | undefined) => readonly [(node: import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>>) => import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>>, string, string];
    genSubStyleComponent: <C_1 extends string>(componentName: C_1 | [C_1, string], styleFn: CssUtilsGenStyleFn<AgenticComponentTokenMap, AliasToken, C_1>, getDefaultToken?: import("@ant-design/cssinjs-utils").GetDefaultToken<AgenticComponentTokenMap, AliasToken, C_1> | undefined, options?: {
        resetStyle?: boolean | undefined;
        resetFont?: boolean | undefined;
        deprecatedTokens?: [keyof Exclude<import("@ant-design/cssinjs-utils").OverrideTokenMap<AgenticComponentTokenMap, AliasToken>[C_1], undefined>, keyof Exclude<import("@ant-design/cssinjs-utils").OverrideTokenMap<AgenticComponentTokenMap, AliasToken>[C_1], undefined>][] | undefined;
        clientOnly?: boolean | undefined;
        order?: number | undefined;
        injectStyle?: boolean | undefined;
        unitless?: Partial<Record<keyof Exclude<import("@ant-design/cssinjs-utils").OverrideTokenMap<AgenticComponentTokenMap, AliasToken>[C_1], undefined>, boolean>> | undefined;
    } | undefined) => import("react").FunctionComponent<import("@ant-design/cssinjs-utils/lib/util/genStyleUtils").SubStyleComponentProps>;
    genComponentStyleHook: <C_2 extends string>(componentName: C_2 | [C_2, string], styleFn: CssUtilsGenStyleFn<AgenticComponentTokenMap, AliasToken, C_2>, getDefaultToken?: import("@ant-design/cssinjs-utils").GetDefaultToken<AgenticComponentTokenMap, AliasToken, C_2> | undefined, options?: {
        resetStyle?: boolean | undefined;
        resetFont?: boolean | undefined;
        deprecatedTokens?: [keyof Exclude<import("@ant-design/cssinjs-utils").OverrideTokenMap<AgenticComponentTokenMap, AliasToken>[C_2], undefined>, keyof Exclude<import("@ant-design/cssinjs-utils").OverrideTokenMap<AgenticComponentTokenMap, AliasToken>[C_2], undefined>][] | undefined;
        clientOnly?: boolean | undefined;
        order?: number | undefined;
        injectStyle?: boolean | undefined;
        unitless?: Partial<Record<keyof Exclude<import("@ant-design/cssinjs-utils").OverrideTokenMap<AgenticComponentTokenMap, AliasToken>[C_2], undefined>, boolean>> | undefined;
    } | undefined) => (prefixCls: string, rootCls?: string | undefined) => import("@ant-design/cssinjs-utils/lib/interface").UseComponentStyleResult;
};
/**
 * 注册组件样式（含 antCls / iconCls / 计算工具），返回 `useStyle(prefixCls)`。
 *
 * 与 antd `genStyleHooks` 行为一致：
 *   - 顶层调用一次，签名 `(prefixCls, rootCls?) => [wrapSSR, hashId, cssVarCls]`
 *   - styleFn 接收的 token 含 `componentCls`、`prefixCls`、`antCls` 等
 *   - **wrapSSR 为 identity 函数**（见 {@link identityWrapSSR} 说明）
 *
 * @example
 * ```ts
 * import { genStyleHooks } from '../Hooks/useStyle';
 *
 * const genStyle: GenStyleFn<'Bubble'> = (token) => ({
 *   [token.componentCls]: { padding: token.padding },
 * });
 *
 * export const useStyle = genStyleHooks('Bubble', genStyle);
 * ```
 */
export declare const genStyleHooks: typeof styleUtils.genStyleHooks;
/**
 * 同 antd `genComponentStyleHook`：与 `genStyleHooks` 类似，但不接管 CSS Var 注册，
 * 返回 `[wrapSSR, hashId]`。在子样式 / 不需要 CSS Var 的场景使用。
 *
 * 同样把 `wrapSSR` 替换为 identity。
 */
export declare const genComponentStyleHook: typeof styleUtils.genComponentStyleHook;
/**
 * 同 antd `genSubStyleComponent`：返回一个 SubStyle 组件，用于在父组件内挂载子样式。
 */
export declare const genSubStyleComponent: <C_1 extends string>(componentName: C_1 | [C_1, string], styleFn: CssUtilsGenStyleFn<AgenticComponentTokenMap, AliasToken, C_1>, getDefaultToken?: import("@ant-design/cssinjs-utils").GetDefaultToken<AgenticComponentTokenMap, AliasToken, C_1> | undefined, options?: {
    resetStyle?: boolean | undefined;
    resetFont?: boolean | undefined;
    deprecatedTokens?: [keyof Exclude<import("@ant-design/cssinjs-utils").OverrideTokenMap<AgenticComponentTokenMap, AliasToken>[C_1], undefined>, keyof Exclude<import("@ant-design/cssinjs-utils").OverrideTokenMap<AgenticComponentTokenMap, AliasToken>[C_1], undefined>][] | undefined;
    clientOnly?: boolean | undefined;
    order?: number | undefined;
    injectStyle?: boolean | undefined;
    unitless?: Partial<Record<keyof Exclude<import("@ant-design/cssinjs-utils").OverrideTokenMap<AgenticComponentTokenMap, AliasToken>[C_1], undefined>, boolean>> | undefined;
} | undefined) => import("react").FunctionComponent<import("@ant-design/cssinjs-utils/lib/util/genStyleUtils").SubStyleComponentProps>;
/**
 * 兼容旧版的 useStyle 注册器。
 *
 * 新代码请改用 `genStyleHooks`；本函数仅为已有 style.ts 调用点保留。
 * 内部直接调用 cssinjs 的 `useStyleRegister`，与 `genComponentStyleHook` 同源，
 * 因此即便不迁移调用点，样式注入路径也已统一在 antd cssinjs 之上。
 *
 * @param componentName 组件名（用作 cssinjs cache path）
 * @param styleFn 生成样式的函数，token 由调用方按需附加 `componentCls`
 */
export declare function useEditorStyleRegister(componentName: string, styleFn: (token: ChatTokenType) => CSSInterpolation): {
    wrapSSR: <T extends import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>>>(node: T) => T;
    hashId: string;
};
