/** * Pagination table utility functions for nv-paginationtable component * * This module contains pure utility functions for label interpolation * and pagination calculations. */ /** * Interpolation values map type */ export type InterpolationValues = Record; /** * Interpolates a template string by replacing placeholders with values. * Placeholders are defined using curly braces: {key} * * @param {string} template - The template string with placeholders * @param {InterpolationValues} values - Object containing key-value pairs for replacement * @param {string} [fallback] - Optional fallback template if template is undefined/null * @returns {string} The interpolated string, or empty string if no template and no fallback * * @example * interpolate('Page {pageIndex} of {pageCount}', { pageIndex: 1, pageCount: 14 }) * // Returns: 'Page 1 of 14' */ export declare function interpolate(template: string | undefined | null, values: InterpolationValues, fallback?: string): string; /** * Checks if navigation to the first/previous page is possible * @param {number} pageIndex - Current page index (zero-based) * @returns {boolean} True if at the first page */ export declare function isFirstPage(pageIndex: number): boolean; /** * Returns the 1-based page number to show in the page label. * When there are no pages (empty/filtered-to-zero dataset), returns 0 so * the label reads e.g. "Page 0 of 0" instead of "Page 1 of 0". * @param {number} pageIndex - Current page index (zero-based) * @param {number} pageCount - Total number of pages * @returns {number} The page number to display (1-based, or 0 when no pages) */ export declare function getDisplayPageNumber(pageIndex: number, pageCount: number): number; /** * Checks if navigation to the last/next page is possible * @param {number} pageIndex - Current page index (zero-based) * @param {number} pageCount - Total number of pages * @returns {boolean} True if at the last page */ export declare function isLastPage(pageIndex: number, pageCount: number): boolean; /** * Page size option type for dropdown */ export interface PageSizeOption { /** The display label for the option */ label: string; /** The value of the option */ value: string; } /** * Default page size values */ export declare const DEFAULT_PAGE_SIZES: number[]; /** * Generates page size options with translated labels. * @param {string} labelTemplate - Template string for the label (e.g., '{pageSize} per page') * @param {number[]} sizes - Array of page size values * @returns {PageSizeOption[]} Array of page size options with interpolated labels * * @example * generatePageSizeOptions('{pageSize} per page', [10, 25, 50]) * // Returns: [{ label: '10 per page', value: '10' }, { label: '25 per page', value: '25' }, ...] */ export declare function generatePageSizeOptions(labelTemplate: string, sizes?: number[]): PageSizeOption[];