UNPKG

@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
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 };