/// import type { EventEmitter } from 'events'; /** * Enforces a maximum running time for a single operation. * * The clock starts on `container:started` — emitted once the container is * actually running, i.e. *after* the image pull — so download time is not * counted against the operation's allotted run time. (The earlier `start` * event, which the provider emits before pulling, is deliberately not used.) * If the operation is still running `timeoutSeconds` later, `onTimeout` is * invoked; callers use this to abort the op. The timer is cleared as soon as * the operation settles (`exit`/`error`) or is torn down (`end`), so a normally * completing op never triggers it. * * The unit is seconds, matching the on-chain `job.timeout` convention. * * A missing, zero, or negative timeout disables enforcement (no-op). */ export declare function enforceOperationTimeout(emitter: EventEmitter, timeoutSeconds: number | undefined, onTimeout: () => void): void;