import { DynamicModule } from '@nestjs/common'; import { ModelDefinition } from '@nestjs/mongoose'; import { DatabaseModuleAsyncOptions, DatabaseModuleOptions } from './database-module-options.interface'; /** * DatabaseModule centralizes all database-related configuration and services. * It wraps Mongoose integration, model registration, liveness health checks, * populate strategies, locking utilities, and dynamic configuration support. */ export declare class DatabaseModule { /** * Registers one or more Mongoose models for dependency injection in feature modules. * * @param {...ModelDefinition[]} modelDefinitions - Array of Mongoose model definitions * @returns {DynamicModule} A dynamic Mongoose module with registered models */ static forFeature(...modelDefinitions: ModelDefinition[]): DynamicModule; /** * Registers and initializes the database module using static configuration options. * Enables global access to all database services and model providers. * * @param {DatabaseModuleOptions} options - Static configuration for MongoDB connection * @returns {DynamicModule} Configured dynamic module for database initialization */ static forRoot(options: DatabaseModuleOptions): DynamicModule; /** * Registers and initializes the database module using async configuration. * Supports dynamic environment-based options and dependency-injected factories. * * @param {DatabaseModuleAsyncOptions} asyncOptions - Async factory-based config * @returns {DynamicModule} Configured dynamic module with async initialization */ static forRootAsync(asyncOptions: DatabaseModuleAsyncOptions): DynamicModule; /** * Generates standard Mongoose module options with enhanced defaults. * This enforces strict query mode and sets retry logic to handle connection hiccups. * * @param {DatabaseModuleOptions} options - Base database config options * @returns {MongooseModuleOptions} Final Mongoose module config with enhancements */ private static buildMongooseOptions; }