/**
 * Bubble 自定义 memo 比较（见 Bubble.tsx）。
 *
 * 维护约定：
 * - 在 BubbleProps 上新增「会影响渲染」的字段时，必须在此补充比较逻辑，否则可能漏更新。
 * - `markdownRenderConfig` / `bubbleRenderConfig` / `docListProps` / `customConfig`：按**顶层键**浅比较；
 *   顶层值为普通对象时再浅比较一层；数组与函数仍按引用比较。父组件用 `useMemo` 稳定子对象引用更佳。
 * - `originData`：按列出的标量与引用字段比较；`meta` 顶层浅比较；`meta.metadata` 再浅比较一层。
 *   对 `extra` 等对象请勿原地 mutate，应替换引用，否则可能与 `extra !==` 不一致（若仅改嵌套且未换引用会漏更新）。
 */
import type { BubbleProps } from './type';
export declare const shallowEqualRecord: (a: Record<string, unknown> | undefined | null, b: Record<string, unknown> | undefined | null) => boolean;
export declare const shallowEqualStyles: (a: BubbleProps['styles'] | undefined, b: BubbleProps['styles'] | undefined) => boolean;
/**
 * Custom props comparator for Bubble memo.
 * BubbleList (and callers) often pass fresh object references for styles / classNames / avatar
 * while message data is unchanged; default shallow compare would still re-render every parent tick.
 */
export declare const bubblePropsAreEqual: (prev: BubbleProps & {
    deps?: unknown[];
}, next: BubbleProps & {
    deps?: unknown[];
}) => boolean;
