import React from "react";
import { TextEditorInfo, TextOptions } from "./types";
import { EmitEventType } from "../../plugin/types";
export interface TextManagerProps {
    className?: string;
    editors?: Map<string, TextEditorInfo>;
    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<TextOptions>;
        syncData?: Pick<TextEditorInfo, 'canSync' | 'canWorker'>;
    }) => 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;
