import type { PostgresJsDatabase } from "drizzle-orm/postgres-js"; import type { CreateNotificationReminderRuleInput, CreateNotificationTemplateInput, NotificationReminderRuleListQuery, NotificationReminderRunListQuery, NotificationTemplateListQuery, UpdateNotificationReminderRuleInput, UpdateNotificationTemplateInput } from "./service-shared.js"; export declare function listTemplates(db: PostgresJsDatabase, query: NotificationTemplateListQuery): Promise | null; createdAt: Date; updatedAt: Date; }>>; export declare function getTemplateById(db: PostgresJsDatabase, id: string): Promise<{ id: string; slug: string; name: string; channel: "email" | "sms"; provider: string | null; status: "draft" | "active" | "archived"; subjectTemplate: string | null; htmlTemplate: string | null; textTemplate: string | null; fromAddress: string | null; isSystem: boolean; metadata: Record | null; createdAt: Date; updatedAt: Date; } | null>; export declare function getTemplateBySlug(db: PostgresJsDatabase, slug: string): Promise<{ id: string; slug: string; name: string; channel: "email" | "sms"; provider: string | null; status: "draft" | "active" | "archived"; subjectTemplate: string | null; htmlTemplate: string | null; textTemplate: string | null; fromAddress: string | null; isSystem: boolean; metadata: Record | null; createdAt: Date; updatedAt: Date; } | null>; export declare function createTemplate(db: PostgresJsDatabase, data: CreateNotificationTemplateInput): Promise<{ name: string; provider: string | null; id: string; slug: string; channel: "email" | "sms"; status: "draft" | "active" | "archived"; subjectTemplate: string | null; htmlTemplate: string | null; textTemplate: string | null; fromAddress: string | null; isSystem: boolean; metadata: Record | null; createdAt: Date; updatedAt: Date; } | null>; export declare function updateTemplate(db: PostgresJsDatabase, id: string, data: UpdateNotificationTemplateInput): Promise<{ id: string; slug: string; name: string; channel: "email" | "sms"; provider: string | null; status: "draft" | "active" | "archived"; subjectTemplate: string | null; htmlTemplate: string | null; textTemplate: string | null; fromAddress: string | null; isSystem: boolean; metadata: Record | null; createdAt: Date; updatedAt: Date; } | null>; export declare function deleteTemplate(db: PostgresJsDatabase, id: string): Promise; export declare function listReminderRules(db: PostgresJsDatabase, query: NotificationReminderRuleListQuery): Promise | null; createdAt: Date; updatedAt: Date; }>>; export declare function getReminderRuleById(db: PostgresJsDatabase, id: string): Promise<{ id: string; slug: string; name: string; status: "draft" | "active" | "archived"; targetType: "booking_payment_schedule" | "invoice" | "booking_confirmed" | "payment_complete" | "booking_cancelled_non_payment"; channel: "email" | "sms"; provider: string | null; templateId: string | null; templateSlug: string | null; priority: number; suppressionGroup: string | null; isSystem: boolean; metadata: Record | null; createdAt: Date; updatedAt: Date; } | null>; export declare function createReminderRule(db: PostgresJsDatabase, data: CreateNotificationReminderRuleInput): Promise<{ name: string; provider: string | null; id: string; slug: string; channel: "email" | "sms"; status: "draft" | "active" | "archived"; isSystem: boolean; metadata: Record | null; createdAt: Date; updatedAt: Date; templateId: string | null; templateSlug: string | null; targetType: "booking_payment_schedule" | "invoice" | "booking_confirmed" | "payment_complete" | "booking_cancelled_non_payment"; priority: number; suppressionGroup: string | null; } | null>; export declare function updateReminderRule(db: PostgresJsDatabase, id: string, data: UpdateNotificationReminderRuleInput): Promise<{ id: string; slug: string; name: string; status: "draft" | "active" | "archived"; targetType: "booking_payment_schedule" | "invoice" | "booking_confirmed" | "payment_complete" | "booking_cancelled_non_payment"; channel: "email" | "sms"; provider: string | null; templateId: string | null; templateSlug: string | null; priority: number; suppressionGroup: string | null; isSystem: boolean; metadata: Record | null; createdAt: Date; updatedAt: Date; } | null>; export declare function deleteReminderRule(db: PostgresJsDatabase, id: string): Promise; export declare function listReminderRuns(db: PostgresJsDatabase, query: NotificationReminderRunListQuery): Promise | null; createdAt: string; updatedAt: string; links: { bookingId: string | null; bookingPaymentScheduleId: string | null; invoiceId: string | null; paymentSessionId: string | null; personId: string | null; organizationId: string | null; notificationDeliveryId: string | null; }; reminderRule: { id: string; slug: string; name: string; status: "draft" | "active" | "archived"; targetType: "booking_payment_schedule" | "invoice" | "booking_confirmed" | "payment_complete" | "booking_cancelled_non_payment"; channel: "email" | "sms"; provider: string | null; templateId: string | null; templateSlug: string | null; }; delivery: { id: string; status: "pending" | "sent" | "failed" | "cancelled"; channel: "email" | "sms"; provider: string; toAddress: string; subject: string | null; sentAt: string | null; failedAt: string | null; errorMessage: string | null; } | null; }>>; export declare function getReminderRunById(db: PostgresJsDatabase, id: string): Promise<{ id: string; reminderRuleId: string; targetType: "booking_payment_schedule" | "invoice" | "booking_confirmed" | "payment_complete" | "booking_cancelled_non_payment"; targetId: string; dedupeKey: string; status: "sent" | "failed" | "processing" | "queued" | "skipped"; recipient: string | null; scheduledFor: string; processedAt: string; errorMessage: string | null; metadata: Record | null; createdAt: string; updatedAt: string; links: { bookingId: string | null; bookingPaymentScheduleId: string | null; invoiceId: string | null; paymentSessionId: string | null; personId: string | null; organizationId: string | null; notificationDeliveryId: string | null; }; reminderRule: { id: string; slug: string; name: string; status: "draft" | "active" | "archived"; targetType: "booking_payment_schedule" | "invoice" | "booking_confirmed" | "payment_complete" | "booking_cancelled_non_payment"; channel: "email" | "sms"; provider: string | null; templateId: string | null; templateSlug: string | null; }; delivery: { id: string; status: "pending" | "sent" | "failed" | "cancelled"; channel: "email" | "sms"; provider: string; toAddress: string; subject: string | null; sentAt: string | null; failedAt: string | null; errorMessage: string | null; } | null; } | null>;