import { FloorMapSceneElement, FloorMapViewConfig } from "../types.js";
import { PutShopFloorPlanBody, ShopFloorPlanDetail } from "./shopFloorPlanTypes.js";

//#region src/components/pisellFloorMapLayout/shopFloorPlan/shopFloorPlanPure.d.ts
declare function pickFloorPlanDetail(res: unknown): ShopFloorPlanDetail | null;
declare function isShopFloorPlanNotFoundResponse(res: unknown): boolean;
declare function isHttpNotFoundError(err: unknown): boolean;
declare function isFloorPlanDuplicateCodeError(err: unknown): boolean;
declare function parseLayoutFieldToViewConfigPatch(raw: unknown): Partial<FloorMapViewConfig> | null;
declare function floorMapSavedConfigToRemotePatch(config: FloorMapViewConfig): Partial<FloorMapViewConfig>;
declare function mergeFloorPlanViewRemote(base: FloorMapViewConfig, remote: Partial<FloorMapViewConfig>): FloorMapViewConfig;
declare function viewConfigToLayoutPayload(config: FloorMapViewConfig): Record<string, unknown>;
declare function inferCanvasSizeFromScene(sceneElements: FloorMapSceneElement[], fallbackWidth?: number, fallbackHeight?: number, padding?: number): {
  w: number;
  h: number;
};
declare function buildFloorPlanPutBody(config: FloorMapViewConfig, options: {
  canvasWidth?: number;
  canvasHeight?: number;
  code?: string;
  name?: Record<string, string>;
  sort?: number;
  status?: number;
}): PutShopFloorPlanBody;
//#endregion
export { buildFloorPlanPutBody, floorMapSavedConfigToRemotePatch, inferCanvasSizeFromScene, isFloorPlanDuplicateCodeError, isHttpNotFoundError, isShopFloorPlanNotFoundResponse, mergeFloorPlanViewRemote, parseLayoutFieldToViewConfigPatch, pickFloorPlanDetail, viewConfigToLayoutPayload };