/// import EventEmitter from 'events'; import { Job, Run, Client as SDK, JobDefinition } from '@nosana/sdk'; import { Provider } from '../../provider/Provider.js'; import { NodeRepository } from '../../repository/NodeRepository.js'; import { StopReason } from '../task/TaskManager.js'; export declare const jobEmitter: EventEmitter<[never]>; export declare class JobHandler { private sdk; private provider; private repository; private id; private job; private runSubscriptionId; private jobExternalUtil; private eventEmitter; private finishing; accountEmitter: EventEmitter; constructor(sdk: SDK, provider: Provider, repository: NodeRepository); /** * Expose a method to allow external consumers to listen for events */ on(event: string, listener: (...args: any[]) => void): void; /** * Expose a method to remove listeners */ off(event: string, listener: (...args: any[]) => void): void; get(): Job | undefined; private jobId; private getJobOrThrow; clearJob(): void; private getErrorMessage; private formatErrorDetails; claim(jobAddress: string): Promise; register(jobAddress: string, run: Run, job: Job): void; deregister(jobAddress: string): void; nodeStop(): Promise; validate(jobDefinition: JobDefinition): Promise; private listenForAccountChanges; private stopListeningForAccountChanges; start(job: Job): Promise; runWithErrorHandling(): Promise; finish(run: Run, reason: StopReason): Promise; clearOldJobs(): Promise; }