import type { AuthNeededItem } from "../../../timeline/index.js"; import type { ChatSendContext } from "./session-github-repositories.js"; export { machineUseMessage } from "../../lib/move-chat-to-machine.js"; /** A neutral laptop mark for the card (the frame renders logos as images). */ export declare const CONNECTED_MACHINE_LOGO: string; export type SessionMachineCapabilityCardProps = { item: AuthNeededItem; workspaceId: string; sessionId: string; /** What a composer Send would carry now, so this Send follows the same rules. */ sendContext?: (() => ChatSendContext) | undefined; /** Re-read the session after the chat moves to a machine. */ onConfigured?: (() => Promise) | undefined; }; /** * The Connected Machine card in a conversation. The agent can post it, but only * the person can connect a machine or move this chat onto one. Once a machine with a * screen is reachable, the card offers the Opengeni Browser extension for it. */ export declare function SessionMachineCapabilityCard({ item, workspaceId, sessionId, sendContext, onConfigured, }: SessionMachineCapabilityCardProps): import("react").JSX.Element; /** * An earlier Connected Machine card whose request the agent made again further * down. The newer card is the live one, so this stays a single quiet line. */ export declare function RepeatedMachineRequestNote({ chrome }: { chrome?: boolean; }): import("react").JSX.Element; export type ChromeState = { connected: { name: string; } | null; /** A read completed, so a null `connected` means Chrome is not linked yet. */ checked: boolean; /** Start checking for the extension (after the person opens the store). */ watch: () => void; /** Checking for the extension after the person opened the store. */ watching: boolean; }; /** Which Chrome to look for: one on an exact machine, or any the person connected. */ export type AttachedChromeScope = { enrollmentId: string; } | "any" | null; /** * Whether the Opengeni Browser extension linked a Chrome profile the agent can * use (the same check browser_open applies) on this exact machine, or, with * "any", on any machine. Reads once, and again whenever `refreshKey` changes * (for example when a computer comes online); polls only after the person opens * the store, stops once linked, after a bounded time, or when the inventory is * not available to them. */ export declare function useAttachedChrome(workspaceId: string, scope: AttachedChromeScope, refreshKey?: string | null): ChromeState;