import { DataModel } from '../model/models/data-model.models'; import { FactSheetPermissions } from '../model/models/fact-sheet-permissions.models'; import { TagModel } from '../model/models/tag.models'; import { TranslationModel } from '../model/models/translation-model.models'; import { ViewModel } from '../model/models/view-model.models'; import { Specification } from './models/specification.models'; /** * Parses workspace metadata into a list of available dimensions (specifications) for a given fact-sheet type. * This is the entry point of the pipeline — all downstream functions depend on the resulting `Specification[]`. * * Each specification describes one dimension a fact sheet type can cluster or view (colour) by: its attribute * description (used to build queries and normalise responses), allowed values, labels, and view/cluster config. * * @param factSheetType - The fact-sheet type to parse (e.g. 'Application', 'ITComponent') * @param dataModel - The workspace schema defining fact-sheet types, their fields, and relations * @param viewModel - Defines which fields are available for views, their allowed values, and assigned colours * @param translationModel - Human-readable labels for field names and values * @param tagModel - The workspace's tagging taxonomy, keyed by fact-sheet type * @param factSheetPermissions - Permissions per fact-sheet type, controls which fields are visible and readable * @param showOnlyActiveRelations - When true, filters out inactive relations from the resulting specifications * @returns A flat list of specifications representing all dimensions available for the given fact-sheet type * @throws Error if the fact-sheet type does not exist in the data model or view model */ export declare function parseModels(factSheetType: string, dataModel: DataModel, viewModel: ViewModel, translationModel: TranslationModel, tagModel: TagModel, factSheetPermissions: FactSheetPermissions, showOnlyActiveRelations?: boolean): Specification[];