/*!
 * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
 * Licensed under the MIT License.
 */
import { BaseSegment, ISegment, Marker } from "./mergeTreeNodes";
import { IJSONSegment } from "./ops";
import { PropertySet } from "./properties";
export interface IJSONTextSegment extends 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?: PropertySet): TextSegment;
    static fromJSONObject(spec: any): TextSegment | undefined;
    readonly type = "TextSegment";
    constructor(text: string);
    toJSONObject(): string | {
        text: string;
        props: PropertySet;
    };
    clone(start?: number, end?: number): TextSegment;
    canAppend(segment: ISegment): boolean;
    toString(): string;
    append(segment: ISegment): void;
    removeRange(start: number, end: number): boolean;
    protected createSplitSegmentAt(pos: number): TextSegment | undefined;
}
export interface IMergeTreeTextHelper {
    /**
     * @deprecated - If consuming via sequence, use `getTextAndMarkers` exported from \@fluidframework/sequence.
     * Otherwise, define your own accumulation model and use `Client.walkSegments`.
     */
    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;
}
//# sourceMappingURL=textSegment.d.ts.map