import { z } from 'zod'; import { Reminder } from '../../../shared/reminder.js'; declare const ReminderFileSchema: z.ZodRecord; createdAt: z.ZodString; firedCount: z.ZodNumber; instructions: z.ZodString; lastFiredAt: z.ZodOptional; nextDueAt: z.ZodOptional; preflight: z.ZodOptional; }, z.core.$strip>>; preflightError: z.ZodOptional; since: z.ZodString; }, z.core.$strip>>; preflightLastResult: z.ZodOptional; scheduledAt: z.ZodString; signal: z.ZodOptional; startedAt: z.ZodString; status: z.ZodEnum<{ succeeded: "succeeded"; declined: "declined"; errored: "errored"; }>; stderr: z.ZodOptional; stderrTruncated: z.ZodOptional; stdout: z.ZodOptional; stdoutTruncated: z.ZodOptional; timedOut: z.ZodOptional; }, z.core.$strip>>; provenance: z.ZodOptional; }, z.core.$strip>>; reminderId: z.ZodString; schedule: z.ZodDiscriminatedUnion<[z.ZodObject<{ kind: z.ZodLiteral<"once">; }, z.core.$strip>, z.ZodObject<{ phaseAnchorAt: z.ZodOptional; intervalMs: z.ZodNumber; kind: z.ZodLiteral<"interval">; repeatRule: z.ZodString; }, z.core.$strip>, z.ZodObject<{ kind: z.ZodLiteral<"daily">; repeatRule: z.ZodString; time: z.ZodString; timezone: z.ZodString; }, z.core.$strip>, z.ZodObject<{ kind: z.ZodLiteral<"weekly">; repeatRule: z.ZodString; time: z.ZodString; timezone: z.ZodString; weekdays: z.ZodArray; }, z.core.$strip>, z.ZodObject<{ intervalMs: z.ZodNumber; kind: z.ZodLiteral<"windowed_interval">; repeatRule: z.ZodString; timezone: z.ZodString; weekdays: z.ZodArray; windowEnd: z.ZodString; windowRule: z.ZodString; windowStart: z.ZodString; }, z.core.$strip>], "kind">; status: z.ZodEnum<{ cancelled: "cancelled"; scheduled: "scheduled"; fired: "fired"; }>; title: z.ZodString; updatedAt: z.ZodString; }, z.core.$strip>>; export type ReminderFile = z.infer; export declare class ReminderStore { private readonly file; constructor(agentId: string); list(): Promise; find(reminderId: string): Promise; create(reminder: Reminder): Promise; update(reminder: Reminder): Promise; /** * Atomically read-modify-write one reminder under the JsonStore lock. * Return `null` from `mutate` to no-op (stale/CAS miss). Mutate must not * rely on mutating `current` in place when returning null. */ updateMatching(reminderId: string, mutate: (current: Reminder) => Reminder | null): Promise<{ applied: boolean; reminder: Reminder | undefined; }>; pruneSettledBefore(cutoffIso: string): Promise; } export {}; //# sourceMappingURL=reminder.store.d.ts.map