import { type ProductNotification } from '@xopcai/gateway-contract'; export type NotificationDelivery = { event: ProductNotification; deviceId: string; pushToken: string; locale: 'en' | 'zh'; attempts: number; providerTicketId?: string; }; export declare function createNotificationEvent(input: { dedupeKey: string; notification: Omit; deviceIds: string[]; createdAt?: number; }): { notification: ProductNotification; created: boolean; }; export declare function listNotificationEvents(options?: { afterId?: string; since?: number; limit?: number; }): { items: ProductNotification[]; nextCursor: string | null; }; export declare function acknowledgeNotification(eventId: string, consumerId: string, surface: 'web' | 'electron' | 'mobile'): boolean; export declare function listDueNotificationDeliveries(status: 'pending' | 'accepted', now?: number, limit?: number): NotificationDelivery[]; export declare function markNotificationDeliveryAccepted(eventId: string, deviceId: string, ticketId: string, receiptAt: number): void; export declare function markNotificationDeliveryDelivered(eventId: string, deviceId: string): void; export declare function markNotificationDeliveryDead(eventId: string, deviceId: string, error: string): void; export declare function rescheduleNotificationDelivery(eventId: string, deviceId: string, status: 'pending' | 'accepted', nextAttemptAt: number, error: string): void; export declare function notificationDeliveryMetrics(): { pending: number; accepted: number; delivered: number; dead: number; due: number; devices: { deliverable: number; expired: number; disabled: number; }; oldestPendingAt: number | null; latestError: { eventId: string; deviceId: string; message: string; updatedAt: number; } | null; }; export declare function expireUndeliverableNotificationDeliveries(now?: number): number; export declare function pruneNotificationEvents(before: number): number;