import { type ComputerFrame, type ComputerFrameStreamOptions, type ComputerSessionAttachment } from "@opengeni/sdk/interaction"; import { type EmbeddedComputerInteractionClientOverride } from "../session-context.js"; export type ComputerFrameConnectionState = "idle" | "attaching" | "connecting" | "live" | "reconnecting" | "error"; export type ComputerFrameWebSocket = Pick & { send(data: ArrayBuffer): void; }; export type ComputerFrameWebSocketFactory = (url: string, protocols: string[]) => ComputerFrameWebSocket; export type UseComputerFrameStreamOptions = EmbeddedComputerInteractionClientOverride & { computerSessionId: string | null; targetId: string | null; enabled?: boolean | undefined; stream?: ComputerFrameStreamOptions | undefined; webSocketFactory?: ComputerFrameWebSocketFactory | undefined; }; export type UseComputerFrameStreamResult = { state: ComputerFrameConnectionState; frame: ComputerFrame | null; attachment: Pick | null; error: Error | null; reconnect: () => void; }; /** Reconnecting, latest-only ComputerSession media attachment. Grants remain in * WebSocket subprotocols or the relay's authenticated first binary message. */ export declare function useComputerFrameStream(options: UseComputerFrameStreamOptions): UseComputerFrameStreamResult;