# types/loop.types.ts

> 58 lines of code and 7 definitions.

Tree: Site tree
Language: typescript
Layer: infrastructure
Canonical: https://banes-lab.com/anatomy/tree#file-types-loop-types-ts
Source text: https://banes-lab.com/assets/sources/source.68481fbe90abaa1601d86831a40d5de7f9ecff4a416d4d765274504ccb3a18f2.generated.txt

## Definitions

- `AxisView` (interface_declaration, line 3, exported)
- `ReasonNodeView` (interface_declaration, line 15, exported)
- `SubstrateNodeView` (interface_declaration, line 28, exported)
- `SubstrateView` (interface_declaration, line 37, exported)
- `LoopStageView` (interface_declaration, line 44, exported)
- `LoopTransitionView` (interface_declaration, line 51, exported)
- `DerivationLoopView` (interface_declaration, line 60, exported)

## Source

```typescript
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[];
}
```
