import { IMessageMetadataStore } from '../../interfaces/messaging/messageMetadataStore'; /** * Delivery timeout configuration */ export interface DeliveryTimeoutConfig { /** Timeout duration in milliseconds (default: 30000 = 30 seconds) */ timeoutMs: number; /** Check interval in milliseconds (default: 5000 = 5 seconds) */ checkIntervalMs: number; } /** * Service for handling message delivery timeouts * Tracks delivery attempts and marks messages as FAILED after timeout */ export declare class DeliveryTimeoutService { private readonly metadataStore; private deliveryAttempts; private checkInterval?; private readonly config; private failureCallback?; constructor(metadataStore: IMessageMetadataStore, config?: Partial); /** * Track delivery attempt for a message */ trackDeliveryAttempt(messageId: string, recipientId: string): void; /** * Clear delivery attempt tracking for a message */ clearDeliveryAttempt(messageId: string, recipientId: string): void; /** * Register callback for delivery failures */ onDeliveryFailure(callback: (messageId: string, recipientId: string) => void): void; /** * Start monitoring for delivery timeouts */ start(): void; /** * Stop monitoring for delivery timeouts */ stop(): void; /** * Check for timed out deliveries */ private checkTimeouts; /** * Handle delivery timeout */ private handleTimeout; /** * Get current delivery attempts count */ getAttemptCount(messageId: string, recipientId: string): number; /** * Get all tracked delivery attempts */ getTrackedAttempts(): Array<{ messageId: string; recipientId: string; attempts: number; timestamp: Date; }>; } //# sourceMappingURL=deliveryTimeoutService.d.ts.map