import { UUID } from './vendor/generics/uuid.js'; import { Event } from './event.js'; import { Position } from './position.js'; import { DataToken } from './datatoken.js'; import { Link } from './vendor/generics/link.js'; type Metadata = any; export declare namespace Range { type PathInfo = { index: number; name: string; }; type Summary = { instanceId: UUID; name: string; path: PathInfo[]; start: number; end: number; content: string; metadata: Metadata; }; type Token = string; type ReadOutput = Event | DataToken; } export declare abstract class Range { private _instanceId; private _name; private _start; private _metadata?; private _parent?; private _leftSibling?; private _rightSibling?; abstract end: Position; abstract length: number; abstract text: string; link: Link; constructor(name: string, start?: Position, metadata?: any, instanceId?: UUID, parent?: Range, leftSibling?: Range, rightSibling?: Range); abstract type(): string; abstract read(): Array; abstract swapChild(outgoing: Range, incoming: Range): void; get instanceId(): UUID; get name(): string; get start(): Position; set start(start: Position); get metadata(): any; get parent(): Range | undefined; set parent(parent: Range | undefined); get leftSibling(): Range | undefined; protected set leftSibling(leftSibling: Range | undefined); get rightSibling(): Range | undefined; protected set rightSibling(rightSibling: Range | undefined); get index(): number; /** * Returns the path of the root up to this range. */ get path(): Range.PathInfo[]; get breif(): string; /** * Returns a summary of this interval for debugging purposes. */ get summary(): Range.Summary; get startEvent(): Event.Start; get endEvent(): Event.End; protected updateEnd(notifyParent?: boolean): void; append(newSibling: Range): void; /** * Swap out the range with another one. * Updates relationship with Parent and Siblings. * * Note: Children are not updated, the whole range "Node" is swapped out. */ swap(other: Range): void; equals(other: Range): boolean; } export {}; //# sourceMappingURL=range.d.ts.map