# types/evidence.types.ts

> 34 lines of code and 10 definitions.

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

## Definitions

- `DefinitionEvidence` (interface_declaration, line 1, exported)
- `FileEvidence` (interface_declaration, line 7, exported)
- `FolderEvidence` (interface_declaration, line 12, exported)
- `EvidenceNode` (type_alias_declaration, line 17, exported)
- `ChapterSubject` (interface_declaration, line 19, exported)
- `RecordSubject` (interface_declaration, line 26, exported)
- `EvidenceSubject` (type_alias_declaration, line 31, exported)
- `AbsenceReason` (type_alias_declaration, line 33, exported)
- `DeclaredAbsence` (interface_declaration, line 35, exported)
- `Evidence` (interface_declaration, line 40, exported)

## Source

```typescript
export interface DefinitionEvidence {
    readonly file: string | null;
    readonly kind: "definition";
    readonly name: string;
}

export interface FileEvidence {
    readonly kind: "file";
    readonly name: string;
}

export interface FolderEvidence {
    readonly kind: "folder";
    readonly words: readonly string[];
}

export type EvidenceNode = DefinitionEvidence | FileEvidence | FolderEvidence;

export interface ChapterSubject {
    readonly kind: "chapter";
    readonly page: string;
    readonly section: string;
    readonly tab: string;
}

export interface RecordSubject {
    readonly kind: "record";
    readonly ref: string;
}

export type EvidenceSubject = ChapterSubject | RecordSubject;

export type AbsenceReason = "a-practice-not-a-construct" | "outside-the-web-member";

export interface DeclaredAbsence {
    readonly reason: AbsenceReason;
    readonly subject: ChapterSubject;
}

export interface Evidence {
    readonly nodes: readonly EvidenceNode[];
    readonly subject: EvidenceSubject;
}
```
