import { EventEmitter } from '../../../stencil-public-runtime';
import type { PnLanguages, PnPaginationItem } from "../../../index";
/**
 * Accessible pagination needs each item to link to a different part of the document.
 * This means that you must `preventDefault` on the `MouseEvent` emitted from the `pageSelected` event if you have a SPA.
 *
 * If you set a `page` value that is higher than `pages`, the component will automatically lower it to the `pages` value.
 *
 * @since v7.9.0
 */
export declare class PnPagination {
    listElement: HTMLUListElement;
    hostElement: HTMLElement;
    list: PnPaginationItem[];
    /** Set a label for the pagination element for screen readers. It defaults to `Pagination`. */
    label?: string;
    /** Set a custom URL template. Use `{page}` within the string to position where the dynamic page number should be. */
    urlTemplate: string;
    /** Set a HTML id on the pagination element. */
    paginationId?: string;
    /** Manually set the language. */
    language?: PnLanguages;
    /**
     * Set which page the user is currently viewing.
     * Use this to set an inital page or if the selected page is changed from outside this component.
     *
     * @category Pages
     **/
    page: number;
    /** Set how many pages are available. @category Pages */
    pages: number;
    /** Set how many pages should be visible at one time. Use an odd number. Minimum is `5`. @category Pages */
    pagesVisible: number;
    /**
     * Allow the user to decide how many items should be shown per page.
     * Make sure this value exists in the `rowsList` string.
     *
     * @see {@link rowsList}
     * @category Rows per page
     * */
    rows: number;
    /**
     * Set available items per page options the user can select. Use a comma separated string.
     *
     * @see {@link rows}
     * @category Rows per page
     * */
    rowsList: string;
    /**
     * Default label is "Items per page".
     * @see {@link rows}
     * @category Rows per page
     * */
    rowsLabel: string;
    handlePage(): void;
    handlePages(): void;
    handlePagesVisible(): void;
    /** Emitted when the page is changed. Either via clicking a link or selecting a page in the select. */
    pageSelected: EventEmitter<{
        page: number;
        mouse: MouseEvent;
    }>;
    /** This event fires when the user changes how many items should be shown per page. */
    rowsSelected: EventEmitter<{
        rows: number;
        change: Event;
    }>;
    componentWillLoad(): Promise<void>;
    private translate;
    private isActivePage;
    private navigate;
    private useRowList;
    private setRows;
    private getRowList;
    /** Get the page numbers of the lowest and highest visible page. */
    private getPaginationIndex;
    private getPagination;
    private getUrl;
    private setPageText;
    private getPrevPage;
    private getNextPage;
    private showIntendation;
    private renderDivider;
    private renderButton;
    private renderItem;
    private renderJumpButton;
    render(): any;
}
