/** Striking features from the edition, and rewriting the ids by which the edition names them outside the versions. */ import { Draft } from "immer"; import { Edition } from "../model/Edition.js"; import { AnySymbol } from "../model/Symbol.js"; import { RollCopy } from "../model/RollCopy.js"; import { Ids } from "./draft.js"; /** The ids of every feature the copy bears, those a patch bears among them. */ export declare const featureIdsOf: (copy: RollCopy) => Ids; /** * A symbol every carrier of which lies among the features loses its * evidence with them. A symbol without carriers, such as a label, * stands on its own. */ export declare const carriedOnlyOn: (features: Ids) => (symbol: AnySymbol) => boolean; /** The ids a statement names, as the rewriting leaves them. */ type Rename = (ids: string[]) => string[]; /** * Rewrites the ids by which the edition names features and symbols * outside the versions. A belief is annotatable anywhere, so the whole * edition is read; what the rewriting leaves alone is left the very * object it was. */ export declare const renameReferences: (draft: Draft, rename: Rename) => void; /** * Strikes the features from the edition: their carriers go, a symbol * that had no other carrier goes with them, an edit left exchanging * nothing goes as well, and so does every reference the versions, the * modifications of the copies and the comprehensions made to what went. */ export declare const forgetFeatures: (draft: Draft, features: Ids) => void; export {};