import { PropType } from 'vue'; import { JSX } from 'vue/jsx-runtime'; export interface BaseWaterfallItem { id?: string | number; height?: number; width?: number; getSize?: () => { width: number; height: number; }; } interface RowInfo { items: T[]; width: number; startIndex: number; } export interface ItemLayoutInfo { width: number; height: number; originalWidth: number; originalHeight: number; scale: number; displayWidth: number; displayHeight: number; } interface HorizontalFlowParams { rowCount?: number; columnGap?: number; rowGap?: number; containerHeight: number | string; containerWidth?: number | string; bufferSize?: number; plusItemHeight?: number; items: T[]; renderItem: (item: T, index: number, layout: ItemLayoutInfo) => JSX.Element; } export default class ZHorizontalFlow { private rows; private visibleItemsRef; private scrolling; private rowsCache; private lastItems; private lastRowHeight; private lastRowCount; private lastOffsetCache; private state; constructor(params: HorizontalFlowParams); private getItemSize; private distributeItems; private calculateTotalWidth; private calculateRowWidth; private initializeLayout; private handleResize; private clearCache; private handleScroll; private updateVisibleItems; private getVisibleRange; private binarySearchStartIndex; private calculateStartOffset; setItems(items: T[]): void; getConfig(): { scrollLeft: number; rowCount: number; columnGap: number; rowGap: number; containerHeight: string | number; containerWidth: string | number; bufferSize: number; plusItemHeight: number; containerRef: HTMLElement | null; items: Array; distributedRows: Array>; renderItem: ((item: T, index: number, layout: ItemLayoutInfo) => JSX.Element) | null; rowHeight: string; numericRowHeight: number; contentWidth: number; }; setConfig(config: Partial): void; createJsx(): JSX.Element; createElement(): import('vue').DefineComponent<{}, () => JSX.Element, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>; } export declare const ZHorizontalFlowComponent: import('vue').DefineComponent; required: true; }; renderItem: { type: PropType<(item: BaseWaterfallItem, index: number, layout: ItemLayoutInfo) => JSX.Element>; required: true; }; rowCount: { type: NumberConstructor; default: number; }; columnGap: { type: NumberConstructor; default: number; }; rowGap: { type: NumberConstructor; default: number; }; containerHeight: { type: PropType; default: string; }; containerWidth: { type: PropType; default: string; }; bufferSize: { type: NumberConstructor; default: number; }; plusItemHeight: { type: NumberConstructor; default: number; }; }>, () => JSX.Element, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly; required: true; }; renderItem: { type: PropType<(item: BaseWaterfallItem, index: number, layout: ItemLayoutInfo) => JSX.Element>; required: true; }; rowCount: { type: NumberConstructor; default: number; }; columnGap: { type: NumberConstructor; default: number; }; rowGap: { type: NumberConstructor; default: number; }; containerHeight: { type: PropType; default: string; }; containerWidth: { type: PropType; default: string; }; bufferSize: { type: NumberConstructor; default: number; }; plusItemHeight: { type: NumberConstructor; default: number; }; }>> & Readonly<{}>, { bufferSize: number; containerHeight: string | number; containerWidth: string | number; columnGap: number; rowGap: number; plusItemHeight: number; rowCount: number; }, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>; export {};