@cardog/api 0.1.1

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,1591 @@
1
+ import * as _cardog_contracts from '@cardog/contracts';
2
+ import { VinDecodeResponse, VinCorgiResponse, VinImageResponse, MarketAnalysis, MarketOverview, MarketPricing, BreakdownResponse, MarketOdometer, MarketGeography, MarketTrends, MarketPosition, MarketPulse, LocalMarketResponse, DemandMatrixResponse, ListingQuery, ListingSearchResponse, ListingCountResponse, Listing as Listing$1, ListingFacetsResponse, ListingFilters, LocationSearchParams, LocationResult, ChargingParams, ChargingStationResponse, ChargingStation, FuelTypeString, FuelStationResponse, LineupQuery, LineupResponse, VariantArrayResponse, VariantResponse, ResearchImageArray, ColorData, RecallSearchParams, RecallResponse, EfficiencySearchParams } from '@cardog/contracts';
3
+ export { BreakdownResponse, ChargingParams, ChargingStation, ChargingStationResponse, ColorData, ColorInfo, DemandMatrixResponse, FuelStation, FuelStationResponse, FuelType, LineupQuery, LineupResponse, LocalMarketResponse, MarketAnalysis, MarketGeography, MarketOdometer, MarketOverview, MarketPosition, MarketPricing, MarketPulse, MarketTrends, RecallDetail, RecallResponse, RecallSearchParams, ResearchImage, ResearchImageArray, Variant, VariantArrayResponse, VariantResponse, VinDecodeResponse, VinImageResponse, listingSchema } from '@cardog/contracts';
4
+ import { AxiosInstance } from 'axios';
5
+ import { z } from 'zod';
6
+
7
+ interface ClientConfig {
8
+ apiKey?: string;
9
+ baseUrl?: string;
10
+ }
11
+ interface RequestOptions {
12
+ headers?: Record<string, string>;
13
+ params?: Record<string, any>;
14
+ }
15
+ declare class APIError extends Error {
16
+ status: number;
17
+ code: string;
18
+ data?: any | undefined;
19
+ constructor(message: string, status: number, code: string, data?: any | undefined);
20
+ }
21
+ declare class BaseClient {
22
+ protected client: AxiosInstance;
23
+ protected config: ClientConfig;
24
+ constructor(config: ClientConfig);
25
+ setConfig(config: ClientConfig): void;
26
+ private setupInterceptors;
27
+ protected get<T>(path: string, options?: RequestOptions): Promise<T>;
28
+ protected post<T>(path: string, data: any, options?: RequestOptions): Promise<T>;
29
+ protected put<T>(path: string, data: any, options?: RequestOptions): Promise<T>;
30
+ protected patch<T>(path: string, data: any, options?: RequestOptions): Promise<T>;
31
+ protected delete<T>(path: string, options?: RequestOptions): Promise<T>;
32
+ }
33
+
34
+ declare const vinKeys: {
35
+ readonly all: readonly ["vin"];
36
+ readonly image: (base64: string) => readonly ["vin", "image", string];
37
+ readonly decode: (vin: string) => readonly ["vin", "decode", string];
38
+ };
39
+ declare class VinAPI extends BaseClient {
40
+ decode(vin: string): Promise<VinDecodeResponse>;
41
+ corgi(vin: string): Promise<Partial<VinCorgiResponse>>;
42
+ image(base64: string): Promise<VinImageResponse>;
43
+ }
44
+
45
+ declare const marketKeys: {
46
+ readonly all: readonly ["market"];
47
+ readonly analysis: (vin: string) => readonly ["market", "analysis", string];
48
+ readonly overview: (make: string, model: string, year: number) => readonly ["market", "overview", string, string, number];
49
+ readonly pricing: (make: string, model: string, year: number) => readonly ["market", "pricing", string, string, number];
50
+ readonly breakdown: (make: string, model: string, year: number) => readonly ["market", "breakdown", string, string, number];
51
+ readonly odometer: (make: string, model: string, year: number) => readonly ["market", "odometer", string, string, number];
52
+ readonly geography: (make: string, model: string, year: number) => readonly ["market", "geography", string, string, number];
53
+ readonly trends: (make: string, model: string, year: number, period: "week" | "month") => readonly ["market", "trends", string, string, number, "week" | "month"];
54
+ readonly similar: (listingId: string, limit: number) => readonly ["market", "similar", string, number];
55
+ readonly position: (listingId: string) => readonly ["market", "position", string];
56
+ readonly pulse: (options: {
57
+ activeOnly?: boolean;
58
+ daysCutoff?: number;
59
+ maxTopMakes?: number;
60
+ maxTopModels?: number;
61
+ priceRangeMin?: number;
62
+ priceRangeMax?: number;
63
+ priceRangeIncrement?: number;
64
+ }) => readonly ["market", "pulse", {
65
+ activeOnly?: boolean;
66
+ daysCutoff?: number;
67
+ maxTopMakes?: number;
68
+ maxTopModels?: number;
69
+ priceRangeMin?: number;
70
+ priceRangeMax?: number;
71
+ priceRangeIncrement?: number;
72
+ }];
73
+ readonly byVin: (vin: string) => readonly ["market", "byVin", string];
74
+ readonly local: (params: {
75
+ make: string;
76
+ model: string;
77
+ year: number;
78
+ lat: number;
79
+ lng: number;
80
+ radius?: number;
81
+ }) => readonly ["market", "local", {
82
+ make: string;
83
+ model: string;
84
+ year: number;
85
+ lat: number;
86
+ lng: number;
87
+ radius?: number;
88
+ }];
89
+ readonly demand: (make: string, model: string, year: number) => readonly ["market", "demand", string, string, number];
90
+ };
91
+ declare class MarketAPI extends BaseClient {
92
+ analysis: (vin: string) => Promise<MarketAnalysis>;
93
+ overview: (make: string, model: string, year: number) => Promise<MarketOverview>;
94
+ pricing: (make: string, model: string, year: number) => Promise<MarketPricing>;
95
+ breakdown: (make: string, model: string, year: number) => Promise<BreakdownResponse>;
96
+ odometer: (make: string, model: string, year: number) => Promise<MarketOdometer>;
97
+ geography: (make: string, model: string, year: number) => Promise<MarketGeography>;
98
+ trends: (make: string, model: string, year: number, period?: "week" | "month") => Promise<MarketTrends>;
99
+ similar: (listingId: string, limit: number) => Promise<MarketPosition[]>;
100
+ position: (listingId: string) => Promise<MarketPosition>;
101
+ pulse: (options: {
102
+ activeOnly?: boolean;
103
+ daysCutoff?: number;
104
+ maxTopMakes?: number;
105
+ maxTopModels?: number;
106
+ priceRangeMin?: number;
107
+ priceRangeMax?: number;
108
+ priceRangeIncrement?: number;
109
+ }) => Promise<MarketPulse>;
110
+ byVin: (vin: string) => Promise<MarketAnalysis>;
111
+ localMarket: (params: {
112
+ make: string;
113
+ model: string;
114
+ year: number;
115
+ lat: number;
116
+ lng: number;
117
+ radius?: number;
118
+ }) => Promise<LocalMarketResponse>;
119
+ demand: (make: string, model: string, year: number) => Promise<DemandMatrixResponse>;
120
+ }
121
+
122
+ type ListingsFilters = ListingFilters;
123
+ type ListingsSearchParams = ListingQuery;
124
+ type ListingsResponse = ListingSearchResponse;
125
+ type ListingsCountResponse = ListingCountResponse;
126
+ type ListingsFacetsResponse = ListingFacetsResponse;
127
+ type Listing = Listing$1;
128
+
129
+ declare const listingsKeys: {
130
+ readonly all: readonly ["listings"];
131
+ readonly search: (params: ListingsSearchParams) => readonly ["listings", "search", {
132
+ sort?: {
133
+ field: "year" | "price" | "odometer" | "createdAt" | "random" | "score";
134
+ direction: "asc" | "desc";
135
+ } | undefined;
136
+ filters?: {
137
+ ids?: string[] | undefined;
138
+ makes?: string[] | undefined;
139
+ models?: Record<string, string[]> | undefined;
140
+ trims?: string[] | undefined;
141
+ year?: {
142
+ min?: number | undefined;
143
+ max?: number | undefined;
144
+ } | undefined;
145
+ price?: {
146
+ min?: number | undefined;
147
+ max?: number | undefined;
148
+ } | undefined;
149
+ odometer?: {
150
+ min?: number | undefined;
151
+ max?: number | undefined;
152
+ } | undefined;
153
+ saleTypes?: string[] | undefined;
154
+ bodyStyles?: string[] | undefined;
155
+ fuelTypes?: string[] | undefined;
156
+ exteriorColors?: string[] | undefined;
157
+ interiorColors?: string[] | undefined;
158
+ location?: {
159
+ lat: number;
160
+ lng: number;
161
+ radius: number;
162
+ } | undefined;
163
+ sellers?: string[] | undefined;
164
+ createdAfter?: string | undefined;
165
+ createdBefore?: string | undefined;
166
+ updatedAfter?: string | undefined;
167
+ updatedBefore?: string | undefined;
168
+ } | undefined;
169
+ pagination?: {
170
+ page: number;
171
+ limit: number;
172
+ } | undefined;
173
+ }];
174
+ readonly count: (params: ListingsSearchParams) => readonly ["listings", "count", {
175
+ sort?: {
176
+ field: "year" | "price" | "odometer" | "createdAt" | "random" | "score";
177
+ direction: "asc" | "desc";
178
+ } | undefined;
179
+ filters?: {
180
+ ids?: string[] | undefined;
181
+ makes?: string[] | undefined;
182
+ models?: Record<string, string[]> | undefined;
183
+ trims?: string[] | undefined;
184
+ year?: {
185
+ min?: number | undefined;
186
+ max?: number | undefined;
187
+ } | undefined;
188
+ price?: {
189
+ min?: number | undefined;
190
+ max?: number | undefined;
191
+ } | undefined;
192
+ odometer?: {
193
+ min?: number | undefined;
194
+ max?: number | undefined;
195
+ } | undefined;
196
+ saleTypes?: string[] | undefined;
197
+ bodyStyles?: string[] | undefined;
198
+ fuelTypes?: string[] | undefined;
199
+ exteriorColors?: string[] | undefined;
200
+ interiorColors?: string[] | undefined;
201
+ location?: {
202
+ lat: number;
203
+ lng: number;
204
+ radius: number;
205
+ } | undefined;
206
+ sellers?: string[] | undefined;
207
+ createdAfter?: string | undefined;
208
+ createdBefore?: string | undefined;
209
+ updatedAfter?: string | undefined;
210
+ updatedBefore?: string | undefined;
211
+ } | undefined;
212
+ pagination?: {
213
+ page: number;
214
+ limit: number;
215
+ } | undefined;
216
+ }];
217
+ readonly facets: (params: ListingsSearchParams) => readonly ["listings", "facets", {
218
+ sort?: {
219
+ field: "year" | "price" | "odometer" | "createdAt" | "random" | "score";
220
+ direction: "asc" | "desc";
221
+ } | undefined;
222
+ filters?: {
223
+ ids?: string[] | undefined;
224
+ makes?: string[] | undefined;
225
+ models?: Record<string, string[]> | undefined;
226
+ trims?: string[] | undefined;
227
+ year?: {
228
+ min?: number | undefined;
229
+ max?: number | undefined;
230
+ } | undefined;
231
+ price?: {
232
+ min?: number | undefined;
233
+ max?: number | undefined;
234
+ } | undefined;
235
+ odometer?: {
236
+ min?: number | undefined;
237
+ max?: number | undefined;
238
+ } | undefined;
239
+ saleTypes?: string[] | undefined;
240
+ bodyStyles?: string[] | undefined;
241
+ fuelTypes?: string[] | undefined;
242
+ exteriorColors?: string[] | undefined;
243
+ interiorColors?: string[] | undefined;
244
+ location?: {
245
+ lat: number;
246
+ lng: number;
247
+ radius: number;
248
+ } | undefined;
249
+ sellers?: string[] | undefined;
250
+ createdAfter?: string | undefined;
251
+ createdBefore?: string | undefined;
252
+ updatedAfter?: string | undefined;
253
+ updatedBefore?: string | undefined;
254
+ } | undefined;
255
+ pagination?: {
256
+ page: number;
257
+ limit: number;
258
+ } | undefined;
259
+ }];
260
+ readonly getById: (id: string) => readonly ["listings", "getById", string];
261
+ };
262
+ declare class ListingsAPI extends BaseClient {
263
+ search(params: ListingsSearchParams): Promise<ListingsResponse>;
264
+ count(params: ListingsSearchParams): Promise<ListingsCountResponse>;
265
+ getById(id: string): Promise<Listing>;
266
+ facets(params: ListingsSearchParams): Promise<ListingsFacetsResponse>;
267
+ decodeSearchParams(searchParams: URLSearchParams): ListingFilters;
268
+ encodeFilters(filters: ListingFilters): URLSearchParams;
269
+ }
270
+
271
+ declare const searchResponseSchema: z.ZodObject<{
272
+ results: z.ZodArray<z.ZodObject<{
273
+ id: z.ZodString;
274
+ name: z.ZodString;
275
+ slug: z.ZodString;
276
+ type: z.ZodEnum<["individual", "dealership", "auction", "aggregator"]>;
277
+ email: z.ZodNullable<z.ZodString>;
278
+ phone: z.ZodNullable<z.ZodString>;
279
+ gmbPhone: z.ZodOptional<z.ZodNullable<z.ZodString>>;
280
+ gmbRating: z.ZodOptional<z.ZodNullable<z.ZodString>>;
281
+ gmbReviewCount: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
282
+ address: z.ZodNullable<z.ZodObject<{
283
+ id: z.ZodNullable<z.ZodNumber>;
284
+ street: z.ZodNullable<z.ZodString>;
285
+ city: z.ZodNullable<z.ZodString>;
286
+ state: z.ZodNullable<z.ZodString>;
287
+ postalCode: z.ZodNullable<z.ZodString>;
288
+ country: z.ZodNullable<z.ZodString>;
289
+ latitude: z.ZodNullable<z.ZodString>;
290
+ longitude: z.ZodNullable<z.ZodString>;
291
+ }, "strip", z.ZodTypeAny, {
292
+ country: string | null;
293
+ id: number | null;
294
+ street: string | null;
295
+ city: string | null;
296
+ state: string | null;
297
+ postalCode: string | null;
298
+ latitude: string | null;
299
+ longitude: string | null;
300
+ }, {
301
+ country: string | null;
302
+ id: number | null;
303
+ street: string | null;
304
+ city: string | null;
305
+ state: string | null;
306
+ postalCode: string | null;
307
+ latitude: string | null;
308
+ longitude: string | null;
309
+ }>>;
310
+ dealership: z.ZodNullable<z.ZodObject<{
311
+ id: z.ZodString;
312
+ name: z.ZodString;
313
+ primaryDomain: z.ZodNullable<z.ZodString>;
314
+ }, "strip", z.ZodTypeAny, {
315
+ name: string;
316
+ id: string;
317
+ primaryDomain: string | null;
318
+ }, {
319
+ name: string;
320
+ id: string;
321
+ primaryDomain: string | null;
322
+ }>>;
323
+ totalActiveListings: z.ZodNumber;
324
+ distance: z.ZodOptional<z.ZodNumber>;
325
+ }, "strip", z.ZodTypeAny, {
326
+ type: "individual" | "dealership" | "auction" | "aggregator";
327
+ name: string;
328
+ dealership: {
329
+ name: string;
330
+ id: string;
331
+ primaryDomain: string | null;
332
+ } | null;
333
+ id: string;
334
+ slug: string;
335
+ email: string | null;
336
+ phone: string | null;
337
+ address: {
338
+ country: string | null;
339
+ id: number | null;
340
+ street: string | null;
341
+ city: string | null;
342
+ state: string | null;
343
+ postalCode: string | null;
344
+ latitude: string | null;
345
+ longitude: string | null;
346
+ } | null;
347
+ totalActiveListings: number;
348
+ gmbPhone?: string | null | undefined;
349
+ gmbRating?: string | null | undefined;
350
+ gmbReviewCount?: number | null | undefined;
351
+ distance?: number | undefined;
352
+ }, {
353
+ type: "individual" | "dealership" | "auction" | "aggregator";
354
+ name: string;
355
+ dealership: {
356
+ name: string;
357
+ id: string;
358
+ primaryDomain: string | null;
359
+ } | null;
360
+ id: string;
361
+ slug: string;
362
+ email: string | null;
363
+ phone: string | null;
364
+ address: {
365
+ country: string | null;
366
+ id: number | null;
367
+ street: string | null;
368
+ city: string | null;
369
+ state: string | null;
370
+ postalCode: string | null;
371
+ latitude: string | null;
372
+ longitude: string | null;
373
+ } | null;
374
+ totalActiveListings: number;
375
+ gmbPhone?: string | null | undefined;
376
+ gmbRating?: string | null | undefined;
377
+ gmbReviewCount?: number | null | undefined;
378
+ distance?: number | undefined;
379
+ }>, "many">;
380
+ meta: z.ZodOptional<z.ZodAny>;
381
+ }, "strip", z.ZodTypeAny, {
382
+ results: {
383
+ type: "individual" | "dealership" | "auction" | "aggregator";
384
+ name: string;
385
+ dealership: {
386
+ name: string;
387
+ id: string;
388
+ primaryDomain: string | null;
389
+ } | null;
390
+ id: string;
391
+ slug: string;
392
+ email: string | null;
393
+ phone: string | null;
394
+ address: {
395
+ country: string | null;
396
+ id: number | null;
397
+ street: string | null;
398
+ city: string | null;
399
+ state: string | null;
400
+ postalCode: string | null;
401
+ latitude: string | null;
402
+ longitude: string | null;
403
+ } | null;
404
+ totalActiveListings: number;
405
+ gmbPhone?: string | null | undefined;
406
+ gmbRating?: string | null | undefined;
407
+ gmbReviewCount?: number | null | undefined;
408
+ distance?: number | undefined;
409
+ }[];
410
+ meta?: any;
411
+ }, {
412
+ results: {
413
+ type: "individual" | "dealership" | "auction" | "aggregator";
414
+ name: string;
415
+ dealership: {
416
+ name: string;
417
+ id: string;
418
+ primaryDomain: string | null;
419
+ } | null;
420
+ id: string;
421
+ slug: string;
422
+ email: string | null;
423
+ phone: string | null;
424
+ address: {
425
+ country: string | null;
426
+ id: number | null;
427
+ street: string | null;
428
+ city: string | null;
429
+ state: string | null;
430
+ postalCode: string | null;
431
+ latitude: string | null;
432
+ longitude: string | null;
433
+ } | null;
434
+ totalActiveListings: number;
435
+ gmbPhone?: string | null | undefined;
436
+ gmbRating?: string | null | undefined;
437
+ gmbReviewCount?: number | null | undefined;
438
+ distance?: number | undefined;
439
+ }[];
440
+ meta?: any;
441
+ }>;
442
+ type LocationsSearchParams = LocationSearchParams;
443
+ type Seller = LocationResult;
444
+ type LocationsSearchResponse = z.infer<typeof searchResponseSchema>;
445
+ type LocationDetailResponse = LocationResult;
446
+ declare const locationsKeys: {
447
+ readonly all: readonly ["locations"];
448
+ readonly search: (params: LocationsSearchParams) => readonly ["locations", "search", {
449
+ lat?: number | undefined;
450
+ lng?: number | undefined;
451
+ radius?: number | undefined;
452
+ limit?: number | undefined;
453
+ name?: string | undefined;
454
+ country?: string | undefined;
455
+ sellerType?: "individual" | "dealership" | "auction" | "aggregator" | undefined;
456
+ websiteDomain?: string | undefined;
457
+ hasActiveListings?: unknown;
458
+ offset?: number | undefined;
459
+ }];
460
+ readonly detail: (id: string) => readonly ["locations", "detail", string];
461
+ readonly bySlug: (slug: string) => readonly ["locations", "slug", string];
462
+ };
463
+ declare class LocationsAPI extends BaseClient {
464
+ search(params: LocationsSearchParams): Promise<LocationsSearchResponse>;
465
+ getById(id: string): Promise<LocationDetailResponse>;
466
+ getByName(name: string): Promise<LocationDetailResponse>;
467
+ getBySlug(slug: string): Promise<LocationDetailResponse>;
468
+ getByIdentifier(identifier: string): Promise<LocationDetailResponse>;
469
+ }
470
+
471
+ declare const chargingKeys: {
472
+ readonly all: readonly ["charging"];
473
+ readonly stations: (params: ChargingParams) => readonly ["charging", "stations", {
474
+ country: string;
475
+ lat?: number | undefined;
476
+ lng?: number | undefined;
477
+ radius?: number | undefined;
478
+ limit?: number | undefined;
479
+ region?: string | undefined;
480
+ connector?: _cardog_contracts.ConnectorType[] | undefined;
481
+ minPower?: number | undefined;
482
+ includeInactive?: boolean | undefined;
483
+ includePhotos?: boolean | undefined;
484
+ }];
485
+ readonly station: (id: string) => readonly ["charging", "station", string];
486
+ };
487
+ declare class ChargingAPI extends BaseClient {
488
+ getStations(params: ChargingParams): Promise<ChargingStationResponse>;
489
+ getStation(id: string): Promise<ChargingStation | null>;
490
+ }
491
+
492
+ declare const fuelKeys: {
493
+ readonly all: readonly ["fuel"];
494
+ readonly search: (params: FuelSearchParams) => readonly ["fuel", "search", FuelSearchParams];
495
+ };
496
+ interface FuelSearchParams {
497
+ country: string;
498
+ fuelType: FuelTypeString;
499
+ lat: number;
500
+ lng: number;
501
+ radius?: number;
502
+ limit?: number;
503
+ }
504
+ declare class FuelAPI extends BaseClient {
505
+ /**
506
+ * Search for fuel prices and stations
507
+ */
508
+ search(params: FuelSearchParams): Promise<FuelStationResponse>;
509
+ }
510
+
511
+ interface LineupParams extends Omit<LineupQuery, "page"> {
512
+ make: string;
513
+ }
514
+ declare const researchKeys: {
515
+ readonly all: readonly ["research"];
516
+ readonly lineup: (make: string, params?: Omit<LineupQuery, "page">) => readonly ["research", "lineup", string, Omit<{
517
+ page: number;
518
+ limit: number;
519
+ region?: "US" | "CA" | "EU" | undefined;
520
+ bodyStyle?: string | undefined;
521
+ }, "page"> | undefined];
522
+ readonly byMake: (make: string) => readonly ["research", "make", string];
523
+ readonly byId: (id: string) => readonly ["research", "id", string];
524
+ readonly byListingId: (listingId: string) => readonly ["research", "listing", string];
525
+ readonly byVin: (vin: string) => readonly ["research", "vin", string];
526
+ readonly byModel: (make: string, model: string) => readonly ["research", "model", string, string];
527
+ readonly byYear: (make: string, year: number) => readonly ["research", "year", string, number];
528
+ readonly byModelYear: (make: string, model: string, year: number) => readonly ["research", "modelYear", string, string, number];
529
+ readonly images: (params: {
530
+ make: string;
531
+ model: string;
532
+ year: number;
533
+ limit?: number;
534
+ }) => readonly ["research", "images", {
535
+ make: string;
536
+ model: string;
537
+ year: number;
538
+ limit?: number;
539
+ }];
540
+ readonly profileImages: (params: {
541
+ make: string;
542
+ model: string;
543
+ year: number;
544
+ }) => readonly ["research", "profileImages", {
545
+ make: string;
546
+ model: string;
547
+ year: number;
548
+ }];
549
+ readonly colors: (params: {
550
+ make: string;
551
+ model: string;
552
+ year: number;
553
+ }) => readonly ["research", "colors", {
554
+ make: string;
555
+ model: string;
556
+ year: number;
557
+ }];
558
+ };
559
+ declare class ResearchAPI extends BaseClient {
560
+ lineup(make: string, params?: LineupQuery): Promise<LineupResponse>;
561
+ byMake(make: string): Promise<VariantArrayResponse>;
562
+ byId(id: string): Promise<VariantResponse>;
563
+ byListingId(listingId: string): Promise<VariantResponse>;
564
+ byVin(vin: string): Promise<VariantResponse>;
565
+ byModel(make: string, model: string): Promise<VariantArrayResponse>;
566
+ byYear(make: string, year: number): Promise<VariantArrayResponse>;
567
+ byModelYear(make: string, model: string, year: number): Promise<VariantArrayResponse>;
568
+ getImages(params: {
569
+ make: string;
570
+ model: string;
571
+ year: number;
572
+ limit?: number;
573
+ shotType?: string;
574
+ category?: string;
575
+ }): Promise<ResearchImageArray>;
576
+ getProfileImages(params: {
577
+ make: string;
578
+ model: string;
579
+ year: number;
580
+ }): Promise<ResearchImageArray>;
581
+ getColors(params: {
582
+ make: string;
583
+ model: string;
584
+ year: number;
585
+ }): Promise<ColorData>;
586
+ }
587
+
588
+ declare const recallKeys: {
589
+ readonly all: readonly ["recalls"];
590
+ readonly search: (params: RecallSearchParams) => readonly ["recalls", "search", "ca" | "us", string[] | undefined, string[] | undefined, {
591
+ min?: number | undefined;
592
+ max?: number | undefined;
593
+ } | undefined];
594
+ };
595
+ declare class RecallsAPI extends BaseClient {
596
+ search: (params: RecallSearchParams) => Promise<RecallResponse>;
597
+ }
598
+
599
+ declare const efficiencyResponseSchema: z.ZodObject<{
600
+ success: z.ZodBoolean;
601
+ data: z.ZodArray<z.ZodObject<{
602
+ id: z.ZodNumber;
603
+ source: z.ZodEnum<["epa", "tc", "uk-vca", "eu-eea"]>;
604
+ sourceId: z.ZodString;
605
+ year: z.ZodNumber;
606
+ make: z.ZodString;
607
+ model: z.ZodString;
608
+ variant: z.ZodNullable<z.ZodString>;
609
+ powertrainType: z.ZodEnum<["ice", "bev", "phev", "hev", "mhev", "fcev"]>;
610
+ fuelType: z.ZodString;
611
+ transmission: z.ZodNullable<z.ZodString>;
612
+ driveType: z.ZodNullable<z.ZodString>;
613
+ engineDisplacementCc: z.ZodNullable<z.ZodNumber>;
614
+ enginePowerKw: z.ZodNullable<z.ZodNumber>;
615
+ cylinders: z.ZodNullable<z.ZodNumber>;
616
+ combinedLPer100km: z.ZodNullable<z.ZodNumber>;
617
+ cityLPer100km: z.ZodNullable<z.ZodNumber>;
618
+ highwayLPer100km: z.ZodNullable<z.ZodNumber>;
619
+ combinedKwhPer100km: z.ZodNullable<z.ZodNumber>;
620
+ cityKwhPer100km: z.ZodNullable<z.ZodNumber>;
621
+ highwayKwhPer100km: z.ZodNullable<z.ZodNumber>;
622
+ co2GramsPerKm: z.ZodNullable<z.ZodNumber>;
623
+ electricRangeKm: z.ZodNullable<z.ZodNumber>;
624
+ totalRangeKm: z.ZodNullable<z.ZodNumber>;
625
+ massKg: z.ZodNullable<z.ZodNumber>;
626
+ wheelbaseMm: z.ZodNullable<z.ZodNumber>;
627
+ testCycle: z.ZodEnum<["epa", "wltp", "mixed"]>;
628
+ }, "strip", z.ZodTypeAny, {
629
+ year: number;
630
+ make: string;
631
+ model: string;
632
+ id: number;
633
+ source: "epa" | "tc" | "uk-vca" | "eu-eea";
634
+ driveType: string | null;
635
+ fuelType: string;
636
+ transmission: string | null;
637
+ cylinders: number | null;
638
+ sourceId: string;
639
+ variant: string | null;
640
+ powertrainType: "ice" | "bev" | "phev" | "hev" | "mhev" | "fcev";
641
+ engineDisplacementCc: number | null;
642
+ enginePowerKw: number | null;
643
+ combinedLPer100km: number | null;
644
+ cityLPer100km: number | null;
645
+ highwayLPer100km: number | null;
646
+ combinedKwhPer100km: number | null;
647
+ cityKwhPer100km: number | null;
648
+ highwayKwhPer100km: number | null;
649
+ co2GramsPerKm: number | null;
650
+ electricRangeKm: number | null;
651
+ totalRangeKm: number | null;
652
+ massKg: number | null;
653
+ wheelbaseMm: number | null;
654
+ testCycle: "epa" | "wltp" | "mixed";
655
+ }, {
656
+ year: number;
657
+ make: string;
658
+ model: string;
659
+ id: number;
660
+ source: "epa" | "tc" | "uk-vca" | "eu-eea";
661
+ driveType: string | null;
662
+ fuelType: string;
663
+ transmission: string | null;
664
+ cylinders: number | null;
665
+ sourceId: string;
666
+ variant: string | null;
667
+ powertrainType: "ice" | "bev" | "phev" | "hev" | "mhev" | "fcev";
668
+ engineDisplacementCc: number | null;
669
+ enginePowerKw: number | null;
670
+ combinedLPer100km: number | null;
671
+ cityLPer100km: number | null;
672
+ highwayLPer100km: number | null;
673
+ combinedKwhPer100km: number | null;
674
+ cityKwhPer100km: number | null;
675
+ highwayKwhPer100km: number | null;
676
+ co2GramsPerKm: number | null;
677
+ electricRangeKm: number | null;
678
+ totalRangeKm: number | null;
679
+ massKg: number | null;
680
+ wheelbaseMm: number | null;
681
+ testCycle: "epa" | "wltp" | "mixed";
682
+ }>, "many">;
683
+ meta: z.ZodObject<{
684
+ filter: z.ZodOptional<z.ZodAny>;
685
+ make: z.ZodOptional<z.ZodString>;
686
+ model: z.ZodOptional<z.ZodString>;
687
+ year: z.ZodOptional<z.ZodNumber>;
688
+ trim: z.ZodOptional<z.ZodString>;
689
+ count: z.ZodNumber;
690
+ fallback: z.ZodOptional<z.ZodBoolean>;
691
+ }, "strip", z.ZodTypeAny, {
692
+ count: number;
693
+ filter?: any;
694
+ year?: number | undefined;
695
+ make?: string | undefined;
696
+ model?: string | undefined;
697
+ trim?: string | undefined;
698
+ fallback?: boolean | undefined;
699
+ }, {
700
+ count: number;
701
+ filter?: any;
702
+ year?: number | undefined;
703
+ make?: string | undefined;
704
+ model?: string | undefined;
705
+ trim?: string | undefined;
706
+ fallback?: boolean | undefined;
707
+ }>;
708
+ }, "strip", z.ZodTypeAny, {
709
+ data: {
710
+ year: number;
711
+ make: string;
712
+ model: string;
713
+ id: number;
714
+ source: "epa" | "tc" | "uk-vca" | "eu-eea";
715
+ driveType: string | null;
716
+ fuelType: string;
717
+ transmission: string | null;
718
+ cylinders: number | null;
719
+ sourceId: string;
720
+ variant: string | null;
721
+ powertrainType: "ice" | "bev" | "phev" | "hev" | "mhev" | "fcev";
722
+ engineDisplacementCc: number | null;
723
+ enginePowerKw: number | null;
724
+ combinedLPer100km: number | null;
725
+ cityLPer100km: number | null;
726
+ highwayLPer100km: number | null;
727
+ combinedKwhPer100km: number | null;
728
+ cityKwhPer100km: number | null;
729
+ highwayKwhPer100km: number | null;
730
+ co2GramsPerKm: number | null;
731
+ electricRangeKm: number | null;
732
+ totalRangeKm: number | null;
733
+ massKg: number | null;
734
+ wheelbaseMm: number | null;
735
+ testCycle: "epa" | "wltp" | "mixed";
736
+ }[];
737
+ success: boolean;
738
+ meta: {
739
+ count: number;
740
+ filter?: any;
741
+ year?: number | undefined;
742
+ make?: string | undefined;
743
+ model?: string | undefined;
744
+ trim?: string | undefined;
745
+ fallback?: boolean | undefined;
746
+ };
747
+ }, {
748
+ data: {
749
+ year: number;
750
+ make: string;
751
+ model: string;
752
+ id: number;
753
+ source: "epa" | "tc" | "uk-vca" | "eu-eea";
754
+ driveType: string | null;
755
+ fuelType: string;
756
+ transmission: string | null;
757
+ cylinders: number | null;
758
+ sourceId: string;
759
+ variant: string | null;
760
+ powertrainType: "ice" | "bev" | "phev" | "hev" | "mhev" | "fcev";
761
+ engineDisplacementCc: number | null;
762
+ enginePowerKw: number | null;
763
+ combinedLPer100km: number | null;
764
+ cityLPer100km: number | null;
765
+ highwayLPer100km: number | null;
766
+ combinedKwhPer100km: number | null;
767
+ cityKwhPer100km: number | null;
768
+ highwayKwhPer100km: number | null;
769
+ co2GramsPerKm: number | null;
770
+ electricRangeKm: number | null;
771
+ totalRangeKm: number | null;
772
+ massKg: number | null;
773
+ wheelbaseMm: number | null;
774
+ testCycle: "epa" | "wltp" | "mixed";
775
+ }[];
776
+ success: boolean;
777
+ meta: {
778
+ count: number;
779
+ filter?: any;
780
+ year?: number | undefined;
781
+ make?: string | undefined;
782
+ model?: string | undefined;
783
+ trim?: string | undefined;
784
+ fallback?: boolean | undefined;
785
+ };
786
+ }>;
787
+ declare const efficiencyStatsResponseSchema: z.ZodObject<{
788
+ success: z.ZodBoolean;
789
+ data: z.ZodObject<{
790
+ totalRecords: z.ZodNumber;
791
+ bySource: z.ZodArray<z.ZodObject<{
792
+ source: z.ZodEnum<["epa", "tc", "uk-vca", "eu-eea"]>;
793
+ count: z.ZodNumber;
794
+ }, "strip", z.ZodTypeAny, {
795
+ source: "epa" | "tc" | "uk-vca" | "eu-eea";
796
+ count: number;
797
+ }, {
798
+ source: "epa" | "tc" | "uk-vca" | "eu-eea";
799
+ count: number;
800
+ }>, "many">;
801
+ byPowertrain: z.ZodArray<z.ZodObject<{
802
+ powertrainType: z.ZodString;
803
+ count: z.ZodNumber;
804
+ }, "strip", z.ZodTypeAny, {
805
+ count: number;
806
+ powertrainType: string;
807
+ }, {
808
+ count: number;
809
+ powertrainType: string;
810
+ }>, "many">;
811
+ byTestCycle: z.ZodArray<z.ZodObject<{
812
+ testCycle: z.ZodString;
813
+ count: z.ZodNumber;
814
+ }, "strip", z.ZodTypeAny, {
815
+ count: number;
816
+ testCycle: string;
817
+ }, {
818
+ count: number;
819
+ testCycle: string;
820
+ }>, "many">;
821
+ yearRange: z.ZodObject<{
822
+ min: z.ZodNumber;
823
+ max: z.ZodNumber;
824
+ }, "strip", z.ZodTypeAny, {
825
+ min: number;
826
+ max: number;
827
+ }, {
828
+ min: number;
829
+ max: number;
830
+ }>;
831
+ topMakes: z.ZodArray<z.ZodObject<{
832
+ make: z.ZodString;
833
+ count: z.ZodNumber;
834
+ }, "strip", z.ZodTypeAny, {
835
+ make: string;
836
+ count: number;
837
+ }, {
838
+ make: string;
839
+ count: number;
840
+ }>, "many">;
841
+ }, "strip", z.ZodTypeAny, {
842
+ totalRecords: number;
843
+ bySource: {
844
+ source: "epa" | "tc" | "uk-vca" | "eu-eea";
845
+ count: number;
846
+ }[];
847
+ byPowertrain: {
848
+ count: number;
849
+ powertrainType: string;
850
+ }[];
851
+ byTestCycle: {
852
+ count: number;
853
+ testCycle: string;
854
+ }[];
855
+ yearRange: {
856
+ min: number;
857
+ max: number;
858
+ };
859
+ topMakes: {
860
+ make: string;
861
+ count: number;
862
+ }[];
863
+ }, {
864
+ totalRecords: number;
865
+ bySource: {
866
+ source: "epa" | "tc" | "uk-vca" | "eu-eea";
867
+ count: number;
868
+ }[];
869
+ byPowertrain: {
870
+ count: number;
871
+ powertrainType: string;
872
+ }[];
873
+ byTestCycle: {
874
+ count: number;
875
+ testCycle: string;
876
+ }[];
877
+ yearRange: {
878
+ min: number;
879
+ max: number;
880
+ };
881
+ topMakes: {
882
+ make: string;
883
+ count: number;
884
+ }[];
885
+ }>;
886
+ }, "strip", z.ZodTypeAny, {
887
+ data: {
888
+ totalRecords: number;
889
+ bySource: {
890
+ source: "epa" | "tc" | "uk-vca" | "eu-eea";
891
+ count: number;
892
+ }[];
893
+ byPowertrain: {
894
+ count: number;
895
+ powertrainType: string;
896
+ }[];
897
+ byTestCycle: {
898
+ count: number;
899
+ testCycle: string;
900
+ }[];
901
+ yearRange: {
902
+ min: number;
903
+ max: number;
904
+ };
905
+ topMakes: {
906
+ make: string;
907
+ count: number;
908
+ }[];
909
+ };
910
+ success: boolean;
911
+ }, {
912
+ data: {
913
+ totalRecords: number;
914
+ bySource: {
915
+ source: "epa" | "tc" | "uk-vca" | "eu-eea";
916
+ count: number;
917
+ }[];
918
+ byPowertrain: {
919
+ count: number;
920
+ powertrainType: string;
921
+ }[];
922
+ byTestCycle: {
923
+ count: number;
924
+ testCycle: string;
925
+ }[];
926
+ yearRange: {
927
+ min: number;
928
+ max: number;
929
+ };
930
+ topMakes: {
931
+ make: string;
932
+ count: number;
933
+ }[];
934
+ };
935
+ success: boolean;
936
+ }>;
937
+ type EfficiencyResponse = z.infer<typeof efficiencyResponseSchema>;
938
+ type EfficiencyStatsResponse = z.infer<typeof efficiencyStatsResponseSchema>;
939
+ declare const efficiencyKeys: {
940
+ readonly all: readonly ["efficiency"];
941
+ readonly search: (params: EfficiencySearchParams) => readonly ["efficiency", "search", {
942
+ sort?: "year" | "make" | "model" | "combined_l_per_100km" | "combined_kwh_per_100km" | "co2_grams_per_km" | "electric_range_km" | undefined;
943
+ makes?: string[] | undefined;
944
+ models?: string[] | undefined;
945
+ year?: {
946
+ min?: number | undefined;
947
+ max?: number | undefined;
948
+ } | undefined;
949
+ fuelTypes?: string[] | undefined;
950
+ limit?: number | undefined;
951
+ offset?: number | undefined;
952
+ order?: "asc" | "desc" | undefined;
953
+ powertrainTypes?: ("ice" | "bev" | "phev" | "hev" | "mhev" | "fcev")[] | undefined;
954
+ sources?: ("epa" | "tc" | "uk-vca" | "eu-eea")[] | undefined;
955
+ testCycles?: ("epa" | "wltp" | "mixed")[] | undefined;
956
+ }];
957
+ readonly byVehicle: (make: string, model: string, year: number) => readonly ["efficiency", "vehicle", string, string, number];
958
+ readonly byVehicleTrim: (make: string, model: string, year: number, trim: string) => readonly ["efficiency", "vehicle", string, string, number, string];
959
+ readonly stats: () => readonly ["efficiency", "stats"];
960
+ };
961
+ declare class EfficiencyAPI extends BaseClient {
962
+ search: (params: EfficiencySearchParams) => Promise<EfficiencyResponse>;
963
+ byVehicle: (make: string, model: string, year: number) => Promise<EfficiencyResponse>;
964
+ byVehicleTrim: (make: string, model: string, year: number, trim: string) => Promise<EfficiencyResponse>;
965
+ stats: () => Promise<EfficiencyStatsResponse>;
966
+ }
967
+
968
+ declare const complaintSchema: z.ZodObject<{
969
+ complaintId: z.ZodNumber;
970
+ odiNumber: z.ZodOptional<z.ZodNullable<z.ZodString>>;
971
+ manufacturerName: z.ZodOptional<z.ZodNullable<z.ZodString>>;
972
+ make: z.ZodString;
973
+ model: z.ZodString;
974
+ year: z.ZodNumber;
975
+ vin: z.ZodOptional<z.ZodNullable<z.ZodString>>;
976
+ crashInvolved: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
977
+ incidentDate: z.ZodOptional<z.ZodNullable<z.ZodString>>;
978
+ fireInvolved: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
979
+ injuredCount: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
980
+ deathsCount: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
981
+ componentDescription: z.ZodOptional<z.ZodNullable<z.ZodString>>;
982
+ consumerCity: z.ZodOptional<z.ZodNullable<z.ZodString>>;
983
+ consumerState: z.ZodOptional<z.ZodNullable<z.ZodString>>;
984
+ dateAdded: z.ZodOptional<z.ZodNullable<z.ZodString>>;
985
+ dateReceived: z.ZodOptional<z.ZodNullable<z.ZodString>>;
986
+ mileage: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
987
+ occurrences: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
988
+ complaintDescription: z.ZodOptional<z.ZodNullable<z.ZodString>>;
989
+ complaintType: z.ZodOptional<z.ZodNullable<z.ZodString>>;
990
+ policeReportFiled: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
991
+ purchaseDate: z.ZodOptional<z.ZodNullable<z.ZodString>>;
992
+ originalOwner: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
993
+ productType: z.ZodOptional<z.ZodNullable<z.ZodString>>;
994
+ repaired: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
995
+ medicalAttention: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
996
+ vehicleTowed: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
997
+ processedAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
998
+ provider: z.ZodOptional<z.ZodNullable<z.ZodString>>;
999
+ }, "strip", z.ZodTypeAny, {
1000
+ year: number;
1001
+ make: string;
1002
+ model: string;
1003
+ complaintId: number;
1004
+ vin?: string | null | undefined;
1005
+ processedAt?: string | null | undefined;
1006
+ provider?: string | null | undefined;
1007
+ odiNumber?: string | null | undefined;
1008
+ manufacturerName?: string | null | undefined;
1009
+ crashInvolved?: boolean | null | undefined;
1010
+ incidentDate?: string | null | undefined;
1011
+ fireInvolved?: boolean | null | undefined;
1012
+ injuredCount?: number | null | undefined;
1013
+ deathsCount?: number | null | undefined;
1014
+ componentDescription?: string | null | undefined;
1015
+ consumerCity?: string | null | undefined;
1016
+ consumerState?: string | null | undefined;
1017
+ dateAdded?: string | null | undefined;
1018
+ dateReceived?: string | null | undefined;
1019
+ mileage?: number | null | undefined;
1020
+ occurrences?: number | null | undefined;
1021
+ complaintDescription?: string | null | undefined;
1022
+ complaintType?: string | null | undefined;
1023
+ policeReportFiled?: boolean | null | undefined;
1024
+ purchaseDate?: string | null | undefined;
1025
+ originalOwner?: boolean | null | undefined;
1026
+ productType?: string | null | undefined;
1027
+ repaired?: boolean | null | undefined;
1028
+ medicalAttention?: boolean | null | undefined;
1029
+ vehicleTowed?: boolean | null | undefined;
1030
+ }, {
1031
+ year: number;
1032
+ make: string;
1033
+ model: string;
1034
+ complaintId: number;
1035
+ vin?: string | null | undefined;
1036
+ processedAt?: string | null | undefined;
1037
+ provider?: string | null | undefined;
1038
+ odiNumber?: string | null | undefined;
1039
+ manufacturerName?: string | null | undefined;
1040
+ crashInvolved?: boolean | null | undefined;
1041
+ incidentDate?: string | null | undefined;
1042
+ fireInvolved?: boolean | null | undefined;
1043
+ injuredCount?: number | null | undefined;
1044
+ deathsCount?: number | null | undefined;
1045
+ componentDescription?: string | null | undefined;
1046
+ consumerCity?: string | null | undefined;
1047
+ consumerState?: string | null | undefined;
1048
+ dateAdded?: string | null | undefined;
1049
+ dateReceived?: string | null | undefined;
1050
+ mileage?: number | null | undefined;
1051
+ occurrences?: number | null | undefined;
1052
+ complaintDescription?: string | null | undefined;
1053
+ complaintType?: string | null | undefined;
1054
+ policeReportFiled?: boolean | null | undefined;
1055
+ purchaseDate?: string | null | undefined;
1056
+ originalOwner?: boolean | null | undefined;
1057
+ productType?: string | null | undefined;
1058
+ repaired?: boolean | null | undefined;
1059
+ medicalAttention?: boolean | null | undefined;
1060
+ vehicleTowed?: boolean | null | undefined;
1061
+ }>;
1062
+ type Complaint = z.infer<typeof complaintSchema>;
1063
+ declare const complaintsResponseSchema: z.ZodObject<{
1064
+ success: z.ZodBoolean;
1065
+ provider: z.ZodString;
1066
+ data: z.ZodArray<z.ZodObject<{
1067
+ complaintId: z.ZodNumber;
1068
+ odiNumber: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1069
+ manufacturerName: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1070
+ make: z.ZodString;
1071
+ model: z.ZodString;
1072
+ year: z.ZodNumber;
1073
+ vin: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1074
+ crashInvolved: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
1075
+ incidentDate: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1076
+ fireInvolved: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
1077
+ injuredCount: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
1078
+ deathsCount: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
1079
+ componentDescription: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1080
+ consumerCity: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1081
+ consumerState: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1082
+ dateAdded: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1083
+ dateReceived: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1084
+ mileage: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
1085
+ occurrences: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
1086
+ complaintDescription: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1087
+ complaintType: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1088
+ policeReportFiled: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
1089
+ purchaseDate: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1090
+ originalOwner: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
1091
+ productType: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1092
+ repaired: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
1093
+ medicalAttention: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
1094
+ vehicleTowed: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
1095
+ processedAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1096
+ provider: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1097
+ }, "strip", z.ZodTypeAny, {
1098
+ year: number;
1099
+ make: string;
1100
+ model: string;
1101
+ complaintId: number;
1102
+ vin?: string | null | undefined;
1103
+ processedAt?: string | null | undefined;
1104
+ provider?: string | null | undefined;
1105
+ odiNumber?: string | null | undefined;
1106
+ manufacturerName?: string | null | undefined;
1107
+ crashInvolved?: boolean | null | undefined;
1108
+ incidentDate?: string | null | undefined;
1109
+ fireInvolved?: boolean | null | undefined;
1110
+ injuredCount?: number | null | undefined;
1111
+ deathsCount?: number | null | undefined;
1112
+ componentDescription?: string | null | undefined;
1113
+ consumerCity?: string | null | undefined;
1114
+ consumerState?: string | null | undefined;
1115
+ dateAdded?: string | null | undefined;
1116
+ dateReceived?: string | null | undefined;
1117
+ mileage?: number | null | undefined;
1118
+ occurrences?: number | null | undefined;
1119
+ complaintDescription?: string | null | undefined;
1120
+ complaintType?: string | null | undefined;
1121
+ policeReportFiled?: boolean | null | undefined;
1122
+ purchaseDate?: string | null | undefined;
1123
+ originalOwner?: boolean | null | undefined;
1124
+ productType?: string | null | undefined;
1125
+ repaired?: boolean | null | undefined;
1126
+ medicalAttention?: boolean | null | undefined;
1127
+ vehicleTowed?: boolean | null | undefined;
1128
+ }, {
1129
+ year: number;
1130
+ make: string;
1131
+ model: string;
1132
+ complaintId: number;
1133
+ vin?: string | null | undefined;
1134
+ processedAt?: string | null | undefined;
1135
+ provider?: string | null | undefined;
1136
+ odiNumber?: string | null | undefined;
1137
+ manufacturerName?: string | null | undefined;
1138
+ crashInvolved?: boolean | null | undefined;
1139
+ incidentDate?: string | null | undefined;
1140
+ fireInvolved?: boolean | null | undefined;
1141
+ injuredCount?: number | null | undefined;
1142
+ deathsCount?: number | null | undefined;
1143
+ componentDescription?: string | null | undefined;
1144
+ consumerCity?: string | null | undefined;
1145
+ consumerState?: string | null | undefined;
1146
+ dateAdded?: string | null | undefined;
1147
+ dateReceived?: string | null | undefined;
1148
+ mileage?: number | null | undefined;
1149
+ occurrences?: number | null | undefined;
1150
+ complaintDescription?: string | null | undefined;
1151
+ complaintType?: string | null | undefined;
1152
+ policeReportFiled?: boolean | null | undefined;
1153
+ purchaseDate?: string | null | undefined;
1154
+ originalOwner?: boolean | null | undefined;
1155
+ productType?: string | null | undefined;
1156
+ repaired?: boolean | null | undefined;
1157
+ medicalAttention?: boolean | null | undefined;
1158
+ vehicleTowed?: boolean | null | undefined;
1159
+ }>, "many">;
1160
+ meta: z.ZodObject<{
1161
+ filter: z.ZodOptional<z.ZodAny>;
1162
+ count: z.ZodNumber;
1163
+ }, "strip", z.ZodTypeAny, {
1164
+ count: number;
1165
+ filter?: any;
1166
+ }, {
1167
+ count: number;
1168
+ filter?: any;
1169
+ }>;
1170
+ }, "strip", z.ZodTypeAny, {
1171
+ data: {
1172
+ year: number;
1173
+ make: string;
1174
+ model: string;
1175
+ complaintId: number;
1176
+ vin?: string | null | undefined;
1177
+ processedAt?: string | null | undefined;
1178
+ provider?: string | null | undefined;
1179
+ odiNumber?: string | null | undefined;
1180
+ manufacturerName?: string | null | undefined;
1181
+ crashInvolved?: boolean | null | undefined;
1182
+ incidentDate?: string | null | undefined;
1183
+ fireInvolved?: boolean | null | undefined;
1184
+ injuredCount?: number | null | undefined;
1185
+ deathsCount?: number | null | undefined;
1186
+ componentDescription?: string | null | undefined;
1187
+ consumerCity?: string | null | undefined;
1188
+ consumerState?: string | null | undefined;
1189
+ dateAdded?: string | null | undefined;
1190
+ dateReceived?: string | null | undefined;
1191
+ mileage?: number | null | undefined;
1192
+ occurrences?: number | null | undefined;
1193
+ complaintDescription?: string | null | undefined;
1194
+ complaintType?: string | null | undefined;
1195
+ policeReportFiled?: boolean | null | undefined;
1196
+ purchaseDate?: string | null | undefined;
1197
+ originalOwner?: boolean | null | undefined;
1198
+ productType?: string | null | undefined;
1199
+ repaired?: boolean | null | undefined;
1200
+ medicalAttention?: boolean | null | undefined;
1201
+ vehicleTowed?: boolean | null | undefined;
1202
+ }[];
1203
+ success: boolean;
1204
+ meta: {
1205
+ count: number;
1206
+ filter?: any;
1207
+ };
1208
+ provider: string;
1209
+ }, {
1210
+ data: {
1211
+ year: number;
1212
+ make: string;
1213
+ model: string;
1214
+ complaintId: number;
1215
+ vin?: string | null | undefined;
1216
+ processedAt?: string | null | undefined;
1217
+ provider?: string | null | undefined;
1218
+ odiNumber?: string | null | undefined;
1219
+ manufacturerName?: string | null | undefined;
1220
+ crashInvolved?: boolean | null | undefined;
1221
+ incidentDate?: string | null | undefined;
1222
+ fireInvolved?: boolean | null | undefined;
1223
+ injuredCount?: number | null | undefined;
1224
+ deathsCount?: number | null | undefined;
1225
+ componentDescription?: string | null | undefined;
1226
+ consumerCity?: string | null | undefined;
1227
+ consumerState?: string | null | undefined;
1228
+ dateAdded?: string | null | undefined;
1229
+ dateReceived?: string | null | undefined;
1230
+ mileage?: number | null | undefined;
1231
+ occurrences?: number | null | undefined;
1232
+ complaintDescription?: string | null | undefined;
1233
+ complaintType?: string | null | undefined;
1234
+ policeReportFiled?: boolean | null | undefined;
1235
+ purchaseDate?: string | null | undefined;
1236
+ originalOwner?: boolean | null | undefined;
1237
+ productType?: string | null | undefined;
1238
+ repaired?: boolean | null | undefined;
1239
+ medicalAttention?: boolean | null | undefined;
1240
+ vehicleTowed?: boolean | null | undefined;
1241
+ }[];
1242
+ success: boolean;
1243
+ meta: {
1244
+ count: number;
1245
+ filter?: any;
1246
+ };
1247
+ provider: string;
1248
+ }>;
1249
+ type ComplaintsResponse = z.infer<typeof complaintsResponseSchema>;
1250
+ interface ComplaintsSearchParams {
1251
+ makes?: string[];
1252
+ models?: string[];
1253
+ year?: {
1254
+ min?: number;
1255
+ max?: number;
1256
+ };
1257
+ components?: string[];
1258
+ limit?: number;
1259
+ offset?: number;
1260
+ sort?: string;
1261
+ order?: "asc" | "desc";
1262
+ }
1263
+ declare const complaintsKeys: {
1264
+ readonly all: readonly ["complaints"];
1265
+ readonly search: (params: ComplaintsSearchParams) => readonly ["complaints", "search", ComplaintsSearchParams];
1266
+ };
1267
+ declare class ComplaintsAPI extends BaseClient {
1268
+ search: (params: ComplaintsSearchParams) => Promise<ComplaintsResponse>;
1269
+ }
1270
+
1271
+ declare const queryKeys: {
1272
+ readonly vin: {
1273
+ readonly all: readonly ["vin"];
1274
+ readonly image: (base64: string) => readonly ["vin", "image", string];
1275
+ readonly decode: (vin: string) => readonly ["vin", "decode", string];
1276
+ };
1277
+ readonly market: {
1278
+ readonly all: readonly ["market"];
1279
+ readonly analysis: (vin: string) => readonly ["market", "analysis", string];
1280
+ readonly overview: (make: string, model: string, year: number) => readonly ["market", "overview", string, string, number];
1281
+ readonly pricing: (make: string, model: string, year: number) => readonly ["market", "pricing", string, string, number];
1282
+ readonly breakdown: (make: string, model: string, year: number) => readonly ["market", "breakdown", string, string, number];
1283
+ readonly odometer: (make: string, model: string, year: number) => readonly ["market", "odometer", string, string, number];
1284
+ readonly geography: (make: string, model: string, year: number) => readonly ["market", "geography", string, string, number];
1285
+ readonly trends: (make: string, model: string, year: number, period: "week" | "month") => readonly ["market", "trends", string, string, number, "week" | "month"];
1286
+ readonly similar: (listingId: string, limit: number) => readonly ["market", "similar", string, number];
1287
+ readonly position: (listingId: string) => readonly ["market", "position", string];
1288
+ readonly pulse: (options: {
1289
+ activeOnly?: boolean;
1290
+ daysCutoff?: number;
1291
+ maxTopMakes?: number;
1292
+ maxTopModels?: number;
1293
+ priceRangeMin?: number;
1294
+ priceRangeMax?: number;
1295
+ priceRangeIncrement?: number;
1296
+ }) => readonly ["market", "pulse", {
1297
+ activeOnly?: boolean;
1298
+ daysCutoff?: number;
1299
+ maxTopMakes?: number;
1300
+ maxTopModels?: number;
1301
+ priceRangeMin?: number;
1302
+ priceRangeMax?: number;
1303
+ priceRangeIncrement?: number;
1304
+ }];
1305
+ readonly byVin: (vin: string) => readonly ["market", "byVin", string];
1306
+ readonly local: (params: {
1307
+ make: string;
1308
+ model: string;
1309
+ year: number;
1310
+ lat: number;
1311
+ lng: number;
1312
+ radius?: number;
1313
+ }) => readonly ["market", "local", {
1314
+ make: string;
1315
+ model: string;
1316
+ year: number;
1317
+ lat: number;
1318
+ lng: number;
1319
+ radius?: number;
1320
+ }];
1321
+ readonly demand: (make: string, model: string, year: number) => readonly ["market", "demand", string, string, number];
1322
+ };
1323
+ readonly listings: {
1324
+ readonly all: readonly ["listings"];
1325
+ readonly search: (params: ListingsSearchParams) => readonly ["listings", "search", {
1326
+ sort?: {
1327
+ field: "year" | "price" | "odometer" | "createdAt" | "random" | "score";
1328
+ direction: "asc" | "desc";
1329
+ } | undefined;
1330
+ filters?: {
1331
+ ids?: string[] | undefined;
1332
+ makes?: string[] | undefined;
1333
+ models?: Record<string, string[]> | undefined;
1334
+ trims?: string[] | undefined;
1335
+ year?: {
1336
+ min?: number | undefined;
1337
+ max?: number | undefined;
1338
+ } | undefined;
1339
+ price?: {
1340
+ min?: number | undefined;
1341
+ max?: number | undefined;
1342
+ } | undefined;
1343
+ odometer?: {
1344
+ min?: number | undefined;
1345
+ max?: number | undefined;
1346
+ } | undefined;
1347
+ saleTypes?: string[] | undefined;
1348
+ bodyStyles?: string[] | undefined;
1349
+ fuelTypes?: string[] | undefined;
1350
+ exteriorColors?: string[] | undefined;
1351
+ interiorColors?: string[] | undefined;
1352
+ location?: {
1353
+ lat: number;
1354
+ lng: number;
1355
+ radius: number;
1356
+ } | undefined;
1357
+ sellers?: string[] | undefined;
1358
+ createdAfter?: string | undefined;
1359
+ createdBefore?: string | undefined;
1360
+ updatedAfter?: string | undefined;
1361
+ updatedBefore?: string | undefined;
1362
+ } | undefined;
1363
+ pagination?: {
1364
+ page: number;
1365
+ limit: number;
1366
+ } | undefined;
1367
+ }];
1368
+ readonly count: (params: ListingsSearchParams) => readonly ["listings", "count", {
1369
+ sort?: {
1370
+ field: "year" | "price" | "odometer" | "createdAt" | "random" | "score";
1371
+ direction: "asc" | "desc";
1372
+ } | undefined;
1373
+ filters?: {
1374
+ ids?: string[] | undefined;
1375
+ makes?: string[] | undefined;
1376
+ models?: Record<string, string[]> | undefined;
1377
+ trims?: string[] | undefined;
1378
+ year?: {
1379
+ min?: number | undefined;
1380
+ max?: number | undefined;
1381
+ } | undefined;
1382
+ price?: {
1383
+ min?: number | undefined;
1384
+ max?: number | undefined;
1385
+ } | undefined;
1386
+ odometer?: {
1387
+ min?: number | undefined;
1388
+ max?: number | undefined;
1389
+ } | undefined;
1390
+ saleTypes?: string[] | undefined;
1391
+ bodyStyles?: string[] | undefined;
1392
+ fuelTypes?: string[] | undefined;
1393
+ exteriorColors?: string[] | undefined;
1394
+ interiorColors?: string[] | undefined;
1395
+ location?: {
1396
+ lat: number;
1397
+ lng: number;
1398
+ radius: number;
1399
+ } | undefined;
1400
+ sellers?: string[] | undefined;
1401
+ createdAfter?: string | undefined;
1402
+ createdBefore?: string | undefined;
1403
+ updatedAfter?: string | undefined;
1404
+ updatedBefore?: string | undefined;
1405
+ } | undefined;
1406
+ pagination?: {
1407
+ page: number;
1408
+ limit: number;
1409
+ } | undefined;
1410
+ }];
1411
+ readonly facets: (params: ListingsSearchParams) => readonly ["listings", "facets", {
1412
+ sort?: {
1413
+ field: "year" | "price" | "odometer" | "createdAt" | "random" | "score";
1414
+ direction: "asc" | "desc";
1415
+ } | undefined;
1416
+ filters?: {
1417
+ ids?: string[] | undefined;
1418
+ makes?: string[] | undefined;
1419
+ models?: Record<string, string[]> | undefined;
1420
+ trims?: string[] | undefined;
1421
+ year?: {
1422
+ min?: number | undefined;
1423
+ max?: number | undefined;
1424
+ } | undefined;
1425
+ price?: {
1426
+ min?: number | undefined;
1427
+ max?: number | undefined;
1428
+ } | undefined;
1429
+ odometer?: {
1430
+ min?: number | undefined;
1431
+ max?: number | undefined;
1432
+ } | undefined;
1433
+ saleTypes?: string[] | undefined;
1434
+ bodyStyles?: string[] | undefined;
1435
+ fuelTypes?: string[] | undefined;
1436
+ exteriorColors?: string[] | undefined;
1437
+ interiorColors?: string[] | undefined;
1438
+ location?: {
1439
+ lat: number;
1440
+ lng: number;
1441
+ radius: number;
1442
+ } | undefined;
1443
+ sellers?: string[] | undefined;
1444
+ createdAfter?: string | undefined;
1445
+ createdBefore?: string | undefined;
1446
+ updatedAfter?: string | undefined;
1447
+ updatedBefore?: string | undefined;
1448
+ } | undefined;
1449
+ pagination?: {
1450
+ page: number;
1451
+ limit: number;
1452
+ } | undefined;
1453
+ }];
1454
+ readonly getById: (id: string) => readonly ["listings", "getById", string];
1455
+ };
1456
+ readonly locations: {
1457
+ readonly all: readonly ["locations"];
1458
+ readonly search: (params: LocationsSearchParams) => readonly ["locations", "search", {
1459
+ lat?: number | undefined;
1460
+ lng?: number | undefined;
1461
+ radius?: number | undefined;
1462
+ limit?: number | undefined;
1463
+ name?: string | undefined;
1464
+ country?: string | undefined;
1465
+ sellerType?: "individual" | "dealership" | "auction" | "aggregator" | undefined;
1466
+ websiteDomain?: string | undefined;
1467
+ hasActiveListings?: unknown;
1468
+ offset?: number | undefined;
1469
+ }];
1470
+ readonly detail: (id: string) => readonly ["locations", "detail", string];
1471
+ readonly bySlug: (slug: string) => readonly ["locations", "slug", string];
1472
+ };
1473
+ readonly charging: {
1474
+ readonly all: readonly ["charging"];
1475
+ readonly stations: (params: _cardog_contracts.ChargingParams) => readonly ["charging", "stations", {
1476
+ country: string;
1477
+ lat?: number | undefined;
1478
+ lng?: number | undefined;
1479
+ radius?: number | undefined;
1480
+ limit?: number | undefined;
1481
+ region?: string | undefined;
1482
+ connector?: _cardog_contracts.ConnectorType[] | undefined;
1483
+ minPower?: number | undefined;
1484
+ includeInactive?: boolean | undefined;
1485
+ includePhotos?: boolean | undefined;
1486
+ }];
1487
+ readonly station: (id: string) => readonly ["charging", "station", string];
1488
+ };
1489
+ readonly fuel: {
1490
+ readonly all: readonly ["fuel"];
1491
+ readonly search: (params: FuelSearchParams) => readonly ["fuel", "search", FuelSearchParams];
1492
+ };
1493
+ readonly research: {
1494
+ readonly all: readonly ["research"];
1495
+ readonly lineup: (make: string, params?: Omit<_cardog_contracts.LineupQuery, "page">) => readonly ["research", "lineup", string, Omit<{
1496
+ page: number;
1497
+ limit: number;
1498
+ region?: "US" | "CA" | "EU" | undefined;
1499
+ bodyStyle?: string | undefined;
1500
+ }, "page"> | undefined];
1501
+ readonly byMake: (make: string) => readonly ["research", "make", string];
1502
+ readonly byId: (id: string) => readonly ["research", "id", string];
1503
+ readonly byListingId: (listingId: string) => readonly ["research", "listing", string];
1504
+ readonly byVin: (vin: string) => readonly ["research", "vin", string];
1505
+ readonly byModel: (make: string, model: string) => readonly ["research", "model", string, string];
1506
+ readonly byYear: (make: string, year: number) => readonly ["research", "year", string, number];
1507
+ readonly byModelYear: (make: string, model: string, year: number) => readonly ["research", "modelYear", string, string, number];
1508
+ readonly images: (params: {
1509
+ make: string;
1510
+ model: string;
1511
+ year: number;
1512
+ limit?: number;
1513
+ }) => readonly ["research", "images", {
1514
+ make: string;
1515
+ model: string;
1516
+ year: number;
1517
+ limit?: number;
1518
+ }];
1519
+ readonly profileImages: (params: {
1520
+ make: string;
1521
+ model: string;
1522
+ year: number;
1523
+ }) => readonly ["research", "profileImages", {
1524
+ make: string;
1525
+ model: string;
1526
+ year: number;
1527
+ }];
1528
+ readonly colors: (params: {
1529
+ make: string;
1530
+ model: string;
1531
+ year: number;
1532
+ }) => readonly ["research", "colors", {
1533
+ make: string;
1534
+ model: string;
1535
+ year: number;
1536
+ }];
1537
+ };
1538
+ readonly recalls: {
1539
+ readonly all: readonly ["recalls"];
1540
+ readonly search: (params: _cardog_contracts.RecallSearchParams) => readonly ["recalls", "search", "ca" | "us", string[] | undefined, string[] | undefined, {
1541
+ min?: number | undefined;
1542
+ max?: number | undefined;
1543
+ } | undefined];
1544
+ };
1545
+ readonly efficiency: {
1546
+ readonly all: readonly ["efficiency"];
1547
+ readonly search: (params: _cardog_contracts.EfficiencySearchParams) => readonly ["efficiency", "search", {
1548
+ sort?: "year" | "make" | "model" | "combined_l_per_100km" | "combined_kwh_per_100km" | "co2_grams_per_km" | "electric_range_km" | undefined;
1549
+ makes?: string[] | undefined;
1550
+ models?: string[] | undefined;
1551
+ year?: {
1552
+ min?: number | undefined;
1553
+ max?: number | undefined;
1554
+ } | undefined;
1555
+ fuelTypes?: string[] | undefined;
1556
+ limit?: number | undefined;
1557
+ offset?: number | undefined;
1558
+ order?: "asc" | "desc" | undefined;
1559
+ powertrainTypes?: ("ice" | "bev" | "phev" | "hev" | "mhev" | "fcev")[] | undefined;
1560
+ sources?: ("epa" | "tc" | "uk-vca" | "eu-eea")[] | undefined;
1561
+ testCycles?: ("epa" | "wltp" | "mixed")[] | undefined;
1562
+ }];
1563
+ readonly byVehicle: (make: string, model: string, year: number) => readonly ["efficiency", "vehicle", string, string, number];
1564
+ readonly byVehicleTrim: (make: string, model: string, year: number, trim: string) => readonly ["efficiency", "vehicle", string, string, number, string];
1565
+ readonly stats: () => readonly ["efficiency", "stats"];
1566
+ };
1567
+ readonly complaints: {
1568
+ readonly all: readonly ["complaints"];
1569
+ readonly search: (params: ComplaintsSearchParams) => readonly ["complaints", "search", ComplaintsSearchParams];
1570
+ };
1571
+ };
1572
+ /**
1573
+ * Cardog API Client
1574
+ * @see https://docs.cardog.app
1575
+ */
1576
+ declare class CardogClient {
1577
+ vin: VinAPI;
1578
+ market: MarketAPI;
1579
+ listings: ListingsAPI;
1580
+ locations: LocationsAPI;
1581
+ fuel: FuelAPI;
1582
+ charging: ChargingAPI;
1583
+ research: ResearchAPI;
1584
+ recalls: RecallsAPI;
1585
+ efficiency: EfficiencyAPI;
1586
+ complaints: ComplaintsAPI;
1587
+ constructor(config?: ClientConfig);
1588
+ setConfig(config: ClientConfig): void;
1589
+ }
1590
+
1591
+ export { APIError, CardogClient, ChargingAPI, type ClientConfig, type Complaint, ComplaintsAPI, type ComplaintsResponse, type ComplaintsSearchParams, EfficiencyAPI, type EfficiencyResponse, type EfficiencyStatsResponse, FuelAPI, type FuelSearchParams, type LineupParams, type Listing, ListingsAPI, type ListingsCountResponse, type ListingsFacetsResponse, type ListingsFilters, type ListingsResponse, type ListingsSearchParams, type LocationDetailResponse, LocationsAPI, type LocationsSearchParams, type LocationsSearchResponse, MarketAPI, RecallsAPI, type RequestOptions, ResearchAPI, type Seller, VinAPI, chargingKeys, complaintSchema, complaintsKeys, complaintsResponseSchema, CardogClient as default, efficiencyKeys, efficiencyResponseSchema, efficiencyStatsResponseSchema, fuelKeys, listingsKeys, locationsKeys, marketKeys, queryKeys, recallKeys, researchKeys, vinKeys };