import { MultiUserConfig } from '../config/multi-user-config.js';
/**
 * HTTP client for communicating with the Trackex API in multi-user mode
 * Each request requires an API key to be provided
 */
export declare class MultiUserApiClient {
    private axiosInstance;
    private config;
    constructor(config: MultiUserConfig);
    /**
     * Sets up request/response logging for debugging
     */
    private setupRequestLogging;
    /**
     * Validates the provided API key
     */
    private validateApiKey;
    /**
     * Creates headers with API key authentication
     */
    private createAuthHeaders;
    /**
     * Makes a GET request with user's API key
     */
    get<T>(endpoint: string, apiKey: string): Promise<T>;
    /**
     * Makes a POST request with user's API key
     */
    post<T>(endpoint: string, data: any, apiKey: string): Promise<T>;
    /**
     * Makes a PUT request with user's API key
     */
    put<T>(endpoint: string, data: any, apiKey: string): Promise<T>;
    /**
     * Makes a DELETE request with user's API key
     */
    delete<T>(endpoint: string, apiKey: string): Promise<T>;
    /**
     * Tests API connectivity with provided API key
     */
    testConnection(apiKey: string): Promise<boolean>;
    /**
     * Handles API errors and provides meaningful error messages
     */
    private handleApiError;
}
//# sourceMappingURL=multi-user-api-client.d.ts.map