import { Reflector } from "@nestjs/core";
import { CommandDiscovery } from "../commands/command.discovery";
import { ListenerDiscovery } from "../listeners";
interface DiscoveredItem {
    class: any;
    handler?: (...args: any[]) => any;
}
export declare abstract class NestWhatsBaseDiscovery<T = any> {
    protected readonly meta: T;
    protected readonly reflector: Reflector;
    protected discovery: DiscoveredItem;
    protected contextCallback: Function;
    constructor(meta: T);
    getClass(): any;
    getHandler(): (...args: any[]) => any;
    setDiscoveryMeta(meta: DiscoveredItem): void;
    setContextCallback(fn: Function): void;
    execute(context?: any): any;
    isListener(): this is ListenerDiscovery;
    isCommand(): this is CommandDiscovery;
    abstract toJSON(): Record<string, any>;
}
export {};
