export declare const layers: readonly ['motivation', 'strategy', 'business', 'application', 'technology', 'physical', 'implementation', 'composite']; export declare const aspects: readonly ['motivation', 'active-structure', 'behavior', 'passive-structure', 'composite']; export type Layer = (typeof layers)[number]; export type Aspect = (typeof aspects)[number]; /** * OntoClean rigidity, the one meta-property with a mechanical consequence. * A kind is `rigid` when being of that kind is essential to every instance * (a thing IS an application component); `anti-rigid` when it is essential * to none (a role is played contingently and can be given up). Identity and * unity are deliberately out of scope: neither yields a check (ADR 0078). */ export declare const rigidities: readonly ['rigid', 'anti-rigid']; export type Rigidity = (typeof rigidities)[number]; export interface ConceptKind { readonly id: string; readonly name: string; readonly layer: Layer; readonly aspect: Aspect; /** * Optional and opt-in. An unannotated kind constrains nothing, in either * direction. Annotated, it feeds one rule: a rigid kind may not specialize * an anti-rigid one, anywhere in its lineage (YM413). */ readonly rigidity?: Rigidity; /** * The ArchiMate 3.2 element this kind implements, kept as data so a * profile author can read the mapping off the kind itself. */ readonly inspiredBy: string; } export declare const conceptKinds: readonly ConceptKind[]; export declare const relationshipKinds: readonly ['composition', 'aggregation', 'assignment', 'realization', 'serving', 'access', 'influence', 'association', 'triggering', 'flow', 'specialization']; export type RelationshipKind = (typeof relationshipKinds)[number]; export interface RelationshipPolicy { readonly id: RelationshipKind; /** Documentary. Which endpoint pairs a kind may join is decided by the relationship table, not by prose. */ readonly intent: string; } /** * The eleven core relationship kinds. Which (source kind, target kind) pairs * each may join is the ArchiMate 3.2 relationship table, vendored under * `vendor/archi` and decoded by `relationship-matrix.ts` (ADR 0097). An * extension profile may narrow its own relationship kind further with * `sourceAspects`/`targetAspects`; the core kinds carry no narrowing of * their own because the table already says everything there is to say. */ export declare const relationshipPolicies: readonly RelationshipPolicy[];