import { ApplicationAuthStrategy } from "../types.js";
export interface JwtConfig {
    clientId: string;
    tenantId: string;
    audience?: string;
    issuer?: string;
    clockTolerance: number;
    cacheMaxAge: number;
    jwksRequestsPerMinute: number;
}
export interface ClientCacheConfig {
    slidingTtl: number;
    maxSize: number;
    bufferMs: number;
}
export interface CredentialCacheConfig {
    slidingTtl: number;
    maxSize: number;
    absoluteTtl: number;
}
export interface ClientManagerConfig {
    cacheKeyPrefix: string;
    clientCache: ClientCacheConfig;
    credentialCache: CredentialCacheConfig;
}
export interface ApplicationAuthConfig {
    managedIdentityClientId?: string;
    strategy: ApplicationAuthStrategy;
}
export interface DelegatedAuthConfig {
    clientId: string;
    tenantId: string;
    clientSecret?: string;
    certificatePath?: string;
    certificatePassword?: string;
}
export declare function resetConfigCache(): void;
export declare function getApplicationAuthConfig(): ApplicationAuthConfig;
export declare function getDelegatedAuthConfig(): DelegatedAuthConfig;
export declare function getJwtConfig(): JwtConfig;
export declare function getClientManagerConfig(): ClientManagerConfig;
//# sourceMappingURL=configuration.d.ts.map