import type { VenueBookingProps, VenueBookingEntryContext, VenueBookingViewModel, VenueTimeSlotGrid, VenueDateSummaryItem } from './types';
/** 步骤定义常量 */
export declare const VENUE_BOOKING_STEPS: readonly ["select-venue", "addons", "checkout"];
/** 写死的场地商品 ID（后续改为从配置读取） */
export declare const VENUE_PRODUCT_IDS: number[];
/**
 * 获取 PisellOS venueBooking 业务模块
 * 使用 useRef 稳定模块引用，防止 getModule 返回值每次渲染变化时触发 bootstrap useEffect 重跑
 */
export declare function useVenueBookingModule(): any;
/** 统一获取货币前缀（优先引擎配置，兜底 '$'） */
export declare function useVenueBookingSymbol(): string;
/** 获取引擎上下文中的 utils 工具集（action / token 等） */
export declare function contextUtils(): any;
/** 从 engine props 提取标准化的入口上下文 */
export declare function normalizeEntryContext(props: VenueBookingProps): VenueBookingEntryContext;
/**
 * 安全调用模块异步方法
 * 检查模块和方法是否存在，不存在时抛出友好错误
 */
export declare function safeRunModuleAction(module: any, actionName: string, ...args: any[]): Promise<any>;
/** 加载场地商品（初始化时调用一次） */
export declare function loadVenueProducts(module: any, productIds: number[]): Promise<any>;
/** 拉取资源可用性数据（按日期范围，翻周时调用） */
export declare function fetchResourceAvailability(module: any, startDate: string, endDate: string): Promise<any>;
/** 获取日期概览（纯计算不发请求，fetchResourceAvailability 后调用） */
export declare function getDateRangeSummary(module: any, startDate: string, endDate: string): VenueDateSummaryItem[];
/** 获取某天的时段网格（纯计算不发请求，切换日期时调用） */
export declare function getTimeSlotGrid(module: any, date: string): VenueTimeSlotGrid | null;
/** 切换选中/取消一个时段（同一资源下多商品场景必须携带 productId） */
export declare function toggleSlotAction(module: any, params: {
    resourceId: number;
    productId: number;
    startTime: string;
    endTime: string;
    price: string;
}): Promise<any>;
/**
 * 查询某个时段是否已被选中
 * 不传 productId 时：该资源下任一商品选中即 true；传了则精确匹配
 */
export declare function isSlotSelected(module: any, resourceId: number, startTime: string, productId?: number): boolean;
/**
 * 询问 OS：该 (resourceId, productId, startTime) 格子是否因其它已选项而应禁用
 * 覆盖：同场地多商品互斥、组合资源 ↔ 子资源联动
 */
export declare function isSlotDisabledBySelection(module: any, params: {
    resourceId: number;
    productId: number;
    startTime: string;
}): boolean;
/** 获取全部已选时段（按资源分组） */
export declare function getAllSelectedSlots(module: any): any[];
/** 查询 otherParams */
export declare function getOtherParams(module: any): any;
/**
 * 获取所有“已选时段”对应的日期 key（YYYY-MM-DD）
 * 兼容 venueBooking 模块返回 Map 或数组结构
 */
export declare function getSelectedDateKeySet(module: any): Set<string>;
/**
 * 从 OS 模块快照构建 ViewModel（购物车部分）
 * 购物车数据使用 toShoppingCartProducts 转换为 ShoppingCart 组件所需格式
 */
export declare function createVenueBookingViewModel(module: any): Partial<VenueBookingViewModel>;
/** 登录状态 hook（检查 token + 弹出登录弹窗） */
export declare function useVenueBookingLogin(): {
    isLogin: boolean;
    openLoginModal: (params: {
        callback: any;
    }) => void;
};
