import { WorkerManifest } from "@trigger.dev/core/v3"; import { TaskRunProcess } from "../../executions/taskRunProcess.js"; import { RunnerEnv } from "./env.js"; import { RunLogger } from "./logger.js"; export interface TaskRunProcessProviderOptions { workerManifest: WorkerManifest; env: RunnerEnv; logger: RunLogger; processKeepAliveEnabled: boolean; processKeepAliveMaxExecutionCount: number; } export interface GetProcessOptions { taskRunEnv: Record; isWarmStart?: boolean; } export declare class TaskRunProcessProvider { private readonly workerManifest; private readonly env; private readonly logger; private readonly processKeepAliveEnabled; private readonly processKeepAliveMaxExecutionCount; private readonly machineId; private persistentProcess; private executionCount; constructor(opts: TaskRunProcessProviderOptions); get hasPersistentProcess(): boolean; handleImmediateRetry(): Promise; /** * Gets a TaskRunProcess, either by reusing an existing one or creating a new one */ getProcess(opts: GetProcessOptions): Promise; /** * Returns a process after execution, handling keep-alive logic and cleanup */ returnProcess(process: TaskRunProcess): Promise; suspendProcess(flush: boolean, process?: TaskRunProcess): Promise; /** * Handles process abort/kill scenarios */ handleProcessAbort(process: TaskRunProcess): Promise; killProcess(process: TaskRunProcess): Promise; /** * Forces cleanup of any persistent process */ cleanup(): Promise; /** * Gets metrics about the provider state */ get metrics(): { processKeepAlive: { enabled: boolean; executionCount: number; maxExecutionCount: number; hasPersistentProcess: boolean; }; }; private createTaskRunProcess; private buildProcessEnvironment; private shouldReusePersistentProcess; private shouldKeepProcessAlive; private cleanupProcess; private sendDebugLog; }