import { ApiEndpoint } from './endpoints/ApiEndpoint';
import { HttpClientFetch } from './HttpClientFetch';
import { RateLimit } from '../HueApiRateLimits';
import { HueRateLimiter } from '../HueRateLimiter';
export declare class Transport {
    private _username?;
    private _client;
    private readonly _limiter;
    constructor(client: HttpClientFetch, rateLimiterConfig: RateLimit, username?: string);
    get limiter(): HueRateLimiter;
    /**
     * Executes an API Endpoint Request.
     * @param api The Api endpoint to perform a request against.
     * @param parameters Any parameters specific to the request.
     * @returns {Promise<any>} The promise for making the specified API request.
     */
    execute(api: ApiEndpoint, parameters: object | undefined): Promise<any>;
    refreshAuthorizationHeader(token: string): void;
}
