export declare type TCreatePaginationProps = {
    pagesLength: number;
    onChange: (pages: TPages) => void;
    currentPage?: number;
};
export declare type TPages = {
    currentPage: number;
    pages: {
        action: string | null;
        value: number | string;
        isActive?: boolean;
    }[];
};
export default function createPagination({ pagesLength, currentPage, onChange }: TCreatePaginationProps): {
    setPage: (n: number) => {
        currentPage: number;
        pages: ({
            action: string;
            value: string;
        } | {
            isActive: boolean;
            action: string;
            value: any;
        } | {
            action: string;
            value: number;
        } | {
            action: null;
            value: string;
        })[];
    };
    setPagesLength: (newPagesLength: number, newCurrentPage: number) => {
        currentPage: number;
        pages: ({
            action: string;
            value: string;
        } | {
            isActive: boolean;
            action: string;
            value: any;
        } | {
            action: string;
            value: number;
        } | {
            action: null;
            value: string;
        })[];
    };
    getPages: () => {
        currentPage: number;
        pages: ({
            action: string;
            value: string;
        } | {
            isActive: boolean;
            action: string;
            value: any;
        } | {
            action: string;
            value: number;
        } | {
            action: null;
            value: string;
        })[];
    };
    getCurrentPage: () => number;
    nextPage: () => {
        currentPage: number;
        pages: ({
            action: string;
            value: string;
        } | {
            isActive: boolean;
            action: string;
            value: any;
        } | {
            action: string;
            value: number;
        } | {
            action: null;
            value: string;
        })[];
    };
    previousPage: () => {
        currentPage: number;
        pages: ({
            action: string;
            value: string;
        } | {
            isActive: boolean;
            action: string;
            value: any;
        } | {
            action: string;
            value: number;
        } | {
            action: null;
            value: string;
        })[];
    };
    firstPage: () => {
        currentPage: number;
        pages: ({
            action: string;
            value: string;
        } | {
            isActive: boolean;
            action: string;
            value: any;
        } | {
            action: string;
            value: number;
        } | {
            action: null;
            value: string;
        })[];
    };
    lastPage: () => {
        currentPage: number;
        pages: ({
            action: string;
            value: string;
        } | {
            isActive: boolean;
            action: string;
            value: any;
        } | {
            action: string;
            value: number;
        } | {
            action: null;
            value: string;
        })[];
    };
};
