/**
 * FloorMapEditTopBar - 编辑态顶栏
 * - `mode="compact"`：画布 Tab + 可选 `canvasTabsBarTrailing`（全屏入口在左下 Dock）
 * - `mode="full"`：画布 Tab + `canvasTabsBarTrailing` + 保存（仅非浏览器全屏时）+ 扩展操作
 */
import React from 'react';
import type { CanvasTabsProps } from './CanvasTabs';
import type { FloorMapControlsConfig, FloorMapViewConfig } from '../types';
import './FloorMapEditTopBar.less';
export declare type FloorMapEditTopBarMode = 'full' | 'compact';
export interface FloorMapEditTopBarProps {
    /** full：全屏时的完整顶栏；compact：非全屏时 Tab + 扩展区 */
    mode?: FloorMapEditTopBarMode;
    config: FloorMapViewConfig;
    canvases: CanvasTabsProps['canvases'];
    currentCanvasId: CanvasTabsProps['currentCanvasId'];
    onTabChange: CanvasTabsProps['onTabChange'];
    canEditTabs?: CanvasTabsProps['canEdit'];
    onAddCanvas?: CanvasTabsProps['onAddCanvas'];
    onRemoveCanvas?: CanvasTabsProps['onRemoveCanvas'];
    onRenameCanvas?: CanvasTabsProps['onRenameCanvas'];
    onSave?: () => void;
    saving?: boolean;
    saveError?: Error | string;
    layoutDirty?: boolean;
    /** full 模式：浏览器全屏时为 true，顶栏不展示保存（改由侧栏） */
    isFullscreen?: boolean;
    controls?: FloorMapControlsConfig;
    /** 顶栏右侧扩展（如「区域定位」等），仅 full 模式 */
    extraActions?: React.ReactNode;
    /** 画布 Tab 同排最右侧业务区 */
    canvasTabsBarTrailing?: React.ReactNode;
    /** 启用画布仅 1 个时隐藏 Tab 行，仅保留右侧操作区（全屏顶栏保存等） */
    hideCanvasTabs?: boolean;
    /** 撤销当前编辑步骤（不传则不显示按钮） */
    onUndo?: () => void;
    /** 重做最近一次撤销（不传则不显示按钮） */
    onRedo?: () => void;
    /** 是否还有可撤销步骤 */
    canUndo?: boolean;
    /** 是否还有可重做步骤 */
    canRedo?: boolean;
    /**
     * 退出编辑模式回调（不保存）。
     * 传入后顶栏右侧会渲染「取消编辑」+「完成」两个按钮，替代原独立「保存」按钮：
     * - 取消编辑 → `onCancelEdit?.() ?? onExitEdit()`
     * - 完成 → `onSave?.()` + `onExitEdit()`
     * 不传则维持旧版「保存」按钮（保存但不退出）。
     */
    onExitEdit?: () => void;
    /**
     * 「取消编辑」专用回调（可选）。传入时取消按钮优先调它，业务层可以在这里
     * 完成「丢弃草稿 + 退出编辑」组合，从而保证回到阅读态不会看到未保存的脏数据。
     * 不传时取消按钮回退到 `onExitEdit`。完成按钮链路不受此 prop 影响。
     */
    onCancelEdit?: () => void;
    className?: string;
    /**
     * 手机布局：顶栏拆两行（切换画布 / 操作区），并配合 Less 收紧 padding。
     */
    phoneLayout?: boolean;
}
export declare function FloorMapEditTopBar(props: FloorMapEditTopBarProps): JSX.Element | null;
export default FloorMapEditTopBar;
