/**
 * 组装 PisellFloorMapLayout props（含 floor-plan 持久化 onSave）
 */
import React from 'react';
import type { FloorMapDataSources, FloorMapViewConfig, PisellFloorMapLayoutProps } from '@pisell/materials';
import type { TopologyDeviceRow } from '../TopologyDeviceCard';
import type { PisellFloorMapLayoutRef } from '@pisell/materials';
export interface UseTopologyFloorMapMergedParams {
    baseFloorConfig: FloorMapViewConfig;
    dataSources: FloorMapDataSources;
    devices: TopologyDeviceRow[];
    mode: 'read' | 'edit';
    mapEditInternal: boolean;
    setMapEditInternal: React.Dispatch<React.SetStateAction<boolean>>;
    floorMapLayoutRef: React.RefObject<PisellFloorMapLayoutRef | null>;
    /** 低代码 props.mode === 'edit' */
    forceEditFromProps?: boolean;
    resolvedFloorPlanId: number | null;
    floorPlanRemoteId: number | null;
    effectiveFloorPlanCode: string;
    floorPlanCanvasWidth?: number;
    floorPlanCanvasHeight?: number;
    floorPlanName?: Record<string, string>;
    floorPlanSort?: number;
    floorPlanStatus?: number;
    onFloorPlanPersisted?: () => void;
    putFloorPlan?: (id: number, body: Record<string, unknown>) => Promise<unknown>;
    prevOnSave?: (config: FloorMapViewConfig) => void;
    overviewHud?: React.ReactNode | false;
    setRemoteFloorPlanView: React.Dispatch<React.SetStateAction<Partial<FloorMapViewConfig> | null>>;
    className?: string;
    style?: React.CSSProperties;
}
export declare function useTopologyFloorMapMerged(params: UseTopologyFloorMapMergedParams): PisellFloorMapLayoutProps;
