import type { AgentBoxState, AgentRegistryEntry, AgentTaskEnvelope, WidgetCommandName, WidgetConnectionState, WidgetHealSummary, WidgetJob, WidgetSelectionSnapshot, WidgetSyncSummary } from "./contracts.js"; export declare const BRIDGE_V2_CHANNEL = "memoire.bridge.v2"; export type BridgeSyncPart = "tokens" | "components" | "styles"; export interface BridgeCommandEnvelope { channel: typeof BRIDGE_V2_CHANNEL; source: "server"; type: "command"; id: string; method: WidgetCommandName; params: Record; } export interface BridgeResponseEnvelope { channel: typeof BRIDGE_V2_CHANNEL; source: "plugin"; type: "response"; id: string; result?: unknown; error?: string; } export interface BridgePingEnvelope { channel: typeof BRIDGE_V2_CHANNEL; source: "server" | "plugin"; type: "ping" | "pong"; } export interface BridgeIdentifyEnvelope { channel: typeof BRIDGE_V2_CHANNEL; source: "server"; type: "identify"; name: string; port?: number; studioUrl?: string; runtimeUrl?: string; } export interface BridgeHelloEnvelope { channel: typeof BRIDGE_V2_CHANNEL; source: "plugin"; type: "bridge-hello"; file: string; fileKey: string; editor: string; } export interface BridgeEventEnvelope { channel: typeof BRIDGE_V2_CHANNEL; source: "server"; type: "event"; level: "info" | "warn" | "error" | "success"; message: string; data?: unknown; } export interface BridgeChatEnvelope { channel: typeof BRIDGE_V2_CHANNEL; source: "server" | "plugin"; type: "chat"; text: string; from: string; } export interface BridgeErrorEnvelope { channel: typeof BRIDGE_V2_CHANNEL; source: "server"; type: "error"; message: string; details?: unknown; } export interface BridgeSelectionEnvelope { channel: typeof BRIDGE_V2_CHANNEL; source: "plugin"; type: "selection"; data: WidgetSelectionSnapshot; } export interface BridgePageChangedEnvelope { channel: typeof BRIDGE_V2_CHANNEL; source: "plugin"; type: "page-changed"; data: { page: string; pageId: string | null; updatedAt: number; }; } export interface BridgeDocumentChangedEnvelope { channel: typeof BRIDGE_V2_CHANNEL; source: "plugin"; type: "document-changed"; data: { changes: number; buffered: number; sessionId: string; runId?: string | null; updatedAt: number; }; } export interface BridgeActionResultEnvelope { channel: typeof BRIDGE_V2_CHANNEL; source: "plugin"; type: "action-result"; action: string; result?: unknown; error?: string; } export interface BridgeSyncResultEnvelope { channel: typeof BRIDGE_V2_CHANNEL; source: "plugin"; type: "sync-result"; part: BridgeSyncPart; summary: WidgetSyncSummary; result?: unknown; error?: string; } export interface BridgeConnectionStateEnvelope { channel: typeof BRIDGE_V2_CHANNEL; source: "plugin"; type: "connection-state"; data: WidgetConnectionState; } export interface BridgeJobStatusEnvelope { channel: typeof BRIDGE_V2_CHANNEL; source: "plugin"; type: "job-status"; data: WidgetJob; } export interface BridgeHealResultEnvelope { channel: typeof BRIDGE_V2_CHANNEL; source: "plugin"; type: "heal-result"; data: WidgetHealSummary; } export interface BridgeAgentStatusEnvelope { channel: typeof BRIDGE_V2_CHANNEL; source: "plugin"; type: "agent-status"; data: AgentBoxState; } export interface BridgeAgentRegisterEnvelope { channel: typeof BRIDGE_V2_CHANNEL; source: "server"; type: "agent-register"; data: AgentRegistryEntry; } export interface BridgeAgentDeregisterEnvelope { channel: typeof BRIDGE_V2_CHANNEL; source: "server"; type: "agent-deregister"; data: { agentId: string; }; } export interface BridgeAgentMessageEnvelope { channel: typeof BRIDGE_V2_CHANNEL; source: "server"; type: "agent-message"; data: AgentTaskEnvelope; } export interface BridgeTokenPushEnvelope { channel: typeof BRIDGE_V2_CHANNEL; source: "server"; type: "token-push"; data: { tokens: { name: string; values: Record; }[]; source: "code" | "manual"; }; } export interface BridgeVariableChangedEnvelope { channel: typeof BRIDGE_V2_CHANNEL; source: "plugin"; type: "variable-changed"; data: { name: string; collection: string; values: Record; updatedAt: number; }; } export interface BridgeComponentChangedEnvelope { channel: typeof BRIDGE_V2_CHANNEL; source: "plugin"; type: "component-changed"; data: { name: string; key: string; figmaNodeId: string; updatedAt: number; }; } export type BridgeEnvelope = BridgeCommandEnvelope | BridgeResponseEnvelope | BridgePingEnvelope | BridgeIdentifyEnvelope | BridgeHelloEnvelope | BridgeEventEnvelope | BridgeChatEnvelope | BridgeErrorEnvelope | BridgeSelectionEnvelope | BridgePageChangedEnvelope | BridgeDocumentChangedEnvelope | BridgeActionResultEnvelope | BridgeSyncResultEnvelope | BridgeConnectionStateEnvelope | BridgeJobStatusEnvelope | BridgeHealResultEnvelope | BridgeAgentStatusEnvelope | BridgeTokenPushEnvelope | BridgeVariableChangedEnvelope | BridgeComponentChangedEnvelope | BridgeAgentRegisterEnvelope | BridgeAgentDeregisterEnvelope | BridgeAgentMessageEnvelope; export declare function isBridgeEnvelope(value: unknown): value is BridgeEnvelope; export declare function createBridgeCommandEnvelope(id: string, method: WidgetCommandName, params?: Record): BridgeCommandEnvelope; export declare function createBridgeResponseEnvelope(id: string, result?: unknown, error?: string): BridgeResponseEnvelope; export declare function normalizeBridgeMessage(value: unknown): BridgeEnvelope | null; export declare function serializeBridgeEnvelope(envelope: BridgeEnvelope, mode?: "legacy" | "v2"): Record;