import type { MachineView, MetricSample } from "../types/machines.js"; export type MachinesDashboardProps = { machines: MachineView[]; /** The session's active sandbox id (drives the per-card "Active" marker). */ activeSandboxId?: string | null | undefined; loading?: boolean | undefined; error?: Error | null | undefined; /** Attach/swap the session's active sandbox to a machine. */ onAttach?: ((machine: MachineView) => void) | undefined; /** The sandbox id currently being attached/swapped to (disables that card). */ attachingSandboxId?: string | null | undefined; onUpdateAgent?: ((machine: MachineView) => void) | undefined; updatingEnrollmentId?: string | null | undefined; /** Short recent history per machine (keyed by sandboxId) — drives card sparklines. */ seriesByMachine?: Record | undefined; /** Open the per-machine telemetry detail (makes each card actionable). */ onOpenDetail?: ((machine: MachineView) => void) | undefined; /** Shared clock so freshness/relative times render consistently across cards. */ now?: number | undefined; /** Open the connection flow (the "Connect a machine" CTA). */ onEnroll?: (() => void) | undefined; onRefresh?: (() => void) | undefined; className?: string | undefined; }; /** * The workspace Machines dashboard: the fleet of Connected Machines + the * session's managed sandbox, each with its connection-status pill, state badges, * latest metrics, and an attach/swap affordance. Renders the empty state (no * machines → connect CTA), a load error, and the populated grid. The component * is purely presentational — feed it `MachinesResponse` data via `useMachines`. */ export declare function MachinesDashboard({ machines, activeSandboxId, loading, error, onAttach, attachingSandboxId, onUpdateAgent, updatingEnrollmentId, seriesByMachine, onOpenDetail, now, onEnroll, onRefresh, className, }: MachinesDashboardProps): import("react").JSX.Element;