/*!
 * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
 * Licensed under the MIT License.
 */
import { type FluidClientVersion, type ICodecFamily, type ICodecOptions, type IJsonCodec } from "../../codec/index.js";
import { SchemaVersion, type TreeStoredSchema } from "../../core/index.js";
import { type JsonCompatible } from "../../util/index.js";
/**
 * Convert a FluidClientVersion to a SchemaVersion.
 * @param clientVersion - The FluidClientVersion to convert.
 * @returns The SchemaVersion that corresponds to the provided FluidClientVersion.
 */
export declare function clientVersionToSchemaVersion(clientVersion: FluidClientVersion): SchemaVersion;
/**
 * Create a schema codec.
 * @param options - Specifies common codec options, including which `validator` to use.
 * @param writeVersion - The schema write version.
 * @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: ICodecOptions, writeVersion: SchemaVersion): 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: SchemaVersion): JsonCompatible;
//# sourceMappingURL=codec.d.ts.map