import { CloudEnvironment, Credentials, IToken, TokenCredentials } from '@microsoft/teams.api';
import { ILogger } from '@microsoft/teams.common';
export type TokenManagerOptions = {
    readonly clientId?: string;
    readonly clientSecret?: string;
    readonly tenantId?: string;
    readonly token?: TokenCredentials['token'];
    managedIdentityClientId?: 'system' | (string & {});
    readonly cloud?: CloudEnvironment;
};
export declare class TokenManager {
    readonly credentials?: Credentials;
    private logger;
    private _msalLogger;
    private cloud;
    private confidentialClientsByTenantId;
    private managedIdentityClient;
    constructor(options: TokenManagerOptions, logger: ILogger);
    getBotToken(): Promise<IToken | null>;
    getGraphToken(tenantId?: string): Promise<IToken | null>;
    private initializeCredentials;
    private getToken;
    private getTokenWithClientCredentials;
    private getTokenWithTokenProvider;
    private getTokenWithManagedIdentity;
    private getTokenWithFederatedCredentials;
    private resolveTenantId;
    private getConfidentialClient;
    private getManagedIdentityClient;
    private handleTokenResponse;
    private buildLoggerOptions;
}
