import { type PostShopFloorPlanBody, type PutShopFloorPlanBody, type ShopFloorPlanByCodeRequestOptions, type ShopFloorPlanDetail, type ShopFloorPlanLayoutItem } from '@pisell/materials';
/** 兼容旧代码：与 materials {@link SHOP_FLOOR_PLAN_DUPLICATE_CODE} 同值 */
export declare const FLOOR_PLAN_DUPLICATE_CODE = "floorPlanDuplicateCode";
export declare const PISELL_RESERVATION_FLOOR_PLAN_CODE = "pisell_reservation";
export declare const RESERVATION_DEFAULT_FLOOR_PLAN_ID = 1;
export type { PostShopFloorPlanBody, PutShopFloorPlanBody, ShopFloorPlanByCodeRequestOptions, ShopFloorPlanDetail, ShopFloorPlanLayoutItem, };
export { buildFloorPlanPutBody, floorMapSavedConfigToRemotePatch, inferCanvasSizeFromScene, mergeFloorPlanViewRemote, parseLayoutFieldToViewConfigPatch, pickFloorPlanDetail, sceneElementsToShopLayout, viewConfigToLayoutPayload, isShopFloorPlanNotFoundResponse, isHttpNotFoundError, } from '@pisell/materials';
export declare function isFloorPlanDuplicateCodeError(err: unknown): boolean;
export declare const getShopFloorPlanByCode: (code: string, subscribe?: any) => Promise<any>;
export declare const postShopFloorPlan: (body: PostShopFloorPlanBody) => Promise<any>;
export declare const putShopFloorPlan: (id: number, body: PutShopFloorPlanBody) => Promise<unknown>;
export declare const unsubscribeShopFloorPlanCodeQuery: (subscriberId: string) => Promise<void>;
/**
 * 404 时 POST 创建使用预约默认 JSON（`api/create-floor-map.json`）。
 */
export declare function ensureShopFloorPlanByCode(code: string, subscribe?: ShopFloorPlanByCodeRequestOptions): Promise<ShopFloorPlanDetail | null>;
export declare function buildDefaultReservationFloorPlanPostBody(code: string): PostShopFloorPlanBody;
/**
 * 将扁平 layout 转为 sceneElements；圆/方桌 elementKind 使用预约默认。
 */
export declare function shopLayoutToSceneElements(layout: ShopFloorPlanLayoutItem[], options: {
    canvasId: string;
    dataSourceKey: string;
}): import("@pisell/materials").FloorMapSceneElement[];
export declare function saveViewConfigToShopFloorPlan(id: number, config: import('@pisell/materials').FloorMapViewConfig, options: {
    canvasWidth?: number;
    canvasHeight?: number;
    code?: string;
    name?: Record<string, string>;
    sort?: number;
    status?: number;
    putFloorPlan?: (planId: number, body: PutShopFloorPlanBody) => Promise<unknown>;
}): Promise<unknown>;
export declare function toastFloorPlanSaveError(err: unknown): void;
export declare function toastFloorPlanLoadError(err: unknown): void;
