/*!
 * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
 * Licensed under the MIT License.
 */
import type { MinimumVersionForCollab } from "@fluidframework/runtime-definitions/internal";
import { type CodecTree, type CodecWriteOptions, type ICodecFamily } from "../codec/index.js";
import type { ChangeEncodingContext } from "../core/index.js";
import { ModularChangeFormatVersion, type ModularChangeset } from "../feature-libraries/index.js";
import { type Values } from "../util/index.js";
import type { SharedTreeChange } from "./sharedTreeChangeTypes.js";
export declare function makeSharedTreeChangeCodecFamily(modularChangeCodecFamily: ICodecFamily<ModularChangeset, ChangeEncodingContext>, options: CodecWriteOptions): ICodecFamily<SharedTreeChange, ChangeEncodingContext>;
interface ChangeFormatDependencies {
    readonly modularChange: ModularChangeFormatVersion;
}
/**
 * The format version for `SharedTreeChange`.
 */
export declare const SharedTreeChangeFormatVersion: {
    readonly v3: import("../util/brand.js").Brand<3, "SharedTreeChangeFormatVersion">;
    readonly v4: import("../util/brand.js").Brand<4, "SharedTreeChangeFormatVersion">;
    readonly v5: import("../util/brand.js").Brand<5, "SharedTreeChangeFormatVersion">;
};
export type SharedTreeChangeFormatVersion = Values<typeof SharedTreeChangeFormatVersion>;
/**
 * Defines for each SharedTree change format the corresponding dependent formats to use.
 * This is an arbitrary mapping that is injected in the SharedTree change codec.
 * Once an entry is defined and used in production, it cannot be changed.
 * This is because the format for the dependent formats are not explicitly versioned.
 * @remarks
 * SchemaFormatVersion (used by SchemaChangeFormat) is not included here since it is explicitly versioned.
 */
export declare const dependenciesForChangeFormat: Map<SharedTreeChangeFormatVersion, ChangeFormatDependencies>;
export declare function getCodecTreeForChangeFormat(version: SharedTreeChangeFormatVersion, clientVersion: MinimumVersionForCollab): CodecTree;
export {};
//# sourceMappingURL=sharedTreeChangeCodecs.d.ts.map