import type { Logger } from '#services/logger/logger.types';
import type { RequestHandler } from '#services/request-handler/request-handler.types';
import type { DatabaseManager } from '#services/database-manager/database-manager.types';
import type { Platform } from '#services/platform-manager/platform-manager.types';
import type { AccessToken } from '#services/access-token-manager/access-token-manager.types';
export declare class AccessTokenManager {
    private readonly LOG_COMPONENT;
    private readonly CLIENT_ASSERTION_TYPE;
    private readonly GRANT_TYPE;
    private readonly ACCEPT;
    private readonly EXPIRY_SAFETY_MARGIN_SECONDS;
    private readonly databaseManager;
    private readonly requestHandler;
    private readonly logger;
    constructor(databaseManager: DatabaseManager, requestHandler: RequestHandler, logger: Logger);
    getAccessToken(platform: Platform, scopes: string): Promise<AccessToken>;
    private getCachedToken;
    private requestAndCacheNewToken;
    private requestNewToken;
    private signClientAssertion;
    private cacheToken;
    private normalizeTokenType;
}
export default AccessTokenManager;
