import React from 'react';
import type { Nullable } from '../../typings/utility-types.js';
import type { CommonProps } from '../../internal/CommonWrapper/index.js';
import type { TGetRootNode } from '../../lib/rootNode/index.js';
import type { SizeProp } from '../../lib/types/props.js';
export interface ItemComponentProps {
    /** @ignore */
    children?: React.ReactNode;
    /** Определяет, является ли страница текущей. */
    active: boolean;
    /** Номер страницы. */
    pageNumber: number | 'forward';
    /** Вызывается при клике на элемент. */
    onClick: () => void;
    /** HTML-атрибут `class`. */
    className: string;
    /** HTML-атрибут `tabindex`. */
    tabIndex: number;
}
export interface PagingProps extends CommonProps {
    /** Количество страниц. */
    pagesCount: number;
    /** Номер текущей страницы. */
    activePage: number;
    /** Вызывается при переключении страницы. */
    onPageChange: (pageNumber: number) => void;
    /** Размер пейджинга.
     *
     * *Проп поддерживается начиная с версии 5.3.*
     * @default 'small' */
    size?: SizeProp;
    /** Делает компонент недоступным. */
    disabled?: boolean;
    /** Подпись у кнопки перехода на следующую страницу. */
    caption?: string;
    /** Компонент обёртки страниц.
     * @default <span/> */
    component?: React.ComponentType<ItemComponentProps>;
    /** Отключает навигационные подсказки.
     * По умолчанию подсказки появляются, когда доступно управление с клавиатуры (либо контрол в фокусе, либо globalListeners === true). */
    withoutNavigationHint?: boolean;
    /** Включает глобальный слушатель `keyDown`, для навигации клавишами без фокуса на контроле. */
    useGlobalListener?: boolean;
}
export interface PagingState {
    focusedByTab: boolean;
    focusedItem: Nullable<ItemType>;
    keyboardControl: boolean;
}
export type ItemType = number | '.' | 'forward';
export declare const PagingDataTids: {
    readonly root: "Paging__root";
    readonly dots: "Paging__dots";
    readonly forwardLink: "Paging__forwardLink";
    readonly pageLinkWrapper: "Paging__pageLinkWrapper";
    readonly pageLink: "Paging__pageLink";
};
type DefaultProps = Required<Pick<PagingProps, 'component' | 'useGlobalListener'>>;
/**
 * Постраничная навигация `Paging` (пейджинг или пагинация) — способ представления большого количества однородной информации, когда контент разбивается на страницы.
 */
export declare class Paging extends React.PureComponent<PagingProps, PagingState> {
    static __KONTUR_REACT_UI__: string;
    static displayName: string;
    static defaultProps: DefaultProps;
    private getProps;
    getRootNode: TGetRootNode;
    private setRootNode;
    static isForward(pageNumber: number | 'forward'): boolean;
    state: PagingState;
    private globalObject;
    private emotion;
    private cx;
    private styles;
    private theme;
    private readonly locale;
    private isMobile;
    private sizeClassNames;
    private addedGlobalListener;
    private container;
    private keyListener;
    componentDidMount(): void;
    componentDidUpdate(prevProps: PagingProps): void;
    componentWillUnmount(): void;
    render(): React.JSX.Element | null;
    private renderMain;
    private renderItem;
    private renderDots;
    private renderForwardLink;
    private renderPageLink;
    private renderNavigationHint;
    private handleMouseDown;
    private handleKeyDown;
    private handleFocus;
    private handleBlur;
    private getItems;
    private getFocusedItem;
    private isItemFocusable;
    private isItemDisabled;
    private executeItemAction;
    private moveFocusLeft;
    private moveFocusRight;
    private moveFocus;
    private canGoBackward;
    private canGoForward;
    private goBackward;
    private goForward;
    private goToPage;
    private addGlobalListener;
    private removeGlobalListener;
    private refContainer;
    private getPagingSizeClassNames;
    private getDotsIcon;
    private getForwardIcon;
    private getSize;
}
export {};
