@juhuu/sdk-ts 0.0.1 → 0.0.2

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.
@@ -0,0 +1,1310 @@
1
+ import { Socket } from 'socket.io-client';
2
+
3
+ type OfferTime = {
4
+ mon: {
5
+ startMinutes: number;
6
+ endMinutes: number;
7
+ }[];
8
+ tue: {
9
+ startMinutes: number;
10
+ endMinutes: number;
11
+ }[];
12
+ wed: {
13
+ startMinutes: number;
14
+ endMinutes: number;
15
+ }[];
16
+ thu: {
17
+ startMinutes: number;
18
+ endMinutes: number;
19
+ }[];
20
+ fri: {
21
+ startMinutes: number;
22
+ endMinutes: number;
23
+ }[];
24
+ sat: {
25
+ startMinutes: number;
26
+ endMinutes: number;
27
+ }[];
28
+ sun: {
29
+ startMinutes: number;
30
+ endMinutes: number;
31
+ }[];
32
+ };
33
+ type OfferDto = {
34
+ tariffId: string;
35
+ licenseId: string;
36
+ offerTime: OfferTime;
37
+ };
38
+
39
+ type Environment$1 = "development" | "production";
40
+ type Platform = "ios" | "android" | "windows" | "macos" | "web";
41
+ type DeviceStatus = "running" | "sleeping" | "shutdown";
42
+ type PushToken = {
43
+ platform: Platform;
44
+ token: string;
45
+ };
46
+ type FuelType = "battery" | "diesel" | "gasoline" | "hydrogen" | "fossil";
47
+ declare const LanguageCodeArray: readonly ["en", "de", "fr", "nl", "it", "cs", "da", "es", "et", "gsw", "hr", "hu", "no", "pl", "sv"];
48
+ type LanguageCode = (typeof LanguageCodeArray)[number];
49
+ declare const CountryCodeArray: readonly ["DE", "AT", "CH", "LI", "IT", "FR", "NL", "BE", "LU", "DK", "SE", "NO", "FI", "IS", "GB", "IE", "ES", "PT", "GR", "PL", "CZ", "SK", "HU", "SI", "HR", "BA", "RS", "US", "CA"];
50
+ type CountryCode = (typeof CountryCodeArray)[number];
51
+ declare const CurrencyCodeArray: readonly ["eur", "usd", "gbp", "nok", "sek", "chf", "dkk", "pln", "czk", "huf", "hrk", "bam", "rsd", "isk", "cad"];
52
+ type CurrencyCode = (typeof CurrencyCodeArray)[number];
53
+ interface ColorScheme {
54
+ light: Color;
55
+ dark: Color;
56
+ }
57
+ type hexColor = string;
58
+ interface Color {
59
+ background: hexColor;
60
+ backgroundSecondary: hexColor;
61
+ blackText: hexColor;
62
+ grayText: hexColor;
63
+ backgroundNavigation: hexColor;
64
+ border: hexColor;
65
+ primary: hexColor;
66
+ primaryContrast: hexColor;
67
+ disabledBackground: hexColor;
68
+ disabled: hexColor;
69
+ error: hexColor;
70
+ warning: hexColor;
71
+ }
72
+ type PaymentMethod = "card" | "stripe_account" | "klarna" | "bancontact" | "eps" | "giropay" | "ideal" | "p24" | "sofort" | "unknown";
73
+ type PaymentReason = "session";
74
+ type AutoRenewMode = "off" | "optIn" | "optOut" | "on";
75
+ type ServiceMonth = "jan" | "feb" | "mar" | "apr" | "may" | "jun" | "jul" | "aug" | "sep" | "oct" | "nov" | "dec";
76
+ interface Address {
77
+ line1: string;
78
+ line2: string | null;
79
+ postalCode: string;
80
+ country: CountryCode;
81
+ city: string;
82
+ }
83
+ interface PostingRow {
84
+ description: string;
85
+ quantity: number;
86
+ unitPrice: number;
87
+ unitPriceIsFlexible: boolean;
88
+ total: number;
89
+ }
90
+ interface Person {
91
+ name: string;
92
+ email: string;
93
+ phone: string;
94
+ }
95
+ interface Party extends Person {
96
+ vat: string;
97
+ address: Address;
98
+ iban?: string;
99
+ bic?: string;
100
+ }
101
+ type PaymentStatus = "waitingForConfirmation" | "waitingForAmountFinalization" | "waitingForCapture" | "waitingForTransitConfirmation" | "inTransitToProvider" | "captured" | "inTransitToProperty" | "payedOut";
102
+ type PaymentServiceProvider = "stripe";
103
+ type PayoutStatus = "awaitingApproval" | "inTransitToProperty" | "payedOut";
104
+ declare const ReadonlySectorArray: readonly ["tourism", "mobility", "sport"];
105
+ type Sector = (typeof ReadonlySectorArray)[number];
106
+ declare const ReadonlyCategoryArray: readonly ["bike", "car", "scooter", "boat", "moped"];
107
+ type Category = (typeof ReadonlyCategoryArray)[number];
108
+ declare const ReadonlyModalityArray: readonly ["charge", "store", "share", "wash", "repair"];
109
+ type Modality = (typeof ReadonlyModalityArray)[number];
110
+ type Purpose = {
111
+ sector: Sector;
112
+ category: Category;
113
+ modality: Modality;
114
+ };
115
+ type GeoPoint = {
116
+ type: "Point";
117
+ coordinates: [number, number];
118
+ };
119
+ type DeepNullable<T> = {
120
+ [K in keyof T]: DeepNullable<T[K]> | null;
121
+ };
122
+ type Circumstance = {
123
+ type: "wheelchairAccessible";
124
+ isWheelchairAccessible: boolean;
125
+ } | {
126
+ type: "height";
127
+ height: number;
128
+ } | {
129
+ type: "width";
130
+ width: number;
131
+ } | {
132
+ type: "videoSurveillance";
133
+ hasVideoSurveillance: boolean;
134
+ } | {
135
+ type: "stackableParking";
136
+ isStackableParking: boolean;
137
+ } | {
138
+ type: "socket";
139
+ hasFreeSocketAvailable: boolean;
140
+ socketType: "Schuko" | "CEE" | "Type2";
141
+ } | {
142
+ type: "cargoHold";
143
+ hasCargoHold: boolean;
144
+ } | {
145
+ type: "tandem";
146
+ isTandem: boolean;
147
+ } | {
148
+ type: "propulsion";
149
+ propulsion: "manual" | "electric" | "hybrid" | "combustion" | "manualAssist";
150
+ } | {
151
+ type: "childSeat";
152
+ hasChildSeat: boolean;
153
+ };
154
+ declare const TimeZoneArray: readonly ["Europe/Andorra", "Asia/Dubai", "Asia/Kabul", "Europe/Tirane", "Asia/Yerevan", "Antarctica/Casey", "Antarctica/Davis", "Antarctica/DumontDUrville", "Antarctica/Mawson", "Antarctica/Palmer", "Antarctica/Rothera", "Antarctica/Syowa", "Antarctica/Troll", "Antarctica/Vostok", "America/Argentina/Buenos_Aires", "America/Argentina/Cordoba", "America/Argentina/Salta", "America/Argentina/Jujuy", "America/Argentina/Tucuman", "America/Argentina/Catamarca", "America/Argentina/La_Rioja", "America/Argentina/San_Juan", "America/Argentina/Mendoza", "America/Argentina/San_Luis", "America/Argentina/Rio_Gallegos", "America/Argentina/Ushuaia", "Pacific/Pago_Pago", "Europe/Vienna", "Australia/Lord_Howe", "Antarctica/Macquarie", "Australia/Hobart", "Australia/Currie", "Australia/Melbourne", "Australia/Sydney", "Australia/Broken_Hill", "Australia/Brisbane", "Australia/Lindeman", "Australia/Adelaide", "Australia/Darwin", "Australia/Perth", "Australia/Eucla", "Asia/Baku", "America/Barbados", "Asia/Dhaka", "Europe/Brussels", "Europe/Sofia", "Atlantic/Bermuda", "Asia/Brunei", "America/La_Paz", "America/Noronha", "America/Belem", "America/Fortaleza", "America/Recife", "America/Araguaina", "America/Maceio", "America/Bahia", "America/Sao_Paulo", "America/Campo_Grande", "America/Cuiaba", "America/Santarem", "America/Porto_Velho", "America/Boa_Vista", "America/Manaus", "America/Eirunepe", "America/Rio_Branco", "America/Nassau", "Asia/Thimphu", "Europe/Minsk", "America/Belize", "America/St_Johns", "America/Halifax", "America/Glace_Bay", "America/Moncton", "America/Goose_Bay", "America/Blanc-Sablon", "America/Toronto", "America/Nipigon", "America/Thunder_Bay", "America/Iqaluit", "America/Pangnirtung", "America/Atikokan", "America/Winnipeg", "America/Rainy_River", "America/Resolute", "America/Rankin_Inlet", "America/Regina", "America/Swift_Current", "America/Edmonton", "America/Cambridge_Bay", "America/Yellowknife", "America/Inuvik", "America/Creston", "America/Dawson_Creek", "America/Fort_Nelson", "America/Vancouver", "America/Whitehorse", "America/Dawson", "Indian/Cocos", "Europe/Zurich", "Africa/Abidjan", "Pacific/Rarotonga", "America/Santiago", "America/Punta_Arenas", "Pacific/Easter", "Asia/Shanghai", "Asia/Urumqi", "America/Bogota", "America/Costa_Rica", "America/Havana", "Atlantic/Cape_Verde", "America/Curacao", "Indian/Christmas", "Asia/Nicosia", "Asia/Famagusta", "Europe/Prague", "Europe/Berlin", "Europe/Copenhagen", "America/Santo_Domingo", "Africa/Algiers", "America/Guayaquil", "Pacific/Galapagos", "Europe/Tallinn", "Africa/Cairo", "Africa/El_Aaiun", "Europe/Madrid", "Africa/Ceuta", "Atlantic/Canary", "Europe/Helsinki", "Pacific/Fiji", "Atlantic/Stanley", "Pacific/Chuuk", "Pacific/Pohnpei", "Pacific/Kosrae", "Atlantic/Faroe", "Europe/Paris", "Europe/London", "Asia/Tbilisi", "America/Cayenne", "Africa/Accra", "Europe/Gibraltar", "America/Godthab", "America/Danmarkshavn", "America/Scoresbysund", "America/Thule", "Europe/Athens", "Atlantic/South_Georgia", "America/Guatemala", "Pacific/Guam", "Africa/Bissau", "America/Guyana", "Asia/Hong_Kong", "America/Tegucigalpa", "America/Port-au-Prince", "Europe/Budapest", "Asia/Jakarta", "Asia/Pontianak", "Asia/Makassar", "Asia/Jayapura", "Europe/Dublin", "Asia/Jerusalem", "Asia/Kolkata", "Indian/Chagos", "Asia/Baghdad", "Asia/Tehran", "Atlantic/Reykjavik", "Europe/Rome", "America/Jamaica", "Asia/Amman", "Asia/Tokyo", "Africa/Nairobi", "Asia/Bishkek", "Pacific/Tarawa", "Pacific/Enderbury", "Pacific/Kiritimati", "Asia/Pyongyang", "Asia/Seoul", "Asia/Almaty", "Asia/Qyzylorda", "Asia/Qostanay", "Asia/Aqtobe", "Asia/Aqtau", "Asia/Atyrau", "Asia/Oral", "Asia/Beirut", "Asia/Colombo", "Africa/Monrovia", "Europe/Vilnius", "Europe/Luxembourg", "Europe/Riga", "Africa/Tripoli", "Africa/Casablanca", "Europe/Monaco", "Europe/Chisinau", "Pacific/Majuro", "Pacific/Kwajalein", "Asia/Yangon", "Asia/Ulaanbaatar", "Asia/Hovd", "Asia/Choibalsan", "Asia/Macau", "America/Martinique", "Europe/Malta", "Indian/Mauritius", "Indian/Maldives", "America/Mexico_City", "America/Cancun", "America/Merida", "America/Monterrey", "America/Matamoros", "America/Mazatlan", "America/Chihuahua", "America/Ojinaga", "America/Hermosillo", "America/Tijuana", "America/Bahia_Banderas", "Asia/Kuala_Lumpur", "Asia/Kuching", "Africa/Maputo", "Africa/Windhoek", "Pacific/Noumea", "Pacific/Norfolk", "Africa/Lagos", "America/Managua", "Europe/Amsterdam", "Europe/Oslo", "Asia/Kathmandu", "Pacific/Nauru", "Pacific/Niue", "Pacific/Auckland", "Pacific/Chatham", "America/Panama", "America/Lima", "Pacific/Tahiti", "Pacific/Marquesas", "Pacific/Gambier", "Pacific/Port_Moresby", "Pacific/Bougainville", "Asia/Manila", "Asia/Karachi", "Europe/Warsaw", "America/Miquelon", "Pacific/Pitcairn", "America/Puerto_Rico", "Asia/Gaza", "Asia/Hebron", "Europe/Lisbon", "Atlantic/Madeira", "Atlantic/Azores", "Pacific/Palau", "America/Asuncion", "Asia/Qatar", "Indian/Reunion", "Europe/Bucharest", "Europe/Belgrade", "Europe/Kaliningrad", "Europe/Moscow", "Europe/Simferopol", "Europe/Kirov", "Europe/Astrakhan", "Europe/Volgograd", "Europe/Saratov", "Europe/Ulyanovsk", "Europe/Samara", "Asia/Yekaterinburg", "Asia/Omsk", "Asia/Novosibirsk", "Asia/Barnaul", "Asia/Tomsk", "Asia/Novokuznetsk", "Asia/Krasnoyarsk", "Asia/Irkutsk", "Asia/Chita", "Asia/Yakutsk", "Asia/Khandyga", "Asia/Vladivostok", "Asia/Ust-Nera", "Asia/Magadan", "Asia/Sakhalin", "Asia/Srednekolymsk", "Asia/Kamchatka", "Asia/Anadyr", "Asia/Riyadh", "Pacific/Guadalcanal", "Indian/Mahe", "Africa/Khartoum", "Europe/Stockholm", "Asia/Singapore", "America/Paramaribo", "Africa/Juba", "Africa/Sao_Tome", "America/El_Salvador", "Asia/Damascus", "America/Grand_Turk", "Africa/Ndjamena", "Indian/Kerguelen", "Asia/Bangkok", "Asia/Dushanbe", "Pacific/Fakaofo", "Asia/Dili", "Asia/Ashgabat", "Africa/Tunis", "Pacific/Tongatapu", "Europe/Istanbul", "America/Port_of_Spain", "Pacific/Funafuti", "Asia/Taipei", "Europe/Kiev", "Europe/Uzhgorod", "Europe/Zaporozhye", "Pacific/Wake", "America/New_York", "America/Detroit", "America/Kentucky/Louisville", "America/Kentucky/Monticello", "America/Indiana/Indianapolis", "America/Indiana/Vincennes", "America/Indiana/Winamac", "America/Indiana/Marengo", "America/Indiana/Petersburg", "America/Indiana/Vevay", "America/Chicago", "America/Indiana/Tell_City", "America/Indiana/Knox", "America/Menominee", "America/North_Dakota/Center", "America/North_Dakota/New_Salem", "America/North_Dakota/Beulah", "America/Denver", "America/Boise", "America/Phoenix", "America/Los_Angeles", "America/Anchorage", "America/Juneau", "America/Sitka", "America/Metlakatla", "America/Yakutat", "America/Nome", "America/Adak", "Pacific/Honolulu", "America/Montevideo", "Asia/Samarkand", "Asia/Tashkent", "America/Caracas", "Asia/Ho_Chi_Minh", "Pacific/Efate", "Pacific/Wallis", "Pacific/Apia", "Africa/Johannesburg"];
155
+ type TimeZone = (typeof TimeZoneArray)[number];
156
+ type StarRating = 1 | 2 | 3 | 4 | 5;
157
+ type Unit = "meter" | "centimeter" | "millimeter" | "kilogram" | "gram" | "milligram" | "liter" | "milliliter" | "percent" | "volt" | "watt" | "ampere" | "joule" | "hertz" | "kelvin" | "celsius" | "fahrenheit" | "byte" | "bit" | "second" | "minute" | "hour" | "day" | "week" | "month" | "year";
158
+ type Parameter = {
159
+ name: string;
160
+ type: "number";
161
+ lastChangeAt: Date | null;
162
+ current: number;
163
+ unit: Unit | null;
164
+ } | {
165
+ name: string;
166
+ type: "enum";
167
+ lastChangeAt: Date;
168
+ enumArray: string[];
169
+ current: string;
170
+ } | {
171
+ name: string;
172
+ type: "string";
173
+ lastChangeAt: Date;
174
+ current: string;
175
+ } | {
176
+ name: string;
177
+ type: "boolean";
178
+ lastChangeAt: Date;
179
+ current: boolean;
180
+ };
181
+ declare namespace Layout {
182
+ type Block = {
183
+ visibleCondition: Condition | null;
184
+ };
185
+ export type PreviewButton = {
186
+ icon: string;
187
+ title: LocaleString;
188
+ buttonName: string;
189
+ };
190
+ export namespace Text {
191
+ interface TextBlock extends Block {
192
+ text: LocaleString;
193
+ }
194
+ export interface Plain extends TextBlock {
195
+ type: "text.plain";
196
+ }
197
+ export interface Heading extends TextBlock {
198
+ type: "text.heading";
199
+ }
200
+ export interface Subtitle extends TextBlock {
201
+ type: "text.subtitle";
202
+ }
203
+ export { };
204
+ }
205
+ export interface Image extends Block {
206
+ type: "image";
207
+ urlDark: string;
208
+ urlLight: string;
209
+ }
210
+ export namespace Button {
211
+ interface General extends Block {
212
+ text: LocaleString;
213
+ buttonName: string;
214
+ }
215
+ interface Small extends General {
216
+ type: "button.small";
217
+ }
218
+ interface Large extends General {
219
+ type: "button.large";
220
+ }
221
+ }
222
+ export namespace Form {
223
+ interface FormBlock extends Block {
224
+ }
225
+ export interface General extends FormBlock {
226
+ type: "form";
227
+ columnArray: Array<Column.One>;
228
+ }
229
+ export type AnyColumn = Column.One | Column.Two;
230
+ export namespace Column {
231
+ interface FormColumn extends FormBlock {
232
+ }
233
+ export interface One extends FormColumn {
234
+ type: "one";
235
+ elementArray: Array<AnyElement>;
236
+ }
237
+ export interface Two extends FormColumn {
238
+ type: "two";
239
+ elementArray: Array<AnyElement>;
240
+ }
241
+ export type AnyElement = Element.Card | Element.Toggle;
242
+ export namespace Element {
243
+ interface FormElementBlock extends FormColumn {
244
+ title: LocaleString;
245
+ icon: string | null;
246
+ }
247
+ export interface Card extends FormElementBlock {
248
+ type: "card";
249
+ elementArray: Array<CardElement>;
250
+ buttonName: string | null;
251
+ }
252
+ export type CardElement = {
253
+ type: "text.plain";
254
+ text: LocaleString;
255
+ };
256
+ export interface Toggle extends FormElementBlock {
257
+ type: "toggle";
258
+ onButtonName: string;
259
+ offButtonName: string;
260
+ defaultValueParameterName: string;
261
+ }
262
+ export { };
263
+ }
264
+ export { };
265
+ }
266
+ export { };
267
+ }
268
+ export { };
269
+ }
270
+ type LayoutBlock = Layout.Text.Plain | Layout.Text.Heading | Layout.Text.Subtitle | Layout.Image | Layout.Button.Small | Layout.Button.Large | Layout.Form.General;
271
+ type Utilization = {
272
+ type: "percentage";
273
+ percentage: number;
274
+ } | {
275
+ type: "occupancy";
276
+ maximum: number;
277
+ current: number;
278
+ };
279
+ type Condition = {
280
+ jsonLogic: any;
281
+ };
282
+ type Command = {
283
+ name: string;
284
+ type: "number";
285
+ value: number;
286
+ } | {
287
+ name: string;
288
+ type: "string";
289
+ value: string;
290
+ } | {
291
+ name: string;
292
+ type: "boolean";
293
+ value: boolean;
294
+ } | {
295
+ name: string;
296
+ type: "enum";
297
+ value: string;
298
+ enumArray: string[];
299
+ } | {
300
+ type: "parameter";
301
+ name: string;
302
+ parameterName: string;
303
+ };
304
+ interface LocaleString {
305
+ de: string;
306
+ en: string;
307
+ fr: string;
308
+ }
309
+
310
+ declare namespace JUHUU$1 {
311
+ interface SetupConfig {
312
+ environment: Environment;
313
+ getAccessToken: () => Promise<string | null>;
314
+ onException: <T>(response: JUHUU$1.HttpResponse<T>) => Promise<"abort">;
315
+ setAccessToken: (accessToken: string) => Promise<void>;
316
+ getRefreshToken: () => Promise<string | null>;
317
+ setRefreshToken: (refreshToken: string) => Promise<void>;
318
+ clientVersion: string;
319
+ }
320
+ interface HttpResponse<T> {
321
+ ok: boolean;
322
+ data: T;
323
+ statusText: string;
324
+ status: number;
325
+ }
326
+ type RequestOptions = {
327
+ /**
328
+ * If this is true, the onException function will be called if the request fails.
329
+ */
330
+ triggerOnException?: boolean;
331
+ /**
332
+ * If this accessToken is provided, the request will be sent with this accessToken.
333
+ */
334
+ accessToken?: string;
335
+ /**
336
+ * If this is true, a new accessToken will be requested if the current one is expired.
337
+ */
338
+ refreshTokensIfNecessary?: boolean;
339
+ };
340
+ namespace Session {
341
+ type Base = {
342
+ id: string;
343
+ status: "waitingForPayment" | "ready" | "completed";
344
+ paymentId: string | null;
345
+ userId: string | null;
346
+ propertyId: string;
347
+ createdAt: Date;
348
+ terminatedAt: Date | null;
349
+ terminatedBy: string | null;
350
+ scheduledTerminationAt: Date;
351
+ scheduledTerminationHandler: "cloudFunction" | "cloudTask";
352
+ reminderEnabled: boolean | null;
353
+ reminderAt: Date | null;
354
+ reminderHandler: "cloudFunction" | "cloudTask" | null;
355
+ reminderExecuted: boolean;
356
+ timeZone: TimeZone;
357
+ autoRenewManualEnabled: boolean;
358
+ manualTerminationEnabled: boolean;
359
+ version: number;
360
+ isOffSession: boolean;
361
+ tariff: JUHUU$1.Tariff.Object;
362
+ previousAutoRenewSessionId: string | null;
363
+ autoRenew: boolean;
364
+ locationId: string | null;
365
+ locationName: string | null;
366
+ locationGroupId: string | null;
367
+ locationGroupName: string | null;
368
+ };
369
+ export interface Rent extends Base {
370
+ type: "rent";
371
+ managementUserId: string | null;
372
+ deviceIdArray: string[];
373
+ autoRenew: boolean;
374
+ previousAutoRenewSessionId: string | null;
375
+ surveyId: string | null;
376
+ surveyEnabled: boolean;
377
+ }
378
+ export interface Reservation extends Base {
379
+ type: "reservation";
380
+ }
381
+ export type Object = Rent | Reservation;
382
+ export namespace Create {
383
+ type Params = {
384
+ locationId: string;
385
+ tariffId: string;
386
+ autoRenew: boolean;
387
+ sessionType: Object["type"];
388
+ isOffSession: boolean;
389
+ idempotencyKey: string;
390
+ userId: string;
391
+ };
392
+ type Options = JUHUU$1.RequestOptions;
393
+ type Response = {
394
+ session: JUHUU$1.Session.Object;
395
+ };
396
+ }
397
+ export namespace Retrieve {
398
+ type Params = {
399
+ sessionId: string;
400
+ };
401
+ type Options = {
402
+ expand?: Array<"property">;
403
+ } & JUHUU$1.RequestOptions;
404
+ type Response = {
405
+ session: JUHUU$1.Session.Object;
406
+ property?: JUHUU$1.Property.Object;
407
+ };
408
+ }
409
+ export namespace List {
410
+ type Params = {
411
+ propertyId?: string;
412
+ userId?: string;
413
+ managementUserId?: string;
414
+ statusArray?: JUHUU$1.Session.Object["status"][];
415
+ };
416
+ type Options = JUHUU$1.RequestOptions;
417
+ type Response = JUHUU$1.Session.Object[];
418
+ }
419
+ export namespace Update {
420
+ type Params = {
421
+ sessionId: string;
422
+ autoRenew: boolean;
423
+ };
424
+ type Options = JUHUU$1.RequestOptions;
425
+ type Response = {
426
+ session: JUHUU$1.Session.Object;
427
+ };
428
+ }
429
+ export namespace Terminate {
430
+ type Params = {
431
+ sessionId: string;
432
+ isOffSession: boolean;
433
+ };
434
+ type Options = JUHUU$1.RequestOptions;
435
+ type Response = {
436
+ session: JUHUU$1.Session.Object | null;
437
+ };
438
+ }
439
+ export namespace AttachLocation {
440
+ type Params = {
441
+ sessionId: string;
442
+ locationId: string;
443
+ };
444
+ type Options = JUHUU$1.RequestOptions;
445
+ type Response = {
446
+ session: JUHUU$1.Session.Object;
447
+ };
448
+ }
449
+ export { };
450
+ }
451
+ namespace User {
452
+ type Base = {
453
+ id: string;
454
+ createdAt: Date;
455
+ description: string | null;
456
+ platform: "ios" | "android" | "windows" | "macos" | "web" | null;
457
+ supportPassphrase: string;
458
+ appVersion: number | null;
459
+ termsVersion: number;
460
+ name: string | null;
461
+ stripeCustomerId: string;
462
+ defaultPaymentMethodId: string | null;
463
+ defaultPaymentMethodProvider: "stripe" | "not_set";
464
+ acceptedTermIdArray: string[];
465
+ licenseArray: JUHUU$1.License.Object[];
466
+ languageCode: LanguageCode | null;
467
+ billingAddress: DeepNullable<Address>;
468
+ billingEmail: string | null;
469
+ billingEmailVerified: boolean;
470
+ vat: string | null;
471
+ notifications: {
472
+ email: {
473
+ enabled: boolean;
474
+ emailArray: string[];
475
+ };
476
+ sms: {
477
+ enabled: boolean;
478
+ phoneNumberArray: string[];
479
+ };
480
+ push: {
481
+ enabled: boolean;
482
+ pushTokenArray: PushToken[];
483
+ };
484
+ };
485
+ };
486
+ export interface Standard extends Base {
487
+ type: "standard";
488
+ managementUserId: string | null;
489
+ }
490
+ export interface Management extends Base {
491
+ type: "management";
492
+ contactPerson: Person;
493
+ }
494
+ export type Object = Standard | Management;
495
+ export namespace Retrieve {
496
+ type Params = {
497
+ userId: string;
498
+ };
499
+ type Options = JUHUU$1.RequestOptions;
500
+ type Response = {
501
+ user: JUHUU$1.User.Object;
502
+ };
503
+ }
504
+ export namespace List {
505
+ type Params = {
506
+ managementUserId?: string;
507
+ };
508
+ type Options = JUHUU$1.RequestOptions;
509
+ type Response = JUHUU$1.User.Object[];
510
+ }
511
+ export namespace Exists {
512
+ type Params = {
513
+ email: string;
514
+ };
515
+ type Options = JUHUU$1.RequestOptions;
516
+ type Response = {
517
+ exists: boolean;
518
+ };
519
+ }
520
+ export namespace Update {
521
+ type Params = {
522
+ userId: string;
523
+ name?: string;
524
+ licenseArray?: string[];
525
+ platform?: Platform;
526
+ languageCode?: LanguageCode;
527
+ appVersion?: VersionNumber;
528
+ billingAddress?: DeepNullable<Address>;
529
+ vat?: string | null;
530
+ acceptedTermIdArray?: string[];
531
+ };
532
+ type Options = JUHUU$1.RequestOptions;
533
+ type Response = {
534
+ user: JUHUU$1.User.Object;
535
+ };
536
+ }
537
+ export namespace LoginEmailPassword {
538
+ type Params = {
539
+ password: string;
540
+ email: string;
541
+ };
542
+ type Options = JUHUU$1.RequestOptions;
543
+ type Response = {
544
+ accessToken: string;
545
+ refreshToken: string;
546
+ };
547
+ }
548
+ export namespace PaymentMethodTokens {
549
+ type Params = {
550
+ userId: string;
551
+ };
552
+ type Options = JUHUU$1.RequestOptions;
553
+ type Response = {
554
+ stripe: {
555
+ ephemeralKeySecret: string;
556
+ customerId: string;
557
+ publishableKey: string;
558
+ clientSecret: string;
559
+ };
560
+ };
561
+ }
562
+ export namespace RegisterEmailPassword {
563
+ type Params = {
564
+ password: string;
565
+ email: string;
566
+ };
567
+ type Options = JUHUU$1.RequestOptions;
568
+ type Response = {
569
+ accessToken: string;
570
+ refreshToken: string;
571
+ };
572
+ }
573
+ export namespace RefreshAccessToken {
574
+ type Params = {
575
+ refreshToken: string;
576
+ };
577
+ type Options = JUHUU$1.RequestOptions;
578
+ type Response = {
579
+ accessToken: string;
580
+ refreshToken: string;
581
+ };
582
+ }
583
+ export namespace InviteEmployee {
584
+ type Params = {
585
+ userId: string;
586
+ /**
587
+ * The email of the user to invite.
588
+ */
589
+ email?: string;
590
+ /**
591
+ * The userId of the user to invite.
592
+ */
593
+ userIdToInvite?: string;
594
+ };
595
+ type Options = JUHUU$1.RequestOptions;
596
+ type Response = void;
597
+ }
598
+ export namespace RemoveEmployee {
599
+ type Params = {
600
+ userId: string;
601
+ userIdToRemove?: string;
602
+ };
603
+ type Options = JUHUU$1.RequestOptions;
604
+ type Response = {
605
+ user: JUHUU$1.User.Object;
606
+ };
607
+ }
608
+ export { };
609
+ }
610
+ namespace Term {
611
+ type Object = {
612
+ id: string;
613
+ name: string;
614
+ url: string;
615
+ dsgvoUrl: string;
616
+ propertyId: string;
617
+ };
618
+ namespace Retrieve {
619
+ type Params = {
620
+ termId: string;
621
+ };
622
+ type Options = {
623
+ expand?: Array<"property">;
624
+ } & JUHUU$1.RequestOptions;
625
+ type Response = {
626
+ term: JUHUU$1.Term.Object;
627
+ property?: JUHUU$1.Property.Object;
628
+ };
629
+ }
630
+ namespace Accept {
631
+ type Params = {
632
+ termId: string;
633
+ userId: string;
634
+ };
635
+ type Options = JUHUU$1.RequestOptions;
636
+ type Response = {
637
+ term: JUHUU$1.Term.Object;
638
+ };
639
+ }
640
+ }
641
+ namespace Tariff {
642
+ type Object = {
643
+ id: string;
644
+ name: LocaleString;
645
+ propertyId: string;
646
+ reminderEnabled: boolean;
647
+ reminderPercentage: number;
648
+ currencyCode: CurrencyCode;
649
+ amount: number[];
650
+ continue: number;
651
+ interval: number;
652
+ duration: number;
653
+ autoRenewMode: AutoRenewMode;
654
+ roundToMidnight: boolean;
655
+ autoRenewManualEnabled: boolean;
656
+ manualTerminationEnabled: boolean;
657
+ salesTaxPercentage: number;
658
+ serviceFeePercentage: number;
659
+ serviceFeeMin: number;
660
+ serviceFeeMax: number;
661
+ };
662
+ }
663
+ namespace Survey {
664
+ type Object = {
665
+ id: string;
666
+ starRating: StarRating;
667
+ userId: string;
668
+ writtenFeedback: string | null;
669
+ propertyId: string;
670
+ sessionId: string;
671
+ };
672
+ }
673
+ namespace Property {
674
+ type Base = {
675
+ id: string;
676
+ readonly object: "property";
677
+ email: string | null;
678
+ phone: string | null;
679
+ ownerUserIdArray: string[];
680
+ name: string;
681
+ website: string | null;
682
+ faqUrl: string | null;
683
+ bannerImageLight: string | null;
684
+ bannerImageDark: string | null;
685
+ iconLight: string | null;
686
+ iconDark: string | null;
687
+ version: number;
688
+ deviceIconLight: string | null;
689
+ deviceIconDark: string | null;
690
+ colorScheme: ColorScheme;
691
+ contactUrl: string | null;
692
+ };
693
+ export interface Internal extends Base {
694
+ type: "internal";
695
+ legalName: string;
696
+ emailSignature: string;
697
+ billingAddress: Address;
698
+ vat: string;
699
+ invoiceImage: string;
700
+ invoiceNumberPrefix: string;
701
+ stripeConnectedAccountId: string;
702
+ payoutPostProcessIdentifier: "oebbV1" | null;
703
+ iban: string;
704
+ bic: string;
705
+ automaticPayoutsEnabled: boolean;
706
+ payoutCurrencyCode: CurrencyCode;
707
+ timeZone: TimeZone;
708
+ }
709
+ export interface External extends Base {
710
+ type: "external";
711
+ }
712
+ export type Object = Internal | External;
713
+ export namespace Retrieve {
714
+ type Params = {
715
+ propertyId: string;
716
+ };
717
+ type Options = {};
718
+ type Response = {
719
+ property: JUHUU$1.Property.Object;
720
+ };
721
+ }
722
+ export namespace List {
723
+ type Params = {};
724
+ type Options = JUHUU$1.RequestOptions;
725
+ type Response = JUHUU$1.Property.Object[];
726
+ }
727
+ export { };
728
+ }
729
+ namespace Point {
730
+ type Base = {
731
+ id: string;
732
+ readonly object: "point";
733
+ location: GeoPoint;
734
+ altitudeRange: [number, number];
735
+ invalidAt: Date;
736
+ source: "fluctuo" | null;
737
+ purposeArray: Purpose[];
738
+ };
739
+ export interface Single extends Base {
740
+ type: "single";
741
+ source: "fluctuo" | null;
742
+ referenceObject: "location";
743
+ referenceObjectId: string;
744
+ iconLight: string | null;
745
+ iconDark: string | null;
746
+ utilization: Utilization | null;
747
+ }
748
+ export interface Aggregation extends Base {
749
+ type: "aggregation";
750
+ }
751
+ export type Object = Single | Aggregation;
752
+ export namespace Map {
753
+ type Params = {
754
+ categoryArray: Category[];
755
+ modalityArray: Modality[];
756
+ sectorArray: string[];
757
+ longitudeTopLeft: number;
758
+ latitudeTopLeft: number;
759
+ longitudeBottomRight: number;
760
+ latitudeBottomRight: number;
761
+ };
762
+ type Options = JUHUU$1.RequestOptions;
763
+ type Response = JUHUU$1.Point.Object[];
764
+ }
765
+ export { };
766
+ }
767
+ namespace Payout {
768
+ type Object = {
769
+ id: string;
770
+ status: PayoutStatus;
771
+ propertyId: string;
772
+ createdAt: string;
773
+ serviceMonth: ServiceMonth;
774
+ serviceYear: number;
775
+ amountCaptured: number;
776
+ amountToPayout: number;
777
+ transferPaymentIdArray: string[];
778
+ periodPaymentIdArray: string[];
779
+ stripePayoutFee: number | null;
780
+ stripePaymentIntentFees: number;
781
+ stripeTransferId: string | null;
782
+ stripeTransferBalanceTransactionId: string | null;
783
+ stripePayoutId: string | null;
784
+ stripePayoutBalanceTransactionId: string | null;
785
+ lowestInvoiceNumber: number;
786
+ highestInvoiceNumber: number;
787
+ previousPayoutId: string | null;
788
+ approvedBy: string | null;
789
+ statementDescriptor: string;
790
+ items: PostingRow[];
791
+ receiver: Party;
792
+ number: number | null;
793
+ currencyCode: CurrencyCode;
794
+ };
795
+ }
796
+ namespace Payment {
797
+ type Object = {
798
+ id: string;
799
+ version: number;
800
+ provider: PaymentServiceProvider | null;
801
+ status: PaymentStatus;
802
+ amountAuthorized: number;
803
+ amountAuthorizedWithoutServiceFee: number;
804
+ amountFinal: number | null;
805
+ amountCaptured: number;
806
+ amountToPayout: number | null;
807
+ createdAt: Date;
808
+ billingAddress: DeepNullable<Address>;
809
+ invoicePdfId: string | null;
810
+ providerPaymentId: string;
811
+ userId: string;
812
+ reason: PaymentReason;
813
+ transactionFee: number | null;
814
+ paymentMethod: PaymentMethod | null;
815
+ estimatedReadyForPayoutAt: Date | null;
816
+ propertyId: string;
817
+ payoutId: string | null;
818
+ vat: string | null;
819
+ accountingAreaId: string;
820
+ currencyCode: CurrencyCode;
821
+ serviceFee: number | null;
822
+ scheduledCaptureAt: Date | null;
823
+ automaticAmountFinalizationAt: Date | null;
824
+ serviceFeePercentage: number;
825
+ serviceFeeMin: number;
826
+ serviceFeeMax: number;
827
+ salesTaxPercentage: number;
828
+ number: number | null;
829
+ reasonDescription: string | null;
830
+ amountCapturedNet: number | null;
831
+ taxAmount: number | null;
832
+ };
833
+ namespace Retrieve {
834
+ type Params = {
835
+ paymentId: string;
836
+ };
837
+ type Options = {
838
+ expand?: Array<"property">;
839
+ } & JUHUU$1.RequestOptions;
840
+ type Response = {
841
+ payment: JUHUU$1.Payment.Object;
842
+ property?: JUHUU$1.Property.Object;
843
+ };
844
+ }
845
+ namespace RetrieveInvoiceUrl {
846
+ type Params = {
847
+ paymentId: string;
848
+ };
849
+ type Options = {} & JUHUU$1.RequestOptions;
850
+ type Response = {
851
+ invoiceUrl: string;
852
+ };
853
+ }
854
+ namespace Tokens {
855
+ type Params = {
856
+ paymentId: string;
857
+ };
858
+ type Options = {};
859
+ type Response = {
860
+ payment: JUHUU$1.Payment.Object;
861
+ tokens: {
862
+ ephemeralKey: string;
863
+ customer: string;
864
+ publishableKey: string;
865
+ clientSecret: string;
866
+ };
867
+ };
868
+ }
869
+ }
870
+ namespace Location {
871
+ type Base = {
872
+ id: string;
873
+ readonly object: "location";
874
+ logoLight: string | null;
875
+ logoDark: string | null;
876
+ location: GeoPoint;
877
+ altitudeRange: [number, number];
878
+ invalidAt: Date;
879
+ utilization: Utilization | null;
880
+ purposeArray: Purpose[];
881
+ circumstanceArray: Circumstance[];
882
+ propertyId: string;
883
+ name: string;
884
+ source: "fluctuo" | null;
885
+ rentOfferArray: OfferDto[];
886
+ reservationOfferArray: OfferDto[];
887
+ iconLight: string | null;
888
+ iconDark: string | null;
889
+ address: Address;
890
+ termId: string;
891
+ timeZone: TimeZone;
892
+ };
893
+ export interface RentableDeviceGroup extends Base {
894
+ type: "rentableDeviceGroup";
895
+ concurrentSessionIdArray: string[];
896
+ maximumConcurrentSessions: number;
897
+ surveyEnabled: boolean;
898
+ accountingAreaId: string;
899
+ deviceIdArray: string[];
900
+ }
901
+ export interface RentableDevice extends Base {
902
+ type: "rentableDevice";
903
+ source: "fluctuo" | null;
904
+ concurrentSessionIdArray: string[];
905
+ maximumConcurrentSessions: number;
906
+ surveyEnabled: boolean;
907
+ accountingAreaId: string;
908
+ rentableDeviceGroupLocationId: string | null;
909
+ deviceId: string;
910
+ }
911
+ export interface UseableDevice extends Base {
912
+ type: "useableDevice";
913
+ deviceId: string;
914
+ useableDeviceGroupLocationId: string | null;
915
+ }
916
+ export type Object = RentableDeviceGroup | RentableDevice | UseableDevice;
917
+ export namespace Retrieve {
918
+ type Params = {
919
+ locationId: string;
920
+ };
921
+ type Options = {
922
+ expand?: Array<"property" | "tariffArray">;
923
+ } & JUHUU$1.RequestOptions;
924
+ type Response = {
925
+ location: JUHUU$1.Location.Object;
926
+ property: JUHUU$1.Property.Object;
927
+ tariffArray: JUHUU$1.Tariff.Object[];
928
+ };
929
+ }
930
+ export namespace List {
931
+ type Params = {
932
+ rentableDeviceGroupLocationId?: string;
933
+ };
934
+ type Options = JUHUU$1.RequestOptions;
935
+ type Response = JUHUU$1.Location.Object[];
936
+ }
937
+ export { };
938
+ }
939
+ namespace Link {
940
+ type Base = {
941
+ id: string;
942
+ readonly object: "link";
943
+ propertyId: string;
944
+ referenceObject: "location";
945
+ referenceObjectId: string;
946
+ name: string;
947
+ };
948
+ export interface FiveLetterQr extends Base {
949
+ type: "fiveLetterQr";
950
+ fiveLetterQr: string;
951
+ }
952
+ export type Object = FiveLetterQr;
953
+ export namespace Retrieve {
954
+ type Params = {
955
+ linkId: string;
956
+ };
957
+ type Options = {
958
+ expand: Array<"property">;
959
+ };
960
+ type Response = {
961
+ link: JUHUU$1.Link.Object;
962
+ property?: JUHUU$1.Property.Object;
963
+ };
964
+ }
965
+ export namespace List {
966
+ type Params = {
967
+ fiveLetterQr?: string;
968
+ propertyId?: string;
969
+ };
970
+ type Options = {};
971
+ type Response = JUHUU$1.Link.Object[];
972
+ }
973
+ export { };
974
+ }
975
+ namespace License {
976
+ type Object = {
977
+ id: string;
978
+ validUntil: Date | null;
979
+ licenseTemplateId: string | null;
980
+ version: number;
981
+ };
982
+ }
983
+ namespace Device {
984
+ type Object = {
985
+ id: string;
986
+ readonly object: "device";
987
+ propertyId: string;
988
+ name: string;
989
+ description: string | null;
990
+ status: DeviceStatus;
991
+ parameterArray: Parameter[];
992
+ version: number;
993
+ deviceTemplateId: string;
994
+ source: "fluctuo" | null;
995
+ location: GeoPoint;
996
+ fuel: {
997
+ type: FuelType;
998
+ level: number;
999
+ } | null;
1000
+ rangeRemaining: number | null;
1001
+ invalidAt: Date | null;
1002
+ connectorId: string | null;
1003
+ connectorParameter: string | null;
1004
+ };
1005
+ namespace Retrieve {
1006
+ type Params = {
1007
+ deviceId: string;
1008
+ source?: "fluctuo" | null;
1009
+ };
1010
+ type Options = {
1011
+ expand?: Array<"property" | "deviceTemplate">;
1012
+ } & JUHUU$1.RequestOptions;
1013
+ type Response = {
1014
+ device: JUHUU$1.Device.Object;
1015
+ deviceTemplate?: JUHUU$1.DeviceTemplate.Object;
1016
+ property?: JUHUU$1.Property.Object;
1017
+ };
1018
+ }
1019
+ namespace List {
1020
+ type Params = {
1021
+ statusArray?: DeviceStatus[];
1022
+ rentable?: boolean;
1023
+ propertyId?: string;
1024
+ visible?: boolean;
1025
+ deviceTemplateId?: string;
1026
+ termId?: string;
1027
+ };
1028
+ type Options = JUHUU$1.RequestOptions;
1029
+ type Response = JUHUU$1.Device.Object[];
1030
+ }
1031
+ namespace Realtime {
1032
+ type Params = {
1033
+ deviceId: string;
1034
+ };
1035
+ type Options = JUHUU$1.RequestOptions;
1036
+ type Response = {
1037
+ onUpdated: (callback: (message: {
1038
+ payload: {
1039
+ after: JUHUU$1.Device.Object;
1040
+ before: JUHUU$1.Device.Object;
1041
+ changedFields: string[];
1042
+ };
1043
+ }) => void) => void;
1044
+ close: () => void;
1045
+ };
1046
+ }
1047
+ namespace Message {
1048
+ type Params = {
1049
+ deviceId: string;
1050
+ message: string;
1051
+ };
1052
+ type Options = JUHUU$1.RequestOptions;
1053
+ type Response = void;
1054
+ }
1055
+ namespace ParameterUpdate {
1056
+ type Params = {
1057
+ deviceId: string;
1058
+ parameterName: string;
1059
+ value: string | number | boolean;
1060
+ };
1061
+ type Options = JUHUU$1.RequestOptions;
1062
+ type Response = {
1063
+ device: JUHUU$1.Device.Object;
1064
+ };
1065
+ }
1066
+ namespace CommandExecute {
1067
+ type Params = {
1068
+ deviceId: string;
1069
+ commandName: string;
1070
+ };
1071
+ type Options = JUHUU$1.RequestOptions;
1072
+ type Response = {
1073
+ device: JUHUU$1.Device.Object;
1074
+ };
1075
+ }
1076
+ }
1077
+ namespace Connector {
1078
+ type Base = {
1079
+ id: string;
1080
+ connectionStatus: "online" | "offline";
1081
+ description: string | null;
1082
+ name: string;
1083
+ propertyId: string;
1084
+ lastOutboundAt: Date;
1085
+ lastInboundAt: Date;
1086
+ connectionMode: "alwaysOnline" | "temporaryOnline";
1087
+ };
1088
+ export interface Mqtt extends Base {
1089
+ type: "mqtt";
1090
+ username: string;
1091
+ password: string;
1092
+ simId: string;
1093
+ clientId: string;
1094
+ host: string;
1095
+ port: number;
1096
+ mqttRetain: boolean;
1097
+ mqttQos: "0" | "1" | "2";
1098
+ }
1099
+ export type Object = Mqtt;
1100
+ export { };
1101
+ }
1102
+ namespace DeviceTemplate {
1103
+ type Object = {
1104
+ id: string;
1105
+ readonly object: "deviceTemplate";
1106
+ productId: string;
1107
+ name: string;
1108
+ propertyId: string;
1109
+ parameterArray: Parameter[];
1110
+ nodeArray: Node[];
1111
+ userLayoutBlockArray: LayoutBlock[];
1112
+ userLayoutBlockActionButton: Layout.Button.General | null;
1113
+ maintenanceLayoutBlockArray: LayoutBlock[];
1114
+ maintenanceLayoutBlockActionButton: Layout.Button.General | null;
1115
+ source: "fluctuo" | null;
1116
+ invalidAt: Date | null;
1117
+ commandArray: Command[];
1118
+ useQuickActionArray: Layout.PreviewButton[];
1119
+ deviceImageDark: string;
1120
+ deviceImageLight: string;
1121
+ callToAction: LocaleString;
1122
+ };
1123
+ namespace Retrieve {
1124
+ type Params = {
1125
+ deviceTemplateId: string;
1126
+ source?: "fluctuo" | null;
1127
+ };
1128
+ type Options = JUHUU$1.RequestOptions;
1129
+ type Response = {
1130
+ deviceTemplate: JUHUU$1.DeviceTemplate.Object;
1131
+ };
1132
+ }
1133
+ }
1134
+ }
1135
+ type VersionNumber = `${number}.${number}.${number}`;
1136
+ type Environment = "development" | "production";
1137
+
1138
+ declare class Service {
1139
+ constructor(config: JUHUU$1.SetupConfig);
1140
+ readonly environment: Environment$1;
1141
+ readonly httpBaseUrl: string;
1142
+ readonly wssBaseUrl: string;
1143
+ readonly clientVersion: string;
1144
+ onException: <T>(response: JUHUU$1.HttpResponse<T>) => Promise<"abort" | "retry">;
1145
+ getAccessToken: () => Promise<string | null> | null;
1146
+ setAccessToken: (accessToken: string) => Promise<void>;
1147
+ getRefreshToken: () => Promise<string | null>;
1148
+ setRefreshToken: (refreshToken: string) => Promise<void>;
1149
+ sendRequest<T>({ url, method, body, useAuthentication, }: {
1150
+ method: "GET";
1151
+ url: string;
1152
+ body: undefined;
1153
+ useAuthentication: boolean;
1154
+ } | {
1155
+ method: "POST";
1156
+ url: string;
1157
+ body: any;
1158
+ useAuthentication: boolean;
1159
+ } | {
1160
+ method: "PATCH";
1161
+ url: string;
1162
+ body: any;
1163
+ useAuthentication: boolean;
1164
+ }, options?: JUHUU$1.RequestOptions): Promise<JUHUU$1.HttpResponse<T>>;
1165
+ private sendGetRequest;
1166
+ private sendPostRequest;
1167
+ private sendPatchRequest;
1168
+ connectToWebsocket<T>({ url }: {
1169
+ url: string;
1170
+ }): Socket;
1171
+ disconnectFromWebsocket(socket: Socket): void;
1172
+ }
1173
+
1174
+ declare class SessionService extends Service {
1175
+ constructor(config: JUHUU$1.SetupConfig);
1176
+ create(SessionCreateParams: JUHUU$1.Session.Create.Params, SessionCreateOptions?: JUHUU$1.Session.Create.Options): Promise<JUHUU$1.HttpResponse<JUHUU$1.Session.Create.Response>>;
1177
+ retrieve(SessionRetrieveParams: JUHUU$1.Session.Retrieve.Params, SessionRetrieveOptions?: JUHUU$1.Session.Retrieve.Options): Promise<JUHUU$1.HttpResponse<JUHUU$1.Session.Retrieve.Response>>;
1178
+ list(SessionListParams: JUHUU$1.Session.List.Params, SessionListOptions?: JUHUU$1.Session.List.Options): Promise<JUHUU$1.HttpResponse<JUHUU$1.Session.List.Response>>;
1179
+ update(SessionUpdateParams: JUHUU$1.Session.Update.Params, SessionUpdateOptions?: JUHUU$1.Session.Update.Options): Promise<JUHUU$1.HttpResponse<JUHUU$1.Session.Update.Response>>;
1180
+ terminate(SessionTerminateParams: JUHUU$1.Session.Terminate.Params, SessionTerminateOptions?: JUHUU$1.Session.Terminate.Options): Promise<JUHUU$1.HttpResponse<JUHUU$1.Session.Terminate.Response>>;
1181
+ attachLocation(SessionTerminateParams: JUHUU$1.Session.AttachLocation.Params, SessionTerminateOptions?: JUHUU$1.Session.AttachLocation.Options): Promise<JUHUU$1.HttpResponse<JUHUU$1.Session.AttachLocation.Response>>;
1182
+ }
1183
+
1184
+ declare class LinkService extends Service {
1185
+ constructor(config: JUHUU$1.SetupConfig);
1186
+ create(): Promise<void>;
1187
+ retrieve(LinkRetrieveParams: JUHUU$1.Link.Retrieve.Params, LinkRetrieveOptions?: JUHUU$1.Link.Retrieve.Options): Promise<JUHUU$1.HttpResponse<JUHUU$1.Link.Retrieve.Response>>;
1188
+ list(LinkListParams: JUHUU$1.Link.List.Params, LinkListOptions?: JUHUU$1.Link.List.Options): Promise<JUHUU$1.HttpResponse<JUHUU$1.Link.List.Response>>;
1189
+ update(): Promise<void>;
1190
+ delete(): Promise<void>;
1191
+ terminate(): Promise<void>;
1192
+ }
1193
+
1194
+ declare class UsersService extends Service {
1195
+ constructor(config: JUHUU$1.SetupConfig);
1196
+ create(): Promise<void>;
1197
+ retrieve(UserRetrieveParams: JUHUU$1.User.Retrieve.Params, UserRetrieveOptions?: JUHUU$1.User.Retrieve.Options): Promise<JUHUU$1.HttpResponse<JUHUU$1.User.Retrieve.Response>>;
1198
+ exists(UserExistsParams: JUHUU$1.User.Exists.Params, UserExistsOptions?: JUHUU$1.User.Exists.Options): Promise<JUHUU$1.HttpResponse<JUHUU$1.User.Exists.Response>>;
1199
+ registerEmailPassword(UserRegisterEmailPasswordParams: JUHUU$1.User.RegisterEmailPassword.Params, UserRegisterEmailPasswordOptions?: JUHUU$1.User.RegisterEmailPassword.Options): Promise<JUHUU$1.HttpResponse<JUHUU$1.User.RegisterEmailPassword.Response>>;
1200
+ loginEmailPassword(UserLoginEmailPasswordParams: JUHUU$1.User.LoginEmailPassword.Params, UserLoginEmailPasswordOptions?: JUHUU$1.User.LoginEmailPassword.Options): Promise<JUHUU$1.HttpResponse<JUHUU$1.User.LoginEmailPassword.Response>>;
1201
+ paymentMethodTokens(UserPaymentMethodTokensParams: JUHUU$1.User.PaymentMethodTokens.Params, UserPaymentMethodTokensOptions?: JUHUU$1.User.PaymentMethodTokens.Options): Promise<JUHUU$1.HttpResponse<JUHUU$1.User.PaymentMethodTokens.Response>>;
1202
+ refreshAccessToken(UserRefreshAccessTokenParams: JUHUU$1.User.RefreshAccessToken.Params, UserRefreshAccessTokenOptions?: JUHUU$1.User.RefreshAccessToken.Options): Promise<JUHUU$1.HttpResponse<JUHUU$1.User.RefreshAccessToken.Response>>;
1203
+ list(UserListParams: JUHUU$1.User.List.Params, UserListOptions?: JUHUU$1.User.List.Options): Promise<JUHUU$1.HttpResponse<JUHUU$1.User.List.Response>>;
1204
+ update(UserUpdateParams: JUHUU$1.User.Update.Params, UserUpdateOptions?: JUHUU$1.User.Update.Options): Promise<JUHUU$1.HttpResponse<JUHUU$1.User.Update.Response>>;
1205
+ inviteEmployee(UserInviteEmployeeParams: JUHUU$1.User.InviteEmployee.Params, UserInviteEmployeeOptions?: JUHUU$1.User.InviteEmployee.Options): Promise<JUHUU$1.HttpResponse<JUHUU$1.User.InviteEmployee.Response>>;
1206
+ removeEmployee(UserRemoveEmployeeParams: JUHUU$1.User.RemoveEmployee.Params, UserRemoveEmployeeOptions?: JUHUU$1.User.RemoveEmployee.Options): Promise<JUHUU$1.HttpResponse<JUHUU$1.User.RemoveEmployee.Response>>;
1207
+ }
1208
+
1209
+ declare class PaymentsService extends Service {
1210
+ constructor(config: JUHUU$1.SetupConfig);
1211
+ create(): Promise<void>;
1212
+ retrieve(PaymentRetrieveParams: JUHUU$1.Payment.Retrieve.Params, PaymentRetrieveOptions?: JUHUU$1.Payment.Retrieve.Options): Promise<JUHUU$1.HttpResponse<JUHUU$1.Payment.Retrieve.Response>>;
1213
+ tokens(PaymentTokensParams: JUHUU$1.Payment.Tokens.Params, PaymentTokensOptions?: JUHUU$1.Payment.Tokens.Options): Promise<JUHUU$1.HttpResponse<JUHUU$1.Payment.Tokens.Response>>;
1214
+ update(): Promise<void>;
1215
+ delete(): Promise<void>;
1216
+ retrieveInvoiceUrl(PaymentRetrieveInvoiceUrlParams: JUHUU$1.Payment.RetrieveInvoiceUrl.Params, PaymentRetrieveInvoiceUrlOptions?: JUHUU$1.Payment.RetrieveInvoiceUrl.Options): Promise<JUHUU$1.HttpResponse<JUHUU$1.Payment.RetrieveInvoiceUrl.Response>>;
1217
+ }
1218
+
1219
+ declare class PropertiesService extends Service {
1220
+ constructor(config: JUHUU$1.SetupConfig);
1221
+ create(): Promise<void>;
1222
+ retrieve(PropertyRetrieveParams: JUHUU$1.Property.Retrieve.Params, PropertyRetrieveOptions?: JUHUU$1.Property.Retrieve.Options): Promise<JUHUU$1.HttpResponse<JUHUU$1.Property.Retrieve.Response>>;
1223
+ list(PropertyListParams: JUHUU$1.Property.List.Params, PropertyListOptions?: JUHUU$1.Property.List.Options): Promise<JUHUU$1.HttpResponse<JUHUU$1.Property.List.Response>>;
1224
+ update(): Promise<void>;
1225
+ delete(): Promise<void>;
1226
+ terminate(): Promise<void>;
1227
+ }
1228
+
1229
+ declare class PointsService extends Service {
1230
+ constructor(config: JUHUU$1.SetupConfig);
1231
+ map(PointListParams: JUHUU$1.Point.Map.Params, PointListOptions?: JUHUU$1.Point.Map.Options): Promise<JUHUU$1.HttpResponse<JUHUU$1.Point.Map.Response>>;
1232
+ private toRadians;
1233
+ calculateDistance(lat1: number, lon1: number, lat2: number, lon2: number): number;
1234
+ calculateAltitudeForTopDownView(topLeftLat: number, topLeftLon: number, bottomRightLat: number, bottomRightLon: number): number;
1235
+ }
1236
+
1237
+ declare class DevicesService extends Service {
1238
+ constructor(config: JUHUU$1.SetupConfig);
1239
+ create(): Promise<void>;
1240
+ retrieve(DeviceRetrieveParams: JUHUU$1.Device.Retrieve.Params, DeviceRetrieveOptions?: JUHUU$1.Device.Retrieve.Options): Promise<JUHUU$1.HttpResponse<JUHUU$1.Device.Retrieve.Response>>;
1241
+ list(DeviceListParams: JUHUU$1.Device.List.Params, DeviceListOptions?: JUHUU$1.Device.List.Options): Promise<JUHUU$1.HttpResponse<JUHUU$1.Device.List.Response>>;
1242
+ update(): Promise<void>;
1243
+ delete(): Promise<void>;
1244
+ listen(DeviceRealtimeParams: JUHUU$1.Device.Realtime.Params, DeviceRealtimeOptions?: JUHUU$1.Device.Realtime.Options): JUHUU$1.Device.Realtime.Response;
1245
+ message(DeviceMessageParams: JUHUU$1.Device.Message.Params, DeviceMessageOptions?: JUHUU$1.Device.Message.Options): Promise<JUHUU$1.HttpResponse<JUHUU$1.Device.Message.Response>>;
1246
+ parameterUpdate(DeviceParameterParams: JUHUU$1.Device.ParameterUpdate.Params, DeviceParameterOptions?: JUHUU$1.Device.ParameterUpdate.Options): Promise<JUHUU$1.HttpResponse<JUHUU$1.Device.ParameterUpdate.Response>>;
1247
+ commandExecute(DeviceCommandExecuteParams: JUHUU$1.Device.CommandExecute.Params, DeviceCommandExecuteOptions?: JUHUU$1.Device.CommandExecute.Options): Promise<JUHUU$1.HttpResponse<JUHUU$1.Device.CommandExecute.Response>>;
1248
+ }
1249
+
1250
+ declare class DeviceTemplatesService extends Service {
1251
+ constructor(config: JUHUU$1.SetupConfig);
1252
+ create(): Promise<void>;
1253
+ retrieve(DeviceTemplateRetrieveParams: JUHUU$1.DeviceTemplate.Retrieve.Params, DeviceTemplateRetrieveOptions?: JUHUU$1.DeviceTemplate.Retrieve.Options): Promise<JUHUU$1.HttpResponse<JUHUU$1.DeviceTemplate.Retrieve.Response>>;
1254
+ update(): Promise<void>;
1255
+ delete(): Promise<void>;
1256
+ terminate(): Promise<void>;
1257
+ }
1258
+
1259
+ declare class LocationsService extends Service {
1260
+ constructor(config: JUHUU$1.SetupConfig);
1261
+ retrieve(LocationRetrieveParams: JUHUU$1.Location.Retrieve.Params, LocationRetrieveOptions?: JUHUU$1.Location.Retrieve.Options): Promise<JUHUU$1.HttpResponse<JUHUU$1.Location.Retrieve.Response>>;
1262
+ list(LocationListParams: JUHUU$1.Location.List.Params, LocationListOptions?: JUHUU$1.Location.List.Options): Promise<JUHUU$1.HttpResponse<JUHUU$1.Location.List.Response>>;
1263
+ }
1264
+
1265
+ declare class TermsService extends Service {
1266
+ constructor(config: JUHUU$1.SetupConfig);
1267
+ retrieve(TermRetrieveParams: JUHUU$1.Term.Retrieve.Params, TermRetrieveOptions?: JUHUU$1.Term.Retrieve.Options): Promise<JUHUU$1.HttpResponse<JUHUU$1.Term.Retrieve.Response>>;
1268
+ accept(TermAcceptParams: JUHUU$1.Term.Accept.Params, TermAcceptOptions?: JUHUU$1.Term.Accept.Options): Promise<JUHUU$1.HttpResponse<JUHUU$1.Term.Accept.Response>>;
1269
+ }
1270
+
1271
+ declare class TariffsService extends Service {
1272
+ constructor(config: JUHUU$1.SetupConfig);
1273
+ create(): Promise<void>;
1274
+ update(): Promise<void>;
1275
+ delete(): Promise<void>;
1276
+ terminate(): Promise<void>;
1277
+ /**
1278
+ * Checks if the tariff is free
1279
+ */
1280
+ isFree(tariff: JUHUU$1.Tariff.Object): boolean;
1281
+ /**
1282
+ * Returns the amount of seconds the tariff needs to be active before the amount will not change anymore
1283
+ */
1284
+ getAmountFinalizationDuration(tariff: JUHUU$1.Tariff.Object): number;
1285
+ /**
1286
+ * Calculates the amount for a give rent time in seconds
1287
+ */
1288
+ calculateAmount(tariff: JUHUU$1.Tariff.Object, rentTimeSeconds: number): number;
1289
+ calculateMaximumAmount(tariff: JUHUU$1.Tariff.Object): number;
1290
+ }
1291
+
1292
+ declare class JUHUU {
1293
+ constructor(config: JUHUU$1.SetupConfig);
1294
+ /**
1295
+ * Top Level Resources
1296
+ */
1297
+ readonly sessions: SessionService;
1298
+ readonly links: LinkService;
1299
+ readonly users: UsersService;
1300
+ readonly payments: PaymentsService;
1301
+ readonly properties: PropertiesService;
1302
+ readonly points: PointsService;
1303
+ readonly devices: DevicesService;
1304
+ readonly deviceTemplates: DeviceTemplatesService;
1305
+ readonly locations: LocationsService;
1306
+ readonly terms: TermsService;
1307
+ readonly tariffs: TariffsService;
1308
+ }
1309
+
1310
+ export { JUHUU as default };