/**
 * @license
 * Copyright 2022-2026 Greg Lauckhart <greg@lauckhart.com>
 * SPDX-License-Identifier: Apache-2.0
 */
import { Producer } from "./producer.js";
import { Token } from "./token.js";
/**
 * A single output segment that should be presented contiguously if space allows.
 */
export declare class ContiguousOutputSegment implements Producer {
    #private;
    width: number;
    tokens: Token[];
    constructor(...text: Producer.Sequence);
    [Symbol.iterator](): ArrayIterator<Token>;
    push(...text: Producer.Sequence): void;
    /**
     * Create a scanner that can be used to move through the segment in chunks of visible characters.  This is only
     * necessary when wrapping segments that are too long to fit on a single line.
     */
    scan(): ContiguousOutputSegment.Scanner;
    toString(): string;
}
export declare namespace ContiguousOutputSegment {
    interface Scanner extends IterableIterator<Token> {
        done: boolean;
        take(width: number): Token[];
    }
}
//# sourceMappingURL=contiguous-output-segment.d.ts.map