/**
 * Per-run idle timeout resolution.
 *
 * The idle timer resets on every model/tool activity signal (streaming
 * chunk, tool execution, compaction, etc.).  It fires only when the run is
 * truly idle — distinguishing "model working slowly on large context" from
 * "model stuck / connection lost".
 */
export declare function resolveIdleTimeoutMs(opts: {
    runTimeoutMs: number;
    configSeconds?: number | null;
    modelSeconds?: number | null;
}): number;
