import type { CreateRigRequest, ProposeRigChangeRequest, Rig, RigChange, RigVersion, UpdateRigRequest } from "@opengeni/sdk"; import { type ClientOverride } from "../provider.js"; export type UseRigsOptions = ClientOverride & { pollIntervalMs?: number | undefined; enabled?: boolean | undefined; }; export type UseRigsResult = { rigs: Rig[]; loading: boolean; error: Error | null; refresh: () => Promise; create: (request: CreateRigRequest) => Promise; update: (rigId: string, request: UpdateRigRequest) => Promise; remove: (rigId: string) => Promise; listVersions: (rigId: string) => Promise; activateVersion: (rigId: string, versionId: string) => Promise; listChanges: (rigId: string) => Promise; proposeChange: (rigId: string, request: ProposeRigChangeRequest) => Promise; mutating: boolean; mutationError: Error | null; clearMutationError: () => void; }; /** * Rigs (workspace-scoped, versioned sandbox machine definitions). The list * polls; version/change reads are on-demand (they are per-rig detail, not part * of the list surface). */ export declare function useRigs(options?: UseRigsOptions): UseRigsResult; export type UseRigOptions = ClientOverride & { pollIntervalMs?: number | undefined; enabled?: boolean | undefined; }; export type UseRigResult = { rig: Rig | null; loading: boolean; error: Error | null; refresh: () => Promise; update: (request: UpdateRigRequest) => Promise; remove: () => Promise; activateVersion: (versionId: string) => Promise; proposeChange: (request: ProposeRigChangeRequest) => Promise; /** Re-run verification for a change (asynchronous — poll for the outcome). */ verifyChange: (changeId: string) => Promise; /** Promote a verified definition_edit into a new active version (rigs:manage). */ promoteChange: (changeId: string) => Promise; /** Re-verify the active version's checks in a clean throwaway sandbox. */ verify: () => Promise<{ ok: boolean; versionId: string; } | null>; mutating: boolean; mutationError: Error | null; clearMutationError: () => void; }; /** * A single rig (its active version + counts), polled so verification and * promotion state stay live. Owns the rig's write actions; the versions and * changes lists are separate polled reads (`useRigVersions`/`useRigChanges`). */ export declare function useRig(rigId: string, options?: UseRigOptions): UseRigResult; export type UseRigVersionsOptions = ClientOverride & { pollIntervalMs?: number | undefined; enabled?: boolean | undefined; }; export type UseRigVersionsResult = { versions: RigVersion[]; loading: boolean; error: Error | null; refresh: () => Promise; }; /** A rig's append-only version history, newest-first (polled). */ export declare function useRigVersions(rigId: string, options?: UseRigVersionsOptions): UseRigVersionsResult; export type UseRigChangesOptions = ClientOverride & { pollIntervalMs?: number | undefined; enabled?: boolean | undefined; }; export type UseRigChangesResult = { changes: RigChange[]; loading: boolean; error: Error | null; refresh: () => Promise; }; /** * A rig's change queue (polled). The default poll cadence lets a change move * through verifying → merged/rejected without a manual refresh. */ export declare function useRigChanges(rigId: string, options?: UseRigChangesOptions): UseRigChangesResult;