import { ServerSideConfig } from "../types";
export declare function useServerSideTable<T>(serverConfig: ServerSideConfig<T>, initialPageSize?: number): {
    data: T[];
    totalCount: number;
    loading: boolean;
    error: string;
    currentPage: number;
    pageSize: number;
    filters: Record<string, any>;
    sorting: {
        field: string | null;
        direction: "asc" | "desc" | null;
    };
    dateRange: {
        field: string | null;
        range: string;
        startDate: string | null;
        endDate: string | null;
    };
    setPage: (page: number) => void;
    setPageSize: (pageSize: number) => void;
    setColumnFilter: (columnId: string, value: any) => void;
    setSorting: (field: string | null, direction: "asc" | "desc" | null) => void;
    setDateRangeFilter: (field: string | null, range: string, startDate?: string, endDate?: string) => void;
    clearAllFilters: () => void;
    refresh: () => void;
    totalPages: number;
    hasNextPage: boolean;
    hasPreviousPage: boolean;
};
