import '@douyinfe/semi-foundation/lib/es/overflowList/overflowList.css'; import { CombineProps, VueJsxNode } from '../interface'; import { CSSProperties, PropType } from 'vue'; declare const OverflowDirection: { NONE: number; GROW: number; SHRINK: number; }; export type { ReactIntersectionObserverProps } from './intersectionObserver'; export type OverflowItem = Record; type Key = string | number; export interface OverflowListProps { className?: string; collapseFrom?: 'start' | 'end'; items?: Array; minVisibleItems?: number; onIntersect?: (res: { [key: string]: IntersectionObserverEntry; }) => void; onOverflow?: (overflowItems: Array) => void; overflowRenderer?: (overflowItems: Array) => VueJsxNode | VueJsxNode[]; renderMode?: 'collapse' | 'scroll'; style?: CSSProperties; threshold?: number | number[]; visibleItemRenderer?: (item: OverflowItem, index: number) => VueJsxNode; wrapperClassName?: string; wrapperStyle?: CSSProperties; itemKey?: Key | ((item: OverflowItem) => Key); onVisibleStateChange?: (visibleState: Map) => void; overflowRenderDirection?: 'both' | 'start' | 'end'; collapseMask?: any; } export interface OverflowListState { direction?: typeof OverflowDirection.GROW; lastOverflowCount?: number; overflow?: Array; visible?: Array; visibleState?: Map; prevProps?: OverflowListProps; itemSizeMap?: Map; containerWidth?: number; maxCount?: number; overflowStatus?: 'calculating' | 'overflowed' | 'normal'; pivot?: number; overflowWidth?: number; } export declare const vuePropsType: CombineProps; declare const OverflowList: import("vue").DefineComponent | { type: PropType; default?: any; required?: false; }; collapseFrom: PropType<"end" | "start"> | { type: PropType<"end" | "start">; default?: any; required?: false; }; items: PropType | { type: PropType; default?: any; required?: false; }; minVisibleItems: PropType | { type: PropType; default?: any; required?: false; }; onIntersect: PropType<(res: { [key: string]: IntersectionObserverEntry; }) => void> | { type: PropType<(res: { [key: string]: IntersectionObserverEntry; }) => void>; default?: any; required?: false; }; onOverflow: PropType<(overflowItems: Array) => void> | { type: PropType<(overflowItems: Array) => void>; default?: any; required?: false; }; overflowRenderer: PropType<(overflowItems: Array) => VueJsxNode | VueJsxNode[]> | { type: PropType<(overflowItems: Array) => VueJsxNode | VueJsxNode[]>; default?: any; required?: false; }; renderMode: PropType<"collapse" | "scroll"> | { type: PropType<"collapse" | "scroll">; default?: any; required?: false; }; style: PropType | { type: PropType; default?: any; required?: false; }; threshold: PropType | { type: PropType; default?: any; required?: false; }; visibleItemRenderer: PropType<(item: OverflowItem, index: number) => VueJsxNode> | { type: PropType<(item: OverflowItem, index: number) => VueJsxNode>; default?: any; required?: false; }; wrapperClassName: PropType | { type: PropType; default?: any; required?: false; }; wrapperStyle: PropType | { type: PropType; default?: any; required?: false; }; itemKey: PropType Key)> | { type: PropType Key)>; default?: any; required?: false; }; onVisibleStateChange: PropType<(visibleState: Map) => void> | { type: PropType<(visibleState: Map) => void>; default?: any; required?: false; }; overflowRenderDirection: PropType<"both" | "end" | "start"> | { type: PropType<"both" | "end" | "start">; default?: any; required?: false; }; collapseMask: PropType | { type: PropType; default?: any; required?: false; }; }>, () => import("vue/jsx-runtime").JSX.Element, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly | { type: PropType; default?: any; required?: false; }; collapseFrom: PropType<"end" | "start"> | { type: PropType<"end" | "start">; default?: any; required?: false; }; items: PropType | { type: PropType; default?: any; required?: false; }; minVisibleItems: PropType | { type: PropType; default?: any; required?: false; }; onIntersect: PropType<(res: { [key: string]: IntersectionObserverEntry; }) => void> | { type: PropType<(res: { [key: string]: IntersectionObserverEntry; }) => void>; default?: any; required?: false; }; onOverflow: PropType<(overflowItems: Array) => void> | { type: PropType<(overflowItems: Array) => void>; default?: any; required?: false; }; overflowRenderer: PropType<(overflowItems: Array) => VueJsxNode | VueJsxNode[]> | { type: PropType<(overflowItems: Array) => VueJsxNode | VueJsxNode[]>; default?: any; required?: false; }; renderMode: PropType<"collapse" | "scroll"> | { type: PropType<"collapse" | "scroll">; default?: any; required?: false; }; style: PropType | { type: PropType; default?: any; required?: false; }; threshold: PropType | { type: PropType; default?: any; required?: false; }; visibleItemRenderer: PropType<(item: OverflowItem, index: number) => VueJsxNode> | { type: PropType<(item: OverflowItem, index: number) => VueJsxNode>; default?: any; required?: false; }; wrapperClassName: PropType | { type: PropType; default?: any; required?: false; }; wrapperStyle: PropType | { type: PropType; default?: any; required?: false; }; itemKey: PropType Key)> | { type: PropType Key)>; default?: any; required?: false; }; onVisibleStateChange: PropType<(visibleState: Map) => void> | { type: PropType<(visibleState: Map) => void>; default?: any; required?: false; }; overflowRenderDirection: PropType<"both" | "end" | "start"> | { type: PropType<"both" | "end" | "start">; default?: any; required?: false; }; collapseMask: PropType | { type: PropType; default?: any; required?: false; }; }>> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>; export default OverflowList;