import type { Ref } from 'vue';
export interface DataTableOptions {
    apiResource: string;
    queryParams?: Record<string, any>;
    pageSize?: number;
    autoFetch?: boolean;
}
export interface PaginationState {
    currentPage: number;
    itemsPerPage: number;
    totalItems: number;
    totalPages: number;
}
export declare function useDataTable<T = any>(options: DataTableOptions): {
    items: Ref<T[], T[]>;
    loading: Ref<boolean, boolean>;
    error: Ref<string, string>;
    hasMore: Ref<boolean, boolean>;
    isLoadingMore: Ref<boolean, boolean>;
    pagination: Ref<{
        currentPage: number;
        itemsPerPage: number;
        totalItems: number;
        totalPages: number;
    }, PaginationState | {
        currentPage: number;
        itemsPerPage: number;
        totalItems: number;
        totalPages: number;
    }>;
    fetchData: (params?: Record<string, any>) => Promise<any>;
    loadMore: () => Promise<void>;
    setPage: (page: number) => void;
    setItemsPerPage: (size: number) => void;
};
//# sourceMappingURL=useDataTable.d.ts.map