/*!
 * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
 * Licensed under the MIT License.
 */
import { RevisionTag } from "../../core/index.js";
import { MoveEffectTable } from "./moveEffectTable.js";
import { Mark } from "./types.js";
export declare class MarkQueue<T> {
    private readonly list;
    readonly revision: RevisionTag | undefined;
    private readonly moveEffects;
    private readonly stack;
    private index;
    constructor(list: readonly Mark<T>[], revision: RevisionTag | undefined, moveEffects: MoveEffectTable<T>);
    isEmpty(): boolean;
    dequeue(): Mark<T>;
    tryDequeue(): Mark<T> | undefined;
    /**
     * Dequeues the first `length` sized portion of the next mark,
     * or the entire next mark if `length` is longer than the mark's length.
     * @param length - The length to dequeue, measured in the input context.
     */
    dequeueUpTo(length: number): Mark<T>;
    peek(): Mark<T> | undefined;
}
//# sourceMappingURL=markQueue.d.ts.map