import type { ModulesContainer } from './container';
import type { Constructor, Logger } from '@medishn/toolkit';
export interface RouteMetadata<T = any> {
    method: string;
    route: string;
    controller: {
        path: string;
        instance: T;
        methodName: string;
        target: Function;
    };
}
export interface ChannelMetadata<T = any> {
    instance: T;
    token: Constructor<T>;
    event: string;
    namespace: string;
    target: Function;
}
export declare class Explorer {
    private readonly metadataScanner;
    private readonly discoveryService;
    private readonly logger?;
    constructor(modulesContainer: ModulesContainer, logger?: Logger);
    exploreControllers<T extends object>(): RouteMetadata<T>[];
    exploreChannels<T extends object>(): ChannelMetadata<T>[];
}
