declare module 'vue-virtual-scroller' { import { type ObjectEmitsOptions, type PublicProps, type SetupContext, type SlotsType, type VNode, } from 'vue'; interface RecycleScrollerProps { items: readonly T[]; direction?: 'vertical' | 'horizontal'; itemSize?: number | null; gridItems?: number; itemSecondarySize?: number; minItemSize?: number; sizeField?: string; typeField?: string; keyField?: keyof T; pageMode?: boolean; prerender?: number; buffer?: number; emitUpdate?: boolean; updateInterval?: number; listClass?: string; itemClass?: string; listTag?: string; itemTag?: string; } interface DynamicScrollerProps extends RecycleScrollerProps { minItemSize: number; } interface RecycleScrollerEmitOptions extends ObjectEmitsOptions { resize: () => void; visible: () => void; hidden: () => void; update: ( startIndex: number, endIndex: number, visibleStartIndex: number, visibleEndIndex: number, ) => void; 'scroll-start': () => void; 'scroll-end': () => void; } interface RecycleScrollerSlotProps { item: T; index: number; active: boolean; } interface RecycleScrollerSlots { default(slotProps: RecycleScrollerSlotProps): unknown; before(): unknown; empty(): unknown; after(): unknown; } export interface RecycleScrollerInstance { getScroll(): { start: number; end: number }; scrollToItem(index: number): void; scrollToPosition(position: number): void; } export const RecycleScroller: ( props: RecycleScrollerProps & PublicProps, ctx?: SetupContext>>, expose?: (exposed: RecycleScrollerInstance) => void, ) => VNode & { __ctx?: { props: RecycleScrollerProps & PublicProps; expose(exposed: RecycleScrollerInstance): void; slots: RecycleScrollerSlots; }; }; export const DynamicScroller: ( props: DynamicScrollerProps & PublicProps, ctx?: SetupContext>>, expose?: (exposed: RecycleScrollerInstance) => void, ) => VNode & { __ctx?: { props: DynamicScrollerProps & PublicProps; expose(exposed: RecycleScrollerInstance): void; slots: RecycleScrollerSlots; }; }; interface DynamicScrollerItemProps { item: T; active: boolean; sizeDependencies?: unknown[]; watchData?: boolean; tag?: string; emitResize?: boolean; onResize?: () => void; } interface DynamicScrollerItemEmitOptions extends ObjectEmitsOptions { resize: () => void; } export const DynamicScrollerItem: ( props: DynamicScrollerItemProps & PublicProps, ctx?: SetupContext, ) => VNode; export function IdState(options?: { idProp?: (value: any) => unknown }): unknown; }