UNPKG

age-grade-tables

Version:

Age grading tables for races like Ironman in compact array format

40 lines 1.71 kB
import { AgeGradeCompactEntry, AgeGradeObjectEntry } from './types'; /** * Get age grade factor for a specific age and gender * @param table - Age grade table in array format * @param gender - Athlete gender ('M' or 'F') * @param age - Athlete age * @returns Age grade factor or null if not found */ export declare function getFactorByAgeAndGender(table: AgeGradeCompactEntry[] | AgeGradeObjectEntry[], gender: string, age: number): number | null; /** * Creates a fast lookup map for bulk age grade factor retrieval * @param table - Age grade table in array or object format * @returns Map with key format: "gender_age" -> factor */ export declare function createAgeGradeLookup(table: AgeGradeCompactEntry[] | AgeGradeObjectEntry[]): Map<string, number>; /** * Get age grade factor for a single athlete using a pre-built lookup map * @param lookup - Pre-built lookup map from createAgeGradeLookup * @param gender - Athlete gender ('M' or 'F') * @param age - Athlete age * @returns Age grade factor or null if not found */ export declare function getFactorFromLookup(lookup: Map<string, number>, gender: string, age: number): number | null; /** * Process multiple athletes efficiently using a pre-built lookup map * @param lookup - Pre-built lookup map from createAgeGradeLookup * @param athletes - Array of athletes with age and gender * @returns Array of athletes with their age grade factors */ export declare function processAthletesBulk(lookup: Map<string, number>, athletes: Array<{ age: number; gender: string; [key: string]: any; }>): Array<{ age: number; gender: string; factor: number | null; [key: string]: any; }>; //# sourceMappingURL=helpers.d.ts.map