import { type MachineView } from "../../../machines.js"; import type { SandboxBackend } from "@opengeni/sdk"; import { type ReactNode } from "react"; import { type MenuBodyPresentation } from "./composer-menu-radio.js"; export { CLOUD_SANDBOX_LABEL, LOCAL_SANDBOX_LABEL, machineDisplayName, NO_SANDBOX_LABEL, sessionSandboxLabel, } from "../../../sandbox-label-model.js"; export declare function sessionSupportsFleetSwitching(_sandboxBackend: SandboxBackend): boolean; /** The session's compute: which box or machine it runs on, and what it may swap to. */ export declare function useSessionRunsOn(sessionId: string, sandboxBackend: SandboxBackend): { fleet: { activeEpoch: number; removingEnrollmentId: string | null; updatingEnrollmentId: string | null; updatingOperationPolicyEnrollmentId: string | null; attaching: boolean; attachingSandboxId: string | null; clearMutationError: () => void; canRead: boolean; canManage: boolean; canControl: boolean; canRemove: boolean; canUpdateAgent: boolean; canUpdateOperationPolicy: boolean; remove: (enrollmentId: string, request?: import("@opengeni/sdk").RemoveEnrollmentRequest) => Promise; updateAgent: (enrollmentId: string) => Promise; updateOperationPolicy: (enrollmentId: string, request: import("@opengeni/sdk").UpdateMachineOperationPolicyRequest) => Promise; attach: (sandboxId: string) => Promise; fetchSeries: (enrollmentId: string, window?: "15m" | "1h" | "6h" | "24h") => Promise; mutationError: Error | null; machines: MachineView[]; activeSandboxId: string | null; sessionMachineAccess: import("@opengeni/sdk").SessionMachineAccess | null | undefined; loading: boolean; error: Error | null; refresh: () => Promise; canAttach: boolean; }; machines: MachineView[]; activeMachine: MachineView | null; activeName: string; hasChoices: boolean; sandboxBackend: SandboxBackend; }; export type SessionRunsOn = ReturnType; /** The same authorized picker as + → Runs on, reachable from an access notice. */ export declare function SessionMachinePickerAction(props: { runsOn: SessionRunsOn; workspaceId: string; rigId: string | null; move: (machine: MachineView) => Promise; queuedWork?: boolean | undefined; }): import("react").JSX.Element | null; /** * "+" > Runs on for a running chat: where it runs now, and the machines it can * move to. The Sandbox Environment is fixed once the sandbox exists, so it is * shown, not chosen. */ export declare function SessionRunsOnMenuBody(props: { leading?: ReactNode | undefined; presentation?: MenuBodyPresentation | undefined; runsOn: SessionRunsOn; workspaceId: string; rigId: string | null; /** * Moves the chat onto a machine when moving needs more than repointing it * (the person's own machine also needs their consent for this chat). * Resolves to why the chat could not move, or null. */ move?: ((machine: MachineView) => Promise) | undefined; }): import("react").JSX.Element; /** * The session header names the compute only when the chat runs on someone's * own machine, where knowing it matters. Changing it lives under "+" > Runs on. */ export declare function SessionComputeIndicator({ sessionId, sandboxBackend, }: { sessionId: string; sandboxBackend: SandboxBackend; }): import("react").JSX.Element | null;