import { type NabiNode, type NabiDoc } from '../schema/index.js'; import type { EditEnv } from '../doc/index.js'; import type { Selection } from '../caret/index.js'; import type { CommandArgs, CommandOutcome } from './commands.js'; export interface Snapshot { readonly doc: NabiDoc; readonly selection: Selection; } export interface CommandResultSnapshot { readonly doc: readonly NabiNode[]; readonly selection: Selection; readonly arm?: CommandOutcome['arm']; } export declare function snapshotSelection(value: unknown): Selection | null; export declare function frozenSelection(selection: Selection): Selection; export declare function snapshotArgs(value: unknown): CommandArgs | null; type SetLike = { readonly size: number; has(value: T): boolean; keys(): Iterator; }; export declare class ReadonlySetView implements ReadonlySet { #private; constructor(values: ReadonlySet); get size(): number; has(value: T): boolean; entries(): SetIterator<[T, T]>; keys(): SetIterator; values(): SetIterator; [Symbol.iterator](): SetIterator; forEach(callbackfn: (value: T, value2: T, set: ReadonlySet) => void, thisArg?: unknown): void; union(other: SetLike): Set; intersection(other: SetLike): Set; difference(other: SetLike): Set; symmetricDifference(other: SetLike): Set; isSubsetOf(other: SetLike): boolean; isSupersetOf(other: SetLike): boolean; isDisjointFrom(other: SetLike): boolean; } export declare class ReadonlyMapView implements ReadonlyMap { #private; constructor(values: ReadonlyMap); get size(): number; get(key: K): V | undefined; has(key: K): boolean; entries(): MapIterator<[K, V]>; keys(): MapIterator; values(): MapIterator; [Symbol.iterator](): MapIterator<[K, V]>; forEach(callbackfn: (value: V, key: K, map: ReadonlyMap) => void, thisArg?: unknown): void; } export declare function callbackEnv(env: EditEnv): EditEnv; export declare function snapshotCommandResult(value: unknown, current: NabiDoc, known: Readonly>): CommandResultSnapshot | null; export declare function callbackSelection(selection: Selection): Selection; export declare function makeSessionId(): string; export {}; //# sourceMappingURL=nabi-internals.d.ts.map