export declare function usePaginationState(params: UsePaginationParams): UsePaginationReturn;
export declare function checkDisabled(range: [number, number], total: number): {
    prevDisabled: boolean;
    nextDisabled: boolean;
};
export declare function setMax(value: number, max: number): number;
export declare function getState(page: number, pageSize: number, total: number): PaginationState;
export declare function defaultReducer(state: PaginationState, action: PaginationAction): PaginationState;
export declare type PaginationActionType = {
    type: 'next' | 'prev' | 'reset';
} | {
    type: 'setTotal';
    total: number;
} | {
    type: 'navigate';
    page: number;
};
export interface UsePaginationParams {
    /**
     * Amount of itens that will be displayed in a page
     */
    pageSize: number;
    /**
     * Total of items that are being paginated
     * @default pageSize
     */
    total?: number;
    /**
     * Initial page
     * @default 1
     */
    initialPage?: number;
    /**
     * Reducer used to handle state in usePagination hook
     */
    stateReducer?: (state: PaginationState, action: PaginationAction) => PaginationState;
}
export interface PaginationState {
    currentPage: number;
    range: [number, number];
    total: number;
    prevDisabled: boolean;
    nextDisabled: boolean;
}
export declare type PaginationAction = PaginationActionType & {
    pageSize: number;
};
export interface UsePaginationReturn extends PaginationState {
    paginate: (args: PaginationActionType) => void;
}
