import { UseQueryOptions } from '@tanstack/react-query';
import { UpdateTeamData } from '../api/teams.api';
import { TeamsQueryParams, TeamsQueryResult, Team } from '../types/team.types';
import { AdvancedFilterConfig } from '../../types/filter';
/**
 * Hook para obtener la lista de equipos con TanStack Query
 */
export declare function useTeams(params?: TeamsQueryParams, options?: Omit<UseQueryOptions<TeamsQueryResult, Error>, 'queryKey' | 'queryFn'>): import('@tanstack/react-query').UseQueryResult<TeamsQueryResult, Error>;
/**
 * Hook para obtener equipos con filtros avanzados del FilterPopup
 */
export declare function useTeamsWithFilters(advancedFilters: AdvancedFilterConfig[], params?: Omit<TeamsQueryParams, 'filters'>, options?: Omit<UseQueryOptions<TeamsQueryResult, Error>, 'queryKey' | 'queryFn'>): import('@tanstack/react-query').UseQueryResult<TeamsQueryResult, Error>;
/**
 * Hook que combina la tabla con TanStack Query
 * Gestiona automáticamente paginación, ordenamiento y filtros
 */
export interface UseTeamsTableOptions {
    page?: number;
    pageSize?: number;
    sortField?: string;
    sortDirection?: 'asc' | 'desc';
    filters?: AdvancedFilterConfig[];
    search?: string;
    enabled?: boolean;
}
export declare function useTeamsTable(options?: UseTeamsTableOptions): {
    data: Team[];
    pagination: {
        page: number;
        pageSize: number;
        pageCount: number;
        total: number;
    } | null;
    isLoading: boolean;
    isFetching: boolean;
    isError: boolean;
    error: Error | null;
    isSuccess: boolean;
    isPlaceholderData: boolean;
    refetch: () => Promise<void>;
    prefetchNextPage: () => void;
    query: import('@tanstack/react-query').UseQueryResult<TeamsQueryResult, Error>;
};
/**
 * Hook para invalidar el cache de equipos
 */
export declare function useInvalidateTeams(): {
    invalidateAll: () => Promise<void>;
    invalidateLists: () => Promise<void>;
};
/**
 * Variables para la mutación de actualización
 */
export interface UpdateTeamVariables {
    id: number;
    data: UpdateTeamData;
}
type OptimisticContext = {
    previousData: [readonly unknown[], unknown][];
};
/**
 * Hook para actualizar un equipo con optimistic updates
 */
export declare function useUpdateTeam(): import('@tanstack/react-query').UseMutationResult<Team, Error, UpdateTeamVariables, OptimisticContext>;
/**
 * Hook para actualizar solo el nombre de un equipo con optimistic updates
 */
export declare function useUpdateTeamName(): import('@tanstack/react-query').UseMutationResult<Team, Error, {
    id: number;
    nombre: string;
}, OptimisticContext>;
export {};
//# sourceMappingURL=useTeams.d.ts.map