import { ActivityStatsEntry, ActivitySubType, ActivityType, BodyBatteryDailyEntry, CyclingAbility, IActivity, MaxMetResponse, PowerCurveResponse, PowerToWeightEntry, HRVData, HRVDailySummary, OverviewMetricStatus, PersonalInfoResponse, RacePredictionMonthlyReadable, RunningLactateThreshold, SleepDailyStat, SleepDailySummary, SleepData, TrainingLoadBalanceResponse, TrainingOverview, TrainingOverviewOptions, TrainingStatusData, WellnessOverview, WellnessOverviewOptions } from '../../types'; export interface CoachDateRangeOptions { date?: Date | string; startDate?: Date | string; endDate?: Date | string; recentDays?: number; } export interface WellnessSummaryOptions extends CoachDateRangeOptions { } export interface WellnessSummary { generatedAt: string; range: { startDate: string; endDate: string; }; today: { date: string; hrv: HRVData['hrvSummary'] | null; hrvReadingCount: number; sleep: (Pick & { dailySleepDTO: SleepData['dailySleepDTO'] | null; }) | null; }; recent: { hrv: HRVDailySummary[]; bodyBattery: BodyBatteryDailyEntry[]; sleep: { overall: SleepDailySummary['overallStats'] | null; daily: SleepDailyStat[]; }; }; sourceErrors: Record; } export type CoachApi = { getActivityStats(options: { startDate: Date | string; endDate: Date | string; activityType?: string; }): Promise; getActivities(start?: number, limit?: number, activityType?: ActivityType | string, subActivityType?: ActivitySubType | string, minDistance?: number, maxDistance?: number, excludeChildren?: boolean, startDate?: string, endDate?: string, search?: string): Promise; getActivity(activity: { activityId: number; }): Promise; getCyclingAbility: () => Promise; getHRVData: (date?: Date) => Promise; getHRVDailySummary: (startDate: Date | string, endDate: Date | string) => Promise; getLatestPowerToWeight: (date?: Date | string) => Promise; getMaxMet: (date?: Date | string, sport?: 'cycling' | 'running') => Promise; getPersonalInfo: () => Promise; getPersonalRecordTypes: () => Promise; getPersonalRecords: () => Promise; getActivityLaps: (activity: { activityId: number; }) => Promise<{ activityId: number; lapDTOs: import('../../types').ActivityLap[]; }>; getActivityWeather: (activity: { activityId: number; }) => Promise; getActivityWorkouts: (activity: { activityId: number; }) => Promise; getRacePredictionsMonthly: (fromCalendarDate: Date | string, toCalendarDate: Date | string) => Promise; getRunningLactateThreshold: (startDate: Date | string, endDate: Date | string) => Promise; getTrainingLoadBalance: (date?: Date) => Promise; getTrainingStatus: (date?: Date) => Promise<{ latestTrainingStatusData: Record; }>; getWeeklyTrainingStatus: (startDate: Date, endDate: Date) => Promise<{ reportData: Record; }>; getBodyBattery: (startDate: Date | string, endDate: Date | string) => Promise; getSleepData: (date?: Date) => Promise; getSleepDailySummary: (startDate: Date, endDate: Date) => Promise<{ overallStats: WellnessSummary['recent']['sleep']['overall']; individualStats: WellnessSummary['recent']['sleep']['daily']; }>; }; export type SourceErrors = Record; export declare const addDays: (date: Date, days: number) => Date; export declare const normalizeDate: (date: Date | string | undefined, fallback: Date) => Date; export declare const getRange: (options: WellnessSummaryOptions | WellnessOverviewOptions | TrainingOverviewOptions | CoachDateRangeOptions, defaultDays: number) => { startDate: Date; endDate: Date; startDateString: string; endDateString: string; }; export declare const capture: (name: string, errors: SourceErrors, request: () => Promise) => Promise; export declare const latestActivityStats: (entries: ActivityStatsEntry[]) => ActivityStatsEntry | null; export declare const compactPowerCurve: (powerCurve: PowerCurveResponse | null) => PowerCurveResponse | null; export declare const extractUser: (personalInfo: PersonalInfoResponse | null) => { age: number | undefined; birthDate: string | undefined; gender: string | undefined; height: number | undefined; weight: number | undefined; vo2Max: number | undefined; vo2MaxCycling: number | null | undefined; lactateThresholdHeartRate: number | undefined; activityClass: number | undefined; functionalThresholdPower: number | null | undefined; }; export declare const extractCurrentTrainingStatus: (trainingStatus: { latestTrainingStatusData: Record; } | null) => TrainingStatusData | null; export declare const extractLoadBalance: (loadBalance: TrainingLoadBalanceResponse | null) => TrainingLoadBalanceResponse['metricsTrainingLoadBalanceDTOMap'][string] | null; export declare const extractWeeklyTrainingStatus: (weeklyTrainingStatus: { reportData: Record; } | null) => TrainingStatusData[]; export declare const round: (value: number | null | undefined, digits?: number) => number | null; export declare const lowerSnake: (value: string | null | undefined) => string | null; export declare const normalizeGender: (gender: string | null | undefined) => string | null; export declare const normalizeSport: (sport: string | null | undefined) => string | null; export declare const normalizeStatus: (status: string | number | null | undefined, phrase?: string | null) => string | null; export declare const normalizeTrend: (trend: number | string | null | undefined) => string | null; export declare const metricValue: (entry: ActivityStatsEntry | null, metric: string, field: 'count' | 'sum' | 'avg' | 'max') => number | null; export declare const buildYearStats: (entry: ActivityStatsEntry | null) => { activities: number; distanceKm: number | null; durationH: number | null; elevGainM: number | null; avgHr: number | null; maxHr: number | null; }; export declare const hasSportStats: (entry: ActivityStatsEntry | null) => boolean; export declare const compactRaceTime: (value: string | null | undefined) => string | null; export declare const thresholdPaceFromSpeed: (speed: number | null | undefined) => string | null; export declare const metricStatus: (value: number | null | undefined, min: number | null | undefined, max: number | null | undefined) => OverviewMetricStatus; export declare const compactTrainingStatuses: (weeklyTrainingStatus: { reportData: Record; } | null) => TrainingStatusData[]; export declare const countStatusDays: (entries: TrainingStatusData[]) => Record; export declare const buildTrendLoad: (entries: TrainingStatusData[]) => { chronicStart: number | null; chronicEnd: number | null; maxAcute: number | null; maxAcwr: number | null; }; export declare const buildAiHints: (overview: TrainingOverview) => string[]; export declare const findPowerToWeight: (entries: PowerToWeightEntry[] | null, sport: string) => PowerToWeightEntry | null; export declare const loadBalanceTuple: (value: number | null | undefined, min: number | null | undefined, max: number | null | undefined) => [number | null, number | null, number | null, OverviewMetricStatus]; export declare const toMinutes: (seconds: number | null | undefined) => number | null; export declare const compactLower: (value: string | null | undefined) => string | null; export declare const numericValues: (values: Array) => number[]; export declare const average: (values: Array, digits?: number) => number | null; export declare const minimum: (values: Array) => number | null; export declare const maximum: (values: Array) => number | null; export declare const availability: (hasAny: boolean, hasToday: boolean) => 'available' | 'partial' | 'no_data'; export declare const buildUnavailableMetrics: (metricAvailability: WellnessOverview['availability']) => string[]; export declare const buildIncludedMetrics: (metricAvailability: WellnessOverview['availability']) => string[]; export declare const statusDaysFromHrv: (entries: HRVDailySummary[]) => Record; export declare const hrvTrend: (entries: HRVDailySummary[]) => string | null; export declare const sleepTrend: (avgScore: number | null, todayDurationMin: number | null, todayNeedMin: number | null, todayQuality: string | null) => string | null; export declare const bodyBatteryTrend: (avgHigh: number | null, minLow: number | null, latestLow: number | null) => string | null; export declare const buildReadiness: (overview: WellnessOverview) => WellnessOverview['readiness']; export declare const buildWellnessAiHints: (overview: WellnessOverview) => string[];