import { Type } from '@nestjs/common'; import { InstanceWrapper } from '@nestjs/core/injector/instance-wrapper'; import { Module } from '@nestjs/core/injector/module'; import { ModulesContainer } from '@nestjs/core/injector/modules-container'; import { IGroupRoleResolver } from '../auth/group-role-resolver.interface'; import { IDataSyncHandler, IEventFactory, IEventHandler } from '../interfaces'; export declare class ExplorerService { private readonly modulesContainer; private readonly logger; constructor(modulesContainer: ModulesContainer); explore(): { events: Type>[]; eventFactorys: Type>[]; }; exploreDataSyncHandlers(commandTableName: string): { dataSyncHandlers: Type>[]; }; exploreNotificationTransports(): { notificationTransports: Type[]; }; exploreGroupRoleResolvers(): Type[]; /** * Count how many modules register the `_CommandEventHandler` alias * provider. More than one indicates two CommandModule instances competing for * the same physical table's data-sync pipeline (the alias is resolved * non-strictly, so only one — import-order dependent — would win). */ countCommandEventHandlerAliases(tableName: string): number; flatMap(modules: Module[], callback: (instance: InstanceWrapper) => Type | undefined): Type[]; filterProvider(wrapper: InstanceWrapper, metadataKey: string, metadataValue?: string): Type | undefined; extractMetadata(instance: Record, metadataKey: string, metadataValue?: string): Type; }