/*!
 * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
 * Licensed under the MIT License.
 */
import { type CodecTree, type CodecWriteOptions, type ICodecFamily, type ICodecOptions, type IJsonCodec } from "../../codec/index.js";
import { SchemaFormatVersion, type TreeStoredSchema } from "../../core/index.js";
import { type JsonCompatible } from "../../util/index.js";
import type { MinimumVersionForCollab } from "@fluidframework/runtime-definitions/internal";
/**
 * Convert a MinimumVersionForCollab to a SchemaFormatVersion.
 * @param clientVersion - The MinimumVersionForCollab to convert.
 * @returns The SchemaFormatVersion that corresponds to the provided MinimumVersionForCollab.
 */
export declare function clientVersionToSchemaVersion(clientVersion: MinimumVersionForCollab): SchemaFormatVersion;
export declare function getCodecTreeForSchemaFormat(clientVersion: MinimumVersionForCollab): CodecTree;
/**
 * Create a schema codec.
 * @param options - Specifies common codec options, including `minVersionForCollab` and which `validator` to use.
 * @param writeVersionOverride - The schema version to write. If not provided, the version will be derived from `minVersionForCollab`.
 * @returns The composed codec.
 *
 * @privateRemarks We should consider using the Shared Tree format version instead as it may be more valuable for application authors than the schema version.
 */
export declare function makeSchemaCodec(options: CodecWriteOptions, writeVersionOverride?: SchemaFormatVersion): IJsonCodec<TreeStoredSchema>;
/**
 * Create a family of schema codecs.
 * @param options - Specifies common codec options, including which `validator` to use.
 * @returns The composed codec family.
 */
export declare function makeSchemaCodecs(options: ICodecOptions): ICodecFamily<TreeStoredSchema>;
/**
 * Encode an in-memory TreeStoredSchema into the specified format version.
 * @param repo - The in-memory schema.
 * @param version - The schema write version.
 * @returns The encoded schema.
 */
export declare function encodeRepo(repo: TreeStoredSchema, version: SchemaFormatVersion): JsonCompatible;
//# sourceMappingURL=codec.d.ts.map