@a2alite/sdk
Version:
A Modular SDK (Server & Client) for Agent to Agent (A2A) protocol, with easy task lifecycle management
35 lines (34 loc) • 1.18 kB
TypeScript
import { IQueue } from "./queue.ts";
/**
* In-memory implementation of IQueue<T>
*
* InMemoryQueue provides a simple, non-persistent queue implementation
* with support for blocking dequeue operations. When the queue is empty,
* dequeue operations will block until an item is available or the queue is closed.
*
* @template T - The type of items stored in this queue
*/
declare class InMemoryQueue<T> implements IQueue<T> {
/** Internal array storing queue items */
private items;
/** Whether the queue has been closed */
private _isClosed;
/** Pending promises for blocked dequeue operations */
private pendingDequeuePromises;
dequeue(): Promise<T | undefined>;
enqueue(item: T): Promise<void>;
/**
* Resolves pending dequeue promises with available items
* @private
*/
private resolvePendingPromises;
size(): Promise<number>;
isEmpty(): Promise<boolean>;
peek(): Promise<T | undefined>;
/**
* Closes the queue and resolves any pending promises with undefined
* Once closed, the queue cannot be used for further operations
*/
close(): Promise<void>;
}
export { InMemoryQueue };