import { type TokenCredential } from "@azure/identity";
import { type ClientManagerConfig, type DelegatedAuthConfig, type ApplicationAuthConfig } from "../config/configuration.js";
import { type AuthContext } from "../auth/context.js";
import { CredentialType } from "../types.js";
interface CacheStats {
    applicationCredentials: {
        size: number;
        maxSize: number;
        pendingRequests: number;
    };
}
export declare class CredentialManager {
    private readonly config;
    private readonly applicationCredentialCache;
    private readonly credentialFactory;
    constructor(applicationConfig: ApplicationAuthConfig, delegatedConfig: DelegatedAuthConfig, config: ClientManagerConfig);
    private createCredentialCache;
    getCredential(authContext: AuthContext, authType: CredentialType): Promise<TokenCredential>;
    getApplicationCredential(): Promise<TokenCredential>;
    getDelegatedCredential(authContext: AuthContext): Promise<TokenCredential>;
    private validateAndGetTokenContext;
    private createApplicationRawCacheKey;
    clearCache(): void;
    getCacheStats(): CacheStats;
}
export {};
//# sourceMappingURL=manager.d.ts.map