# types/record.types.ts

> 40 lines of code and 8 definitions.

Tree: GovLab Patterns
Language: typescript
Layer: infrastructure
Canonical: https://banes-lab.com/anatomy/patterns#file-patterns-types-record-types-ts
Source text: https://banes-lab.com/source/patterns/types/record.types.ts.txt

Listed in [types](https://banes-lab.com/api/source/patterns/types.md), after [types/pattern.types.ts](https://banes-lab.com/source/patterns/types/pattern.types.ts.md) and before [types/report.types.ts](https://banes-lab.com/source/patterns/types/report.types.ts.md).

## Definitions

- `LoadedData` (interface_declaration, line 6, exported)
- `AnalyzeOptions` (interface_declaration, line 11, exported)
- `SynthesizeOptions` (interface_declaration, line 16, exported)
- `AnalyzeResult` (interface_declaration, line 21, exported)
- `Coverage` (interface_declaration, line 27, exported)
- `AnalyzeReport` (interface_declaration, line 32, exported)
- `FieldOutput` (interface_declaration, line 40, exported)
- `WindowSnapshot` (interface_declaration, line 45, exported)

## Contained in

- [types](https://banes-lab.com/anatomy/patterns/folder-patterns-types.md)

## Source

```typescript
import type { GraphDict, Node } from "#types/graph.types";
import type { AnalysisGraph } from "#core/models/graph.model";
import type { FieldSchema } from "#types/schema.types";
import type { Finding } from "#types/finding.types";

export interface LoadedData {
    records: unknown[];
    floatFields: Set<string>;
}

export interface AnalyzeOptions {
    floatFields?: ReadonlySet<string>;
    mapping?: ReadonlyMap<string, readonly string[]>;
}

export interface SynthesizeOptions extends AnalyzeOptions {
    count?: number;
    seed?: number;
}

export interface AnalyzeResult {
    schema: FieldSchema[];
    findings: Finding[];
    graph: AnalysisGraph;
}

export interface Coverage {
    filled: string[][];
    counts: { filled: number; findings: number };
}

export interface AnalyzeReport {
    schema: FieldSchema[];
    headline: { records: number; fields: number; findings: number };
    findings: Finding[];
    graph: GraphDict;
    coverage: Coverage;
}

export interface FieldOutput {
    nodes: Node[];
    findings: Finding[];
}

export interface WindowSnapshot {
    count: number;
    report: AnalyzeReport;
}
```
