import { HttpClient } from '../common/HttpClient'; import { UrlClass } from './UrlClass'; import { ExportFileTypeValue, GarminDomain, ICalendar, ICountActivities, IGarminTokens, IOauth1Token, IOauth2Token, IScheduleWorkout, ISocialProfile, IUserSettings, IWorkout, IWorkoutDetail, UploadFileTypeTypeValue, GCConfig } from './types'; import { ActivitySubType, ActivityType, GCActivityId, IActivity } from './types/activity'; import { ICourse, ICourseDetail } from './types/course'; import { SleepData } from './types/sleep'; import Running from './workouts/Running'; export interface Session { } export default class GarminConnect { client: HttpClient; domain: GarminDomain; config: GCConfig; private _userHash; private listeners; url: UrlClass; constructor(config: GCConfig, domain?: GarminDomain); login(username?: string, password?: string, sessionId?: string): Promise; exportTokenToFile(dirPath: string): Promise; loadTokenByFile(dirPath: string): Promise; exportToken(): IGarminTokens; loadToken(oauth1: IOauth1Token, oauth2: IOauth2Token): void; getUserSettings(): Promise; getUserProfile(): Promise; getActivities(start?: number, limit?: number, activityType?: ActivityType, subActivityType?: ActivitySubType): Promise; getActivity(activity: { activityId: GCActivityId; }): Promise; countActivities(): Promise; downloadWellnessData(date: Date, dir: string): Promise; downloadOriginalActivityData(activity: { activityId: GCActivityId; }, dir: string, type?: ExportFileTypeValue): Promise; uploadActivity(file: string, format?: UploadFileTypeTypeValue): Promise; deleteActivity(activity: { activityId: GCActivityId; }): Promise; getWorkouts(start: number, limit: number): Promise; getWorkoutDetail(workout: { workoutId: string; }): Promise; addWorkout(workout: IWorkoutDetail | Running): Promise; addRunningWorkout(name: string, meters: number, description: string): Promise; deleteWorkout(workout: { workoutId: string; }): Promise; scheduleWorkout(workout: { workoutId: string; }, date?: Date): Promise; getCalendar(year?: number, month?: number): Promise; getSteps(date?: Date): Promise; getSleepData(date?: Date): Promise; getSleepDuration(date?: Date): Promise<{ hours: number; minutes: number; }>; getDailyWeightData(date?: Date): Promise; getDailyWeightInPounds(date?: Date): Promise; getDailyHydration(date?: Date): Promise; updateWeight(date: Date | undefined, lbs: number, timezone: string): Promise; updateHydrationLogOunces(date: Date | undefined, valueInOz: number): Promise; getGolfSummary(): Promise; getGolfScorecard(scorecardId: number): Promise; getHeartRate(date?: Date): Promise; getCourses(): Promise; getCourse(course: { courseId: number; }): Promise; createCourse(course: ICourseDetail): Promise; consentGrant(): Promise; get(url: string, data?: any): Promise; post(url: string, data: any): Promise; put(url: string, data: any): Promise; }