import type { SessionVisibility } from "@opengeni/sdk"; export type SessionRestartOperationScope = { principalId: string; workspaceId: string; sessionId: string; }; export type PendingSessionRestartAttempt = SessionRestartOperationScope & { visibility: SessionVisibility; rigId: string | null; idempotencyKey: string; }; /** * App-lifetime retention for restart-with-setup. An uncertain attempt keeps its * exact ordered setup, so a remount or edited picker cannot mint a second fork * before the original idempotency key is reconciled. */ export declare class SessionRestartOperationController { private readonly attempts; snapshot(scope: SessionRestartOperationScope): PendingSessionRestartAttempt | null; prepare(scope: SessionRestartOperationScope, input: { visibility: SessionVisibility; rigId: string | null; }, createIdempotencyKey: () => string): PendingSessionRestartAttempt; settle(scope: SessionRestartOperationScope, attempt: PendingSessionRestartAttempt): void; invalidate(): void; } export declare function retainSessionRestartAttemptAfterFailure(error: unknown, receiptConfirmed: boolean): boolean; /** One retained controller for the web application's lifetime. */ export declare const sessionRestartOperationController: SessionRestartOperationController;