import { DynamicModule } from '@nestjs/common'; import type { TKeycloakModuleOptions } from './keycloak.types.js'; import type { IKeycloakModuleAsyncOptions } from './keycloak.interfaces.js'; /** * Keycloak Token Validation Module * * Provides Keycloak token validation for NestJS resource servers. Supports two validation modes: * - **Online mode (default)**: Uses Keycloak's token introspection endpoint for real-time token validation * - **Offline mode (opt-in)**: Validates JWTs using cached JWKS (JSON Web Key Set) for stateless validation * * Export the `JwtAuthGuard` and decorate controllers/routes with `@UseGuards(JwtAuthGuard)` to enable * token validation. The guard respects `@Public()` to bypass authentication on specific endpoints. * * @example * ```typescript * // Online mode (default) * KeycloakModule.forRoot({ * authServerUrl: 'https://keycloak.example.com', * clientId: 'my-client', * clientSecret: 'secret', * validationMode: 'online' * }) * * // Offline mode (JWKS-based) * KeycloakModule.forRoot({ * authServerUrl: 'https://keycloak.example.com', * clientId: 'my-client', * validationMode: 'offline' * }) * ``` */ export declare class KeycloakModule { /** * Register Keycloak module with static configuration * * Validates options against KEYCLOAK_CONFIG_SCHEMA at module initialization. * Throws KeycloakAuthError with code KEYCLOAK_CONFIG_INVALID if validation fails. * * @param options - Configuration options for the Keycloak module * @returns Dynamic module configuration with KeycloakTokenValidationService * @throws KeycloakAuthError if options fail schema validation */ static forRoot(options: TKeycloakModuleOptions): DynamicModule; /** * Register Keycloak module with asynchronous configuration * * Defers module configuration until runtime using a factory function. * Useful for reading configuration from environment variables or other async sources. * * Configuration is validated against KEYCLOAK_CONFIG_SCHEMA when the factory resolves. * Throws KeycloakAuthError with code KEYCLOAK_CONFIG_INVALID if validation fails. * * @param options - Async factory configuration * @param options.useFactory - Function that returns TKeycloakModuleOptions or a promise that resolves to it * @param options.inject - Optional array of providers to inject into the factory function * @param options.imports - Optional array of modules to import for dependency injection * @returns Dynamic module configuration with KeycloakTokenValidationService * @throws KeycloakAuthError if resolved options fail schema validation */ static forRootAsync(options: IKeycloakModuleAsyncOptions): DynamicModule; } //# sourceMappingURL=keycloak.module.d.ts.map