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 { IDataSyncHandler, IEventFactory, IEventHandler } from '../interfaces';
export declare class ExplorerService {
    private readonly modulesContainer;
    private readonly logger;
    constructor(modulesContainer: ModulesContainer);
    explore(): {
        events: Type<IEventHandler<any, any>>[];
        eventFactorys: Type<IEventFactory<any>>[];
    };
    exploreDataSyncHandlers(commandTableName: string): {
        dataSyncHandlers: Type<IDataSyncHandler<any, any>>[];
    };
    exploreNotificationTransports(): {
        notificationTransports: Type<any>[];
    };
    flatMap<T>(modules: Module[], callback: (instance: InstanceWrapper) => Type<any> | undefined): Type<T>[];
    filterProvider(wrapper: InstanceWrapper, metadataKey: string, metadataValue?: string): Type<any> | undefined;
    extractMetadata(instance: Record<string, any>, metadataKey: string, metadataValue?: string): Type<any>;
}
