> ## 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.

# Interface: SeriesDefinition<Fields>

> A series exposes its access policy and derived inputs.

[server](/api/modules/server).SeriesDefinition

A series exposes its access policy and derived inputs. Its internal schema
declaration remains the existing native table representation.

## Type parameters

| Name | Type |
| :- | :- |
| `Fields` | extends `Record`\<`string`, [`GenericValidator`](/api/modules/values#genericvalidator)> |

## Hierarchy

* `Pick`\<[`SeriesTableDefinition`](/api/classes/server.SeriesTableDefinition)\<`Fields`>, `"eventInput"` | `"rangeInput"` | `"pageInput"` | `"retention"`>

  ↳ **`SeriesDefinition`**

## Properties

### \[seriesDefinition]

• `Readonly` **\[seriesDefinition]**: [`SeriesTableDefinition`](/api/classes/server.SeriesTableDefinition)\<`Fields`>

## Methods

### eventInput

▸ **eventInput**(): [`VObject`](/api/classes/values.VObject)\<\{ `values`: [`Expand`](/api/modules/server#expand)\<\{ \[Property in string | number | symbol]?: Exclude\<Infer\<Fields\[Property]>, undefined> } & \{ \[Property in string | number | symbol]: Infer\<Fields\[Property]> }> ; `series`: `string` ; `time`: `bigint` ; `order`: `bigint` ; `event_id`: `string`  }, \{ `series`: [`VString`](/api/classes/values.VString)\<`string`, `"required"`> ; `event_id`: [`VString`](/api/classes/values.VString)\<`string`, `"required"`> ; `time`: [`VInt64`](/api/classes/values.VInt64)\<`bigint`, `"required"`> ; `order`: [`VInt64`](/api/classes/values.VInt64)\<`bigint`, `"required"`> ; `values`: [`VObject`](/api/classes/values.VObject)\<[`Expand`](/api/modules/server#expand)\<\{ \[Property in string | number | symbol]?: Exclude\<Infer\<Fields\[Property]>, undefined> } & \{ \[Property in string | number | symbol]: Infer\<Fields\[Property]> }>, `Fields`, `"required"`, \{ \[Property in string | number | symbol]: Property | \`$\{Property & string}.$\{Fields\[Property]\["fieldPaths"]}\` }\[keyof `Fields`] & `string`>  }, `"required"`, `"values"` | `"series"` | `"time"` | `"order"` | `"event_id"` | \`values.$\{\{ [Property in string \| number \| symbol]: Property \| \`$\{Property & string}.\$\{Fields\[Property]\["fieldPaths"]}\` }\[keyof Fields] & string}\`>

Derive one admission input from this series' declared payload. The
source belongs to the authorized endpoint; keys, receipt time and
admission metadata belong to the engine.

#### Returns

[`VObject`](/api/classes/values.VObject)\<\{ `values`: [`Expand`](/api/modules/server#expand)\<\{ \[Property in string | number | symbol]?: Exclude\<Infer\<Fields\[Property]>, undefined> } & \{ \[Property in string | number | symbol]: Infer\<Fields\[Property]> }> ; `series`: `string` ; `time`: `bigint` ; `order`: `bigint` ; `event_id`: `string`  }, \{ `series`: [`VString`](/api/classes/values.VString)\<`string`, `"required"`> ; `event_id`: [`VString`](/api/classes/values.VString)\<`string`, `"required"`> ; `time`: [`VInt64`](/api/classes/values.VInt64)\<`bigint`, `"required"`> ; `order`: [`VInt64`](/api/classes/values.VInt64)\<`bigint`, `"required"`> ; `values`: [`VObject`](/api/classes/values.VObject)\<[`Expand`](/api/modules/server#expand)\<\{ \[Property in string | number | symbol]?: Exclude\<Infer\<Fields\[Property]>, undefined> } & \{ \[Property in string | number | symbol]: Infer\<Fields\[Property]> }>, `Fields`, `"required"`, \{ \[Property in string | number | symbol]: Property | \`$\{Property & string}.$\{Fields\[Property]\["fieldPaths"]}\` }\[keyof `Fields`] & `string`>  }, `"required"`, `"values"` | `"series"` | `"time"` | `"order"` | `"event_id"` | \`values.$\{\{ [Property in string \| number \| symbol]: Property \| \`$\{Property & string}.\$\{Fields\[Property]\["fieldPaths"]}\` }\[keyof Fields] & string}\`>

#### Inherited from

Pick.eventInput

***

### rangeInput

▸ **rangeInput**(): [`VObject`](/api/classes/values.VObject)\<\{ `from`: `bigint` ; `to`: `bigint` ; `series`: `string`  }, \{ `series`: [`VString`](/api/classes/values.VString)\<`string`, `"required"`> ; `from`: [`VInt64`](/api/classes/values.VInt64)\<`bigint`, `"required"`> ; `to`: [`VInt64`](/api/classes/values.VInt64)\<`bigint`, `"required"`>  }, `"required"`, `"from"` | `"to"` | `"series"`>

Derive the exact half-open range of this series.

#### Returns

[`VObject`](/api/classes/values.VObject)\<\{ `from`: `bigint` ; `to`: `bigint` ; `series`: `string`  }, \{ `series`: [`VString`](/api/classes/values.VString)\<`string`, `"required"`> ; `from`: [`VInt64`](/api/classes/values.VInt64)\<`bigint`, `"required"`> ; `to`: [`VInt64`](/api/classes/values.VInt64)\<`bigint`, `"required"`>  }, `"required"`, `"from"` | `"to"` | `"series"`>

#### Inherited from

Pick.rangeInput

***

### pageInput

▸ **pageInput**(): [`VObject`](/api/classes/values.VObject)\<\{ `fields`: `undefined` | `Extract`\<keyof `Fields`, `string`>\[] ; `cursor`: `undefined` | `string` ; `limit`: `undefined` | `number` ; `direction`: `undefined` | `"asc"` | `"desc"` ; `from`: `bigint` ; `to`: `bigint` ; `series`: `string`  }, \{ `series`: [`VString`](/api/classes/values.VString)\<`string`, `"required"`> ; `from`: [`VInt64`](/api/classes/values.VInt64)\<`bigint`, `"required"`> ; `to`: [`VInt64`](/api/classes/values.VInt64)\<`bigint`, `"required"`> ; `direction`: [`VUnion`](/api/classes/values.VUnion)\<`undefined` | `"asc"` | `"desc"`, \[[`VLiteral`](/api/classes/values.VLiteral)\<`"asc"`, `"required"`>, [`VLiteral`](/api/classes/values.VLiteral)\<`"desc"`, `"required"`>], `"optional"`, `never`> ; `limit`: [`VFloat64`](/api/classes/values.VFloat64)\<`undefined` | `number`, `"optional"`> ; `cursor`: [`VString`](/api/classes/values.VString)\<`undefined` | `string`, `"optional"`> ; `fields`: [`VArray`](/api/classes/values.VArray)\<`undefined` | `Extract`\<keyof `Fields`, `string`>\[], [`VUnion`](/api/classes/values.VUnion)\<`Extract`\<keyof `Fields`, `string`>, [`VLiteral`](/api/classes/values.VLiteral)\<`Extract`\<keyof `Fields`, `string`>, `"required"`>\[], `"required"`, `never`>, `"optional"`>  }, `"required"`, `"fields"` | `"from"` | `"cursor"` | `"to"` | `"limit"` | `"series"` | `"direction"`>

Derive paging and projection inputs from this series' payload.

#### Returns

[`VObject`](/api/classes/values.VObject)\<\{ `fields`: `undefined` | `Extract`\<keyof `Fields`, `string`>\[] ; `cursor`: `undefined` | `string` ; `limit`: `undefined` | `number` ; `direction`: `undefined` | `"asc"` | `"desc"` ; `from`: `bigint` ; `to`: `bigint` ; `series`: `string`  }, \{ `series`: [`VString`](/api/classes/values.VString)\<`string`, `"required"`> ; `from`: [`VInt64`](/api/classes/values.VInt64)\<`bigint`, `"required"`> ; `to`: [`VInt64`](/api/classes/values.VInt64)\<`bigint`, `"required"`> ; `direction`: [`VUnion`](/api/classes/values.VUnion)\<`undefined` | `"asc"` | `"desc"`, \[[`VLiteral`](/api/classes/values.VLiteral)\<`"asc"`, `"required"`>, [`VLiteral`](/api/classes/values.VLiteral)\<`"desc"`, `"required"`>], `"optional"`, `never`> ; `limit`: [`VFloat64`](/api/classes/values.VFloat64)\<`undefined` | `number`, `"optional"`> ; `cursor`: [`VString`](/api/classes/values.VString)\<`undefined` | `string`, `"optional"`> ; `fields`: [`VArray`](/api/classes/values.VArray)\<`undefined` | `Extract`\<keyof `Fields`, `string`>\[], [`VUnion`](/api/classes/values.VUnion)\<`Extract`\<keyof `Fields`, `string`>, [`VLiteral`](/api/classes/values.VLiteral)\<`Extract`\<keyof `Fields`, `string`>, `"required"`>\[], `"required"`, `never`>, `"optional"`>  }, `"required"`, `"fields"` | `"from"` | `"cursor"` | `"to"` | `"limit"` | `"series"` | `"direction"`>

#### Inherited from

Pick.pageInput

***

### retention

▸ **retention**(): [`SeriesRetention`](/api/modules/server#seriesretention)

The exact retention declared for this series, independent of storage.

#### Returns

[`SeriesRetention`](/api/modules/server#seriesretention)

#### Inherited from

Pick.retention

***

### access

▸ **access**(`definition`): [`SeriesDefinition`](/api/interfaces/server.SeriesDefinition)\<`Fields`>

#### Parameters

| Name | Type |
| :- | :- |
| `definition` | [`ReadAccess`](/api/modules/server#readaccess) |

#### Returns

[`SeriesDefinition`](/api/interfaces/server.SeriesDefinition)\<`Fields`>

▸ **access**(`definition`): [`SeriesDefinition`](/api/interfaces/server.SeriesDefinition)\<`Fields`>

#### Parameters

| Name | Type |
| :- | :- |
| `definition` | [`Members`](/api/modules/server#members) |

#### Returns

[`SeriesDefinition`](/api/interfaces/server.SeriesDefinition)\<`Fields`>

▸ **access**\<`R`, `Binding`>(`definition`, `...binding`): [`SeriesDefinition`](/api/interfaces/server.SeriesDefinition)\<`Fields`> & [`AccessTableBinding`](/api/modules/server#accesstablebinding)\<`R`, `Binding`>

#### Type parameters

| Name | Type |
| :- | :- |
| `R` | extends [`AccessResource`](/api/interfaces/server.AccessResource)\<`undefined` \| `string`, `string`, `string`, [`AccessModelDefinition`](/api/modules/server#accessmodeldefinition), `R`> |
| `Binding` | extends `object` = \{} |

#### Parameters

| Name | Type |
| :- | :- |
| `definition` | `R` |
| `...binding` | `R` extends [`AccessResource`](/api/interfaces/server.AccessResource)\<`string`, `string`, `string`, [`AccessModelDefinition`](/api/modules/server#accessmodeldefinition)> ? \[options: AccessResourceBinding\<EventField\<Fields>, PermissionOf\<R>> & Binding & Object & Object] : \[options?: AccessOptions\<Fields, R, Binding>] |

#### Returns

[`SeriesDefinition`](/api/interfaces/server.SeriesDefinition)\<`Fields`> & [`AccessTableBinding`](/api/modules/server#accesstablebinding)\<`R`, `Binding`>


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