import type { PluginBridgeExecuteEnvelope, PluginBridgeExecutionResult } from "./pluginBridge"; import type { GameClientBridgeCommandFilterRequest, GameClientBridgeQueueRequest, GameClientBridgeSnapshotQuery } from "../api/types"; export interface PluginDataMutation { operation: "put" | "delete"; key: string; value?: Record; } export interface PluginPageWorkspaceActions { pluginData?: { list: (collection: string, key?: string) => Promise; put: (collection: string, key: string, value: Record) => Promise; delete: (collection: string, key: string) => Promise; transact: (collection: string, mutations: PluginDataMutation[]) => Promise; }; gameClient?: { queue: (request: GameClientBridgeQueueRequest) => Promise; get: (commandId: string) => Promise; list: (filter?: GameClientBridgeCommandFilterRequest) => Promise; snapshots: (query?: GameClientBridgeSnapshotQuery) => Promise; }; dispatch?: (envelope: PluginBridgeExecuteEnvelope, signal?: AbortSignal) => Promise; }