import { ReadStream } from "fs"; //#region src/models/achievement.d.ts interface Achievement { type_id: number; type: string; rank: number; } //#endregion //#region src/models/activityStats.d.ts interface ActivityStats { biggest_ride_distance: number; biggest_climb_elevation_gain: number; recent_ride_totals: ActivityTotal; recent_run_totals: ActivityTotal; recent_swim_totals: ActivityTotal; ytd_ride_totals: ActivityTotal; ytd_run_totals: ActivityTotal; ytd_swim_totals: ActivityTotal; all_ride_totals: ActivityTotal; all_run_totals: ActivityTotal; all_swim_totals: ActivityTotal; } //#endregion //#region src/models/activityTotal.d.ts interface ActivityTotal { count: number; distance: number; moving_time: number; elapsed_time: number; elevation_gain: number; achievement_count: number; } //#endregion //#region src/enums/activityType.d.ts type ActivityType = 'AlpineSki' | 'BackcountrySki' | 'Canoeing' | 'Crossfit' | 'EBikeRide' | 'Elliptical' | 'Golf' | 'Handcycle' | 'Hike' | 'IceSkate' | 'InlineSkate' | 'Kayaking' | 'Kitesurf' | 'NordicSki' | 'Ride' | 'RockClimbing' | 'RollerSki' | 'Rowing' | 'Run' | 'Sail' | 'Skateboard' | 'Snowboard' | 'Snowshoe' | 'Soccer' | 'StairStepper' | 'StandUpPaddling' | 'Surfing' | 'Swim' | 'Velomobile' | 'VirtualRide' | 'VirtualRun' | 'Walk' | 'WeightTraining' | 'Wheelchair' | 'Windsurf' | 'Workout' | 'Yoga'; //#endregion //#region src/enums/activityZoneType.d.ts declare enum ActivityZoneType { Heartrate = "heartrate", Power = "power", } //#endregion //#region src/enums/followerStatus.d.ts declare enum FollowerStatus { Pending = "pending", Accepted = "accepted", Blocked = "blocked", } //#endregion //#region src/enums/membership.d.ts declare enum Membership { Member = "member", Pending = "pending", } //#endregion //#region src/enums/resourceState.d.ts declare enum ResourceState { Meta = 1, Summary = 2, Detail = 3, } //#endregion //#region src/enums/routeType.d.ts declare enum RouteType { Ride = 1, Run = 2, } //#endregion //#region src/enums/routeSubType.d.ts declare enum RouteSubType { Road = 1, MountainBike = 2, Cross = 3, Trail = 4, Mixed = 5, } //#endregion //#region src/enums/sex.d.ts declare enum Sex { Female = "F", Male = "M", } //#endregion //#region src/enums/sportType.d.ts type SportType = 'AlpineSki' | 'BackcountrySki' | 'Canoeing' | 'Crossfit' | 'EBikeRide' | 'Elliptical' | 'EMountainBikeRide' | 'Golf' | 'GravelRide' | 'Handcycle' | 'Hike' | 'IceSkate' | 'InlineSkate' | 'Kayaking' | 'Kitesurf' | 'MountainBikeRide' | 'NordicSki' | 'Ride' | 'RockClimbing' | 'RollerSki' | 'Rowing' | 'Run' | 'Sail' | 'Skateboard' | 'Snowboard' | 'Snowshoe' | 'Soccer' | 'StairStepper' | 'StandUpPaddling' | 'Surfing' | 'Swim' | 'TrailRun' | 'Velomobile' | 'VirtualRide' | 'VirtualRun' | 'Walk' | 'WeightTraining' | 'Wheelchair' | 'Windsurf' | 'Workout' | 'Yoga'; //#endregion //#region src/enums/streamKeys.d.ts type StreamKeys = 'time' | 'distance' | 'latlng' | 'altitude' | 'velocity_smooth' | 'heartrate' | 'cadence' | 'watts' | 'temp' | 'moving' | 'grade_smooth'; //#endregion //#region src/enums/unitSystem.d.ts declare enum UnitSystem { Feet = "feet", Meters = "meters", } //#endregion //#region src/models/activityZone.d.ts interface ActivityZone { score: number; distribution_buckets: TimedZoneRange[]; type: ActivityZoneType; sensor_based: boolean; points: number; custom_zones: boolean; max: number; } //#endregion //#region src/models/comment.d.ts interface Comment { id: number; activity_id: number; text: string; athlete: SummaryAthlete; created_at: string; } //#endregion //#region src/models/detailedActivity.d.ts interface DetailedActivity { resource_state: ResourceState; athlete: MetaAthlete; name: string; distance: number; moving_time: number; elapsed_time: number; total_elevation_gain: number; type: ActivityType; sport_type: SportType; workout_type: number; id: number; external_id: string; upload_id: number; start_date: string; start_date_local: string; timezone: string; utc_offset: number; start_latlng: LatLng; end_latlng: LatLng; location_city: string; location_state: string; location_country: string; start_latitude: number; start_longitude: number; achievement_count: number; kudos_count: number; comment_count: number; athlete_count: number; photo_count: number; map: PolylineMap; trainer: boolean; commute: boolean; manual: boolean; private: boolean; visibility: string; flagged: boolean; gear_id: string; from_accepted_tag: boolean; upload_id_str: string; average_speed: number; max_speed: number; has_heartrate: boolean; average_heartrate: number; max_heartrate: number; heartrate_opt_out: boolean; display_hide_heartrate_option: boolean; elev_high: number; elev_low: number; pr_count: number; total_photo_count: number; has_kudoed: boolean; description: string; calories: number; perceived_exertion: string; prefer_perceived_exertion: string; segment_efforts: DetailedSegmentEffort[]; splits_metric: Split[]; splits_standard: Split[]; laps: Lap[]; best_efforts: DetailedSegmentEffort[]; gear: SummaryGear; photos: PhotoSummary; device_name: string; embed_token: string; similar_activities: SimilarActivity; available_zones: ActivityZone[]; average_cadence: number; average_watts: number; device_watts: boolean; kilojoules: number; max_watts: number; suffer_score: number; private_note: string; } //#endregion //#region src/models/detailedAthlete.d.ts interface DetailedAthlete { id: number; resource_state: ResourceState; firstname: string; lastname: string; profile_medium: string; profile: string; city: string; state: string; country: string; sex: string; friend: FollowerStatus; follower: FollowerStatus; premium: boolean; created_at: string; updated_at: string; follower_count: number; friend_count: number; mutual_friend_count: number; measurement_preference: UnitSystem; email: string; ftp: number; weight: number; clubs: SummaryClub[]; bikes: SummaryGear[]; shoes: SummaryGear[]; } //#endregion //#region src/models/detailedClub.d.ts interface DetailedClub { id: number; resource_state: ResourceState; name: string; profile_medium: string; cover_photo: string; cover_photo_small: string; activity_types: ActivityType; city: string; state: string; country: string; private: boolean; member_count: number; featured: boolean; verified: boolean; url: string; membership: Membership; admin: boolean; owner: boolean; following_count: number; } //#endregion //#region src/models/detailedGear.d.ts interface DetailedGear { id: string; resource_state: ResourceState; primary: boolean; name: string; distance: number; brand_name: string; model_name: string; frame_type: number; description: string; } //#endregion //#region src/models/detailedSegment.d.ts declare enum ActivityType$3 { Ride = "Ride", Run = "Run", } interface DetailedSegment { id: number; name: string; activity_type: ActivityType$3; distance: number; average_grade: number; maximum_grade: number; elevation_high: number; elevation_low: number; start_latlng: LatLng; end_latlng: LatLng; climb_category: number; city: string; state: string; country: string; private: boolean; athlete_pr_effort: SummarySegmentEffort; athlete_segment_stats: SummaryPRSegmentEffort; created_at: string; updated_at: string; total_elevation_gain: number; map: PolylineMap; effort_count: number; athlete_count: number; hazardous: boolean; star_count: number; } //#endregion //#region src/models/detailedSegmentEffort.d.ts interface DetailedSegmentEffort { id: number; resource_state: ResourceState; name: string; activity: MetaActivity; athlete: MetaAthlete; elapsed_time: number; moving_time: number; start_date: string; start_date_local: string; distance: number; start_index: number; end_index: number; pr_rank: string; achievements: Achievement[]; } //#endregion //#region src/models/explorerResponse.d.ts interface ExplorerResponse { segments: ExplorerSegment[]; } //#endregion //#region src/models/explorerSegment.d.ts declare enum ClimbCategoryDesc { NC = "NC", ONE = "1", TWO = "2", THREE = "3", FOUR = "4", HC = "HC", } interface ExplorerSegment { id: number; name: string; climb_category: number; climb_category_desc: ClimbCategoryDesc; avg_grade: number; start_latlng: LatLng; end_latlng: LatLng; elev_difference: number; distance: number; points: string; } //#endregion //#region src/models/heartRateZoneRanges.d.ts interface HeartRateZoneRanges { custom_zones: boolean; zones: ZoneRange[]; } //#endregion //#region src/models/lap.d.ts interface Lap { id: number; resource_state: ResourceState; name: string; activity: MetaActivity; athlete: MetaAthlete; elapsed_time: number; moving_time: number; start_date: string; start_date_local: string; distance: number; start_index: number; end_index: number; total_elevation_gain: number; average_speed: number; max_speed: number; average_heartrate: number; max_heartrate: number; lap_index: number; split: number; pace_zone: number; } //#endregion //#region src/models/metaActivity.d.ts interface MetaActivity { id: number; resource_state: ResourceState; } //#endregion //#region src/models/metaAthlete.d.ts interface MetaAthlete { id: number; resource_state: ResourceState; } //#endregion //#region src/models/photoSummary.d.ts interface PhotoSummary { count: number; primary: PhotoSummaryPrimary; } //#endregion //#region src/models/photoSummaryPrimary.d.ts interface PhotoSummaryPrimary { id: number; source: number; unique_id: string; urls: string; } //#endregion //#region src/models/polylineMap.d.ts interface PolylineMap { id: string; polyline: string; resource_state: ResourceState; summary_polyline: string; } //#endregion //#region src/models/powerZoneRanges.d.ts interface PowerZoneRanges { zones: ZoneRange[]; } //#endregion //#region src/models/runningRace.d.ts interface RunningRace { id: number; name: string; running_race_type: number; distance: number; start_date_local: string; city: string; state: string; country: string; route_ids: number[]; measurement_preference: UnitSystem; url: string; website_url: string; } //#endregion //#region src/models/route.d.ts interface Route { athlete: SummaryAthlete; description: string; distance: number; elevation_gain: number; id: number; id_srt: string; map: PolylineMap; name: string; private: boolean; starred: boolean; timestamp: number; type: RouteType; sub_type: RouteSubType; created_at: string; updated_at: string; estimated_moving_time: number; segments: SummarySegment[]; } //#endregion //#region src/models/similarActivitity.d.ts interface SimilarActivity { effort_count: number; average_speed: number; min_average_speed: number; mid_average_speed: number; max_average_speed: number; pr_rank: string; frequency_milestone: string; trend: { speeds: number[]; current_activity_index: number; min_speed: number; mid_speed: number; max_speed: number; direction: number; }; resource_state: ResourceState; } //#endregion //#region src/models/split.d.ts interface Split { distance: number; elapsed_time: number; elevation_difference: number; moving_time: number; split: number; average_speed: number; average_grade_adjusted_speed: number; average_heartrate: number; pace_zone: number; } //#endregion //#region src/models/stream.d.ts interface BaseStream { type: StreamKey; original_size: number; resolution: 'low' | 'medium' | 'high'; series_type: 'distance' | 'time'; data: Data[]; } type Stream = BaseStream<'time' | 'distance' | 'altitude' | 'velocity_smooth' | 'heartrate' | 'cadence' | 'watts' | 'temp' | 'moving' | 'grade_smooth', number>; type LatLngStream = BaseStream<'latlng', LatLng>; //#endregion //#region src/models/streamSet.d.ts interface StreamSet { time: Stream; distance: Stream; latlng: LatLngStream; altitude: Stream; velocity_smooth: Stream; heartrate: Stream; cadence: Stream; watts: Stream; temp: Stream; moving: Stream; grade_smooth: Stream; } //#endregion //#region src/models/subscriptionEvent.d.ts interface SubscriptionEvent { object_type: 'activity' | 'athlete'; object_id: number; aspect_type: 'create' | 'update' | 'delete'; updates: { title?: string; type?: ActivityType; private?: boolean; authorized?: false; }; owner_id: number; subscription_id: number; event_time: number; } //#endregion //#region src/models/summaryActivity.d.ts interface SummaryActivity { resource_state: ResourceState; athlete: MetaAthlete; name: string; distance: number; moving_time: number; elapsed_time: number; total_elevation_gain: number; type: ActivityType; workout_type: number; id: number; external_id: string; upload_id: number; start_date: string; start_date_local: string; timezone: string; utc_offset: number; start_latlng: LatLng; end_latlng: LatLng; location_city: string; location_state: string; location_country: string; start_latitude: number; start_longitude: number; achievement_count: number; kudos_count: number; comment_count: number; athlete_count: number; photo_count: number; map: PolylineMap; trainer: boolean; commute: boolean; manual: boolean; private: boolean; visibility: string; flagged: boolean; gear_id: string; from_accepted_tag: boolean; upload_id_str: string; average_speed: number; max_speed: number; average_cadence: number; average_temp: number; average_watts: number; weighted_average_watts: number; kilojoules: number; device_watts: boolean; has_heartrate: boolean; average_heartrate: number; max_heartrate: number; heartrate_opt_out: boolean; display_hide_heartrate_option: boolean; max_watts: number; elev_high: number; elev_low: number; pr_count: number; total_photo_count: number; has_kudoed: boolean; suffer_score: number; } //#endregion //#region src/models/summaryAthlete.d.ts interface SummaryAthlete { id: number; resource_state: ResourceState; firstname: string; lastname: string; profile_medium: string; profile: string; city: string; state: string; country: string; sex: Sex; friend: string; follower: string; premium: boolean; created_at: string; updated_at: string; } //#endregion //#region src/models/summaryClub.d.ts interface SummaryClub { id: number; resource_state: ResourceState; name: string; profile_medium: string; cover_photo: string; cover_photo_small: string; sport_type: SportType; city: string; state: string; country: string; private: boolean; member_count: number; featured: boolean; verified: boolean; url: string; } //#endregion //#region src/models/summaryGear.d.ts interface SummaryGear { id: string; primary: boolean; name: string; resource_state: ResourceState; distance: number; } //#endregion //#region src/models/summarySegment.d.ts declare enum ActivityType$2 { Ride = "Ride", Run = "Run", } interface SummarySegment { id: number; name: string; activity_type: ActivityType$2; distance: number; average_grade: number; maximum_grade: number; elevation_high: number; elevation_low: number; start_latlng: LatLng; end_latlng: LatLng; climb_category: number; city: string; state: string; country: string; private: boolean; athlete_pr_effort: SummarySegmentEffort; } //#endregion //#region src/models/summaryPRSegmentEffort.d.ts interface SummaryPRSegmentEffort { pr_activity_id: number; pr_elapsed_time: number; pr_date: string; effort_count: number; } //#endregion //#region src/models/summarySegmentEffort.d.ts interface SummarySegmentEffort { id: number; elapsed_time: number; start_date: string; start_date_local: string; distance: number; is_kom: boolean; } //#endregion //#region src/models/timedZoneRange.d.ts interface TimedZoneRange { min: number; max: number; time: number; } //#endregion //#region src/models/upload.d.ts interface Upload { id: number; id_str: string; external_id: string; error: string; status: string; activity_id: number; } //#endregion //#region src/models/zoneRange.d.ts interface ZoneRange { min: number; max: number; } //#endregion //#region src/models/zones.d.ts interface Zones { heart_rate: HeartRateZoneRanges; power: PowerZoneRanges; } //#endregion //#region src/types.d.ts interface AppConfig { client_id: string; client_secret: string; on_token_refresh?: (token: RefreshTokenResponse) => void; on_rate_limit_update?: RateLimitCallback; } interface RefreshTokenRequest extends AppConfig { refresh_token: string; } interface AccessToken { access_token: string; expires_at: number; refresh_token?: string; } interface RefreshTokenResponse extends AccessToken { expires_in: number; /** The athlete is only provided on the initial request */ athlete?: SummaryAthlete; } /** * Latitude, Longitude */ type LatLng = [number, number]; /** * Strava API Rate Limit Information */ interface RateLimit { /** 15-minute limit */ shortTermLimit: number; /** Daily limit */ longTermLimit: number; /** Current 15-minute usage */ shortTermUsage: number; /** Current daily usage */ longTermUsage: number; /** Timestamp when the rate limit was last updated */ timestamp: number; } /** * Callback function for rate limit updates */ type RateLimitCallback = (rateLimit: RateLimit) => void; //#endregion //#region src/resources/oauth.d.ts declare class Oauth { refreshTokens(token: RefreshTokenRequest): Promise; static tokenExchange(config: AppConfig, code: string): Promise; private static oauthRequest; } //#endregion //#region src/request.d.ts type RequestParams = { query?: Record; body?: Record | any; headers?: Record; access_token?: string; }; type HttpMethod = 'get' | 'post' | 'put' | 'delete' | 'patch'; declare class StravaApiError extends Error { status: number; statusText: string; data?: any | undefined; constructor(status: number, statusText: string, data?: any | undefined); } declare class Request { readonly config: RefreshTokenRequest; private token?; private static readonly TOKEN_EXPIRY_BUFFER_SECONDS; readonly oauth: Oauth; private rateLimit; constructor(config: RefreshTokenRequest, token?: AccessToken | undefined); private getAccessToken; private updateRateLimitFromHeaders; /** * Get the current rate limit information * @returns Current rate limit information or null if not available yet */ getRateLimit(): RateLimit | null; makeApiRequest(method: HttpMethod, uri: string, params?: RequestParams): Promise; } //#endregion //#region src/resources/activities.d.ts type CreateActivityRequest = { name: string; sport_type: ActivityType; start_date_local: string; elapsed_time: number; description?: string; distance?: number; trainer?: number; commute?: number; }; type GetActivityByIdRequest = { id: number; include_all_efforts?: boolean; }; type GetCommentsByActivityIdRequest = { id: number; page?: number; page_size?: number; after_cursor?: string; }; type GetKudoersByActivityIdRequest = { id: number; page?: number; per_page?: number; }; type GetLapsByActivityIdRequest = { id: number; }; type GetZonesByActivityIdRequest = { id: number; }; type GetLoggedInAthleteActivitiesRequest = { before?: number; after?: number; page?: number; per_page?: number; }; type UpdateActivityByIdRequest = { id: number; name?: string; sport_type?: ActivityType; start_date_local?: string; elapsed_time?: number; description?: string; distance?: number; trainer?: number; commute?: number; }; declare class Activities { private readonly request; constructor(request: Request); createActivity(params: CreateActivityRequest, access_token?: string): Promise; getActivityById(params: GetActivityByIdRequest, access_token?: string): Promise; getCommentsByActivityId(params: GetCommentsByActivityIdRequest, access_token?: string): Promise; getKudoersByActivityId(params: GetKudoersByActivityIdRequest, access_token?: string): Promise; getLapsByActivityId(params: GetLapsByActivityIdRequest): Promise; getLoggedInAthleteActivities(params?: GetLoggedInAthleteActivitiesRequest): Promise; getZonesByActivityId(params: GetZonesByActivityIdRequest, access_token?: string): Promise; updateActivityById(params: UpdateActivityByIdRequest, access_token?: string): Promise; } //#endregion //#region src/resources/athletes.d.ts type GetStatsRequest = { id: number; }; type UpdateLoggedInAthleteRequest = { weight: number; }; declare class Athletes { private readonly request; constructor(request: Request); getLoggedInAthlete(access_token?: string): Promise; getLoggedInAthleteZones(access_token?: string): Promise; getStats(params: GetStatsRequest, access_token?: string): Promise; updateLoggedInAthlete(params: UpdateLoggedInAthleteRequest, access_token?: string): Promise; } //#endregion //#region src/resources/clubs.d.ts type GetClubActivitiesByIdRequest = { id: number; page?: number; per_page?: number; }; type GetClubAdminsByIdRequest = { id: number; page?: number; per_page?: number; }; type GetClubByIdRequest = { id: number; }; type GetClubMembersByIdRequest = { id: number; page?: number; per_page?: number; }; type GetLoggedInAthleteClubsRequest = { page?: number; per_page?: number; }; declare class Clubs { private readonly request; constructor(request: Request); getClubActivitiesById(params: GetClubActivitiesByIdRequest, access_token?: string): Promise; getClubAdminsById(params: GetClubAdminsByIdRequest, access_token?: string): Promise; getClubById(params: GetClubByIdRequest): Promise; getClubMembersById(params: GetClubMembersByIdRequest, access_token?: string): Promise; getLoggedInAthleteClubs(params?: GetLoggedInAthleteClubsRequest, access_token?: string): Promise; } //#endregion //#region src/resources/gears.d.ts type GetGearByIdRequest = { id: number; }; declare class Gears { private readonly request; constructor(request: Request); getGearById(params: GetGearByIdRequest, access_token?: string): Promise; } //#endregion //#region src/resources/routes.d.ts type GetRouteAsGPXRequest = { id: number; }; type GetRouteAsTCXRequest = { id: number; }; type GetRouteByIdRequest = { id: number; }; type GetRoutesByAthleteIdRequest = { id: number; page?: number; per_page?: number; }; declare class Routes { private readonly request; constructor(request: Request); getRouteAsGPX(params: GetRouteAsGPXRequest, access_token?: string): Promise; getRouteAsTCX(params: GetRouteAsTCXRequest, access_token?: string): Promise; getRouteById(params: GetRouteByIdRequest): Promise; getRoutesByAthleteId(params: GetRoutesByAthleteIdRequest): Promise; } //#endregion //#region src/resources/runningRaces.d.ts type GetRunningRaceByIdRequest = { id: number; }; type GetRunningRacesRequest = { year?: number; }; declare class RunningRaces { private readonly request; constructor(request: Request); getRunningRaceById(params: GetRunningRaceByIdRequest, access_token?: string): Promise; getRunningRaces(params?: GetRunningRacesRequest, access_token?: string): Promise; } //#endregion //#region src/resources/segmentEfforts.d.ts type GetEffortsBySegmentIdRequest = { segment_id: number; start_date_local?: string; end_date_local?: string; per_page?: number; }; type GetSegmentEffortByIdRequest = { id: number; }; declare class SegmentEfforts { private readonly request; constructor(request: Request); getEffortsBySegmentId(params: GetEffortsBySegmentIdRequest, access_token?: string): Promise; getSegmentEffortById(params: GetSegmentEffortByIdRequest, access_token?: string): Promise; } //#endregion //#region src/resources/segments.d.ts type ActivityType$1 = 'running' | 'riding'; type ExploreSegmentsRequest = { bounds: string; activity_type?: ActivityType$1; min_cat?: number; max_cat?: number; }; type GetLoggedInAthleteStarredSegmentsRequest = { page?: number; per_page?: number; }; type GetSegmentByIdRequest = { id: number; }; type StarSegmentRequest = { id: number; starred: boolean; }; declare class Segments { private readonly request; constructor(request: Request); exploreSegments(params: ExploreSegmentsRequest, access_token?: string): Promise; getLoggedInAthleteStarredSegments(params: GetLoggedInAthleteStarredSegmentsRequest): Promise; getSegmentById(params: GetSegmentByIdRequest, access_token?: string): Promise; starSegment(params: StarSegmentRequest, access_token?: string): Promise; } //#endregion //#region src/resources/streams.d.ts type GetActivityStreamsRequest = { id: number; keys: StreamKeys | StreamKeys[]; }; type GetRouteStreamsRequest = { id: number; }; type GetSegmentEffortStreamsRequest = { id: number; keys: StreamKeys | StreamKeys[]; }; type GetSegmentStreamsRequest = { id: number; keys: StreamKeys | StreamKeys[]; }; declare class Streams { private readonly request; constructor(request: Request); getActivityStreams(params: GetActivityStreamsRequest, access_token?: string): Promise; getRouteStreams(params: GetRouteStreamsRequest, access_token?: string): Promise; getSegmentEffortStreams(params: GetSegmentEffortStreamsRequest, access_token?: string): Promise; getSegmentStreams(params: GetSegmentStreamsRequest, access_token?: string): Promise; } //#endregion //#region src/resources/subscriptions.d.ts type Subscription = { id: number; }; type SubscriptionCreationRequest = { callback_url: string; verify_token: string; }; type SubscriptionCreationResponse = { id: number; }; declare class Subscriptions { private readonly request; constructor(request: Request); createSubscription(params: SubscriptionCreationRequest): Promise; deleteSubscription(id: number): Promise; getSubscriptions(): Promise; } //#endregion //#region src/resources/uploads.d.ts type CreateUploadRequest = { file: ReadStream; data_type: 'fit' | 'fit.gz' | 'tcx' | 'tcx.gz' | 'gpx' | 'gpx.gz'; name?: string; description?: string; trainer?: string; commute?: string; external_id?: string; }; type GetUploadByIdRequest = { uploadId: number; }; declare class Uploads { private readonly request; constructor(request: Request); createUpload(params: CreateUploadRequest): Promise; getUploadById(params: GetUploadByIdRequest, access_token?: string): Promise; } //#endregion //#region src/index.d.ts declare class Strava { private readonly request; readonly activities: Activities; readonly athletes: Athletes; readonly clubs: Clubs; readonly gears: Gears; readonly oauth: Oauth; readonly routes: Routes; readonly runningRaces: RunningRaces; readonly segmentEfforts: SegmentEfforts; readonly segments: Segments; readonly streams: Streams; readonly subscriptions: Subscriptions; readonly uploads: Uploads; constructor(config: RefreshTokenRequest, access_token?: AccessToken); constructor(config: AppConfig, access_token: AccessToken); static createFromTokenExchange(config: AppConfig, code: string): Promise; /** * Get the current API rate limit information * @returns Current rate limit information or null if no API calls have been made yet */ getRateLimit(): RateLimit | null; } //#endregion export { AccessToken, Achievement, ActivityStats, ActivityTotal, ActivityType, ActivityZone, ActivityZoneType, AppConfig, BaseStream, Comment, DetailedActivity, DetailedAthlete, DetailedClub, DetailedGear, DetailedSegment, DetailedSegmentEffort, ExplorerResponse, ExplorerSegment, FollowerStatus, HeartRateZoneRanges, Lap, LatLng, LatLngStream, Membership, MetaActivity, MetaAthlete, PhotoSummary, PhotoSummaryPrimary, PolylineMap, PowerZoneRanges, RateLimit, RateLimitCallback, RefreshTokenRequest, RefreshTokenResponse, ResourceState, Route, RouteSubType, RouteType, RunningRace, Sex, SimilarActivity, Split, SportType, Strava, StravaApiError, Stream, StreamKeys, StreamSet, SubscriptionEvent, SummaryActivity, SummaryAthlete, SummaryClub, SummaryGear, SummaryPRSegmentEffort, SummarySegment, SummarySegmentEffort, TimedZoneRange, UnitSystem, Upload, ZoneRange, Zones }; //# sourceMappingURL=index.d.ts.map