import type { MachineView } from "@opengeni/sdk"; import { type ReactNode } from "react"; import { type ThisComputerLabels } from "./labels.js"; import type { UseThisComputerResult } from "./use-this-computer.js"; export interface ThisComputerCardProps { /** Why the agent asks, from the request; shown under the title. */ rationale?: string | null; /** * Inside a desktop app that can host the agent: this computer, from * `useThisComputer`. Outside one, leave it out. */ computer?: UseThisComputerResult | null; /** * The person's own computers (scope `user`), e.g. from `useMachines`, so * the card can say one is ready or offline when this isn't the desktop app. */ machines?: readonly MachineView[] | null; /** The app's name, e.g. for "Get … for desktop". */ productName: string; labels?: ThisComputerLabels; /** Opens `ThisComputerSetup` to finish required system permissions. */ onSetup?(): void; /** Where to get the desktop app, outside it. */ downloadUrl?: string | null; /** Host-owned OS-appropriate app downloads. Never inferred from a capability event. */ downloads?: readonly { label: string; url: string; }[]; /** Host-owned handoff preserving the signed-in account and current destination. */ openAppUrl?: string | null; /** Optional product-owned flow, for apps not using the desktop kit. */ onConnect?: (() => Promise) | undefined; /** * The person set it up or resumed it from this card and it became ready, * e.g. to tell the agent to go on. Not called for a computer that was * already ready, or that became ready without the person acting here. */ onReady?(machineName: string): void; icon?: ReactNode; } /** * What the conversation shows when the agent asks to use the person's * computer. In the desktop app it turns this computer on right there; on the * web or a phone it says whether their computer is ready, or how to get the * desktop app. Nothing is asked per chat: once on, agents can use it in all * of the person's chats. */ export declare function ThisComputerCard({ rationale, computer, machines, productName, labels: given, onSetup, downloadUrl, downloads, openAppUrl, onConnect, onReady, icon, }: ThisComputerCardProps): import("react").JSX.Element;