import type { RefObject } from "react";
import type { Editor } from "@tiptap/react";
import type { CommandItem } from "@/core/extensions/SlashCommands";
import type { EditorLocale } from "@/shared/locales";
import type { CodeBlockLanguageOption, ColorOption } from "@/shared/config";
import type { EditorFloatingOverlayPositionContext } from "@/react/hooks/useEditorFloatingOverlayPosition";
import type { ToolbarItemConfig } from "@/react/editor/customization";
interface CommandMenuState {
    showCommandMenu: boolean;
    commandItems: CommandItem[];
    selectedIndex: number;
    menuPositionContext: EditorFloatingOverlayPositionContext | null;
    setShowCommandMenu: (value: boolean) => void;
}
interface EditorSurfaceProps {
    editor: Editor | null;
    disabled: boolean;
    isNotionLike: boolean;
    isEditorFocused: boolean;
    isEditorFocusStable: boolean;
    showHeadlessToolbar: boolean;
    showCodeBlockLanguageMenu: boolean;
    locale: EditorLocale;
    editorWrapperRef: RefObject<HTMLDivElement | null>;
    portalContainer: HTMLDivElement | null;
    resolvedToolbarItems: ToolbarItemConfig[];
    resolvedCodeBlockLanguages: CodeBlockLanguageOption[];
    textColorOptions: ColorOption[];
    highlightColorOptions: ColorOption[];
    isInsideOverlayContainer?: (target: EventTarget | null) => boolean;
    onOverlayCloseOutside?: () => void;
    resolvedDefaultCodeBlockLanguage: string;
    resolvedPlaceholder: string;
    onCodeBlockFormat?: (payload: {
        code: string;
        language: string;
    }) => string | Promise<string>;
    commandMenu: CommandMenuState;
    commandMenuMaxHeight: number;
    commandMenuMinHeight: number;
    onHandleCommand: (item: CommandItem) => void;
    onOpenMathDialog: (type: "inline" | "block", initial: string, callback: (latex: string) => void) => void;
    onOpenImageDialog: (callback: (src: string, alt?: string) => void) => void;
    onOpenVideoDialog: (callback: (src: string, title?: string) => void) => void;
    onOpenFileUploadDialog?: (callback: (url: string, name: string) => void) => void;
    onMenuRootChange: (node: HTMLDivElement | null) => void;
    onCodeBlockLanguageMenuOpenChecked: (editorFocused: boolean) => void;
}
/** 编辑器主体渲染：工具栏、内容区、菜单与表格操作。 */
export default function EditorSurface({ editor, disabled, isNotionLike, isEditorFocused, isEditorFocusStable, showHeadlessToolbar, showCodeBlockLanguageMenu, locale, editorWrapperRef, portalContainer, resolvedToolbarItems, resolvedCodeBlockLanguages, textColorOptions, highlightColorOptions, isInsideOverlayContainer, onOverlayCloseOutside, resolvedDefaultCodeBlockLanguage, resolvedPlaceholder, onCodeBlockFormat, commandMenu, commandMenuMaxHeight, commandMenuMinHeight, onHandleCommand, onOpenMathDialog, onOpenImageDialog, onOpenVideoDialog, onOpenFileUploadDialog, onMenuRootChange, onCodeBlockLanguageMenuOpenChecked, }: EditorSurfaceProps): import("react/jsx-runtime").JSX.Element;
export {};
