//#region src/useTimeout.d.ts /** * Hook that manages multiple timeouts with a stable API. * * Automatically clears all pending timeouts on unmount unless `noClearOnUnmount` is true. * * @param ms - Default timeout duration in milliseconds * @param noClearOnUnmount - If true, timeouts will not be cleared on unmount (default: false) * @returns Object with `call`, `clearAndCall`, and `clear` methods * * @example * ```tsx * function Toast({ message }: { message: string }) { * const [show, setShow] = useState(true); * const timeout = useTimeout(3000); * * useEffect(() => { * timeout.call(() => setShow(false)); * }, [timeout]); * * return show ?