import type { BrowserSession, BrowserSessionMutationResponse, CreateBrowserSessionRequest } from "@opengeni/sdk/interaction"; import type { EmbeddedBrowserInteractionClientLike } from "../client.js"; import { type EmbeddedBrowserInteractionClientOverride } from "../session-context.js"; export type UseBrowserSessionsOptions = EmbeddedBrowserInteractionClientOverride & { /** Current agent/session relevance. Workspace peers remain in `sessions`. */ sessionId?: string | undefined; enabled?: boolean | undefined; /** Polling fallback used only while the workspace invalidation stream is unavailable. */ pollIntervalMs?: number | undefined; }; export type UseBrowserSessionsResult = { revision: number; sessions: BrowserSession[]; relevantSessions: BrowserSession[]; loading: boolean; refreshing: boolean; error: Error | null; refresh: () => Promise; create: (request: Omit & { operationId?: string; }) => Promise; suspend: (browserSessionId: string, operationId?: string) => Promise; resume: (browserSessionId: string, operationId?: string) => Promise; end: (browserSessionId: string, operationId?: string) => Promise; }; /** * Workspace-wide BrowserSession registry. Associations rank relevance but never * hide peer resources; no explicit share ceremony or per-view ownership exists. */ export declare function useBrowserSessions(options?: UseBrowserSessionsOptions): UseBrowserSessionsResult; /** Exported for narrow proxy implementations and tests. */ export type BrowserSessionsClient = EmbeddedBrowserInteractionClientLike;