import type { SubscriberRuntimeDescriptor } from "@voyant-travel/core"; import type { PostgresJsDatabase } from "drizzle-orm/postgres-js"; import type { NotificationService } from "./service.js"; import type { BookingDocumentAttachmentResolver } from "./service-booking-documents.js"; import { bookingIsPaidInFullForNotification, bookingNotificationsSuppressedForNotification, dispatchReminderEventRules } from "./service-reminders.js"; export declare const NOTIFICATIONS_SUBSCRIBER_RUNTIME_KEY = "notifications.subscriberRuntime"; export declare const NOTIFICATIONS_BOOKING_CONFIRMED_REMINDER_SUBSCRIBER_ID = "@voyant-travel/notifications#subscriber.reminder-booking-confirmed"; export declare const NOTIFICATIONS_PAYMENT_COMPLETED_REMINDER_SUBSCRIBER_ID = "@voyant-travel/notifications#subscriber.reminder-payment-completed"; export declare const NOTIFICATIONS_BOOKING_CANCELLED_REMINDER_SUBSCRIBER_ID = "@voyant-travel/notifications#subscriber.reminder-booking-cancelled"; export declare const NOTIFICATIONS_BOOKING_EXPIRED_REMINDER_SUBSCRIBER_ID = "@voyant-travel/notifications#subscriber.reminder-booking-expired"; /** Deployment-owned services required by package-owned Notifications subscribers. */ export interface NotificationsSubscriberRuntime { resolveDb(bindings: unknown): PostgresJsDatabase; dispatcher: NotificationService; documentAttachmentResolver?: BookingDocumentAttachmentResolver; } export interface NotificationsSubscriberDependencies { dispatchReminderRules?: typeof dispatchReminderEventRules; isPaidInFull?: typeof bookingIsPaidInFullForNotification; isNotificationsSuppressed?: typeof bookingNotificationsSuppressedForNotification; logger?: Pick; } export declare function createBookingConfirmedReminderSubscriberRuntime(dependencies?: NotificationsSubscriberDependencies): SubscriberRuntimeDescriptor; export declare function createPaymentCompletedReminderSubscriberRuntime(dependencies?: NotificationsSubscriberDependencies): SubscriberRuntimeDescriptor; export declare function createBookingCancelledReminderSubscriberRuntime(dependencies?: NotificationsSubscriberDependencies): SubscriberRuntimeDescriptor; export declare function createBookingExpiredReminderSubscriberRuntime(dependencies?: NotificationsSubscriberDependencies): SubscriberRuntimeDescriptor; export declare function skipQueuedBookingPaymentReminders(db: PostgresJsDatabase, bookingId: string, status: "cancelled" | "expired"): Promise; export declare const notificationsBookingConfirmedReminderSubscriber: SubscriberRuntimeDescriptor; export declare const notificationsPaymentCompletedReminderSubscriber: SubscriberRuntimeDescriptor; export declare const notificationsBookingCancelledReminderSubscriber: SubscriberRuntimeDescriptor; export declare const notificationsBookingExpiredReminderSubscriber: SubscriberRuntimeDescriptor; export declare const notificationsReminderSubscriberRuntimeDescriptors: readonly [SubscriberRuntimeDescriptor, SubscriberRuntimeDescriptor, SubscriberRuntimeDescriptor, SubscriberRuntimeDescriptor];