import { IConfigOptions, ICrudConfigAsyncModuleProperties } from '../../shared/interface/config'; import { DynamicModule } from '@nestjs/common'; export declare class CrudConfigModule { static register(options: IConfigOptions): DynamicModule; /** * Registers the module asynchronously. This implementation defers all dynamic provider * creation into factories to ensure correct instantiation order. * * Controllers and entities must be configured via the `staticOptions` property, * as NestJS does not support async controller registration. Options provided in * `staticOptions.entityOptions` will be used for both controllers and service providers. * @see {@link https://elsikora.com/docs/nestjs-crud-config/core-concepts/module-registration | Core Concepts - Module Registration} * @see {@link https://elsikora.com/docs/nestjs-crud-config/api-reference/classes/crud-config-module | API Reference - CrudConfigModule} * @param {ICrudConfigAsyncModuleProperties} properties Async configuration options * @returns {DynamicModule} Dynamic module configuration * @example * ```typescript * CrudConfigModule.registerAsync({ * imports: [ConfigModule], * inject: [ConfigService], * useFactory: (config: ConfigService) => ({ * encryptionOptions: { isEnabled: true, encryptionKey: config.get('KEY') }, * }), * staticOptions: { * controllersOptions: { section: { isEnabled: true } }, * entityOptions: { tablePrefix: 'app_' }, * }, * }); * ``` */ static registerAsync(properties: ICrudConfigAsyncModuleProperties): DynamicModule; private static createAsyncOptionsProvider; }