import { Vue } from 'vue-property-decorator'; import { Item } from './types'; interface ContainerData { windowSize: ElementSize; windowScroll: ElementScroll; elementWindowOffset: number; elementSize: ElementSize; } interface ElementSize { width: number; height: number; } interface ElementScroll { x: number; y: number; } interface ConfigData

{ windowMargin: number; gridGap: number; columnCount: number; entries: Item

[]; } interface Cell

extends Item

{ columnNumber: number; rowNumber: number; offset: number; } interface LayoutData

{ totalHeight: number; cells: Cell

[]; } interface RenderData

{ cellsToRender: Cell

[]; firstRenderedRowNumber: number | null; firstRenderedRowOffset: number | null; } export default class VirtualGrid

extends Vue { items: Item

[]; updateFunction: () => Promise; getGridGap: (elementWidth: number, windowHeight: number) => number; getColumnCount: (elementWidth: number) => number; getWindowMargin: (windowHeight: number) => number; getItemRatioHeight: (height: number, width: number, columnWidth: number) => number; scrollElement: HTMLElement | null; updateTriggerMargin: number; loader: Vue.Component; debug: boolean; updateLock: boolean; bottomReached: boolean; ref: Element; containerData: ContainerData; get loadingBatch(): boolean; get configData(): ConfigData

; get layoutData(): LayoutData

; get renderData(): RenderData

; mounted(): void; beforeDestroy(): void; onScrollElementChanged(scrollElement: HTMLElement | null, oldScrollElement: HTMLElement | null): void; resize(): void; scroll(): void; initiliazeGrid(): void; loadMoreData(): void; loadMoreDataAsync(): Promise; computeContainerData(): void; computeConfigData(containerData: ContainerData, items: Item

[]): ConfigData

; computeLayoutData(configData: ConfigData

): LayoutData

; computeRenderData(configData: ConfigData

, containerData: ContainerData, layoutData: LayoutData

): RenderData

; getColumnWidth(columnCount: number | null, gridGap: number | null, elementWidth: number | null): number; getGridRowStart(cell: Cell

, renderData: RenderData

| null): string; resetGrid(): void; isSameElementSize(a: ElementSize, b: ElementSize): boolean; getWindowSize(): ElementSize; getElementSize(element: Element): ElementSize; isSameElementScroll(a: ElementScroll, b: ElementScroll): boolean; getWindowScroll(): ElementScroll; getElementOffset(element: Element): number; } export {};