import type { HttpClient } from "./client.js"; /** An explicit, durable handoff of the existing browser, not a new session. */ export interface DeveloperTakeover { takeoverId: string; sessionId: string; jobId: string; status: "offered" | "active" | "ready" | "resumed" | "cancelled"; version: number; reason: string; map: { mapId: string; revision: string; }; resumeMap: { mapId: string; revision: string; } | null; resumeStateId: string; resumeStateIds: string[]; previousStateId: string; observedStateId: string; controllerId: string; windowId: string; controlReady: boolean; appLabel: string; returnUrl: string; resumedJobId: string; canAccept: boolean; canTransfer: boolean; canReturn: boolean; canResume: boolean; summary: { stock?: string; completedAccounts?: number; totalAccounts?: number; }; presentation: { presentation_id?: string; window_id?: string; status?: string; error?: string; studio_url?: string; } | null; } export interface TakeoverContext { appLabel?: string; /** Optional local app URL. Only loopback HTTP(S) origins are accepted. */ returnUrl?: string; /** Non-secret continuation data for a failure before the workflow starts. */ checkpoint?: Record; inputs?: Record; } export interface DeveloperTakeoverOptions { /** Offer Studio control only after recognition times out on an unfamiliar page. */ allowDeveloperTakeover?: boolean; takeoverContext?: TakeoverContext; } export declare class DeveloperTakeoversResource { private readonly http; constructor(http: HttpClient); list(options?: { mapId?: string; }): Promise<{ takeovers: DeveloperTakeover[]; }>; get(takeoverId: string): Promise; present(takeoverId: string, options: { windowId: string; }): Promise; accept(takeoverId: string, options: { expectedVersion: number; controllerId: string; windowId: string; presentationId: string; }): Promise<{ takeover: DeveloperTakeover; operation: Record; }>; finish(takeoverId: string, options: { expectedVersion: number; controllerId: string; controlEpoch: number; observationId: string; expectedRevision: string; }): Promise<{ takeover: DeveloperTakeover; operation: Record; }>; cancel(takeoverId: string, options: { expectedVersion: number; }): Promise; resume(takeoverId: string, options: { expectedVersion: number; versionId: string; requestId: string; allowDeveloperTakeover?: boolean; }): Promise; private path; }