export function parseTimeoutMs(raw: unknown): number | undefined { if (raw === undefined || raw === null) { return undefined; } let value = Number.NaN; if (typeof raw === "number") { value = raw; } else if (typeof raw === "bigint") { value = Number(raw); } else if (typeof raw === "string") { const trimmed = raw.trim(); if (!trimmed) { return undefined; } value = Number.parseInt(trimmed, 10); } return Number.isFinite(value) ? value : undefined; }