import { type JsonValue, type ViewerEnvironmentV1, type ViewerIdV1, type ViewerPermissionV1, type ViewerSurfaceV1 } from '@xyo-network/payload-viewer-protocol'; import type { NativeViewerActionV1, NativeViewerRenderResultV1, PayloadViewerSandboxDiagnosticV1 } from './types.js'; /** Options for constructing a {@link PayloadViewerSandboxSessionV1}. */ export interface PayloadViewerSandboxSessionOptionsV1 { environment: ViewerEnvironmentV1; grantedPermissions: readonly ViewerPermissionV1[]; messageChannelFactory?: () => MessageChannel; messageIdFactory?: () => string; onAction?: (action: NativeViewerActionV1) => void; onDiagnostic?: (diagnostic: PayloadViewerSandboxDiagnosticV1) => void; renderTimeoutMs?: number; sessionTimeoutMs?: number; surface: ViewerSurfaceV1; targetWindow: WindowProxy; viewerId: ViewerIdV1; } /** Error thrown when a payload viewer sandbox session or render times out. */ export declare class PayloadViewerSandboxTimeoutError extends Error { constructor(message: string); } /** Host-side private MessageChannel session for one selected sandbox viewer. */ export declare class PayloadViewerSandboxSessionV1 { private environment; private readonly grantedPermissions; private readonly messageChannelFactory; private readonly messageIdFactory; private readonly onAction?; private readonly onDiagnostic?; private readonly pendingRenders; private readonly port; private readonly renderTimeoutMs; private readonly sessionId; private readonly sessionTimeoutMs; private readonly surface; private readonly targetWindow; private readonly viewerId; private disposed; private ready; private startPromise?; constructor({ environment, grantedPermissions, messageChannelFactory, messageIdFactory, onAction, onDiagnostic, renderTimeoutMs, sessionTimeoutMs, surface, targetWindow, viewerId, }: PayloadViewerSandboxSessionOptionsV1); start(): Promise; render(payload: Record): Promise; updateEnvironment(environment: ViewerEnvironmentV1): void; dispose(): void; private readyCallback?; private readonly handlePluginMessage; private handleValidatedPluginMessage; private post; private envelope; private assertActive; private report; } //# sourceMappingURL=PayloadViewerSandboxSession.d.ts.map