import { Slice } from './Slice'; import { SliceStacking } from './constants'; import { UndEndIterator, type UndEndNext } from '../../../util/iterator'; import type { Range } from '../rga/Range'; import type { SliceType } from './types'; import type { ITimestampStruct } from '../../../json-crdt-patch/clock'; import type { Stateful } from '../types'; import type { Printable } from 'tree-dump/lib/types'; import type { ArrChunk, ArrNode } from '../../../json-crdt/nodes'; import type { AbstractRga } from '../../../json-crdt/nodes/rga'; import type { Peritext } from '../Peritext'; export declare class Slices implements Stateful, Printable { /** The text RGA. */ protected readonly txt: Peritext; /** The `arr` node, used as a set, where slices are stored. */ readonly set: ArrNode; private list; protected readonly rga: AbstractRga; constructor( /** The text RGA. */ txt: Peritext, /** The `arr` node, used as a set, where slices are stored. */ set: ArrNode); ins, K extends new (...args: ConstructorParameters>) => S>(range: Range, stacking: SliceStacking, type: SliceType, data?: unknown, Klass?: K): S; insMarker(range: Range, type: SliceType, data?: unknown | ITimestampStruct): Slice; insMarkerAfter(after: ITimestampStruct, type: SliceType, data?: unknown): Slice; insStack(range: Range, type: SliceType, data?: unknown | ITimestampStruct): Slice; insOne(range: Range, type: SliceType, data?: unknown | ITimestampStruct): Slice; insErase(range: Range, type: SliceType, data?: unknown | ITimestampStruct): Slice; protected unpack(arr: ArrNode, chunk: ArrChunk): Slice; get(id: ITimestampStruct): Slice | undefined; del(id: ITimestampStruct): void; delSlices(slices: Iterable>): boolean; size(): number; /** * @todo Rename to `each0`. */ iterator0(): UndEndNext>; each(): UndEndIterator>; forEach(callback: (item: Slice) => void): void; private _topologyHash; hash: number; refresh(): number; toStringName(): string; toString(tab?: string): string; }