import { type AppShotCapture, type AttachedBrowserDevice } from "@opengeni/contracts"; import type { UseFileAttachmentsResult } from "../../../hooks/use-file-attachments.js"; import type { DesktopAppShot } from "@opengeni/sdk/desktop-bridge"; import { type RefObject } from "react"; /** A capture ready to attach: the screenshot file and what it shows. */ export interface AppShotDelivery { image: File; capture: AppShotCapture; } /** Attach to the composer on screen; false when there is none. */ export declare function deliverAppShot(delivery: AppShotDelivery): boolean; /** For tests: forget registered composers and any waiting capture. */ export declare function resetAppShotTargetsForTest(): void; /** * Lets the composer inside `region` take app-shots. The composer the person * last focused (or that mounted last) receives the next one; a capture that * arrived while no composer was on screen lands here as soon as it mounts. */ export declare function useAppShotTarget(attachments: UseFileAttachmentsResult | null, region: RefObject): void; /** The capture as stored with the screenshot, within the contract's limits. */ export declare function appShotCaptureFrom(shot: DesktopAppShot, computer: { name: string; sandboxId?: string | undefined; } | null, browserProfiles?: readonly AppShotBrowserProfile[]): AppShotCapture; /** A browser profile connected through the Opengeni browser extension. */ export interface AppShotBrowserProfile { deviceId: string; name: string; } /** * The browser profiles connected to the workspace from this computer, in a * stable order: where a page captured in a Chromium-based browser is open. */ export declare function browserProfilesOnComputer(devices: readonly AttachedBrowserDevice[], enrollmentId: string): AppShotBrowserProfile[]; /** "Safari - Example Domain.png": the screenshot's file name. */ export declare function appShotFileName(shot: Pick): string; /** * Mounted once per workspace shell: receives the app's captures and attaches * each to the composer on screen, or opens the last chat (else a new one) * and attaches it there. */ export declare function AppShotCoordinator({ workspaceId }: { workspaceId: string; }): null;