export interface PendingReminder {
    fireAt: Date;
    text: string;
    recurrence?: string;
    routeViaEmail?: boolean;
    emailTarget?: string;
    /** Wall-clock ms when this entry was put — used for TTL eviction. */
    createdAt: number;
}
export declare function setPending(threadKey: string, p: Omit<PendingReminder, 'createdAt'>): void;
export declare function getPending(threadKey: string): PendingReminder | null;
export declare function clearPending(threadKey: string): void;
export declare function _sizeForTest(): number;
export declare function _clearForTest(): void;
/** Inspect an inbound message; if there's a pending detection for this
 *  thread AND the message looks like y/n, return the decision. Otherwise
 *  return null and the caller continues normal processing. */
export declare function tryConsumeReply(threadKey: string, text: string): {
    decision: 'confirm';
    pending: PendingReminder;
} | {
    decision: 'cancel';
    pending: PendingReminder;
} | null;
//# sourceMappingURL=pending-reminder.d.ts.map