/*!
 * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
 * Licensed under the MIT License.
 */
import { BaseSegment, ISegment, Marker, MergeTree } from "./mergeTree";
import * as ops from "./ops";
import * as Properties from "./properties";
export interface IJSONTextSegment extends ops.IJSONSegment {
    text: string;
}
export declare class TextSegment extends BaseSegment {
    text: string;
    static readonly type = "TextSegment";
    static is(segment: ISegment): segment is TextSegment;
    static make(text: string, props?: Properties.PropertySet): TextSegment;
    static fromJSONObject(spec: any): TextSegment | undefined;
    readonly type = "TextSegment";
    constructor(text: string);
    toJSONObject(): string | {
        text: string;
        props: Properties.PropertySet;
    };
    clone(start?: number, end?: number): TextSegment;
    canAppend(segment: ISegment): any;
    toString(): string;
    append(segment: ISegment): void;
    removeRange(start: number, end: number): boolean;
    protected createSplitSegmentAt(pos: number): TextSegment | undefined;
}
export declare class MergeTreeTextHelper {
    private readonly mergeTree;
    constructor(mergeTree: MergeTree);
    getTextAndMarkers(refSeq: number, clientId: number, label: string, start?: number, end?: number): {
        parallelText: string[];
        parallelMarkers: Marker[];
    };
    getText(refSeq: number, clientId: number, placeholder?: string, start?: number, end?: number): string;
    private getValidRange;
    private readonly gatherText;
}
//# sourceMappingURL=textSegment.d.ts.map