import { BaseAppConfig } from '../../app';
import { ScopedLogger } from '../logger';
import { WorkerQueueRegistry } from './queue';
import { WorkerRunnerService, type WorkerExecutionResult } from './runner';
import { BaseJob, InputDataSymbol, type IJobOptions, type JobClass, type QueuedWorkerJob } from './types';
export * from './entity';
export * from './queue';
export * from './recorder';
export * from './runner';
export * from './types';
export * from './observer';
export declare class WorkerService {
    private readonly config;
    private readonly queueRegistry;
    private readonly runner;
    private readonly logger;
    constructor(config: BaseAppConfig, queueRegistry: WorkerQueueRegistry, runner: WorkerRunnerService, logger: ScopedLogger);
    queueJob<I extends object, O, T extends BaseJob<I, O>>(jobClass: JobClass<I, O> & {
        prototype: T;
    }, data: T[typeof InputDataSymbol], options?: IJobOptions): Promise<QueuedWorkerJob<I> | WorkerExecutionResult<I, O> | undefined>;
    runJob<I extends object, O, T extends BaseJob<I, O>>(jobClass: JobClass<I, O> & {
        prototype: T;
    }, data: T[typeof InputDataSymbol], options?: IJobOptions): Promise<WorkerExecutionResult<I, O>>;
}
//# sourceMappingURL=index.d.ts.map