import { EventEmitter } from "../../stencil-public-runtime";
import { IcThemeMode } from "../../utils/types";
import { IcPaginationTypes, IcChangeEventDetail } from "./ic-pagination.types";
export declare class Pagination {
    el: HTMLIcPaginationElement;
    endEllipsis: boolean;
    endItems: number[];
    midItems: number[];
    startEllipsis: boolean;
    startItems: number[];
    /**
     * The accessible label of the pagination component to provide context for screen reader users.
     */
    accessibleLabel?: string;
    /**
     * The number of pages displayed adjacent to the current page when using 'complex' type pagination. Accepted values are 0, 1 & 2.
     */
    adjacentPageCount?: number;
    watchAdjacentPageCountHandler(): void;
    /**
     * The number of pages displayed as boundary items to the current page when using 'complex' type pagination. Accepted values are 0, 1 & 2.
     */
    boundaryPageCount?: number;
    watchBoundaryPageCountHandler(): void;
    /**
     * The default page to display.
     */
    defaultPage?: number;
    /**
     * If `true`, the pagination will not allow interaction.
     */
    disabled?: boolean;
    watchDisabledHandler(): void;
    /**
     * If `true`, the current page of the simple pagination will not be displayed.
     */
    hideCurrentPage?: boolean;
    /**
     * If `true`, the first and last page buttons will not be displayed.
     */
    hideFirstAndLastPageButton?: boolean;
    /**
     * The label for the pagination item (applicable when simple pagination is being used).
     */
    label?: string;
    /**
     * If `true`, the pagination will display as black in the light theme, and white in dark theme.
     */
    monochrome?: boolean;
    /**
     * The total number of pages.
     */
    pages: number;
    watchNumberPagesHandler(): void;
    /**
     * Sets the theme color to the dark or light theme color. "inherit" will set the color based on the system settings or ic-theme component.
     */
    theme?: IcThemeMode;
    /**
     * The type of pagination to be used.
     */
    type?: IcPaginationTypes;
    watchTypeHandler(): void;
    /**
     * The current page displayed by the pagination.
     */
    currentPage?: number;
    watchPageChangeHandler(): void;
    /**
     * Emitted when a page is selected.
     */
    icPageChange: EventEmitter<IcChangeEventDetail>;
    componentWillLoad(): void;
    componentDidLoad(): void;
    /**
     * Prevents focus lingering on a disabled element. If the currently
     * focused element is one of the back buttons (and we reach the first page),
     * move focus to "next" button, and vice versa.
     * @param ev
     */
    icPageChangeHandler(ev: CustomEvent<IcChangeEventDetail>): void;
    paginationItemClickHandler(ev: CustomEvent): void;
    /**
     * Sets the currently displayed page.
     * @param {number} page The page number to set as the current page
     */
    setCurrentPage(page: number): Promise<void>;
    private handleClickFirst;
    private handleClickPrevious;
    private handleClickNext;
    private handleClickLast;
    private firstButton;
    private previousButton;
    private nextButton;
    private lastButton;
    private renderStartEllipsis;
    private renderEndEllipsis;
    private renderStartItems;
    private renderEndItems;
    private renderMiddleItems;
    render(): any;
}
