"use strict";
/*!
 * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
 * Licensed under the MIT License.
 */
Object.defineProperty(exports, "__esModule", { value: true });
exports.Changeset = void 0;
const typebox_1 = require("@sinclair/typebox");
const index_js_1 = require("../../codec/index.js");
const formatV2_js_1 = require("./formatV2.js");
const noAdditionalProps = { additionalProperties: false };
const Rename = typebox_1.Type.Object({
    idOverride: formatV2_js_1.CellId,
}, noAdditionalProps);
const MarkEffect = typebox_1.Type.Composite([formatV2_js_1.MarkEffect, typebox_1.Type.Object({ rename: typebox_1.Type.Optional(Rename) })], index_js_1.unionOptions);
// Return type is intentionally derived.
// eslint-disable-next-line @typescript-eslint/explicit-function-return-type
const Mark = (tNodeChange) => (0, formatV2_js_1.CellMark)(MarkEffect, tNodeChange);
// Return type is intentionally derived.
// eslint-disable-next-line @typescript-eslint/explicit-function-return-type
const Changeset = (tNodeChange) => typebox_1.Type.Array(Mark(tNodeChange));
exports.Changeset = Changeset;
//# sourceMappingURL=formatV3.js.map