import { StrapiAttributes, StrapiListResponse } from './strapi.types';
/**
 * Atributos de un equipo en Strapi
 */
export interface TeamAttributes extends StrapiAttributes {
    nombre: string;
    color: string;
}
/**
 * Respuesta de la API de equipos (formato Strapi)
 */
export type TeamsApiResponse = StrapiListResponse<TeamAttributes>;
/**
 * Equipo normalizado (formato plano para usar en la tabla)
 */
export interface Team {
    id: number;
    nombre: string;
    color: string;
    createdAt: Date;
    updatedAt: Date;
}
/**
 * Parámetros para la query de equipos
 */
export interface TeamsQueryParams {
    page?: number;
    pageSize?: number;
    sortField?: string;
    sortDirection?: 'asc' | 'desc';
    filters?: TeamFilter[];
    search?: string;
}
/**
 * Filtro individual para equipos
 */
export interface TeamFilter {
    field: keyof Team | string;
    operator: TeamFilterOperator;
    value: unknown;
    value2?: unknown;
    logicOperator?: 'and' | 'or';
}
/**
 * Operadores de filtro disponibles para equipos
 */
export type TeamFilterOperator = 'equals' | 'notEquals' | 'contains' | 'notContains' | 'startsWith' | 'endsWith' | 'gt' | 'gte' | 'lt' | 'lte' | 'between' | 'in' | 'isEmpty' | 'isNotEmpty' | 'afterDate' | 'beforeDate' | 'thisMonth' | 'lastMonth' | 'thisYear' | 'lastYear';
/**
 * Resultado normalizado de la query de equipos
 */
export interface TeamsQueryResult {
    data: Team[];
    pagination: {
        page: number;
        pageSize: number;
        pageCount: number;
        total: number;
    };
}
//# sourceMappingURL=team.types.d.ts.map