import { Transaction } from "@mysten/sui/transactions";
export type JobStatus = {
    type: "Pending";
} | {
    type: "Running";
} | {
    type: "Failed";
    error: string;
};
export interface Job {
    id: string;
    jobId: number;
    description?: string;
    developer: string;
    agent: string;
    agentMethod: string;
    app: string;
    appInstance: string;
    appInstanceMethod: string;
    sequences?: number[];
    data: Uint8Array;
    status: JobStatus;
    attempts: number;
    createdAt: number;
    updatedAt: number;
}
export interface CreateJobParams {
    jobs: string;
    description?: string;
    developer: string;
    agent: string;
    agentMethod: string;
    app: string;
    appInstance: string;
    appInstanceMethod: string;
    sequences?: number[];
    data: Uint8Array;
}
export declare class JobManager {
    private readonly jobs;
    constructor(params: {
        jobs: string;
    });
    static createJobs(maxAttempts?: number): Transaction;
    createJob(params: CreateJobParams): Transaction;
    startJob(jobId: number): Transaction;
    completeJob(jobId: number): Transaction;
    failJob(params: {
        jobId: number;
        error: string;
    }): Transaction;
    updateMaxAttempts(maxAttempts: number): Transaction;
    getJob(jobId: number): Promise<Job | undefined>;
    getPendingJobs(): Promise<number[]>;
    getNextPendingJob(): Promise<number | undefined>;
    getMaxAttempts(): Promise<number>;
}
