import { Type } from "@tsed/core";
import { Job as BullMQJob, JobsOptions } from "bullmq";
import { JobMethods } from "../contracts/index.js";
import type { JobDispatcherOptions } from "./JobDispatcherOptions.js";
export declare class JobDispatcher {
    dispatch<T extends JobMethods>(job: Type<T>, payload?: Parameters<T["handle"]>[0], options?: JobsOptions): Promise<BullMQJob>;
    dispatch<P = unknown>(job: JobDispatcherOptions, payload?: P, options?: JobsOptions): Promise<BullMQJob>;
    dispatch<P = unknown>(job: string, payload?: P, options?: JobsOptions): Promise<BullMQJob>;
    private resolveDispatchArgs;
    private retrieveJobOptionsFromClassBasedJob;
}
