import { Module, PisellCore, ModuleOptions } from '../../../types';
import { BaseModule } from '../../../modules/BaseModule';
import type { RouteDefinition } from '../../types';
import { MenuData } from './types';
/**
 * 餐牌模块 - 用于管理餐牌数据和根据餐牌过滤商品
 */
export declare class MenuModule extends BaseModule implements Module {
    protected defaultName: string;
    protected defaultVersion: string;
    private request;
    private store;
    private dbManager;
    private logger;
    constructor(name?: string, version?: string);
    initialize(core: PisellCore, options?: ModuleOptions): Promise<void>;
    /**
     * 加载餐牌列表（从服务器）
     */
    loadMenuList(): Promise<MenuData[]>;
    /**
     * 设置餐牌列表
     */
    setMenuList(menuList: MenuData[]): Promise<void>;
    /**
     * 获取餐牌列表
     */
    getMenuList(): MenuData[];
    /**
     * 根据 form_record_id 数组获取餐牌详情
     * 使用 Map 快速查询，时间复杂度 O(m)，m 为 ids 数量
     */
    getMenuByIds(ids: number[]): MenuData[];
    /**
     * 同步更新餐牌 Map 缓存
     * 将 menuList 中的餐牌同步到 map，以 form_record_id 为 key
     * @private
     */
    private syncMenuMap;
    /**
     * 清空缓存
     */
    clear(): Promise<void>;
    /**
     * 从 IndexDB 加载餐牌数据
     * @private
     */
    private loadMenuFromIndexDB;
    /**
     * 保存餐牌数据到 IndexDB
     * @private
     */
    private saveMenuToIndexDB;
    /**
     * 预加载模块数据（统一接口）
     * 在模块注册后自动调用
     */
    preload(): Promise<void>;
    /**
     * 获取模块的路由定义
     * 返回该模块需要注册的 API 路由
     */
    getRoutes(): RouteDefinition[];
    /**
     * 记录信息日志
     * @param title 日志标题
     * @param metadata 日志元数据
     */
    private logInfo;
    /**
     * 记录警告日志
     * @param title 日志标题
     * @param metadata 日志元数据
     */
    private logWarning;
    /**
     * 记录错误日志
     * @param title 日志标题
     * @param metadata 日志元数据
     */
    private logError;
}
