import { PersistedSlice } from '../slice/PersistedSlice';
import type { Peritext } from '../Peritext';
import type { SliceType } from '../slice/types';
import type { MarkerSlice } from '../slice/MarkerSlice';
import type { Slices } from '../slice/Slices';
import type { ITimestampStruct } from '../../../json-crdt-patch';
import type { Range } from '../rga/Range';
export declare class EditorSlices<T = string> {
    protected readonly txt: Peritext<T>;
    readonly slices: Slices<T>;
    constructor(txt: Peritext<T>, slices: Slices<T>);
    /**
     * @todo Rename to `insMany`.
     */
    insStack(type: SliceType, data?: unknown | ITimestampStruct, selection?: Range<T>[] | IterableIterator<Range<T>>): PersistedSlice<T>[];
    insOne(type: SliceType, data?: unknown | ITimestampStruct, selection?: Range<T>[] | IterableIterator<Range<T>>): PersistedSlice<T>[];
    insErase(type: SliceType, data?: unknown | ITimestampStruct, selection?: Range<T>[] | IterableIterator<Range<T>>): PersistedSlice<T>[];
    insMarker(type: SliceType, data?: unknown, separator?: string, selection?: Range<T>[] | IterableIterator<Range<T>>): MarkerSlice<T>[];
    del(sliceOrId: PersistedSlice<T> | ITimestampStruct): void;
}
