import type { BlockRegistration, ImportLayoutResult, Layout, LayoutDefinitionContext } from "@omnia/fx-models"; export type LayoutDefinitionValidationMode = "current" | "import" | "preparedImport"; export interface LayoutDefinitionValidationOptions { blockCatalogLoaded?: boolean; blockRegistrations?: BlockRegistration[]; mode?: LayoutDefinitionValidationMode; preparedImportContext?: LayoutDefinitionContext; preparedImportLayout?: Layout; requireBlockCatalog?: boolean; requireTargetContext?: boolean; targetContext?: LayoutDefinitionContext; unavailableBlockManifestIds?: string[]; } /** * Validates a raw layout definition and only returns a layout when every hard * invariant is satisfied. Repairs are deliberately limited to deterministic * structural changes. Arbitrary values inside block settings are preserved * because GUID-looking values there can be legitimate content IDs, except for * registration-declared protected values such as executable block content. */ export declare class LayoutDefinitionValidator { static validateAndRepairFromJsonString(json: string, currentLayout: Layout, options?: LayoutDefinitionValidationOptions): ImportLayoutResult; private static validateAndRepair; private static repairRootDefinition; private static sanitizeChildren; private static normalizeSectionType; private static validateAndRepairBlock; private static normalizeBlockSettings; private static protectBlockSettings; private static getCurrentBlockSettings; private static getNestedSettingValue; private static setNestedSettingValue; private static getSourceBlockSettings; private static migrateLegacyBlockSettings; private static normalizeThemeDefinitions; private static repairStructuralReferences; private static validatePostconditions; private static validateSafeObjectKeys; private static collectBaselineItems; private static getKnownNonRootItemStats; private static hasInheritedLayoutItems; private static collectThemeIds; private static validateInheritedItemsPresent; private static collectOwnerLayoutItemOverrides; private static createBlockRegistrationMaps; private static ensureItemsArray; private static readBlockChildren; private static ensureSettingsObject; private static repairItemType; private static repairValue; private static repairOptionalStructuralReference; private static removeRootStructuralReference; private static normalizeItemType; private static isAllowedChild; private static toSectionType; private static validateDefinitionContexts; private static normalizeLayoutDefinitionContext; private static describeLayoutDefinitionContext; private static normalizeGuid; private static createUniqueGuid; private static isPlainObject; private static cloneJson; private static jsonEquals; private static hasErrors; private static addIssue; private static createResult; }