/**
 * Copyright IBM Corp. 2019, 2025
 *
 * This source code is licensed under the Apache-2.0 license found in the
 * LICENSE file in the root directory of this source tree.
 */
import '../button/index';
import { LitElement } from 'lit';
import { PAGINATION_SIZE, PAGINATION_TOOLTIP_POSITION } from './defs';
declare const CDSPagination_base: (new (...args: any[]) => {
    focus(): void;
}) & {
    new (...args: any[]): {
        _handles: Set<import("../../globals/internal/handle").default>;
        connectedCallback(): void;
        disconnectedCallback(): void;
    };
    _hostListeners: {
        [listenerName: string]: {
            [type: string]: {
                options?: boolean | AddEventListenerOptions;
            };
        };
    };
} & typeof LitElement;
/**
 * Pagination UI.
 *
 * @element cds-pagination
 * @slot page-sizes-select - Where to put in the `<page-sizes-select>`.
 * @fires cds-pagination-changed-current - The custom event fired after the current page is changed from `<cds-pages-select>`.
 * @fires cds-page-sizes-select-changed - The custom event fired after the number of rows per page is changed from `<cds-page-sizes-select>`.
 */
declare class CDSPagination extends CDSPagination_base {
    private _pageSizeSelect;
    private _handleSlotChange;
    /**
     * @returns Page status text.
     */
    private _renderStatusText;
    /**
     * Calculates the start value based on `page`, `pageSize`, and `totalItems`
     */
    private _calculateStart;
    /**
     * Handles user-initiated change in the row number the current page starts with.
     *
     * @param start The new current row number, index that starts with zero.
     */
    private _handleUserInitiatedChangeStart;
    /**
     * Handles user-initiated change in the size of the page.
     */
    private _handleUserInitiatedPageSizeChange;
    /**
     * Handles `click` event on the previous button.
     */
    private _handleClickPrevButton;
    /**
     * Handles `click` event on the next button.
     */
    private _handleClickNextButton;
    /**
     * Handles user-initiated change in number of rows per page.
     *
     * @param event The event.
     */
    private _handleChangeSelector;
    /**
     * The assistive text for the button to go to previous page.
     */
    backwardText: string;
    /**
     * Specify the position of the tooltip for the backward button. Can be one of: top, right, bottom, or left.
     */
    backwardTextTooltipPosition: PAGINATION_TOOLTIP_POSITION;
    /**
     * The current page
     */
    page: number;
    /**
     * The formatter for the assistive text for screen readers to announce.
     * Should be changed upon the locale the UI is rendered with.
     */
    formatLabelText: ({ count }: {
        count: any;
    }) => string;
    /**
     * The formatter, used with determinate the total pages. Should be changed upon the locale the UI is rendered with.
     */
    formatStatusWithDeterminateTotal: ({ start, end, count }: {
        start: any;
        end: any;
        count: any;
    }) => string;
    /**
     * The formatter, used with indeterminate the total pages. Should be changed upon the locale the UI is rendered with.
     */
    formatStatusWithIndeterminateTotal: ({ start, end, count }: {
        start: any;
        end: any;
        count: any;
    }) => string;
    /**
     * The formatter for the text next to the select box. Should be changed upon the locale the UI is rendered with.
     */
    formatSupplementalText: ({ count }: {
        count: any;
    }) => string;
    /**
     * `true` to explicitly state that user is at the last page.
     */
    isLastPage: boolean;
    /**
     * The translatable text indicating the number of items per page.
     */
    itemsPerPageText: string;
    /**
     * `true` if the pagination UI should be disabled.
     */
    disabled: boolean;
    /**
     * The assistive text for the button to go to next page.
     */
    forwardText: string;
    /**
     * Specify the position of the tooltip for the forward button. Can be one of: top, right, bottom, or left.
     */
    forwardTextTooltipPosition: PAGINATION_TOOLTIP_POSITION;
    /**
     * true if the select box to change the page should be disabled.
     */
    pageInputDisabled: boolean;
    /**
     * Number of items per page.
     */
    pageSize: number;
    /**
     * true if the select box to change the items per page should be disabled.
     */
    pageSizeInputDisabled: any;
    /**
     * The label text for the UI to select page size.
     */
    pageSizeLabelText: string;
    /**
     * true if the total number of items is unknown.
     */
    pagesUnknown: boolean;
    /**
     * Specify the size of the Pagination.
     */
    size: PAGINATION_SIZE;
    /**
     * The row number where current page start with, index that starts with zero.
     */
    start: number;
    /**
     * The number of total items.
     */
    totalItems: number;
    /**
     * The number of total pages.
     */
    totalPages: number;
    updated(changedProperties: any): void;
    render(): import("lit-html").TemplateResult<1>;
    /**
     * A selector that will return the select box for the current page.
     */
    static get selectorPagesSelect(): string;
    /**
     * A selector that will return the select box for page sizes.
     */
    static get selectorPageSizesSelect(): string;
    /**
     * A selector that will return the previous button.
     */
    static get selectorPreviousButton(): string;
    /**
     * A selector that will return the forward button.
     */
    static get selectorForwardButton(): string;
    /**
     * The name of the custom event fired after the current row number is changed.
     */
    static get eventChangeCurrent(): string;
    /**
     * The name of the custom event fired after the number of rows per page is changed from `<cds-page-sizes-select>`.
     */
    static get eventPageSizeChanged(): string;
    static shadowRootOptions: {
        delegatesFocus: boolean;
        clonable?: boolean;
        customElementRegistry?: CustomElementRegistry;
        mode: ShadowRootMode;
        serializable?: boolean;
        slotAssignment?: SlotAssignmentMode;
    };
    static styles: any;
}
export default CDSPagination;
//# sourceMappingURL=pagination.d.ts.map