import { Duration } from 'ts-duration';
import { WakaQueue } from './queue.js';
import { WakaQ } from './wakaq.js';
export declare class Task<TData = unknown> {
    name: string;
    fn: ((variables: TData) => Promise<void>) | ((variables?: TData) => Promise<void>);
    wakaq: WakaQ;
    queue?: WakaQueue;
    softTimeout?: Duration;
    hardTimeout?: Duration;
    maxRetries: number;
    constructor(wakaq: WakaQ, fn: ((variables: TData) => Promise<void>) | ((variables?: TData) => Promise<void>), name?: string, queue?: WakaQueue | string, softTimeout?: Duration, hardTimeout?: Duration, maxRetries?: number);
    enqueue(variables?: TData): Promise<void>;
    enqueueAfterDelay(eta: Duration | Date | number, variables?: TData): Promise<void>;
    broadcast(variables?: TData): Promise<number>;
}
