@sports-alliance/sports-lib
Version:
A Library to for importing / exporting and processing GPX, TCX, FIT and JSON files from services such as Strava, Movescount, Garmin, Polar etc
55 lines (54 loc) • 2.2 kB
TypeScript
import { TrainingStressScoreMethod } from '../../../data/data.training-stress-score-method';
export interface TssSample {
duration: number;
power?: number | null;
speed?: number | null;
verticalSpeed?: number | null;
grade?: number | null;
hr?: number | null;
}
export interface TssInput {
totalDurationWithoutPauses: number;
functionalThresholdPower?: number;
normalizedPower?: number;
functionalThresholdPace?: number;
lactateThresholdHR?: number;
maxHeartRate?: number;
restingHeartRate?: number;
swimSpeed?: number;
thresholdSwimSpeed?: number;
metScore?: number;
thresholdMet?: number;
gender?: string;
samples: TssSample[];
}
export interface TssCalculationResult {
calculationMethod: typeof TrainingStressScoreMethod.POWER | typeof TrainingStressScoreMethod.HR | typeof TrainingStressScoreMethod.PACE | typeof TrainingStressScoreMethod.SWIM_PACE | typeof TrainingStressScoreMethod.MET;
trainingStressScore: number;
intensityFactor?: number;
normalizedPower?: number;
averageGradeAdjustedPace?: number;
}
export declare class TssCalculator {
private static readonly TSS_MIN;
private static readonly TSS_MAX;
static estimateMetScore(energyConsumption: number, userWeight: number, totalDurationWithoutPauses: number): number;
static calculatePowerTss(input: TssInput): TssCalculationResult | null;
static calculatePaceTss(input: TssInput): TssCalculationResult | null;
static calculateHrTss(input: TssInput): TssCalculationResult | null;
static calculateSwimTss(input: TssInput): TssCalculationResult | null;
static calculateMetTss(input: TssInput): TssCalculationResult | null;
private static calculateBanisterHrTss;
private static calculateEdwardsHrTss;
private static accumulateSampleLoad;
private static resolveBanisterThresholdDhr;
private static resolveEdwardsThresholdRatio;
private static edwardsZoneWeight;
private static resolveSampleGrade;
private static runningCostMinetti;
private static isFemale;
private static applyRangeCheck;
private static average;
private static positive;
private static clamp;
}