/*!
 * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
 * Licensed under the MIT License.
 */
import { type ICodecOptions, type IJsonCodec, type IMultiFormatCodec } from "../../codec/index.js";
import { type ChangeEncodingContext, type EncodedRevisionTag, type RevisionTag } from "../../core/index.js";
import { type JsonCompatibleReadOnly } from "../../util/index.js";
import { type FieldBatchCodec } from "../chunked-forest/index.js";
import { TreeCompressionStrategy } from "../treeCompressionUtils.js";
import type { FieldKindConfiguration } from "./fieldKindConfiguration.js";
import { type FieldChangeset, type ModularChangeset } from "./modularChangeTypes.js";
import type { FieldChangeEncodingContext } from "./fieldChangeHandler.js";
import { EncodedModularChangeset } from "./modularChangeFormatV2.js";
export type ModularChangeCodec = IJsonCodec<ModularChangeset, EncodedModularChangeset, EncodedModularChangeset, ChangeEncodingContext>;
export type FieldCodec = IMultiFormatCodec<FieldChangeset, JsonCompatibleReadOnly, JsonCompatibleReadOnly, FieldChangeEncodingContext>;
export declare function makeModularChangeCodecV2(fieldKinds: FieldKindConfiguration, revisionTagCodec: IJsonCodec<RevisionTag, EncodedRevisionTag, EncodedRevisionTag, ChangeEncodingContext>, fieldsCodec: FieldBatchCodec, codecOptions: ICodecOptions, chunkCompressionStrategy?: TreeCompressionStrategy): ModularChangeCodec;
//# sourceMappingURL=modularChangeCodecV2.d.ts.map