import React from 'react';
import type { FloorMapDataSources, FloorMapMergedItem, FloorMapViewportOverlayRenderArgs } from '@pisell/materials';
/** floorDayBooking 请求 hook 返回值（仅抽屉打开快照用 searchParams） */
declare type FloorDayBookingDataLike = {
    searchParams: unknown;
    data: unknown;
    loading: boolean;
};
export interface UseReservationHudDrawerParams {
    floorMapHudTableDrawer: boolean;
    dataSources: FloorMapDataSources;
    gridDataSourceKey: string;
    isInternalListData: boolean;
    floorDayBookingData: FloorDayBookingDataLike;
    searchParamsProp: Record<string, unknown> | undefined;
    dataProp: unknown[] | null | undefined;
    loadingProp: boolean | undefined;
    bookingChildProps: Record<string, unknown>;
    resourceBoardData: {
        data: unknown;
    };
    /** 手机布局：画布 HUD 统计横向排列 */
    phoneLayout?: boolean;
    /** 手机 + 编辑态：隐藏视口左上角/锚点处的桌位统计悬浮（仍同步 items 供场控逻辑） */
    hideViewportHudStats?: boolean;
}
/**
 * 平面图 HUD 抽屉：视口 items 同步、本地列表分页与筛参、展开/收起、ESC、内嵌 RecordBoard toolbar 覆写。
 */
export declare function useReservationHudDrawer({ floorMapHudTableDrawer, dataSources, gridDataSourceKey, isInternalListData, floorDayBookingData, searchParamsProp, dataProp, loadingProp, bookingChildProps, resourceBoardData, phoneLayout, hideViewportHudStats, }: UseReservationHudDrawerParams): {
    hudItemsRef: React.MutableRefObject<FloorMapMergedItem[]>;
    hudMapItems: FloorMapMergedItem[];
    setHudMapItems: React.Dispatch<React.SetStateAction<FloorMapMergedItem[]>>;
    hudDrawerRef: React.MutableRefObject<HTMLDivElement | null>;
    hudDrawerOpen: boolean;
    showVenueHudDock: boolean;
    handleOpenHudTableDrawer: () => void;
    closeHudTableDrawer: () => void;
    hudDrawerResourceRootBuckets: import("../components/BucketButtonGroup").BucketDef[];
    hudDrawerPagedRows: Record<string, unknown>[];
    hudDrawerFilteredTotal: number;
    hudDrawerLoading: boolean;
    hudDrawerBookingPagination: {
        pageNumber: number;
        pageSize: number;
    };
    hudDrawerOnSearch: (params: Record<string, unknown>) => void;
    hudDrawerOnReset: () => void;
    hudDrawerOnPageChange: (pageNumber: number, pageSize: number) => void;
    hudDrawerToolBar: {
        [x: string]: unknown;
    };
    hudDrawerLocalSearchParams: Record<string, unknown>;
    handleHudDrawerFormRecordIdsChange: (formRecordIds: string[]) => void;
    reservationFloorMapViewportOverlay: (args: FloorMapViewportOverlayRenderArgs) => JSX.Element | null;
    renderItemByKind: {
        floorMapImage: (item: import("@pisell/materials").FloorMapItemBase, _index: number, _options?: import("@pisell/materials").FloorMapRenderOptions | undefined) => React.ReactNode;
        floorMapBuiltinShape: (item: import("@pisell/materials").FloorMapItemBase, _index: number, _options?: import("@pisell/materials").FloorMapRenderOptions | undefined) => React.ReactNode;
        reservationBoundTable: (item: import("@pisell/materials").FloorMapItemBase, _index: number, options?: import("@pisell/materials").FloorMapRenderOptions | undefined) => React.ReactNode;
        reservationBoundRoundTable: (item: import("@pisell/materials").FloorMapItemBase, _index: number, options?: import("@pisell/materials").FloorMapRenderOptions | undefined) => React.ReactNode;
        reservationTable: (item: import("@pisell/materials").FloorMapItemBase, _index: number, options?: import("@pisell/materials").FloorMapRenderOptions | undefined) => React.ReactNode;
        reservationPartyBench: (item: import("@pisell/materials").FloorMapItemBase, _index: number, options?: import("@pisell/materials").FloorMapRenderOptions | undefined) => React.ReactNode;
        reservationBarSeat: (item: import("@pisell/materials").FloorMapItemBase, _index: number, options?: import("@pisell/materials").FloorMapRenderOptions | undefined) => React.ReactNode;
    };
};
export {};
