/** * @typedef PageInfo * @property {number} startIndex The visual index of the first item in the page. * @property {number} endIndex The visual index of the last item in the page. * @property {number} pageSize The number of items in the page. */ /** * The module computes how many items fit on each page so that the combined * height of items never exceeds the available viewport, eliminating vertical scroll. * Unlike for "FixedPageSizeStrategy" plugin, this one calculates the "pageSize" for each * page every time the `calculate` method is called. * * @private * @class AutoPageSizeStrategy */ export declare class AutoPageSizeStrategy { /** * @type {PageInfo[]} */ pages: unknown[]; /** * Calculates the state of pagination. * * @param {object} options Options for pagination calculation. * @param {function(): number[]} options.itemsSizeProvider A function that returns an array of item sizes. * @param {function(): number} options.viewportSizeProvider A function that returns the size of the viewport in pixels. */ calculate({ itemsSizeProvider, viewportSizeProvider }: { itemsSizeProvider: () => number[]; viewportSizeProvider: () => number; }): void; /** * Gets the total number of pages. * * @returns {number} The total number of pages. */ getTotalPages(): number; /** * Gets the state of a specific page. * * @param {number} currentPage The current page number (1-based index). * @returns {PageInfo | undefined} */ getState(currentPage: number): unknown; }