/** * Race an agent turn against a wall clock; on timeout, abort the in-flight turn * and await {@link Agent.waitForIdle} so a subsequent {@link Agent.prompt} is allowed. */ import type { Agent } from '@earendil-works/pi-agent-core'; import type { Config } from '../../config/schema.js'; /** Minimum per-turn timeout (1 minute). */ export declare const MIN_AGENT_TURN_TIMEOUT_MS = 60000; /** Maximum configurable per-turn timeout (24 hours). */ export declare const MAX_AGENT_TURN_TIMEOUT_MS: number; /** Default per-turn timeout (4 hours). */ export declare const DEFAULT_AGENT_TURN_TIMEOUT_MS: number; export declare const DEFAULT_AGENT_ABORT_GRACE_MS = 5000; export declare class AgentTurnUnsettledError extends Error { readonly timeoutMs: number; readonly abortGraceMs: number; constructor(timeoutMs: number, abortGraceMs: number); } export declare function isAgentTurnUnsettledError(err: unknown): err is AgentTurnUnsettledError; export declare function resolveAgentTurnTimeoutMs(config?: Config, sessionKey?: string): number; export declare function isAgentTurnTimeoutError(err: unknown): boolean; export declare function runAgentTurnWithTimeout(agent: Agent, runTurn: () => Promise, timeoutMs: number, options?: { abortGraceMs?: number; }): Promise;