import { PropTypes } from '@zag-js/react';
import { ReactNode } from 'react';
import * as pagination from '@zag-js/pagination';
export interface PaginationContextState<T extends PropTypes = PropTypes> {
    type: pagination.Props['type'];
    pagination: pagination.Api<T> & {
        getFirstPageTriggerProps: () => ReturnType<pagination.Api<T>['getPrevTriggerProps']> & {
            'data-part': string;
            onClick: () => void;
        };
        getLastPageTriggerProps: () => ReturnType<pagination.Api<T>['getNextTriggerProps']> & {
            'data-part': string;
            onClick: () => void;
        };
    };
}
export interface PaginationProviderProps {
    children: ReactNode;
    /**
     * Total number of data items available across all pages.
     */
    count: number;
    /**
     * Maximum amount of items displayed on a single page.
     */
    pageSize: number;
    /**
     * Number of visible pages (or ellipsis) between previous and next page triggers.
     */
    visiblePageItems?: number;
    /**
     * The current page (active page)
     */
    page?: pagination.Props['page'];
    /**
     * If your pagination contains buttons instead of links, set `type` to `button`, extra attributes will be applied on page items for a11y.
     */
    type?: pagination.Props['type'];
    onPageChange?: pagination.Props['onPageChange'];
    noEllipsis?: boolean;
}
export declare const PaginationProvider: ({ children, count, visiblePageItems, pageSize, page, onPageChange, noEllipsis, type, }: PaginationProviderProps) => import("react/jsx-runtime").JSX.Element;
export declare const usePagination: () => PaginationContextState<PropTypes>;
