/**
 * EdgeRemove — removes an edge 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 EdgeRemove extends Op<'EdgeRemove'> {
    readonly receiptName: "EdgeTombstone";
    readonly from: string;
    readonly to: string;
    readonly label: string;
    readonly observedDots: readonly string[];
    constructor({ from, to, label, observedDots }: {
        from: string;
        to: string;
        label: 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;
}
