import type { PhaseNoteRow } from "./phase-journal-types.js";
/** True when `expiresAt` parses to a finite instant strictly before `nowMs`. */
export declare function phaseNoteExpiryElapsed(expiresAt: string | null | undefined, nowMs: number): boolean;
/** Active row still in DB but past `expires_at` — hidden from default “active” surfaces unless opted in. */
export declare function isPassivelyExpiredActiveNote(note: PhaseNoteRow, nowMs: number): boolean;
export declare function filterOutPassiveExpiredActiveNotes(notes: PhaseNoteRow[], includeExpired: boolean, nowMs: number): PhaseNoteRow[];
/** Reject unparseable or already-elapsed expiry timestamps on writes (add / update / run-transition notes). */
export declare function validatePhaseNoteExpiresAtForWrite(expiresAt: string | null | undefined, nowMs: number): {
    ok: true;
} | {
    ok: false;
    message: string;
};
