UNPKG

autotrader-connect-api

Version:

Production-ready TypeScript wrapper for Auto Trader UK Connect APIs

222 lines 5.67 kB
/** * Vehicle-related types for AutoTrader API */ import { ImageInfo, Location, PriceRange, NumericRange, DateRange, ContactInfo } from './common'; /** * Vehicle fuel types */ export type FuelType = 'Petrol' | 'Diesel' | 'Electric' | 'Hybrid' | 'Plug-in Hybrid' | 'LPG' | 'CNG' | 'Hydrogen' | 'Other'; /** * Vehicle transmission types */ export type TransmissionType = 'Manual' | 'Automatic' | 'Semi-Automatic' | 'CVT' | 'Other'; /** * Vehicle body types */ export type BodyType = 'Hatchback' | 'Saloon' | 'Estate' | 'SUV' | 'Coupe' | 'Convertible' | 'MPV' | 'Pickup' | 'Van' | 'Minibus' | 'Other'; /** * Vehicle condition */ export type VehicleCondition = 'New' | 'Used' | 'Nearly New'; /** * Vehicle service history */ export type ServiceHistory = 'Full' | 'Partial' | 'None' | 'Unknown'; /** * Vehicle specifications */ export interface VehicleSpecs { engineSize?: number; power?: number; torque?: number; topSpeed?: number; acceleration?: number; fuelConsumption?: { urban?: number; extraUrban?: number; combined?: number; unit: 'mpg' | 'l/100km'; }; emissions?: { co2?: number; euroStandard?: string; }; dimensions?: { length?: number; width?: number; height?: number; wheelbase?: number; bootCapacity?: number; }; weight?: { kerb?: number; gross?: number; towingCapacity?: number; }; } /** * Vehicle features */ export interface VehicleFeatures { safety?: string[]; comfort?: string[]; technology?: string[]; performance?: string[]; exterior?: string[]; interior?: string[]; } /** * Vehicle history information */ export interface VehicleHistory { previousOwners?: number; serviceHistory?: ServiceHistory; motHistory?: MOTRecord[]; accidents?: AccidentRecord[]; recalls?: RecallRecord[]; } /** * MOT record */ export interface MOTRecord { testDate: string; expiryDate: string; result: 'Pass' | 'Fail' | 'Advisory'; mileage: number; advisories?: string[]; failures?: string[]; } /** * Accident record */ export interface AccidentRecord { date: string; severity: 'Minor' | 'Moderate' | 'Severe'; description?: string; repaired: boolean; } /** * Recall record */ export interface RecallRecord { recallNumber: string; date: string; description: string; status: 'Outstanding' | 'Completed' | 'Not Applicable'; } /** * Main vehicle interface */ export interface Vehicle { id: string; make: string; model: string; variant?: string; year: number; registration?: string; vin?: string; condition: VehicleCondition; mileage?: number; fuelType?: FuelType; transmission?: TransmissionType; bodyType?: BodyType; doors?: number; seats?: number; colour?: string; price: number; priceType: 'Fixed' | 'Negotiable' | 'POA'; vatStatus?: 'Inc' | 'Ex' | 'Qualifying'; specs?: VehicleSpecs; features?: VehicleFeatures; history?: VehicleHistory; images?: ImageInfo[]; videoUrl?: string; brochureUrl?: string; location?: Location; advertiser: AdvertiserInfo; advertiserId?: number; advertiserName?: string; dealerId?: string; dealerName?: string; createdAt: string; updatedAt: string; availableFrom?: string; description?: string; keyFeatures?: string[]; warrantyMonths?: number; financingAvailable?: boolean; partExchangeAccepted?: boolean; homeDeliveryAvailable?: boolean; autotraderUrl?: string; manufacturerUrl?: string; } /** * Advertiser/dealer information */ export interface AdvertiserInfo { id: number; name: string; type: 'Franchise' | 'Independent' | 'Private'; location?: Location; contact?: ContactInfo; logoUrl?: string; website?: string; established?: number; specializations?: string[]; rating?: { average: number; reviewCount: number; }; } /** * Vehicle search parameters */ export interface VehicleSearchParams { make?: string | string[]; model?: string | string[]; variant?: string | string[]; yearRange?: NumericRange; priceRange?: PriceRange; mileageRange?: NumericRange; condition?: VehicleCondition | VehicleCondition[]; fuelType?: FuelType | FuelType[]; transmission?: TransmissionType | TransmissionType[]; bodyType?: BodyType | BodyType[]; doors?: number | number[]; seats?: number | number[]; engineSizeRange?: NumericRange; powerRange?: NumericRange; postcode?: string; radius?: number; advertiserId?: number | number[]; advertiserName?: string | string[]; dealerId?: string | string[]; dealerType?: 'Franchise' | 'Independent' | 'Private'; features?: string | string[]; keyFeatures?: string | string[]; availableDateRange?: DateRange; financingAvailable?: boolean; partExchangeAccepted?: boolean; homeDeliveryAvailable?: boolean; warrantyIncluded?: boolean; sortBy?: 'price' | 'mileage' | 'year' | 'distance' | 'relevance' | 'newest'; sortOrder?: 'asc' | 'desc'; page?: number; pageSize?: number; excludeWriteOffs?: boolean; includeImports?: boolean; photosOnly?: boolean; } /** * Vehicle response from API */ export interface VehicleResponse extends Vehicle { score?: number; distance?: number; priceAnalysis?: { marketAverage?: number; percentageAboveBelow?: number; priceRating?: 'Excellent' | 'Good' | 'Fair' | 'High'; }; } //# sourceMappingURL=vehicle.d.ts.map