> ## 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: clocks

> Reference for the bijection/clocks entry point.

## Classes

* [ClockError](https://docs.bijection.com/api/classes/clocks.ClockError.md)
* [Clock](https://docs.bijection.com/api/classes/clocks.Clock.md)
* [Instant](https://docs.bijection.com/api/classes/clocks.Instant.md)
* [MappedInstant](https://docs.bijection.com/api/classes/clocks.MappedInstant.md)
* [ClockMapping](https://docs.bijection.com/api/classes/clocks.ClockMapping.md)
* [SampleGrid](https://docs.bijection.com/api/classes/clocks.SampleGrid.md)
* [TimeRange](https://docs.bijection.com/api/classes/clocks.TimeRange.md)

## Type Aliases

### Ratio

Ƭ **Ratio**: `Readonly`\<\{ `numerator`: `bigint` ; `denominator`: `bigint`  }>

***

### Exact

Ƭ **Exact**: `bigint` | [`Ratio`](https://docs.bijection.com/api/modules/clocks#ratio)

***

### WireRatio

Ƭ **WireRatio**: `Object`

Not exported: an exported type refers to it.

#### Type declaration

| Name | Type |
| :- | :- |
| `numerator` | `string` |
| `denominator` | `string` |

***

### Rounding

Ƭ **Rounding**: `"exact"` | `"floor"` | `"ceil"` | `"nearest"`

***

### MappingOptions

Ƭ **MappingOptions**\<`S`, `T`>: `Object`

#### Type parameters

| Name | Type |
| :- | :- |
| `S` | extends `string` = `string` |
| `T` | extends `string` = `string` |

#### Type declaration

| Name | Type | Description |
| :- | :- | :- |
| `source` | [`Clock`](https://docs.bijection.com/api/classes/clocks.Clock)\<`S`> | - |
| `target` | [`Clock`](https://docs.bijection.com/api/classes/clocks.Clock)\<`T`> | - |
| `fromTicks` | [`Exact`](https://docs.bijection.com/api/modules/clocks#exact) | - |
| `toTicks` | [`Exact`](https://docs.bijection.com/api/modules/clocks#exact) | - |
| `sourceAnchor` | [`Exact`](https://docs.bijection.com/api/modules/clocks#exact) | - |
| `targetAnchor` | [`Exact`](https://docs.bijection.com/api/modules/clocks#exact) | - |
| `targetTicksPerSourceTick` | [`Exact`](https://docs.bijection.com/api/modules/clocks#exact) | - |
| `uncertaintySeconds` | [`Exact`](https://docs.bijection.com/api/modules/clocks#exact) | One shared additive offset error for this affine calibration revision. The scale is exact; point-specific errors belong to observation uncertainty. |

***

### ClockEvidence

Ƭ **ClockEvidence**: [`Infer`](https://docs.bijection.com/api/modules/values#infer)\<typeof `evidence`>

Exact rational coordinate evidence retained across publication boundaries.

## Variables

### clockValidators

• `Const` **clockValidators**: `Object`

Shared wire validators for retained temporal provenance.

#### Type declaration

| Name | Type |
| :- | :- |
| `rational` | [`VObject`](https://docs.bijection.com/api/classes/values.VObject)\<\{ `numerator`: `string` ; `denominator`: `string`  }, \{ `numerator`: [`VString`](https://docs.bijection.com/api/classes/values.VString)\<`string`, `"required"`> ; `denominator`: [`VString`](https://docs.bijection.com/api/classes/values.VString)\<`string`, `"required"`>  }, `"required"`, `"numerator"` \| `"denominator"`> |
| `clock` | [`VObject`](https://docs.bijection.com/api/classes/values.VObject)\<\{ `identity`: `string` ; `ticks_per_second`: \{ numerator: string; denominator: string; }  }, \{ `identity`: [`VString`](https://docs.bijection.com/api/classes/values.VString)\<`string`, `"required"`> ; `ticks_per_second`: [`VObject`](https://docs.bijection.com/api/classes/values.VObject)\<\{ `numerator`: `string` ; `denominator`: `string`  }, \{ `numerator`: [`VString`](https://docs.bijection.com/api/classes/values.VString)\<`string`, `"required"`> ; `denominator`: [`VString`](https://docs.bijection.com/api/classes/values.VString)\<`string`, `"required"`>  }, `"required"`, `"numerator"` \| `"denominator"`> = rational }, `"required"`, `"identity"` \| `"ticks_per_second"` \| `"ticks_per_second.numerator"` \| `"ticks_per_second.denominator"`> |
| `instant` | [`VObject`](https://docs.bijection.com/api/classes/values.VObject)\<\{ `clock`: \{ identity: string; ticks\_per\_second: \{ numerator: string; denominator: string; }; } ; `ticks`: \{ numerator: string; denominator: string; }  }, \{ `clock`: [`VObject`](https://docs.bijection.com/api/classes/values.VObject)\<\{ `identity`: `string` ; `ticks_per_second`: \{ numerator: string; denominator: string; }  }, \{ `identity`: [`VString`](https://docs.bijection.com/api/classes/values.VString)\<`string`, `"required"`> ; `ticks_per_second`: [`VObject`](https://docs.bijection.com/api/classes/values.VObject)\<\{ `numerator`: `string` ; `denominator`: `string`  }, \{ `numerator`: [`VString`](https://docs.bijection.com/api/classes/values.VString)\<`string`, `"required"`> ; `denominator`: [`VString`](https://docs.bijection.com/api/classes/values.VString)\<`string`, `"required"`>  }, `"required"`, `"numerator"` \| `"denominator"`> = rational }, `"required"`, `"identity"` \| `"ticks_per_second"` \| `"ticks_per_second.numerator"` \| `"ticks_per_second.denominator"`> ; `ticks`: [`VObject`](https://docs.bijection.com/api/classes/values.VObject)\<\{ `numerator`: `string` ; `denominator`: `string`  }, \{ `numerator`: [`VString`](https://docs.bijection.com/api/classes/values.VString)\<`string`, `"required"`> ; `denominator`: [`VString`](https://docs.bijection.com/api/classes/values.VString)\<`string`, `"required"`>  }, `"required"`, `"numerator"` \| `"denominator"`> = rational }, `"required"`, `"clock"` \| `"ticks"` \| `"clock.identity"` \| `"clock.ticks_per_second"` \| `"clock.ticks_per_second.numerator"` \| `"clock.ticks_per_second.denominator"` \| `"ticks.numerator"` \| `"ticks.denominator"`> |
| `range` | [`VObject`](https://docs.bijection.com/api/classes/values.VObject)\<\{ `from`: \{ numerator: string; denominator: string; } ; `clock`: \{ identity: string; ticks\_per\_second: \{ numerator: string; denominator: string; }; } ; `to`: \{ numerator: string; denominator: string; }  }, \{ `clock`: [`VObject`](https://docs.bijection.com/api/classes/values.VObject)\<\{ `identity`: `string` ; `ticks_per_second`: \{ numerator: string; denominator: string; }  }, \{ `identity`: [`VString`](https://docs.bijection.com/api/classes/values.VString)\<`string`, `"required"`> ; `ticks_per_second`: [`VObject`](https://docs.bijection.com/api/classes/values.VObject)\<\{ `numerator`: `string` ; `denominator`: `string`  }, \{ `numerator`: [`VString`](https://docs.bijection.com/api/classes/values.VString)\<`string`, `"required"`> ; `denominator`: [`VString`](https://docs.bijection.com/api/classes/values.VString)\<`string`, `"required"`>  }, `"required"`, `"numerator"` \| `"denominator"`> = rational }, `"required"`, `"identity"` \| `"ticks_per_second"` \| `"ticks_per_second.numerator"` \| `"ticks_per_second.denominator"`> ; `from`: [`VObject`](https://docs.bijection.com/api/classes/values.VObject)\<\{ `numerator`: `string` ; `denominator`: `string`  }, \{ `numerator`: [`VString`](https://docs.bijection.com/api/classes/values.VString)\<`string`, `"required"`> ; `denominator`: [`VString`](https://docs.bijection.com/api/classes/values.VString)\<`string`, `"required"`>  }, `"required"`, `"numerator"` \| `"denominator"`> = rational; `to`: [`VObject`](https://docs.bijection.com/api/classes/values.VObject)\<\{ `numerator`: `string` ; `denominator`: `string`  }, \{ `numerator`: [`VString`](https://docs.bijection.com/api/classes/values.VString)\<`string`, `"required"`> ; `denominator`: [`VString`](https://docs.bijection.com/api/classes/values.VString)\<`string`, `"required"`>  }, `"required"`, `"numerator"` \| `"denominator"`> = rational }, `"required"`, `"from"` \| `"clock"` \| `"to"` \| `"clock.identity"` \| `"clock.ticks_per_second"` \| `"clock.ticks_per_second.numerator"` \| `"clock.ticks_per_second.denominator"` \| `"from.numerator"` \| `"from.denominator"` \| `"to.numerator"` \| `"to.denominator"`> |
| `mappedInstant` | [`VObject`](https://docs.bijection.com/api/classes/values.VObject)\<\{ `time`: \{ clock: \{ identity: string; ticks\_per\_second: \{ numerator: string; denominator: string; }; }; ticks: \{ numerator: string; denominator: string; }; } ; `uncertainty_seconds`: \{ numerator: string; denominator: string; } ; `mapping_revisions`: `string`\[]  }, \{ `time`: [`VObject`](https://docs.bijection.com/api/classes/values.VObject)\<\{ `clock`: \{ identity: string; ticks\_per\_second: \{ numerator: string; denominator: string; }; } ; `ticks`: \{ numerator: string; denominator: string; }  }, \{ `clock`: [`VObject`](https://docs.bijection.com/api/classes/values.VObject)\<\{ `identity`: `string` ; `ticks_per_second`: \{ numerator: string; denominator: string; }  }, \{ `identity`: [`VString`](https://docs.bijection.com/api/classes/values.VString)\<`string`, `"required"`> ; `ticks_per_second`: [`VObject`](https://docs.bijection.com/api/classes/values.VObject)\<\{ `numerator`: `string` ; `denominator`: `string`  }, \{ `numerator`: [`VString`](https://docs.bijection.com/api/classes/values.VString)\<`string`, `"required"`> ; `denominator`: [`VString`](https://docs.bijection.com/api/classes/values.VString)\<`string`, `"required"`>  }, `"required"`, `"numerator"` \| `"denominator"`> = rational }, `"required"`, `"identity"` \| `"ticks_per_second"` \| `"ticks_per_second.numerator"` \| `"ticks_per_second.denominator"`> ; `ticks`: [`VObject`](https://docs.bijection.com/api/classes/values.VObject)\<\{ `numerator`: `string` ; `denominator`: `string`  }, \{ `numerator`: [`VString`](https://docs.bijection.com/api/classes/values.VString)\<`string`, `"required"`> ; `denominator`: [`VString`](https://docs.bijection.com/api/classes/values.VString)\<`string`, `"required"`>  }, `"required"`, `"numerator"` \| `"denominator"`> = rational }, `"required"`, `"clock"` \| `"ticks"` \| `"clock.identity"` \| `"clock.ticks_per_second"` \| `"clock.ticks_per_second.numerator"` \| `"clock.ticks_per_second.denominator"` \| `"ticks.numerator"` \| `"ticks.denominator"`> = instant; `uncertainty_seconds`: [`VObject`](https://docs.bijection.com/api/classes/values.VObject)\<\{ `numerator`: `string` ; `denominator`: `string`  }, \{ `numerator`: [`VString`](https://docs.bijection.com/api/classes/values.VString)\<`string`, `"required"`> ; `denominator`: [`VString`](https://docs.bijection.com/api/classes/values.VString)\<`string`, `"required"`>  }, `"required"`, `"numerator"` \| `"denominator"`> = rational; `mapping_revisions`: [`VArray`](https://docs.bijection.com/api/classes/values.VArray)\<`string`\[], [`VString`](https://docs.bijection.com/api/classes/values.VString)\<`string`, `"required"`>, `"required"`>  }, `"required"`, `"time"` \| `"uncertainty_seconds"` \| `"mapping_revisions"` \| `"time.clock"` \| `"time.ticks"` \| `"time.clock.identity"` \| `"time.clock.ticks_per_second"` \| `"time.clock.ticks_per_second.numerator"` \| `"time.clock.ticks_per_second.denominator"` \| `"time.ticks.numerator"` \| `"time.ticks.denominator"` \| `"uncertainty_seconds.numerator"` \| `"uncertainty_seconds.denominator"`> |
| `evidence` | [`VObject`](https://docs.bijection.com/api/classes/values.VObject)\<\{ `uncertainty_seconds`: \{ numerator: string; denominator: string; } ; `mapping_revisions`: `string`\[] ; `clock_errors`: `Record`\<`string`, \{ numerator: string; denominator: string; }>  }, \{ `uncertainty_seconds`: [`VObject`](https://docs.bijection.com/api/classes/values.VObject)\<\{ `numerator`: `string` ; `denominator`: `string`  }, \{ `numerator`: [`VString`](https://docs.bijection.com/api/classes/values.VString)\<`string`, `"required"`> ; `denominator`: [`VString`](https://docs.bijection.com/api/classes/values.VString)\<`string`, `"required"`>  }, `"required"`, `"numerator"` \| `"denominator"`> = rational; `mapping_revisions`: [`VArray`](https://docs.bijection.com/api/classes/values.VArray)\<`string`\[], [`VString`](https://docs.bijection.com/api/classes/values.VString)\<`string`, `"required"`>, `"required"`> ; `clock_errors`: [`VRecord`](https://docs.bijection.com/api/classes/values.VRecord)\<`Record`\<`string`, \{ `numerator`: `string` ; `denominator`: `string`  }>, [`VString`](https://docs.bijection.com/api/classes/values.VString)\<`string`, `"required"`>, [`VObject`](https://docs.bijection.com/api/classes/values.VObject)\<\{ `numerator`: `string` ; `denominator`: `string`  }, \{ `numerator`: [`VString`](https://docs.bijection.com/api/classes/values.VString)\<`string`, `"required"`> ; `denominator`: [`VString`](https://docs.bijection.com/api/classes/values.VString)\<`string`, `"required"`>  }, `"required"`, `"numerator"` \| `"denominator"`>, `"required"`, `string`>  }, `"required"`, `"uncertainty_seconds"` \| `"mapping_revisions"` \| `"uncertainty_seconds.numerator"` \| `"uncertainty_seconds.denominator"` \| `"clock_errors"` \| \`clock\_errors.\$\{string}\`> |

## Functions

### ratio

▸ **ratio**(`numerator`, `denominator?`): [`Ratio`](https://docs.bijection.com/api/modules/clocks#ratio)

#### Parameters

| Name | Type |
| :- | :- |
| `numerator` | `bigint` |
| `denominator` | `bigint` |

#### Returns

[`Ratio`](https://docs.bijection.com/api/modules/clocks#ratio)

***

### exactClockEvidence

▸ **exactClockEvidence**(): [`ClockEvidence`](https://docs.bijection.com/api/modules/clocks#clockevidence)

Declare an exact output coordinate with no calibration lineage.

#### Returns

[`ClockEvidence`](https://docs.bijection.com/api/modules/clocks#clockevidence)


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