import { type DynamicModule } from '@nestjs/common'; import type { MatadorModuleAsyncOptions, MatadorModuleOptions } from '../types.js'; /** * NestJS module for integrating Matador event processing. * * Use `MatadorModule.forRoot()` for synchronous configuration or * `MatadorModule.forRootAsync()` for async configuration with dependency injection. * * @example Synchronous configuration * ```typescript * @Module({ * imports: [ * MatadorModule.forRoot({ * transport: new RabbitMQTransport({ * url: 'amqp://localhost', * connectionName: 'myapp', * }), * topology: TopologyBuilder.create() * .withNamespace('myapp') * .addQueue('events', { concurrency: 10 }) * .build(), * consumeFrom: ['events'], * }), * ], * }) * export class AppModule {} * ``` * * @example Async configuration with ConfigService * ```typescript * @Module({ * imports: [ * ConfigModule.forRoot(), * MatadorModule.forRootAsync({ * imports: [ConfigModule], * inject: [ConfigService], * useFactory: (config: ConfigService) => ({ * transport: new RabbitMQTransport({ * url: config.get('RABBITMQ_URL'), * connectionName: config.get('APP_NAME'), * }), * topology: TopologyBuilder.create() * .withNamespace(config.get('APP_NAME')) * .addQueue('events') * .build(), * consumeFrom: ['events'], * }), * }), * ], * }) * export class AppModule {} * ``` */ export declare class MatadorModule { /** * Configures the MatadorModule with static options. * * @param options - Module configuration options * @returns Dynamic module configuration */ static forRoot(options: MatadorModuleOptions): DynamicModule; /** * Configures the MatadorModule with async options. * Use this when you need to inject dependencies like ConfigService. * * @param options - Async module configuration options * @returns Dynamic module configuration */ static forRootAsync(options: MatadorModuleAsyncOptions): DynamicModule; /** * Creates async providers for the module options. */ private static createAsyncProviders; } //# sourceMappingURL=matador.module.d.ts.map