import Joi from 'joi'; import { CubeSymbols, CubeDefinition } from './CubeSymbols'; import type { ErrorReporter } from './ErrorReporter'; import { CompilerInterface } from './PrepareCompiler'; export declare const nonStringFields: Set; export declare function functionFieldsPatterns(): string[]; export declare class CubeValidator implements CompilerInterface { protected readonly cubeSymbols: CubeSymbols; protected readonly validCubes: Map; constructor(cubeSymbols: CubeSymbols); compile(cubes: any, errorReporter: ErrorReporter): Joi.ValidationResult[]; validate(cube: any, errorReporter: ErrorReporter): Joi.ValidationResult; /** * Validates that each cube appears only once within each root path in a view. * This ensures that there is only one path to reach each cube within each root's join graph. * For example: 'a.b.c' + 'd.b.c' is valid (different roots), but 'a.b.c' + 'a.d.c' is invalid (same root 'a'). */ private validateUniqueLeafCubes; isCubeValid(cube: CubeDefinition): boolean; } //# sourceMappingURL=CubeValidator.d.ts.map