import type { EdgeRef } from "#types/link.types"; export interface AxisView { readonly anchor: string; readonly contracts: readonly EdgeRef[]; readonly id: string; readonly layer: EdgeRef; readonly mandatory: string; readonly nodes: readonly EdgeRef[]; readonly primaryMathType: EdgeRef; readonly question: string; readonly selectable: boolean; } export interface ReasonNodeView { readonly anchor: string; readonly answerShape: string | null; readonly axis: EdgeRef; readonly concept: EdgeRef | null; readonly decisionTest: string | null; readonly groundedBy: readonly EdgeRef[]; readonly id: string; readonly mathType: EdgeRef; readonly question: string | null; readonly role: string | null; } export interface SubstrateNodeView { readonly anchor: string; readonly id: string; readonly layer: EdgeRef; readonly mathType: EdgeRef; readonly mathTypes: readonly EdgeRef[]; readonly name: string; } export interface SubstrateView { readonly cycle: readonly EdgeRef[]; readonly nodes: readonly SubstrateNodeView[]; readonly recursionFrom: EdgeRef; readonly recursionTo: EdgeRef; } export interface LoopStageView { readonly axis: EdgeRef; readonly contracts: readonly EdgeRef[]; readonly edges: readonly EdgeRef[]; readonly id: string; } export interface LoopTransitionView { readonly from: EdgeRef; readonly gate: string | null; readonly kind: string; readonly onFail: string | null; readonly onPass: string | null; readonly to: EdgeRef; } export interface DerivationLoopView { readonly anchor: string; readonly id: string; readonly stages: readonly LoopStageView[]; readonly transitions: readonly LoopTransitionView[]; }