export interface ParsedElement { [key: string]: any; message_index?: Record; } export interface ParsedTimestampableElement extends ParsedElement { timestamp: string; } export interface ParsedLap extends ParsedTimestampableElement { records?: ParsedTimestampableElement[]; lengths?: ParsedTimestampableElement[]; } export interface ParsedActivity extends ParsedTimestampableElement { sessions?: ParsedSession[]; events?: ParsedTimestampableElement[]; hrv?: ParsedHrv[]; device_infos?: ParsedTimestampableElement[]; developer_data_ids?: any[]; field_descriptions?: any[]; sports?: ParsedElement[]; } export interface ParsedSession extends ParsedTimestampableElement { laps?: ParsedLap[]; } export interface ParsedHrv { time: number[]; } export interface ParsedFit { protocolVersion: number; profileVersion: number; software?: unknown; user_profile: ParsedElement; laps?: ParsedLap[]; records?: ParsedTimestampableElement[]; sessions?: ParsedSession[]; activity: ParsedActivity; lengths?: ParsedElement[]; events?: ParsedTimestampableElement[]; device_infos?: ParsedTimestampableElement[]; developer_data_ids?: ParsedElement[]; field_descriptions?: ParsedElement[]; hrv?: ParsedHrv[]; hr_zone?: ParsedElement[]; power_zone?: ParsedElement[]; dive_gases?: ParsedTimestampableElement[]; course_points?: ParsedElement[]; sports?: ParsedElement[]; devices?: ParsedElement[]; monitors?: ParsedElement[]; stress?: ParsedElement[]; file_ids?: ParsedElement[]; monitor_info?: ParsedElement[]; definitions?: ParsedElement[]; tank_updates?: ParsedElement[]; tank_summaries?: ParsedElement[]; }