# types/plan.types.ts

> 26 lines of code and 6 definitions.

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

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

## Definitions

- `ToolResolution` (interface_declaration, line 1, exported)
- `PerTool` (type_alias_declaration, line 7, exported)
- `ResolvedPlan` (interface_declaration, line 9, exported)
- `ConflictKind` (type_alias_declaration, line 13, exported)
- `Conflict` (interface_declaration, line 21, exported)
- `ConflictReport` (interface_declaration, line 29, exported)

## Contained in

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

## Source

```typescript
export interface ToolResolution {
    knobs: Record<string, unknown>;
    disabledSurfaces: string[];
    enabledIntents: string[];
}

export type PerTool = Record<string, ToolResolution>;

export interface ResolvedPlan {
    perToolConfig: PerTool;
}

export type ConflictKind =
    | "channel-mismatch"
    | "known-bad-pair"
    | "ownership-overlap"
    | "unknown-setting"
    | "unsatisfiable-on-fixed"
    | "value-out-of-range";

export interface Conflict {
    kind: ConflictKind;
    surface?: string | undefined;
    canonicalId?: string | undefined;
    detail: string;
    options?: string[] | undefined;
}

export interface ConflictReport {
    conflicts: Conflict[];
}
```
