/*! * Copyright (c) Microsoft Corporation and contributors. All rights reserved. * Licensed under the MIT License. */ import { type MinimumVersionForCollab } from "@fluidframework/runtime-definitions/internal"; import type { ContainerRuntimeOptionsInternal } from "./containerRuntime.js"; /** * Subset of the {@link ContainerRuntimeOptionsInternal} properties which * affect {@link IDocumentSchemaFeatures}. * * @remarks * When a new option is added to {@link ContainerRuntimeOptionsInternal}, we * must consider if it changes the DocumentSchema. If so, then a corresponding * entry must be added to {@link runtimeOptionsAffectingDocSchemaConfigMap} * below. If not, then it must be omitted from this type. * * Note: `Omit` is used instead of `Pick` to ensure that all new options are * included in this type by default. If any new properties are added to * {@link ContainerRuntimeOptionsInternal}, they will be included in this * type unless explicitly omitted. This will prevent us from forgetting to * account for any new properties in the future. */ export type RuntimeOptionsAffectingDocSchema = Omit; /** * Subset of {@link RuntimeOptionsAffectingDocSchema} which existed prior to the introduction of explicitSchemaControl. * * @remarks * Runtime options that affect document schema should generally require explicitSchemaControl to be enabled. * However, to prevent disruption to existing customers, options that existed prior to explicitSchemaControl * do not explicity require explicitSchemaControl to be enabled. Do not add new options to this list. */ type RuntimeOptionKeysPredatingExplicitSchemaControl = keyof Pick; /** * Subset of {@link RuntimeOptionsAffectingDocSchema} which require explicitSchemaControl to be enabled. */ export type RuntimeOptionKeysThatRequireExplicitSchemaControl = keyof Omit; /** * Keys of {@link ContainerRuntimeOptionsInternal} that require explicitSchemaControl to be enabled. */ export declare const runtimeOptionKeysThatRequireExplicitSchemaControl: "createBlobPayloadPending"[]; /** * Returns the default RuntimeOptionsAffectingDocSchema configuration for a given minVersionForCollab. */ export declare function getMinVersionForCollabDefaults(minVersionForCollab: MinimumVersionForCollab): RuntimeOptionsAffectingDocSchema; /** * Validates if the runtime options passed in from the user are compatible with the minVersionForCollab. * For example, if a user sets the `enableGroupedBatching` option to true, but the minVersionForCollab * is set to "1.0.0", then we should throw a UsageError since 1.x clients do not support batching. * */ export declare function validateRuntimeOptions(minVersionForCollab: MinimumVersionForCollab, runtimeOptions: Partial): void; export {}; //# sourceMappingURL=containerCompatibility.d.ts.map