/**
 * NodeRemove — removes a node by tombstoning observed dots.
 */
import Op from './Op.ts';
import type WarpState from '../../services/state/WarpState.ts';
import type OpOutcomeResult from './OpOutcomeResult.ts';
import type { MutablePatchDiff } from '../PatchDiff.ts';
import type { SnapshotBeforeOp } from './SnapshotBeforeOp.ts';
export default class NodeRemove extends Op<'NodeRemove'> {
    readonly receiptName: "NodeTombstone";
    readonly node: string;
    readonly observedDots: readonly string[];
    constructor(node: string, observedDots: string[]);
    validate(): void;
    mutate(state: WarpState): void;
    outcome(state: WarpState): OpOutcomeResult;
    snapshot(state: WarpState): SnapshotBeforeOp;
    accumulate(diff: MutablePatchDiff, state: WarpState, before: SnapshotBeforeOp): void;
}
