/** * RICH TEXT EDITOR COMPONENT * React wrapper around ContentEditable with formatting toolbar * TASKSET 3: Integrated with Relay WebSocket for real-time collaboration * TASKSET 8.1: Variable interpolation support for unified documents */ import type { CollaborationCursor } from '@materi.ai/frame/core/editors'; import { type VariableResolver, type SharedVariable } from '@materi.ai/frame/core/variables'; import React from 'react'; export interface RichTextEditorProps { documentId: string; userId: string; content: string; onChange: (content: string) => void; readOnly?: boolean; onOperationSend?: (ops: any[]) => void; collaborators?: CollaborationCursor[]; /** Document title for sharing dialog */ documentTitle?: string; /** Whether the current user can manage sharing */ canShare?: boolean; /** User display name for presence */ userName?: string; /** User cursor color */ userColor?: string; /** WebSocket URL for collaboration (optional) */ wsUrl?: string; /** Enable real-time collaboration (default: true) */ enableCollaboration?: boolean; /** Base URL for the API (e.g., "https://api.example.com/api/v1") */ apiBaseUrl?: string; /** JWT access token for authentication */ authToken?: string; /** Shared variables for interpolation */ variables?: SharedVariable[]; /** Variable resolver function (alternative to variables array) */ variableResolver?: VariableResolver; /** Enable variable preview mode (shows interpolated values) */ showVariablePreview?: boolean; /** Callback when variable reference is clicked */ onVariableClick?: (variableName: string) => void; /** Hide connection status in toolbar (shown externally) */ hideConnectionStatus?: boolean; /** Hide collaborators in toolbar (shown externally) */ hideCollaborators?: boolean; /** Hide share button in toolbar (shown externally) */ hideShareButton?: boolean; } export declare const RichTextEditor: React.FC; export default RichTextEditor; //# sourceMappingURL=RichTextEditor.d.ts.map