autotrader-connect-api
Version:
Production-ready TypeScript wrapper for Auto Trader UK Connect APIs
143 lines • 6.39 kB
TypeScript
/**
* AutoTrader Connect API - Main Entry Point
* Production-ready TypeScript wrapper for Auto Trader UK Connect APIs
*
* @author Your Organization
* @version 1.0.0
* @license MIT
*/
export { ApiClient, getClient } from './client';
export { AuthManager, getAuthManager, getToken } from './auth';
export * from './modules/vehicles';
export { searchVehicles as searchVehiclesAdvanced, quickSearch, getSearchSuggestions, saveSearch, getSavedSearches, updateSavedSearch, deleteSavedSearch, executeSavedSearch, compareVehicles, getPopularSearches, getSearchAnalytics, trackSearchInteraction, getRelatedSearches, getMarketInsights } from './modules/search';
export * from './modules/stock';
export * from './modules/images';
export * from './modules/valuations';
export * from './modules/taxonomy';
export * from './modules/vehicleMetrics';
export * from './modules/futureValuations';
export * from './modules/historicValuations';
export { getResource as getDeals, listResources as listDeals } from './modules/deals';
export { getResource as getMessages, listResources as listMessages } from './modules/messages';
export { getResource as getPartExchange, listResources as listPartExchange } from './modules/partExchange';
export { getResource as getDelivery, listResources as listDelivery } from './modules/delivery';
export { getResource as getCalls, listResources as listCalls } from './modules/calls';
export { getResource as getCoDriver, listResources as listCoDriver } from './modules/coDriver';
export { getResource as getFinance, listResources as listFinance } from './modules/finance';
export { getCurrentAdvertiser, getAdvertiser, searchAdvertisers, getAllAdvertisers, updateAdvertiser, getAdvertiserStats, getAdvertiserVehicleCount, getNearbyAdvertisers, getTopRatedAdvertisers, getResource as getAdvertisers, listResources as listAdvertisers } from './modules/advertisers';
export * from './types/common';
export * from './types/auth';
export * from './types/vehicle';
export * from './types/stock';
export * from './types/search';
export type { ApiClientConfig, RequestOptions, ApiResponse, PaginatedResponse, ApiError, Pagination, SortOptions, DateRange, PriceRange, NumericRange, Location, ContactInfo, ImageInfo, HttpMethod, RateLimitConfig } from './types/common';
export type { AuthCredentials, AuthTokenResponse, StoredToken, AuthState, AuthConfig, AuthErrorType, AuthError, TokenValidation } from './types/auth';
export type { Vehicle, VehicleResponse, VehicleSearchParams, FuelType, TransmissionType, BodyType, VehicleCondition, ServiceHistory, VehicleSpecs, VehicleFeatures, VehicleHistory } from './types/vehicle';
export type { StockItem, StockResponse, StockSearchParams, StockListResponse, CreateStockRequest, UpdateStockRequest, StockStatistics, StockStatus, StockVisibility, BulkStockOperation, BulkOperationResponse } from './types/stock';
export type { SearchResponse, SearchFilters, SavedSearch, QuickSearchParams, SearchComparison, PopularSearch, SearchAnalytics, SearchFacets, SearchSuggestions, MarketInsights } from './types/search';
import client from './client';
export default client;
/**
* Package version
*/
export declare const VERSION = "1.0.0";
/**
* Package name
*/
export declare const PACKAGE_NAME = "autotrader-connect-api";
/**
* Initialize the AutoTrader Connect API client with configuration
* @param config API client configuration
* @returns Configured API client instance
*/
export declare function initializeClient(config: {
apiKey: string;
apiSecret: string;
baseURL?: string;
timeout?: number;
maxRetries?: number;
rateLimitRequests?: number;
rateLimitWindow?: number;
debug?: boolean;
}): import("./client").ApiClient;
/**
* Quick setup with environment variables for rapid development
* Automatically detects sandbox vs production based on NODE_ENV
* @param options Optional configuration overrides
* @returns Configured API client instance
*/
export declare function quickSetup(options?: {
debug?: boolean;
timeout?: number;
forceSandbox?: boolean;
forceProduction?: boolean;
}): import("./client").ApiClient;
/**
* Setup client specifically for sandbox/testing environment
* @param credentials Sandbox API credentials
* @param options Optional configuration overrides
* @returns Configured API client for sandbox
*/
export declare function setupSandbox(credentials?: {
apiKey: string;
apiSecret: string;
baseURL?: string;
}, options?: {
debug?: boolean;
timeout?: number;
}): import("./client").ApiClient;
/**
* Setup client specifically for production environment
* @param credentials Production API credentials
* @param options Optional configuration overrides
* @returns Configured API client for production
*/
export declare function setupProduction(credentials?: {
apiKey: string;
apiSecret: string;
baseURL?: string;
}, options?: {
debug?: boolean;
timeout?: number;
}): import("./client").ApiClient;
/**
* Create a client scoped to a specific advertiser
* @param advertiserId Advertiser ID to scope all operations to
* @param options Optional configuration overrides
* @returns Configured API client with advertiser context
*/
export declare function createAdvertiserClient(advertiserId: number, options?: {
debug?: boolean;
timeout?: number;
useSandbox?: boolean;
}): {
get: <T>(url: string, requestOptions?: any) => Promise<T>;
post: <T_1>(url: string, data?: any, requestOptions?: any) => Promise<T_1>;
put: <T_2>(url: string, data?: any, requestOptions?: any) => Promise<T_2>;
patch: <T_3>(url: string, data?: any, requestOptions?: any) => Promise<T_3>;
delete: <T_4>(url: string, requestOptions?: any) => Promise<T_4>;
advertiserId: number;
};
/**
* Validate advertiser ID format and existence
* @param advertiserId Advertiser ID to validate
* @returns Promise resolving to validation result
*/
export declare function validateAdvertiserId(advertiserId: number): Promise<{
valid: boolean;
exists?: boolean;
advertiserName?: string;
error?: string;
}>;
/**
* Health check function to verify API connectivity
*/
export declare function healthCheck(): Promise<{
status: 'healthy' | 'unhealthy';
timestamp: string;
version: string;
auth: boolean;
latency?: number;
error?: string;
}>;
//# sourceMappingURL=index.d.ts.map