import type { DelayedSignal, DelayedSignalCancelRepeatKeyInput, DelayedSignalScheduleInput } from "@/types"; import type { DelayedSignalsRepository } from "../../storage/delayedSignalsRepository.js"; import type { ConfigModule } from "../config/configModule.js"; import type { EngineEventBus } from "../ipc/events.js"; import type { Signals } from "./signals.js"; type DelayedSignalsRepositoryOptions = { delayedSignals: Pick; }; type DelayedSignalsLegacyOptions = { config: ConfigModule; }; export type DelayedSignalsOptions = { config: ConfigModule; eventBus: EngineEventBus; signals: Pick; failureRetryMs?: number; maxTimerMs?: number; } & (DelayedSignalsRepositoryOptions | DelayedSignalsLegacyOptions); /** * Manages persistent delayed signal scheduling by wall-time (unix milliseconds). * Expects: delayed signals are persisted in SQLite. */ export declare class DelayedSignals { private readonly config; private readonly eventBus; private readonly signals; private readonly delayedSignals; private readonly failureRetryMs; private readonly maxTimerMs; private readonly lock; private readonly events; private loaded; private timer; private started; private stopped; private running; constructor(options: DelayedSignalsOptions); ensureDir(): Promise; start(): Promise; stop(): void; /** * Returns all scheduled delayed signals sorted by wall-time. */ list(): DelayedSignal[]; /** * Schedules a delayed signal delivery and replaces existing (type + repeatKey) entry. * Expects: `deliverAt` is a unix timestamp in milliseconds. */ schedule(input: DelayedSignalScheduleInput): Promise; /** * Removes delayed signals for a specific (type + repeatKey) pair. * Returns the number of removed items. */ cancelByRepeatKey(input: DelayedSignalCancelRepeatKeyInput): Promise; private scheduleNext; private tick; private deliverDue; private loadUnlocked; } export {}; //# sourceMappingURL=delayedSignals.d.ts.map