import { _AbstractOAuthClient as AbstractOAuthClient, _AbstractBearerTokenProviderBuilder as AbstractBearerTokenProviderBuilder } from './abstract-oauth-client';
import { BearerAuthCredentials } from '../rest-service';
import { _BearerTokenProvider as BearerTokenProvider } from './bearer-token-provider';
declare class AzureIMDSBearerToken {
    access_token?: string;
    expires_in?: string;
    expires_on?: string;
}
declare class AzureIMDSOAuthClientBuilder extends AbstractBearerTokenProviderBuilder {
    constructor(bearerAuthCredentials: BearerAuthCredentials);
    protected validate(): void;
    build(maxRetries: number, retriesWaitMs: number, retriesMaxWaitMs: number): BearerTokenProvider;
}
declare class AzureIMDSOAuthClient extends AbstractOAuthClient {
    private tokenEndpoint;
    private tokenObject?;
    private static readonly DEFAULT_AZURE_IMDS_TOKEN_ENDPOINT;
    constructor(bearerAuthCredentials: BearerAuthCredentials, maxRetries: number, retriesWaitMs: number, retriesMaxWaitMs: number);
    fetchToken(): Promise<string>;
    tokenExpired(): boolean;
    private getAccessTokenString;
}
export { AzureIMDSOAuthClientBuilder as _AzureIMDSOAuthClientBuilder, AzureIMDSOAuthClient as _AzureIMDSOAuthClient, AzureIMDSBearerToken as _AzureIMDSBearerToken };
