import type { WritableComputedRef, Ref, ComputedRef } from 'vue';
import type { VueTypeValidableDef, VueTypeDef } from 'vue-types';
import type { MaybeRef } from '../typings/global';
export declare const PAGE_SIZE_OPTIONS: string[];
export declare const PAGE_SIZE = 20;
export declare const usePaginationProps: {
    defaultPageSize: VueTypeValidableDef<PageSize> & {
        default: PageSize;
    };
    pageSizeOptions: VueTypeValidableDef<string[]> & {
        default: () => string[];
    };
    showTotal: VueTypeValidableDef<(total: number, range?: number[] | undefined) => string> & {
        default: (total: number, range?: number[] | undefined) => string;
    };
    showSizeChanger: VueTypeValidableDef<boolean> & {
        default: boolean;
    } & {
        default: boolean;
    };
    hideOnSinglePage: VueTypeValidableDef<boolean> & {
        default: boolean;
    } & {
        default: boolean;
    };
    prevText: VueTypeValidableDef<string> & {
        default: string;
    } & {
        default: string;
    };
    nextText: VueTypeValidableDef<string> & {
        default: string;
    } & {
        default: string;
    };
    total: VueTypeDef<number> & {
        default: number;
    } & {
        default: number;
    };
};
export declare type PageSize = 20 | 50 | 100 | 200;
declare type Options = {
    current: MaybeRef<number>;
    pageSize: MaybeRef<PageSize>;
    total: MaybeRef<number>;
};
export default function (options?: Options): {
    currentPage: WritableComputedRef<number>;
    pageSize: Ref<PageSize>;
    total: Ref<number>;
    lastPage: ComputedRef<number>;
    changePage: (page: number) => void;
    changePageSize: (current: number, size: PageSize) => void;
    prev: () => void;
    next: () => void;
    first: () => void;
    last: () => void;
};
export {};
