import { type DesktopBridge, type DesktopCapability } from "@opengeni/sdk/desktop-bridge"; export declare const desktopBridge: DesktopBridge | null; /** * In the macOS app the window's traffic lights sit in the top-left corner of * the page, where the rails put the brand; the Dock and menu bar already name * the app, so rails keep that row for the window controls. */ export declare const windowControlsInPage: boolean; export declare function desktopCapability(capability: DesktopCapability): DesktopBridge | null; /** * Marks the console's API requests inside the desktop app, so a sign-in that * finishes in the person's browser brings them back to the app. */ export declare function desktopAppHeaders(): Record; declare global { interface Window { /** The shell calls this to move the app to a path without a reload. */ __opengeniDesktopNavigate?: ((path: string) => void) | undefined; } } /** * Before the first render: mark the document so the desktop layout applies * from the first frame (room for the window controls, draggable title areas, * window materials), and let the shell navigate client-side. */ export declare function installDesktopShell(navigate: (path: string) => void): void; /** * The desktop app is one long-lived window: once it is idle after opening, * fetch the code for the pages people move between, so the first visit to * each one renders at once instead of showing a loading state. */ export declare function warmDesktopPages(pages: readonly { preload?: (() => unknown) | undefined; }[]): void; /** * The page found itself signed out inside the desktop app. The app is still * signed in, so it renews the window's web sign-in and the page reloads. At * most once a minute, so a server that keeps refusing can't loop the page. */ export declare function restoreDesktopWebSession(): Promise;