import { EventEmitter } from "events";
import PeanarApp, { IPeanarRequest, IPeanarJobDefinition } from "./app";
import { Channel } from 'amqplib';
export default class PeanarJob extends EventEmitter {
    id: string;
    name: string;
    args: any[];
    handler: (...args: any[]) => Promise<any>;
    deliveryTag?: bigint;
    correlationId?: string;
    channel: Channel;
    app: PeanarApp;
    def: IPeanarJobDefinition;
    attempt: number;
    max_retries: number;
    cancelled: boolean;
    constructor(req: IPeanarRequest, def: IPeanarJobDefinition, app: PeanarApp, channel: Channel);
    cancel(reason?: Error): void;
    ack(): void;
    canRetry(): boolean;
    reject(ex?: Error & {
        retry?: boolean;
    }): Promise<void>;
    enqueue(): Promise<string>;
    protected get retry_name(): string;
    protected get requeue_name(): string;
    protected _declareRetryQueues(): Promise<void>;
    retry(): Promise<string>;
    pauseQueue(): void;
    resumeQueue(): void;
    _perform(): Promise<any>;
    perform(): Promise<unknown>;
}
