UNPKG

autotrader-connect-api

Version:

Production-ready TypeScript wrapper for Auto Trader UK Connect APIs

188 lines 5.85 kB
/** * Search module for AutoTrader API * Handles search-related endpoints and operations */ import { SearchResponse, SearchFilters, SavedSearch, QuickSearchParams, SearchComparison, PopularSearch } from '../types/search'; import { VehicleResponse } from '../types/vehicle'; /** * Perform enhanced vehicle search with facets and suggestions * @param filters Search filters and parameters * @returns Promise resolving to enhanced search results */ export declare function searchVehicles(filters?: SearchFilters): Promise<SearchResponse>; /** * Quick search for autocomplete and suggestions * @param params Quick search parameters * @returns Promise resolving to quick search results */ export declare function quickSearch(params: QuickSearchParams): Promise<{ vehicles: VehicleResponse[]; suggestions: { makes: string[]; models: string[]; locations: string[]; }; }>; /** * Get search suggestions based on partial input * @param query Partial search query * @param type Type of suggestions to get * @returns Promise resolving to suggestions */ export declare function getSearchSuggestions(query: string, type?: 'makes' | 'models' | 'locations' | 'all'): Promise<{ makes?: string[]; models?: string[]; locations?: Array<{ name: string; type: string; postcode?: string; }>; }>; /** * Save a search for future alerts * @param searchData Search data to save * @returns Promise resolving to saved search */ export declare function saveSearch(searchData: { name: string; filters: SearchFilters; alertSettings: { enabled: boolean; frequency: 'Immediately' | 'Daily' | 'Weekly'; email?: string; sms?: string; pushNotification?: boolean; }; }): Promise<SavedSearch>; /** * Get user's saved searches * @returns Promise resolving to array of saved searches */ export declare function getSavedSearches(): Promise<SavedSearch[]>; /** * Update a saved search * @param searchId Saved search ID * @param updateData Updated search data * @returns Promise resolving to updated saved search */ export declare function updateSavedSearch(searchId: string, updateData: Partial<{ name: string; filters: SearchFilters; alertSettings: SavedSearch['alertSettings']; active: boolean; }>): Promise<SavedSearch>; /** * Delete a saved search * @param searchId Saved search ID * @returns Promise resolving to deletion confirmation */ export declare function deleteSavedSearch(searchId: string): Promise<{ success: boolean; }>; /** * Execute a saved search * @param searchId Saved search ID * @returns Promise resolving to search results */ export declare function executeSavedSearch(searchId: string): Promise<SearchResponse>; /** * Compare multiple vehicles * @param vehicleIds Array of vehicle IDs to compare * @returns Promise resolving to comparison data */ export declare function compareVehicles(vehicleIds: string[]): Promise<SearchComparison>; /** * Get popular searches * @param category Optional category filter * @returns Promise resolving to popular searches */ export declare function getPopularSearches(category?: 'Make' | 'Model' | 'Location' | 'Price Range' | 'Body Type'): Promise<PopularSearch[]>; /** * Get search analytics and insights * @param timeframe Time period for analytics * @returns Promise resolving to search analytics */ export declare function getSearchAnalytics(timeframe?: 'day' | 'week' | 'month' | 'year'): Promise<{ totalSearches: number; uniqueSearches: number; averageResultsPerSearch: number; topSearchTerms: Array<{ term: string; count: number; trend: 'rising' | 'falling' | 'stable'; }>; conversionRate: number; performanceMetrics: { averageSearchTime: number; bounceRate: number; clickThroughRate: number; }; }>; /** * Track search interaction * @param searchId Search ID * @param interaction Interaction data * @returns Promise resolving to tracking confirmation */ export declare function trackSearchInteraction(searchId: string, interaction: { type: 'click' | 'view' | 'enquiry' | 'save' | 'compare'; vehicleId?: string; timestamp?: string; metadata?: Record<string, unknown>; }): Promise<{ success: boolean; }>; /** * Get related searches based on current search * @param filters Current search filters * @returns Promise resolving to related search suggestions */ export declare function getRelatedSearches(filters: SearchFilters): Promise<Array<{ query: string; filters: Partial<SearchFilters>; resultCount: number; description: string; popularity: number; }>>; /** * Get market insights for search results * @param filters Search filters to analyze * @returns Promise resolving to market insights */ export declare function getMarketInsights(filters: SearchFilters): Promise<{ overview: { totalVehicles: number; averagePrice: number; priceRange: { min: number; max: number; }; averageMileage: number; averageAge: number; }; trends: { priceDirection: 'Rising' | 'Falling' | 'Stable'; demandLevel: 'High' | 'Medium' | 'Low'; inventoryLevel: 'High' | 'Medium' | 'Low'; marketHealth: 'Strong' | 'Moderate' | 'Weak'; }; topPerformers: { makes: Array<{ name: string; count: number; averagePrice: number; }>; models: Array<{ name: string; count: number; averagePrice: number; }>; dealers: Array<{ name: string; count: number; rating: number; }>; }; recommendations: string[]; }>; //# sourceMappingURL=search.d.ts.map