export interface OAuthProviderConfig {
    /** OAuth Endpoint URL */
    url: string;
    /** OAuth Audience */
    audience: string;
    clientId: string;
    clientSecret: string;
    /** Cache token in memory and on filesystem? */
    cacheOnDisk?: boolean;
    /** Override default token cache directory */
    cacheDir?: string;
}
export declare class OAuthProvider {
    private static readonly defaultTokenCache;
    private static readonly getTokenCacheDirFromEnv;
    cacheDir: string;
    audience: string;
    url: string;
    clientId: string;
    clientSecret: string;
    useFileCache: boolean;
    tokenCache: {};
    private failed;
    constructor({ 
    /** OAuth Endpoint URL */
    url, 
    /** OAuth Audience */
    audience, cacheDir, clientId, clientSecret, 
    /** Cache token in memory and on filesystem? */
    cacheOnDisk, }: {
        url: string;
        audience: string;
        cacheDir?: string;
        clientId: string;
        clientSecret: string;
        cacheOnDisk: boolean;
    });
    getToken(): Promise<string>;
    private debouncedTokenRequest;
    private safeJSONParse;
    private fromFileCache;
    private toFileCache;
    private isExpired;
    private startExpiryTimer;
    private cachedTokenFile;
}
