export interface QueueResult<T> {
    next: Promise<QueueResult<T>>;
    value: T;
    done?: boolean;
}
export interface Queue<T> extends AsyncIterable<T>, PromiseLike<T> {
    value<Z extends T>(value: Z): Z;
    end(): void;
    reject(error: unknown): void;
}
/**
 * Returns an async iterable that moves forward in value
 * Whenever an iterator is added, it will start at the most recent value
 * that was yielded, and continue from there
 */
export declare function queue<T>(enabled?: boolean): Queue<T>;
//# sourceMappingURL=queue.d.ts.map