export function parseFollowCursor( value: boolean | 'initial' | 'horizontal' | 'vertical' | 'true' | 'false' ): boolean | 'initial' | 'horizontal' | 'vertical' { if (value === true || value === 'true') return true; if (value === false || value === 'false') return false; if (['initial', 'horizontal', 'vertical'].includes(String(value))) { return value as 'initial' | 'horizontal' | 'vertical'; } return false; } export function parseDuration( value: string | number | [number, number] | undefined ): number | [number, number] { if (Array.isArray(value)) return value; if (typeof value === 'number') return value; if (typeof value === 'string') { if (value.includes(',')) { const parts = value.split(',').map(v => parseInt(v.trim(), 10)); return parts as [number, number]; } const num = parseInt(value, 10); if (!isNaN(num)) return num; } return 200; }