import { Module, PisellCore, ModuleOptions } from '../../../types';
import { BaseModule } from '../../../modules/BaseModule';
import { ScheduleModuleAPI, ScheduleItem } from '../../../modules/Schedule/types';
/**
 * Schedule 模块（扩展版本）
 * 在原有基础上添加了 getAvailableScheduleIds 方法
 */
export declare class ScheduleModuleEx extends BaseModule implements Module, ScheduleModuleAPI {
    protected defaultName: string;
    protected defaultVersion: string;
    private request;
    private store;
    private dbManager;
    private logger;
    constructor(name?: string, version?: string);
    /**
     * 记录信息日志
     * @param title 日志标题
     * @param metadata 日志元数据
     */
    private logInfo;
    /**
     * 记录警告日志
     * @param title 日志标题
     * @param metadata 日志元数据
     */
    private logWarning;
    /**
     * 记录错误日志
     * @param title 日志标题
     * @param metadata 日志元数据
     */
    private logError;
    initialize(core: PisellCore, options: ModuleOptions): Promise<void>;
    /**
     * 加载当前店铺下所有 schedule（从服务器）
     */
    loadAllSchedule(): Promise<any>;
    setScheduleList(list: ScheduleItem[]): void;
    /**
     * 获取所有日程列表
     */
    getScheduleList(): ScheduleItem[];
    /**
     * 根据 schedule IDs 获取日程数据
     * 使用 Map 快速查询，时间复杂度 O(m)，m 为 ids 数量
     */
    getScheduleByIds(ids: number[]): ScheduleItem[];
    /**
     * 同步更新日程 Map 缓存
     * 将 scheduleList 中的日程同步到 map，以 id 为 key
     * @private
     */
    private syncScheduleMap;
    /**
     * 清除缓存
     */
    clear(): Promise<void>;
    /**
     * 判断日期是否在日程范围内
     * @param date 日期
     * @param scheduleList 日程列表
     * @returns 是否在日程范围内
     */
    getDateIsInSchedule(date: string, scheduleList: (ScheduleItem | number)[]): boolean;
    /**
     * 从 IndexDB 加载日程数据
     * @private
     */
    private loadScheduleFromIndexDB;
    /**
     * 保存日程数据到 IndexDB
     * @private
     */
    private saveScheduleToIndexDB;
    /**
     * 预加载模块数据（统一接口）
     * 在模块注册后自动调用
     */
    preload(): Promise<void>;
}
