import { PropType } from 'vue'; import { JSX } from 'vue/jsx-runtime'; export interface VirtualListItem { id?: string | number; width?: number; height?: number; getSize?: () => { width: number; height: number; }; } interface ItemLayoutInfo { width: number; height: number; originalWidth: number; originalHeight: number; scale: number; } export interface VirtualListParams { itemHeight?: number; getItemHeight?: (item: T) => number; gap?: number; containerHeight?: number | string; containerWidth?: number | string; bufferSize?: number; items: T[]; renderItem: (item: T, index: number, layout: ItemLayoutInfo) => JSX.Element; createLoadingJsx?: () => JSX.Element; loadData?: () => Promise; loadingHeight?: number; onEmit?: (event: string, payload: any) => void; } export declare const ZVirtualList: import('vue').DefineComponent; required: true; }; renderItem: { type: PropType<(item: any, index: number, layout: ItemLayoutInfo) => JSX.Element>; required: true; }; itemHeight: { type: NumberConstructor; default: number; }; getItemHeight: { type: PropType<(item: any) => number>; default: undefined; }; gap: { type: NumberConstructor; default: number; }; containerHeight: { type: (StringConstructor | NumberConstructor)[]; default: string | number; }; containerWidth: { type: (StringConstructor | NumberConstructor)[]; default: string | number; }; bufferSize: { type: NumberConstructor; default: number; }; loadData: { type: PropType<() => Promise>; default: null; }; createLoadingJsx: { type: PropType<() => JSX.Element>; default: null; }; loadingHeight: { type: NumberConstructor; default: number; }; }>, () => JSX.Element, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, ("scroll" | "loadMore" | "loadComplete")[], "scroll" | "loadMore" | "loadComplete", import('vue').PublicProps, Readonly; required: true; }; renderItem: { type: PropType<(item: any, index: number, layout: ItemLayoutInfo) => JSX.Element>; required: true; }; itemHeight: { type: NumberConstructor; default: number; }; getItemHeight: { type: PropType<(item: any) => number>; default: undefined; }; gap: { type: NumberConstructor; default: number; }; containerHeight: { type: (StringConstructor | NumberConstructor)[]; default: string | number; }; containerWidth: { type: (StringConstructor | NumberConstructor)[]; default: string | number; }; bufferSize: { type: NumberConstructor; default: number; }; loadData: { type: PropType<() => Promise>; default: null; }; createLoadingJsx: { type: PropType<() => JSX.Element>; default: null; }; loadingHeight: { type: NumberConstructor; default: number; }; }>> & Readonly<{ onScroll?: ((...args: any[]) => any) | undefined; onLoadMore?: ((...args: any[]) => any) | undefined; onLoadComplete?: ((...args: any[]) => any) | undefined; }>, { bufferSize: number; gap: number; loadingHeight: number; containerHeight: string | number; containerWidth: string | number; createLoadingJsx: () => JSX.Element; loadData: () => Promise; getItemHeight: (item: any) => number; itemHeight: number; }, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>; export {};