@gooin/garmin-connect 1.7.6 → 1.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (132) hide show
  1. package/dist/common/FileMFASessionStorage.js +1 -247
  2. package/dist/common/HttpClient copy.js +1 -361
  3. package/dist/common/HttpClient.d.ts +1 -0
  4. package/dist/common/HttpClient.js +1 -612
  5. package/dist/common/HttpClient.js.map +1 -1
  6. package/dist/common/HttpClientOLD.js +1 -361
  7. package/dist/common/HttpClientOLDV1.js +1 -361
  8. package/dist/common/HttpClientV1.js +1 -577
  9. package/dist/common/MFAManager.js +1 -126
  10. package/dist/common/MFASessionStorage.js +1 -3
  11. package/dist/common/RedisMFASessionStorage.js +1 -281
  12. package/dist/common/RedisMFASessionStorage.js.map +1 -1
  13. package/dist/garmin/GarminConnect.d.ts +243 -66
  14. package/dist/garmin/GarminConnect.js +1 -592
  15. package/dist/garmin/GarminConnect.js.map +1 -1
  16. package/dist/garmin/UrlClass.d.ts +21 -0
  17. package/dist/garmin/UrlClass.js +1 -149
  18. package/dist/garmin/UrlClass.js.map +1 -1
  19. package/dist/garmin/common/DateUtils.d.ts +1 -0
  20. package/dist/garmin/common/DateUtils.js +1 -38
  21. package/dist/garmin/common/DateUtils.js.map +1 -1
  22. package/dist/garmin/common/HydrationUtils.js +1 -16
  23. package/dist/garmin/common/WeightUtils.js +1 -9
  24. package/dist/garmin/modules/activity/base.d.ts +39 -0
  25. package/dist/garmin/modules/activity/base.js +1 -0
  26. package/dist/garmin/modules/activity/base.js.map +1 -0
  27. package/dist/garmin/modules/activity/cycling.d.ts +16 -0
  28. package/dist/garmin/modules/activity/cycling.js +1 -0
  29. package/dist/garmin/modules/activity/cycling.js.map +1 -0
  30. package/dist/garmin/modules/activity/running.d.ts +15 -0
  31. package/dist/garmin/modules/activity/running.js +1 -0
  32. package/dist/garmin/modules/activity/running.js.map +1 -0
  33. package/dist/garmin/modules/activity/training-status.d.ts +13 -0
  34. package/dist/garmin/modules/activity/training-status.js +1 -0
  35. package/dist/garmin/modules/activity/training-status.js.map +1 -0
  36. package/dist/garmin/modules/coach/activity-summary.d.ts +20 -0
  37. package/dist/garmin/modules/coach/activity-summary.js +1 -0
  38. package/dist/garmin/modules/coach/activity-summary.js.map +1 -0
  39. package/dist/garmin/modules/coach/helpers.d.ts +157 -0
  40. package/dist/garmin/modules/coach/helpers.js +1 -0
  41. package/dist/garmin/modules/coach/helpers.js.map +1 -0
  42. package/dist/garmin/modules/coach/training-overview.d.ts +5 -0
  43. package/dist/garmin/modules/coach/training-overview.js +1 -0
  44. package/dist/garmin/modules/coach/training-overview.js.map +1 -0
  45. package/dist/garmin/modules/coach/wellness-overview.d.ts +5 -0
  46. package/dist/garmin/modules/coach/wellness-overview.js +1 -0
  47. package/dist/garmin/modules/coach/wellness-overview.js.map +1 -0
  48. package/dist/garmin/modules/coach/wellness-summary.d.ts +4 -0
  49. package/dist/garmin/modules/coach/wellness-summary.js +1 -0
  50. package/dist/garmin/modules/coach/wellness-summary.js.map +1 -0
  51. package/dist/garmin/modules/coach.d.ts +60 -0
  52. package/dist/garmin/modules/coach.js +1 -0
  53. package/dist/garmin/modules/coach.js.map +1 -0
  54. package/dist/garmin/modules/course.d.ts +27 -0
  55. package/dist/garmin/modules/course.js +1 -0
  56. package/dist/garmin/modules/course.js.map +1 -0
  57. package/dist/garmin/modules/device.d.ts +11 -0
  58. package/dist/garmin/modules/device.js +1 -0
  59. package/dist/garmin/modules/device.js.map +1 -0
  60. package/dist/garmin/modules/misc.d.ts +18 -0
  61. package/dist/garmin/modules/misc.js +1 -0
  62. package/dist/garmin/modules/misc.js.map +1 -0
  63. package/dist/garmin/modules/types.d.ts +10 -0
  64. package/dist/garmin/modules/types.js +1 -0
  65. package/dist/garmin/modules/types.js.map +1 -0
  66. package/dist/garmin/modules/user.d.ts +18 -0
  67. package/dist/garmin/modules/user.js +1 -0
  68. package/dist/garmin/modules/user.js.map +1 -0
  69. package/dist/garmin/modules/wellness/body-battery.d.ts +11 -0
  70. package/dist/garmin/modules/wellness/body-battery.js +1 -0
  71. package/dist/garmin/modules/wellness/body-battery.js.map +1 -0
  72. package/dist/garmin/modules/wellness/heart-rate.d.ts +11 -0
  73. package/dist/garmin/modules/wellness/heart-rate.js +1 -0
  74. package/dist/garmin/modules/wellness/heart-rate.js.map +1 -0
  75. package/dist/garmin/modules/wellness/hrv.d.ts +12 -0
  76. package/dist/garmin/modules/wellness/hrv.js +1 -0
  77. package/dist/garmin/modules/wellness/hrv.js.map +1 -0
  78. package/dist/garmin/modules/wellness/hydration.d.ts +12 -0
  79. package/dist/garmin/modules/wellness/hydration.js +1 -0
  80. package/dist/garmin/modules/wellness/hydration.js.map +1 -0
  81. package/dist/garmin/modules/wellness/sleep.d.ts +16 -0
  82. package/dist/garmin/modules/wellness/sleep.js +1 -0
  83. package/dist/garmin/modules/wellness/sleep.js.map +1 -0
  84. package/dist/garmin/modules/wellness/weight.d.ts +20 -0
  85. package/dist/garmin/modules/wellness/weight.js +1 -0
  86. package/dist/garmin/modules/wellness/weight.js.map +1 -0
  87. package/dist/garmin/modules/workout.d.ts +23 -0
  88. package/dist/garmin/modules/workout.js +1 -0
  89. package/dist/garmin/modules/workout.js.map +1 -0
  90. package/dist/garmin/types/activity-stats.d.ts +21 -0
  91. package/dist/garmin/types/activity-stats.js +1 -0
  92. package/dist/garmin/types/activity-stats.js.map +1 -0
  93. package/dist/garmin/types/activity.js +1 -27
  94. package/dist/garmin/types/body-battery.d.ts +7 -0
  95. package/dist/garmin/types/body-battery.js +1 -0
  96. package/dist/garmin/types/body-battery.js.map +1 -0
  97. package/dist/garmin/types/coach.d.ts +533 -0
  98. package/dist/garmin/types/coach.js +1 -0
  99. package/dist/garmin/types/coach.js.map +1 -0
  100. package/dist/garmin/types/course.d.ts +3 -11
  101. package/dist/garmin/types/course.js +1 -3
  102. package/dist/garmin/types/cycling.d.ts +70 -0
  103. package/dist/garmin/types/cycling.js +1 -0
  104. package/dist/garmin/types/cycling.js.map +1 -0
  105. package/dist/garmin/types/device.d.ts +32 -0
  106. package/dist/garmin/types/device.js +1 -0
  107. package/dist/garmin/types/device.js.map +1 -0
  108. package/dist/garmin/types/golf.d.ts +4 -4
  109. package/dist/garmin/types/golf.js +1 -3
  110. package/dist/garmin/types/golf.js.map +1 -1
  111. package/dist/garmin/types/heartrate.d.ts +3 -3
  112. package/dist/garmin/types/heartrate.js +1 -2
  113. package/dist/garmin/types/hrv.d.ts +3 -0
  114. package/dist/garmin/types/hrv.js +1 -3
  115. package/dist/garmin/types/hydration.d.ts +3 -3
  116. package/dist/garmin/types/hydration.js +1 -2
  117. package/dist/garmin/types/index.d.ts +15 -0
  118. package/dist/garmin/types/index.js +1 -36
  119. package/dist/garmin/types/index.js.map +1 -1
  120. package/dist/garmin/types/personal-info.js +1 -3
  121. package/dist/garmin/types/race-prediction.d.ts +50 -0
  122. package/dist/garmin/types/race-prediction.js +1 -0
  123. package/dist/garmin/types/race-prediction.js.map +1 -0
  124. package/dist/garmin/types/sleep.js +1 -3
  125. package/dist/garmin/types/training-status.js +1 -3
  126. package/dist/garmin/types/weight.d.ts +46 -4
  127. package/dist/garmin/types/weight.js +1 -3
  128. package/dist/garmin/workouts/Running.js +1 -47
  129. package/dist/garmin/workouts/templates/RunningTemplate.js +1 -78
  130. package/dist/index.js +1 -11
  131. package/dist/utils.js +1 -37
  132. package/package.json +4 -3
@@ -1,16 +1,9 @@
1
1
  import { HttpClient } from '../common/HttpClient';
2
2
  import { UrlClass } from './UrlClass';
3
- import { ExportFileTypeValue, GarminDomain, ICalendar, ICountActivities, IGarminTokens, IOauth1Token, IOauth2Token, IScheduleWorkout, ISocialProfile, IUserSettings, IWorkout, IWorkoutDetail, UploadFileTypeTypeValue, GCConfig } from './types';
4
- import { ActivitySubType, ActivityType, GCActivityId, IActivity } from './types/activity';
5
- import { ICourse, ICourseDetail } from './types/course';
6
- import { SleepData, SleepDailySummary } from './types/sleep';
7
- import { HRVData } from './types/hrv';
8
- import { LatestTrainingStatusResponse, TrainingLoadBalanceResponse, WeeklyTrainingStatusResponse } from './types/training-status';
9
- import { PersonalInfoResponse } from './types/personal-info';
10
- import Running from './workouts/Running';
3
+ import { GarminDomain, IGarminTokens, IOauth1Token, IOauth2Token, ISocialProfile, GCConfig } from './types';
11
4
  export interface Session {
12
5
  }
13
- export default class GarminConnect {
6
+ declare class GarminConnectBase {
14
7
  client: HttpClient;
15
8
  domain: GarminDomain;
16
9
  config: GCConfig;
@@ -18,66 +11,250 @@ export default class GarminConnect {
18
11
  private listeners;
19
12
  url: UrlClass;
20
13
  constructor(config: GCConfig, domain?: GarminDomain);
21
- login(username?: string, password?: string, sessionId?: string): Promise<GarminConnect>;
14
+ login(username?: string, password?: string, sessionId?: string): Promise<this>;
22
15
  exportTokenToFile(dirPath: string): Promise<void>;
23
16
  loadTokenByFile(dirPath: string): Promise<void>;
24
17
  exportToken(): IGarminTokens;
25
18
  loadToken(oauth1: IOauth1Token, oauth2: IOauth2Token): void;
26
- getUserSettings(): Promise<IUserSettings>;
27
19
  getUserProfile(): Promise<ISocialProfile>;
28
- getActivities(start?: number, limit?: number, activityType?: ActivityType, subActivityType?: ActivitySubType): Promise<IActivity[]>;
29
- getActivity(activity: {
30
- activityId: GCActivityId;
31
- }): Promise<IActivity>;
32
- countActivities(): Promise<ICountActivities>;
33
- downloadWellnessData(date: Date, dir: string): Promise<void>;
34
- downloadOriginalActivityData(activity: {
35
- activityId: GCActivityId;
36
- }, dir: string, type?: ExportFileTypeValue): Promise<void>;
37
- uploadActivity(file: string, format?: UploadFileTypeTypeValue): Promise<unknown>;
38
- deleteActivity(activity: {
39
- activityId: GCActivityId;
40
- }): Promise<void>;
41
- getWorkouts(start: number, limit: number): Promise<IWorkout[]>;
42
- getWorkoutDetail(workout: {
43
- workoutId: string;
44
- }): Promise<IWorkoutDetail>;
45
- addWorkout(workout: IWorkoutDetail | Running): Promise<IWorkoutDetail>;
46
- addRunningWorkout(name: string, meters: number, description: string): Promise<IWorkoutDetail>;
47
- deleteWorkout(workout: {
48
- workoutId: string;
49
- }): Promise<unknown>;
50
- scheduleWorkout(workout: {
51
- workoutId: string;
52
- }, date?: Date): Promise<IScheduleWorkout>;
53
- getCalendar(year?: number, month?: number): Promise<ICalendar>;
54
- getSteps(date?: Date): Promise<number>;
55
- getSleepData(date?: Date): Promise<SleepData>;
56
- getSleepDuration(date?: Date): Promise<{
57
- hours: number;
58
- minutes: number;
59
- }>;
60
- getSleepDailySummary(startDate: Date, endDate: Date): Promise<SleepDailySummary>;
61
- getHRVData(date?: Date): Promise<HRVData>;
62
- getTrainingStatus(date?: Date): Promise<LatestTrainingStatusResponse>;
63
- getTrainingLoadBalance(date?: Date): Promise<TrainingLoadBalanceResponse>;
64
- getWeeklyTrainingStatus(startDate: Date, endDate: Date): Promise<WeeklyTrainingStatusResponse>;
65
- getPersonalInfo(): Promise<PersonalInfoResponse>;
66
- getDailyWeightData(date?: Date): Promise<WeightData>;
67
- getDailyWeightInPounds(date?: Date): Promise<number>;
68
- getDailyHydration(date?: Date): Promise<number>;
69
- updateWeight(date: Date | undefined, lbs: number, timezone: string): Promise<UpdateWeight>;
70
- updateHydrationLogOunces(date: Date | undefined, valueInOz: number): Promise<WaterIntake>;
71
- getGolfSummary(): Promise<GolfSummary>;
72
- getGolfScorecard(scorecardId: number): Promise<GolfScorecard>;
73
- getHeartRate(date?: Date): Promise<HeartRate>;
74
- getCourses(): Promise<ICourse[]>;
75
- getCourse(course: {
76
- courseId: number;
77
- }): Promise<ICourseDetail>;
78
- createCourse(course: ICourseDetail): Promise<ICourseDetail>;
79
- consentGrant(): Promise<void>;
80
- get<T>(url: string, data?: any): Promise<T>;
81
- post<T>(url: string, data: any): Promise<T>;
82
- put<T>(url: string, data: any): Promise<T>;
83
20
  }
21
+ declare const WithUser: {
22
+ new (...args: any[]): {
23
+ getUserSettings(): Promise<import("./types").IUserSettings>;
24
+ getPersonalInfo(): Promise<import("./types").PersonalInfoResponse>;
25
+ getPersonalRecordTypes(): Promise<import("./types").PersonalRecordType[]>;
26
+ getPersonalRecords(): Promise<import("./types").PersonalRecord[]>;
27
+ getDisplayName(): Promise<string>;
28
+ client: HttpClient;
29
+ url: UrlClass;
30
+ domain: GarminDomain;
31
+ getUserProfile(): Promise<ISocialProfile>;
32
+ };
33
+ };
34
+ declare const WithSleep: {
35
+ new (...args: any[]): {
36
+ getSleepData(date?: Date): Promise<import("./types").SleepData>;
37
+ getSleepDuration(date?: Date): Promise<{
38
+ hours: number;
39
+ minutes: number;
40
+ }>;
41
+ getSleepDailySummary(startDate: Date, endDate: Date): Promise<import("./types").SleepDailySummary>;
42
+ client: HttpClient;
43
+ url: UrlClass;
44
+ domain: GarminDomain;
45
+ getUserProfile(): Promise<ISocialProfile>;
46
+ };
47
+ };
48
+ declare const WithHRV: {
49
+ new (...args: any[]): {
50
+ getHRVData(date?: Date): Promise<import("./types").HRVData>;
51
+ getHRVDailySummary(startDate: string | Date, endDate: string | Date): Promise<import("./types").HRVDailySummary[]>;
52
+ client: HttpClient;
53
+ url: UrlClass;
54
+ domain: GarminDomain;
55
+ getUserProfile(): Promise<ISocialProfile>;
56
+ };
57
+ };
58
+ declare const WithWeight: {
59
+ new (...args: any[]): {
60
+ getDailyWeightData(date?: Date): Promise<import("./types").WeightData>;
61
+ getDailyWeightInPounds(date?: Date): Promise<number>;
62
+ getWeightRange(startDate: string | Date, endDate: string | Date, includeAll?: boolean): Promise<import("./types").WeightRangeData>;
63
+ buildFitbitWeightCsv(weightData: import("./types").WeightRangeData): string;
64
+ getFitbitWeightCsv(startDate: string | Date, endDate: string | Date, includeAll?: boolean): Promise<string>;
65
+ downloadFitbitWeightCsv(startDate: string | Date, endDate: string | Date, file: string, includeAll?: boolean): Promise<void>;
66
+ getUploadFeature(feature?: string): Promise<unknown>;
67
+ uploadFitbitWeightCsv(file: string): Promise<import("./types").FitbitCsvUploadResponse>;
68
+ getFitbitWeightUploadStatus(owner: number, date: string | Date, uploadUuid: string): Promise<import("./types").FitbitCsvUploadResponse>;
69
+ updateWeight(date: Date | undefined, lbs: number, timezone: string): Promise<import("./types").UpdateWeight>;
70
+ client: HttpClient;
71
+ url: UrlClass;
72
+ domain: GarminDomain;
73
+ getUserProfile(): Promise<ISocialProfile>;
74
+ };
75
+ };
76
+ declare const WithHydration: {
77
+ new (...args: any[]): {
78
+ getDailyHydration(date?: Date): Promise<number>;
79
+ updateHydrationLogOunces(date: Date | undefined, valueInOz: number): Promise<import("./types").WaterIntake>;
80
+ client: HttpClient;
81
+ url: UrlClass;
82
+ domain: GarminDomain;
83
+ getUserProfile(): Promise<ISocialProfile>;
84
+ };
85
+ };
86
+ declare const WithBodyBattery: {
87
+ new (...args: any[]): {
88
+ getBodyBattery(startDate: string | Date, endDate: string | Date): Promise<import("./types").BodyBatteryDailyEntry[]>;
89
+ client: HttpClient;
90
+ url: UrlClass;
91
+ domain: GarminDomain;
92
+ getUserProfile(): Promise<ISocialProfile>;
93
+ };
94
+ };
95
+ declare const WithHeartRate: {
96
+ new (...args: any[]): {
97
+ getHeartRate(date?: Date): Promise<import("./types").HeartRate>;
98
+ client: HttpClient;
99
+ url: UrlClass;
100
+ domain: GarminDomain;
101
+ getUserProfile(): Promise<ISocialProfile>;
102
+ };
103
+ };
104
+ declare const WithActivityBase: {
105
+ new (...args: any[]): {
106
+ getActivities(start?: number | undefined, limit?: number | undefined, activityType?: import("./types").ActivityType | undefined, subActivityType?: import("./types").ActivitySubType | undefined): Promise<import("./types").IActivity[]>;
107
+ getActivity(activity: {
108
+ activityId: number;
109
+ }): Promise<import("./types").IActivity>;
110
+ getActivityLaps(activity: {
111
+ activityId: number;
112
+ }): Promise<{
113
+ activityId: number;
114
+ lapDTOs: import("./types").ActivityLap[];
115
+ }>;
116
+ getActivityWeather(activity: {
117
+ activityId: number;
118
+ }): Promise<import("./types").ActivityWeather>;
119
+ getActivityWorkouts(activity: {
120
+ activityId: number;
121
+ }): Promise<import("./types").ActivityWorkout[]>;
122
+ countActivities(): Promise<import("./types").ICountActivities>;
123
+ getActivityStats(options: import("./types").ActivityStatsOptions): Promise<import("./types").ActivityStatsEntry[]>;
124
+ downloadWellnessData(date: Date, dir: string): Promise<void>;
125
+ downloadOriginalActivityData(activity: {
126
+ activityId: number;
127
+ }, dir: string, type?: "tcx" | "gpx" | "kml" | "zip"): Promise<void>;
128
+ uploadActivity(file: string, format?: "tcx" | "gpx" | "fit"): Promise<unknown>;
129
+ deleteActivity(activity: {
130
+ activityId: number;
131
+ }): Promise<void>;
132
+ getSteps(date?: Date): Promise<number>;
133
+ client: HttpClient;
134
+ url: UrlClass;
135
+ domain: GarminDomain;
136
+ getUserProfile(): Promise<ISocialProfile>;
137
+ };
138
+ };
139
+ declare const WithRunning: {
140
+ new (...args: any[]): {
141
+ getRacePredictionsMonthly(fromCalendarDate: string | Date, toCalendarDate: string | Date): Promise<import("./types").RacePredictionMonthlyReadable[]>;
142
+ getLactateThresholdSpeedRange(startDate: string | Date, endDate: string | Date): Promise<import("./types").BiometricStatRangeEntry[]>;
143
+ getLactateThresholdHeartRateRange(startDate: string | Date, endDate: string | Date): Promise<import("./types").BiometricStatRangeEntry[]>;
144
+ getLatestLactateThreshold(): Promise<import("./types").LatestLactateThresholdEntry[]>;
145
+ getRunningLactateThreshold(startDate: string | Date, endDate: string | Date): Promise<import("./types").RunningLactateThreshold>;
146
+ client: HttpClient;
147
+ url: UrlClass;
148
+ domain: GarminDomain;
149
+ getUserProfile(): Promise<ISocialProfile>;
150
+ };
151
+ };
152
+ declare const WithCycling: {
153
+ new (...args: any[]): {
154
+ getLatestPowerToWeight(date?: string | Date): Promise<import("./types").PowerToWeightEntry[]>;
155
+ getPowerToWeightRange(startDate: string | Date, endDate: string | Date, aggregation?: "monthly" | "weekly", sport?: "running" | "cycling"): Promise<import("./types").BiometricStatRangeEntry[]>;
156
+ getCyclingAbility(): Promise<import("./types").CyclingAbility | null>;
157
+ getPowerCurve(sport?: "running" | "cycling", startDate?: string | Date | undefined, endDate?: string | Date | undefined): Promise<import("./types").PowerCurveResponse>;
158
+ getMaxMet(date?: string | Date, sport?: "running" | "cycling" | undefined): Promise<import("./types").MaxMetResponse | null>;
159
+ client: HttpClient;
160
+ url: UrlClass;
161
+ domain: GarminDomain;
162
+ getUserProfile(): Promise<ISocialProfile>;
163
+ };
164
+ };
165
+ declare const WithTrainingStatus: {
166
+ new (...args: any[]): {
167
+ getTrainingStatus(date?: Date): Promise<import("./types").LatestTrainingStatusResponse>;
168
+ getTrainingLoadBalance(date?: Date): Promise<import("./types").TrainingLoadBalanceResponse>;
169
+ getWeeklyTrainingStatus(startDate: Date, endDate: Date): Promise<import("./types").WeeklyTrainingStatusResponse>;
170
+ client: HttpClient;
171
+ url: UrlClass;
172
+ domain: GarminDomain;
173
+ getUserProfile(): Promise<ISocialProfile>;
174
+ };
175
+ };
176
+ declare const WithDevice: {
177
+ new (...args: any[]): {
178
+ getPrimaryWearableDevice(): Promise<import("./types").PrimaryWearableDevice | null>;
179
+ client: HttpClient;
180
+ url: UrlClass;
181
+ domain: GarminDomain;
182
+ getUserProfile(): Promise<ISocialProfile>;
183
+ };
184
+ };
185
+ declare const WithWorkout: {
186
+ new (...args: any[]): {
187
+ getWorkouts(start: number, limit: number): Promise<import("./types").IWorkout[]>;
188
+ getWorkoutDetail(workout: {
189
+ workoutId: string;
190
+ }): Promise<import("./types").IWorkoutDetail>;
191
+ addWorkout(workout: import("./types").IWorkoutDetail | import("./workouts/Running").default): Promise<import("./types").IWorkoutDetail>;
192
+ addRunningWorkout(name: string, meters: number, description: string): Promise<import("./types").IWorkoutDetail>;
193
+ deleteWorkout(workout: {
194
+ workoutId: string;
195
+ }): Promise<unknown>;
196
+ scheduleWorkout(workout: {
197
+ workoutId: string;
198
+ }, date?: Date): Promise<import("./types").IScheduleWorkout>;
199
+ client: HttpClient;
200
+ url: UrlClass;
201
+ domain: GarminDomain;
202
+ getUserProfile(): Promise<ISocialProfile>;
203
+ };
204
+ };
205
+ declare const WithCourse: {
206
+ new (...args: any[]): {
207
+ getCourses(): Promise<import("./types").ICourse[]>;
208
+ getCourse(course: {
209
+ courseId: number;
210
+ }): Promise<import("./types").ICourseDetail>;
211
+ downloadCourseFit(course: {
212
+ courseId: number;
213
+ }, dir: string, elevation?: boolean): Promise<void>;
214
+ downloadCourseGpx(course: {
215
+ courseId: number;
216
+ }, dir: string): Promise<void>;
217
+ importCourse(file: string): Promise<unknown>;
218
+ confirmCourseImport(course: unknown): Promise<import("./types").ICourseDetail>;
219
+ deleteCourse(course: {
220
+ courseId: number;
221
+ }): Promise<void>;
222
+ createCourse(course: import("./types").ICourseDetail): Promise<import("./types").ICourseDetail>;
223
+ client: HttpClient;
224
+ url: UrlClass;
225
+ domain: GarminDomain;
226
+ getUserProfile(): Promise<ISocialProfile>;
227
+ };
228
+ };
229
+ declare const WithMisc: {
230
+ new (...args: any[]): {
231
+ getCalendar(year?: number, month?: number): Promise<import("./types").ICalendar>;
232
+ getGolfSummary(): Promise<import("./types").GolfSummary>;
233
+ getGolfScorecard(scorecardId: number): Promise<import("./types").GolfScorecard>;
234
+ consentGrant(): Promise<void>;
235
+ get<T>(url: string, data?: any): Promise<T>;
236
+ post<T_1>(url: string, data: any): Promise<T_1>;
237
+ put<T_2>(url: string, data: any): Promise<T_2>;
238
+ client: HttpClient;
239
+ url: UrlClass;
240
+ domain: GarminDomain;
241
+ getUserProfile(): Promise<ISocialProfile>;
242
+ };
243
+ };
244
+ declare const WithCoach: {
245
+ new (...args: any[]): {
246
+ getTrainingOverview(options?: import("./types").TrainingOverviewOptions): Promise<import("./types").TrainingOverview>;
247
+ getWellnessOverview(options?: import("./types").WellnessOverviewOptions): Promise<import("./types").WellnessOverview>;
248
+ getActivitiesSummary(options?: import("./types").ActivitiesSummaryOptions): Promise<import("./types").ActivitiesSummary>;
249
+ getActivityDetailSummary(options: number | import("./types").ActivityDetailSummaryOptions): Promise<import("./types").ActivityDetailSummary>;
250
+ client: HttpClient;
251
+ url: UrlClass;
252
+ domain: GarminDomain;
253
+ getUserProfile(): Promise<ISocialProfile>;
254
+ };
255
+ };
256
+ export interface GarminConnect extends GarminConnectBase, InstanceType<typeof WithUser>, InstanceType<typeof WithSleep>, InstanceType<typeof WithHRV>, InstanceType<typeof WithWeight>, InstanceType<typeof WithHydration>, InstanceType<typeof WithBodyBattery>, InstanceType<typeof WithHeartRate>, InstanceType<typeof WithActivityBase>, InstanceType<typeof WithRunning>, InstanceType<typeof WithCycling>, InstanceType<typeof WithTrainingStatus>, InstanceType<typeof WithDevice>, InstanceType<typeof WithWorkout>, InstanceType<typeof WithCourse>, InstanceType<typeof WithMisc>, InstanceType<typeof WithCoach> {
257
+ }
258
+ export declare class GarminConnect extends WithCoach {
259
+ }
260
+ export default GarminConnect;