export type SyncItem = { task: Fn; }; export type AsyncItem = { task: AsyncFn; resolve: Fn; reject: Fn; }; export type Fn = (...args: any) => void; export type AsyncFn = (...args: any[]) => Promise;