import type { PostgresJsDatabase } from "drizzle-orm/postgres-js"; import type { NotificationPortalContextOptions } from "./service-portal-context.js"; import { type ReminderDeliveryEnqueuer } from "./service-reminder-run-state.js"; import type { NotificationService, RunDueRemindersInput } from "./service-shared.js"; export type NotificationReminderDeliveryOptions = NotificationPortalContextOptions; export { bookingIsPaidInFullForNotification, bookingNotificationsSuppressedForNotification, dispatchReminderEventRules, } from "./service-reminder-events.js"; export declare function queueDueReminders(db: PostgresJsDatabase, input: RunDueRemindersInput | undefined, enqueueDelivery: ReminderDeliveryEnqueuer): Promise; export declare function deliverReminderRun(db: PostgresJsDatabase, dispatcher: NotificationService, input: { reminderRunId: string; }, options?: NotificationReminderDeliveryOptions): Promise<{ bookingId: string | null; recipient: string | null; id: string; status: "sent" | "failed" | "processing" | "queued" | "skipped"; metadata: Record | null; createdAt: Date; updatedAt: Date; targetType: "booking_payment_schedule" | "invoice" | "booking_confirmed" | "payment_complete" | "booking_cancelled_non_payment"; targetId: string; personId: string | null; organizationId: string | null; paymentSessionId: string | null; errorMessage: string | null; scheduledFor: Date; reminderRuleId: string; dedupeKey: string; notificationDeliveryId: string | null; processedAt: Date; } | null>; export declare function runDueReminders(db: PostgresJsDatabase, dispatcher: NotificationService, input?: RunDueRemindersInput, options?: NotificationReminderDeliveryOptions): Promise;