import { StrapiItem, StrapiAttributes, StrapiListResponse } from '../types/strapi.types';
import { Team, TeamAttributes, TeamsApiResponse, TeamsQueryResult } from '../types/team.types';
/**
 * Normaliza un item de Strapi a un formato plano
 * Combina el id con los attributes en un solo objeto
 */
export declare function normalizeStrаpiItem<TAttributes extends StrapiAttributes, TResult extends {
    id: number;
}>(item: StrapiItem<TAttributes>, transform: (id: number, attributes: TAttributes) => TResult): TResult;
/**
 * Normaliza una lista de items de Strapi
 */
export declare function normalizeStrapiList<TAttributes extends StrapiAttributes, TResult extends {
    id: number;
}>(response: StrapiListResponse<TAttributes>, transform: (id: number, attributes: TAttributes) => TResult): TResult[];
/**
 * Transforma los atributos de un equipo de Strapi a formato normalizado
 */
export declare function transformTeamAttributes(id: number, attributes: TeamAttributes): Team;
/**
 * Normaliza la respuesta completa de equipos de Strapi
 * Incluye datos normalizados y paginación
 */
export declare function normalizeTeamsResponse(response: TeamsApiResponse): TeamsQueryResult;
/**
 * Normaliza una respuesta genérica de Strapi con un transformador personalizado
 */
export declare function createNormalizer<TAttributes extends StrapiAttributes, TResult extends {
    id: number;
}>(transform: (id: number, attributes: TAttributes) => TResult): (response: StrapiListResponse<TAttributes>) => {
    data: TResult[];
    pagination: {
        page: number;
        pageSize: number;
        pageCount: number;
        total: number;
    };
};
//# sourceMappingURL=normalizers.d.ts.map