/*!
 * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
 * Licensed under the MIT License.
 */
import { CellId, HasMarkFields, Detach, Insert, Mark, NewAttach, Revive, Transient } from "./format";
export declare type EmptyInputCellMark<TNodeChange> = Mark<TNodeChange> & DetachedCellMark;
/**
 * A mark that spans one or more cells.
 * The spanned cells may be populated (e.g., "Delete") or not (e.g., "Revive").
 */
export declare type CellSpanningMark<TNodeChange> = Exclude<Mark<TNodeChange>, NewAttach<TNodeChange>>;
export interface DetachedCellMark extends HasMarkFields {
    cellId: CellId;
}
export declare type GenerativeMark<TNodeChange> = Insert<TNodeChange> | Revive<TNodeChange>;
export declare type TransientMark<TNodeChange> = GenerativeMark<TNodeChange> & Transient;
export declare type EmptyOutputCellMark<TNodeChange> = TransientMark<TNodeChange> | Detach<TNodeChange>;
//# sourceMappingURL=helperTypes.d.ts.map