import { Context } from "koishi";
export interface BotTodoItem {
    id: string;
    ts: number;
    type: string;
    payload?: any;
}
/**
 * BotTodoMgr
 * - 记录“在指定时间戳要执行的任务”
 * - 参考其他 Mgr 的使用方式：单例、set/load/save、增删查
 */
export declare class BotTodoMgr {
    private static instance;
    static Inst(): BotTodoMgr;
    private ctx;
    private _todos;
    private _handlers;
    private _timer;
    private _nextTs;
    private _started;
    setTodos(ctx: Context): Promise<void>;
    private saveTodos;
    addTodo(ts: number, type: string, payload?: any): Promise<string>;
    getTodosAt(ts: number): BotTodoItem[];
    removeTodo(ts: number, id: string): Promise<void>;
    removeTodosAt(ts: number): Promise<void>;
    popDueTodos(now: number): Promise<BotTodoItem[]>;
    getNextTimestamp(): number | undefined;
    on(type: string, handler: (item: BotTodoItem) => any | Promise<any>): void;
    start(): void;
    stop(): void;
    scheduleNext(): Promise<void>;
    private internalPlanNext;
    private executeBatch;
}
