tesla-fleet-api 0.2.2 → 0.4.0

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 (192) hide show
  1. package/dist/_virtual/_rolldown/runtime.cjs +22 -0
  2. package/dist/_virtual/_rolldown/runtime.mjs +12 -0
  3. package/dist/charging.cjs +53 -0
  4. package/dist/charging.d.cts +31 -0
  5. package/dist/charging.d.mts +30 -0
  6. package/dist/charging.mjs +53 -0
  7. package/dist/commands.cjs +802 -0
  8. package/dist/commands.d.cts +350 -0
  9. package/dist/commands.d.mts +349 -0
  10. package/dist/commands.mjs +800 -0
  11. package/dist/const.cjs +300 -0
  12. package/dist/const.d.cts +287 -0
  13. package/dist/const.d.mts +287 -0
  14. package/dist/const.mjs +263 -0
  15. package/dist/energy.cjs +137 -0
  16. package/dist/energy.d.cts +95 -0
  17. package/{src/energy.ts → dist/energy.d.mts} +17 -140
  18. package/dist/energy.mjs +137 -0
  19. package/dist/energyspecific.cjs +99 -0
  20. package/dist/energyspecific.d.cts +78 -0
  21. package/dist/energyspecific.d.mts +77 -0
  22. package/dist/energyspecific.mjs +99 -0
  23. package/dist/exceptions.cjs +1487 -0
  24. package/dist/exceptions.d.cts +1142 -0
  25. package/dist/exceptions.d.mts +1142 -0
  26. package/dist/exceptions.mjs +1324 -0
  27. package/dist/index.cjs +226 -0
  28. package/dist/index.d.cts +14 -0
  29. package/dist/index.d.mts +14 -0
  30. package/dist/index.mjs +14 -0
  31. package/dist/partner.cjs +32 -0
  32. package/dist/partner.d.cts +24 -0
  33. package/dist/partner.d.mts +23 -0
  34. package/dist/partner.mjs +32 -0
  35. package/dist/router.cjs +0 -0
  36. package/dist/router.d.cts +1 -0
  37. package/dist/router.d.mts +1 -0
  38. package/dist/router.mjs +1 -0
  39. package/dist/signing/crypto.cjs +31 -0
  40. package/dist/signing/crypto.mjs +27 -0
  41. package/dist/signing/session.cjs +112 -0
  42. package/dist/signing/session.d.cts +69 -0
  43. package/dist/signing/session.d.mts +69 -0
  44. package/dist/signing/session.mjs +110 -0
  45. package/dist/tariff.cjs +292 -0
  46. package/dist/{tariff.d.ts → tariff.d.cts} +17 -17
  47. package/dist/tariff.d.mts +29 -0
  48. package/dist/tariff.mjs +291 -0
  49. package/dist/teslafleetapi.cjs +125 -0
  50. package/dist/teslafleetapi.d.cts +64 -0
  51. package/dist/teslafleetapi.d.mts +64 -0
  52. package/dist/teslafleetapi.mjs +125 -0
  53. package/dist/teslemetry.cjs +36 -0
  54. package/dist/teslemetry.d.cts +23 -0
  55. package/dist/teslemetry.d.mts +23 -0
  56. package/dist/teslemetry.mjs +36 -0
  57. package/dist/tessie.cjs +34 -0
  58. package/dist/tessie.d.cts +23 -0
  59. package/dist/tessie.d.mts +23 -0
  60. package/dist/tessie.mjs +34 -0
  61. package/dist/types/commands.d.cts +28 -0
  62. package/dist/types/commands.d.mts +28 -0
  63. package/dist/types/live_status.d.cts +30 -0
  64. package/dist/types/live_status.d.mts +30 -0
  65. package/dist/types/products.d.cts +58 -0
  66. package/dist/types/products.d.mts +58 -0
  67. package/dist/types/responses.d.cts +9 -0
  68. package/dist/types/responses.d.mts +9 -0
  69. package/dist/types/site_info.d.cts +154 -0
  70. package/dist/types/site_info.d.mts +154 -0
  71. package/dist/types/vehicle.d.cts +27 -0
  72. package/dist/types/vehicle.d.mts +27 -0
  73. package/dist/types/vehicle_data.d.cts +278 -0
  74. package/dist/types/vehicle_data.d.mts +278 -0
  75. package/dist/types.cjs +0 -0
  76. package/dist/types.d.cts +9 -0
  77. package/dist/types.d.mts +9 -0
  78. package/dist/types.mjs +1 -0
  79. package/dist/user.cjs +28 -0
  80. package/dist/user.d.cts +17 -0
  81. package/dist/user.d.mts +16 -0
  82. package/dist/user.mjs +28 -0
  83. package/dist/vehicle.cjs +804 -0
  84. package/dist/vehicle.d.cts +550 -0
  85. package/dist/vehicle.d.mts +549 -0
  86. package/dist/vehicle.mjs +804 -0
  87. package/dist/vehiclesigned.cjs +20 -0
  88. package/dist/vehiclesigned.d.cts +14 -0
  89. package/dist/{vehiclesigned.d.ts → vehiclesigned.d.mts} +3 -3
  90. package/dist/vehiclesigned.mjs +20 -0
  91. package/dist/vehiclespecific.cjs +604 -0
  92. package/dist/vehiclespecific.d.cts +433 -0
  93. package/dist/vehiclespecific.d.mts +432 -0
  94. package/dist/vehiclespecific.mjs +604 -0
  95. package/package.json +108 -35
  96. package/dist/charging.d.ts +0 -30
  97. package/dist/charging.js +0 -51
  98. package/dist/charging.js.map +0 -1
  99. package/dist/commands.d.ts +0 -352
  100. package/dist/commands.js +0 -875
  101. package/dist/commands.js.map +0 -1
  102. package/dist/energy.d.ts +0 -94
  103. package/dist/energy.js +0 -125
  104. package/dist/energy.js.map +0 -1
  105. package/dist/energyspecific.d.ts +0 -77
  106. package/dist/energyspecific.js +0 -97
  107. package/dist/energyspecific.js.map +0 -1
  108. package/dist/helpers.d.ts +0 -2
  109. package/dist/helpers.js +0 -10
  110. package/dist/helpers.js.map +0 -1
  111. package/dist/index.d.ts +0 -14
  112. package/dist/index.js +0 -14
  113. package/dist/index.js.map +0 -1
  114. package/dist/partner.d.ts +0 -23
  115. package/dist/partner.js +0 -31
  116. package/dist/partner.js.map +0 -1
  117. package/dist/signing/crypto.d.ts +0 -10
  118. package/dist/signing/crypto.js +0 -26
  119. package/dist/signing/crypto.js.map +0 -1
  120. package/dist/signing/errors.d.ts +0 -29
  121. package/dist/signing/errors.js +0 -40
  122. package/dist/signing/errors.js.map +0 -1
  123. package/dist/signing/session.d.ts +0 -69
  124. package/dist/signing/session.js +0 -102
  125. package/dist/signing/session.js.map +0 -1
  126. package/dist/tariff.js +0 -302
  127. package/dist/tariff.js.map +0 -1
  128. package/dist/teslafleetapi.d.ts +0 -58
  129. package/dist/teslafleetapi.js +0 -120
  130. package/dist/teslafleetapi.js.map +0 -1
  131. package/dist/teslemetry.d.ts +0 -29
  132. package/dist/teslemetry.js +0 -39
  133. package/dist/teslemetry.js.map +0 -1
  134. package/dist/tessie.d.ts +0 -23
  135. package/dist/tessie.js +0 -28
  136. package/dist/tessie.js.map +0 -1
  137. package/dist/types/commands.d.ts +0 -44
  138. package/dist/types/commands.js +0 -11
  139. package/dist/types/commands.js.map +0 -1
  140. package/dist/types/live_status.d.ts +0 -26
  141. package/dist/types/live_status.js +0 -2
  142. package/dist/types/live_status.js.map +0 -1
  143. package/dist/types/products.d.ts +0 -54
  144. package/dist/types/products.js +0 -2
  145. package/dist/types/products.js.map +0 -1
  146. package/dist/types/responses.d.ts +0 -5
  147. package/dist/types/responses.js +0 -2
  148. package/dist/types/responses.js.map +0 -1
  149. package/dist/types/site_info.d.ts +0 -150
  150. package/dist/types/site_info.js +0 -2
  151. package/dist/types/site_info.js.map +0 -1
  152. package/dist/types/vehicle.d.ts +0 -22
  153. package/dist/types/vehicle.js +0 -2
  154. package/dist/types/vehicle.js.map +0 -1
  155. package/dist/types/vehicle_data.d.ts +0 -274
  156. package/dist/types/vehicle_data.js +0 -2
  157. package/dist/types/vehicle_data.js.map +0 -1
  158. package/dist/user.d.ts +0 -16
  159. package/dist/user.js +0 -26
  160. package/dist/user.js.map +0 -1
  161. package/dist/vehicle.d.ts +0 -548
  162. package/dist/vehicle.js +0 -781
  163. package/dist/vehicle.js.map +0 -1
  164. package/dist/vehiclesigned.js +0 -19
  165. package/dist/vehiclesigned.js.map +0 -1
  166. package/dist/vehiclespecific.d.ts +0 -432
  167. package/dist/vehiclespecific.js +0 -601
  168. package/dist/vehiclespecific.js.map +0 -1
  169. package/src/charging.ts +0 -66
  170. package/src/commands.ts +0 -1134
  171. package/src/energyspecific.ts +0 -116
  172. package/src/helpers.ts +0 -11
  173. package/src/index.ts +0 -20
  174. package/src/partner.ts +0 -37
  175. package/src/signing/crypto.ts +0 -29
  176. package/src/signing/errors.ts +0 -50
  177. package/src/signing/session.ts +0 -132
  178. package/src/tariff.ts +0 -375
  179. package/src/teslafleetapi.ts +0 -182
  180. package/src/teslemetry.ts +0 -54
  181. package/src/tessie.ts +0 -42
  182. package/src/types/commands.ts +0 -62
  183. package/src/types/live_status.ts +0 -27
  184. package/src/types/products.ts +0 -61
  185. package/src/types/responses.ts +0 -1
  186. package/src/types/site_info.ts +0 -159
  187. package/src/types/vehicle.ts +0 -23
  188. package/src/types/vehicle_data.ts +0 -286
  189. package/src/user.ts +0 -35
  190. package/src/vehicle.ts +0 -895
  191. package/src/vehiclesigned.ts +0 -20
  192. package/src/vehiclespecific.ts +0 -818
@@ -0,0 +1,549 @@
1
+ import TeslaFleetApi from "./teslafleetapi.mjs";
2
+ import { CommandResponse, FleetTelemetryConfig } from "./types/commands.mjs";
3
+ import { OptionsResponse } from "./types/responses.mjs";
4
+ import { VehicleResponse } from "./types/vehicle.mjs";
5
+ import { AutoSeat, ClimateMode, Level, Seat, Trunk, VehicleDataEndpoint } from "./const.mjs";
6
+ import { VehicleDataResponse } from "./types/vehicle_data.mjs";
7
+ import VehicleSpecific from "./vehiclespecific.mjs";
8
+ import VehicleSigned from "./vehiclesigned.mjs";
9
+ export default class Vehicle {
10
+ parent: TeslaFleetApi;
11
+ /** Fallback private key for `signed()` when a call site doesn't pass one explicitly. */
12
+ private_key?: Buffer;
13
+ constructor(parent: TeslaFleetApi);
14
+ /**
15
+ * Returns a class for a single vehicle.
16
+ * @param vin
17
+ * @returns
18
+ */
19
+ specific(vin: string): VehicleSpecific;
20
+ /**
21
+ * Returns a class for a single vehicle that signs commands with the
22
+ * Tesla Vehicle Command Protocol and dispatches them through the Fleet
23
+ * API `/signed_command` endpoint, instead of the plaintext REST commands.
24
+ * @param vin
25
+ * @param private_key Raw 32-byte P-256 private key scalar. Falls back to `this.private_key`.
26
+ * @param public_key Uncompressed P-256 public key point. Derived from `private_key` if omitted.
27
+ */
28
+ signed(vin: string, private_key?: Buffer, public_key?: Buffer): VehicleSigned;
29
+ /**
30
+ * Return the vehicle model name
31
+ * @param vin
32
+ * @returns
33
+ */
34
+ model(vin: string): string;
35
+ /**
36
+ * Return if the vehicle was build before 2021 and cannot sleep without a break
37
+ * @param vin
38
+ * @returns
39
+ */
40
+ pre2021(vin: string): boolean;
41
+ /**
42
+ * Controls the front (which_trunk: "front") or rear (which_trunk: "rear") trunk.
43
+ * @param vehicle_tag VIN or id field of a vehicle
44
+ * @param which_trunk "front" or "rear"
45
+ */
46
+ actuate_truck(vehicle_tag: string | number, which_trunk: Trunk): Promise<CommandResponse>;
47
+ /**
48
+ * Adjusts vehicle media playback volume.
49
+ * @param vehicle_tag VIN or id field of a vehicle
50
+ * @param volume A floating point number from 0.0 to 11.0.
51
+ */
52
+ adjust_volume(vehicle_tag: string | number, volume: number): Promise<CommandResponse>;
53
+ /**
54
+ * Starts climate preconditioning.
55
+ * @param vehicle_tag VIN or id field of a vehicle
56
+ */
57
+ auto_conditioning_start(vehicle_tag: string | number): Promise<CommandResponse>;
58
+ /**
59
+ * Stops climate preconditioning.
60
+ * @param vehicle_tag VIN or id field of a vehicle
61
+ */
62
+ auto_conditioning_stop(vehicle_tag: string | number): Promise<CommandResponse>;
63
+ /**
64
+ * Cancels the countdown to install the vehicle software update.
65
+ * @param vehicle_tag VIN or id field of a vehicle
66
+ */
67
+ cancel_software_update(vehicle_tag: string | number): Promise<CommandResponse>;
68
+ /**
69
+ * Charges in max range mode -- we recommend limiting the use of this mode to long trips.
70
+ * @param vehicle_tag VIN or id field of a vehicle
71
+ */
72
+ charge_max_range(vehicle_tag: string | number): Promise<CommandResponse>;
73
+ /**
74
+ * Closes the charge port door.
75
+ * @param vehicle_tag VIN or id field of a vehicle
76
+ */
77
+ charge_port_door_close(vehicle_tag: string | number): Promise<CommandResponse>;
78
+ /**
79
+ * Opens the charge port door.
80
+ * @param vehicle_tag VIN or id field of a vehicle
81
+ */
82
+ charge_port_door_open(vehicle_tag: string | number): Promise<CommandResponse>;
83
+ /**
84
+ * Charges in Standard mode.
85
+ * @param vehicle_tag VIN or id field of a vehicle
86
+ */
87
+ charge_standard(vehicle_tag: string | number): Promise<CommandResponse>;
88
+ /**
89
+ * Starts charging the vehicle.
90
+ * @param vehicle_tag VIN or id field of a vehicle
91
+ */
92
+ charge_start(vehicle_tag: string | number): Promise<CommandResponse>;
93
+ /**
94
+ * Stops charging the vehicle.
95
+ * @param vehicle_tag VIN or id field of a vehicle
96
+ */
97
+ charge_stop(vehicle_tag: string | number): Promise<CommandResponse>;
98
+ /**
99
+ * Deactivates PIN to Drive and resets the associated PIN for vehicles running firmware versions 2023.44+. This command is only accessible to fleet managers or owners.
100
+ * @param vehicle_tag VIN or id field of a vehicle
101
+ */
102
+ clear_pin_to_drive_admin(vehicle_tag: string | number): Promise<CommandResponse>;
103
+ /**
104
+ * Locks the vehicle.
105
+ * @param vehicle_tag VIN or id field of a vehicle
106
+ */
107
+ door_lock(vehicle_tag: string | number): Promise<CommandResponse>;
108
+ /**
109
+ * Unlocks the vehicle.
110
+ * @param vehicle_tag VIN or id field of a vehicle
111
+ */
112
+ door_unlock(vehicle_tag: string | number): Promise<CommandResponse>;
113
+ /**
114
+ * Erases user's data from the user interface. Requires the vehicle to be in park.
115
+ * @param vehicle_tag VIN or id field of a vehicle
116
+ */
117
+ erase_user_data(vehicle_tag: string | number): Promise<CommandResponse>;
118
+ /**
119
+ * Briefly flashes the vehicle headlights. Requires the vehicle to be in park.
120
+ * @param vehicle_tag VIN or id field of a vehicle
121
+ */
122
+ flash_lights(vehicle_tag: string | number): Promise<CommandResponse>;
123
+ /**
124
+ * Restricts certain vehicle UI functionality from guest users
125
+ * @param vehicle_tag VIN or id field of a vehicle
126
+ * @param enable `true` or `false`
127
+ */
128
+ guest_mode(vehicle_tag: string | number, enable: boolean): Promise<CommandResponse>;
129
+ /**
130
+ * Honks the vehicle horn. Requires the vehicle to be in park.
131
+ * @param vehicle_tag VIN or id field of a vehicle
132
+ */
133
+ honk_horn(vehicle_tag: string | number): Promise<CommandResponse>;
134
+ /**
135
+ * Advances media player to next favorite track.
136
+ * @param vehicle_tag VIN or id field of a vehicle
137
+ */
138
+ media_next_fav(vehicle_tag: string | number): Promise<CommandResponse>;
139
+ /**
140
+ * Advances media player to next track.
141
+ * @param vehicle_tag VIN or id field of a vehicle
142
+ */
143
+ media_next_track(vehicle_tag: string | number): Promise<CommandResponse>;
144
+ /**
145
+ * Advances media player to previous favorite track.
146
+ * @param vehicle_tag VIN or id field of a vehicle
147
+ */
148
+ media_prev_fav(vehicle_tag: string | number): Promise<CommandResponse>;
149
+ /**
150
+ * Advances media player to previous track.
151
+ * @param vehicle_tag VIN or id field of a vehicle
152
+ */
153
+ media_prev_track(vehicle_tag: string | number): Promise<CommandResponse>;
154
+ /**
155
+ * Toggles current play/pause state.
156
+ * @param vehicle_tag VIN or id field of a vehicle
157
+ */
158
+ media_toggle_playback(vehicle_tag: string | number): Promise<CommandResponse>;
159
+ /**
160
+ * Turns the volume down by one.
161
+ * @param vehicle_tag VIN or id field of a vehicle
162
+ */
163
+ media_volume_down(vehicle_tag: string | number): Promise<CommandResponse>;
164
+ /**
165
+ * Start navigation to given coordinates. Order can be used to specify order of multiple stops.
166
+ * @param vehicle_tag VIN or id field of a vehicle
167
+ * @param lat Latitude
168
+ * @param lon Longitude
169
+ * @param order Order of multiple stops
170
+ */
171
+ navigation_gps_request(vehicle_tag: string | number, lat: number, lon: number, order?: number): Promise<CommandResponse>;
172
+ /**
173
+ * Sends a location to the in-vehicle navigation system.
174
+ * @param vehicle_tag VIN or id field of a vehicle
175
+ * @param type "share_ext_content_raw"
176
+ * @param locale ISO locale such as "en-US"
177
+ * @param timestamp_ms
178
+ */
179
+ navigation_request(vehicle_tag: string | number, value: string, locale: string, type?: string): Promise<CommandResponse>;
180
+ /**
181
+ * Start navigation to a supercharger.
182
+ * @param vehicle_tag VIN or id field of a vehicle
183
+ * @param id Supercharger ID
184
+ * @param order Order of multiple stops
185
+ * @returns
186
+ */
187
+ navigation_sc_request(vehicle_tag: string | number, id: number, order?: number): Promise<CommandResponse>;
188
+ /**
189
+ * Sets automatic seat heating and cooling.
190
+ * @param vehicle_tag VIN or id field of a vehicle
191
+ * @param auto_seat_position `AutoSeat` position (1-indexed: front left is 1, front right is 2)
192
+ * @param auto_climate_on `true` or `false`
193
+ */
194
+ remote_auto_seat_climate_request(vehicle_tag: string | number, auto_seat_position: keyof typeof AutoSeat | number, auto_climate_on: boolean): Promise<CommandResponse>;
195
+ /**
196
+ * Sets automatic steering wheel heating on/off.
197
+ * @param vehicle_tag VIN or id field of a vehicle
198
+ * @param on `true` or `false`
199
+ */
200
+ remote_auto_steering_wheel_heat_climate_request(vehicle_tag: string | number, on: boolean): Promise<CommandResponse>;
201
+ /**
202
+ * Plays a sound through the vehicle external speaker.
203
+ * @param vehicle_tag VIN or id field of a vehicle
204
+ * @param sound Fart is `0`, Locate ping is `2000`
205
+ */
206
+ remote_boombox(vehicle_tag: string | number, sound?: number): Promise<CommandResponse>;
207
+ /**
208
+ * Sets seat cooling.
209
+ * @param vehicle_tag VIN or id field of a vehicle
210
+ * @param seat_position Seat position
211
+ * @param seat_cooler_level Cooling level
212
+ */
213
+ remote_seat_cooler_request(vehicle_tag: string | number, seat_position: Seat | number, seat_cooler_level: Level): Promise<CommandResponse>;
214
+ /**
215
+ * Sets seat heating.
216
+ * @param vehicle_tag VIN or id field of a vehicle
217
+ * @param seat_position Seat position
218
+ * @param seat_heater_level Heating level
219
+ */
220
+ remote_seat_heater_request(vehicle_tag: string | number, seat_position: Seat | number, seat_heater_level: Level): Promise<CommandResponse>;
221
+ /**
222
+ * Starts the vehicle remotely. Requires keyless driving to be enabled.
223
+ * @param vehicle_tag VIN or id field of a vehicle
224
+ */
225
+ remote_start_drive(vehicle_tag: string | number): Promise<CommandResponse>;
226
+ /**
227
+ * Sets steering wheel heat level.
228
+ * @param vehicle_tag VIN or id field of a vehicle
229
+ * @param level Heating level
230
+ */
231
+ remote_steering_wheel_heat_level_request(vehicle_tag: string | number, level: Level): Promise<CommandResponse>;
232
+ /**
233
+ * Sets steering wheel heating on/off. For vehicles that do not support auto steering wheel heat.
234
+ * @param vehicle_tag VIN or id field of a vehicle
235
+ * @param on `true` or `false`
236
+ */
237
+ remote_steering_wheel_heater_request(vehicle_tag: string | number, on: boolean): Promise<CommandResponse>;
238
+ /**
239
+ * Removes PIN to Drive. Requires the car to be in Pin to Drive mode and not in Valet mode. Note that this only works if PIN to Drive is not active. This command also requires the Tesla Vehicle Command Protocol - for more information, please see refer to the documentation here.
240
+ * @param vehicle_tag VIN or id field of a vehicle
241
+ */
242
+ reset_pin_to_drive_pin(vehicle_tag: string | number): Promise<CommandResponse>;
243
+ /**
244
+ * Removes PIN for Valet Mode.
245
+ * @param vehicle_tag VIN or id field of a vehicle
246
+ */
247
+ reset_valet_pin(vehicle_tag: string | number): Promise<CommandResponse>;
248
+ /**
249
+ * Schedules a vehicle software update (over the air "OTA") to be installed in the future.
250
+ * @param vehicle_tag VIN or id field of a vehicle
251
+ * @param offset_sec Offset in seconds
252
+ */
253
+ schedule_software_update(vehicle_tag: string | number, offset_sec: number): Promise<CommandResponse>;
254
+ /**
255
+ * Turns Bioweapon Defense Mode on and off.
256
+ * @param vehicle_tag VIN or id field of a vehicle
257
+ * @param on `true` or `false`
258
+ * @param manual_override `true` or `false`
259
+ */
260
+ set_bioweapon_mode(vehicle_tag: string | number, on: boolean, manual_override: boolean): Promise<CommandResponse>;
261
+ /**
262
+ * Sets the vehicle overheat protection.
263
+ * @param vehicle_tag VIN or id field of a vehicle
264
+ * @param on `true` or `false`
265
+ * @param fan_only `true` or `false`
266
+ */
267
+ set_cabin_overheat_protection(vehicle_tag: string | number, on: boolean, fan_only: boolean): Promise<CommandResponse>;
268
+ /**
269
+ * Sets the vehicle's charge limit to a custom percentage.
270
+ * @param vehicle_tag VIN or id field of a vehicle
271
+ * @param percent Charge limit percentage typically between 50-100
272
+ */
273
+ set_charge_limit(vehicle_tag: string | number, percent: number): Promise<CommandResponse>;
274
+ /**
275
+ * Sets the charge limit to the standard setting.
276
+ * @param vehicle_tag VIN or id field of a vehicle
277
+ * @param percent Current limit in Amps typically between 5-32
278
+ */
279
+ set_charging_amps(vehicle_tag: string | number, charging_amps: number): Promise<CommandResponse>;
280
+ /**
281
+ * Enables climate keeper mode.
282
+ * @param vehicle_tag VIN or id field of a vehicle
283
+ * @param climate_keeper_mode `0` is Off, `1` is Keep, `2` is Dog, `3` is Camp
284
+ */
285
+ set_climate_keeper_mode(vehicle_tag: string | number, climate_keeper_mode: number | ClimateMode): Promise<CommandResponse>;
286
+ /**
287
+ * Adjusts the Cabin Overheat Protection temperature (COP).
288
+ * @param vehicle_tag VIN or id field of a vehicle
289
+ * @param cop_temp Integer representing Low (0/30C/90F), Medium (1/35C/95F), or High (2/40C/100F)
290
+ */
291
+ set_cop_temp(vehicle_tag: string | number, cop_temp: 0 | 1 | 2 | 30 | 35 | 40 | 90 | 95 | 100): Promise<CommandResponse>;
292
+ /**
293
+ * Sets a four-digit passcode for PIN to Drive. This PIN must then be entered before the vehicle can be driven.
294
+ * @param vehicle_tag VIN or id field of a vehicle
295
+ * @param on `true` or `false`
296
+ * @param password Four-digit passcode
297
+ */
298
+ set_pin_to_drive(vehicle_tag: string | number, on: boolean, password: string | number): Promise<CommandResponse>;
299
+ /**
300
+ * Sets an override for preconditioning — it should default to empty if no override is used.
301
+ * Also known as "Defrost Mode"
302
+ * @param vehicle_tag VIN or id field of a vehicle
303
+ * @param on `true` or `false`
304
+ * @param manual_override `true` or `false`
305
+ */
306
+ set_preconditioning_max(vehicle_tag: string | number, on: boolean, manual_override: boolean): Promise<CommandResponse>;
307
+ /**
308
+ * Sets a time at which charging should be completed. The time parameter is minutes after midnight (e.g: time=120 schedules charging for 2:00am vehicle local time).
309
+ * @param vehicle_tag VIN or id field of a vehicle
310
+ * @param enable `true` or `false`
311
+ * @param time Minutes after midnight
312
+ */
313
+ set_scheduled_charging(vehicle_tag: string | number, enable: boolean, time: number): Promise<CommandResponse>;
314
+ /**
315
+ * Sets a time at which departure should be completed. The time parameter is minutes after midnight (e.g: time=120 schedules departure for 2:00am vehicle local time).
316
+ * @param vehicle_tag VIN or id field of a vehicle
317
+ * @param enable `true` or `false`
318
+ * @param preconditioning_enabled `true` or `false`
319
+ * @param preconditioning_weekdays_only `true` or `false`
320
+ * @param departure_time Minutes after midnight
321
+ * @param off_peak_charging_enabled `true` or `false`
322
+ * @param off_peak_charging_weekdays_only `true` or `false`
323
+ * @param end_off_peak_time Minutes after midnight
324
+ */
325
+ set_scheduled_departure(vehicle_tag: string | number, enable?: boolean, preconditioning_enabled?: boolean, preconditioning_weekdays_only?: boolean, departure_time?: number, off_peak_charging_enabled?: boolean, off_peak_charging_weekdays_only?: boolean, end_off_peak_time?: number): Promise<CommandResponse>;
326
+ /**
327
+ * Enables and disables Sentry Mode. Sentry Mode allows customers to watch the vehicle cameras live from the mobile app, as well as record sentry events.
328
+ * @param vehicle_tag VIN or id field of a vehicle
329
+ * @param on `true` or `false`
330
+ */
331
+ set_sentry_mode(vehicle_tag: string | number, on: boolean): Promise<CommandResponse>;
332
+ /**
333
+ * Sets the driver and/or passenger-side cabin temperature (and other zones if sync is enabled).
334
+ * @param vehicle_tag VIN or id field of a vehicle
335
+ * @param driver_temp Driver temperature
336
+ * @param passenger_temp Passenger temperature
337
+ */
338
+ set_temps(vehicle_tag: string | number, driver_temp: number, passenger_temp: number): Promise<CommandResponse>;
339
+ /**
340
+ * Turns on Valet Mode and sets a four-digit passcode that must then be entered to disable Valet Mode.
341
+ * @param vehicle_tag VIN or id field of a vehicle
342
+ * @param on `true` or `false`
343
+ * @param password Four-digit passcode
344
+ */
345
+ set_valet_mode(vehicle_tag: string | number, on: boolean, password: string | number): Promise<CommandResponse>;
346
+ /**
347
+ * Changes the name of a vehicle. This command also requires the Tesla Vehicle Command Protocol - for more information, please see refer to the documentation here.
348
+ * @param vehicle_tag VIN or id field of a vehicle
349
+ * @param vehicle_name New name
350
+ */
351
+ set_vehicle_name(vehicle_tag: string | number, vehicle_name: string): Promise<CommandResponse>;
352
+ /**
353
+ * Activates Speed Limit Mode with a four-digit PIN.
354
+ * @param vehicle_tag VIN or id field of a vehicle
355
+ * @param pin Four-digit PIN
356
+ */
357
+ speed_limit_activate(vehicle_tag: string | number, pin: string | number): Promise<CommandResponse>;
358
+ /**
359
+ * Deactivates Speed Limit Mode and resets the associated PIN.
360
+ * @param vehicle_tag VIN or id field of a vehicle
361
+ * @param pin Four-digit PIN
362
+ */
363
+ speed_limit_clear_pin(vehicle_tag: string | number, pin: string | number): Promise<CommandResponse>;
364
+ /**
365
+ * Deactivates Speed Limit Mode and resets the associated PIN for vehicles running firmware versions 2023.38+. This command is only accessible to fleet managers or owners.
366
+ * @param vehicle_tag VIN or id field of a vehicle
367
+ */
368
+ speed_limit_clear_pin_admin(vehicle_tag: string | number): Promise<CommandResponse>;
369
+ /**
370
+ * Deactivates Speed Limit Mode.
371
+ * @param vehicle_tag VIN or id field of a vehicle
372
+ * @param pin Four-digit PIN
373
+ */
374
+ speed_limit_deactivate(vehicle_tag: string | number, pin: string | number): Promise<CommandResponse>;
375
+ /**
376
+ * Sets the maximum speed allowed when Speed Limit Mode is active.
377
+ * @param vehicle_tag VIN or id field of a vehicle
378
+ * @param limit_mph Maximum speed in MPH
379
+ */
380
+ speed_limit_set_limit(vehicle_tag: string | number, limit_mph: number): Promise<CommandResponse>;
381
+ /**
382
+ * Controls the panoramic sunroof on the Model S.
383
+ * @param vehicle_tag VIN or id field of a vehicle
384
+ * @param state "stop", "close" or "vent"
385
+ */
386
+ sun_roof_control(vehicle_tag: string | number, state: "stop" | "close" | "vent"): Promise<CommandResponse>;
387
+ /**
388
+ * Records a drive note. The note parameter is truncated to 80 characters in length.
389
+ * @param vehicle_tag VIN or id field of a vehicle
390
+ * @param note Drive note
391
+ */
392
+ take_drivenote(vehicle_tag: string | number, note: string): Promise<CommandResponse>;
393
+ /**
394
+ * Turns on HomeLink (used to open and close garage doors).
395
+ * @param vehicle_tag VIN or id field of a vehicle
396
+ * @param token
397
+ * @param lat Latitude
398
+ * @param lon Longitude
399
+ */
400
+ trigger_homelink(vehicle_tag: string | number, lat: number, lon: number, token?: string): Promise<CommandResponse>;
401
+ /**
402
+ * Upcoming calendar entries stored on the vehicle.
403
+ * @param vehicle_tag VIN or id field of a vehicle
404
+ * @param calendar_data Calendar data
405
+ */
406
+ upcoming_calendar_entries(vehicle_tag: string | number, calendar_data: string): Promise<CommandResponse>;
407
+ /**
408
+ * Control the windows of a parked vehicle. Supported commands: vent and close. When closing, specify lat and lon of user to ensure they are within range of vehicle (unless this is an M3 platform vehicle).
409
+ * @param vehicle_tag VIN or id field of a vehicle
410
+ * @param command "vent" or "close"
411
+ * @param lat Latitude
412
+ * @param lon Longitude
413
+ */
414
+ window_control(vehicle_tag: string | number, command: "vent" | "close", lat: number, lon: number): Promise<CommandResponse>;
415
+ /**
416
+ * Returns all allowed drivers for a vehicle. This endpoint is only available for the vehicle owner.
417
+ * @param vehicle_tag VIN or id field of a vehicle
418
+ */
419
+ drivers(vehicle_tag: string | number): Promise<Record<string, any>[]>;
420
+ /**
421
+ * Removes driver access from a vehicle. Share users can only remove their own access. Owners can remove share access or their own.
422
+ * @param vehicle_tag VIN or id field of a vehicle
423
+ * @param share_user_id
424
+ */
425
+ drivers_remove(vehicle_tag: string | number, share_user_id?: number): Promise<Record<string, any>>;
426
+ /**
427
+ * Returns eligible vehicle subscriptions.
428
+ * @param vin Vehicle Identification Number
429
+ */
430
+ eligible_subscriptions(vin: string): Promise<Record<string, any>>;
431
+ /**
432
+ * Returns eligibile vehicle upgrades.
433
+ * @param vin Vehicle Identification Number
434
+ */
435
+ eligible_upgrades(vin: string): Promise<Record<string, any>>;
436
+ /**
437
+ * Checks whether vehicles can accept Tesla commands protocol for the partner's public key
438
+ * @param vins list of Vehicle Identification Number
439
+ * @returns
440
+ */
441
+ fleet_status(vins: Array<string>): Promise<Record<string, any>>;
442
+ /**
443
+ * Configures vehicles to connect to self-hosted fleet-telemetry server. This endpoint has concurrency 1 (status 429 will be returned if many calls are made at the same time). Multiple vehicles can be configured with a single call.
444
+ * @param config A dictionary description the fleet telemetry configuration
445
+ * @returns
446
+ */
447
+ fleet_telemetry_config(config: FleetTelemetryConfig): Promise<Record<string, any>>;
448
+ /**
449
+ * Disconnects vehicles to stream telemetry data to self hosted fleet-telemetry server.
450
+ * @param vehicle_tag VIN or id field of a vehicle
451
+ * @returns
452
+ */
453
+ fleet_telemetry_config_delete(vehicle_tag: string | number): Promise<Record<string, any>>;
454
+ /**
455
+ * Fetches a vehicle's fleet telemetry config. synced set to true means the vehicle has adopted the target config. synced set to false means the vehicle will attempt to adopt the target config when it next establishes a backend connection.
456
+ * @param vehicle_tag VIN or id field of a vehicle
457
+ * @returns
458
+ */
459
+ fleet_telemetry_config_get(vehicle_tag: string | number): Promise<Record<string, any>>;
460
+ /**
461
+ * Returns vehicles belonging to the account.
462
+ * @param page Page number
463
+ * @param per_page Number of items per page
464
+ */
465
+ list(page?: number, per_page?: number): Promise<Record<string, any>>;
466
+ /**
467
+ * Returns whether or not mobile access is enabled for the vehicle.
468
+ * @param vehicle_tag VIN or id field of a vehicle
469
+ */
470
+ mobile_enabled(vehicle_tag: string | number): Promise<Record<string, any>>;
471
+ /**
472
+ * Returns the charging sites near the current location of the vehicle.
473
+ * @param vehicle_tag VIN or id field of a vehicle
474
+ * @param count
475
+ * @param radius
476
+ * @param detail
477
+ */
478
+ nearby_charging_sites(vehicle_tag: string | number, count?: number, radius?: number, detail?: boolean): Promise<Record<string, any>>;
479
+ /**
480
+ * Returns vehicle option details.
481
+ * @param vin Vehicle Identification Number
482
+ */
483
+ options(vin: string): Promise<OptionsResponse>;
484
+ /**
485
+ * List of recent alerts
486
+ * @param vehicle_tag VIN or id field of a vehicle
487
+ */
488
+ recent_alerts(vehicle_tag: string | number): Promise<Record<string, any>>;
489
+ /**
490
+ * Returns firmware release notes.
491
+ * @param vehicle_tag VIN or id field of a vehicle
492
+ * @param staged
493
+ * @param language
494
+ */
495
+ release_notes(vehicle_tag: string | number, staged?: boolean, language?: string): Promise<Record<string, any>>;
496
+ /**
497
+ * Returns service data.
498
+ * @param vehicle_tag VIN or id field of a vehicle
499
+ */
500
+ service_data(vehicle_tag: string | number): Promise<Record<string, any>>;
501
+ /**
502
+ * Returns the share invites for a vehicle.
503
+ * @param vehicle_tag VIN or id field of a vehicle
504
+ */
505
+ share_invites(vehicle_tag: string | number): Promise<Record<string, any>>;
506
+ /**
507
+ * Creates a share invite for a vehicle.
508
+ * @param vehicle_tag VIN or id field of a vehicle
509
+ */
510
+ share_invites_create(vehicle_tag: string | number): Promise<Record<string, any>>;
511
+ /**
512
+ * Redeems a share invite.
513
+ * @param code
514
+ */
515
+ share_invites_redeem(code: string): Promise<Record<string, any>>;
516
+ /**
517
+ * Revokes a share invite.
518
+ * @param vehicle_tag VIN or id field of a vehicle
519
+ * @param id
520
+ */
521
+ share_invites_revoke(vehicle_tag: string | number, id: string): Promise<Record<string, any>>;
522
+ /**
523
+ * Signed Commands is a generic endpoint replacing legacy commands.
524
+ * @param vehicle_tag VIN or id field of a vehicle
525
+ * @param routable_message
526
+ */
527
+ signed_command(vehicle_tag: string | number, routable_message: string): Promise<Record<string, any>>;
528
+ /**
529
+ * Returns information about a vehicle.
530
+ * @param vehicle_tag VIN or id field of a vehicle
531
+ */
532
+ vehicle(vehicle_tag: string | number): Promise<VehicleResponse>;
533
+ /**
534
+ * Makes a live call to the vehicle. This may return cached data if the vehicle is offline. For vehicles running firmware versions 2023.38+, location_data is required to fetch vehicle location. This will result in a location sharing icon to show on the vehicle UI.
535
+ * @param vehicle_tag VIN or id field of a vehicle
536
+ * @param endpoints
537
+ */
538
+ vehicle_data(vehicle_tag: string | number, endpoints?: VehicleDataEndpoint[] | string): Promise<VehicleDataResponse>;
539
+ /**
540
+ * Wakes the vehicle from sleep, which is a state to minimize idle energy consumption.
541
+ * @param vehicle_tag VIN or id field of a vehicle
542
+ */
543
+ wake_up(vehicle_tag: string | number): Promise<Record<string, any>>;
544
+ /**
545
+ * Returns warranty details.
546
+ * @param vin
547
+ */
548
+ warranty_details(vin: string): Promise<Record<string, any>>;
549
+ }