import React from "react"; import { TextEditorInfo, TextOptions } from "./types"; import { EmitEventType } from "../../plugin/types"; export interface TextManagerProps { className?: string; editors?: Map; selectIds?: string[]; box?: { x: number; y: number; w: number; h: number; }; showFloatBtns?: boolean; operationType?: EmitEventType; rightBoundBreak?: boolean; } export interface TextSelectorManagerProps extends TextManagerProps { handleTextEditorPointerDown: (workId: string) => void; handleTextEditorPointerUp: () => void; } export interface TextViewProps { workId: string; data: TextEditorInfo; } export interface TextSelectorViewProps extends TextViewProps { updateOptInfo: (param: { activeTextId: string; update: Partial; syncData?: Pick; }) => void; handlePointerDown: (workId: string) => void; handlePointerUp: () => void; } export interface TextEditorProps extends TextViewProps { showFloatBtns: boolean; rightBoundBreak: boolean; handleKeyUp: (div: HTMLDivElement) => void; handleFocus: (div: HTMLDivElement) => void; runAnimation: (callback?: () => void) => void; updateSize: (updateId: string, boxSize: [number, number]) => void; } /** * 文本编辑器类型 * hover: 当前文本被当前用户获焦中 * editing: 当前文本编辑中(被其他用户编辑中) * active: 当前文本可编辑状态被激活(暂无用户编辑) * none: 无状态 */ export type TextEditorType = "hover" | "editing" | "active" | "none"; export declare const TextSelectorView: (props: TextSelectorViewProps) => React.JSX.Element; export declare const TextViewInSelector: (props: TextSelectorManagerProps) => React.JSX.Element; export declare const TextEditorContainer: (props: TextManagerProps) => React.JSX.Element;