import type { ApiSchemaFor } from '../schemas/index.js'; import { ProvingJob, ProvingJobResult } from './proving-job.js'; export interface ProvingJobSource { /** * Gets the next proving job. `heartbeat` must be called periodically to keep the job alive. * @returns The proving job, or undefined if there are no jobs available. */ getProvingJob(): Promise; /** * Keeps the job alive. If this isn't called regularly then the job will be * considered abandoned and re-queued for another consumer to pick up * @param jobId The ID of the job to heartbeat. */ heartbeat(jobId: string): Promise; /** * Resolves a proving job. * @param jobId - The ID of the job to resolve. * @param result - The result of the proving job. */ resolveProvingJob(jobId: string, result: ProvingJobResult): Promise; /** * Rejects a proving job. * @param jobId - The ID of the job to reject. * @param reason - The reason for rejecting the job. */ rejectProvingJob(jobId: string, reason: string): Promise; } export declare const ProvingJobSourceSchema: ApiSchemaFor; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmluZy1qb2Itc291cmNlLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW50ZXJmYWNlcy9wcm92aW5nLWpvYi1zb3VyY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFVBQVUsRUFBZ0IsZ0JBQWdCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUU5RSxNQUFNLFdBQVcsZ0JBQWdCO0lBQy9COzs7T0FHRztJQUNILGFBQWEsSUFBSSxPQUFPLENBQUMsVUFBVSxHQUFHLFNBQVMsQ0FBQyxDQUFDO0lBRWpEOzs7O09BSUc7SUFDSCxTQUFTLENBQUMsS0FBSyxFQUFFLE1BQU0sR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFeEM7Ozs7T0FJRztJQUNILGlCQUFpQixDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLGdCQUFnQixHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUUxRTs7OztPQUlHO0lBQ0gsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztDQUNoRTtBQUVELGVBQU8sTUFBTSxzQkFBc0IsRUFBRSxZQUFZLENBQUMsZ0JBQWdCLENBS2pFLENBQUMifQ==