/*!
 * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
 * Licensed under the MIT License.
 */
import { TSchema } from "@sinclair/typebox";
import { ChangeAtomId, ChangesetLocalId, ITreeCursorSynchronous, JsonableTree, RevisionTag } from "../../core";
import { NodeChangeset } from "../modular-schema";
/**
 * The contents of a node to be created
 */
export declare type ProtoNode = JsonableTree;
export declare const ProtoNode: import("@sinclair/typebox").TAny;
export declare type CellCount = number;
export declare const CellCount: import("@sinclair/typebox").TNumber;
/**
 * Left undefined for terseness.
 */
export declare const NoopMarkType: undefined;
/**
 * A monotonically increasing positive integer assigned to an individual mark within the changeset.
 * MoveIds are scoped to a single changeset, so referring to MoveIds across changesets requires
 * qualifying them by change tag.
 *
 * The uniqueness of IDs is leveraged to uniquely identify the matching move-out for a move-in/return and vice-versa.
 */
export declare type MoveId = ChangesetLocalId;
export declare const MoveId: import("@sinclair/typebox").TUnsafe<ChangesetLocalId>;
export interface HasMoveId {
    /**
     * The sequential ID assigned to a change within a transaction.
     */
    id: MoveId;
}
export declare const HasMoveId: import("@sinclair/typebox").TObject<{
    id: import("@sinclair/typebox").TUnsafe<ChangesetLocalId>;
}>;
export declare type NodeChangeType = NodeChangeset;
/**
 * Represents a position within a contiguous range of nodes detached by a single changeset.
 * Note that `LineageEvent`s with the same revision are not necessarily referring to the same detach.
 * `LineageEvent`s for a given revision can only be meaningfully compared if it is known that they must refer to the
 * same detach.
 * @public
 */
export interface LineageEvent {
    readonly revision: RevisionTag;
    readonly id: ChangesetLocalId;
    readonly count: number;
    /**
     * The position of this mark within a range of nodes which were detached in this revision.
     */
    readonly offset: number;
}
export declare const LineageEvent: import("@sinclair/typebox").TObject<{
    revision: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
    id: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TUnsafe<ChangesetLocalId>>;
    count: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TNumber>;
    offset: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TNumber>;
}>;
/**
 * @public
 */
export interface HasLineage {
    /**
     * History of detaches adjacent to the cells described by this `ChangeAtomId`.
     */
    lineage?: LineageEvent[];
}
export declare const HasLineage: import("@sinclair/typebox").TObject<{
    lineage: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
        revision: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
        id: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TUnsafe<ChangesetLocalId>>;
        count: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TNumber>;
        offset: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TNumber>;
    }>>>;
}>;
export interface IdRange {
    id: ChangesetLocalId;
    count: CellCount;
}
export declare const IdRange: import("@sinclair/typebox").TObject<{
    id: import("@sinclair/typebox").TUnsafe<ChangesetLocalId>;
    count: import("@sinclair/typebox").TNumber;
}>;
/**
 * @public
 */
export interface CellId extends ChangeAtomId, HasLineage {
    /**
     * List of all cell local IDs (including this one) which were adjacent and emptied in the same revision as this one.
     * The IDs are ordered in sequence order, and are used for determining the relative position of cells.
     * `CellId` objects may share an array, so this should not be mutated.
     */
    adjacentCells?: IdRange[];
}
export declare const CellId: import("@sinclair/typebox").TObject<{
    revision: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
    localId: import("@sinclair/typebox").TUnsafe<ChangesetLocalId>;
    lineage: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
        revision: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
        id: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TUnsafe<ChangesetLocalId>>;
        count: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TNumber>;
        offset: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TNumber>;
    }>>>;
    adjacentCells: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
        id: import("@sinclair/typebox").TUnsafe<ChangesetLocalId>;
        count: import("@sinclair/typebox").TNumber;
    }>>;
}>;
/**
 * Mark which targets a range of existing cells instead of creating new cells.
 */
export interface HasMarkFields<TNodeChange = never> {
    /**
     * Describes the detach which last emptied the target cells,
     * or the attach which allocated the cells if the cells have never been filled.
     * Undefined if the target cells are not empty in this mark's input context.
     */
    cellId?: CellId;
    changes?: TNodeChange;
    count: CellCount;
}
export declare const HasMarkFields: <TNodeChange extends TSchema>(tNodeChange: TNodeChange) => import("@sinclair/typebox").TObject<{
    cellId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
        revision: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
        localId: import("@sinclair/typebox").TUnsafe<ChangesetLocalId>;
        lineage: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
            revision: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
            id: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TUnsafe<ChangesetLocalId>>;
            count: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TNumber>;
            offset: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TNumber>;
        }>>>;
        adjacentCells: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
            id: import("@sinclair/typebox").TUnsafe<ChangesetLocalId>;
            count: import("@sinclair/typebox").TNumber;
        }>>;
    }>>;
    changes: import("@sinclair/typebox").TOptional<TNodeChange>;
    count: import("@sinclair/typebox").TNumber;
}>;
export interface HasReattachFields<TNodeChange = never> extends HasMarkFields<TNodeChange> {
    /**
     * The revision this mark is inverting a detach from.
     * If defined this mark is a revert-only inverse,
     * meaning that it will only reattach nodes if those nodes were last detached by `inverseOf`.
     * If `inverseOf` is undefined, this mark will reattach nodes regardless of when they were last detached.
     */
    inverseOf?: RevisionTag;
}
export declare const HasReattachFields: <TNodeChange extends TSchema>(tNodeChange: TNodeChange) => import("@sinclair/typebox").TObject<import("@sinclair/typebox").TCompositeReduce<[import("@sinclair/typebox").TObject<{
    inverseOf: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
}>, import("@sinclair/typebox").TObject<{
    cellId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
        revision: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
        localId: import("@sinclair/typebox").TUnsafe<ChangesetLocalId>;
        lineage: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
            revision: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
            id: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TUnsafe<ChangesetLocalId>>;
            count: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TNumber>;
            offset: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TNumber>;
        }>>>;
        adjacentCells: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
            id: import("@sinclair/typebox").TUnsafe<ChangesetLocalId>;
            count: import("@sinclair/typebox").TNumber;
        }>>;
    }>>;
    changes: import("@sinclair/typebox").TOptional<TNodeChange>;
    count: import("@sinclair/typebox").TNumber;
}>]>>;
export interface NoopMark<TNodeChange> extends HasMarkFields<TNodeChange> {
    /**
     * Declared for consistency with other marks.
     * Left undefined for terseness.
     */
    type?: typeof NoopMarkType;
}
export declare const NoopMark: <TNodeChange extends TSchema>(tNodeChange: TNodeChange) => import("@sinclair/typebox").TObject<import("@sinclair/typebox").TCompositeReduce<[import("@sinclair/typebox").TObject<{
    cellId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
        revision: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
        localId: import("@sinclair/typebox").TUnsafe<ChangesetLocalId>;
        lineage: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
            revision: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
            id: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TUnsafe<ChangesetLocalId>>;
            count: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TNumber>;
            offset: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TNumber>;
        }>>>;
        adjacentCells: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
            id: import("@sinclair/typebox").TUnsafe<ChangesetLocalId>;
            count: import("@sinclair/typebox").TNumber;
        }>>;
    }>>;
    changes: import("@sinclair/typebox").TOptional<TNodeChange>;
    count: import("@sinclair/typebox").TNumber;
}>]>>;
export interface HasRevisionTag {
    /**
     * The revision this mark is part of.
     * Only set for marks in fields which are a composition of multiple revisions.
     */
    revision?: RevisionTag;
}
export declare const HasRevisionTag: import("@sinclair/typebox").TObject<{
    revision: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
}>;
export interface Transient {
    /**
     * The details of the change that deletes the transient content.
     */
    transientDetach: ChangeAtomId;
}
export declare const Transient: import("@sinclair/typebox").TObject<{
    detachedBy: import("@sinclair/typebox").TObject<{
        revision: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
        localId: import("@sinclair/typebox").TUnsafe<ChangesetLocalId>;
    }>;
}>;
export declare type CanBeTransient = Partial<Transient>;
export declare const CanBeTransient: import("@sinclair/typebox").TObject<{
    detachedBy: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
        revision: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
        localId: import("@sinclair/typebox").TUnsafe<ChangesetLocalId>;
    }>>;
}>;
export interface Insert<TNodeChange = NodeChangeType> extends HasMarkFields<TNodeChange>, HasRevisionTag, CanBeTransient {
    type: "Insert";
    content: ProtoNode[];
}
export declare const Insert: <Schema extends TSchema>(tNodeChange: Schema) => import("@sinclair/typebox").TObject<import("@sinclair/typebox").TCompositeReduce<[import("@sinclair/typebox").TObject<{
    cellId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
        revision: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
        localId: import("@sinclair/typebox").TUnsafe<ChangesetLocalId>;
        lineage: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
            revision: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
            id: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TUnsafe<ChangesetLocalId>>;
            count: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TNumber>;
            offset: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TNumber>;
        }>>>;
        adjacentCells: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
            id: import("@sinclair/typebox").TUnsafe<ChangesetLocalId>;
            count: import("@sinclair/typebox").TNumber;
        }>>;
    }>>;
    changes: import("@sinclair/typebox").TOptional<Schema>;
    count: import("@sinclair/typebox").TNumber;
}>, import("@sinclair/typebox").TObject<{
    revision: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
}>, import("@sinclair/typebox").TObject<{
    detachedBy: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
        revision: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
        localId: import("@sinclair/typebox").TUnsafe<ChangesetLocalId>;
    }>>;
}>, import("@sinclair/typebox").TObject<{
    type: import("@sinclair/typebox").TLiteral<"Insert">;
    content: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TAny>;
}>]>>;
export interface MoveIn extends HasMoveId, HasMarkFields, HasRevisionTag {
    type: "MoveIn";
    /**
     * When true, the corresponding MoveOut has a conflict.
     * This is independent of whether this mark has a conflict.
     */
    isSrcConflicted?: true;
}
export declare const MoveIn: import("@sinclair/typebox").TObject<{
    revision: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
    count: import("@sinclair/typebox").TNumber;
    changes: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUndefined>;
    cellId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
        revision: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
        localId: import("@sinclair/typebox").TUnsafe<ChangesetLocalId>;
        lineage: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
            revision: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
            id: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TUnsafe<ChangesetLocalId>>;
            count: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TNumber>;
            offset: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TNumber>;
        }>>>;
        adjacentCells: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
            id: import("@sinclair/typebox").TUnsafe<ChangesetLocalId>;
            count: import("@sinclair/typebox").TNumber;
        }>>;
    }>>;
    type: import("@sinclair/typebox").TLiteral<"MoveIn">;
    id: import("@sinclair/typebox").TUnsafe<ChangesetLocalId>;
    isSrcConflicted: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TLiteral<true>>;
}>;
export interface InverseAttachFields {
    detachIdOverride?: ChangeAtomId;
}
export declare const InverseAttachFields: import("@sinclair/typebox").TObject<{
    detachIdOverride: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
        revision: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
        localId: import("@sinclair/typebox").TUnsafe<ChangesetLocalId>;
    }>>;
}>;
export interface Delete<TNodeChange = NodeChangeType> extends HasRevisionTag, HasMarkFields<TNodeChange>, InverseAttachFields {
    type: "Delete";
    id: ChangesetLocalId;
}
export declare const Delete: <Schema extends TSchema>(tNodeChange: Schema) => import("@sinclair/typebox").TObject<import("@sinclair/typebox").TCompositeReduce<[import("@sinclair/typebox").TObject<{
    revision: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
}>, import("@sinclair/typebox").TObject<{
    cellId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
        revision: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
        localId: import("@sinclair/typebox").TUnsafe<ChangesetLocalId>;
        lineage: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
            revision: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
            id: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TUnsafe<ChangesetLocalId>>;
            count: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TNumber>;
            offset: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TNumber>;
        }>>>;
        adjacentCells: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
            id: import("@sinclair/typebox").TUnsafe<ChangesetLocalId>;
            count: import("@sinclair/typebox").TNumber;
        }>>;
    }>>;
    changes: import("@sinclair/typebox").TOptional<Schema>;
    count: import("@sinclair/typebox").TNumber;
}>, import("@sinclair/typebox").TObject<{
    detachIdOverride: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
        revision: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
        localId: import("@sinclair/typebox").TUnsafe<ChangesetLocalId>;
    }>>;
}>, import("@sinclair/typebox").TObject<{
    type: import("@sinclair/typebox").TLiteral<"Delete">;
    id: import("@sinclair/typebox").TUnsafe<ChangesetLocalId>;
}>]>>;
export interface MoveOut<TNodeChange = NodeChangeType> extends HasRevisionTag, HasMoveId, HasMarkFields<TNodeChange> {
    type: "MoveOut";
}
export declare const MoveOut: <Schema extends TSchema>(tNodeChange: Schema) => import("@sinclair/typebox").TObject<import("@sinclair/typebox").TCompositeReduce<[import("@sinclair/typebox").TObject<{
    revision: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
}>, import("@sinclair/typebox").TObject<{
    id: import("@sinclair/typebox").TUnsafe<ChangesetLocalId>;
}>, import("@sinclair/typebox").TObject<{
    cellId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
        revision: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
        localId: import("@sinclair/typebox").TUnsafe<ChangesetLocalId>;
        lineage: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
            revision: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
            id: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TUnsafe<ChangesetLocalId>>;
            count: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TNumber>;
            offset: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TNumber>;
        }>>>;
        adjacentCells: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
            id: import("@sinclair/typebox").TUnsafe<ChangesetLocalId>;
            count: import("@sinclair/typebox").TNumber;
        }>>;
    }>>;
    changes: import("@sinclair/typebox").TOptional<Schema>;
    count: import("@sinclair/typebox").TNumber;
}>, import("@sinclair/typebox").TObject<{
    type: import("@sinclair/typebox").TLiteral<"MoveOut">;
}>]>>;
export interface Revive<TNodeChange = NodeChangeType> extends HasReattachFields<TNodeChange>, HasRevisionTag, CanBeTransient {
    type: "Revive";
    content: ITreeCursorSynchronous[];
}
export declare const Revive: <Schema extends TSchema>(tNodeChange: Schema) => import("@sinclair/typebox").TObject<import("@sinclair/typebox").TCompositeReduce<[import("@sinclair/typebox").TObject<import("@sinclair/typebox").TCompositeReduce<[import("@sinclair/typebox").TObject<{
    inverseOf: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
}>, import("@sinclair/typebox").TObject<{
    cellId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
        revision: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
        localId: import("@sinclair/typebox").TUnsafe<ChangesetLocalId>;
        lineage: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
            revision: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
            id: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TUnsafe<ChangesetLocalId>>;
            count: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TNumber>;
            offset: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TNumber>;
        }>>>;
        adjacentCells: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
            id: import("@sinclair/typebox").TUnsafe<ChangesetLocalId>;
            count: import("@sinclair/typebox").TNumber;
        }>>;
    }>>;
    changes: import("@sinclair/typebox").TOptional<Schema>;
    count: import("@sinclair/typebox").TNumber;
}>]>>, import("@sinclair/typebox").TObject<{
    revision: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
}>, import("@sinclair/typebox").TObject<{
    detachedBy: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
        revision: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
        localId: import("@sinclair/typebox").TUnsafe<ChangesetLocalId>;
    }>>;
}>, import("@sinclair/typebox").TObject<{
    type: import("@sinclair/typebox").TLiteral<"Revive">;
    content: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TAny>;
}>]>>;
export interface ReturnTo extends HasReattachFields, HasRevisionTag, HasMoveId {
    type: "ReturnTo";
    /**
     * When true, the corresponding ReturnFrom has a conflict.
     * This is independent of whether this mark has a conflict.
     */
    isSrcConflicted?: true;
}
export declare const ReturnTo: import("@sinclair/typebox").TObject<{
    revision: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
    inverseOf: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
    count: import("@sinclair/typebox").TNumber;
    changes: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUndefined>;
    cellId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
        revision: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
        localId: import("@sinclair/typebox").TUnsafe<ChangesetLocalId>;
        lineage: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
            revision: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
            id: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TUnsafe<ChangesetLocalId>>;
            count: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TNumber>;
            offset: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TNumber>;
        }>>>;
        adjacentCells: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
            id: import("@sinclair/typebox").TUnsafe<ChangesetLocalId>;
            count: import("@sinclair/typebox").TNumber;
        }>>;
    }>>;
    type: import("@sinclair/typebox").TLiteral<"ReturnTo">;
    id: import("@sinclair/typebox").TUnsafe<ChangesetLocalId>;
    isSrcConflicted: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TLiteral<true>>;
}>;
export interface ReturnFrom<TNodeChange = NodeChangeType> extends HasRevisionTag, HasMoveId, HasMarkFields<TNodeChange>, InverseAttachFields {
    type: "ReturnFrom";
    /**
     * When true, the corresponding ReturnTo has a conflict.
     * This is independent of whether this mark has a conflict.
     */
    isDstConflicted?: true;
}
export declare const ReturnFrom: <Schema extends TSchema>(tNodeChange: Schema) => import("@sinclair/typebox").TObject<import("@sinclair/typebox").TCompositeReduce<[import("@sinclair/typebox").TObject<{
    revision: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
}>, import("@sinclair/typebox").TObject<{
    id: import("@sinclair/typebox").TUnsafe<ChangesetLocalId>;
}>, import("@sinclair/typebox").TObject<{
    cellId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
        revision: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
        localId: import("@sinclair/typebox").TUnsafe<ChangesetLocalId>;
        lineage: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
            revision: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
            id: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TUnsafe<ChangesetLocalId>>;
            count: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TNumber>;
            offset: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TNumber>;
        }>>>;
        adjacentCells: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
            id: import("@sinclair/typebox").TUnsafe<ChangesetLocalId>;
            count: import("@sinclair/typebox").TNumber;
        }>>;
    }>>;
    changes: import("@sinclair/typebox").TOptional<Schema>;
    count: import("@sinclair/typebox").TNumber;
}>, import("@sinclair/typebox").TObject<{
    detachIdOverride: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
        revision: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
        localId: import("@sinclair/typebox").TUnsafe<ChangesetLocalId>;
    }>>;
}>, import("@sinclair/typebox").TObject<{
    type: import("@sinclair/typebox").TLiteral<"ReturnFrom">;
    isDstConflicted: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TLiteral<true>>;
}>]>>;
/**
 * An attach mark that allocates new cells.
 */
export declare type NewAttach<TNodeChange = NodeChangeType> = Insert<TNodeChange> | MoveIn;
export declare const NewAttach: <Schema extends TSchema>(tNodeChange: Schema) => import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<import("@sinclair/typebox").TCompositeReduce<[import("@sinclair/typebox").TObject<{
    cellId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
        revision: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
        localId: import("@sinclair/typebox").TUnsafe<ChangesetLocalId>;
        lineage: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
            revision: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
            id: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TUnsafe<ChangesetLocalId>>;
            count: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TNumber>;
            offset: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TNumber>;
        }>>>;
        adjacentCells: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
            id: import("@sinclair/typebox").TUnsafe<ChangesetLocalId>;
            count: import("@sinclair/typebox").TNumber;
        }>>;
    }>>;
    changes: import("@sinclair/typebox").TOptional<Schema>;
    count: import("@sinclair/typebox").TNumber;
}>, import("@sinclair/typebox").TObject<{
    revision: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
}>, import("@sinclair/typebox").TObject<{
    detachedBy: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
        revision: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
        localId: import("@sinclair/typebox").TUnsafe<ChangesetLocalId>;
    }>>;
}>, import("@sinclair/typebox").TObject<{
    type: import("@sinclair/typebox").TLiteral<"Insert">;
    content: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TAny>;
}>]>>, import("@sinclair/typebox").TObject<{
    revision: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
    count: import("@sinclair/typebox").TNumber;
    changes: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUndefined>;
    cellId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
        revision: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
        localId: import("@sinclair/typebox").TUnsafe<ChangesetLocalId>;
        lineage: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
            revision: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
            id: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TUnsafe<ChangesetLocalId>>;
            count: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TNumber>;
            offset: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TNumber>;
        }>>>;
        adjacentCells: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
            id: import("@sinclair/typebox").TUnsafe<ChangesetLocalId>;
            count: import("@sinclair/typebox").TNumber;
        }>>;
    }>>;
    type: import("@sinclair/typebox").TLiteral<"MoveIn">;
    id: import("@sinclair/typebox").TUnsafe<ChangesetLocalId>;
    isSrcConflicted: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TLiteral<true>>;
}>]>;
export declare type Reattach<TNodeChange = NodeChangeType> = Revive<TNodeChange> | ReturnTo;
export declare const Reattach: <Schema extends TSchema>(tNodeChange: Schema) => import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<import("@sinclair/typebox").TCompositeReduce<[import("@sinclair/typebox").TObject<import("@sinclair/typebox").TCompositeReduce<[import("@sinclair/typebox").TObject<{
    inverseOf: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
}>, import("@sinclair/typebox").TObject<{
    cellId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
        revision: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
        localId: import("@sinclair/typebox").TUnsafe<ChangesetLocalId>;
        lineage: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
            revision: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
            id: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TUnsafe<ChangesetLocalId>>;
            count: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TNumber>;
            offset: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TNumber>;
        }>>>;
        adjacentCells: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
            id: import("@sinclair/typebox").TUnsafe<ChangesetLocalId>;
            count: import("@sinclair/typebox").TNumber;
        }>>;
    }>>;
    changes: import("@sinclair/typebox").TOptional<Schema>;
    count: import("@sinclair/typebox").TNumber;
}>]>>, import("@sinclair/typebox").TObject<{
    revision: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
}>, import("@sinclair/typebox").TObject<{
    detachedBy: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
        revision: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
        localId: import("@sinclair/typebox").TUnsafe<ChangesetLocalId>;
    }>>;
}>, import("@sinclair/typebox").TObject<{
    type: import("@sinclair/typebox").TLiteral<"Revive">;
    content: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TAny>;
}>]>>, import("@sinclair/typebox").TObject<{
    revision: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
    inverseOf: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
    count: import("@sinclair/typebox").TNumber;
    changes: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUndefined>;
    cellId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
        revision: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
        localId: import("@sinclair/typebox").TUnsafe<ChangesetLocalId>;
        lineage: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
            revision: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
            id: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TUnsafe<ChangesetLocalId>>;
            count: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TNumber>;
            offset: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TNumber>;
        }>>>;
        adjacentCells: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
            id: import("@sinclair/typebox").TUnsafe<ChangesetLocalId>;
            count: import("@sinclair/typebox").TNumber;
        }>>;
    }>>;
    type: import("@sinclair/typebox").TLiteral<"ReturnTo">;
    id: import("@sinclair/typebox").TUnsafe<ChangesetLocalId>;
    isSrcConflicted: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TLiteral<true>>;
}>]>;
export declare type Attach<TNodeChange = NodeChangeType> = NewAttach<TNodeChange> | Reattach<TNodeChange>;
export declare const Attach: <Schema extends TSchema>(tNodeChange: Schema) => import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<import("@sinclair/typebox").TCompositeReduce<[import("@sinclair/typebox").TObject<{
    cellId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
        revision: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
        localId: import("@sinclair/typebox").TUnsafe<ChangesetLocalId>;
        lineage: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
            revision: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
            id: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TUnsafe<ChangesetLocalId>>;
            count: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TNumber>;
            offset: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TNumber>;
        }>>>;
        adjacentCells: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
            id: import("@sinclair/typebox").TUnsafe<ChangesetLocalId>;
            count: import("@sinclair/typebox").TNumber;
        }>>;
    }>>;
    changes: import("@sinclair/typebox").TOptional<Schema>;
    count: import("@sinclair/typebox").TNumber;
}>, import("@sinclair/typebox").TObject<{
    revision: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
}>, import("@sinclair/typebox").TObject<{
    detachedBy: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
        revision: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
        localId: import("@sinclair/typebox").TUnsafe<ChangesetLocalId>;
    }>>;
}>, import("@sinclair/typebox").TObject<{
    type: import("@sinclair/typebox").TLiteral<"Insert">;
    content: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TAny>;
}>]>>, import("@sinclair/typebox").TObject<{
    revision: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
    count: import("@sinclair/typebox").TNumber;
    changes: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUndefined>;
    cellId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
        revision: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
        localId: import("@sinclair/typebox").TUnsafe<ChangesetLocalId>;
        lineage: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
            revision: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
            id: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TUnsafe<ChangesetLocalId>>;
            count: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TNumber>;
            offset: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TNumber>;
        }>>>;
        adjacentCells: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
            id: import("@sinclair/typebox").TUnsafe<ChangesetLocalId>;
            count: import("@sinclair/typebox").TNumber;
        }>>;
    }>>;
    type: import("@sinclair/typebox").TLiteral<"MoveIn">;
    id: import("@sinclair/typebox").TUnsafe<ChangesetLocalId>;
    isSrcConflicted: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TLiteral<true>>;
}>]>, import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<import("@sinclair/typebox").TCompositeReduce<[import("@sinclair/typebox").TObject<import("@sinclair/typebox").TCompositeReduce<[import("@sinclair/typebox").TObject<{
    inverseOf: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
}>, import("@sinclair/typebox").TObject<{
    cellId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
        revision: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
        localId: import("@sinclair/typebox").TUnsafe<ChangesetLocalId>;
        lineage: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
            revision: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
            id: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TUnsafe<ChangesetLocalId>>;
            count: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TNumber>;
            offset: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TNumber>;
        }>>>;
        adjacentCells: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
            id: import("@sinclair/typebox").TUnsafe<ChangesetLocalId>;
            count: import("@sinclair/typebox").TNumber;
        }>>;
    }>>;
    changes: import("@sinclair/typebox").TOptional<Schema>;
    count: import("@sinclair/typebox").TNumber;
}>]>>, import("@sinclair/typebox").TObject<{
    revision: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
}>, import("@sinclair/typebox").TObject<{
    detachedBy: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
        revision: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
        localId: import("@sinclair/typebox").TUnsafe<ChangesetLocalId>;
    }>>;
}>, import("@sinclair/typebox").TObject<{
    type: import("@sinclair/typebox").TLiteral<"Revive">;
    content: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TAny>;
}>]>>, import("@sinclair/typebox").TObject<{
    revision: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
    inverseOf: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
    count: import("@sinclair/typebox").TNumber;
    changes: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUndefined>;
    cellId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
        revision: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
        localId: import("@sinclair/typebox").TUnsafe<ChangesetLocalId>;
        lineage: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
            revision: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
            id: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TUnsafe<ChangesetLocalId>>;
            count: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TNumber>;
            offset: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TNumber>;
        }>>>;
        adjacentCells: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
            id: import("@sinclair/typebox").TUnsafe<ChangesetLocalId>;
            count: import("@sinclair/typebox").TNumber;
        }>>;
    }>>;
    type: import("@sinclair/typebox").TLiteral<"ReturnTo">;
    id: import("@sinclair/typebox").TUnsafe<ChangesetLocalId>;
    isSrcConflicted: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TLiteral<true>>;
}>]>]>;
export declare type Detach<TNodeChange = NodeChangeType> = Delete<TNodeChange> | MoveOut<TNodeChange> | ReturnFrom<TNodeChange>;
export declare const Detach: <Schema extends TSchema>(tNodeChange: Schema) => import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<import("@sinclair/typebox").TCompositeReduce<[import("@sinclair/typebox").TObject<{
    revision: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
}>, import("@sinclair/typebox").TObject<{
    cellId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
        revision: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
        localId: import("@sinclair/typebox").TUnsafe<ChangesetLocalId>;
        lineage: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
            revision: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
            id: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TUnsafe<ChangesetLocalId>>;
            count: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TNumber>;
            offset: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TNumber>;
        }>>>;
        adjacentCells: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
            id: import("@sinclair/typebox").TUnsafe<ChangesetLocalId>;
            count: import("@sinclair/typebox").TNumber;
        }>>;
    }>>;
    changes: import("@sinclair/typebox").TOptional<Schema>;
    count: import("@sinclair/typebox").TNumber;
}>, import("@sinclair/typebox").TObject<{
    detachIdOverride: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
        revision: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
        localId: import("@sinclair/typebox").TUnsafe<ChangesetLocalId>;
    }>>;
}>, import("@sinclair/typebox").TObject<{
    type: import("@sinclair/typebox").TLiteral<"Delete">;
    id: import("@sinclair/typebox").TUnsafe<ChangesetLocalId>;
}>]>>, import("@sinclair/typebox").TObject<import("@sinclair/typebox").TCompositeReduce<[import("@sinclair/typebox").TObject<{
    revision: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
}>, import("@sinclair/typebox").TObject<{
    id: import("@sinclair/typebox").TUnsafe<ChangesetLocalId>;
}>, import("@sinclair/typebox").TObject<{
    cellId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
        revision: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
        localId: import("@sinclair/typebox").TUnsafe<ChangesetLocalId>;
        lineage: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
            revision: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
            id: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TUnsafe<ChangesetLocalId>>;
            count: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TNumber>;
            offset: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TNumber>;
        }>>>;
        adjacentCells: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
            id: import("@sinclair/typebox").TUnsafe<ChangesetLocalId>;
            count: import("@sinclair/typebox").TNumber;
        }>>;
    }>>;
    changes: import("@sinclair/typebox").TOptional<Schema>;
    count: import("@sinclair/typebox").TNumber;
}>, import("@sinclair/typebox").TObject<{
    type: import("@sinclair/typebox").TLiteral<"MoveOut">;
}>]>>, import("@sinclair/typebox").TObject<import("@sinclair/typebox").TCompositeReduce<[import("@sinclair/typebox").TObject<{
    revision: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
}>, import("@sinclair/typebox").TObject<{
    id: import("@sinclair/typebox").TUnsafe<ChangesetLocalId>;
}>, import("@sinclair/typebox").TObject<{
    cellId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
        revision: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
        localId: import("@sinclair/typebox").TUnsafe<ChangesetLocalId>;
        lineage: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
            revision: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
            id: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TUnsafe<ChangesetLocalId>>;
            count: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TNumber>;
            offset: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TNumber>;
        }>>>;
        adjacentCells: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
            id: import("@sinclair/typebox").TUnsafe<ChangesetLocalId>;
            count: import("@sinclair/typebox").TNumber;
        }>>;
    }>>;
    changes: import("@sinclair/typebox").TOptional<Schema>;
    count: import("@sinclair/typebox").TNumber;
}>, import("@sinclair/typebox").TObject<{
    detachIdOverride: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
        revision: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
        localId: import("@sinclair/typebox").TUnsafe<ChangesetLocalId>;
    }>>;
}>, import("@sinclair/typebox").TObject<{
    type: import("@sinclair/typebox").TLiteral<"ReturnFrom">;
    isDstConflicted: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TLiteral<true>>;
}>]>>]>;
/**
 * Mark used during compose to temporarily remember the position of nodes which were being moved
 * but had their move cancelled with an inverse.
 * This mark should only exist as part of intermediate output of compose and should be removed during the amendCompose pass.
 */
export interface MovePlaceholder<TNodeChange> extends HasMarkFields<TNodeChange>, HasRevisionTag, HasMoveId {
    type: "Placeholder";
}
export declare type Mark<TNodeChange = NodeChangeType> = NoopMark<TNodeChange> | MovePlaceholder<TNodeChange> | Attach<TNodeChange> | Detach<TNodeChange>;
export declare const Mark: <Schema extends TSchema>(tNodeChange: Schema) => import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<import("@sinclair/typebox").TCompositeReduce<[import("@sinclair/typebox").TObject<{
    cellId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
        revision: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
        localId: import("@sinclair/typebox").TUnsafe<ChangesetLocalId>;
        lineage: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
            revision: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
            id: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TUnsafe<ChangesetLocalId>>;
            count: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TNumber>;
            offset: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TNumber>;
        }>>>;
        adjacentCells: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
            id: import("@sinclair/typebox").TUnsafe<ChangesetLocalId>;
            count: import("@sinclair/typebox").TNumber;
        }>>;
    }>>;
    changes: import("@sinclair/typebox").TOptional<Schema>;
    count: import("@sinclair/typebox").TNumber;
}>]>>, import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<import("@sinclair/typebox").TCompositeReduce<[import("@sinclair/typebox").TObject<{
    cellId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
        revision: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
        localId: import("@sinclair/typebox").TUnsafe<ChangesetLocalId>;
        lineage: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
            revision: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
            id: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TUnsafe<ChangesetLocalId>>;
            count: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TNumber>;
            offset: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TNumber>;
        }>>>;
        adjacentCells: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
            id: import("@sinclair/typebox").TUnsafe<ChangesetLocalId>;
            count: import("@sinclair/typebox").TNumber;
        }>>;
    }>>;
    changes: import("@sinclair/typebox").TOptional<Schema>;
    count: import("@sinclair/typebox").TNumber;
}>, import("@sinclair/typebox").TObject<{
    revision: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
}>, import("@sinclair/typebox").TObject<{
    detachedBy: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
        revision: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
        localId: import("@sinclair/typebox").TUnsafe<ChangesetLocalId>;
    }>>;
}>, import("@sinclair/typebox").TObject<{
    type: import("@sinclair/typebox").TLiteral<"Insert">;
    content: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TAny>;
}>]>>, import("@sinclair/typebox").TObject<{
    revision: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
    count: import("@sinclair/typebox").TNumber;
    changes: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUndefined>;
    cellId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
        revision: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
        localId: import("@sinclair/typebox").TUnsafe<ChangesetLocalId>;
        lineage: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
            revision: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
            id: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TUnsafe<ChangesetLocalId>>;
            count: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TNumber>;
            offset: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TNumber>;
        }>>>;
        adjacentCells: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
            id: import("@sinclair/typebox").TUnsafe<ChangesetLocalId>;
            count: import("@sinclair/typebox").TNumber;
        }>>;
    }>>;
    type: import("@sinclair/typebox").TLiteral<"MoveIn">;
    id: import("@sinclair/typebox").TUnsafe<ChangesetLocalId>;
    isSrcConflicted: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TLiteral<true>>;
}>]>, import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<import("@sinclair/typebox").TCompositeReduce<[import("@sinclair/typebox").TObject<import("@sinclair/typebox").TCompositeReduce<[import("@sinclair/typebox").TObject<{
    inverseOf: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
}>, import("@sinclair/typebox").TObject<{
    cellId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
        revision: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
        localId: import("@sinclair/typebox").TUnsafe<ChangesetLocalId>;
        lineage: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
            revision: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
            id: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TUnsafe<ChangesetLocalId>>;
            count: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TNumber>;
            offset: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TNumber>;
        }>>>;
        adjacentCells: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
            id: import("@sinclair/typebox").TUnsafe<ChangesetLocalId>;
            count: import("@sinclair/typebox").TNumber;
        }>>;
    }>>;
    changes: import("@sinclair/typebox").TOptional<Schema>;
    count: import("@sinclair/typebox").TNumber;
}>]>>, import("@sinclair/typebox").TObject<{
    revision: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
}>, import("@sinclair/typebox").TObject<{
    detachedBy: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
        revision: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
        localId: import("@sinclair/typebox").TUnsafe<ChangesetLocalId>;
    }>>;
}>, import("@sinclair/typebox").TObject<{
    type: import("@sinclair/typebox").TLiteral<"Revive">;
    content: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TAny>;
}>]>>, import("@sinclair/typebox").TObject<{
    revision: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
    inverseOf: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
    count: import("@sinclair/typebox").TNumber;
    changes: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUndefined>;
    cellId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
        revision: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
        localId: import("@sinclair/typebox").TUnsafe<ChangesetLocalId>;
        lineage: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
            revision: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
            id: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TUnsafe<ChangesetLocalId>>;
            count: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TNumber>;
            offset: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TNumber>;
        }>>>;
        adjacentCells: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
            id: import("@sinclair/typebox").TUnsafe<ChangesetLocalId>;
            count: import("@sinclair/typebox").TNumber;
        }>>;
    }>>;
    type: import("@sinclair/typebox").TLiteral<"ReturnTo">;
    id: import("@sinclair/typebox").TUnsafe<ChangesetLocalId>;
    isSrcConflicted: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TLiteral<true>>;
}>]>]>, import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<import("@sinclair/typebox").TCompositeReduce<[import("@sinclair/typebox").TObject<{
    revision: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
}>, import("@sinclair/typebox").TObject<{
    cellId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
        revision: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
        localId: import("@sinclair/typebox").TUnsafe<ChangesetLocalId>;
        lineage: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
            revision: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
            id: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TUnsafe<ChangesetLocalId>>;
            count: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TNumber>;
            offset: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TNumber>;
        }>>>;
        adjacentCells: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
            id: import("@sinclair/typebox").TUnsafe<ChangesetLocalId>;
            count: import("@sinclair/typebox").TNumber;
        }>>;
    }>>;
    changes: import("@sinclair/typebox").TOptional<Schema>;
    count: import("@sinclair/typebox").TNumber;
}>, import("@sinclair/typebox").TObject<{
    detachIdOverride: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
        revision: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
        localId: import("@sinclair/typebox").TUnsafe<ChangesetLocalId>;
    }>>;
}>, import("@sinclair/typebox").TObject<{
    type: import("@sinclair/typebox").TLiteral<"Delete">;
    id: import("@sinclair/typebox").TUnsafe<ChangesetLocalId>;
}>]>>, import("@sinclair/typebox").TObject<import("@sinclair/typebox").TCompositeReduce<[import("@sinclair/typebox").TObject<{
    revision: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
}>, import("@sinclair/typebox").TObject<{
    id: import("@sinclair/typebox").TUnsafe<ChangesetLocalId>;
}>, import("@sinclair/typebox").TObject<{
    cellId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
        revision: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
        localId: import("@sinclair/typebox").TUnsafe<ChangesetLocalId>;
        lineage: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
            revision: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
            id: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TUnsafe<ChangesetLocalId>>;
            count: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TNumber>;
            offset: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TNumber>;
        }>>>;
        adjacentCells: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
            id: import("@sinclair/typebox").TUnsafe<ChangesetLocalId>;
            count: import("@sinclair/typebox").TNumber;
        }>>;
    }>>;
    changes: import("@sinclair/typebox").TOptional<Schema>;
    count: import("@sinclair/typebox").TNumber;
}>, import("@sinclair/typebox").TObject<{
    type: import("@sinclair/typebox").TLiteral<"MoveOut">;
}>]>>, import("@sinclair/typebox").TObject<import("@sinclair/typebox").TCompositeReduce<[import("@sinclair/typebox").TObject<{
    revision: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
}>, import("@sinclair/typebox").TObject<{
    id: import("@sinclair/typebox").TUnsafe<ChangesetLocalId>;
}>, import("@sinclair/typebox").TObject<{
    cellId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
        revision: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
        localId: import("@sinclair/typebox").TUnsafe<ChangesetLocalId>;
        lineage: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
            revision: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
            id: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TUnsafe<ChangesetLocalId>>;
            count: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TNumber>;
            offset: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TNumber>;
        }>>>;
        adjacentCells: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
            id: import("@sinclair/typebox").TUnsafe<ChangesetLocalId>;
            count: import("@sinclair/typebox").TNumber;
        }>>;
    }>>;
    changes: import("@sinclair/typebox").TOptional<Schema>;
    count: import("@sinclair/typebox").TNumber;
}>, import("@sinclair/typebox").TObject<{
    detachIdOverride: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
        revision: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
        localId: import("@sinclair/typebox").TUnsafe<ChangesetLocalId>;
    }>>;
}>, import("@sinclair/typebox").TObject<{
    type: import("@sinclair/typebox").TLiteral<"ReturnFrom">;
    isDstConflicted: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TLiteral<true>>;
}>]>>]>]>;
export declare type MarkList<TNodeChange = NodeChangeType> = Mark<TNodeChange>[];
export declare type Changeset<TNodeChange = NodeChangeType> = MarkList<TNodeChange>;
export declare const Changeset: <Schema extends TSchema>(tNodeChange: Schema) => import("@sinclair/typebox").TArray<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<import("@sinclair/typebox").TCompositeReduce<[import("@sinclair/typebox").TObject<{
    cellId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
        revision: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
        localId: import("@sinclair/typebox").TUnsafe<ChangesetLocalId>;
        lineage: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
            revision: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
            id: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TUnsafe<ChangesetLocalId>>;
            count: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TNumber>;
            offset: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TNumber>;
        }>>>;
        adjacentCells: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
            id: import("@sinclair/typebox").TUnsafe<ChangesetLocalId>;
            count: import("@sinclair/typebox").TNumber;
        }>>;
    }>>;
    changes: import("@sinclair/typebox").TOptional<Schema>;
    count: import("@sinclair/typebox").TNumber;
}>]>>, import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<import("@sinclair/typebox").TCompositeReduce<[import("@sinclair/typebox").TObject<{
    cellId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
        revision: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
        localId: import("@sinclair/typebox").TUnsafe<ChangesetLocalId>;
        lineage: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
            revision: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
            id: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TUnsafe<ChangesetLocalId>>;
            count: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TNumber>;
            offset: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TNumber>;
        }>>>;
        adjacentCells: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
            id: import("@sinclair/typebox").TUnsafe<ChangesetLocalId>;
            count: import("@sinclair/typebox").TNumber;
        }>>;
    }>>;
    changes: import("@sinclair/typebox").TOptional<Schema>;
    count: import("@sinclair/typebox").TNumber;
}>, import("@sinclair/typebox").TObject<{
    revision: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
}>, import("@sinclair/typebox").TObject<{
    detachedBy: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
        revision: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
        localId: import("@sinclair/typebox").TUnsafe<ChangesetLocalId>;
    }>>;
}>, import("@sinclair/typebox").TObject<{
    type: import("@sinclair/typebox").TLiteral<"Insert">;
    content: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TAny>;
}>]>>, import("@sinclair/typebox").TObject<{
    revision: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
    count: import("@sinclair/typebox").TNumber;
    changes: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUndefined>;
    cellId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
        revision: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
        localId: import("@sinclair/typebox").TUnsafe<ChangesetLocalId>;
        lineage: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
            revision: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
            id: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TUnsafe<ChangesetLocalId>>;
            count: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TNumber>;
            offset: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TNumber>;
        }>>>;
        adjacentCells: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
            id: import("@sinclair/typebox").TUnsafe<ChangesetLocalId>;
            count: import("@sinclair/typebox").TNumber;
        }>>;
    }>>;
    type: import("@sinclair/typebox").TLiteral<"MoveIn">;
    id: import("@sinclair/typebox").TUnsafe<ChangesetLocalId>;
    isSrcConflicted: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TLiteral<true>>;
}>]>, import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<import("@sinclair/typebox").TCompositeReduce<[import("@sinclair/typebox").TObject<import("@sinclair/typebox").TCompositeReduce<[import("@sinclair/typebox").TObject<{
    inverseOf: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
}>, import("@sinclair/typebox").TObject<{
    cellId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
        revision: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
        localId: import("@sinclair/typebox").TUnsafe<ChangesetLocalId>;
        lineage: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
            revision: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
            id: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TUnsafe<ChangesetLocalId>>;
            count: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TNumber>;
            offset: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TNumber>;
        }>>>;
        adjacentCells: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
            id: import("@sinclair/typebox").TUnsafe<ChangesetLocalId>;
            count: import("@sinclair/typebox").TNumber;
        }>>;
    }>>;
    changes: import("@sinclair/typebox").TOptional<Schema>;
    count: import("@sinclair/typebox").TNumber;
}>]>>, import("@sinclair/typebox").TObject<{
    revision: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
}>, import("@sinclair/typebox").TObject<{
    detachedBy: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
        revision: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
        localId: import("@sinclair/typebox").TUnsafe<ChangesetLocalId>;
    }>>;
}>, import("@sinclair/typebox").TObject<{
    type: import("@sinclair/typebox").TLiteral<"Revive">;
    content: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TAny>;
}>]>>, import("@sinclair/typebox").TObject<{
    revision: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
    inverseOf: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
    count: import("@sinclair/typebox").TNumber;
    changes: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUndefined>;
    cellId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
        revision: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
        localId: import("@sinclair/typebox").TUnsafe<ChangesetLocalId>;
        lineage: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
            revision: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
            id: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TUnsafe<ChangesetLocalId>>;
            count: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TNumber>;
            offset: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TNumber>;
        }>>>;
        adjacentCells: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
            id: import("@sinclair/typebox").TUnsafe<ChangesetLocalId>;
            count: import("@sinclair/typebox").TNumber;
        }>>;
    }>>;
    type: import("@sinclair/typebox").TLiteral<"ReturnTo">;
    id: import("@sinclair/typebox").TUnsafe<ChangesetLocalId>;
    isSrcConflicted: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TLiteral<true>>;
}>]>]>, import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<import("@sinclair/typebox").TCompositeReduce<[import("@sinclair/typebox").TObject<{
    revision: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
}>, import("@sinclair/typebox").TObject<{
    cellId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
        revision: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
        localId: import("@sinclair/typebox").TUnsafe<ChangesetLocalId>;
        lineage: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
            revision: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
            id: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TUnsafe<ChangesetLocalId>>;
            count: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TNumber>;
            offset: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TNumber>;
        }>>>;
        adjacentCells: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
            id: import("@sinclair/typebox").TUnsafe<ChangesetLocalId>;
            count: import("@sinclair/typebox").TNumber;
        }>>;
    }>>;
    changes: import("@sinclair/typebox").TOptional<Schema>;
    count: import("@sinclair/typebox").TNumber;
}>, import("@sinclair/typebox").TObject<{
    detachIdOverride: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
        revision: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
        localId: import("@sinclair/typebox").TUnsafe<ChangesetLocalId>;
    }>>;
}>, import("@sinclair/typebox").TObject<{
    type: import("@sinclair/typebox").TLiteral<"Delete">;
    id: import("@sinclair/typebox").TUnsafe<ChangesetLocalId>;
}>]>>, import("@sinclair/typebox").TObject<import("@sinclair/typebox").TCompositeReduce<[import("@sinclair/typebox").TObject<{
    revision: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
}>, import("@sinclair/typebox").TObject<{
    id: import("@sinclair/typebox").TUnsafe<ChangesetLocalId>;
}>, import("@sinclair/typebox").TObject<{
    cellId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
        revision: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
        localId: import("@sinclair/typebox").TUnsafe<ChangesetLocalId>;
        lineage: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
            revision: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
            id: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TUnsafe<ChangesetLocalId>>;
            count: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TNumber>;
            offset: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TNumber>;
        }>>>;
        adjacentCells: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
            id: import("@sinclair/typebox").TUnsafe<ChangesetLocalId>;
            count: import("@sinclair/typebox").TNumber;
        }>>;
    }>>;
    changes: import("@sinclair/typebox").TOptional<Schema>;
    count: import("@sinclair/typebox").TNumber;
}>, import("@sinclair/typebox").TObject<{
    type: import("@sinclair/typebox").TLiteral<"MoveOut">;
}>]>>, import("@sinclair/typebox").TObject<import("@sinclair/typebox").TCompositeReduce<[import("@sinclair/typebox").TObject<{
    revision: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
}>, import("@sinclair/typebox").TObject<{
    id: import("@sinclair/typebox").TUnsafe<ChangesetLocalId>;
}>, import("@sinclair/typebox").TObject<{
    cellId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
        revision: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
        localId: import("@sinclair/typebox").TUnsafe<ChangesetLocalId>;
        lineage: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
            revision: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
            id: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TUnsafe<ChangesetLocalId>>;
            count: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TNumber>;
            offset: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TNumber>;
        }>>>;
        adjacentCells: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
            id: import("@sinclair/typebox").TUnsafe<ChangesetLocalId>;
            count: import("@sinclair/typebox").TNumber;
        }>>;
    }>>;
    changes: import("@sinclair/typebox").TOptional<Schema>;
    count: import("@sinclair/typebox").TNumber;
}>, import("@sinclair/typebox").TObject<{
    detachIdOverride: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
        revision: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<import("@fluidframework/runtime-definitions").StableId>>;
        localId: import("@sinclair/typebox").TUnsafe<ChangesetLocalId>;
    }>>;
}>, import("@sinclair/typebox").TObject<{
    type: import("@sinclair/typebox").TLiteral<"ReturnFrom">;
    isDstConflicted: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TLiteral<true>>;
}>]>>]>]>>;
//# sourceMappingURL=format.d.ts.map