import { Transaction } from "@mysten/sui/transactions";
import { Job } from "./job.js";
export interface AppMethod {
    description?: string;
    developer: string;
    agent: string;
    agentMethod: string;
}
export interface AppInstance {
    id: string;
    silvanaAppName: string;
    description?: string;
    metadata: Record<string, string>;
    kv: Record<string, string>;
    methods: Record<string, AppMethod>;
    admin: string;
    sequence: number;
    blockNumber: number;
    previousBlockTimestamp: number;
    previousBlockLastSequence: number;
    lastProvedBlockNumber: number;
    lastSettledBlockNumber: number;
    lastSettledSequence: number;
    lastPurgedSequence: number;
    isPaused: boolean;
    minTimeBetweenBlocks: number;
    jobsId: string;
    createdAt: number;
    updatedAt: number;
}
export interface CreateAppJobParams {
    appInstance: string;
    description?: string;
    method: string;
    sequences?: number[];
    data: Uint8Array;
}
export declare class AppInstanceManager {
    private readonly registry;
    constructor(params: {
        registry: string;
    });
    createAppJob(params: CreateAppJobParams): Transaction;
    startAppJob(params: {
        appInstance: string;
        jobId: number;
    }): Transaction;
    completeAppJob(params: {
        appInstance: string;
        jobId: number;
    }): Transaction;
    failAppJob(params: {
        appInstance: string;
        jobId: number;
        error: string;
    }): Transaction;
    getAppInstance(appInstanceId: string): Promise<AppInstance | undefined>;
    getAppJob(params: {
        appInstance: string;
        jobId: number;
    }): Promise<Job | undefined>;
    getAppPendingJobs(appInstance: string): Promise<number[]>;
}
