/** * Options for enqueueing a background job. */ export interface JobOptions { /** Delay before the job becomes runnable (milliseconds). */ delayMs?: number; /** Number of retry attempts on failure. */ maxAttempts?: number; /** Optional idempotency key for dedupe. */ idempotencyKey?: string; /** Runner-specific options passed through opaquely. */ runnerOptions?: Record; } /** * Abstract durable job runner interface. Implementations live in templates * or adapter packages; core never reaches for a specific runtime. * * Voyant Cloud chooses an edge or node runner per workflow step at deploy * time. Templates wire their chosen adapter into the shared app/runtime * container as `"jobs"`. Framework code that needs to kick off async work * does so via explicit runtime resolution such as * `container.resolve("jobs").enqueue(...)`. */ export interface JobRunner { /** Enqueue a job for durable execution. Returns a runner-assigned job id. */ enqueue(jobName: string, payload: unknown, options?: JobOptions): Promise; /** Schedule a recurring job by cron expression. */ schedule(jobName: string, cron: string, payload: unknown): Promise; } //# sourceMappingURL=orchestration.d.ts.map