import { AuthHeaderProvider } from '../../auth/AuthHeaderProvider';
import { HttpClient } from '../../http/HttpClient';
import { AccessToken } from '../models/AccessToken';
import { Oauth2AuthHeaderProviderCredentials } from '../models/Oauth2AuthHeaderProviderCredentials';
/**
 * @hidden
 */
export declare class Oauth2AuthHeaderProvider implements AuthHeaderProvider {
    httpClient: HttpClient;
    private readonly safelyExpireOffsetSeconds;
    private clientCredentials;
    private token;
    private tokenExpires;
    private inFlight;
    private authUrl;
    constructor(clientCredentials: Oauth2AuthHeaderProviderCredentials, options: {
        authUrl?: string;
    } & Record<string, unknown>, httpClient: HttpClient);
    /**
     * Requests an authentication token that can be used
     * to make requests to the Dynamic Content api.
     * Tokens are reused until they expire.
     *
     * @returns {Promise<AccessToken>}
     */
    getToken(): Promise<AccessToken>;
    /**
     * Returns an authorization header that can be used to make
     * requests to the Dynamic Content api.
     *
     * @returns {Promise<string>}
     */
    getAuthHeader(): Promise<string>;
}
