/** * Teams Delivery Worker (TEAMS-004) * * Reliable message delivery with exponential backoff, retry logic, * and dead-letter queue for failed deliveries. */ /** * Custom error for delivery failures */ export declare class DeliveryError extends Error { statusCode: number; retryAfter?: number | undefined; constructor(statusCode: number, message: string, retryAfter?: number | undefined); } /** * Teams Delivery Worker Class */ export declare class TeamsDeliveryWorker { private isRunning; private stopPromise; private stopResolve; /** * Start the worker (polling loop) */ start(): Promise; /** * Gracefully stop the worker */ stop(): Promise; /** * Process a batch of pending deliveries */ processBatch(): Promise; /** * Process a single delivery job */ processJob(job: { id: string; webhookId: string | null; eventType: string; payloadExcerpt: string | null; attempts: number; maxAttempts: number; }): Promise; /** * Deliver message to Teams webhook */ deliver(job: { webhookId: string | null; eventType: string; payloadExcerpt: string | null; }): Promise; /** * Mark delivery as successful */ markSuccess(job: { id: string; }): Promise; /** * Handle delivery failure with retry logic */ handleFailure(job: { id: string; attempts: number; maxAttempts: number; }, error: unknown): Promise; /** * Mark job as dead letter (permanently failed) */ markDeadLetter(job: { id: string; }, error: DeliveryError): Promise; /** * Determine if delivery should be retried based on status code and attempts */ shouldRetry(statusCode: number, attempts: number, maxAttempts: number): boolean; /** * Calculate next retry time with exponential backoff */ calculateNextRetry(attempts: number, error: DeliveryError): Date; /** * Sleep utility */ private sleep; } export declare function getTeamsDeliveryWorker(): TeamsDeliveryWorker; /** * Process a single job immediately (for testing or one-off processing) */ export declare function processDeliveryJob(jobId: string): Promise; //# sourceMappingURL=teams-delivery-worker.d.ts.map