import { ApiSdkConfig, SearchResponse, QueryOptions, Filters, Item } from "../types";
export declare class ApiClient {
    config: ApiSdkConfig;
    private baseUrl;
    constructor(config: ApiSdkConfig);
    /**
     * Get current configuration
     */
    getConfig(): ApiSdkConfig;
    /**
     * Validate SDK configuration
     */
    private validateConfig;
    /**
     * Perform search query
     * @param query Search query string
     * @param filters Optional filters
     * @param options Optional query options
     * @returns Promise with search response
     */
    query<T = Item>(query?: string, filters?: Filters, options?: QueryOptions): Promise<SearchResponse<T>>;
    /**
     * Perform search query
     * @param query Search query string
     * @param filters Optional filters
     * @param options Optional query options
     * @returns Promise with search response
     */
    autocomplete<T = Item>(query?: string, filters?: Filters, options?: QueryOptions): Promise<SearchResponse<T>>;
    /**
     * Build query parameters for API request
     */
    private buildQueryParams;
    /**
     * Make HTTP request to API
     */
    private makeRequest;
    /**
     * Process API response and transform items
     */
    private processResponse;
    /**
     * Handle and convert errors to appropriate types
     */
    private handleError;
    /**
     * Get filterable fields from configuration
     */
    getFilterableFields(): string[];
    /**
     * Update configuration (useful for token refresh)
     */
    updateConfig(updates: Partial<ApiSdkConfig>): void;
}
//# sourceMappingURL=ApiClient.d.ts.map