export interface SchemaValueDescription { dataType: 'Real' | 'Boolean' | 'Integer' | 'String' | 'DateTime' | 'Enum' | 'Array' | 'Object' | 'Reference' | 'Blob'; optional?: boolean; inherits?: string[]; quantityKind?: string; enumRestrictions?: { options: string[]; }; arrayRestrictions?: { value: SchemaValueDescription; min?: number; max?: number; }; objectRestrictions?: { values: Record; }; } export interface SchemaDefinition { value: SchemaValueDescription; uri?: string; } /** IFC core schemas from ifc@v5a.ifcx */ export declare const IFC_CORE_SCHEMAS: Record; /** IFC property schemas from prop@v5a.ifcx */ export declare const IFC_PROP_SCHEMAS: Record; /** USD schemas from usd@v1.ifcx */ export declare const USD_SCHEMAS: Record; /** All official schemas combined */ export declare const ALL_OFFICIAL_SCHEMAS: Record; export declare const STANDARD_IMPORT_URIS: { readonly IFC_CORE: "https://ifcx.dev/@standards.buildingsmart.org/ifc/core/ifc@v5a.ifcx"; readonly IFC_PROP: "https://ifcx.dev/@standards.buildingsmart.org/ifc/core/prop@v5a.ifcx"; readonly USD: "https://ifcx.dev/@openusd.org/usd@v1.ifcx"; }; /** * Validate a value against a schema value description. * Returns an array of error messages (empty = valid). */ export declare function validateValue(value: unknown, schema: SchemaValueDescription, path: string): string[]; /** * Validate an entire IFCX file against the official schemas. * * This mirrors the viewer's validation logic: * 1. Every attribute key must either be defined in an imported schema, defined * in the file's local `schemas` section, or belong to an unrecognized namespace. * 2. If an attribute's namespace matches an imported schema file but the specific * key is NOT defined in that schema file → "Missing schema" error (exactly * what the BSI viewer reports). * 3. Values are type-checked against their schema definitions. */ export declare function validateIfcxFile(file: any): string[]; //# sourceMappingURL=ifc5-official-schemas.d.ts.map