import { _BearerTokenProvider as BearerTokenProvider, _BearerTokenProviderBuilder as BearerTokenProviderBuilder } from './bearer-token-provider';
import { BearerAuthCredentials } from '../rest-service';
declare abstract class AbstractBearerTokenProviderBuilder implements BearerTokenProviderBuilder {
    protected bearerAuthCredentials: BearerAuthCredentials;
    constructor(bearerAuthCredentials: BearerAuthCredentials);
    protected validate(): void;
    abstract build(maxRetries: number, retriesWaitMs: number, retriesMaxWaitMs: number): BearerTokenProvider;
}
declare abstract class AbstractOauthTokenProvider implements BearerTokenProvider {
    private additionalHeaders;
    constructor(bearerAuthCredentials: BearerAuthCredentials);
    abstract getAccessToken(): Promise<string>;
    abstract tokenExpired(): boolean;
    getAdditionalHeaders(): Record<string, string>;
}
declare abstract class AbstractOAuthClient extends AbstractOauthTokenProvider {
    private token;
    private maxRetries;
    private retriesWaitMs;
    private retriesMaxWaitMs;
    constructor(bearerAuthCredentials: BearerAuthCredentials, maxRetries: number, retriesWaitMs: number, retriesMaxWaitMs: number);
    abstract fetchToken(): Promise<string>;
    getAccessToken(): Promise<string>;
    generateAccessToken(): Promise<void>;
}
export { AbstractBearerTokenProviderBuilder as _AbstractBearerTokenProviderBuilder, AbstractOauthTokenProvider as _AbstractOauthTokenProvider, AbstractOAuthClient as _AbstractOAuthClient, };
