import type { ExtractPropTypes, PropType, SlotsType, Ref } from 'vue'; import type { AiBubbleProps } from '../../ai-bubble'; export interface AiBubbleListItem extends Partial { id?: string | number; [key: string]: unknown; } export declare const aiBubbleListProps: { /** * 消息列表 */ items: { type: PropType; default: () => never[]; }; /** * 是否开启虚拟滚动 */ virtualScroll: { type: BooleanConstructor; default: boolean; }; /** * 虚拟滚动容器高度 */ height: { type: PropType; default: number; }; /** * 预估项高度(用于虚拟滚动) */ itemHeight: { type: NumberConstructor; default: number; }; /** * 自动滚动到底部 */ autoScroll: { type: BooleanConstructor; default: boolean; }; /** * 加载状态 */ loading: { type: BooleanConstructor; default: boolean; }; /** * 主题覆盖 */ themeOverrides: { type: PropType; default: undefined; }; }; export type AiBubbleListProps = ExtractPropTypes; export interface AiBubbleListSlots { bubble?: (props: { item: AiBubbleListItem; index: number; }) => unknown; loading?: () => unknown; } export type AiBubbleListSlotTypes = SlotsType; export interface AiBubbleListExpose { scrollToBottom: () => void; scrollToIndex: (index: number) => void; scrollRef: Ref; }