import { IQueueService } from '../../domain/interfaces/services/iqueue.service'; import { PgmqMessage } from '../../domain/interfaces/repositories'; import { QueueRepository } from '../../infrastructure/repositories/queue.repository'; import { AppConfig } from '../config/config.manager'; /** * Queue Service * Handles queue operations and message lifecycle */ export declare class QueueService implements IQueueService { private queueRepository; private config; constructor(queueRepository: QueueRepository, config: AppConfig); /** * Polls the queue for a new message (non-blocking) * @returns PGMQ message or null if queue is empty */ pollMessage(): Promise; /** * Polls the queue for a new message with blocking wait (event-driven) * Waits up to pollTimeoutSeconds for a message to arrive * @param pollTimeoutSeconds - How long to wait for a message (default: 5s) * @returns PGMQ message or null if timeout reached */ pollMessageWithWait(pollTimeoutSeconds?: number): Promise; /** * Acknowledges successful message processing by deleting from queue * @param messageId - PGMQ message ID * @returns true if deleted, false otherwise */ acknowledgeMessage(messageId: number): Promise; /** * Gets queue metrics * @returns Queue metrics */ getQueueMetrics(): Promise<{ queue_name: string; queue_length: number; newest_msg_age_sec: number | null; oldest_msg_age_sec: number | null; total_messages: number; }>; /** * Creates the queue for this CLI instance (idempotent) * @returns true if created or already exists */ createQueue(): Promise; /** * Gets the queue name for this CLI instance * @returns Queue name */ getQueueName(): string; } //# sourceMappingURL=queue.service.d.ts.map