import { AdvancedFilterConfig } from '../../types/filter';
/**
 * Estado de la tabla que se sincroniza con queries
 */
export interface TableQueryState {
    page: number;
    pageSize: number;
    sortField?: string;
    sortDirection?: 'asc' | 'desc';
    filters: AdvancedFilterConfig[];
    search?: string;
}
/**
 * Acciones para modificar el estado de la tabla
 */
export interface TableQueryActions {
    setPage: (page: number) => void;
    setPageSize: (pageSize: number) => void;
    setSort: (field: string | undefined, direction?: 'asc' | 'desc') => void;
    setFilters: (filters: AdvancedFilterConfig[]) => void;
    addFilter: (filter: AdvancedFilterConfig) => void;
    removeFilter: (filterId: string) => void;
    clearFilters: () => void;
    setSearch: (search: string) => void;
    reset: () => void;
}
/**
 * Opciones iniciales para el estado de la tabla
 */
export interface UseTableQueryStateOptions {
    initialPage?: number;
    initialPageSize?: number;
    initialSortField?: string;
    initialSortDirection?: 'asc' | 'desc';
    initialFilters?: AdvancedFilterConfig[];
    initialSearch?: string;
}
/**
 * Hook para gestionar el estado de la tabla que se sincroniza con TanStack Query
 * Maneja paginación, ordenamiento, filtros y búsqueda
 */
export declare function useTableQueryState(options?: UseTableQueryStateOptions): TableQueryState & TableQueryActions;
/**
 * Hook para convertir el estado de la tabla en columnas con estado de sort/filter
 */
export declare function useColumnsWithQueryState<T extends {
    id: string;
}>(columns: T[], state: Pick<TableQueryState, 'sortField' | 'sortDirection' | 'filters'>): (T & {
    sortDirection: "desc" | "asc" | null | undefined;
    filterActive: boolean;
})[];
//# sourceMappingURL=useTableQuery.d.ts.map