@vitalfit/sdk 0.3.7 → 0.3.9

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.
package/dist/index.d.ts CHANGED
@@ -1,8 +1,11 @@
1
+ import { ResponseType } from 'axios';
2
+
1
3
  type ClientConfig = {
2
4
  url: string;
3
5
  jwt?: string;
4
6
  data?: object;
5
7
  params?: object;
8
+ responseType?: ResponseType;
6
9
  };
7
10
  declare class Client {
8
11
  private client;
@@ -24,6 +27,10 @@ declare class Client {
24
27
  put(config: ClientConfig): Promise<any>;
25
28
  patch(config: ClientConfig): Promise<any>;
26
29
  delete(config: ClientConfig): Promise<any>;
30
+ download(config: ClientConfig): Promise<{
31
+ blob: Blob;
32
+ filename?: string;
33
+ }>;
27
34
  }
28
35
 
29
36
  type PaginationRequest = {
@@ -100,6 +107,115 @@ type RenewTokenRequest = {
100
107
  refresh_token: string;
101
108
  };
102
109
 
110
+ interface ServiceCategoryInfo {
111
+ category_id: string;
112
+ name: string;
113
+ }
114
+ interface ServiceImageResponse {
115
+ image_id: string;
116
+ image_url: string;
117
+ alt_text: string;
118
+ display_order: number;
119
+ is_primary: boolean;
120
+ }
121
+ interface BannerResponse {
122
+ banner_id: string;
123
+ name: string;
124
+ image_url: string;
125
+ link_url: string;
126
+ is_active: boolean;
127
+ }
128
+ interface ServiceFullDetail {
129
+ service_id: string;
130
+ category_id: string;
131
+ name: string;
132
+ description: string;
133
+ duration_minutes: number;
134
+ priority_score: number;
135
+ is_featured: boolean;
136
+ created_at: string;
137
+ updated_at: string;
138
+ service_category: ServiceCategoryInfo;
139
+ images: ServiceImageResponse[];
140
+ banners: BannerResponse[];
141
+ }
142
+ type CreateServiceImage = {
143
+ alt_text: string;
144
+ display_order: number;
145
+ image_url: string;
146
+ is_primary: boolean;
147
+ };
148
+ type CreateService = {
149
+ banner_id: string;
150
+ category_id: string;
151
+ description: string;
152
+ duration: number;
153
+ is_featured: boolean;
154
+ name: string;
155
+ priority: number;
156
+ service_images: CreateServiceImage[];
157
+ };
158
+ type UpdateServiceImageManual = {
159
+ alt_text?: string;
160
+ display_order?: number;
161
+ image_url?: string;
162
+ is_primary?: boolean;
163
+ };
164
+ type UpdateServiceManual = {
165
+ banner_id?: string;
166
+ category_id?: string;
167
+ description?: string;
168
+ duration?: number;
169
+ is_featured?: boolean;
170
+ name?: string;
171
+ priority?: number;
172
+ service_images?: UpdateServiceImageManual[];
173
+ };
174
+ type BranchServicePrice = {
175
+ branch_id: string;
176
+ service_id: string;
177
+ service_name: string;
178
+ is_visible: boolean;
179
+ max_capacity: number;
180
+ price_for_member: number;
181
+ price_for_non_member: number;
182
+ };
183
+ type CreateBranchServicePriceItem = {
184
+ service_id: string;
185
+ is_visible: boolean;
186
+ max_capacity: number;
187
+ price_for_member: number;
188
+ price_for_non_member: number;
189
+ };
190
+ type UpdateBranchServicePrice = {
191
+ is_visible?: boolean;
192
+ max_capacity?: number;
193
+ price_for_member?: number;
194
+ price_for_non_member?: number;
195
+ };
196
+ type PaginatedServiceRequest = PaginationRequest & {
197
+ category?: string;
198
+ };
199
+ type ServicesSummary = {
200
+ total: number;
201
+ actives: number;
202
+ featured: number;
203
+ };
204
+ type ServicePublicItem = ServiceFullDetail & {
205
+ lowest_price_member: number;
206
+ lowest_price_no_member: number;
207
+ base_currency: string;
208
+ ref_lowest_price_member: string;
209
+ ref_lowest_price_no_member: string;
210
+ ref_base_currency: string;
211
+ };
212
+ type PublicPaginationService = PaginationRequest & {
213
+ currency: string;
214
+ category: string;
215
+ price: number;
216
+ sortby: string;
217
+ };
218
+
103
219
  type ClientProfile = {
104
220
  user_id: string;
105
221
  qr_code: string;
@@ -141,6 +257,8 @@ type User = {
141
257
  ClientProfile: ClientProfile;
142
258
  role_id: string;
143
259
  role: Role;
260
+ category?: string;
261
+ has_active_membership?: boolean;
144
262
  client_membership?: ClientMembership;
145
263
  created_at: string;
146
264
  updated_at: string;
@@ -194,6 +312,16 @@ type MedicalProfile = {
194
312
  medications: string;
195
313
  warnings: string;
196
314
  };
315
+ type BlockUserRequest = {
316
+ block_justification: string;
317
+ };
318
+ type ClientBalance = {
319
+ user_id: string;
320
+ service_id: string;
321
+ balance: number;
322
+ updated_at: string;
323
+ service?: ServiceFullDetail;
324
+ };
197
325
 
198
326
  type PaginatedBranch = {
199
327
  branch_id: string;
@@ -397,6 +525,14 @@ type InstructorsSummary = {
397
525
  actives: number;
398
526
  blocked: number;
399
527
  };
528
+ type AssignedClientResponse = {
529
+ user_id: string;
530
+ first_name: string;
531
+ last_name: string;
532
+ email: string;
533
+ phone: string;
534
+ total_bookings: number;
535
+ };
400
536
 
401
537
  interface Permission {
402
538
  created_at?: string;
@@ -539,115 +675,6 @@ type BranchInfo = {
539
675
  phone: string;
540
676
  };
541
677
 
542
- interface ServiceCategoryInfo {
543
- category_id: string;
544
- name: string;
545
- }
546
- interface ServiceImageResponse {
547
- image_id: string;
548
- image_url: string;
549
- alt_text: string;
550
- display_order: number;
551
- is_primary: boolean;
552
- }
553
- interface BannerResponse {
554
- banner_id: string;
555
- name: string;
556
- image_url: string;
557
- link_url: string;
558
- is_active: boolean;
559
- }
560
- interface ServiceFullDetail {
561
- service_id: string;
562
- category_id: string;
563
- name: string;
564
- description: string;
565
- duration_minutes: number;
566
- priority_score: number;
567
- is_featured: boolean;
568
- created_at: string;
569
- updated_at: string;
570
- service_category: ServiceCategoryInfo;
571
- images: ServiceImageResponse[];
572
- banners: BannerResponse[];
573
- }
574
- type CreateServiceImage = {
575
- alt_text: string;
576
- display_order: number;
577
- image_url: string;
578
- is_primary: boolean;
579
- };
580
- type CreateService = {
581
- banner_id: string;
582
- category_id: string;
583
- description: string;
584
- duration: number;
585
- is_featured: boolean;
586
- name: string;
587
- priority: number;
588
- service_images: CreateServiceImage[];
589
- };
590
- type UpdateServiceImageManual = {
591
- alt_text?: string;
592
- display_order?: number;
593
- image_url?: string;
594
- is_primary?: boolean;
595
- };
596
- type UpdateServiceManual = {
597
- banner_id?: string;
598
- category_id?: string;
599
- description?: string;
600
- duration?: number;
601
- is_featured?: boolean;
602
- name?: string;
603
- priority?: number;
604
- service_images?: UpdateServiceImageManual[];
605
- };
606
- type BranchServicePrice = {
607
- branch_id: string;
608
- service_id: string;
609
- service_name: string;
610
- is_visible: boolean;
611
- max_capacity: number;
612
- price_for_member: number;
613
- price_for_non_member: number;
614
- };
615
- type CreateBranchServicePriceItem = {
616
- service_id: string;
617
- is_visible: boolean;
618
- max_capacity: number;
619
- price_for_member: number;
620
- price_for_non_member: number;
621
- };
622
- type UpdateBranchServicePrice = {
623
- is_visible?: boolean;
624
- max_capacity?: number;
625
- price_for_member?: number;
626
- price_for_non_member?: number;
627
- };
628
- type PaginatedServiceRequest = PaginationRequest & {
629
- category?: string;
630
- };
631
- type ServicesSummary = {
632
- total: number;
633
- actives: number;
634
- featured: number;
635
- };
636
- type ServicePublicItem = ServiceFullDetail & {
637
- lowest_price_member: number;
638
- lowest_price_no_member: number;
639
- base_currency: string;
640
- ref_lowest_price_member: string;
641
- ref_lowest_price_no_member: string;
642
- ref_base_currency: string;
643
- };
644
- type PublicPaginationService = PaginationRequest & {
645
- currency: string;
646
- category: string;
647
- price: number;
648
- sortby: string;
649
- };
650
-
651
678
  type EquipmentCategory = 'Cardio' | 'Strength' | 'FreeWeight' | 'Functional' | 'Accessory';
652
679
  type Equipment = {
653
680
  equipment_id: string;
@@ -943,7 +970,8 @@ type PaymentDetail = {
943
970
 
944
971
  type CheckIn = {
945
972
  branch_id: string;
946
- qr_jwt: string;
973
+ qr_jwt?: string;
974
+ user_id?: string;
947
975
  };
948
976
  type CheckInResponse = {
949
977
  access_type: string;
@@ -1146,7 +1174,7 @@ declare class AuthService {
1146
1174
  revokeSessionByID(sessionId: string, jwt: string): Promise<void>;
1147
1175
  getUserSessions(jwt: string): Promise<DataResponse<UserSession[]>>;
1148
1176
  getUserSessionByID(userId: string, jwt: string): Promise<DataResponse<UserSession[]>>;
1149
- login({ email, password, context, }: LoginRequest): Promise<LoginResponse>;
1177
+ login({ email, password, context, device_token, }: LoginRequest): Promise<LoginResponse>;
1150
1178
  logout(): void;
1151
1179
  saveJWT(jwt: string): void;
1152
1180
  saveTokens(access: string, refresh: string): void;
@@ -1175,6 +1203,7 @@ declare class UserService {
1175
1203
  QrToken(jwt: string): Promise<QrToken>;
1176
1204
  resendActivateOtp(email: string): Promise<void>;
1177
1205
  UpgradePassword(jwt: string, currentPassword: string, newPassword: string, confirmPassword: string): Promise<void>;
1206
+ blockUser(userId: string, data: BlockUserRequest, jwt: string): Promise<void>;
1178
1207
  createMedicalProfile(userId: string, data: MedicalProfile, jwt: string): Promise<void>;
1179
1208
  getMedicalProfile(userId: string, jwt: string): Promise<DataResponse<MedicalProfile>>;
1180
1209
  updateMedicalProfile(userId: string, data: MedicalProfile, jwt: string): Promise<void>;
@@ -1217,6 +1246,7 @@ declare class InstructorService {
1217
1246
  deleteInstructor(instructorId: string, jwt: string): Promise<void>;
1218
1247
  addSpecialty(instructorId: string, specialty: Specialty[], jwt: string): Promise<void>;
1219
1248
  removeSpecialty(instructorId: string, specialtyId: string, jwt: string): Promise<void>;
1249
+ getAssignedClients(instructorId: string, jwt: string, { page, limit, sort, search }?: PaginationRequest): Promise<PaginatedTotal<AssignedClientResponse[]>>;
1220
1250
  addBranchInstructor(branchId: string, instructorIDs: string[], jwt: string): Promise<void>;
1221
1251
  removeBranchInstructor(branchId: string, instructorId: string, jwt: string): Promise<void>;
1222
1252
  getBranchInstructors(branchId: string, { search, identity_doc }: PaginatedInstructor, jwt: string): Promise<DataResponse<BranchInstructorInfo[]>>;
@@ -1286,6 +1316,7 @@ declare class ProductsService {
1286
1316
  createService(data: CreateService, jwt: string): Promise<void>;
1287
1317
  getServices(jwt: string, { page, limit, sort, search, category, }: PaginatedServiceRequest): Promise<PaginatedTotal<ServiceFullDetail[]>>;
1288
1318
  getSummary(jwt: string): Promise<DataResponse<ServicesSummary>>;
1319
+ getClientBalances(jwt: string, userId?: string): Promise<DataResponse<ClientBalance[]>>;
1289
1320
  getServiceByID(serviceId: string, jwt: string): Promise<DataResponse<ServiceFullDetail>>;
1290
1321
  updateService(serviceId: string, data: UpdateServiceManual, jwt: string): Promise<void>;
1291
1322
  deleteService(serviceId: string, jwt: string): Promise<void>;
@@ -1315,11 +1346,12 @@ declare class EquipmentService {
1315
1346
  declare class ScheduleService {
1316
1347
  private client;
1317
1348
  constructor(client: Client);
1318
- ListBranchesClass(branchID: string, jwt: string): Promise<DataResponse<BranchClassInfo[]>>;
1349
+ ListBranchesClass(branchID: string, jwt: string, month?: number, year?: number): Promise<DataResponse<BranchClassInfo[]>>;
1319
1350
  CreateClass(branchID: string, data: CreateClassPayload, jwt: string): Promise<void>;
1320
1351
  GetClassByID(classID: string, jwt: string): Promise<DataResponse<BranchClassInfo>>;
1321
1352
  UpdateClass(classID: string, data: UpdateClassPayload, jwt: string): Promise<void>;
1322
1353
  DeleteClass(classID: string, jwt: string): Promise<void>;
1354
+ GetClassesByInstructor(jwt: string, userId?: string, month?: number, year?: number): Promise<DataResponse<BranchClassInfo[]>>;
1323
1355
  }
1324
1356
 
1325
1357
  declare class PackagesService {
@@ -1366,8 +1398,10 @@ declare class AccessService {
1366
1398
  private client;
1367
1399
  constructor(client: Client);
1368
1400
  checkIn(jwt: string, data: CheckIn): Promise<CheckInResponse>;
1401
+ checkInManual(jwt: string, data: CheckIn): Promise<CheckInResponse>;
1369
1402
  getClientAttendanceHistory(jwt: string, userId: string, start?: string, end?: string, { page, limit, sort }?: PaginationRequest): Promise<PaginatedTotal<AttendanceHistory[]>>;
1370
1403
  getClientServiceUsage(jwt: string, userId: string, start?: string, end?: string, { page, limit, sort }?: PaginationRequest): Promise<PaginatedTotal<ServiceUsage[]>>;
1404
+ getClassAttendanceHistory(jwt: string, classId: string, start?: string, end?: string, status?: 'Attended' | 'NoShow' | 'Cancelled'): Promise<DataResponse<AttendanceHistory[]>>;
1371
1405
  }
1372
1406
 
1373
1407
  declare class ReportService {
@@ -1460,6 +1494,28 @@ declare class NotificationService {
1460
1494
  sendBroadcast(data: BroadcastRequest, jwt: string): Promise<void>;
1461
1495
  }
1462
1496
 
1497
+ type DownloadResponse = {
1498
+ blob: Blob;
1499
+ filename?: string;
1500
+ };
1501
+ declare class ExportsService {
1502
+ private client;
1503
+ constructor(client: Client);
1504
+ exportFinancialReport(jwt: string, start?: string, end?: string, branchId?: string): Promise<DownloadResponse>;
1505
+ exportClientsReport(jwt: string, start?: string, end?: string, branchId?: string): Promise<DownloadResponse>;
1506
+ exportSalesReport(jwt: string, start?: string, end?: string, branchId?: string): Promise<DownloadResponse>;
1507
+ exportClients(jwt: string): Promise<DownloadResponse>;
1508
+ exportStaff(jwt: string): Promise<DownloadResponse>;
1509
+ exportInstructors(jwt: string): Promise<DownloadResponse>;
1510
+ exportEquipmentTypes(jwt: string): Promise<DownloadResponse>;
1511
+ exportBranchEquipment(branchId: string, jwt: string): Promise<DownloadResponse>;
1512
+ exportServices(jwt: string): Promise<DownloadResponse>;
1513
+ exportBranchServices(branchId: string, jwt: string): Promise<DownloadResponse>;
1514
+ exportMembershipPlans(jwt: string): Promise<DownloadResponse>;
1515
+ exportPackages(jwt: string): Promise<DownloadResponse>;
1516
+ exportPaymentMethods(jwt: string): Promise<DownloadResponse>;
1517
+ }
1518
+
1463
1519
  declare class APIError extends Error {
1464
1520
  status: number;
1465
1521
  messages: string[];
@@ -1492,9 +1548,10 @@ declare class VitalFit {
1492
1548
  policy: PolicyService;
1493
1549
  audit: AuditService;
1494
1550
  notification: NotificationService;
1551
+ exports: ExportsService;
1495
1552
  constructor(isDevMode: boolean, origin?: string);
1496
1553
  static getInstance(isDevMode?: boolean): VitalFit;
1497
1554
  version(): string;
1498
1555
  }
1499
1556
 
1500
- export { APIError, type AddPaymentToInvoicePayload, type AddPaymentToInvoiceResponse, type AddToWishlistRequest, type AttendanceHistory, type AuditLog, type BankTransferConfig, type Banner, type BannerResponse, type BaseModel, type BillingMatrix, type BillingMatrixRow, type BookClassRequest, type BookingParticipant, type BranchClassInfo, type BranchDetails, type BranchEquipmentInventory, type BranchInfo, type BranchInstructorInfo, type BranchPaymentMethod, type BranchPaymentMethodInfo, type BranchPaymentVisibility, type BranchPerformance, type BranchScheduleResponse, type BranchServicePrice, type BranchStaff, type BranchStatusCount, type BroadcastRequest, type CancellationReason, type ChartData, type CheckIn, type CheckInResponse, type ClassBookingCount, type ClassCapacityStats, type ClassScheduleItem, type ClientBookingResponse, type ClientInvoice, type ClientMembership, type ClientMembershipDetail, type ClientMembershipItem, type ClientMembershipUser, type ClientProfile, type CohortRetention, type CreateBanner, type CreateBranchEquipment, type CreateBranchRequest, type CreateBranchServicePriceItem, type CreateCancellationReason, type CreateClassPayload, type CreateEquipment, type CreateFiscalDocumentRequest, type CreateInvoiceItem, type CreateInvoicePayload, type CreateInvoiceResponse, type CreateMembershipType, type CreatePackagePayload, type CreatePaymentMethod, type CreatePromotion, type CreateRole, type CreateService, type CreateServiceImage, type DataResponse, type Equipment, type EquipmentCategory, type EquipmentInfo, type EquipmentStatus, type ExchangeRateResponse, type FinancialSummary, type FinancialSummaryItem, type FiscalDocument, type GetUserResponse, type GlobalSalesStats, type GlobalStat, type HeatmapPoint, type Instructor, type InstructorData, type InstructorDataList, type InstructorsSummary, type InvoiceDetail, type InvoiceItemDetail, type InvoiceList, type InvoicePaymentDetail, type KPICard, type LoginRequest, type LoginResponse, type MedicalProfile, type MembershipType, type MembershipTypeDetail, type MembershipsSummary, type NotificationResponse, type Oauth, type OperatingHour, type PackageDetail, type PackageItemDetail, type PackageItemInput, type PackageListItem, type PackagePublicItem, type PaginatedBranch, type PaginatedEquipmentRequest, type PaginatedInstructor, type PaginatedServiceRequest, type PaginatedTotal, type Pagination, type PaginationBranchRequest, type PaginationRequest, type PaginationWithStatus, type PagoMovilConfig, type PaymentConfiguration, type PaymentDetail, type PaymentMethod, type PaymentMethodTypes, type Permission, type Policy, type Promotion, type PublicMembershipResponse, type PublicPaginatedPackage, type PublicPaginationService, type QrToken, type RandomBanner, type RecentAttendanceItem, type RenewTokenRequest, type Role, type RoleResponse, type ServiceCategoryInfo, type ServiceFullDetail, type ServiceImageResponse, type ServicePublicItem, type ServiceUsage, type ServicesSummary, type SignUpRequest, type Specialty, type StackedChartData, type Staff, type TaxRate, type TopBranch, type TotalSalesStats, type UUIDModel, type UnreadCountResponse, type UpdateBanner, type UpdateBranchEquipmentDetails, type UpdateBranchPaymentMethod, type UpdateBranchRequest, type UpdateBranchServicePrice, type UpdateClassPayload, type UpdateClientMembershipRequest, type UpdateEquipment, type UpdateMembershipType, type UpdateOperatingHour, type UpdatePackagePayload, type UpdateServiceImageManual, type UpdateServiceManual, type UpdateUserRequest, type UpdateUserStaffRequest, type User, type UserApiResponse, UserGender, type UserPaginationOptions, type UserSession, VitalFit, type WishlistItemResponse, type ZelleConfig, isAPIError, mainCurrencies, type updatePolicy };
1557
+ export { APIError, type AddPaymentToInvoicePayload, type AddPaymentToInvoiceResponse, type AddToWishlistRequest, type AssignedClientResponse, type AttendanceHistory, type AuditLog, type BankTransferConfig, type Banner, type BannerResponse, type BaseModel, type BillingMatrix, type BillingMatrixRow, type BlockUserRequest, type BookClassRequest, type BookingParticipant, type BranchClassInfo, type BranchDetails, type BranchEquipmentInventory, type BranchInfo, type BranchInstructorInfo, type BranchPaymentMethod, type BranchPaymentMethodInfo, type BranchPaymentVisibility, type BranchPerformance, type BranchScheduleResponse, type BranchServicePrice, type BranchStaff, type BranchStatusCount, type BroadcastRequest, type CancellationReason, type ChartData, type CheckIn, type CheckInResponse, type ClassBookingCount, type ClassCapacityStats, type ClassScheduleItem, type ClientBalance, type ClientBookingResponse, type ClientInvoice, type ClientMembership, type ClientMembershipDetail, type ClientMembershipItem, type ClientMembershipUser, type ClientProfile, type CohortRetention, type CreateBanner, type CreateBranchEquipment, type CreateBranchRequest, type CreateBranchServicePriceItem, type CreateCancellationReason, type CreateClassPayload, type CreateEquipment, type CreateFiscalDocumentRequest, type CreateInvoiceItem, type CreateInvoicePayload, type CreateInvoiceResponse, type CreateMembershipType, type CreatePackagePayload, type CreatePaymentMethod, type CreatePromotion, type CreateRole, type CreateService, type CreateServiceImage, type DataResponse, type Equipment, type EquipmentCategory, type EquipmentInfo, type EquipmentStatus, type ExchangeRateResponse, type FinancialSummary, type FinancialSummaryItem, type FiscalDocument, type GetUserResponse, type GlobalSalesStats, type GlobalStat, type HeatmapPoint, type Instructor, type InstructorData, type InstructorDataList, type InstructorsSummary, type InvoiceDetail, type InvoiceItemDetail, type InvoiceList, type InvoicePaymentDetail, type KPICard, type LoginRequest, type LoginResponse, type MedicalProfile, type MembershipType, type MembershipTypeDetail, type MembershipsSummary, type NotificationResponse, type Oauth, type OperatingHour, type PackageDetail, type PackageItemDetail, type PackageItemInput, type PackageListItem, type PackagePublicItem, type PaginatedBranch, type PaginatedEquipmentRequest, type PaginatedInstructor, type PaginatedServiceRequest, type PaginatedTotal, type Pagination, type PaginationBranchRequest, type PaginationRequest, type PaginationWithStatus, type PagoMovilConfig, type PaymentConfiguration, type PaymentDetail, type PaymentMethod, type PaymentMethodTypes, type Permission, type Policy, type Promotion, type PublicMembershipResponse, type PublicPaginatedPackage, type PublicPaginationService, type QrToken, type RandomBanner, type RecentAttendanceItem, type RenewTokenRequest, type Role, type RoleResponse, type ServiceCategoryInfo, type ServiceFullDetail, type ServiceImageResponse, type ServicePublicItem, type ServiceUsage, type ServicesSummary, type SignUpRequest, type Specialty, type StackedChartData, type Staff, type TaxRate, type TopBranch, type TotalSalesStats, type UUIDModel, type UnreadCountResponse, type UpdateBanner, type UpdateBranchEquipmentDetails, type UpdateBranchPaymentMethod, type UpdateBranchRequest, type UpdateBranchServicePrice, type UpdateClassPayload, type UpdateClientMembershipRequest, type UpdateEquipment, type UpdateMembershipType, type UpdateOperatingHour, type UpdatePackagePayload, type UpdateServiceImageManual, type UpdateServiceManual, type UpdateUserRequest, type UpdateUserStaffRequest, type User, type UserApiResponse, UserGender, type UserPaginationOptions, type UserSession, VitalFit, type WishlistItemResponse, type ZelleConfig, isAPIError, mainCurrencies, type updatePolicy };