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