import type { CompatVerdict } from "../gateway/compat.js"; import type { DiscussOnceInput, DiscussOnceReceipt, OneShotReceipt, RunOnceFromInput } from "../gateway/oneshot.js"; import { type JobRecord, type JobTurn } from "./schema.js"; export type JobClient = { compat?(options?: unknown): Promise; runOnceFrom(input: RunOnceFromInput): Promise; discussOnce(input: DiscussOnceInput): Promise; }; export type SubmitJobOptions = { /** Override GROKBOT_JOBS_DIR / default tmp dir. */ jobsDir?: string; timeoutMs?: number; intervalMs?: number; keepOnFailure?: boolean; signal?: AbortSignal; }; export declare function jobRecordPath(jobId: string, jobsDir: string): string; export declare function writeJobRecord(record: JobRecord, jobsDir: string): Promise; export declare function readJobRecord(jobId: string, jobsDir: string): Promise; export declare function listJobRecords(jobsDir: string): Promise; /** Unique throwaway room name so host createGroup never sees an omitted name. */ export declare function jobDiscussOnceName(jobId: string): string; export declare const JOB_DISCUSS_ONCE_DESCRIPTION = "Throwaway job room. Delete after idle."; export declare function submitJob(bot: JobClient, input: unknown, options?: SubmitJobOptions): Promise; /** Alias for submitJob. */ export declare const runJob: typeof submitJob; export declare function getJob(jobId: string, jobsDir?: string): Promise; export declare function listJobs(jobsDir?: string): Promise; /** Human turn list: `speaker: text` per line. */ export declare function formatJobTurns(turns: JobTurn[]): string; /** Packet metadata plus turns. Never tokens or gateway secrets. */ export declare function formatJobRecord(record: JobRecord, options?: { noReply?: boolean; }): string; export declare function formatJobList(records: JobRecord[]): string; //# sourceMappingURL=runner.d.ts.map