/** * While Ink is mounted it owns the terminal: each frame is erased by moving the * cursor up exactly as many lines as the previous frame occupied. Any other * writer moves the cursor without Ink knowing, so the next erase misses rows and * they are stranded in the scrollback — spinner and prompt fragments wedged * between the confirmed messages. * * Foreign writes are therefore held back and replayed once Ink has let go, which * keeps the frame accounting exact without losing anything a provider printed. */ export interface TerminalOwnership { /** Hand these to Ink; they bypass the hold and reach the terminal directly. */ readonly stdout: NodeJS.WriteStream; readonly stderr: NodeJS.WriteStream; /** Restore the real streams and replay everything written meanwhile. */ release(): void; } export declare function takeTerminalOwnership(): TerminalOwnership; //# sourceMappingURL=terminalOwnership.d.ts.map