import type { SlotComponentProps } from '@mui/utils/types'; type AnySlotProps = Record; /** * Merge a Material wrapper's default slot props (`base`, e.g. the resolved * `className`/`sx`) with a consumer-supplied slot prop, preserving the * `(ownerState) => props` **callback form** of `SlotComponentProps`. * * The Material chat components pre-compute their default slot props as a plain * object before handing them to the headless slot. Spreading the consumer slot * prop with `...(slotProps?.x as object)` silently flattens a callback to `{}`, * dropping owner-state-driven `className`/`sx`/handlers. A plain spread also * lets the consumer overwrite wrapper classes, top-level `sx`, refs, and * internal handlers. This helper keeps the callback form and merges React props * with the same rules used by slot utilities: class names concatenate, `sx` * layers are appended, styles merge, refs compose, handlers chain, and ordinary * props still let the consumer win. * * @param base Default props the wrapper always applies (e.g. `className`, `sx`). * @param consumer The consumer slot prop (object form, callback form, or undefined). */ export declare function mergeSlotProps(base: AnySlotProps, consumer: SlotComponentProps, OwnerState> | undefined): AnySlotProps | ((ownerState: OwnerState) => AnySlotProps); export declare function resolveSlotProps(slotProps: AnySlotProps | ((ownerState: OwnerState) => AnySlotProps), ownerState: OwnerState): AnySlotProps; export {};