import { EventEmitter } from '../../stencil-public-runtime';
import { PaginationItemsPerPageOptions, PaginationListBoxPosition, PaginationVariant } from './exports';
/**
* Navigation control for moving between pages of content, with page number buttons, prev/next arrows, and configurable items-per-page options.
*
* Example
* ```
*
* ```
*/
export declare class RPagination {
/** UI: Arrows present/absent: @default: true */
arrows: boolean;
/** Total amount of pages to select from; @default: 1 */
totalResults: number;
/** Current page number; @default: 1 */
pageActive: number;
/** Amount of items to show per page; @default: 5 */
itemsPerPage: number;
/**
* Items per page options for dropdown.
* @default [5, 10, 15, 20, 25, 50, 100]
* @deprecated Use setItemsPerPageOptions(...) instead. This prop will be removed in the next major release.
*/
itemsPerPageOptions: PaginationItemsPerPageOptions;
/** Allows selection between different pagination styles: minimized, standard, maximized; @default: 'standart' */
variant: PaginationVariant;
/** UI: Result Line and select field present/absent; @default: false */
resultsLine: boolean;
/** Text to show in beginning of resultLine; @default: 'Showing' */
startText: string;
/** Text to display between currently shown results and total amount of results */
middleText: string;
/** Text to display after total results */
endText: string;
/** Text to show in select */
selectText: string;
/** Position of the list box */
listBoxPosition: PaginationListBoxPosition;
/** Label for Previous Page button. Important to ensure accessibility for screen reader users. */
previousPageButtonLabel: string;
/** Label for Next Page button. Important to ensure accessibility for screen reader users.*/
nextPageButtonLabel: string;
/** Label for First Page button. Important to ensure accessibility for screen reader users.*/
firstPageButtonLabel: string;
/** Label for Last Page button. Important to ensure accessibility for screen reader users.*/
lastPageButtonLabel: string;
/** Label for Page number buttons. Important to ensure accessibility for screen reader users.*/
pageLabel: string;
/** Label for Ellipsis stepper. Important to ensure accessibility for screen reader users.*/
ellipsisLabel: string;
/** Label for Items per page select. */
itemsPerPageLabel: string;
/** The maximum number of visible page buttons (excluding ellipsis steppers). @default 10 */
maxVisiblePages?: number;
/** Signifies that currently active page was changed.
*
* Pagination state is passed as part of event `detail` property.
*
* @example
* const myPaginationEl = document.querySelector('r-pagination');
* myPaginationEl.addEventListener('rChange', (event) => {
* console.log(`Page ${event.detail} was selected`)
* });
* */
rChange: EventEmitter<{
total: number;
active: number;
previous: number;
next: number;
}>;
/** Signifies that one of the pagination number buttons was cliked.
*
* Pagination state is passed as part of event `detail` property.
*
* @example
* const myPaginationEl = document.querySelector('r-pagination');
* myPaginationEl.addEventListener('rNumberClick', (event) => {
* console.log(`Page ${event.detail} was selected`)
* });
* */
rNumberClick: EventEmitter<{
total: number;
active: number;
previous: number;
next: number;
}>;
/** Signifies that one of the pagination arrow buttons was cliked.
*
* Pagination state and `direction` are passed as part of event `detail` property.
*
* @example
* const myPaginationEl = document.querySelector('r-pagination');
* myPaginationEl.addEventListener('rArrowClick', (event) => {
* console.log(`Page ${event.detail} was selected`)
* });
* */
rArrowClick: EventEmitter<{
total: number;
active: number;
previous: number;
next: number;
direction: string;
}>;
/** Signifies that items per page was changed.
*
* New items per page value is passed as part of event `detail` property.
*
* @example
* const myPaginationEl = document.querySelector('r-pagination');
* myPaginationEl.addEventListener('rItemsPerPageChange', (event) => {
* console.log(`Items per page changed to ${event.detail}`)
* });
* */
rItemsPerPageChange: EventEmitter;
private total;
private active;
private previous;
private next;
private first;
private last;
private selectableItemsPerPageOptions;
el: HTMLRPaginationElement;
private headerRef;
private footerRef;
private resizeObserver;
private hasWarnedItemsPerPageOptionsDeprecation;
private getNormalizedMaxVisiblePages;
get isNoPreviousPage(): boolean;
get isNoNextPage(): boolean;
get isNotFirstPage(): boolean;
get isNotLastPage(): boolean;
get paginationState(): {
total: number;
active: number;
previous: number;
next: number;
first: number;
last: number;
arrows: boolean;
};
private normalizeItemsPerPageOptions;
private hasDefaultItemsPerPageOptions;
private warnItemsPerPageOptionsDeprecation;
/**
* Sets available values for the items-per-page select.
* Prefer this API over the deprecated itemsPerPageOptions prop.
*/
setItemsPerPageOptions(options: PaginationItemsPerPageOptions): Promise;
private setPaginationState;
private handleItemsPerPageChange;
private _activateStep;
/**
* Determines the appropriate focus target after navigation based on button states.
* Handles edge cases where navigation buttons become disabled.
*/
private getFocusTargetAfterNavigation;
private handleItemChange;
private syncHeaderWidth;
handlePropsChange(): void;
handleItemsPerPageOptionsPropChange(newOptions: PaginationItemsPerPageOptions): void;
componentWillLoad(): void;
disconnectedCallback(): void;
componentDidRender(): void;
render(): any;
}