import { type Ref } from 'vue';
export interface UsePagingStatus {
    pagingIndex: number;
    pagingSize: number;
    pagingTotal: number;
    pagingError: string;
    pagingLoading: boolean;
}
export type UsePagingTaskResult<T = any> = {
    pagingList: T[];
    pagingTotal: number;
} | [T[], number];
export interface UsePagingTaskOptions {
    loading?: boolean;
    toast?: boolean;
}
export interface UsePagingTask<T = any> {
    (state: [number, number], options: UsePagingTaskOptions): Promise<UsePagingTaskResult<T>>;
}
export interface UsePagingOptions {
    /**
     * 初始化的状态
     */
    initialStatus?: Partial<UsePagingStatus>;
    /**
     * 是否立即执行 onBeforeMount 执行，默认 false
     */
    immediate?: boolean;
    /**
     * 需要滚动的元素 默认 .hor-scroll
     */
    scrollSelector?: string;
}
export type UsePagingTriggerOptions = ((...args: any[]) => any) | boolean | UsePagingTaskOptions;
export declare function usePaging<T = any>(task: UsePagingTask<T>, options?: UsePagingOptions): {
    pagingFinished: import("vue").ComputedRef<boolean>;
    pagingData: Ref<T[]>;
    pagingStatus: {
        pagingIndex: number;
        pagingSize: number;
        pagingTotal: number;
        pagingError: string;
        pagingLoading: boolean;
    };
    pagingTrigger: (pagingIndex: number, options?: UsePagingTriggerOptions) => void;
    pagingRefresh: (options?: UsePagingTriggerOptions) => void;
    pagingLoad: (options?: UsePagingTriggerOptions) => void;
    pagingReset: () => void;
};
