@gooin/garmin-connect
Version:
Makes it simple to interface with Garmin Connect to get or set any data point
167 lines (166 loc) • 4.73 kB
TypeScript
export interface SleepDTO {
id: number;
userProfilePK: number;
calendarDate: string;
sleepTimeSeconds: number;
napTimeSeconds: number;
sleepWindowConfirmed: boolean;
sleepWindowConfirmationType: string;
sleepStartTimestampGMT: number;
sleepEndTimestampGMT: number;
sleepStartTimestampLocal: number;
sleepEndTimestampLocal: number;
autoSleepStartTimestampGMT: number | null;
autoSleepEndTimestampGMT: number | null;
sleepQualityTypePK: number | null;
sleepResultTypePK: number | null;
unmeasurableSleepSeconds: number;
deepSleepSeconds: number;
lightSleepSeconds: number;
remSleepSeconds: number;
awakeSleepSeconds: number;
deviceRemCapable: boolean;
retro: boolean;
sleepFromDevice: boolean;
averageRespirationValue: number;
lowestRespirationValue: number;
highestRespirationValue: number;
awakeCount: number;
avgSleepStress: number;
ageGroup: string;
sleepScoreFeedback: string;
sleepScoreInsight: string;
sleepScores: {
totalDuration: {
qualifierKey: string;
optimalStart: number;
optimalEnd: number;
};
stress: {
qualifierKey: string;
optimalStart: number;
optimalEnd: number;
};
awakeCount: {
qualifierKey: string;
optimalStart: number;
optimalEnd: number;
};
overall: {
value: number;
qualifierKey: string;
};
remPercentage: {
value: number;
qualifierKey: string;
optimalStart: number;
optimalEnd: number;
idealStartInSeconds: number;
idealEndInSeconds: number;
};
restlessness: {
qualifierKey: string;
optimalStart: number;
optimalEnd: number;
};
lightPercentage: {
value: number;
qualifierKey: string;
optimalStart: number;
optimalEnd: number;
idealStartInSeconds: number;
idealEndInSeconds: number;
};
deepPercentage: {
value: number;
qualifierKey: string;
optimalStart: number;
optimalEnd: number;
idealStartInSeconds: number;
idealEndInSeconds: number;
};
};
sleepVersion: number;
}
export interface SleepMovement {
startGMT: string;
endGMT: string;
activityLevel: number;
}
export interface SleepLevels {
startGMT: string;
endGMT: string;
activityLevel: number;
}
export interface WellnessEpochRespirationDataDTO {
startTimeGMT: number;
respirationValue: number;
}
export interface SleepHeartRate {
value: number;
startGMT: number;
}
export interface SleepBodyBattery {
value: number;
startGMT: number;
}
export interface SleepData {
dailySleepDTO: SleepDTO;
sleepMovement: SleepMovement[];
remSleepData: boolean;
sleepLevels: SleepLevels[];
restlessMomentsCount: number;
wellnessEpochRespirationDataDTOList: WellnessEpochRespirationDataDTO[];
sleepHeartRate: SleepHeartRate[];
sleepBodyBattery: SleepBodyBattery[];
avgOvernightHrv: number;
hrvStatus: string;
bodyBatteryChange: number;
restingHeartRate: number;
}
export interface SleepOverallStats {
averageSpO2: number | null;
meanAvgHeartRate: number | null;
averageLocalSleepStartTime: number;
averageRespiration: number;
averageBodyBatteryChange: number;
averageSkinTempF: number | null;
averageSleepScore: number;
averageLocalSleepEndTime: number;
averageSkinTempC: number | null;
averageSleepSeconds: number;
averageSleepNeed: number;
averageRestingHeartRate: number;
}
export interface SleepDailyValues {
remTime: number;
restingHeartRate: number;
totalSleepTimeInSeconds: number;
respiration: number;
localSleepEndTimeInMillis: number;
deepTime: number;
awakeTime: number;
sleepScoreQuality: string;
spO2: number | null;
localSleepStartTimeInMillis: number;
sleepNeed: number;
bodyBatteryChange: number;
gmtSleepStartTimeInMillis: number;
gmtSleepEndTimeInMillis: number;
hrvStatus: string;
skinTempF: number | null;
sleepScore: number;
skinTempC: number | null;
lightTime: number;
avgOvernightHrv: number | null;
avgHeartRate: number | null;
hrv7dAverage: number | null;
}
export interface SleepDailyStat {
calendarDate: string;
values: SleepDailyValues;
}
export interface SleepDailySummary {
overallStats: SleepOverallStats;
individualStats: SleepDailyStat[];
}