// Task Easy Class export declare class TaskEasy { constructor(compare_func: (ob1: C, obj2: C) => boolean, max_queue_size?: number); schedule>(task: T, args: TaskEasy.Arguments, priority_obj: C): Promise

; } declare namespace TaskEasy { // Extract argument types from passed function type export type Arguments = [T] extends [(...args: infer U) => any] ? U : [T] extends [void] ? [] : [T]; // Generic task type, must return promise export type Task = (...args: any[]) => Promise; }