koishi-plugin-toram
Version:
37 lines (36 loc) • 1.09 kB
TypeScript
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;
}