/** * Hand the browser two frames so a pending store update actually reaches the * screen before we start the next long synchronous block. * * One frame is not enough: the first rAF callback runs *before* the paint of the * commit it triggered, so blocking there would freeze the UI showing the * previous state. Waiting for a second frame means the overlay is visibly on * screen when the block begins. * * The timer is not a nicety: a hidden or backgrounded tab never runs rAF * callbacks at all, so waiting on frames alone would stall the load until the * user came back to the tab. The frames are the fast path when visible; the * timeout is what guarantees the load always proceeds. */ export declare function yieldToPaint(): Promise; export declare function loadUrlIntoStore(url: string, onProgress?: (pct: number | null) => void): Promise; export declare function loadFileIntoStore(file: File): Promise;