/** * Loads the Velt script dynamically and calls the callback when ready. * Returns a cleanup function to remove the event listener if component unmounts. * * ## Issue (Rapid Mount/Unmount with Slow Network) * * When VeltProvider is rapidly mounted/unmounted (e.g., conditional rendering, * React Strict Mode, or route changes) while the Velt script is still loading * over a slow network, multiple issues can occur: * * 1. First component mount creates the script tag and starts loading * 2. Component unmounts before script loads (script tag remains in DOM) * 3. Second component mount finds existing script tag * 4. OLD BEHAVIOR: Immediately triggered callback assuming script was loaded * 5. PROBLEM: Script wasn't actually loaded yet (still loading due to network delay) * 6. This caused initVelt to run with window.Velt = undefined * * ## Fix * * 1. Check if window.Velt exists before triggering callback for existing scripts * 2. If script tag exists but window.Velt doesn't, attach a new load event listener * 3. Return a cleanup function that removes the event listener when component unmounts * 4. This prevents orphaned callbacks from firing on destroyed component instances * * @returns Cleanup function to remove event listener (call on component unmount) */ declare const loadVelt: (callback: Function, version?: string, staging?: boolean, develop?: boolean, proxyDomain?: string, integrity?: boolean, integrityValue?: string) => (() => void); export default loadVelt;