import type { CronTask, NewCronTask, ListFilter, ArmLoopInput, ArmLoopResult, LoopEndedReason, StartOpts, Interface, CronLogger } from "./types.js";
export declare class CronScheduler implements Interface {
private rt;
private readonly sessionStore;
private readonly loopState;
private readonly logger;
private readonly defaultOnFire;
/**
* @param opts.onFire 必需:任务到点时调用。host 的 cron-bridge 在此注入 prompt 到 session runLoop;
* 独立项目(如 PM-Agent)在此调 agent.run。start() 时若 StartOpts.onFire 未传则用此默认值。
* @param opts.logger 默认 SILENT_LOGGER。host 传入适配 @/util/log 的实现。
* @param opts.dir 持久化目录,默认 process.cwd()。durable 任务落
/.sirius/scheduled_tasks.json。
*/
constructor(opts: {
onFire: (task: CronTask) => void;
logger?: CronLogger;
});
/** 统一解析 fire 回调:start 时 opts.onFire 优先,否则用构造时的 defaultOnFire。 */
private fire;
private computeNextFireFor;
private allTasks;
private tick;
start: (opts: StartOpts) => Promise;
stop: () => Promise;
add: (input: NewCronTask) => Promise;
private findById;
private removeBy;
remove: (id: string, opts?: {
session_id?: string;
}) => Promise;
rename: (id: string, prompt: string, opts?: {
session_id?: string;
}) => Promise;
list: (filter: ListFilter) => Promise;
get: (id: string, opts?: {
session_id?: string;
}) => Promise;
armLoop: (input: ArmLoopInput) => Promise;
resetKeepaliveStrikes: (prompt: string) => Promise;
incrementKeepaliveStrikes: (prompt: string) => Promise;
endLoop: (prompt: string, reason: LoopEndedReason, opts?: {
via_keepalive?: boolean;
}) => Promise;
nextFireTime: () => Promise;
tickOnce: () => Promise;
}