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; }