# types/environment.types.ts

> 50 lines of code and 5 definitions.

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

Listed in [types](https://banes-lab.com/api/source/docs/types.md), after [types/document.types.ts](https://banes-lab.com/source/docs/types/document.types.ts.md) and before [types/figure.types.ts](https://banes-lab.com/source/docs/types/figure.types.ts.md).

## Definitions

- `ValidateCtx` (interface_declaration, line 6, exported)
- `DocsHost` (interface_declaration, line 22, exported)
- `CatalogContext` (interface_declaration, line 33, exported)
- `TemplateContext` (interface_declaration, line 40, exported)
- `TemplateArguments` (interface_declaration, line 47, exported)

## Contained in

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

## Source

```typescript
import type { DocRegistries, LocationOptions } from "#types/location.types";
import type { HarnessProfile } from "#types/document.types";
import type { PathsCtx } from "#types/reference.types";
import type { UserRegistries } from "#types/manifest.types";

export interface ValidateCtx {
    boundaryDocs: ReadonlySet<string>;
    delegatedRoots: readonly string[];
    harnessAdapter: string | null;
    harnessAgentDir: string | null;
    harnessProfiles: readonly HarnessProfile[];
    harnessRoot: string | null;
    locationOptions: LocationOptions;
    paths: PathsCtx;
    registries: DocRegistries;
    relative: (path: string) => string;
    root: string;
    rootPrefix: string;
    userReg: UserRegistries;
}

export interface DocsHost {
    readonly ctx: ValidateCtx;
    readonly locationOptions: LocationOptions;
    readonly registries: DocRegistries;
    readonly relative: (path: string) => string;
    readonly root: string;
    readonly rootPrefix: string;
    readonly userReg: UserRegistries;
    readonly walk: (dir: string, suffix: string) => string[];
}

export interface CatalogContext {
    docs: string[];
    relative: (doc: string) => string;
    root: string;
    rootPrefix: string;
}

export interface TemplateContext {
    locationOptions: LocationOptions;
    registries: DocRegistries;
    root: string;
    userReg: UserRegistries;
}

export interface TemplateArguments {
    concern: string;
    form: string;
    member: string;
    name: string;
    status: string;
    subject: string;
    summary: string;
}
```
