import IMark from './IMark';
import SpanData from './SpanData';
import ISubjectLedger from './ISubjectLedger';
export interface IManuscript {
    readonly baseText: string;
    selection: [number, number] | null;
}
export default class Manuscript implements IManuscript {
    private text;
    private layers;
    private subjectLedger;
    private depotBatchSize;
    private selectionCharRange;
    private syncedSpanBatches;
    private press;
    constructor(text: string, marks: IMark[], subjectLedger: ISubjectLedger, batchSize?: number, textSpanMaxLength?: number);
    waitForReady(): Promise<void>;
    get baseText(): string;
    get batchSize(): number;
    set batchSize(val: number);
    get selection(): [number, number] | null;
    set selection(newSelection: [number, number] | null);
    setSelection(newSelection: [number, number] | null, immediate?: boolean): void;
    get spanBatches(): SpanData[][];
    refresh(): void;
    resetSpans(): void;
    changeMarks(newMarks: IMark[], immediate?: boolean): void;
    setMetaStrings(metaStrings: [string, number][], immediate?: boolean): void;
    getSubject(name: string): import("./Subject").default | undefined;
    resetSubjects(resetActive?: boolean): void;
}
