import { Queue } from "./queue"; export interface Item { data: Record; key: string; error?: Error | string; errorDateTime?: Date; } export declare type Queues = { [key: string]: ReturnType; }; export declare type FetchMethod = (arg0: Record) => Promise; export declare type QueueNameTypes = "invoice" | "transactionPos" | "transactionCash"; export declare type EventTypes = "enqueue" | "dequeue" | "logError"; export declare type OnUpdateList = (arg0: { queueName: string; items: Item[]; eventType: EventTypes; }) => void; export declare type OnFetching = (arg0: { queueName: string; fetchingKeys: FetchingKeys; }) => void; export interface FetchQueueReducer { [queueName: string]: Item[]; } export interface QueuePoolState { [userId: number]: FetchQueueReducer; } export interface QueuePoolReducer { queuePool: QueuePoolState; fetchingKeys: { [queueName: string]: FetchingKeys; }; } export declare type FetchingKeys = { [key: string]: boolean; }; export interface AddQueueReturnType { addQueue: addQueueType; } export declare type addQueueType = (arg0: string, arg1: FetchMethod, arg2?: Item[]) => AddQueueReturnType; export declare type AppQueues = "invoice" | "transactionPos" | "transactionCash";