import { DynamicModule } from '@nestjs/common';

/**
 * AnalyticsModule — DynamicModule factory for the analytics query subsystem.
 *
 * Register once in AppModule:
 * ```typescript
 * @Module({
 *   imports: [
 *     AnalyticsModule.forRoot({ backend: 'cube' }),
 *   ],
 * })
 * export class AppModule {}
 * ```
 *
 * Tests swap to the noop backend without touching application code:
 * ```typescript
 * Test.createTestingModule({
 *   imports: [AnalyticsModule.forRoot({ backend: 'noop' })],
 * });
 * ```
 *
 * `global: true` means entity modules do not need to import AnalyticsModule
 * individually — the ANALYTICS_QUERY token is available project-wide.
 */

interface AnalyticsModuleOptions {
    backend: 'cube' | 'noop';
}
declare class AnalyticsModule {
    static forRoot(options?: AnalyticsModuleOptions): DynamicModule;
}

export { AnalyticsModule, type AnalyticsModuleOptions };
