> ## Documentation Index
> Fetch the complete documentation index at: https://docs.bijection.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Module: process

> Reference for the bijection/process entry point.

## Interfaces

* [TransitionsQuery](https://docs.bijection.com/api/interfaces/process.TransitionsQuery.md)
* [TransitionReader](https://docs.bijection.com/api/interfaces/process.TransitionReader.md)

## References

### defineProcess

Re-exports [defineProcess](https://docs.bijection.com/api/modules/apps#defineprocess)

***

### processBinding

Re-exports [processBinding](https://docs.bijection.com/api/modules/apps#processbinding)

***

### processSnapshot

Re-exports [processSnapshot](https://docs.bijection.com/api/modules/apps#processsnapshot-2)

***

### ProcessDefinition

Re-exports [ProcessDefinition](https://docs.bijection.com/api/modules/apps#processdefinition)

***

### ProcessEvidence

Re-exports [ProcessEvidence](https://docs.bijection.com/api/modules/apps#processevidence)

***

### ProcessSnapshot

Re-exports [ProcessSnapshot](https://docs.bijection.com/api/modules/apps#processsnapshot)

## Type Aliases

### Context

Ƭ **Context**: [`BijectionQueryCtx`](https://docs.bijection.com/api/interfaces/server.BijectionQueryCtx)\<`any`, `any`>

Not exported: an exported type refers to it.

***

### ApplicationProcess

Ƭ **ApplicationProcess**: [`ProcessDefinition`](https://docs.bijection.com/api/modules/apps#processdefinition) & \{ `observe?`: (`ctx`: [`Context`](https://docs.bijection.com/api/modules/process#context), `row`: [`AppObject`](https://docs.bijection.com/api/modules/apps#appobject), `cursor`: `string` | `null`) => `Promise`\<`Omit`\<[`ProcessEvidencePage`](https://docs.bijection.com/api/modules/apps#processevidencepage), `"projection"`>>  }

Optional adapters run as the current reader and must preserve source identity.
They report observations, never manufacture native acceptance or delivery.

***

### ApplicationProcesses

Ƭ **ApplicationProcesses**: `Record`\<`string`, [`ApplicationProcess`](https://docs.bijection.com/api/modules/process#applicationprocess)>

***

### TransitionOptions

Ƭ **TransitionOptions**\<`State`>: `Object`

The state graph of a `.transitions()` declaration. Without `initial`,
`edges` and `terminal` every present-state change is recorded and none is refused; ordinary deletion still requires a removable stage.

#### Type parameters

| Name | Type |
| :- | :- |
| `State` | extends `string` = `string` |

#### Type declaration

| Name | Type | Description |
| :- | :- | :- |
| `initial?` | readonly `State`\[] | States a row may be inserted in. |
| `edges?` | `Partial`\<`Record`\<`State`, readonly `State`\[]>> | The states each state may change to. A state without an entry may not change, unless no `edges` are declared at all. |
| `terminal?` | readonly `State`\[] | States no change may leave. |
| `removable?` | readonly `State`\[] | Stages from which ordinary deletion is allowed. Defaults to `terminal`. Native record erasure may delete from any stage. |
| `undeclared?` | `"refuse"` \| `"record"` | What the commit does with a change the graph does not declare: `"refuse"` refuses the whole transaction (the default on local tables); `"record"` keeps the write and records the change with `declared: false` (required on source-owned tables). |
| `retain?` | \{ `days`: `number`  } | How long each record is kept. Defaults to 730 days. |
| `retain.days` | `number` | - |
| `history?` | `string` \| \{ `table`: `string` ; `bins?`: readonly `string`\[] ; `targets?`: `Readonly`\<`Partial`\<`Record`\<`State`, `string`>>>  } | A process history table the commit also writes, one row per recorded change, declared with `defineProcessHistory(table)`. Its newest row per case carries the case's path variant, elapsed time and conformance, so maintained totals over it keep process measures current for every case. `bins` (default `1h`, `4h`, `1d`, `3d`, `7d`; at most 8, whole seconds) name the `dwell_bin` and `elapsed_bin` of each row. History rows expire `retain.days` after they stop being an open case's newest row. |

***

### TransitionFields

Ƭ **TransitionFields**\<`DocumentType`>: `DocumentType` extends \{ `fields`: infer Fields  } ? \{ \[Field in keyof Fields]: Fields\[Field] extends Object ? \[Type] extends \[string] ? Field : never : never }\[keyof `Fields`] & `string` : `string`

The required string fields of a table's object validator, the fields
`.transitions()` accepts.

#### Type parameters

| Name |
| :- |
| `DocumentType` |

***

### TransitionActor

Ƭ **TransitionActor**: \{ `kind`: `"user"` ; `subject`: `string` ; `issuer`: `string`  } | \{ `kind`: `"acting_user"` ; `subject`: `string` | `null`  } | \{ `kind`: `"program"` ; `installation`: `string` | `null` ; `callback`: `string`  } | \{ `kind`: `"admin"`  } | \{ `kind`: `"system"`  } | \{ `kind`: `"anonymous"`  }

Who made the commit that recorded a transition.

***

### TransitionRequest

Ƭ **TransitionRequest**: `Object`

The accepted operation request whose retained invocation made a
change: the installation holding it, its operation and its reference, the
request's identity within that installation.

#### Type declaration

| Name | Type |
| :- | :- |
| `owner` | `string` |
| `operation` | `string` |
| `reference` | `string` |

***

### Transition

Ƭ **Transition**: `Object`

One entry of a row's stage history. `basis: "commit"` is a change the
commit recorded; its `at` is the commit timestamp in nanoseconds.
`basis: "observed"` is the state the row was in before its recorded
history begins (the row predates the declaration, or its earliest records
expired); its `at` is the recorded time it entered that state, or `null`
when that time is unknown. Unknown time is never zero.

#### Type declaration

| Name | Type | Description |
| :- | :- | :- |
| `basis` | `"commit"` \| `"observed"` | - |
| `from` | `string` \| `null` | - |
| `to` | `string` \| `null` | - |
| `at` | `bigint` \| `null` | - |
| `actor` | [`TransitionActor`](https://docs.bijection.com/api/modules/process#transitionactor) \| `null` | - |
| `request` | [`TransitionRequest`](https://docs.bijection.com/api/modules/process#transitionrequest) \| `null` | The accepted operation request whose retained invocation wrote the row; null for any other writer, including a row the same transaction also changed outside that invocation. |
| `declared` | `boolean` | False only for an undeclared change kept under `undeclared: "record"`. |
| `revision` | `string` \| `null` | Digest of the declaration in force when the change was recorded. |
| `from_since` | `bigint` \| `null` | The `at` of the transition that entered `from`. |

## Variables

### processSnapshotValidator

• `Const` **processSnapshotValidator**: [`VObject`](https://docs.bijection.com/api/classes/values.VObject)\<\{ `attention_stages`: `undefined` | `Record`\<`string`, `string`> ; `key`: `string` ; `revision`: `string` ; `label`: `string` ; `steps`: \{ key: string; label: string; operations: string\[]; depends\_on: string\[]; }\[] ; `active_stages`: `string`\[]  }, \{ `key`: [`VString`](https://docs.bijection.com/api/classes/values.VString)\<`string`, `"required"`> ; `label`: [`VString`](https://docs.bijection.com/api/classes/values.VString)\<`string`, `"required"`> ; `revision`: [`VString`](https://docs.bijection.com/api/classes/values.VString)\<`string`, `"required"`> ; `active_stages`: [`VArray`](https://docs.bijection.com/api/classes/values.VArray)\<`string`\[], [`VString`](https://docs.bijection.com/api/classes/values.VString)\<`string`, `"required"`>, `"required"`> ; `attention_stages`: [`VRecord`](https://docs.bijection.com/api/classes/values.VRecord)\<`undefined` | `Record`\<`string`, `string`>, [`VString`](https://docs.bijection.com/api/classes/values.VString)\<`string`, `"required"`>, [`VString`](https://docs.bijection.com/api/classes/values.VString)\<`string`, `"required"`>, `"optional"`, `string`> ; `steps`: [`VArray`](https://docs.bijection.com/api/classes/values.VArray)\<\{ `key`: `string` ; `label`: `string` ; `operations`: `string`\[] ; `depends_on`: `string`\[]  }\[], [`VObject`](https://docs.bijection.com/api/classes/values.VObject)\<\{ `key`: `string` ; `label`: `string` ; `operations`: `string`\[] ; `depends_on`: `string`\[]  }, \{ `key`: [`VString`](https://docs.bijection.com/api/classes/values.VString)\<`string`, `"required"`> ; `label`: [`VString`](https://docs.bijection.com/api/classes/values.VString)\<`string`, `"required"`> ; `operations`: [`VArray`](https://docs.bijection.com/api/classes/values.VArray)\<`string`\[], [`VString`](https://docs.bijection.com/api/classes/values.VString)\<`string`, `"required"`>, `"required"`> ; `depends_on`: [`VArray`](https://docs.bijection.com/api/classes/values.VArray)\<`string`\[], [`VString`](https://docs.bijection.com/api/classes/values.VString)\<`string`, `"required"`>, `"required"`>  }, `"required"`, `"key"` | `"label"` | `"operations"` | `"depends_on"`>, `"required"`>  }, `"required"`, `"key"` | `"revision"` | `"label"` | `"steps"` | `"active_stages"` | `"attention_stages"` | \`attention\_stages.\$\{string}\`>

Schema for the immutable definition captured by an application's case owner.

***

### PROCESS\_HISTORY\_TOTALS

• `Const` **PROCESS\_HISTORY\_TOTALS**: `Object`

The totals [defineProcessHistory](https://docs.bijection.com/api/modules/process#defineprocesshistory) declares by default, and the
measure each one answers.

#### Type declaration

| Name | Type | Description |
| :- | :- | :- |
| `stages` | \{ `by`: \[`"position"`, `"to"`] ; `sum`: \[`"elapsed_ms"`]  } | Open cases per current stage; closed cases per end state. |
| `stages.by` | \[`"position"`, `"to"`] | - |
| `stages.sum` | \[`"elapsed_ms"`] | - |
| `edges` | \{ `by`: \[`"from"`, `"to"`, `"dwell_bin"`] ; `sum`: \[`"dwell_ms"`]  } | Transitions per edge and dwell bin, with the dwell in the state left. |
| `edges.by` | \[`"from"`, `"to"`, `"dwell_bin"`] | - |
| `edges.sum` | \[`"dwell_ms"`] | - |
| `variants` | \{ `by`: \[`"position"`, `"variant"`] ; `sum`: \[`"elapsed_ms"`]  } | Cases per path variant; with `position: "closed"`, finished paths. |
| `variants.by` | \[`"position"`, `"variant"`] | - |
| `variants.sum` | \[`"elapsed_ms"`] | - |
| `conformance` | \{ `by`: \[`"position"`, `"conformance"`]  } | Cases per conformance so far. |
| `conformance.by` | \[`"position"`, `"conformance"`] | - |
| `throughput` | \{ `by`: \[`"position"`, `"elapsed_bin"`] ; `sum`: \[`"elapsed_ms"`]  } | Cases per elapsed-time bin; with `position: "closed"`, throughput. |
| `throughput.by` | \[`"position"`, `"elapsed_bin"`] | - |
| `throughput.sum` | \[`"elapsed_ms"`] | - |
| `deadlines` | \{ `by`: \[`"position"`, `"deadline_revision"`, `"overdue"`, `"to"`]  } | Exact current-policy overdue contributions, gated by the native deadline frontier before any result is released. |
| `deadlines.by` | \[`"position"`, `"deadline_revision"`, `"overdue"`, `"to"`] | - |
| `daily` | \{ `by`: \[`"position"`, `"at"`] ; `sum`: \[`"elapsed_ms"`] ; `time`: \{ `field`: `"at"` = "at"; `unit`: `"day"` = "day" }  } | Changes per UTC day; with `position: "closed"`, closures per day. |
| `daily.by` | \[`"position"`, `"at"`] | - |
| `daily.sum` | \[`"elapsed_ms"`] | - |
| `daily.time` | \{ `field`: `"at"` = "at"; `unit`: `"day"` = "day" } | - |
| `daily.time.field` | `"at"` | - |
| `daily.time.unit` | `"day"` | - |

***

### DEFAULT\_PROCESS\_HISTORY\_BINS

• `Const` **DEFAULT\_PROCESS\_HISTORY\_BINS**: `string`\[]

Bins a process history uses when its declaration names none.

***

### PROCESS\_POSITIONS

• `Const` **PROCESS\_POSITIONS**: \[`"open"`, `"closed"`, `"past"`]

Where a history row stands in its case: `open` and `closed` mark the
case's newest row, `past` every earlier one.

***

### PROCESS\_CONFORMANCE

• `Const` **PROCESS\_CONFORMANCE**: \[`"conformant"`, `"deviant"`, `"unknown"`]

A case's conformance so far: `deviant` once an undeclared change, a
re-entered state or a left terminal state is recorded; `unknown` while the
history does not begin at the case's insertion or its path is longer than
64 states; otherwise `conformant`.

***

### UNKNOWN\_PROCESS\_BIN

• `Const` **UNKNOWN\_PROCESS\_BIN**: `"unknown"`

The bin of a dwell or elapsed time that is not known; `dwell_ms` and
`elapsed_ms` are 0 exactly when their bin is this one.

***

### MAX\_PROCESS\_PATH

• `Const` **MAX\_PROCESS\_PATH**: `64`

States a history row's `path` keeps.

## Functions

### defineProcessHistory

▸ **defineProcessHistory**\<`Case`>(`caseTable`, `options?`): [`TableDefinition`](https://docs.bijection.com/api/classes/server.TableDefinition)\<[`VObject`](https://docs.bijection.com/api/classes/values.VObject)\<\{ `at`: `bigint` ; `path`: `string`\[] ; `revision`: `string` ; `position`: `"open"` | `"closed"` | `"past"` ; `case`: [`GenericId`](https://docs.bijection.com/api/modules/values#genericid)\<`Case`> ; `request`: `null` | \{ reference: string; operation: string; owner: string; } ; `actor`: `"program"` | `"system"` | `"user"` | `"acting_user"` | `"admin"` | `"anonymous"` ; `started_at`: `null` | `bigint` ; `expires_at`: `null` | `bigint` ; `declared`: `boolean` ; `from`: `null` | `string` ; `to`: `null` | `string` ; `overdue`: `boolean` ; `variant`: `string` ; `seq`: `bigint` ; `from_since`: `null` | `bigint` ; `dwell_ms`: `bigint` ; `dwell_bin`: `string` ; `elapsed_ms`: `bigint` ; `elapsed_bin`: `string` ; `conformance`: `"unknown"` | `"conformant"` | `"deviant"` ; `actor_identity`: \{ kind: "user"; subject: string; issuer: string; } | \{ kind: "acting\_user"; subject: string | null; } | \{ kind: "program"; installation: string | null; callback: string; } | \{ kind: "admin"; } | \{ kind: "system"; } | \{ kind: "anonymous"; } ; `deadline_revision`: `string` ; `due_at`: `null` | `bigint`  }, \{ `case`: [`VId`](https://docs.bijection.com/api/classes/values.VId)\<[`GenericId`](https://docs.bijection.com/api/modules/values#genericid)\<`Case`>, `"required"`> ; `seq`: [`VInt64`](https://docs.bijection.com/api/classes/values.VInt64)\<`bigint`, `"required"`> ; `from`: [`VUnion`](https://docs.bijection.com/api/classes/values.VUnion)\<`null` | `string`, \[[`VString`](https://docs.bijection.com/api/classes/values.VString)\<`string`, `"required"`>, [`VNull`](https://docs.bijection.com/api/classes/values.VNull)\<`null`, `"required"`>], `"required"`, `never`> ; `to`: [`VUnion`](https://docs.bijection.com/api/classes/values.VUnion)\<`null` | `string`, \[[`VString`](https://docs.bijection.com/api/classes/values.VString)\<`string`, `"required"`>, [`VNull`](https://docs.bijection.com/api/classes/values.VNull)\<`null`, `"required"`>], `"required"`, `never`> ; `at`: [`VInt64`](https://docs.bijection.com/api/classes/values.VInt64)\<`bigint`, `"required"`> ; `from_since`: [`VUnion`](https://docs.bijection.com/api/classes/values.VUnion)\<`null` | `bigint`, \[[`VInt64`](https://docs.bijection.com/api/classes/values.VInt64)\<`bigint`, `"required"`>, [`VNull`](https://docs.bijection.com/api/classes/values.VNull)\<`null`, `"required"`>], `"required"`, `never`> ; `dwell_ms`: [`VInt64`](https://docs.bijection.com/api/classes/values.VInt64)\<`bigint`, `"required"`> ; `dwell_bin`: [`VString`](https://docs.bijection.com/api/classes/values.VString)\<`string`, `"required"`> ; `started_at`: [`VUnion`](https://docs.bijection.com/api/classes/values.VUnion)\<`null` | `bigint`, \[[`VInt64`](https://docs.bijection.com/api/classes/values.VInt64)\<`bigint`, `"required"`>, [`VNull`](https://docs.bijection.com/api/classes/values.VNull)\<`null`, `"required"`>], `"required"`, `never`> ; `elapsed_ms`: [`VInt64`](https://docs.bijection.com/api/classes/values.VInt64)\<`bigint`, `"required"`> ; `elapsed_bin`: [`VString`](https://docs.bijection.com/api/classes/values.VString)\<`string`, `"required"`> ; `position`: [`VUnion`](https://docs.bijection.com/api/classes/values.VUnion)\<`"open"` | `"closed"` | `"past"`, \[[`VLiteral`](https://docs.bijection.com/api/classes/values.VLiteral)\<`"open"`, `"required"`>, [`VLiteral`](https://docs.bijection.com/api/classes/values.VLiteral)\<`"closed"`, `"required"`>, [`VLiteral`](https://docs.bijection.com/api/classes/values.VLiteral)\<`"past"`, `"required"`>], `"required"`, `never`> ; `declared`: [`VBoolean`](https://docs.bijection.com/api/classes/values.VBoolean)\<`boolean`, `"required"`> ; `conformance`: [`VUnion`](https://docs.bijection.com/api/classes/values.VUnion)\<`"unknown"` | `"conformant"` | `"deviant"`, \[[`VLiteral`](https://docs.bijection.com/api/classes/values.VLiteral)\<`"conformant"`, `"required"`>, [`VLiteral`](https://docs.bijection.com/api/classes/values.VLiteral)\<`"deviant"`, `"required"`>, [`VLiteral`](https://docs.bijection.com/api/classes/values.VLiteral)\<`"unknown"`, `"required"`>], `"required"`, `never`> ; `variant`: [`VString`](https://docs.bijection.com/api/classes/values.VString)\<`string`, `"required"`> ; `path`: [`VArray`](https://docs.bijection.com/api/classes/values.VArray)\<`string`\[], [`VString`](https://docs.bijection.com/api/classes/values.VString)\<`string`, `"required"`>, `"required"`> ; `revision`: [`VString`](https://docs.bijection.com/api/classes/values.VString)\<`string`, `"required"`> ; `actor`: [`VUnion`](https://docs.bijection.com/api/classes/values.VUnion)\<`"program"` | `"system"` | `"user"` | `"acting_user"` | `"admin"` | `"anonymous"`, \[[`VLiteral`](https://docs.bijection.com/api/classes/values.VLiteral)\<`"user"`, `"required"`>, [`VLiteral`](https://docs.bijection.com/api/classes/values.VLiteral)\<`"acting_user"`, `"required"`>, [`VLiteral`](https://docs.bijection.com/api/classes/values.VLiteral)\<`"program"`, `"required"`>, [`VLiteral`](https://docs.bijection.com/api/classes/values.VLiteral)\<`"admin"`, `"required"`>, [`VLiteral`](https://docs.bijection.com/api/classes/values.VLiteral)\<`"system"`, `"required"`>, [`VLiteral`](https://docs.bijection.com/api/classes/values.VLiteral)\<`"anonymous"`, `"required"`>], `"required"`, `never`> ; `actor_identity`: [`VUnion`](https://docs.bijection.com/api/classes/values.VUnion)\<\{ `kind`: `"user"` ; `subject`: `string` ; `issuer`: `string`  } | \{ `kind`: `"acting_user"` ; `subject`: `null` | `string`  } | \{ `kind`: `"program"` ; `installation`: `null` | `string` ; `callback`: `string`  } | \{ `kind`: `"admin"`  } | \{ `kind`: `"system"`  } | \{ `kind`: `"anonymous"`  }, \[[`VObject`](https://docs.bijection.com/api/classes/values.VObject)\<\{ `kind`: `"user"` ; `subject`: `string` ; `issuer`: `string`  }, \{ `kind`: [`VLiteral`](https://docs.bijection.com/api/classes/values.VLiteral)\<`"user"`, `"required"`> ; `subject`: [`VString`](https://docs.bijection.com/api/classes/values.VString)\<`string`, `"required"`> ; `issuer`: [`VString`](https://docs.bijection.com/api/classes/values.VString)\<`string`, `"required"`>  }, `"required"`, `"kind"` | `"subject"` | `"issuer"`>, [`VObject`](https://docs.bijection.com/api/classes/values.VObject)\<\{ `kind`: `"acting_user"` ; `subject`: `null` | `string`  }, \{ `kind`: [`VLiteral`](https://docs.bijection.com/api/classes/values.VLiteral)\<`"acting_user"`, `"required"`> ; `subject`: [`VUnion`](https://docs.bijection.com/api/classes/values.VUnion)\<`null` | `string`, \[[`VString`](https://docs.bijection.com/api/classes/values.VString)\<`string`, `"required"`>, [`VNull`](https://docs.bijection.com/api/classes/values.VNull)\<`null`, `"required"`>], `"required"`, `never`>  }, `"required"`, `"kind"` | `"subject"`>, [`VObject`](https://docs.bijection.com/api/classes/values.VObject)\<\{ `kind`: `"program"` ; `installation`: `null` | `string` ; `callback`: `string`  }, \{ `kind`: [`VLiteral`](https://docs.bijection.com/api/classes/values.VLiteral)\<`"program"`, `"required"`> ; `installation`: [`VUnion`](https://docs.bijection.com/api/classes/values.VUnion)\<`null` | `string`, \[[`VString`](https://docs.bijection.com/api/classes/values.VString)\<`string`, `"required"`>, [`VNull`](https://docs.bijection.com/api/classes/values.VNull)\<`null`, `"required"`>], `"required"`, `never`> ; `callback`: [`VString`](https://docs.bijection.com/api/classes/values.VString)\<`string`, `"required"`>  }, `"required"`, `"kind"` | `"installation"` | `"callback"`>], `"required"`, `"kind"` | `"subject"` | `"installation"` | `"issuer"` | `"callback"`> ; `request`: [`VUnion`](https://docs.bijection.com/api/classes/values.VUnion)\<`null` | \{ `reference`: `string` ; `operation`: `string` ; `owner`: `string`  }, \[[`VObject`](https://docs.bijection.com/api/classes/values.VObject)\<\{ `reference`: `string` ; `operation`: `string` ; `owner`: `string`  }, \{ `owner`: [`VString`](https://docs.bijection.com/api/classes/values.VString)\<`string`, `"required"`> ; `operation`: [`VString`](https://docs.bijection.com/api/classes/values.VString)\<`string`, `"required"`> ; `reference`: [`VString`](https://docs.bijection.com/api/classes/values.VString)\<`string`, `"required"`>  }, `"required"`, `"reference"` | `"operation"` | `"owner"`>, [`VNull`](https://docs.bijection.com/api/classes/values.VNull)\<`null`, `"required"`>], `"required"`, `"reference"` | `"operation"` | `"owner"`> ; `expires_at`: [`VUnion`](https://docs.bijection.com/api/classes/values.VUnion)\<`null` | `bigint`, \[[`VInt64`](https://docs.bijection.com/api/classes/values.VInt64)\<`bigint`, `"required"`>, [`VNull`](https://docs.bijection.com/api/classes/values.VNull)\<`null`, `"required"`>], `"required"`, `never`> ; `deadline_revision`: [`VString`](https://docs.bijection.com/api/classes/values.VString)\<`string`, `"required"`> ; `due_at`: [`VUnion`](https://docs.bijection.com/api/classes/values.VUnion)\<`null` | `bigint`, \[[`VInt64`](https://docs.bijection.com/api/classes/values.VInt64)\<`bigint`, `"required"`>, [`VNull`](https://docs.bijection.com/api/classes/values.VNull)\<`null`, `"required"`>], `"required"`, `never`> ; `overdue`: [`VBoolean`](https://docs.bijection.com/api/classes/values.VBoolean)\<`boolean`, `"required"`>  }, `"required"`, `"at"` | `"path"` | `"revision"` | `"position"` | `"case"` | `"request"` | `"actor"` | `"started_at"` | `"expires_at"` | `"declared"` | `"from"` | `"to"` | `"overdue"` | `"variant"` | `"seq"` | `"from_since"` | `"dwell_ms"` | `"dwell_bin"` | `"elapsed_ms"` | `"elapsed_bin"` | `"conformance"` | `"actor_identity"` | `"deadline_revision"` | `"due_at"` | `"request.reference"` | `"request.operation"` | `"request.owner"` | `"actor_identity.kind"` | `"actor_identity.subject"` | `"actor_identity.installation"` | `"actor_identity.issuer"` | `"actor_identity.callback"`>, \{ `by_case`: \[`"case"`, `"seq"`, `"_creationTime"`] ; `by_expiry`: \[`"expires_at"`, `"_creationTime"`] ; `by_target`: \[`"position"`, `"deadline_revision"`, `"_creationTime"`] ; `by_deadline`: \[`"position"`, `"deadline_revision"`, `"overdue"`, `"due_at"`, `"_creationTime"`] ; `by_variant`: \[`"position"`, `"variant"`, `"_creationTime"`]  }, \{}, \{}, `false`, \{}>

Declare the process history of the stage field whose `.transitions()`
names this table in `history`. The table has the fixed
[processHistoryFields](https://docs.bijection.com/api/modules/process#processhistoryfields) shape, the `by_case` and `by_expiry` indexes
the commit reads, `by_target` and `by_deadline` for current-policy deadline
maintenance, a `by_variant` index for reading a variant's path, and,
unless `totals: false`, the maintained totals of
[PROCESS\_HISTORY\_TOTALS](https://docs.bijection.com/api/modules/process#process_history_totals). Add an access declaration whose parent is
the case table by `case` and `by_case` when the case table is protected,
and `visibility: "collectionReaders"` so its readers are served totals.

```ts theme={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
orders: defineTable({ stage: v.string() }).transitions("stage", {
  initial: ["received"],
  edges: { received: ["packed", "cancelled"], packed: ["shipped"] },
  terminal: ["shipped", "cancelled"],
  history: "order_history",
}),
order_history: defineProcessHistory("orders"),
```

#### Type parameters

| Name | Type |
| :- | :- |
| `Case` | extends `string` |

#### Parameters

| Name | Type |
| :- | :- |
| `caseTable` | `Case` |
| `options?` | `Object` |
| `options.totals?` | `boolean` |
| `options.visibility?` | `"collectionReaders"` |

#### Returns

[`TableDefinition`](https://docs.bijection.com/api/classes/server.TableDefinition)\<[`VObject`](https://docs.bijection.com/api/classes/values.VObject)\<\{ `at`: `bigint` ; `path`: `string`\[] ; `revision`: `string` ; `position`: `"open"` | `"closed"` | `"past"` ; `case`: [`GenericId`](https://docs.bijection.com/api/modules/values#genericid)\<`Case`> ; `request`: `null` | \{ reference: string; operation: string; owner: string; } ; `actor`: `"program"` | `"system"` | `"user"` | `"acting_user"` | `"admin"` | `"anonymous"` ; `started_at`: `null` | `bigint` ; `expires_at`: `null` | `bigint` ; `declared`: `boolean` ; `from`: `null` | `string` ; `to`: `null` | `string` ; `overdue`: `boolean` ; `variant`: `string` ; `seq`: `bigint` ; `from_since`: `null` | `bigint` ; `dwell_ms`: `bigint` ; `dwell_bin`: `string` ; `elapsed_ms`: `bigint` ; `elapsed_bin`: `string` ; `conformance`: `"unknown"` | `"conformant"` | `"deviant"` ; `actor_identity`: \{ kind: "user"; subject: string; issuer: string; } | \{ kind: "acting\_user"; subject: string | null; } | \{ kind: "program"; installation: string | null; callback: string; } | \{ kind: "admin"; } | \{ kind: "system"; } | \{ kind: "anonymous"; } ; `deadline_revision`: `string` ; `due_at`: `null` | `bigint`  }, \{ `case`: [`VId`](https://docs.bijection.com/api/classes/values.VId)\<[`GenericId`](https://docs.bijection.com/api/modules/values#genericid)\<`Case`>, `"required"`> ; `seq`: [`VInt64`](https://docs.bijection.com/api/classes/values.VInt64)\<`bigint`, `"required"`> ; `from`: [`VUnion`](https://docs.bijection.com/api/classes/values.VUnion)\<`null` | `string`, \[[`VString`](https://docs.bijection.com/api/classes/values.VString)\<`string`, `"required"`>, [`VNull`](https://docs.bijection.com/api/classes/values.VNull)\<`null`, `"required"`>], `"required"`, `never`> ; `to`: [`VUnion`](https://docs.bijection.com/api/classes/values.VUnion)\<`null` | `string`, \[[`VString`](https://docs.bijection.com/api/classes/values.VString)\<`string`, `"required"`>, [`VNull`](https://docs.bijection.com/api/classes/values.VNull)\<`null`, `"required"`>], `"required"`, `never`> ; `at`: [`VInt64`](https://docs.bijection.com/api/classes/values.VInt64)\<`bigint`, `"required"`> ; `from_since`: [`VUnion`](https://docs.bijection.com/api/classes/values.VUnion)\<`null` | `bigint`, \[[`VInt64`](https://docs.bijection.com/api/classes/values.VInt64)\<`bigint`, `"required"`>, [`VNull`](https://docs.bijection.com/api/classes/values.VNull)\<`null`, `"required"`>], `"required"`, `never`> ; `dwell_ms`: [`VInt64`](https://docs.bijection.com/api/classes/values.VInt64)\<`bigint`, `"required"`> ; `dwell_bin`: [`VString`](https://docs.bijection.com/api/classes/values.VString)\<`string`, `"required"`> ; `started_at`: [`VUnion`](https://docs.bijection.com/api/classes/values.VUnion)\<`null` | `bigint`, \[[`VInt64`](https://docs.bijection.com/api/classes/values.VInt64)\<`bigint`, `"required"`>, [`VNull`](https://docs.bijection.com/api/classes/values.VNull)\<`null`, `"required"`>], `"required"`, `never`> ; `elapsed_ms`: [`VInt64`](https://docs.bijection.com/api/classes/values.VInt64)\<`bigint`, `"required"`> ; `elapsed_bin`: [`VString`](https://docs.bijection.com/api/classes/values.VString)\<`string`, `"required"`> ; `position`: [`VUnion`](https://docs.bijection.com/api/classes/values.VUnion)\<`"open"` | `"closed"` | `"past"`, \[[`VLiteral`](https://docs.bijection.com/api/classes/values.VLiteral)\<`"open"`, `"required"`>, [`VLiteral`](https://docs.bijection.com/api/classes/values.VLiteral)\<`"closed"`, `"required"`>, [`VLiteral`](https://docs.bijection.com/api/classes/values.VLiteral)\<`"past"`, `"required"`>], `"required"`, `never`> ; `declared`: [`VBoolean`](https://docs.bijection.com/api/classes/values.VBoolean)\<`boolean`, `"required"`> ; `conformance`: [`VUnion`](https://docs.bijection.com/api/classes/values.VUnion)\<`"unknown"` | `"conformant"` | `"deviant"`, \[[`VLiteral`](https://docs.bijection.com/api/classes/values.VLiteral)\<`"conformant"`, `"required"`>, [`VLiteral`](https://docs.bijection.com/api/classes/values.VLiteral)\<`"deviant"`, `"required"`>, [`VLiteral`](https://docs.bijection.com/api/classes/values.VLiteral)\<`"unknown"`, `"required"`>], `"required"`, `never`> ; `variant`: [`VString`](https://docs.bijection.com/api/classes/values.VString)\<`string`, `"required"`> ; `path`: [`VArray`](https://docs.bijection.com/api/classes/values.VArray)\<`string`\[], [`VString`](https://docs.bijection.com/api/classes/values.VString)\<`string`, `"required"`>, `"required"`> ; `revision`: [`VString`](https://docs.bijection.com/api/classes/values.VString)\<`string`, `"required"`> ; `actor`: [`VUnion`](https://docs.bijection.com/api/classes/values.VUnion)\<`"program"` | `"system"` | `"user"` | `"acting_user"` | `"admin"` | `"anonymous"`, \[[`VLiteral`](https://docs.bijection.com/api/classes/values.VLiteral)\<`"user"`, `"required"`>, [`VLiteral`](https://docs.bijection.com/api/classes/values.VLiteral)\<`"acting_user"`, `"required"`>, [`VLiteral`](https://docs.bijection.com/api/classes/values.VLiteral)\<`"program"`, `"required"`>, [`VLiteral`](https://docs.bijection.com/api/classes/values.VLiteral)\<`"admin"`, `"required"`>, [`VLiteral`](https://docs.bijection.com/api/classes/values.VLiteral)\<`"system"`, `"required"`>, [`VLiteral`](https://docs.bijection.com/api/classes/values.VLiteral)\<`"anonymous"`, `"required"`>], `"required"`, `never`> ; `actor_identity`: [`VUnion`](https://docs.bijection.com/api/classes/values.VUnion)\<\{ `kind`: `"user"` ; `subject`: `string` ; `issuer`: `string`  } | \{ `kind`: `"acting_user"` ; `subject`: `null` | `string`  } | \{ `kind`: `"program"` ; `installation`: `null` | `string` ; `callback`: `string`  } | \{ `kind`: `"admin"`  } | \{ `kind`: `"system"`  } | \{ `kind`: `"anonymous"`  }, \[[`VObject`](https://docs.bijection.com/api/classes/values.VObject)\<\{ `kind`: `"user"` ; `subject`: `string` ; `issuer`: `string`  }, \{ `kind`: [`VLiteral`](https://docs.bijection.com/api/classes/values.VLiteral)\<`"user"`, `"required"`> ; `subject`: [`VString`](https://docs.bijection.com/api/classes/values.VString)\<`string`, `"required"`> ; `issuer`: [`VString`](https://docs.bijection.com/api/classes/values.VString)\<`string`, `"required"`>  }, `"required"`, `"kind"` | `"subject"` | `"issuer"`>, [`VObject`](https://docs.bijection.com/api/classes/values.VObject)\<\{ `kind`: `"acting_user"` ; `subject`: `null` | `string`  }, \{ `kind`: [`VLiteral`](https://docs.bijection.com/api/classes/values.VLiteral)\<`"acting_user"`, `"required"`> ; `subject`: [`VUnion`](https://docs.bijection.com/api/classes/values.VUnion)\<`null` | `string`, \[[`VString`](https://docs.bijection.com/api/classes/values.VString)\<`string`, `"required"`>, [`VNull`](https://docs.bijection.com/api/classes/values.VNull)\<`null`, `"required"`>], `"required"`, `never`>  }, `"required"`, `"kind"` | `"subject"`>, [`VObject`](https://docs.bijection.com/api/classes/values.VObject)\<\{ `kind`: `"program"` ; `installation`: `null` | `string` ; `callback`: `string`  }, \{ `kind`: [`VLiteral`](https://docs.bijection.com/api/classes/values.VLiteral)\<`"program"`, `"required"`> ; `installation`: [`VUnion`](https://docs.bijection.com/api/classes/values.VUnion)\<`null` | `string`, \[[`VString`](https://docs.bijection.com/api/classes/values.VString)\<`string`, `"required"`>, [`VNull`](https://docs.bijection.com/api/classes/values.VNull)\<`null`, `"required"`>], `"required"`, `never`> ; `callback`: [`VString`](https://docs.bijection.com/api/classes/values.VString)\<`string`, `"required"`>  }, `"required"`, `"kind"` | `"installation"` | `"callback"`>], `"required"`, `"kind"` | `"subject"` | `"installation"` | `"issuer"` | `"callback"`> ; `request`: [`VUnion`](https://docs.bijection.com/api/classes/values.VUnion)\<`null` | \{ `reference`: `string` ; `operation`: `string` ; `owner`: `string`  }, \[[`VObject`](https://docs.bijection.com/api/classes/values.VObject)\<\{ `reference`: `string` ; `operation`: `string` ; `owner`: `string`  }, \{ `owner`: [`VString`](https://docs.bijection.com/api/classes/values.VString)\<`string`, `"required"`> ; `operation`: [`VString`](https://docs.bijection.com/api/classes/values.VString)\<`string`, `"required"`> ; `reference`: [`VString`](https://docs.bijection.com/api/classes/values.VString)\<`string`, `"required"`>  }, `"required"`, `"reference"` | `"operation"` | `"owner"`>, [`VNull`](https://docs.bijection.com/api/classes/values.VNull)\<`null`, `"required"`>], `"required"`, `"reference"` | `"operation"` | `"owner"`> ; `expires_at`: [`VUnion`](https://docs.bijection.com/api/classes/values.VUnion)\<`null` | `bigint`, \[[`VInt64`](https://docs.bijection.com/api/classes/values.VInt64)\<`bigint`, `"required"`>, [`VNull`](https://docs.bijection.com/api/classes/values.VNull)\<`null`, `"required"`>], `"required"`, `never`> ; `deadline_revision`: [`VString`](https://docs.bijection.com/api/classes/values.VString)\<`string`, `"required"`> ; `due_at`: [`VUnion`](https://docs.bijection.com/api/classes/values.VUnion)\<`null` | `bigint`, \[[`VInt64`](https://docs.bijection.com/api/classes/values.VInt64)\<`bigint`, `"required"`>, [`VNull`](https://docs.bijection.com/api/classes/values.VNull)\<`null`, `"required"`>], `"required"`, `never`> ; `overdue`: [`VBoolean`](https://docs.bijection.com/api/classes/values.VBoolean)\<`boolean`, `"required"`>  }, `"required"`, `"at"` | `"path"` | `"revision"` | `"position"` | `"case"` | `"request"` | `"actor"` | `"started_at"` | `"expires_at"` | `"declared"` | `"from"` | `"to"` | `"overdue"` | `"variant"` | `"seq"` | `"from_since"` | `"dwell_ms"` | `"dwell_bin"` | `"elapsed_ms"` | `"elapsed_bin"` | `"conformance"` | `"actor_identity"` | `"deadline_revision"` | `"due_at"` | `"request.reference"` | `"request.operation"` | `"request.owner"` | `"actor_identity.kind"` | `"actor_identity.subject"` | `"actor_identity.installation"` | `"actor_identity.issuer"` | `"actor_identity.callback"`>, \{ `by_case`: \[`"case"`, `"seq"`, `"_creationTime"`] ; `by_expiry`: \[`"expires_at"`, `"_creationTime"`] ; `by_target`: \[`"position"`, `"deadline_revision"`, `"_creationTime"`] ; `by_deadline`: \[`"position"`, `"deadline_revision"`, `"overdue"`, `"due_at"`, `"_creationTime"`] ; `by_variant`: \[`"position"`, `"variant"`, `"_creationTime"`]  }, \{}, \{}, `false`, \{}>

***

### processHistoryFields

▸ **processHistoryFields**\<`Case`>(`caseTable`): `Object`

The fields of a process history row of cases in `caseTable`. Times are UTC
milliseconds of the committing transaction's snapshot; `variant` names the
case's whole path so far.

#### Type parameters

| Name | Type |
| :- | :- |
| `Case` | extends `string` |

#### Parameters

| Name | Type |
| :- | :- |
| `caseTable` | `Case` |

#### Returns

`Object`

| Name | Type | Description |
| :- | :- | :- |
| `case` | [`VId`](https://docs.bijection.com/api/classes/values.VId)\<[`GenericId`](https://docs.bijection.com/api/modules/values#genericid)\<`Case`>, `"required"`> | - |
| `seq` | [`VInt64`](https://docs.bijection.com/api/classes/values.VInt64)\<`bigint`, `"required"`> | - |
| `from` | [`VUnion`](https://docs.bijection.com/api/classes/values.VUnion)\<`null` \| `string`, \[[`VString`](https://docs.bijection.com/api/classes/values.VString)\<`string`, `"required"`>, [`VNull`](https://docs.bijection.com/api/classes/values.VNull)\<`null`, `"required"`>], `"required"`, `never`> | - |
| `to` | [`VUnion`](https://docs.bijection.com/api/classes/values.VUnion)\<`null` \| `string`, \[[`VString`](https://docs.bijection.com/api/classes/values.VString)\<`string`, `"required"`>, [`VNull`](https://docs.bijection.com/api/classes/values.VNull)\<`null`, `"required"`>], `"required"`, `never`> | - |
| `at` | [`VInt64`](https://docs.bijection.com/api/classes/values.VInt64)\<`bigint`, `"required"`> | - |
| `from_since` | [`VUnion`](https://docs.bijection.com/api/classes/values.VUnion)\<`null` \| `bigint`, \[[`VInt64`](https://docs.bijection.com/api/classes/values.VInt64)\<`bigint`, `"required"`>, [`VNull`](https://docs.bijection.com/api/classes/values.VNull)\<`null`, `"required"`>], `"required"`, `never`> | - |
| `dwell_ms` | [`VInt64`](https://docs.bijection.com/api/classes/values.VInt64)\<`bigint`, `"required"`> | - |
| `dwell_bin` | [`VString`](https://docs.bijection.com/api/classes/values.VString)\<`string`, `"required"`> | - |
| `started_at` | [`VUnion`](https://docs.bijection.com/api/classes/values.VUnion)\<`null` \| `bigint`, \[[`VInt64`](https://docs.bijection.com/api/classes/values.VInt64)\<`bigint`, `"required"`>, [`VNull`](https://docs.bijection.com/api/classes/values.VNull)\<`null`, `"required"`>], `"required"`, `never`> | - |
| `elapsed_ms` | [`VInt64`](https://docs.bijection.com/api/classes/values.VInt64)\<`bigint`, `"required"`> | - |
| `elapsed_bin` | [`VString`](https://docs.bijection.com/api/classes/values.VString)\<`string`, `"required"`> | - |
| `position` | [`VUnion`](https://docs.bijection.com/api/classes/values.VUnion)\<`"open"` \| `"closed"` \| `"past"`, \[[`VLiteral`](https://docs.bijection.com/api/classes/values.VLiteral)\<`"open"`, `"required"`>, [`VLiteral`](https://docs.bijection.com/api/classes/values.VLiteral)\<`"closed"`, `"required"`>, [`VLiteral`](https://docs.bijection.com/api/classes/values.VLiteral)\<`"past"`, `"required"`>], `"required"`, `never`> | - |
| `declared` | [`VBoolean`](https://docs.bijection.com/api/classes/values.VBoolean)\<`boolean`, `"required"`> | - |
| `conformance` | [`VUnion`](https://docs.bijection.com/api/classes/values.VUnion)\<`"unknown"` \| `"conformant"` \| `"deviant"`, \[[`VLiteral`](https://docs.bijection.com/api/classes/values.VLiteral)\<`"conformant"`, `"required"`>, [`VLiteral`](https://docs.bijection.com/api/classes/values.VLiteral)\<`"deviant"`, `"required"`>, [`VLiteral`](https://docs.bijection.com/api/classes/values.VLiteral)\<`"unknown"`, `"required"`>], `"required"`, `never`> | - |
| `variant` | [`VString`](https://docs.bijection.com/api/classes/values.VString)\<`string`, `"required"`> | - |
| `path` | [`VArray`](https://docs.bijection.com/api/classes/values.VArray)\<`string`\[], [`VString`](https://docs.bijection.com/api/classes/values.VString)\<`string`, `"required"`>, `"required"`> | - |
| `revision` | [`VString`](https://docs.bijection.com/api/classes/values.VString)\<`string`, `"required"`> | - |
| `actor` | [`VUnion`](https://docs.bijection.com/api/classes/values.VUnion)\<`"program"` \| `"system"` \| `"user"` \| `"acting_user"` \| `"admin"` \| `"anonymous"`, \[[`VLiteral`](https://docs.bijection.com/api/classes/values.VLiteral)\<`"user"`, `"required"`>, [`VLiteral`](https://docs.bijection.com/api/classes/values.VLiteral)\<`"acting_user"`, `"required"`>, [`VLiteral`](https://docs.bijection.com/api/classes/values.VLiteral)\<`"program"`, `"required"`>, [`VLiteral`](https://docs.bijection.com/api/classes/values.VLiteral)\<`"admin"`, `"required"`>, [`VLiteral`](https://docs.bijection.com/api/classes/values.VLiteral)\<`"system"`, `"required"`>, [`VLiteral`](https://docs.bijection.com/api/classes/values.VLiteral)\<`"anonymous"`, `"required"`>], `"required"`, `never`> | - |
| `actor_identity` | [`VUnion`](https://docs.bijection.com/api/classes/values.VUnion)\<\{ `kind`: `"user"` ; `subject`: `string` ; `issuer`: `string`  } \| \{ `kind`: `"acting_user"` ; `subject`: `null` \| `string`  } \| \{ `kind`: `"program"` ; `installation`: `null` \| `string` ; `callback`: `string`  } \| \{ `kind`: `"admin"`  } \| \{ `kind`: `"system"`  } \| \{ `kind`: `"anonymous"`  }, \[[`VObject`](https://docs.bijection.com/api/classes/values.VObject)\<\{ `kind`: `"user"` ; `subject`: `string` ; `issuer`: `string`  }, \{ `kind`: [`VLiteral`](https://docs.bijection.com/api/classes/values.VLiteral)\<`"user"`, `"required"`> ; `subject`: [`VString`](https://docs.bijection.com/api/classes/values.VString)\<`string`, `"required"`> ; `issuer`: [`VString`](https://docs.bijection.com/api/classes/values.VString)\<`string`, `"required"`>  }, `"required"`, `"kind"` \| `"subject"` \| `"issuer"`>, [`VObject`](https://docs.bijection.com/api/classes/values.VObject)\<\{ `kind`: `"acting_user"` ; `subject`: `null` \| `string`  }, \{ `kind`: [`VLiteral`](https://docs.bijection.com/api/classes/values.VLiteral)\<`"acting_user"`, `"required"`> ; `subject`: [`VUnion`](https://docs.bijection.com/api/classes/values.VUnion)\<`null` \| `string`, \[[`VString`](https://docs.bijection.com/api/classes/values.VString)\<`string`, `"required"`>, [`VNull`](https://docs.bijection.com/api/classes/values.VNull)\<`null`, `"required"`>], `"required"`, `never`>  }, `"required"`, `"kind"` \| `"subject"`>, [`VObject`](https://docs.bijection.com/api/classes/values.VObject)\<\{ `kind`: `"program"` ; `installation`: `null` \| `string` ; `callback`: `string`  }, \{ `kind`: [`VLiteral`](https://docs.bijection.com/api/classes/values.VLiteral)\<`"program"`, `"required"`> ; `installation`: [`VUnion`](https://docs.bijection.com/api/classes/values.VUnion)\<`null` \| `string`, \[[`VString`](https://docs.bijection.com/api/classes/values.VString)\<`string`, `"required"`>, [`VNull`](https://docs.bijection.com/api/classes/values.VNull)\<`null`, `"required"`>], `"required"`, `never`> ; `callback`: [`VString`](https://docs.bijection.com/api/classes/values.VString)\<`string`, `"required"`>  }, `"required"`, `"kind"` \| `"installation"` \| `"callback"`>], `"required"`, `"kind"` \| `"subject"` \| `"installation"` \| `"issuer"` \| `"callback"`> | Verified committing identity; provenance, never an authorization grant. |
| `request` | [`VUnion`](https://docs.bijection.com/api/classes/values.VUnion)\<`null` \| \{ `reference`: `string` ; `operation`: `string` ; `owner`: `string`  }, \[[`VObject`](https://docs.bijection.com/api/classes/values.VObject)\<\{ `reference`: `string` ; `operation`: `string` ; `owner`: `string`  }, \{ `owner`: [`VString`](https://docs.bijection.com/api/classes/values.VString)\<`string`, `"required"`> ; `operation`: [`VString`](https://docs.bijection.com/api/classes/values.VString)\<`string`, `"required"`> ; `reference`: [`VString`](https://docs.bijection.com/api/classes/values.VString)\<`string`, `"required"`>  }, `"required"`, `"reference"` \| `"operation"` \| `"owner"`>, [`VNull`](https://docs.bijection.com/api/classes/values.VNull)\<`null`, `"required"`>], `"required"`, `"reference"` \| `"operation"` \| `"owner"`> | The accepted request of the sole attributed writer, or null. |
| `expires_at` | [`VUnion`](https://docs.bijection.com/api/classes/values.VUnion)\<`null` \| `bigint`, \[[`VInt64`](https://docs.bijection.com/api/classes/values.VInt64)\<`bigint`, `"required"`>, [`VNull`](https://docs.bijection.com/api/classes/values.VNull)\<`null`, `"required"`>], `"required"`, `never`> | - |
| `deadline_revision` | [`VString`](https://docs.bijection.com/api/classes/values.VString)\<`string`, `"required"`> | - |
| `due_at` | [`VUnion`](https://docs.bijection.com/api/classes/values.VUnion)\<`null` \| `bigint`, \[[`VInt64`](https://docs.bijection.com/api/classes/values.VInt64)\<`bigint`, `"required"`>, [`VNull`](https://docs.bijection.com/api/classes/values.VNull)\<`null`, `"required"`>], `"required"`, `never`> | - |
| `overdue` | [`VBoolean`](https://docs.bijection.com/api/classes/values.VBoolean)\<`boolean`, `"required"`> | - |

***

### processBinLabel

▸ **processBinLabel**(`bins`, `durationMs`): `string`

`<1h` for the first bin a duration is below, `>=7d` past the last and
`unknown` for an unknown duration, as the commit labels them.

#### Parameters

| Name | Type |
| :- | :- |
| `bins` | readonly `number`\[] |
| `durationMs` | `bigint` \| `null` |

#### Returns

`string`


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.