|  |  | import { Node, Schema, Slice, Fragment, NodeRange, NodeType, Attrs, Mark, MarkType, ContentMatch } from 'prosemirror-model';
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | /**
 | 
						
						
						
							|  |  | There are several things that positions can be mapped through.
 | 
						
						
						
							|  |  | Such objects conform to this interface.
 | 
						
						
						
							|  |  | */
 | 
						
						
						
							|  |  | interface Mappable {
 | 
						
						
						
							|  |  |     /**
 | 
						
						
						
							|  |  |     Map a position through this object. When given, `assoc` (should
 | 
						
						
						
							|  |  |     be -1 or 1, defaults to 1) determines with which side the
 | 
						
						
						
							|  |  |     position is associated, which determines in which direction to
 | 
						
						
						
							|  |  |     move when a chunk of content is inserted at the mapped position.
 | 
						
						
						
							|  |  |     */
 | 
						
						
						
							|  |  |     map: (pos: number, assoc?: number) => number;
 | 
						
						
						
							|  |  |     /**
 | 
						
						
						
							|  |  |     Map a position, and return an object containing additional
 | 
						
						
						
							|  |  |     information about the mapping. The result's `deleted` field tells
 | 
						
						
						
							|  |  |     you whether the position was deleted (completely enclosed in a
 | 
						
						
						
							|  |  |     replaced range) during the mapping. When content on only one side
 | 
						
						
						
							|  |  |     is deleted, the position itself is only considered deleted when
 | 
						
						
						
							|  |  |     `assoc` points in the direction of the deleted content.
 | 
						
						
						
							|  |  |     */
 | 
						
						
						
							|  |  |     mapResult: (pos: number, assoc?: number) => MapResult;
 | 
						
						
						
							|  |  | }
 | 
						
						
						
							|  |  | /**
 | 
						
						
						
							|  |  | An object representing a mapped position with extra
 | 
						
						
						
							|  |  | information.
 | 
						
						
						
							|  |  | */
 | 
						
						
						
							|  |  | declare class MapResult {
 | 
						
						
						
							|  |  |     /**
 | 
						
						
						
							|  |  |     The mapped version of the position.
 | 
						
						
						
							|  |  |     */
 | 
						
						
						
							|  |  |     readonly pos: number;
 | 
						
						
						
							|  |  |     /**
 | 
						
						
						
							|  |  |     Tells you whether the position was deleted, that is, whether the
 | 
						
						
						
							|  |  |     step removed the token on the side queried (via the `assoc`)
 | 
						
						
						
							|  |  |     argument from the document.
 | 
						
						
						
							|  |  |     */
 | 
						
						
						
							|  |  |     get deleted(): boolean;
 | 
						
						
						
							|  |  |     /**
 | 
						
						
						
							|  |  |     Tells you whether the token before the mapped position was deleted.
 | 
						
						
						
							|  |  |     */
 | 
						
						
						
							|  |  |     get deletedBefore(): boolean;
 | 
						
						
						
							|  |  |     /**
 | 
						
						
						
							|  |  |     True when the token after the mapped position was deleted.
 | 
						
						
						
							|  |  |     */
 | 
						
						
						
							|  |  |     get deletedAfter(): boolean;
 | 
						
						
						
							|  |  |     /**
 | 
						
						
						
							|  |  |     Tells whether any of the steps mapped through deletes across the
 | 
						
						
						
							|  |  |     position (including both the token before and after the
 | 
						
						
						
							|  |  |     position).
 | 
						
						
						
							|  |  |     */
 | 
						
						
						
							|  |  |     get deletedAcross(): boolean;
 | 
						
						
						
							|  |  | }
 | 
						
						
						
							|  |  | /**
 | 
						
						
						
							|  |  | A map describing the deletions and insertions made by a step, which
 | 
						
						
						
							|  |  | can be used to find the correspondence between positions in the
 | 
						
						
						
							|  |  | pre-step version of a document and the same position in the
 | 
						
						
						
							|  |  | post-step version.
 | 
						
						
						
							|  |  | */
 | 
						
						
						
							|  |  | declare class StepMap implements Mappable {
 | 
						
						
						
							|  |  |     /**
 | 
						
						
						
							|  |  |     Create a position map. The modifications to the document are
 | 
						
						
						
							|  |  |     represented as an array of numbers, in which each group of three
 | 
						
						
						
							|  |  |     represents a modified chunk as `[start, oldSize, newSize]`.
 | 
						
						
						
							|  |  |     */
 | 
						
						
						
							|  |  |     constructor(
 | 
						
						
						
							|  |  |     /**
 | 
						
						
						
							|  |  |     @internal
 | 
						
						
						
							|  |  |     */
 | 
						
						
						
							|  |  |     ranges: readonly number[], 
 | 
						
						
						
							|  |  |     /**
 | 
						
						
						
							|  |  |     @internal
 | 
						
						
						
							|  |  |     */
 | 
						
						
						
							|  |  |     inverted?: boolean);
 | 
						
						
						
							|  |  |     mapResult(pos: number, assoc?: number): MapResult;
 | 
						
						
						
							|  |  |     map(pos: number, assoc?: number): number;
 | 
						
						
						
							|  |  |     /**
 | 
						
						
						
							|  |  |     Calls the given function on each of the changed ranges included in
 | 
						
						
						
							|  |  |     this map.
 | 
						
						
						
							|  |  |     */
 | 
						
						
						
							|  |  |     forEach(f: (oldStart: number, oldEnd: number, newStart: number, newEnd: number) => void): void;
 | 
						
						
						
							|  |  |     /**
 | 
						
						
						
							|  |  |     Create an inverted version of this map. The result can be used to
 | 
						
						
						
							|  |  |     map positions in the post-step document to the pre-step document.
 | 
						
						
						
							|  |  |     */
 | 
						
						
						
							|  |  |     invert(): StepMap;
 | 
						
						
						
							|  |  |     /**
 | 
						
						
						
							|  |  |     Create a map that moves all positions by offset `n` (which may be
 | 
						
						
						
							|  |  |     negative). This can be useful when applying steps meant for a
 | 
						
						
						
							|  |  |     sub-document to a larger document, or vice-versa.
 | 
						
						
						
							|  |  |     */
 | 
						
						
						
							|  |  |     static offset(n: number): StepMap;
 | 
						
						
						
							|  |  |     /**
 | 
						
						
						
							|  |  |     A StepMap that contains no changed ranges.
 | 
						
						
						
							|  |  |     */
 | 
						
						
						
							|  |  |     static empty: StepMap;
 | 
						
						
						
							|  |  | }
 | 
						
						
						
							|  |  | /**
 | 
						
						
						
							|  |  | A mapping represents a pipeline of zero or more [step
 | 
						
						
						
							|  |  | maps](https://prosemirror.net/docs/ref/#transform.StepMap). It has special provisions for losslessly
 | 
						
						
						
							|  |  | handling mapping positions through a series of steps in which some
 | 
						
						
						
							|  |  | steps are inverted versions of earlier steps. (This comes up when
 | 
						
						
						
							|  |  | ‘[rebasing](/docs/guide/#transform.rebasing)’ steps for
 | 
						
						
						
							|  |  | collaboration or history management.)
 | 
						
						
						
							|  |  | */
 | 
						
						
						
							|  |  | declare class Mapping implements Mappable {
 | 
						
						
						
							|  |  |     /**
 | 
						
						
						
							|  |  |     The step maps in this mapping.
 | 
						
						
						
							|  |  |     */
 | 
						
						
						
							|  |  |     readonly maps: StepMap[];
 | 
						
						
						
							|  |  |     /**
 | 
						
						
						
							|  |  |     The starting position in the `maps` array, used when `map` or
 | 
						
						
						
							|  |  |     `mapResult` is called.
 | 
						
						
						
							|  |  |     */
 | 
						
						
						
							|  |  |     from: number;
 | 
						
						
						
							|  |  |     /**
 | 
						
						
						
							|  |  |     The end position in the `maps` array.
 | 
						
						
						
							|  |  |     */
 | 
						
						
						
							|  |  |     to: number;
 | 
						
						
						
							|  |  |     /**
 | 
						
						
						
							|  |  |     Create a new mapping with the given position maps.
 | 
						
						
						
							|  |  |     */
 | 
						
						
						
							|  |  |     constructor(
 | 
						
						
						
							|  |  |     /**
 | 
						
						
						
							|  |  |     The step maps in this mapping.
 | 
						
						
						
							|  |  |     */
 | 
						
						
						
							|  |  |     maps?: StepMap[], 
 | 
						
						
						
							|  |  |     /**
 | 
						
						
						
							|  |  |     @internal
 | 
						
						
						
							|  |  |     */
 | 
						
						
						
							|  |  |     mirror?: number[] | undefined, 
 | 
						
						
						
							|  |  |     /**
 | 
						
						
						
							|  |  |     The starting position in the `maps` array, used when `map` or
 | 
						
						
						
							|  |  |     `mapResult` is called.
 | 
						
						
						
							|  |  |     */
 | 
						
						
						
							|  |  |     from?: number, 
 | 
						
						
						
							|  |  |     /**
 | 
						
						
						
							|  |  |     The end position in the `maps` array.
 | 
						
						
						
							|  |  |     */
 | 
						
						
						
							|  |  |     to?: number);
 | 
						
						
						
							|  |  |     /**
 | 
						
						
						
							|  |  |     Create a mapping that maps only through a part of this one.
 | 
						
						
						
							|  |  |     */
 | 
						
						
						
							|  |  |     slice(from?: number, to?: number): Mapping;
 | 
						
						
						
							|  |  |     /**
 | 
						
						
						
							|  |  |     Add a step map to the end of this mapping. If `mirrors` is
 | 
						
						
						
							|  |  |     given, it should be the index of the step map that is the mirror
 | 
						
						
						
							|  |  |     image of this one.
 | 
						
						
						
							|  |  |     */
 | 
						
						
						
							|  |  |     appendMap(map: StepMap, mirrors?: number): void;
 | 
						
						
						
							|  |  |     /**
 | 
						
						
						
							|  |  |     Add all the step maps in a given mapping to this one (preserving
 | 
						
						
						
							|  |  |     mirroring information).
 | 
						
						
						
							|  |  |     */
 | 
						
						
						
							|  |  |     appendMapping(mapping: Mapping): void;
 | 
						
						
						
							|  |  |     /**
 | 
						
						
						
							|  |  |     Finds the offset of the step map that mirrors the map at the
 | 
						
						
						
							|  |  |     given offset, in this mapping (as per the second argument to
 | 
						
						
						
							|  |  |     `appendMap`).
 | 
						
						
						
							|  |  |     */
 | 
						
						
						
							|  |  |     getMirror(n: number): number | undefined;
 | 
						
						
						
							|  |  |     /**
 | 
						
						
						
							|  |  |     Append the inverse of the given mapping to this one.
 | 
						
						
						
							|  |  |     */
 | 
						
						
						
							|  |  |     appendMappingInverted(mapping: Mapping): void;
 | 
						
						
						
							|  |  |     /**
 | 
						
						
						
							|  |  |     Create an inverted version of this mapping.
 | 
						
						
						
							|  |  |     */
 | 
						
						
						
							|  |  |     invert(): Mapping;
 | 
						
						
						
							|  |  |     /**
 | 
						
						
						
							|  |  |     Map a position through this mapping.
 | 
						
						
						
							|  |  |     */
 | 
						
						
						
							|  |  |     map(pos: number, assoc?: number): number;
 | 
						
						
						
							|  |  |     /**
 | 
						
						
						
							|  |  |     Map a position through this mapping, returning a mapping
 | 
						
						
						
							|  |  |     result.
 | 
						
						
						
							|  |  |     */
 | 
						
						
						
							|  |  |     mapResult(pos: number, assoc?: number): MapResult;
 | 
						
						
						
							|  |  | }
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | /**
 | 
						
						
						
							|  |  | A step object represents an atomic change. It generally applies
 | 
						
						
						
							|  |  | only to the document it was created for, since the positions
 | 
						
						
						
							|  |  | stored in it will only make sense for that document.
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | New steps are defined by creating classes that extend `Step`,
 | 
						
						
						
							|  |  | overriding the `apply`, `invert`, `map`, `getMap` and `fromJSON`
 | 
						
						
						
							|  |  | methods, and registering your class with a unique
 | 
						
						
						
							|  |  | JSON-serialization identifier using
 | 
						
						
						
							|  |  | [`Step.jsonID`](https://prosemirror.net/docs/ref/#transform.Step^jsonID).
 | 
						
						
						
							|  |  | */
 | 
						
						
						
							|  |  | declare abstract class Step {
 | 
						
						
						
							|  |  |     /**
 | 
						
						
						
							|  |  |     Applies this step to the given document, returning a result
 | 
						
						
						
							|  |  |     object that either indicates failure, if the step can not be
 | 
						
						
						
							|  |  |     applied to this document, or indicates success by containing a
 | 
						
						
						
							|  |  |     transformed document.
 | 
						
						
						
							|  |  |     */
 | 
						
						
						
							|  |  |     abstract apply(doc: Node): StepResult;
 | 
						
						
						
							|  |  |     /**
 | 
						
						
						
							|  |  |     Get the step map that represents the changes made by this step,
 | 
						
						
						
							|  |  |     and which can be used to transform between positions in the old
 | 
						
						
						
							|  |  |     and the new document.
 | 
						
						
						
							|  |  |     */
 | 
						
						
						
							|  |  |     getMap(): StepMap;
 | 
						
						
						
							|  |  |     /**
 | 
						
						
						
							|  |  |     Create an inverted version of this step. Needs the document as it
 | 
						
						
						
							|  |  |     was before the step as argument.
 | 
						
						
						
							|  |  |     */
 | 
						
						
						
							|  |  |     abstract invert(doc: Node): Step;
 | 
						
						
						
							|  |  |     /**
 | 
						
						
						
							|  |  |     Map this step through a mappable thing, returning either a
 | 
						
						
						
							|  |  |     version of that step with its positions adjusted, or `null` if
 | 
						
						
						
							|  |  |     the step was entirely deleted by the mapping.
 | 
						
						
						
							|  |  |     */
 | 
						
						
						
							|  |  |     abstract map(mapping: Mappable): Step | null;
 | 
						
						
						
							|  |  |     /**
 | 
						
						
						
							|  |  |     Try to merge this step with another one, to be applied directly
 | 
						
						
						
							|  |  |     after it. Returns the merged step when possible, null if the
 | 
						
						
						
							|  |  |     steps can't be merged.
 | 
						
						
						
							|  |  |     */
 | 
						
						
						
							|  |  |     merge(other: Step): Step | null;
 | 
						
						
						
							|  |  |     /**
 | 
						
						
						
							|  |  |     Create a JSON-serializeable representation of this step. When
 | 
						
						
						
							|  |  |     defining this for a custom subclass, make sure the result object
 | 
						
						
						
							|  |  |     includes the step type's [JSON id](https://prosemirror.net/docs/ref/#transform.Step^jsonID) under
 | 
						
						
						
							|  |  |     the `stepType` property.
 | 
						
						
						
							|  |  |     */
 | 
						
						
						
							|  |  |     abstract toJSON(): any;
 | 
						
						
						
							|  |  |     /**
 | 
						
						
						
							|  |  |     Deserialize a step from its JSON representation. Will call
 | 
						
						
						
							|  |  |     through to the step class' own implementation of this method.
 | 
						
						
						
							|  |  |     */
 | 
						
						
						
							|  |  |     static fromJSON(schema: Schema, json: any): Step;
 | 
						
						
						
							|  |  |     /**
 | 
						
						
						
							|  |  |     To be able to serialize steps to JSON, each step needs a string
 | 
						
						
						
							|  |  |     ID to attach to its JSON representation. Use this method to
 | 
						
						
						
							|  |  |     register an ID for your step classes. Try to pick something
 | 
						
						
						
							|  |  |     that's unlikely to clash with steps from other modules.
 | 
						
						
						
							|  |  |     */
 | 
						
						
						
							|  |  |     static jsonID(id: string, stepClass: {
 | 
						
						
						
							|  |  |         fromJSON(schema: Schema, json: any): Step;
 | 
						
						
						
							|  |  |     }): {
 | 
						
						
						
							|  |  |         fromJSON(schema: Schema, json: any): Step;
 | 
						
						
						
							|  |  |     };
 | 
						
						
						
							|  |  | }
 | 
						
						
						
							|  |  | /**
 | 
						
						
						
							|  |  | The result of [applying](https://prosemirror.net/docs/ref/#transform.Step.apply) a step. Contains either a
 | 
						
						
						
							|  |  | new document or a failure value.
 | 
						
						
						
							|  |  | */
 | 
						
						
						
							|  |  | declare class StepResult {
 | 
						
						
						
							|  |  |     /**
 | 
						
						
						
							|  |  |     The transformed document, if successful.
 | 
						
						
						
							|  |  |     */
 | 
						
						
						
							|  |  |     readonly doc: Node | null;
 | 
						
						
						
							|  |  |     /**
 | 
						
						
						
							|  |  |     The failure message, if unsuccessful.
 | 
						
						
						
							|  |  |     */
 | 
						
						
						
							|  |  |     readonly failed: string | null;
 | 
						
						
						
							|  |  |     /**
 | 
						
						
						
							|  |  |     Create a successful step result.
 | 
						
						
						
							|  |  |     */
 | 
						
						
						
							|  |  |     static ok(doc: Node): StepResult;
 | 
						
						
						
							|  |  |     /**
 | 
						
						
						
							|  |  |     Create a failed step result.
 | 
						
						
						
							|  |  |     */
 | 
						
						
						
							|  |  |     static fail(message: string): StepResult;
 | 
						
						
						
							|  |  |     /**
 | 
						
						
						
							|  |  |     Call [`Node.replace`](https://prosemirror.net/docs/ref/#model.Node.replace) with the given
 | 
						
						
						
							|  |  |     arguments. Create a successful result if it succeeds, and a
 | 
						
						
						
							|  |  |     failed one if it throws a `ReplaceError`.
 | 
						
						
						
							|  |  |     */
 | 
						
						
						
							|  |  |     static fromReplace(doc: Node, from: number, to: number, slice: Slice): StepResult;
 | 
						
						
						
							|  |  | }
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | /**
 | 
						
						
						
							|  |  | Abstraction to build up and track an array of
 | 
						
						
						
							|  |  | [steps](https://prosemirror.net/docs/ref/#transform.Step) representing a document transformation.
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | Most transforming methods return the `Transform` object itself, so
 | 
						
						
						
							|  |  | that they can be chained.
 | 
						
						
						
							|  |  | */
 | 
						
						
						
							|  |  | declare class Transform {
 | 
						
						
						
							|  |  |     /**
 | 
						
						
						
							|  |  |     The current document (the result of applying the steps in the
 | 
						
						
						
							|  |  |     transform).
 | 
						
						
						
							|  |  |     */
 | 
						
						
						
							|  |  |     doc: Node;
 | 
						
						
						
							|  |  |     /**
 | 
						
						
						
							|  |  |     The steps in this transform.
 | 
						
						
						
							|  |  |     */
 | 
						
						
						
							|  |  |     readonly steps: Step[];
 | 
						
						
						
							|  |  |     /**
 | 
						
						
						
							|  |  |     The documents before each of the steps.
 | 
						
						
						
							|  |  |     */
 | 
						
						
						
							|  |  |     readonly docs: Node[];
 | 
						
						
						
							|  |  |     /**
 | 
						
						
						
							|  |  |     A mapping with the maps for each of the steps in this transform.
 | 
						
						
						
							|  |  |     */
 | 
						
						
						
							|  |  |     readonly mapping: Mapping;
 | 
						
						
						
							|  |  |     /**
 | 
						
						
						
							|  |  |     Create a transform that starts with the given document.
 | 
						
						
						
							|  |  |     */
 | 
						
						
						
							|  |  |     constructor(
 | 
						
						
						
							|  |  |     /**
 | 
						
						
						
							|  |  |     The current document (the result of applying the steps in the
 | 
						
						
						
							|  |  |     transform).
 | 
						
						
						
							|  |  |     */
 | 
						
						
						
							|  |  |     doc: Node);
 | 
						
						
						
							|  |  |     /**
 | 
						
						
						
							|  |  |     The starting document.
 | 
						
						
						
							|  |  |     */
 | 
						
						
						
							|  |  |     get before(): Node;
 | 
						
						
						
							|  |  |     /**
 | 
						
						
						
							|  |  |     Apply a new step in this transform, saving the result. Throws an
 | 
						
						
						
							|  |  |     error when the step fails.
 | 
						
						
						
							|  |  |     */
 | 
						
						
						
							|  |  |     step(step: Step): this;
 | 
						
						
						
							|  |  |     /**
 | 
						
						
						
							|  |  |     Try to apply a step in this transformation, ignoring it if it
 | 
						
						
						
							|  |  |     fails. Returns the step result.
 | 
						
						
						
							|  |  |     */
 | 
						
						
						
							|  |  |     maybeStep(step: Step): StepResult;
 | 
						
						
						
							|  |  |     /**
 | 
						
						
						
							|  |  |     True when the document has been changed (when there are any
 | 
						
						
						
							|  |  |     steps).
 | 
						
						
						
							|  |  |     */
 | 
						
						
						
							|  |  |     get docChanged(): boolean;
 | 
						
						
						
							|  |  |     /**
 | 
						
						
						
							|  |  |     Replace the part of the document between `from` and `to` with the
 | 
						
						
						
							|  |  |     given `slice`.
 | 
						
						
						
							|  |  |     */
 | 
						
						
						
							|  |  |     replace(from: number, to?: number, slice?: Slice): this;
 | 
						
						
						
							|  |  |     /**
 | 
						
						
						
							|  |  |     Replace the given range with the given content, which may be a
 | 
						
						
						
							|  |  |     fragment, node, or array of nodes.
 | 
						
						
						
							|  |  |     */
 | 
						
						
						
							|  |  |     replaceWith(from: number, to: number, content: Fragment | Node | readonly Node[]): this;
 | 
						
						
						
							|  |  |     /**
 | 
						
						
						
							|  |  |     Delete the content between the given positions.
 | 
						
						
						
							|  |  |     */
 | 
						
						
						
							|  |  |     delete(from: number, to: number): this;
 | 
						
						
						
							|  |  |     /**
 | 
						
						
						
							|  |  |     Insert the given content at the given position.
 | 
						
						
						
							|  |  |     */
 | 
						
						
						
							|  |  |     insert(pos: number, content: Fragment | Node | readonly Node[]): this;
 | 
						
						
						
							|  |  |     /**
 | 
						
						
						
							|  |  |     Replace a range of the document with a given slice, using
 | 
						
						
						
							|  |  |     `from`, `to`, and the slice's
 | 
						
						
						
							|  |  |     [`openStart`](https://prosemirror.net/docs/ref/#model.Slice.openStart) property as hints, rather
 | 
						
						
						
							|  |  |     than fixed start and end points. This method may grow the
 | 
						
						
						
							|  |  |     replaced area or close open nodes in the slice in order to get a
 | 
						
						
						
							|  |  |     fit that is more in line with WYSIWYG expectations, by dropping
 | 
						
						
						
							|  |  |     fully covered parent nodes of the replaced region when they are
 | 
						
						
						
							|  |  |     marked [non-defining as
 | 
						
						
						
							|  |  |     context](https://prosemirror.net/docs/ref/#model.NodeSpec.definingAsContext), or including an
 | 
						
						
						
							|  |  |     open parent node from the slice that _is_ marked as [defining
 | 
						
						
						
							|  |  |     its content](https://prosemirror.net/docs/ref/#model.NodeSpec.definingForContent).
 | 
						
						
						
							|  |  |     
 | 
						
						
						
							|  |  |     This is the method, for example, to handle paste. The similar
 | 
						
						
						
							|  |  |     [`replace`](https://prosemirror.net/docs/ref/#transform.Transform.replace) method is a more
 | 
						
						
						
							|  |  |     primitive tool which will _not_ move the start and end of its given
 | 
						
						
						
							|  |  |     range, and is useful in situations where you need more precise
 | 
						
						
						
							|  |  |     control over what happens.
 | 
						
						
						
							|  |  |     */
 | 
						
						
						
							|  |  |     replaceRange(from: number, to: number, slice: Slice): this;
 | 
						
						
						
							|  |  |     /**
 | 
						
						
						
							|  |  |     Replace the given range with a node, but use `from` and `to` as
 | 
						
						
						
							|  |  |     hints, rather than precise positions. When from and to are the same
 | 
						
						
						
							|  |  |     and are at the start or end of a parent node in which the given
 | 
						
						
						
							|  |  |     node doesn't fit, this method may _move_ them out towards a parent
 | 
						
						
						
							|  |  |     that does allow the given node to be placed. When the given range
 | 
						
						
						
							|  |  |     completely covers a parent node, this method may completely replace
 | 
						
						
						
							|  |  |     that parent node.
 | 
						
						
						
							|  |  |     */
 | 
						
						
						
							|  |  |     replaceRangeWith(from: number, to: number, node: Node): this;
 | 
						
						
						
							|  |  |     /**
 | 
						
						
						
							|  |  |     Delete the given range, expanding it to cover fully covered
 | 
						
						
						
							|  |  |     parent nodes until a valid replace is found.
 | 
						
						
						
							|  |  |     */
 | 
						
						
						
							|  |  |     deleteRange(from: number, to: number): this;
 | 
						
						
						
							|  |  |     /**
 | 
						
						
						
							|  |  |     Split the content in the given range off from its parent, if there
 | 
						
						
						
							|  |  |     is sibling content before or after it, and move it up the tree to
 | 
						
						
						
							|  |  |     the depth specified by `target`. You'll probably want to use
 | 
						
						
						
							|  |  |     [`liftTarget`](https://prosemirror.net/docs/ref/#transform.liftTarget) to compute `target`, to make
 | 
						
						
						
							|  |  |     sure the lift is valid.
 | 
						
						
						
							|  |  |     */
 | 
						
						
						
							|  |  |     lift(range: NodeRange, target: number): this;
 | 
						
						
						
							|  |  |     /**
 | 
						
						
						
							|  |  |     Join the blocks around the given position. If depth is 2, their
 | 
						
						
						
							|  |  |     last and first siblings are also joined, and so on.
 | 
						
						
						
							|  |  |     */
 | 
						
						
						
							|  |  |     join(pos: number, depth?: number): this;
 | 
						
						
						
							|  |  |     /**
 | 
						
						
						
							|  |  |     Wrap the given [range](https://prosemirror.net/docs/ref/#model.NodeRange) in the given set of wrappers.
 | 
						
						
						
							|  |  |     The wrappers are assumed to be valid in this position, and should
 | 
						
						
						
							|  |  |     probably be computed with [`findWrapping`](https://prosemirror.net/docs/ref/#transform.findWrapping).
 | 
						
						
						
							|  |  |     */
 | 
						
						
						
							|  |  |     wrap(range: NodeRange, wrappers: readonly {
 | 
						
						
						
							|  |  |         type: NodeType;
 | 
						
						
						
							|  |  |         attrs?: Attrs | null;
 | 
						
						
						
							|  |  |     }[]): this;
 | 
						
						
						
							|  |  |     /**
 | 
						
						
						
							|  |  |     Set the type of all textblocks (partly) between `from` and `to` to
 | 
						
						
						
							|  |  |     the given node type with the given attributes.
 | 
						
						
						
							|  |  |     */
 | 
						
						
						
							|  |  |     setBlockType(from: number, to: number | undefined, type: NodeType, attrs?: Attrs | null): this;
 | 
						
						
						
							|  |  |     /**
 | 
						
						
						
							|  |  |     Change the type, attributes, and/or marks of the node at `pos`.
 | 
						
						
						
							|  |  |     When `type` isn't given, the existing node type is preserved,
 | 
						
						
						
							|  |  |     */
 | 
						
						
						
							|  |  |     setNodeMarkup(pos: number, type?: NodeType | null, attrs?: Attrs | null, marks?: readonly Mark[]): this;
 | 
						
						
						
							|  |  |     /**
 | 
						
						
						
							|  |  |     Set a single attribute on a given node to a new value.
 | 
						
						
						
							|  |  |     */
 | 
						
						
						
							|  |  |     setNodeAttribute(pos: number, attr: string, value: any): this;
 | 
						
						
						
							|  |  |     /**
 | 
						
						
						
							|  |  |     Add a mark to the node at position `pos`.
 | 
						
						
						
							|  |  |     */
 | 
						
						
						
							|  |  |     addNodeMark(pos: number, mark: Mark): this;
 | 
						
						
						
							|  |  |     /**
 | 
						
						
						
							|  |  |     Remove a mark (or a mark of the given type) from the node at
 | 
						
						
						
							|  |  |     position `pos`.
 | 
						
						
						
							|  |  |     */
 | 
						
						
						
							|  |  |     removeNodeMark(pos: number, mark: Mark | MarkType): this;
 | 
						
						
						
							|  |  |     /**
 | 
						
						
						
							|  |  |     Split the node at the given position, and optionally, if `depth` is
 | 
						
						
						
							|  |  |     greater than one, any number of nodes above that. By default, the
 | 
						
						
						
							|  |  |     parts split off will inherit the node type of the original node.
 | 
						
						
						
							|  |  |     This can be changed by passing an array of types and attributes to
 | 
						
						
						
							|  |  |     use after the split.
 | 
						
						
						
							|  |  |     */
 | 
						
						
						
							|  |  |     split(pos: number, depth?: number, typesAfter?: (null | {
 | 
						
						
						
							|  |  |         type: NodeType;
 | 
						
						
						
							|  |  |         attrs?: Attrs | null;
 | 
						
						
						
							|  |  |     })[]): this;
 | 
						
						
						
							|  |  |     /**
 | 
						
						
						
							|  |  |     Add the given mark to the inline content between `from` and `to`.
 | 
						
						
						
							|  |  |     */
 | 
						
						
						
							|  |  |     addMark(from: number, to: number, mark: Mark): this;
 | 
						
						
						
							|  |  |     /**
 | 
						
						
						
							|  |  |     Remove marks from inline nodes between `from` and `to`. When
 | 
						
						
						
							|  |  |     `mark` is a single mark, remove precisely that mark. When it is
 | 
						
						
						
							|  |  |     a mark type, remove all marks of that type. When it is null,
 | 
						
						
						
							|  |  |     remove all marks of any type.
 | 
						
						
						
							|  |  |     */
 | 
						
						
						
							|  |  |     removeMark(from: number, to: number, mark?: Mark | MarkType | null): this;
 | 
						
						
						
							|  |  |     /**
 | 
						
						
						
							|  |  |     Removes all marks and nodes from the content of the node at
 | 
						
						
						
							|  |  |     `pos` that don't match the given new parent node type. Accepts
 | 
						
						
						
							|  |  |     an optional starting [content match](https://prosemirror.net/docs/ref/#model.ContentMatch) as
 | 
						
						
						
							|  |  |     third argument.
 | 
						
						
						
							|  |  |     */
 | 
						
						
						
							|  |  |     clearIncompatible(pos: number, parentType: NodeType, match?: ContentMatch): this;
 | 
						
						
						
							|  |  | }
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | /**
 | 
						
						
						
							|  |  | Try to find a target depth to which the content in the given range
 | 
						
						
						
							|  |  | can be lifted. Will not go across
 | 
						
						
						
							|  |  | [isolating](https://prosemirror.net/docs/ref/#model.NodeSpec.isolating) parent nodes.
 | 
						
						
						
							|  |  | */
 | 
						
						
						
							|  |  | declare function liftTarget(range: NodeRange): number | null;
 | 
						
						
						
							|  |  | /**
 | 
						
						
						
							|  |  | Try to find a valid way to wrap the content in the given range in a
 | 
						
						
						
							|  |  | node of the given type. May introduce extra nodes around and inside
 | 
						
						
						
							|  |  | the wrapper node, if necessary. Returns null if no valid wrapping
 | 
						
						
						
							|  |  | could be found. When `innerRange` is given, that range's content is
 | 
						
						
						
							|  |  | used as the content to fit into the wrapping, instead of the
 | 
						
						
						
							|  |  | content of `range`.
 | 
						
						
						
							|  |  | */
 | 
						
						
						
							|  |  | declare function findWrapping(range: NodeRange, nodeType: NodeType, attrs?: Attrs | null, innerRange?: NodeRange): {
 | 
						
						
						
							|  |  |     type: NodeType;
 | 
						
						
						
							|  |  |     attrs: Attrs | null;
 | 
						
						
						
							|  |  | }[] | null;
 | 
						
						
						
							|  |  | /**
 | 
						
						
						
							|  |  | Check whether splitting at the given position is allowed.
 | 
						
						
						
							|  |  | */
 | 
						
						
						
							|  |  | declare function canSplit(doc: Node, pos: number, depth?: number, typesAfter?: (null | {
 | 
						
						
						
							|  |  |     type: NodeType;
 | 
						
						
						
							|  |  |     attrs?: Attrs | null;
 | 
						
						
						
							|  |  | })[]): boolean;
 | 
						
						
						
							|  |  | /**
 | 
						
						
						
							|  |  | Test whether the blocks before and after a given position can be
 | 
						
						
						
							|  |  | joined.
 | 
						
						
						
							|  |  | */
 | 
						
						
						
							|  |  | declare function canJoin(doc: Node, pos: number): boolean;
 | 
						
						
						
							|  |  | /**
 | 
						
						
						
							|  |  | Find an ancestor of the given position that can be joined to the
 | 
						
						
						
							|  |  | block before (or after if `dir` is positive). Returns the joinable
 | 
						
						
						
							|  |  | point, if any.
 | 
						
						
						
							|  |  | */
 | 
						
						
						
							|  |  | declare function joinPoint(doc: Node, pos: number, dir?: number): number | undefined;
 | 
						
						
						
							|  |  | /**
 | 
						
						
						
							|  |  | Try to find a point where a node of the given type can be inserted
 | 
						
						
						
							|  |  | near `pos`, by searching up the node hierarchy when `pos` itself
 | 
						
						
						
							|  |  | isn't a valid place but is at the start or end of a node. Return
 | 
						
						
						
							|  |  | null if no position was found.
 | 
						
						
						
							|  |  | */
 | 
						
						
						
							|  |  | declare function insertPoint(doc: Node, pos: number, nodeType: NodeType): number | null;
 | 
						
						
						
							|  |  | /**
 | 
						
						
						
							|  |  | Finds a position at or around the given position where the given
 | 
						
						
						
							|  |  | slice can be inserted. Will look at parent nodes' nearest boundary
 | 
						
						
						
							|  |  | and try there, even if the original position wasn't directly at the
 | 
						
						
						
							|  |  | start or end of that node. Returns null when no position was found.
 | 
						
						
						
							|  |  | */
 | 
						
						
						
							|  |  | declare function dropPoint(doc: Node, pos: number, slice: Slice): number | null;
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | /**
 | 
						
						
						
							|  |  | Add a mark to all inline content between two positions.
 | 
						
						
						
							|  |  | */
 | 
						
						
						
							|  |  | declare class AddMarkStep extends Step {
 | 
						
						
						
							|  |  |     /**
 | 
						
						
						
							|  |  |     The start of the marked range.
 | 
						
						
						
							|  |  |     */
 | 
						
						
						
							|  |  |     readonly from: number;
 | 
						
						
						
							|  |  |     /**
 | 
						
						
						
							|  |  |     The end of the marked range.
 | 
						
						
						
							|  |  |     */
 | 
						
						
						
							|  |  |     readonly to: number;
 | 
						
						
						
							|  |  |     /**
 | 
						
						
						
							|  |  |     The mark to add.
 | 
						
						
						
							|  |  |     */
 | 
						
						
						
							|  |  |     readonly mark: Mark;
 | 
						
						
						
							|  |  |     /**
 | 
						
						
						
							|  |  |     Create a mark step.
 | 
						
						
						
							|  |  |     */
 | 
						
						
						
							|  |  |     constructor(
 | 
						
						
						
							|  |  |     /**
 | 
						
						
						
							|  |  |     The start of the marked range.
 | 
						
						
						
							|  |  |     */
 | 
						
						
						
							|  |  |     from: number, 
 | 
						
						
						
							|  |  |     /**
 | 
						
						
						
							|  |  |     The end of the marked range.
 | 
						
						
						
							|  |  |     */
 | 
						
						
						
							|  |  |     to: number, 
 | 
						
						
						
							|  |  |     /**
 | 
						
						
						
							|  |  |     The mark to add.
 | 
						
						
						
							|  |  |     */
 | 
						
						
						
							|  |  |     mark: Mark);
 | 
						
						
						
							|  |  |     apply(doc: Node): StepResult;
 | 
						
						
						
							|  |  |     invert(): Step;
 | 
						
						
						
							|  |  |     map(mapping: Mappable): Step | null;
 | 
						
						
						
							|  |  |     merge(other: Step): Step | null;
 | 
						
						
						
							|  |  |     toJSON(): any;
 | 
						
						
						
							|  |  | }
 | 
						
						
						
							|  |  | /**
 | 
						
						
						
							|  |  | Remove a mark from all inline content between two positions.
 | 
						
						
						
							|  |  | */
 | 
						
						
						
							|  |  | declare class RemoveMarkStep extends Step {
 | 
						
						
						
							|  |  |     /**
 | 
						
						
						
							|  |  |     The start of the unmarked range.
 | 
						
						
						
							|  |  |     */
 | 
						
						
						
							|  |  |     readonly from: number;
 | 
						
						
						
							|  |  |     /**
 | 
						
						
						
							|  |  |     The end of the unmarked range.
 | 
						
						
						
							|  |  |     */
 | 
						
						
						
							|  |  |     readonly to: number;
 | 
						
						
						
							|  |  |     /**
 | 
						
						
						
							|  |  |     The mark to remove.
 | 
						
						
						
							|  |  |     */
 | 
						
						
						
							|  |  |     readonly mark: Mark;
 | 
						
						
						
							|  |  |     /**
 | 
						
						
						
							|  |  |     Create a mark-removing step.
 | 
						
						
						
							|  |  |     */
 | 
						
						
						
							|  |  |     constructor(
 | 
						
						
						
							|  |  |     /**
 | 
						
						
						
							|  |  |     The start of the unmarked range.
 | 
						
						
						
							|  |  |     */
 | 
						
						
						
							|  |  |     from: number, 
 | 
						
						
						
							|  |  |     /**
 | 
						
						
						
							|  |  |     The end of the unmarked range.
 | 
						
						
						
							|  |  |     */
 | 
						
						
						
							|  |  |     to: number, 
 | 
						
						
						
							|  |  |     /**
 | 
						
						
						
							|  |  |     The mark to remove.
 | 
						
						
						
							|  |  |     */
 | 
						
						
						
							|  |  |     mark: Mark);
 | 
						
						
						
							|  |  |     apply(doc: Node): StepResult;
 | 
						
						
						
							|  |  |     invert(): Step;
 | 
						
						
						
							|  |  |     map(mapping: Mappable): Step | null;
 | 
						
						
						
							|  |  |     merge(other: Step): Step | null;
 | 
						
						
						
							|  |  |     toJSON(): any;
 | 
						
						
						
							|  |  | }
 | 
						
						
						
							|  |  | /**
 | 
						
						
						
							|  |  | Add a mark to a specific node.
 | 
						
						
						
							|  |  | */
 | 
						
						
						
							|  |  | declare class AddNodeMarkStep extends Step {
 | 
						
						
						
							|  |  |     /**
 | 
						
						
						
							|  |  |     The position of the target node.
 | 
						
						
						
							|  |  |     */
 | 
						
						
						
							|  |  |     readonly pos: number;
 | 
						
						
						
							|  |  |     /**
 | 
						
						
						
							|  |  |     The mark to add.
 | 
						
						
						
							|  |  |     */
 | 
						
						
						
							|  |  |     readonly mark: Mark;
 | 
						
						
						
							|  |  |     /**
 | 
						
						
						
							|  |  |     Create a node mark step.
 | 
						
						
						
							|  |  |     */
 | 
						
						
						
							|  |  |     constructor(
 | 
						
						
						
							|  |  |     /**
 | 
						
						
						
							|  |  |     The position of the target node.
 | 
						
						
						
							|  |  |     */
 | 
						
						
						
							|  |  |     pos: number, 
 | 
						
						
						
							|  |  |     /**
 | 
						
						
						
							|  |  |     The mark to add.
 | 
						
						
						
							|  |  |     */
 | 
						
						
						
							|  |  |     mark: Mark);
 | 
						
						
						
							|  |  |     apply(doc: Node): StepResult;
 | 
						
						
						
							|  |  |     invert(doc: Node): Step;
 | 
						
						
						
							|  |  |     map(mapping: Mappable): Step | null;
 | 
						
						
						
							|  |  |     toJSON(): any;
 | 
						
						
						
							|  |  | }
 | 
						
						
						
							|  |  | /**
 | 
						
						
						
							|  |  | Remove a mark from a specific node.
 | 
						
						
						
							|  |  | */
 | 
						
						
						
							|  |  | declare class RemoveNodeMarkStep extends Step {
 | 
						
						
						
							|  |  |     /**
 | 
						
						
						
							|  |  |     The position of the target node.
 | 
						
						
						
							|  |  |     */
 | 
						
						
						
							|  |  |     readonly pos: number;
 | 
						
						
						
							|  |  |     /**
 | 
						
						
						
							|  |  |     The mark to remove.
 | 
						
						
						
							|  |  |     */
 | 
						
						
						
							|  |  |     readonly mark: Mark;
 | 
						
						
						
							|  |  |     /**
 | 
						
						
						
							|  |  |     Create a mark-removing step.
 | 
						
						
						
							|  |  |     */
 | 
						
						
						
							|  |  |     constructor(
 | 
						
						
						
							|  |  |     /**
 | 
						
						
						
							|  |  |     The position of the target node.
 | 
						
						
						
							|  |  |     */
 | 
						
						
						
							|  |  |     pos: number, 
 | 
						
						
						
							|  |  |     /**
 | 
						
						
						
							|  |  |     The mark to remove.
 | 
						
						
						
							|  |  |     */
 | 
						
						
						
							|  |  |     mark: Mark);
 | 
						
						
						
							|  |  |     apply(doc: Node): StepResult;
 | 
						
						
						
							|  |  |     invert(doc: Node): Step;
 | 
						
						
						
							|  |  |     map(mapping: Mappable): Step | null;
 | 
						
						
						
							|  |  |     toJSON(): any;
 | 
						
						
						
							|  |  | }
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | /**
 | 
						
						
						
							|  |  | Replace a part of the document with a slice of new content.
 | 
						
						
						
							|  |  | */
 | 
						
						
						
							|  |  | declare class ReplaceStep extends Step {
 | 
						
						
						
							|  |  |     /**
 | 
						
						
						
							|  |  |     The start position of the replaced range.
 | 
						
						
						
							|  |  |     */
 | 
						
						
						
							|  |  |     readonly from: number;
 | 
						
						
						
							|  |  |     /**
 | 
						
						
						
							|  |  |     The end position of the replaced range.
 | 
						
						
						
							|  |  |     */
 | 
						
						
						
							|  |  |     readonly to: number;
 | 
						
						
						
							|  |  |     /**
 | 
						
						
						
							|  |  |     The slice to insert.
 | 
						
						
						
							|  |  |     */
 | 
						
						
						
							|  |  |     readonly slice: Slice;
 | 
						
						
						
							|  |  |     /**
 | 
						
						
						
							|  |  |     The given `slice` should fit the 'gap' between `from` and
 | 
						
						
						
							|  |  |     `to`—the depths must line up, and the surrounding nodes must be
 | 
						
						
						
							|  |  |     able to be joined with the open sides of the slice. When
 | 
						
						
						
							|  |  |     `structure` is true, the step will fail if the content between
 | 
						
						
						
							|  |  |     from and to is not just a sequence of closing and then opening
 | 
						
						
						
							|  |  |     tokens (this is to guard against rebased replace steps
 | 
						
						
						
							|  |  |     overwriting something they weren't supposed to).
 | 
						
						
						
							|  |  |     */
 | 
						
						
						
							|  |  |     constructor(
 | 
						
						
						
							|  |  |     /**
 | 
						
						
						
							|  |  |     The start position of the replaced range.
 | 
						
						
						
							|  |  |     */
 | 
						
						
						
							|  |  |     from: number, 
 | 
						
						
						
							|  |  |     /**
 | 
						
						
						
							|  |  |     The end position of the replaced range.
 | 
						
						
						
							|  |  |     */
 | 
						
						
						
							|  |  |     to: number, 
 | 
						
						
						
							|  |  |     /**
 | 
						
						
						
							|  |  |     The slice to insert.
 | 
						
						
						
							|  |  |     */
 | 
						
						
						
							|  |  |     slice: Slice, 
 | 
						
						
						
							|  |  |     /**
 | 
						
						
						
							|  |  |     @internal
 | 
						
						
						
							|  |  |     */
 | 
						
						
						
							|  |  |     structure?: boolean);
 | 
						
						
						
							|  |  |     apply(doc: Node): StepResult;
 | 
						
						
						
							|  |  |     getMap(): StepMap;
 | 
						
						
						
							|  |  |     invert(doc: Node): ReplaceStep;
 | 
						
						
						
							|  |  |     map(mapping: Mappable): ReplaceStep | null;
 | 
						
						
						
							|  |  |     merge(other: Step): ReplaceStep | null;
 | 
						
						
						
							|  |  |     toJSON(): any;
 | 
						
						
						
							|  |  | }
 | 
						
						
						
							|  |  | /**
 | 
						
						
						
							|  |  | Replace a part of the document with a slice of content, but
 | 
						
						
						
							|  |  | preserve a range of the replaced content by moving it into the
 | 
						
						
						
							|  |  | slice.
 | 
						
						
						
							|  |  | */
 | 
						
						
						
							|  |  | declare class ReplaceAroundStep extends Step {
 | 
						
						
						
							|  |  |     /**
 | 
						
						
						
							|  |  |     The start position of the replaced range.
 | 
						
						
						
							|  |  |     */
 | 
						
						
						
							|  |  |     readonly from: number;
 | 
						
						
						
							|  |  |     /**
 | 
						
						
						
							|  |  |     The end position of the replaced range.
 | 
						
						
						
							|  |  |     */
 | 
						
						
						
							|  |  |     readonly to: number;
 | 
						
						
						
							|  |  |     /**
 | 
						
						
						
							|  |  |     The start of preserved range.
 | 
						
						
						
							|  |  |     */
 | 
						
						
						
							|  |  |     readonly gapFrom: number;
 | 
						
						
						
							|  |  |     /**
 | 
						
						
						
							|  |  |     The end of preserved range.
 | 
						
						
						
							|  |  |     */
 | 
						
						
						
							|  |  |     readonly gapTo: number;
 | 
						
						
						
							|  |  |     /**
 | 
						
						
						
							|  |  |     The slice to insert.
 | 
						
						
						
							|  |  |     */
 | 
						
						
						
							|  |  |     readonly slice: Slice;
 | 
						
						
						
							|  |  |     /**
 | 
						
						
						
							|  |  |     The position in the slice where the preserved range should be
 | 
						
						
						
							|  |  |     inserted.
 | 
						
						
						
							|  |  |     */
 | 
						
						
						
							|  |  |     readonly insert: number;
 | 
						
						
						
							|  |  |     /**
 | 
						
						
						
							|  |  |     Create a replace-around step with the given range and gap.
 | 
						
						
						
							|  |  |     `insert` should be the point in the slice into which the content
 | 
						
						
						
							|  |  |     of the gap should be moved. `structure` has the same meaning as
 | 
						
						
						
							|  |  |     it has in the [`ReplaceStep`](https://prosemirror.net/docs/ref/#transform.ReplaceStep) class.
 | 
						
						
						
							|  |  |     */
 | 
						
						
						
							|  |  |     constructor(
 | 
						
						
						
							|  |  |     /**
 | 
						
						
						
							|  |  |     The start position of the replaced range.
 | 
						
						
						
							|  |  |     */
 | 
						
						
						
							|  |  |     from: number, 
 | 
						
						
						
							|  |  |     /**
 | 
						
						
						
							|  |  |     The end position of the replaced range.
 | 
						
						
						
							|  |  |     */
 | 
						
						
						
							|  |  |     to: number, 
 | 
						
						
						
							|  |  |     /**
 | 
						
						
						
							|  |  |     The start of preserved range.
 | 
						
						
						
							|  |  |     */
 | 
						
						
						
							|  |  |     gapFrom: number, 
 | 
						
						
						
							|  |  |     /**
 | 
						
						
						
							|  |  |     The end of preserved range.
 | 
						
						
						
							|  |  |     */
 | 
						
						
						
							|  |  |     gapTo: number, 
 | 
						
						
						
							|  |  |     /**
 | 
						
						
						
							|  |  |     The slice to insert.
 | 
						
						
						
							|  |  |     */
 | 
						
						
						
							|  |  |     slice: Slice, 
 | 
						
						
						
							|  |  |     /**
 | 
						
						
						
							|  |  |     The position in the slice where the preserved range should be
 | 
						
						
						
							|  |  |     inserted.
 | 
						
						
						
							|  |  |     */
 | 
						
						
						
							|  |  |     insert: number, 
 | 
						
						
						
							|  |  |     /**
 | 
						
						
						
							|  |  |     @internal
 | 
						
						
						
							|  |  |     */
 | 
						
						
						
							|  |  |     structure?: boolean);
 | 
						
						
						
							|  |  |     apply(doc: Node): StepResult;
 | 
						
						
						
							|  |  |     getMap(): StepMap;
 | 
						
						
						
							|  |  |     invert(doc: Node): ReplaceAroundStep;
 | 
						
						
						
							|  |  |     map(mapping: Mappable): ReplaceAroundStep | null;
 | 
						
						
						
							|  |  |     toJSON(): any;
 | 
						
						
						
							|  |  | }
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | /**
 | 
						
						
						
							|  |  | Update an attribute in a specific node.
 | 
						
						
						
							|  |  | */
 | 
						
						
						
							|  |  | declare class AttrStep extends Step {
 | 
						
						
						
							|  |  |     /**
 | 
						
						
						
							|  |  |     The position of the target node.
 | 
						
						
						
							|  |  |     */
 | 
						
						
						
							|  |  |     readonly pos: number;
 | 
						
						
						
							|  |  |     /**
 | 
						
						
						
							|  |  |     The attribute to set.
 | 
						
						
						
							|  |  |     */
 | 
						
						
						
							|  |  |     readonly attr: string;
 | 
						
						
						
							|  |  |     readonly value: any;
 | 
						
						
						
							|  |  |     /**
 | 
						
						
						
							|  |  |     Construct an attribute step.
 | 
						
						
						
							|  |  |     */
 | 
						
						
						
							|  |  |     constructor(
 | 
						
						
						
							|  |  |     /**
 | 
						
						
						
							|  |  |     The position of the target node.
 | 
						
						
						
							|  |  |     */
 | 
						
						
						
							|  |  |     pos: number, 
 | 
						
						
						
							|  |  |     /**
 | 
						
						
						
							|  |  |     The attribute to set.
 | 
						
						
						
							|  |  |     */
 | 
						
						
						
							|  |  |     attr: string, value: any);
 | 
						
						
						
							|  |  |     apply(doc: Node): StepResult;
 | 
						
						
						
							|  |  |     getMap(): StepMap;
 | 
						
						
						
							|  |  |     invert(doc: Node): AttrStep;
 | 
						
						
						
							|  |  |     map(mapping: Mappable): AttrStep | null;
 | 
						
						
						
							|  |  |     toJSON(): any;
 | 
						
						
						
							|  |  |     static fromJSON(schema: Schema, json: any): AttrStep;
 | 
						
						
						
							|  |  | }
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | /**
 | 
						
						
						
							|  |  | ‘Fit’ a slice into a given position in the document, producing a
 | 
						
						
						
							|  |  | [step](https://prosemirror.net/docs/ref/#transform.Step) that inserts it. Will return null if
 | 
						
						
						
							|  |  | there's no meaningful way to insert the slice here, or inserting it
 | 
						
						
						
							|  |  | would be a no-op (an empty slice over an empty range).
 | 
						
						
						
							|  |  | */
 | 
						
						
						
							|  |  | declare function replaceStep(doc: Node, from: number, to?: number, slice?: Slice): Step | null;
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | export { AddMarkStep, AddNodeMarkStep, AttrStep, MapResult, Mappable, Mapping, RemoveMarkStep, RemoveNodeMarkStep, ReplaceAroundStep, ReplaceStep, Step, StepMap, StepResult, Transform, canJoin, canSplit, dropPoint, findWrapping, insertPoint, joinPoint, liftTarget, replaceStep };
 |