import type { AMQPConnection } from "./AMQPConnection.js"; import { type QueuedTaskMessage } from "./QueuedTaskMessage.js"; /** * AMQP Work Queue for distributing tasks to worker processes * * Uses a classic (non-stream) AMQP queue with: * - Durable queue for persistence * - Competing consumers (multiple workers) * - Prefetch=1 for fair distribution * - ACK-based processing for reliability */ export declare class AMQPWorkQueue { private connection; private queueName; private logger; private isInitialized; private routingKey; constructor(connection: AMQPConnection, queueName: string); /** * Initialize the work queue * - Declares durable queue * - Binds to exchange with routing pattern for work items */ initialize(): Promise; /** * Enqueue a task message to the work queue * Published to exchange, routed to work queue and event stream * * @param taskMessage - The task to enqueue * @param routingKey - Optional routing key (default: "a2a.work.task") */ enqueue(taskMessage: QueuedTaskMessage): Promise; /** * Start consuming from the work queue * Sets up a competing consumer that processes one task at a time * Yields each task message to the caller for processing * @returns messages - Async generator of queued task messages */ start(): AsyncGenerator; /** * Get queue name */ getQueueName(): string; /** * Get initialization status */ isReady(): boolean; private get exchange(); } //# sourceMappingURL=AMQPWorkQueue.d.ts.map