import { LoroCounter, LoroList, LoroMap, LoroText, LoroTree, LoroMovableList, ContainerId, Frontiers, IdSpan, VersionVector, LoroValue } from './generated/loro'; export type Value = ContainerId | string | number | boolean | null | { [key: string]: Value; } | Uint8Array | Value[] | undefined; declare module "./generated/loro" { interface LoroDoc { export(mode: ExportMode): ArrayBuffer; getText(id: ContainerId | string): LoroText; getCounter(id: ContainerId | string): LoroCounter; getList(id: ContainerId | string): LoroList; getMap(id: ContainerId | string): LoroMap; getTree(id: ContainerId | string): LoroTree; getMovableList(id: ContainerId | string): LoroMovableList; travelChangeAncestors(ids: Array, travel: (change: ChangeMeta) => boolean): void; subscribeRoot(cb: (diff: DiffEvent) => void): SubscriptionInterface; subscribe(containerId: ContainerId, cb: (diff: DiffEvent) => void): SubscriptionInterface; subscribeLocalUpdate(cb: (update: ArrayBuffer) => void): SubscriptionInterface; subscribeFirstCommitFromPeer(cb: (payload: FirstCommitFromPeerPayload) => void): SubscriptionInterface; subscribePreCommit(cb: (payload: PreCommitCallbackPayload) => void): SubscriptionInterface; subscribeJsonpath(path: string, cb: () => void): SubscriptionInterface; toJSON(): any; oplogVersion(): VersionVector; version(): VersionVector; getValue(): Value; getDeepValue(): Value; getDeepValueWithId(): Value; } interface LoroMap { insert(key: string, value: Value): void; insertContainer(key: string, container: T): T; getOrCreateContainer(key: string, container: T): T; getValue(): Value; set(key: string, value: Value): void; getDeepValue(): Value; subscribe(cb: (diff: DiffEvent) => void): SubscriptionInterface | undefined; } interface LoroList { insert(pos: number, value: Value): void; push(value: Value): void; pushContainer(container: T): T; insertContainer(pos: number, container: T): T; getValue(): Value; getDeepValue(): Value; pop(): Value | undefined; toVec(): Value[]; subscribe(cb: (diff: DiffEvent) => void): SubscriptionInterface | undefined; } interface LoroMovableList { insert(pos: number, value: Value): void; push(value: Value): void; set(pos: number, value: Value): void; insertContainer(pos: number, container: T): T; setContainer(pos: number, container: T): T; getValue(): Value; getDeepValue(): Value; pop(): Value | undefined; toVec(): Value[]; subscribe(cb: (diff: DiffEvent) => void): SubscriptionInterface | undefined; } interface LoroText { mark(from: number, to: number, key: string, value: Value): void; getRichtextValue(): Value; subscribe(cb: (diff: DiffEvent) => void): SubscriptionInterface | undefined; } interface LoroTree { getValue(): Value; getValueWithMeta(): Value; subscribe(cb: (diff: DiffEvent) => void): SubscriptionInterface | undefined; } interface UndoManager { setOnPop(onPop: (undoOrRedo: UndoOrRedo, span: CounterSpan, undoMeta: UndoItemMeta) => void | undefined): void; setOnPush(onPush: (undoOrRedo: UndoOrRedo, span: CounterSpan, diffEvent: DiffEvent | undefined) => UndoItemMeta | undefined): void; } interface Awareness { setLocalState(value: Value): void; getLocalState(): Value | undefined; } interface EphemeralStore { set(key: string, value: Value): void; get(key: string): Value | undefined; getAllStates(): { [key: string]: Value; }; subscribeLocalUpdate(cb: (update: ArrayBuffer) => void): SubscriptionInterface; subscribe(cb: (event: EphemeralStoreEvent) => void): SubscriptionInterface; } } export type Container = LoroText | LoroCounter | LoroList | LoroMap | LoroTree | LoroMovableList; export type ExportMode = { mode: "snapshot"; } | { mode: "updates"; from: VersionVector; } | { mode: "updatesInRange"; spans: IdSpan[]; } | { mode: "shallowSnapshot"; frontiers: Frontiers; } | { mode: "stateOnly"; frontiers?: Frontiers; } | { mode: "snapshotAt"; frontiers: Frontiers; }; export declare const loroValueToJsValue: (value: LoroValue) => Value; //# sourceMappingURL=extension.d.ts.map