type ExecutableItem = { execute: (...args: TArgs) => Promise; }; type DataItem = { data: T; }; type ItemType = 'executable' | 'data'; type ItemTypeMap = { executable: ExecutableItem; data: DataItem; }; type Item = ItemTypeMap[Type]; export type BatchQueueParams = { batchSize?: number; batchProcessor: (items: Item[]) => Promise; }; export declare function isDataItem(item: Item): item is DataItem; export declare function isExecutableItem(item: Item): item is ExecutableItem; export declare class BatchQueue { #private; constructor(params: BatchQueueParams); addItem(item: Item): Promise; processRemainingItems(): Promise; get isProcessing(): boolean; } export {}; //# sourceMappingURL=queue.d.ts.map