import type { MouseEvent, MutableRefObject } from 'react'; import type { DataSourceFormColumn, FloorMapCanvasNameI18n, FloorMapDataSourceRecordFormContent, FloorMapDataSources, FloorMapItemBase, FloorMapMergedItem, FloorMapPlaceMode, FloorMapSceneElement, FloorMapViewConfig } from '../types'; export interface UseFloorMapEditStateParams { floorMapConfigProp: FloorMapViewConfig | undefined; isFloorMapView: boolean; itemsProp: T[]; cellSizeProp?: number; dataSources: FloorMapDataSources | undefined; onSave: ((config: FloorMapViewConfig) => void) | undefined; onDataSourceRecordSave: ((dataSourceKey: string, id: string, newData: Record) => void) | undefined; dataSourceFormColumns: Record | undefined; dataSourceRecordForm: Record | undefined; dataSourceLabels?: Record; layoutPrefix: string; contentOffsetRef: MutableRefObject<{ x: number; y: number; }>; showDataSourceRecordFormBlock?: boolean; } export declare function useFloorMapEditState(params: UseFloorMapEditStateParams): { config: FloorMapViewConfig | null; currentCanvasId: string | null; setCurrentCanvasId: import("react").Dispatch>; selectedId: string | null; setSelectedId: import("react").Dispatch>; placeMode: FloorMapPlaceMode; setPlaceMode: import("react").Dispatch>; mergedItems: FloorMapMergedItem[]; items: T[]; saving: boolean; savingRecord: boolean; handleAddCanvas: () => void; handleRemoveCanvas: (canvasId: string) => void; handleRenameCanvas: (canvasId: string, name: string | FloorMapCanvasNameI18n) => void; handleUpdateItem: (itemId: string, patch: Partial<{ x: number; y: number; width: number; height: number; }>) => void; handleCanvasPlaceClick: (e: MouseEvent) => void; handleSave: () => void; discardDraft: () => void; placeSceneElementFromPaletteDrop: (contentX: number, contentY: number, scene: Extract) => void; editPanelParams: { itemId: string; sceneElement: FloorMapSceneElement; onUpdate: (patch: Partial) => void; onSaveRecord: ((dataSourceKey: string, id: string, newData: Record) => void) | undefined; onClose: () => void; onDelete: (() => void) | undefined; recordFormColumns: Record | undefined; dataSourceRecordForm: Record | undefined; dataSourceLabels: Record | undefined; layoutDraftDirty: boolean; showDataSourceRecordFormBlock: boolean | undefined; } | null; placeOverlayClass: string; isLayoutDirty: boolean; toggleDraftCanvasShowGrid: () => void; toggleSelectedLayoutLock: () => void; duplicateSelectedElement: () => void; deleteSelectedElement: () => void; undoDraft: () => void; redoDraft: () => void; canUndo: boolean; canRedo: boolean; };