import { OidcProvider } from "./OidcProvider"; import { OidcProviderConfig } from "../OidcProviderConfig"; /** * Provider registry for managing OIDC provider instances * * Handles: * - Static provider configuration * - Dynamic provider loading from database * - Provider instance caching * - Lazy initialization */ export declare class ProviderRegistry { private staticProviders; private providerInstances; private providerLoader?; constructor(staticProviders: Record, providerLoader?: (providerName: string) => Promise); /** * Get provider instance by name * * Looks up provider in the following order: * 1. Cached instance * 2. Static configuration * 3. Dynamic loader (if configured) * * Providers are lazy-initialized on first use and cached. * * @param providerName - Provider identifier * @returns Initialized OIDC provider instance * @throws Error if provider not found or initialization fails */ getProvider(providerName: string): Promise; /** * Check if provider exists in static configuration or can be loaded dynamically * * @param providerName - Provider identifier * @returns true if provider exists, false otherwise */ hasProvider(providerName: string): boolean; /** * Clear provider cache * * Forces re-initialization of providers on next access. * Useful when provider configurations change. * * @param providerName - Optional provider to clear (clears all if not specified) */ clearCache(providerName?: string): void; /** * Get list of configured provider names * * @returns Array of provider names from static configuration */ getProviderNames(): string[]; } //# sourceMappingURL=ProviderRegistry.d.ts.map