export type DashboardClientShell = 'desktop' | 'mobile'; /** * Upgrade a legacy hash-scoped shell marker into the durable URL query. * Returns the replacement URL, or null when no rewrite is needed/possible. */ export declare function canonicalDashboardClientShellUrl(href: string): string | null; /** * Detect the restricted Desktop/Mobile dashboard shell. * * The query-string form is canonical because hash navigation must not clear * the shell boundary. Reading the hash form as a compatibility fallback lets * old one-time open links reach the shell long enough to be redirected. */ export declare function readDashboardClientShell(search?: string, hash?: string): DashboardClientShell | null; /** Workflow is deliberately outside the Botmux Desktop/Mobile integration. */ export declare function isWorkflowDashboardHash(hash: string): boolean; /** Monitor Room is a web-terminal surface and is owned by the native client. */ export declare function isWebTerminalDashboardHash(hash: string): boolean; /** * Embedded Desktop/Mobile dashboards must never offer web terminal actions. * * The native Botmux Sessions surface owns terminal attachment in those clients; * keeping this decision beside the shell parser prevents a future UI control * from accidentally minting a write link that the Electron boundary rejects. */ export declare function dashboardShellAllowsWebTerminal(search?: string, hash?: string): boolean; /** Resolve unsupported embedded routes before the lazy page module is loaded. */ export declare function dashboardClientShellRedirect(hash: string, search?: string): '#/' | '#/sessions' | null; //# sourceMappingURL=client-shell.d.ts.map