@honestdigital/vehicle-service-types 1.0.13

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 (41) hide show
  1. package/README.md +76 -0
  2. package/dist/context.d.ts +53 -0
  3. package/dist/context.d.ts.map +1 -0
  4. package/dist/repositories/vehicleConfigOptions.d.ts +165 -0
  5. package/dist/repositories/vehicleConfigOptions.d.ts.map +1 -0
  6. package/dist/routers/index.d.ts +793 -0
  7. package/dist/routers/index.d.ts.map +1 -0
  8. package/dist/schemas/comparison.schema.d.ts +37 -0
  9. package/dist/schemas/comparison.schema.d.ts.map +1 -0
  10. package/dist/schemas/externalApi.schema.d.ts +1532 -0
  11. package/dist/schemas/externalApi.schema.d.ts.map +1 -0
  12. package/dist/schemas/filters.schema.d.ts +276 -0
  13. package/dist/schemas/filters.schema.d.ts.map +1 -0
  14. package/dist/schemas/vehicle.schema.d.ts +1204 -0
  15. package/dist/schemas/vehicle.schema.d.ts.map +1 -0
  16. package/dist/services/lenderdesk.d.ts +139 -0
  17. package/dist/services/lenderdesk.d.ts.map +1 -0
  18. package/dist/services/mmt.d.ts +52 -0
  19. package/dist/services/mmt.d.ts.map +1 -0
  20. package/dist/types/comparison.d.ts +157 -0
  21. package/dist/types/comparison.d.ts.map +1 -0
  22. package/dist/types/filters.d.ts +95 -0
  23. package/dist/types/filters.d.ts.map +1 -0
  24. package/dist/types/guards.d.ts +32 -0
  25. package/dist/types/guards.d.ts.map +1 -0
  26. package/dist/types/index.d.ts +18 -0
  27. package/dist/types/index.d.ts.map +1 -0
  28. package/dist/types/jdp.d.ts +210 -0
  29. package/dist/types/jdp.d.ts.map +1 -0
  30. package/dist/types/search.d.ts +475 -0
  31. package/dist/types/search.d.ts.map +1 -0
  32. package/dist/types/sync.d.ts +102 -0
  33. package/dist/types/sync.d.ts.map +1 -0
  34. package/dist/types/vehicle.d.ts +75 -0
  35. package/dist/types/vehicle.d.ts.map +1 -0
  36. package/dist/types.d.ts +17 -0
  37. package/dist/types.d.ts.map +1 -0
  38. package/dist/types.js +4213 -0
  39. package/dist/utilities/error.d.ts +49 -0
  40. package/dist/utilities/error.d.ts.map +1 -0
  41. package/package.json +112 -0
@@ -0,0 +1,1532 @@
1
+ /**
2
+ * Zod schemas for validating external API responses
3
+ * Ensures type safety when processing data from LenderDesk, Chrome, etc.
4
+ */
5
+ import { z } from 'zod';
6
+ /**
7
+ * LenderDesk rebate info schema
8
+ */
9
+ export declare const RebateInfoSchema: z.ZodObject<{
10
+ rebateId: z.ZodNullable<z.ZodNumber>;
11
+ rebateCode: z.ZodNullable<z.ZodString>;
12
+ rebateDsProgramId: z.ZodNullable<z.ZodString>;
13
+ rebateDsType: z.ZodNullable<z.ZodString>;
14
+ rebateName: z.ZodNullable<z.ZodString>;
15
+ rebateValue: z.ZodNullable<z.ZodString>;
16
+ }, "strip", z.ZodTypeAny, {
17
+ rebateId: number | null;
18
+ rebateCode: string | null;
19
+ rebateDsProgramId: string | null;
20
+ rebateDsType: string | null;
21
+ rebateName: string | null;
22
+ rebateValue: string | null;
23
+ }, {
24
+ rebateId: number | null;
25
+ rebateCode: string | null;
26
+ rebateDsProgramId: string | null;
27
+ rebateDsType: string | null;
28
+ rebateName: string | null;
29
+ rebateValue: string | null;
30
+ }>;
31
+ export type RebateInfo = z.infer<typeof RebateInfoSchema>;
32
+ /**
33
+ * LenderDesk lease option schema
34
+ */
35
+ export declare const LeaseOptionSchema: z.ZodObject<{
36
+ monthlyPayment: z.ZodNumber;
37
+ term: z.ZodNumber;
38
+ leasePrice: z.ZodNumber;
39
+ lender: z.ZodString;
40
+ interestRate: z.ZodNumber;
41
+ downPayment: z.ZodNumber;
42
+ mileagePenalty: z.ZodNumber;
43
+ perMileCharge: z.ZodNumber;
44
+ dueAtSigning: z.ZodNumber;
45
+ mileageLimit: z.ZodNumber;
46
+ rebates: z.ZodDefault<z.ZodArray<z.ZodObject<{
47
+ rebateId: z.ZodNullable<z.ZodNumber>;
48
+ rebateCode: z.ZodNullable<z.ZodString>;
49
+ rebateDsProgramId: z.ZodNullable<z.ZodString>;
50
+ rebateDsType: z.ZodNullable<z.ZodString>;
51
+ rebateName: z.ZodNullable<z.ZodString>;
52
+ rebateValue: z.ZodNullable<z.ZodString>;
53
+ }, "strip", z.ZodTypeAny, {
54
+ rebateId: number | null;
55
+ rebateCode: string | null;
56
+ rebateDsProgramId: string | null;
57
+ rebateDsType: string | null;
58
+ rebateName: string | null;
59
+ rebateValue: string | null;
60
+ }, {
61
+ rebateId: number | null;
62
+ rebateCode: string | null;
63
+ rebateDsProgramId: string | null;
64
+ rebateDsType: string | null;
65
+ rebateName: string | null;
66
+ rebateValue: string | null;
67
+ }>, "many">>;
68
+ expirationDate: z.ZodString;
69
+ disclaimer: z.ZodString;
70
+ }, "strip", z.ZodTypeAny, {
71
+ expirationDate: string;
72
+ monthlyPayment: number;
73
+ term: number;
74
+ leasePrice: number;
75
+ downPayment: number;
76
+ interestRate: number;
77
+ dueAtSigning: number;
78
+ mileageLimit: number;
79
+ perMileCharge: number;
80
+ lender: string;
81
+ disclaimer: string;
82
+ rebates: {
83
+ rebateId: number | null;
84
+ rebateCode: string | null;
85
+ rebateDsProgramId: string | null;
86
+ rebateDsType: string | null;
87
+ rebateName: string | null;
88
+ rebateValue: string | null;
89
+ }[];
90
+ mileagePenalty: number;
91
+ }, {
92
+ expirationDate: string;
93
+ monthlyPayment: number;
94
+ term: number;
95
+ leasePrice: number;
96
+ downPayment: number;
97
+ interestRate: number;
98
+ dueAtSigning: number;
99
+ mileageLimit: number;
100
+ perMileCharge: number;
101
+ lender: string;
102
+ disclaimer: string;
103
+ mileagePenalty: number;
104
+ rebates?: {
105
+ rebateId: number | null;
106
+ rebateCode: string | null;
107
+ rebateDsProgramId: string | null;
108
+ rebateDsType: string | null;
109
+ rebateName: string | null;
110
+ rebateValue: string | null;
111
+ }[] | undefined;
112
+ }>;
113
+ export type LeaseOption = z.infer<typeof LeaseOptionSchema>;
114
+ /**
115
+ * LenderDesk finance option schema
116
+ */
117
+ export declare const FinanceOptionSchema: z.ZodObject<{
118
+ monthlyPayment: z.ZodNumber;
119
+ term: z.ZodNumber;
120
+ leasePrice: z.ZodNumber;
121
+ lender: z.ZodString;
122
+ interestRate: z.ZodNumber;
123
+ downPayment: z.ZodNumber;
124
+ rebates: z.ZodDefault<z.ZodArray<z.ZodObject<{
125
+ rebateId: z.ZodNullable<z.ZodNumber>;
126
+ rebateCode: z.ZodNullable<z.ZodString>;
127
+ rebateDsProgramId: z.ZodNullable<z.ZodString>;
128
+ rebateDsType: z.ZodNullable<z.ZodString>;
129
+ rebateName: z.ZodNullable<z.ZodString>;
130
+ rebateValue: z.ZodNullable<z.ZodString>;
131
+ }, "strip", z.ZodTypeAny, {
132
+ rebateId: number | null;
133
+ rebateCode: string | null;
134
+ rebateDsProgramId: string | null;
135
+ rebateDsType: string | null;
136
+ rebateName: string | null;
137
+ rebateValue: string | null;
138
+ }, {
139
+ rebateId: number | null;
140
+ rebateCode: string | null;
141
+ rebateDsProgramId: string | null;
142
+ rebateDsType: string | null;
143
+ rebateName: string | null;
144
+ rebateValue: string | null;
145
+ }>, "many">>;
146
+ expirationDate: z.ZodString;
147
+ disclaimer: z.ZodString;
148
+ }, "strip", z.ZodTypeAny, {
149
+ expirationDate: string;
150
+ monthlyPayment: number;
151
+ term: number;
152
+ leasePrice: number;
153
+ downPayment: number;
154
+ interestRate: number;
155
+ lender: string;
156
+ disclaimer: string;
157
+ rebates: {
158
+ rebateId: number | null;
159
+ rebateCode: string | null;
160
+ rebateDsProgramId: string | null;
161
+ rebateDsType: string | null;
162
+ rebateName: string | null;
163
+ rebateValue: string | null;
164
+ }[];
165
+ }, {
166
+ expirationDate: string;
167
+ monthlyPayment: number;
168
+ term: number;
169
+ leasePrice: number;
170
+ downPayment: number;
171
+ interestRate: number;
172
+ lender: string;
173
+ disclaimer: string;
174
+ rebates?: {
175
+ rebateId: number | null;
176
+ rebateCode: string | null;
177
+ rebateDsProgramId: string | null;
178
+ rebateDsType: string | null;
179
+ rebateName: string | null;
180
+ rebateValue: string | null;
181
+ }[] | undefined;
182
+ }>;
183
+ export type FinanceOption = z.infer<typeof FinanceOptionSchema>;
184
+ /**
185
+ * LenderDesk cash option schema
186
+ */
187
+ export declare const CashOptionSchema: z.ZodObject<{
188
+ netPrice: z.ZodNumber;
189
+ lender: z.ZodString;
190
+ rebates: z.ZodDefault<z.ZodArray<z.ZodObject<{
191
+ rebateId: z.ZodNullable<z.ZodNumber>;
192
+ rebateCode: z.ZodNullable<z.ZodString>;
193
+ rebateDsProgramId: z.ZodNullable<z.ZodString>;
194
+ rebateDsType: z.ZodNullable<z.ZodString>;
195
+ rebateName: z.ZodNullable<z.ZodString>;
196
+ rebateValue: z.ZodNullable<z.ZodString>;
197
+ }, "strip", z.ZodTypeAny, {
198
+ rebateId: number | null;
199
+ rebateCode: string | null;
200
+ rebateDsProgramId: string | null;
201
+ rebateDsType: string | null;
202
+ rebateName: string | null;
203
+ rebateValue: string | null;
204
+ }, {
205
+ rebateId: number | null;
206
+ rebateCode: string | null;
207
+ rebateDsProgramId: string | null;
208
+ rebateDsType: string | null;
209
+ rebateName: string | null;
210
+ rebateValue: string | null;
211
+ }>, "many">>;
212
+ incentivesTotal: z.ZodNumber;
213
+ disclaimer: z.ZodString;
214
+ }, "strip", z.ZodTypeAny, {
215
+ lender: string;
216
+ disclaimer: string;
217
+ netPrice: number;
218
+ incentivesTotal: number;
219
+ rebates: {
220
+ rebateId: number | null;
221
+ rebateCode: string | null;
222
+ rebateDsProgramId: string | null;
223
+ rebateDsType: string | null;
224
+ rebateName: string | null;
225
+ rebateValue: string | null;
226
+ }[];
227
+ }, {
228
+ lender: string;
229
+ disclaimer: string;
230
+ netPrice: number;
231
+ incentivesTotal: number;
232
+ rebates?: {
233
+ rebateId: number | null;
234
+ rebateCode: string | null;
235
+ rebateDsProgramId: string | null;
236
+ rebateDsType: string | null;
237
+ rebateName: string | null;
238
+ rebateValue: string | null;
239
+ }[] | undefined;
240
+ }>;
241
+ export type CashOption = z.infer<typeof CashOptionSchema>;
242
+ /**
243
+ * LenderDesk vehicle schema
244
+ * Validates individual vehicle data from the transform API
245
+ */
246
+ export declare const LenderDeskVehicleSchema: z.ZodObject<{
247
+ vin: z.ZodString;
248
+ chromeId: z.ZodDefault<z.ZodOptional<z.ZodString>>;
249
+ year: z.ZodNumber;
250
+ make: z.ZodString;
251
+ model: z.ZodString;
252
+ trim: z.ZodDefault<z.ZodOptional<z.ZodString>>;
253
+ imageLink: z.ZodDefault<z.ZodOptional<z.ZodString>>;
254
+ link: z.ZodDefault<z.ZodOptional<z.ZodString>>;
255
+ mileage: z.ZodDefault<z.ZodNumber>;
256
+ condition: z.ZodEnum<["New", "Used", "Certified"]>;
257
+ price: z.ZodString;
258
+ vehicleMsrp: z.ZodDefault<z.ZodOptional<z.ZodString>>;
259
+ dealershipName: z.ZodDefault<z.ZodOptional<z.ZodString>>;
260
+ leasePrice: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
261
+ lowestMonthlyPayment: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
262
+ lease: z.ZodOptional<z.ZodObject<{
263
+ monthlyPayment: z.ZodNumber;
264
+ term: z.ZodNumber;
265
+ leasePrice: z.ZodNumber;
266
+ lender: z.ZodString;
267
+ interestRate: z.ZodNumber;
268
+ downPayment: z.ZodNumber;
269
+ mileagePenalty: z.ZodNumber;
270
+ perMileCharge: z.ZodNumber;
271
+ dueAtSigning: z.ZodNumber;
272
+ mileageLimit: z.ZodNumber;
273
+ rebates: z.ZodDefault<z.ZodArray<z.ZodObject<{
274
+ rebateId: z.ZodNullable<z.ZodNumber>;
275
+ rebateCode: z.ZodNullable<z.ZodString>;
276
+ rebateDsProgramId: z.ZodNullable<z.ZodString>;
277
+ rebateDsType: z.ZodNullable<z.ZodString>;
278
+ rebateName: z.ZodNullable<z.ZodString>;
279
+ rebateValue: z.ZodNullable<z.ZodString>;
280
+ }, "strip", z.ZodTypeAny, {
281
+ rebateId: number | null;
282
+ rebateCode: string | null;
283
+ rebateDsProgramId: string | null;
284
+ rebateDsType: string | null;
285
+ rebateName: string | null;
286
+ rebateValue: string | null;
287
+ }, {
288
+ rebateId: number | null;
289
+ rebateCode: string | null;
290
+ rebateDsProgramId: string | null;
291
+ rebateDsType: string | null;
292
+ rebateName: string | null;
293
+ rebateValue: string | null;
294
+ }>, "many">>;
295
+ expirationDate: z.ZodString;
296
+ disclaimer: z.ZodString;
297
+ }, "strip", z.ZodTypeAny, {
298
+ expirationDate: string;
299
+ monthlyPayment: number;
300
+ term: number;
301
+ leasePrice: number;
302
+ downPayment: number;
303
+ interestRate: number;
304
+ dueAtSigning: number;
305
+ mileageLimit: number;
306
+ perMileCharge: number;
307
+ lender: string;
308
+ disclaimer: string;
309
+ rebates: {
310
+ rebateId: number | null;
311
+ rebateCode: string | null;
312
+ rebateDsProgramId: string | null;
313
+ rebateDsType: string | null;
314
+ rebateName: string | null;
315
+ rebateValue: string | null;
316
+ }[];
317
+ mileagePenalty: number;
318
+ }, {
319
+ expirationDate: string;
320
+ monthlyPayment: number;
321
+ term: number;
322
+ leasePrice: number;
323
+ downPayment: number;
324
+ interestRate: number;
325
+ dueAtSigning: number;
326
+ mileageLimit: number;
327
+ perMileCharge: number;
328
+ lender: string;
329
+ disclaimer: string;
330
+ mileagePenalty: number;
331
+ rebates?: {
332
+ rebateId: number | null;
333
+ rebateCode: string | null;
334
+ rebateDsProgramId: string | null;
335
+ rebateDsType: string | null;
336
+ rebateName: string | null;
337
+ rebateValue: string | null;
338
+ }[] | undefined;
339
+ }>>;
340
+ finance: z.ZodOptional<z.ZodObject<{
341
+ monthlyPayment: z.ZodNumber;
342
+ term: z.ZodNumber;
343
+ leasePrice: z.ZodNumber;
344
+ lender: z.ZodString;
345
+ interestRate: z.ZodNumber;
346
+ downPayment: z.ZodNumber;
347
+ rebates: z.ZodDefault<z.ZodArray<z.ZodObject<{
348
+ rebateId: z.ZodNullable<z.ZodNumber>;
349
+ rebateCode: z.ZodNullable<z.ZodString>;
350
+ rebateDsProgramId: z.ZodNullable<z.ZodString>;
351
+ rebateDsType: z.ZodNullable<z.ZodString>;
352
+ rebateName: z.ZodNullable<z.ZodString>;
353
+ rebateValue: z.ZodNullable<z.ZodString>;
354
+ }, "strip", z.ZodTypeAny, {
355
+ rebateId: number | null;
356
+ rebateCode: string | null;
357
+ rebateDsProgramId: string | null;
358
+ rebateDsType: string | null;
359
+ rebateName: string | null;
360
+ rebateValue: string | null;
361
+ }, {
362
+ rebateId: number | null;
363
+ rebateCode: string | null;
364
+ rebateDsProgramId: string | null;
365
+ rebateDsType: string | null;
366
+ rebateName: string | null;
367
+ rebateValue: string | null;
368
+ }>, "many">>;
369
+ expirationDate: z.ZodString;
370
+ disclaimer: z.ZodString;
371
+ }, "strip", z.ZodTypeAny, {
372
+ expirationDate: string;
373
+ monthlyPayment: number;
374
+ term: number;
375
+ leasePrice: number;
376
+ downPayment: number;
377
+ interestRate: number;
378
+ lender: string;
379
+ disclaimer: string;
380
+ rebates: {
381
+ rebateId: number | null;
382
+ rebateCode: string | null;
383
+ rebateDsProgramId: string | null;
384
+ rebateDsType: string | null;
385
+ rebateName: string | null;
386
+ rebateValue: string | null;
387
+ }[];
388
+ }, {
389
+ expirationDate: string;
390
+ monthlyPayment: number;
391
+ term: number;
392
+ leasePrice: number;
393
+ downPayment: number;
394
+ interestRate: number;
395
+ lender: string;
396
+ disclaimer: string;
397
+ rebates?: {
398
+ rebateId: number | null;
399
+ rebateCode: string | null;
400
+ rebateDsProgramId: string | null;
401
+ rebateDsType: string | null;
402
+ rebateName: string | null;
403
+ rebateValue: string | null;
404
+ }[] | undefined;
405
+ }>>;
406
+ cash: z.ZodOptional<z.ZodObject<{
407
+ netPrice: z.ZodNumber;
408
+ lender: z.ZodString;
409
+ rebates: z.ZodDefault<z.ZodArray<z.ZodObject<{
410
+ rebateId: z.ZodNullable<z.ZodNumber>;
411
+ rebateCode: z.ZodNullable<z.ZodString>;
412
+ rebateDsProgramId: z.ZodNullable<z.ZodString>;
413
+ rebateDsType: z.ZodNullable<z.ZodString>;
414
+ rebateName: z.ZodNullable<z.ZodString>;
415
+ rebateValue: z.ZodNullable<z.ZodString>;
416
+ }, "strip", z.ZodTypeAny, {
417
+ rebateId: number | null;
418
+ rebateCode: string | null;
419
+ rebateDsProgramId: string | null;
420
+ rebateDsType: string | null;
421
+ rebateName: string | null;
422
+ rebateValue: string | null;
423
+ }, {
424
+ rebateId: number | null;
425
+ rebateCode: string | null;
426
+ rebateDsProgramId: string | null;
427
+ rebateDsType: string | null;
428
+ rebateName: string | null;
429
+ rebateValue: string | null;
430
+ }>, "many">>;
431
+ incentivesTotal: z.ZodNumber;
432
+ disclaimer: z.ZodString;
433
+ }, "strip", z.ZodTypeAny, {
434
+ lender: string;
435
+ disclaimer: string;
436
+ netPrice: number;
437
+ incentivesTotal: number;
438
+ rebates: {
439
+ rebateId: number | null;
440
+ rebateCode: string | null;
441
+ rebateDsProgramId: string | null;
442
+ rebateDsType: string | null;
443
+ rebateName: string | null;
444
+ rebateValue: string | null;
445
+ }[];
446
+ }, {
447
+ lender: string;
448
+ disclaimer: string;
449
+ netPrice: number;
450
+ incentivesTotal: number;
451
+ rebates?: {
452
+ rebateId: number | null;
453
+ rebateCode: string | null;
454
+ rebateDsProgramId: string | null;
455
+ rebateDsType: string | null;
456
+ rebateName: string | null;
457
+ rebateValue: string | null;
458
+ }[] | undefined;
459
+ }>>;
460
+ exteriorColor: z.ZodDefault<z.ZodOptional<z.ZodString>>;
461
+ exteriorColorGeneric: z.ZodDefault<z.ZodOptional<z.ZodString>>;
462
+ exteriorColorCode: z.ZodDefault<z.ZodOptional<z.ZodString>>;
463
+ interiorColor: z.ZodDefault<z.ZodOptional<z.ZodString>>;
464
+ interiorColorGeneric: z.ZodDefault<z.ZodOptional<z.ZodString>>;
465
+ interiorColorCode: z.ZodDefault<z.ZodOptional<z.ZodString>>;
466
+ additionalImageLink: z.ZodDefault<z.ZodOptional<z.ZodString>>;
467
+ vehicleOption: z.ZodDefault<z.ZodOptional<z.ZodString>>;
468
+ dateInStock: z.ZodDefault<z.ZodOptional<z.ZodString>>;
469
+ transmission: z.ZodDefault<z.ZodOptional<z.ZodString>>;
470
+ engine: z.ZodDefault<z.ZodOptional<z.ZodString>>;
471
+ fuel: z.ZodDefault<z.ZodOptional<z.ZodString>>;
472
+ numDoors: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
473
+ certifiedPreOwned: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
474
+ bodyStyle: z.ZodDefault<z.ZodOptional<z.ZodString>>;
475
+ driveTrain: z.ZodDefault<z.ZodOptional<z.ZodString>>;
476
+ fuelEfficiency: z.ZodDefault<z.ZodOptional<z.ZodString>>;
477
+ description: z.ZodDefault<z.ZodOptional<z.ZodString>>;
478
+ cityMPG: z.ZodOptional<z.ZodNumber>;
479
+ highwayMPG: z.ZodOptional<z.ZodNumber>;
480
+ }, "strip", z.ZodTypeAny, {
481
+ trim: string;
482
+ link: string;
483
+ year: number;
484
+ leasePrice: number;
485
+ lowestMonthlyPayment: number;
486
+ additionalImageLink: string;
487
+ engine: string;
488
+ exteriorColorCode: string;
489
+ description: string;
490
+ chromeId: string;
491
+ vin: string;
492
+ model: string;
493
+ price: string;
494
+ mileage: number;
495
+ bodyStyle: string;
496
+ exteriorColor: string;
497
+ exteriorColorGeneric: string;
498
+ interiorColor: string;
499
+ interiorColorGeneric: string;
500
+ interiorColorCode: string;
501
+ transmission: string;
502
+ fuelEfficiency: string;
503
+ dateInStock: string;
504
+ certifiedPreOwned: boolean;
505
+ dealershipName: string;
506
+ make: string;
507
+ condition: "New" | "Used" | "Certified";
508
+ imageLink: string;
509
+ vehicleMsrp: string;
510
+ vehicleOption: string;
511
+ fuel: string;
512
+ numDoors: number;
513
+ driveTrain: string;
514
+ finance?: {
515
+ expirationDate: string;
516
+ monthlyPayment: number;
517
+ term: number;
518
+ leasePrice: number;
519
+ downPayment: number;
520
+ interestRate: number;
521
+ lender: string;
522
+ disclaimer: string;
523
+ rebates: {
524
+ rebateId: number | null;
525
+ rebateCode: string | null;
526
+ rebateDsProgramId: string | null;
527
+ rebateDsType: string | null;
528
+ rebateName: string | null;
529
+ rebateValue: string | null;
530
+ }[];
531
+ } | undefined;
532
+ lease?: {
533
+ expirationDate: string;
534
+ monthlyPayment: number;
535
+ term: number;
536
+ leasePrice: number;
537
+ downPayment: number;
538
+ interestRate: number;
539
+ dueAtSigning: number;
540
+ mileageLimit: number;
541
+ perMileCharge: number;
542
+ lender: string;
543
+ disclaimer: string;
544
+ rebates: {
545
+ rebateId: number | null;
546
+ rebateCode: string | null;
547
+ rebateDsProgramId: string | null;
548
+ rebateDsType: string | null;
549
+ rebateName: string | null;
550
+ rebateValue: string | null;
551
+ }[];
552
+ mileagePenalty: number;
553
+ } | undefined;
554
+ cash?: {
555
+ lender: string;
556
+ disclaimer: string;
557
+ netPrice: number;
558
+ incentivesTotal: number;
559
+ rebates: {
560
+ rebateId: number | null;
561
+ rebateCode: string | null;
562
+ rebateDsProgramId: string | null;
563
+ rebateDsType: string | null;
564
+ rebateName: string | null;
565
+ rebateValue: string | null;
566
+ }[];
567
+ } | undefined;
568
+ cityMPG?: number | undefined;
569
+ highwayMPG?: number | undefined;
570
+ }, {
571
+ year: number;
572
+ vin: string;
573
+ model: string;
574
+ price: string;
575
+ make: string;
576
+ condition: "New" | "Used" | "Certified";
577
+ finance?: {
578
+ expirationDate: string;
579
+ monthlyPayment: number;
580
+ term: number;
581
+ leasePrice: number;
582
+ downPayment: number;
583
+ interestRate: number;
584
+ lender: string;
585
+ disclaimer: string;
586
+ rebates?: {
587
+ rebateId: number | null;
588
+ rebateCode: string | null;
589
+ rebateDsProgramId: string | null;
590
+ rebateDsType: string | null;
591
+ rebateName: string | null;
592
+ rebateValue: string | null;
593
+ }[] | undefined;
594
+ } | undefined;
595
+ trim?: string | undefined;
596
+ link?: string | undefined;
597
+ leasePrice?: number | undefined;
598
+ lowestMonthlyPayment?: number | undefined;
599
+ lease?: {
600
+ expirationDate: string;
601
+ monthlyPayment: number;
602
+ term: number;
603
+ leasePrice: number;
604
+ downPayment: number;
605
+ interestRate: number;
606
+ dueAtSigning: number;
607
+ mileageLimit: number;
608
+ perMileCharge: number;
609
+ lender: string;
610
+ disclaimer: string;
611
+ mileagePenalty: number;
612
+ rebates?: {
613
+ rebateId: number | null;
614
+ rebateCode: string | null;
615
+ rebateDsProgramId: string | null;
616
+ rebateDsType: string | null;
617
+ rebateName: string | null;
618
+ rebateValue: string | null;
619
+ }[] | undefined;
620
+ } | undefined;
621
+ cash?: {
622
+ lender: string;
623
+ disclaimer: string;
624
+ netPrice: number;
625
+ incentivesTotal: number;
626
+ rebates?: {
627
+ rebateId: number | null;
628
+ rebateCode: string | null;
629
+ rebateDsProgramId: string | null;
630
+ rebateDsType: string | null;
631
+ rebateName: string | null;
632
+ rebateValue: string | null;
633
+ }[] | undefined;
634
+ } | undefined;
635
+ additionalImageLink?: string | undefined;
636
+ engine?: string | undefined;
637
+ exteriorColorCode?: string | undefined;
638
+ description?: string | undefined;
639
+ chromeId?: string | undefined;
640
+ mileage?: number | undefined;
641
+ bodyStyle?: string | undefined;
642
+ exteriorColor?: string | undefined;
643
+ exteriorColorGeneric?: string | undefined;
644
+ interiorColor?: string | undefined;
645
+ interiorColorGeneric?: string | undefined;
646
+ interiorColorCode?: string | undefined;
647
+ transmission?: string | undefined;
648
+ fuelEfficiency?: string | undefined;
649
+ dateInStock?: string | undefined;
650
+ certifiedPreOwned?: boolean | undefined;
651
+ dealershipName?: string | undefined;
652
+ imageLink?: string | undefined;
653
+ vehicleMsrp?: string | undefined;
654
+ vehicleOption?: string | undefined;
655
+ fuel?: string | undefined;
656
+ numDoors?: number | undefined;
657
+ driveTrain?: string | undefined;
658
+ cityMPG?: number | undefined;
659
+ highwayMPG?: number | undefined;
660
+ }>;
661
+ export type LenderDeskVehicle = z.infer<typeof LenderDeskVehicleSchema>;
662
+ /**
663
+ * LenderDesk transform API response schema
664
+ */
665
+ export declare const LenderDeskTransformResponseSchema: z.ZodObject<{
666
+ success: z.ZodBoolean;
667
+ message: z.ZodDefault<z.ZodOptional<z.ZodString>>;
668
+ data: z.ZodDefault<z.ZodArray<z.ZodObject<{
669
+ vin: z.ZodString;
670
+ chromeId: z.ZodDefault<z.ZodOptional<z.ZodString>>;
671
+ year: z.ZodNumber;
672
+ make: z.ZodString;
673
+ model: z.ZodString;
674
+ trim: z.ZodDefault<z.ZodOptional<z.ZodString>>;
675
+ imageLink: z.ZodDefault<z.ZodOptional<z.ZodString>>;
676
+ link: z.ZodDefault<z.ZodOptional<z.ZodString>>;
677
+ mileage: z.ZodDefault<z.ZodNumber>;
678
+ condition: z.ZodEnum<["New", "Used", "Certified"]>;
679
+ price: z.ZodString;
680
+ vehicleMsrp: z.ZodDefault<z.ZodOptional<z.ZodString>>;
681
+ dealershipName: z.ZodDefault<z.ZodOptional<z.ZodString>>;
682
+ leasePrice: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
683
+ lowestMonthlyPayment: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
684
+ lease: z.ZodOptional<z.ZodObject<{
685
+ monthlyPayment: z.ZodNumber;
686
+ term: z.ZodNumber;
687
+ leasePrice: z.ZodNumber;
688
+ lender: z.ZodString;
689
+ interestRate: z.ZodNumber;
690
+ downPayment: z.ZodNumber;
691
+ mileagePenalty: z.ZodNumber;
692
+ perMileCharge: z.ZodNumber;
693
+ dueAtSigning: z.ZodNumber;
694
+ mileageLimit: z.ZodNumber;
695
+ rebates: z.ZodDefault<z.ZodArray<z.ZodObject<{
696
+ rebateId: z.ZodNullable<z.ZodNumber>;
697
+ rebateCode: z.ZodNullable<z.ZodString>;
698
+ rebateDsProgramId: z.ZodNullable<z.ZodString>;
699
+ rebateDsType: z.ZodNullable<z.ZodString>;
700
+ rebateName: z.ZodNullable<z.ZodString>;
701
+ rebateValue: z.ZodNullable<z.ZodString>;
702
+ }, "strip", z.ZodTypeAny, {
703
+ rebateId: number | null;
704
+ rebateCode: string | null;
705
+ rebateDsProgramId: string | null;
706
+ rebateDsType: string | null;
707
+ rebateName: string | null;
708
+ rebateValue: string | null;
709
+ }, {
710
+ rebateId: number | null;
711
+ rebateCode: string | null;
712
+ rebateDsProgramId: string | null;
713
+ rebateDsType: string | null;
714
+ rebateName: string | null;
715
+ rebateValue: string | null;
716
+ }>, "many">>;
717
+ expirationDate: z.ZodString;
718
+ disclaimer: z.ZodString;
719
+ }, "strip", z.ZodTypeAny, {
720
+ expirationDate: string;
721
+ monthlyPayment: number;
722
+ term: number;
723
+ leasePrice: number;
724
+ downPayment: number;
725
+ interestRate: number;
726
+ dueAtSigning: number;
727
+ mileageLimit: number;
728
+ perMileCharge: number;
729
+ lender: string;
730
+ disclaimer: string;
731
+ rebates: {
732
+ rebateId: number | null;
733
+ rebateCode: string | null;
734
+ rebateDsProgramId: string | null;
735
+ rebateDsType: string | null;
736
+ rebateName: string | null;
737
+ rebateValue: string | null;
738
+ }[];
739
+ mileagePenalty: number;
740
+ }, {
741
+ expirationDate: string;
742
+ monthlyPayment: number;
743
+ term: number;
744
+ leasePrice: number;
745
+ downPayment: number;
746
+ interestRate: number;
747
+ dueAtSigning: number;
748
+ mileageLimit: number;
749
+ perMileCharge: number;
750
+ lender: string;
751
+ disclaimer: string;
752
+ mileagePenalty: number;
753
+ rebates?: {
754
+ rebateId: number | null;
755
+ rebateCode: string | null;
756
+ rebateDsProgramId: string | null;
757
+ rebateDsType: string | null;
758
+ rebateName: string | null;
759
+ rebateValue: string | null;
760
+ }[] | undefined;
761
+ }>>;
762
+ finance: z.ZodOptional<z.ZodObject<{
763
+ monthlyPayment: z.ZodNumber;
764
+ term: z.ZodNumber;
765
+ leasePrice: z.ZodNumber;
766
+ lender: z.ZodString;
767
+ interestRate: z.ZodNumber;
768
+ downPayment: z.ZodNumber;
769
+ rebates: z.ZodDefault<z.ZodArray<z.ZodObject<{
770
+ rebateId: z.ZodNullable<z.ZodNumber>;
771
+ rebateCode: z.ZodNullable<z.ZodString>;
772
+ rebateDsProgramId: z.ZodNullable<z.ZodString>;
773
+ rebateDsType: z.ZodNullable<z.ZodString>;
774
+ rebateName: z.ZodNullable<z.ZodString>;
775
+ rebateValue: z.ZodNullable<z.ZodString>;
776
+ }, "strip", z.ZodTypeAny, {
777
+ rebateId: number | null;
778
+ rebateCode: string | null;
779
+ rebateDsProgramId: string | null;
780
+ rebateDsType: string | null;
781
+ rebateName: string | null;
782
+ rebateValue: string | null;
783
+ }, {
784
+ rebateId: number | null;
785
+ rebateCode: string | null;
786
+ rebateDsProgramId: string | null;
787
+ rebateDsType: string | null;
788
+ rebateName: string | null;
789
+ rebateValue: string | null;
790
+ }>, "many">>;
791
+ expirationDate: z.ZodString;
792
+ disclaimer: z.ZodString;
793
+ }, "strip", z.ZodTypeAny, {
794
+ expirationDate: string;
795
+ monthlyPayment: number;
796
+ term: number;
797
+ leasePrice: number;
798
+ downPayment: number;
799
+ interestRate: number;
800
+ lender: string;
801
+ disclaimer: string;
802
+ rebates: {
803
+ rebateId: number | null;
804
+ rebateCode: string | null;
805
+ rebateDsProgramId: string | null;
806
+ rebateDsType: string | null;
807
+ rebateName: string | null;
808
+ rebateValue: string | null;
809
+ }[];
810
+ }, {
811
+ expirationDate: string;
812
+ monthlyPayment: number;
813
+ term: number;
814
+ leasePrice: number;
815
+ downPayment: number;
816
+ interestRate: number;
817
+ lender: string;
818
+ disclaimer: string;
819
+ rebates?: {
820
+ rebateId: number | null;
821
+ rebateCode: string | null;
822
+ rebateDsProgramId: string | null;
823
+ rebateDsType: string | null;
824
+ rebateName: string | null;
825
+ rebateValue: string | null;
826
+ }[] | undefined;
827
+ }>>;
828
+ cash: z.ZodOptional<z.ZodObject<{
829
+ netPrice: z.ZodNumber;
830
+ lender: z.ZodString;
831
+ rebates: z.ZodDefault<z.ZodArray<z.ZodObject<{
832
+ rebateId: z.ZodNullable<z.ZodNumber>;
833
+ rebateCode: z.ZodNullable<z.ZodString>;
834
+ rebateDsProgramId: z.ZodNullable<z.ZodString>;
835
+ rebateDsType: z.ZodNullable<z.ZodString>;
836
+ rebateName: z.ZodNullable<z.ZodString>;
837
+ rebateValue: z.ZodNullable<z.ZodString>;
838
+ }, "strip", z.ZodTypeAny, {
839
+ rebateId: number | null;
840
+ rebateCode: string | null;
841
+ rebateDsProgramId: string | null;
842
+ rebateDsType: string | null;
843
+ rebateName: string | null;
844
+ rebateValue: string | null;
845
+ }, {
846
+ rebateId: number | null;
847
+ rebateCode: string | null;
848
+ rebateDsProgramId: string | null;
849
+ rebateDsType: string | null;
850
+ rebateName: string | null;
851
+ rebateValue: string | null;
852
+ }>, "many">>;
853
+ incentivesTotal: z.ZodNumber;
854
+ disclaimer: z.ZodString;
855
+ }, "strip", z.ZodTypeAny, {
856
+ lender: string;
857
+ disclaimer: string;
858
+ netPrice: number;
859
+ incentivesTotal: number;
860
+ rebates: {
861
+ rebateId: number | null;
862
+ rebateCode: string | null;
863
+ rebateDsProgramId: string | null;
864
+ rebateDsType: string | null;
865
+ rebateName: string | null;
866
+ rebateValue: string | null;
867
+ }[];
868
+ }, {
869
+ lender: string;
870
+ disclaimer: string;
871
+ netPrice: number;
872
+ incentivesTotal: number;
873
+ rebates?: {
874
+ rebateId: number | null;
875
+ rebateCode: string | null;
876
+ rebateDsProgramId: string | null;
877
+ rebateDsType: string | null;
878
+ rebateName: string | null;
879
+ rebateValue: string | null;
880
+ }[] | undefined;
881
+ }>>;
882
+ exteriorColor: z.ZodDefault<z.ZodOptional<z.ZodString>>;
883
+ exteriorColorGeneric: z.ZodDefault<z.ZodOptional<z.ZodString>>;
884
+ exteriorColorCode: z.ZodDefault<z.ZodOptional<z.ZodString>>;
885
+ interiorColor: z.ZodDefault<z.ZodOptional<z.ZodString>>;
886
+ interiorColorGeneric: z.ZodDefault<z.ZodOptional<z.ZodString>>;
887
+ interiorColorCode: z.ZodDefault<z.ZodOptional<z.ZodString>>;
888
+ additionalImageLink: z.ZodDefault<z.ZodOptional<z.ZodString>>;
889
+ vehicleOption: z.ZodDefault<z.ZodOptional<z.ZodString>>;
890
+ dateInStock: z.ZodDefault<z.ZodOptional<z.ZodString>>;
891
+ transmission: z.ZodDefault<z.ZodOptional<z.ZodString>>;
892
+ engine: z.ZodDefault<z.ZodOptional<z.ZodString>>;
893
+ fuel: z.ZodDefault<z.ZodOptional<z.ZodString>>;
894
+ numDoors: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
895
+ certifiedPreOwned: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
896
+ bodyStyle: z.ZodDefault<z.ZodOptional<z.ZodString>>;
897
+ driveTrain: z.ZodDefault<z.ZodOptional<z.ZodString>>;
898
+ fuelEfficiency: z.ZodDefault<z.ZodOptional<z.ZodString>>;
899
+ description: z.ZodDefault<z.ZodOptional<z.ZodString>>;
900
+ cityMPG: z.ZodOptional<z.ZodNumber>;
901
+ highwayMPG: z.ZodOptional<z.ZodNumber>;
902
+ }, "strip", z.ZodTypeAny, {
903
+ trim: string;
904
+ link: string;
905
+ year: number;
906
+ leasePrice: number;
907
+ lowestMonthlyPayment: number;
908
+ additionalImageLink: string;
909
+ engine: string;
910
+ exteriorColorCode: string;
911
+ description: string;
912
+ chromeId: string;
913
+ vin: string;
914
+ model: string;
915
+ price: string;
916
+ mileage: number;
917
+ bodyStyle: string;
918
+ exteriorColor: string;
919
+ exteriorColorGeneric: string;
920
+ interiorColor: string;
921
+ interiorColorGeneric: string;
922
+ interiorColorCode: string;
923
+ transmission: string;
924
+ fuelEfficiency: string;
925
+ dateInStock: string;
926
+ certifiedPreOwned: boolean;
927
+ dealershipName: string;
928
+ make: string;
929
+ condition: "New" | "Used" | "Certified";
930
+ imageLink: string;
931
+ vehicleMsrp: string;
932
+ vehicleOption: string;
933
+ fuel: string;
934
+ numDoors: number;
935
+ driveTrain: string;
936
+ finance?: {
937
+ expirationDate: string;
938
+ monthlyPayment: number;
939
+ term: number;
940
+ leasePrice: number;
941
+ downPayment: number;
942
+ interestRate: number;
943
+ lender: string;
944
+ disclaimer: string;
945
+ rebates: {
946
+ rebateId: number | null;
947
+ rebateCode: string | null;
948
+ rebateDsProgramId: string | null;
949
+ rebateDsType: string | null;
950
+ rebateName: string | null;
951
+ rebateValue: string | null;
952
+ }[];
953
+ } | undefined;
954
+ lease?: {
955
+ expirationDate: string;
956
+ monthlyPayment: number;
957
+ term: number;
958
+ leasePrice: number;
959
+ downPayment: number;
960
+ interestRate: number;
961
+ dueAtSigning: number;
962
+ mileageLimit: number;
963
+ perMileCharge: number;
964
+ lender: string;
965
+ disclaimer: string;
966
+ rebates: {
967
+ rebateId: number | null;
968
+ rebateCode: string | null;
969
+ rebateDsProgramId: string | null;
970
+ rebateDsType: string | null;
971
+ rebateName: string | null;
972
+ rebateValue: string | null;
973
+ }[];
974
+ mileagePenalty: number;
975
+ } | undefined;
976
+ cash?: {
977
+ lender: string;
978
+ disclaimer: string;
979
+ netPrice: number;
980
+ incentivesTotal: number;
981
+ rebates: {
982
+ rebateId: number | null;
983
+ rebateCode: string | null;
984
+ rebateDsProgramId: string | null;
985
+ rebateDsType: string | null;
986
+ rebateName: string | null;
987
+ rebateValue: string | null;
988
+ }[];
989
+ } | undefined;
990
+ cityMPG?: number | undefined;
991
+ highwayMPG?: number | undefined;
992
+ }, {
993
+ year: number;
994
+ vin: string;
995
+ model: string;
996
+ price: string;
997
+ make: string;
998
+ condition: "New" | "Used" | "Certified";
999
+ finance?: {
1000
+ expirationDate: string;
1001
+ monthlyPayment: number;
1002
+ term: number;
1003
+ leasePrice: number;
1004
+ downPayment: number;
1005
+ interestRate: number;
1006
+ lender: string;
1007
+ disclaimer: string;
1008
+ rebates?: {
1009
+ rebateId: number | null;
1010
+ rebateCode: string | null;
1011
+ rebateDsProgramId: string | null;
1012
+ rebateDsType: string | null;
1013
+ rebateName: string | null;
1014
+ rebateValue: string | null;
1015
+ }[] | undefined;
1016
+ } | undefined;
1017
+ trim?: string | undefined;
1018
+ link?: string | undefined;
1019
+ leasePrice?: number | undefined;
1020
+ lowestMonthlyPayment?: number | undefined;
1021
+ lease?: {
1022
+ expirationDate: string;
1023
+ monthlyPayment: number;
1024
+ term: number;
1025
+ leasePrice: number;
1026
+ downPayment: number;
1027
+ interestRate: number;
1028
+ dueAtSigning: number;
1029
+ mileageLimit: number;
1030
+ perMileCharge: number;
1031
+ lender: string;
1032
+ disclaimer: string;
1033
+ mileagePenalty: number;
1034
+ rebates?: {
1035
+ rebateId: number | null;
1036
+ rebateCode: string | null;
1037
+ rebateDsProgramId: string | null;
1038
+ rebateDsType: string | null;
1039
+ rebateName: string | null;
1040
+ rebateValue: string | null;
1041
+ }[] | undefined;
1042
+ } | undefined;
1043
+ cash?: {
1044
+ lender: string;
1045
+ disclaimer: string;
1046
+ netPrice: number;
1047
+ incentivesTotal: number;
1048
+ rebates?: {
1049
+ rebateId: number | null;
1050
+ rebateCode: string | null;
1051
+ rebateDsProgramId: string | null;
1052
+ rebateDsType: string | null;
1053
+ rebateName: string | null;
1054
+ rebateValue: string | null;
1055
+ }[] | undefined;
1056
+ } | undefined;
1057
+ additionalImageLink?: string | undefined;
1058
+ engine?: string | undefined;
1059
+ exteriorColorCode?: string | undefined;
1060
+ description?: string | undefined;
1061
+ chromeId?: string | undefined;
1062
+ mileage?: number | undefined;
1063
+ bodyStyle?: string | undefined;
1064
+ exteriorColor?: string | undefined;
1065
+ exteriorColorGeneric?: string | undefined;
1066
+ interiorColor?: string | undefined;
1067
+ interiorColorGeneric?: string | undefined;
1068
+ interiorColorCode?: string | undefined;
1069
+ transmission?: string | undefined;
1070
+ fuelEfficiency?: string | undefined;
1071
+ dateInStock?: string | undefined;
1072
+ certifiedPreOwned?: boolean | undefined;
1073
+ dealershipName?: string | undefined;
1074
+ imageLink?: string | undefined;
1075
+ vehicleMsrp?: string | undefined;
1076
+ vehicleOption?: string | undefined;
1077
+ fuel?: string | undefined;
1078
+ numDoors?: number | undefined;
1079
+ driveTrain?: string | undefined;
1080
+ cityMPG?: number | undefined;
1081
+ highwayMPG?: number | undefined;
1082
+ }>, "many">>;
1083
+ errors: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
1084
+ stats: z.ZodOptional<z.ZodObject<{
1085
+ processed: z.ZodDefault<z.ZodNumber>;
1086
+ failed: z.ZodDefault<z.ZodNumber>;
1087
+ total: z.ZodDefault<z.ZodNumber>;
1088
+ }, "strip", z.ZodTypeAny, {
1089
+ failed: number;
1090
+ total: number;
1091
+ processed: number;
1092
+ }, {
1093
+ failed?: number | undefined;
1094
+ total?: number | undefined;
1095
+ processed?: number | undefined;
1096
+ }>>;
1097
+ }, "strip", z.ZodTypeAny, {
1098
+ message: string;
1099
+ data: {
1100
+ trim: string;
1101
+ link: string;
1102
+ year: number;
1103
+ leasePrice: number;
1104
+ lowestMonthlyPayment: number;
1105
+ additionalImageLink: string;
1106
+ engine: string;
1107
+ exteriorColorCode: string;
1108
+ description: string;
1109
+ chromeId: string;
1110
+ vin: string;
1111
+ model: string;
1112
+ price: string;
1113
+ mileage: number;
1114
+ bodyStyle: string;
1115
+ exteriorColor: string;
1116
+ exteriorColorGeneric: string;
1117
+ interiorColor: string;
1118
+ interiorColorGeneric: string;
1119
+ interiorColorCode: string;
1120
+ transmission: string;
1121
+ fuelEfficiency: string;
1122
+ dateInStock: string;
1123
+ certifiedPreOwned: boolean;
1124
+ dealershipName: string;
1125
+ make: string;
1126
+ condition: "New" | "Used" | "Certified";
1127
+ imageLink: string;
1128
+ vehicleMsrp: string;
1129
+ vehicleOption: string;
1130
+ fuel: string;
1131
+ numDoors: number;
1132
+ driveTrain: string;
1133
+ finance?: {
1134
+ expirationDate: string;
1135
+ monthlyPayment: number;
1136
+ term: number;
1137
+ leasePrice: number;
1138
+ downPayment: number;
1139
+ interestRate: number;
1140
+ lender: string;
1141
+ disclaimer: string;
1142
+ rebates: {
1143
+ rebateId: number | null;
1144
+ rebateCode: string | null;
1145
+ rebateDsProgramId: string | null;
1146
+ rebateDsType: string | null;
1147
+ rebateName: string | null;
1148
+ rebateValue: string | null;
1149
+ }[];
1150
+ } | undefined;
1151
+ lease?: {
1152
+ expirationDate: string;
1153
+ monthlyPayment: number;
1154
+ term: number;
1155
+ leasePrice: number;
1156
+ downPayment: number;
1157
+ interestRate: number;
1158
+ dueAtSigning: number;
1159
+ mileageLimit: number;
1160
+ perMileCharge: number;
1161
+ lender: string;
1162
+ disclaimer: string;
1163
+ rebates: {
1164
+ rebateId: number | null;
1165
+ rebateCode: string | null;
1166
+ rebateDsProgramId: string | null;
1167
+ rebateDsType: string | null;
1168
+ rebateName: string | null;
1169
+ rebateValue: string | null;
1170
+ }[];
1171
+ mileagePenalty: number;
1172
+ } | undefined;
1173
+ cash?: {
1174
+ lender: string;
1175
+ disclaimer: string;
1176
+ netPrice: number;
1177
+ incentivesTotal: number;
1178
+ rebates: {
1179
+ rebateId: number | null;
1180
+ rebateCode: string | null;
1181
+ rebateDsProgramId: string | null;
1182
+ rebateDsType: string | null;
1183
+ rebateName: string | null;
1184
+ rebateValue: string | null;
1185
+ }[];
1186
+ } | undefined;
1187
+ cityMPG?: number | undefined;
1188
+ highwayMPG?: number | undefined;
1189
+ }[];
1190
+ success: boolean;
1191
+ errors: string[];
1192
+ stats?: {
1193
+ failed: number;
1194
+ total: number;
1195
+ processed: number;
1196
+ } | undefined;
1197
+ }, {
1198
+ success: boolean;
1199
+ message?: string | undefined;
1200
+ data?: {
1201
+ year: number;
1202
+ vin: string;
1203
+ model: string;
1204
+ price: string;
1205
+ make: string;
1206
+ condition: "New" | "Used" | "Certified";
1207
+ finance?: {
1208
+ expirationDate: string;
1209
+ monthlyPayment: number;
1210
+ term: number;
1211
+ leasePrice: number;
1212
+ downPayment: number;
1213
+ interestRate: number;
1214
+ lender: string;
1215
+ disclaimer: string;
1216
+ rebates?: {
1217
+ rebateId: number | null;
1218
+ rebateCode: string | null;
1219
+ rebateDsProgramId: string | null;
1220
+ rebateDsType: string | null;
1221
+ rebateName: string | null;
1222
+ rebateValue: string | null;
1223
+ }[] | undefined;
1224
+ } | undefined;
1225
+ trim?: string | undefined;
1226
+ link?: string | undefined;
1227
+ leasePrice?: number | undefined;
1228
+ lowestMonthlyPayment?: number | undefined;
1229
+ lease?: {
1230
+ expirationDate: string;
1231
+ monthlyPayment: number;
1232
+ term: number;
1233
+ leasePrice: number;
1234
+ downPayment: number;
1235
+ interestRate: number;
1236
+ dueAtSigning: number;
1237
+ mileageLimit: number;
1238
+ perMileCharge: number;
1239
+ lender: string;
1240
+ disclaimer: string;
1241
+ mileagePenalty: number;
1242
+ rebates?: {
1243
+ rebateId: number | null;
1244
+ rebateCode: string | null;
1245
+ rebateDsProgramId: string | null;
1246
+ rebateDsType: string | null;
1247
+ rebateName: string | null;
1248
+ rebateValue: string | null;
1249
+ }[] | undefined;
1250
+ } | undefined;
1251
+ cash?: {
1252
+ lender: string;
1253
+ disclaimer: string;
1254
+ netPrice: number;
1255
+ incentivesTotal: number;
1256
+ rebates?: {
1257
+ rebateId: number | null;
1258
+ rebateCode: string | null;
1259
+ rebateDsProgramId: string | null;
1260
+ rebateDsType: string | null;
1261
+ rebateName: string | null;
1262
+ rebateValue: string | null;
1263
+ }[] | undefined;
1264
+ } | undefined;
1265
+ additionalImageLink?: string | undefined;
1266
+ engine?: string | undefined;
1267
+ exteriorColorCode?: string | undefined;
1268
+ description?: string | undefined;
1269
+ chromeId?: string | undefined;
1270
+ mileage?: number | undefined;
1271
+ bodyStyle?: string | undefined;
1272
+ exteriorColor?: string | undefined;
1273
+ exteriorColorGeneric?: string | undefined;
1274
+ interiorColor?: string | undefined;
1275
+ interiorColorGeneric?: string | undefined;
1276
+ interiorColorCode?: string | undefined;
1277
+ transmission?: string | undefined;
1278
+ fuelEfficiency?: string | undefined;
1279
+ dateInStock?: string | undefined;
1280
+ certifiedPreOwned?: boolean | undefined;
1281
+ dealershipName?: string | undefined;
1282
+ imageLink?: string | undefined;
1283
+ vehicleMsrp?: string | undefined;
1284
+ vehicleOption?: string | undefined;
1285
+ fuel?: string | undefined;
1286
+ numDoors?: number | undefined;
1287
+ driveTrain?: string | undefined;
1288
+ cityMPG?: number | undefined;
1289
+ highwayMPG?: number | undefined;
1290
+ }[] | undefined;
1291
+ stats?: {
1292
+ failed?: number | undefined;
1293
+ total?: number | undefined;
1294
+ processed?: number | undefined;
1295
+ } | undefined;
1296
+ errors?: string[] | undefined;
1297
+ }>;
1298
+ export type LenderDeskTransformResponse = z.infer<typeof LenderDeskTransformResponseSchema>;
1299
+ /**
1300
+ * Chrome image schema
1301
+ */
1302
+ export declare const ChromeImageSchema: z.ZodObject<{
1303
+ url: z.ZodOptional<z.ZodString>;
1304
+ width: z.ZodOptional<z.ZodNumber>;
1305
+ height: z.ZodOptional<z.ZodNumber>;
1306
+ shotCode: z.ZodOptional<z.ZodString>;
1307
+ backgroundDescription: z.ZodOptional<z.ZodString>;
1308
+ }, "strip", z.ZodTypeAny, {
1309
+ url?: string | undefined;
1310
+ shotCode?: string | undefined;
1311
+ width?: number | undefined;
1312
+ height?: number | undefined;
1313
+ backgroundDescription?: string | undefined;
1314
+ }, {
1315
+ url?: string | undefined;
1316
+ shotCode?: string | undefined;
1317
+ width?: number | undefined;
1318
+ height?: number | undefined;
1319
+ backgroundDescription?: string | undefined;
1320
+ }>;
1321
+ export type ChromeImage = z.infer<typeof ChromeImageSchema>;
1322
+ /**
1323
+ * Chrome image gallery response schema
1324
+ */
1325
+ export declare const ChromeImageGallerySchema: z.ZodObject<{
1326
+ chromeId: z.ZodString;
1327
+ images: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodObject<{
1328
+ url: z.ZodOptional<z.ZodString>;
1329
+ width: z.ZodOptional<z.ZodNumber>;
1330
+ height: z.ZodOptional<z.ZodNumber>;
1331
+ shotCode: z.ZodOptional<z.ZodString>;
1332
+ backgroundDescription: z.ZodOptional<z.ZodString>;
1333
+ }, "strip", z.ZodTypeAny, {
1334
+ url?: string | undefined;
1335
+ shotCode?: string | undefined;
1336
+ width?: number | undefined;
1337
+ height?: number | undefined;
1338
+ backgroundDescription?: string | undefined;
1339
+ }, {
1340
+ url?: string | undefined;
1341
+ shotCode?: string | undefined;
1342
+ width?: number | undefined;
1343
+ height?: number | undefined;
1344
+ backgroundDescription?: string | undefined;
1345
+ }>, "many">>>;
1346
+ multiView: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodObject<{
1347
+ url: z.ZodOptional<z.ZodString>;
1348
+ width: z.ZodOptional<z.ZodNumber>;
1349
+ height: z.ZodOptional<z.ZodNumber>;
1350
+ shotCode: z.ZodOptional<z.ZodString>;
1351
+ backgroundDescription: z.ZodOptional<z.ZodString>;
1352
+ }, "strip", z.ZodTypeAny, {
1353
+ url?: string | undefined;
1354
+ shotCode?: string | undefined;
1355
+ width?: number | undefined;
1356
+ height?: number | undefined;
1357
+ backgroundDescription?: string | undefined;
1358
+ }, {
1359
+ url?: string | undefined;
1360
+ shotCode?: string | undefined;
1361
+ width?: number | undefined;
1362
+ height?: number | undefined;
1363
+ backgroundDescription?: string | undefined;
1364
+ }>, "many">>>;
1365
+ }, "strip", z.ZodTypeAny, {
1366
+ chromeId: string;
1367
+ multiView?: Record<string, {
1368
+ url?: string | undefined;
1369
+ shotCode?: string | undefined;
1370
+ width?: number | undefined;
1371
+ height?: number | undefined;
1372
+ backgroundDescription?: string | undefined;
1373
+ }[]> | undefined;
1374
+ images?: Record<string, {
1375
+ url?: string | undefined;
1376
+ shotCode?: string | undefined;
1377
+ width?: number | undefined;
1378
+ height?: number | undefined;
1379
+ backgroundDescription?: string | undefined;
1380
+ }[]> | undefined;
1381
+ }, {
1382
+ chromeId: string;
1383
+ multiView?: Record<string, {
1384
+ url?: string | undefined;
1385
+ shotCode?: string | undefined;
1386
+ width?: number | undefined;
1387
+ height?: number | undefined;
1388
+ backgroundDescription?: string | undefined;
1389
+ }[]> | undefined;
1390
+ images?: Record<string, {
1391
+ url?: string | undefined;
1392
+ shotCode?: string | undefined;
1393
+ width?: number | undefined;
1394
+ height?: number | undefined;
1395
+ backgroundDescription?: string | undefined;
1396
+ }[]> | undefined;
1397
+ }>;
1398
+ export type ChromeImageGallery = z.infer<typeof ChromeImageGallerySchema>;
1399
+ /**
1400
+ * Chrome API response schema
1401
+ */
1402
+ export declare const ChromeApiResponseSchema: z.ZodObject<{
1403
+ success: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
1404
+ data: z.ZodOptional<z.ZodObject<{
1405
+ chromeId: z.ZodString;
1406
+ images: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodObject<{
1407
+ url: z.ZodOptional<z.ZodString>;
1408
+ width: z.ZodOptional<z.ZodNumber>;
1409
+ height: z.ZodOptional<z.ZodNumber>;
1410
+ shotCode: z.ZodOptional<z.ZodString>;
1411
+ backgroundDescription: z.ZodOptional<z.ZodString>;
1412
+ }, "strip", z.ZodTypeAny, {
1413
+ url?: string | undefined;
1414
+ shotCode?: string | undefined;
1415
+ width?: number | undefined;
1416
+ height?: number | undefined;
1417
+ backgroundDescription?: string | undefined;
1418
+ }, {
1419
+ url?: string | undefined;
1420
+ shotCode?: string | undefined;
1421
+ width?: number | undefined;
1422
+ height?: number | undefined;
1423
+ backgroundDescription?: string | undefined;
1424
+ }>, "many">>>;
1425
+ multiView: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodObject<{
1426
+ url: z.ZodOptional<z.ZodString>;
1427
+ width: z.ZodOptional<z.ZodNumber>;
1428
+ height: z.ZodOptional<z.ZodNumber>;
1429
+ shotCode: z.ZodOptional<z.ZodString>;
1430
+ backgroundDescription: z.ZodOptional<z.ZodString>;
1431
+ }, "strip", z.ZodTypeAny, {
1432
+ url?: string | undefined;
1433
+ shotCode?: string | undefined;
1434
+ width?: number | undefined;
1435
+ height?: number | undefined;
1436
+ backgroundDescription?: string | undefined;
1437
+ }, {
1438
+ url?: string | undefined;
1439
+ shotCode?: string | undefined;
1440
+ width?: number | undefined;
1441
+ height?: number | undefined;
1442
+ backgroundDescription?: string | undefined;
1443
+ }>, "many">>>;
1444
+ }, "strip", z.ZodTypeAny, {
1445
+ chromeId: string;
1446
+ multiView?: Record<string, {
1447
+ url?: string | undefined;
1448
+ shotCode?: string | undefined;
1449
+ width?: number | undefined;
1450
+ height?: number | undefined;
1451
+ backgroundDescription?: string | undefined;
1452
+ }[]> | undefined;
1453
+ images?: Record<string, {
1454
+ url?: string | undefined;
1455
+ shotCode?: string | undefined;
1456
+ width?: number | undefined;
1457
+ height?: number | undefined;
1458
+ backgroundDescription?: string | undefined;
1459
+ }[]> | undefined;
1460
+ }, {
1461
+ chromeId: string;
1462
+ multiView?: Record<string, {
1463
+ url?: string | undefined;
1464
+ shotCode?: string | undefined;
1465
+ width?: number | undefined;
1466
+ height?: number | undefined;
1467
+ backgroundDescription?: string | undefined;
1468
+ }[]> | undefined;
1469
+ images?: Record<string, {
1470
+ url?: string | undefined;
1471
+ shotCode?: string | undefined;
1472
+ width?: number | undefined;
1473
+ height?: number | undefined;
1474
+ backgroundDescription?: string | undefined;
1475
+ }[]> | undefined;
1476
+ }>>;
1477
+ error: z.ZodOptional<z.ZodString>;
1478
+ }, "strip", z.ZodTypeAny, {
1479
+ success: boolean;
1480
+ error?: string | undefined;
1481
+ data?: {
1482
+ chromeId: string;
1483
+ multiView?: Record<string, {
1484
+ url?: string | undefined;
1485
+ shotCode?: string | undefined;
1486
+ width?: number | undefined;
1487
+ height?: number | undefined;
1488
+ backgroundDescription?: string | undefined;
1489
+ }[]> | undefined;
1490
+ images?: Record<string, {
1491
+ url?: string | undefined;
1492
+ shotCode?: string | undefined;
1493
+ width?: number | undefined;
1494
+ height?: number | undefined;
1495
+ backgroundDescription?: string | undefined;
1496
+ }[]> | undefined;
1497
+ } | undefined;
1498
+ }, {
1499
+ error?: string | undefined;
1500
+ data?: {
1501
+ chromeId: string;
1502
+ multiView?: Record<string, {
1503
+ url?: string | undefined;
1504
+ shotCode?: string | undefined;
1505
+ width?: number | undefined;
1506
+ height?: number | undefined;
1507
+ backgroundDescription?: string | undefined;
1508
+ }[]> | undefined;
1509
+ images?: Record<string, {
1510
+ url?: string | undefined;
1511
+ shotCode?: string | undefined;
1512
+ width?: number | undefined;
1513
+ height?: number | undefined;
1514
+ backgroundDescription?: string | undefined;
1515
+ }[]> | undefined;
1516
+ } | undefined;
1517
+ success?: boolean | undefined;
1518
+ }>;
1519
+ export type ChromeApiResponse = z.infer<typeof ChromeApiResponseSchema>;
1520
+ /**
1521
+ * Safe parser that returns null on validation failure instead of throwing
1522
+ */
1523
+ export declare function safeParseLenderDeskResponse(data: unknown): LenderDeskTransformResponse | null;
1524
+ /**
1525
+ * Safe parser for individual vehicle
1526
+ */
1527
+ export declare function safeParseLenderDeskVehicle(data: unknown): LenderDeskVehicle | null;
1528
+ /**
1529
+ * Safe parser for Chrome API response
1530
+ */
1531
+ export declare function safeParseChomeResponse(data: unknown): ChromeApiResponse | null;
1532
+ //# sourceMappingURL=externalApi.schema.d.ts.map