/**
 * Internal queue type
 */
export interface IQueue<T> {
    /**
     * Value of queue should be an object
     */
    value: T;
    /**
     * Leaf node in queue, representing the next value
     */
    next?: IQueue<T>;
}
/**
 * Infer arguments based on the Promise return value
 */
export type InferArgs<T> = T extends (...args: any[]) => Promise<infer U> ? U : void;
