import { FunctionKeys, ParamResolver, ReturnTypeResolver } from "../utils/types";
export declare class Dispatcher<T, K extends FunctionKeys<T>, P extends ParamResolver<T, K> = ParamResolver<T, K>, R extends ReturnTypeResolver<T, K> = ReturnTypeResolver<T, K>> {
    static modulesResolver: () => any[];
    protected readonly method: K;
    protected readonly filter: (listener: any) => boolean;
    constructor(method: K);
    dispatchModule(...p: P): R[];
    dispatchModuleAsync(...p: P): Promise<R[]>;
}
