import { Component, ReactElement } from 'react'; import { PaginationButton } from './PaginationButton'; import { PaginationArrowButton } from './PaginationArrowButton'; import type { PaginationPageProps } from './PaginationButton/props'; import type { PaginationArrowDirections } from './PaginationArrowButton/props'; import type { PaginationProps, PaginationSnapshot, ChildPage } from './props'; type ArrowConfig = { pageIndex: number; label: string; shouldEnableIcon: boolean; handleButtonRef: (el: Element | null) => void; }; /** --- category: components --- **/ declare class Pagination extends Component { static readonly componentId = "Pagination"; static propTypes: import("@instructure/shared-types").PropValidators React.ReactNode; screenReaderLabelNumberInput?: (currentPage: number, totalPageNumber: number) => string; screenReaderLabelPageButton?: (currentPage: number, totalPageNumber: number) => string; variant?: "full" | "compact" | "input"; margin?: import("@instructure/emotion").Spacing; as?: import("@instructure/shared-types").AsElementType; elementRef?: (element: Element | null) => void; inputRef?: (inputElement: HTMLInputElement | null) => void; shouldHandleFocus?: boolean; totalPageNumber?: number; currentPage?: number; siblingCount?: number; boundaryCount?: number; onPageChange?: (next: number, prev: number) => void; onMouseEnter?: (page: number) => void; renderPageIndicator?: (pageIndex: number, currentPage: number) => React.ReactNode; ellipsis?: React.ReactNode; }>; static allowedProps: readonly (keyof { children?: ChildPage | ChildPage[]; disabled?: boolean; withFirstAndLastButton?: boolean; showDisabledButtons?: boolean; label?: React.ReactNode; labelNext?: string; labelPrev?: string; labelFirst?: string; labelLast?: string; labelNumberInput?: (totalPageNumber: number) => React.ReactNode; screenReaderLabelNumberInput?: (currentPage: number, totalPageNumber: number) => string; screenReaderLabelPageButton?: (currentPage: number, totalPageNumber: number) => string; variant?: "full" | "compact" | "input"; margin?: import("@instructure/emotion").Spacing; as?: import("@instructure/shared-types").AsElementType; elementRef?: (element: Element | null) => void; inputRef?: (inputElement: HTMLInputElement | null) => void; shouldHandleFocus?: boolean; totalPageNumber?: number; currentPage?: number; siblingCount?: number; boundaryCount?: number; onPageChange?: (next: number, prev: number) => void; onMouseEnter?: (page: number) => void; renderPageIndicator?: (pageIndex: number, currentPage: number) => React.ReactNode; ellipsis?: React.ReactNode; })[]; static defaultProps: { disabled: boolean; withFirstAndLastButton: boolean; showDisabledButtons: boolean; variant: string; as: string; labelNumberInput: (numberOfPages: number) => string; screenReaderLabelNumberInput: (currentPage: number, numberOfPages: number) => string; shouldHandleFocus: boolean; totalPageNumber: number; currentPage: number; siblingCount: number; boundaryCount: number; ellipsis: string; renderPageIndicator: (page: number) => number; margin: string; }; static Page: typeof PaginationButton; static Navigation: typeof PaginationArrowButton; private readonly _labelId; private _firstButton; private _prevButton; private _nextButton; private _lastButton; ref: Element | null; currentPageRef: PaginationButton | null; constructor(props: PaginationProps); get _root(): Element | null; get inputMode(): boolean; get childPages(): ReactElement>[]; get withFirstAndLastButton(): boolean | undefined; get showDisabledButtons(): boolean | undefined; getSnapshotBeforeUpdate(): PaginationSnapshot; componentDidMount(): void; componentDidUpdate(prevProps: PaginationProps, _prevState: unknown, snapshot: PaginationSnapshot): void; focusElementAfterUpdate(snapshot: PaginationSnapshot): void; get compactView(): boolean; transferDisabledPropToChildren(children: PaginationProps['children']): ChildPage | ChildPage[] | undefined; handleElementRef: (el: Element | null) => void; handleInputRef: (el: HTMLInputElement | null) => void; renderLabel(): import("@emotion/react/jsx-runtime").JSX.Element; renderDefaultPageInput: () => import("@emotion/react/jsx-runtime").JSX.Element; renderPageInput(currentPageIndex: number): import("@emotion/react/jsx-runtime").JSX.Element; handleInputChange(event: React.KeyboardEvent | React.MouseEvent | React.FocusEvent, pageIndex: number): void; handleNavigation: (nextIndex: number, previousIndex: number) => void; renderPagesInInterval: (from: number, to: number, currentPage: number) => ReactElement>[]; renderDefaultPages: () => import("@emotion/react/jsx-runtime").JSX.Element; renderPages(currentPageIndex: number): import("@emotion/react/jsx-runtime").JSX.Element; getArrowVariant(direction: PaginationArrowDirections, currentPageIndex: number, pagesCount: number): ArrowConfig; renderDefaultArrowButton: (direction: PaginationArrowDirections) => import("@emotion/react/jsx-runtime").JSX.Element | null; renderArrowButton(direction: PaginationArrowDirections, currentPageIndex: number): import("@emotion/react/jsx-runtime").JSX.Element | null; handleOnMouseEnter: (page: number) => void; render(): import("@emotion/react/jsx-runtime").JSX.Element; } export default Pagination; export { Pagination, PaginationButton }; //# sourceMappingURL=index.d.ts.map