import { TableDecision } from '../../../model-decision/index.js'; import type { SpecificationInterface } from '../SpecificationInterface.js'; import type { LoggerInterface } from '../../../logger/index.js'; import type { RuleConverterRegistry } from './RuleConverterRegistry.js'; /** * Converts a specification object into a decision table model. * It takes a loaded specification table and converts it. */ export declare class ParserSpecificationConverter { private registry; constructor(options?: { registry?: RuleConverterRegistry; }); /** * Do the conversion * @param specification - The specification object * @param logger - The logger * @returns The created decision table model */ convert(request: { specification: SpecificationInterface; logger: LoggerInterface; fileName: string; }): TableDecision; /** * Creates a multirow section which defines if a testcase should be executed or is test data only * @param table - The decision table model */ private createExecutionMultirowSection; /** * Creates the summary section for this table * @param table - The decision table model */ private createSummarySection; /** * Creates a multirow section for the serverities * @param specification - The specification object * @param table - The decision table model */ private createSeveritySection; /** * Creates the primary data section and returns an array * of rowIdObjects * @param specification - The specification object * @param table - The decision table model * @returns An array of rowIdObjects */ private createPrimaryDataSection; /** * Create all the equivalenceClasses for one field using registered converters. * @param specification - The specification object. Only the Rules description is needed * @param fieldRules - All the rules for this field (keyed by uppercased rule name) * @param fieldData - The original field data from the specification * @returns The created equivalenceClasses for this field */ private getClassesForRules; /** * Creates a secondary data section if the specification has a primary key rule. * Adds two fields to it * @param specification - The specification object * @param table - The decision table model * @returns The rowIdObject */ private createSecondaryDataSection; /** * Creates the default testcases for this decision table * @param table - The decision table model * @param rowIdObjects - An array with all the primary data rowIdObjects * @param secDataObject - The secondary rowidObjewct */ private createTestcases; /** * Create one field of the primary data section. Also adds the rowId to the class. * Returns an object of the following format: * obj = \{ * valid : [rowIds] * error : [rowIds] * \} * * @param section - The primary data field section * @param fieldName - The name of the field * @param classes - The equivalenceClasses for this field * @returns - The object containing all the rowIds by there type */ private createFieldSubSection; } //# sourceMappingURL=ParserSpecificationConverter.d.ts.map