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

# Class: TableDefinition<DocumentType, Indexes, SearchIndexes, VectorIndexes, IsSource, Relations>

> Not exported: an exported type refers to it.

[browser](/api/modules/browser).TableDefinition

Not exported: an exported type refers to it.

## Type parameters

| Name | Type |
| :- | :- |
| `DocumentType` | extends [`Validator`](/api/modules/browser#validator)\<`any`, `any`, `any`> = [`Validator`](/api/modules/browser#validator)\<`any`, `any`, `any`> |
| `Indexes` | extends [`GenericTableIndexes`](/api/modules/browser#generictableindexes) = \{} |
| `SearchIndexes` | extends [`GenericTableSearchIndexes`](/api/modules/browser#generictablesearchindexes) = \{} |
| `VectorIndexes` | extends [`GenericTableVectorIndexes`](/api/modules/browser#generictablevectorindexes) = \{} |
| `IsSource` | extends `boolean` = `false` |
| `Relations` | extends [`DeclaredRelations`](/api/modules/browser#declaredrelations) = \{} |

## Hierarchy

* **`TableDefinition`**

  ↳ [`ViewDefinition`](/api/classes/browser.ViewDefinition)

## Constructors

### constructor

• **new TableDefinition**\<`DocumentType`, `Indexes`, `SearchIndexes`, `VectorIndexes`, `IsSource`, `Relations`>(`documentType`)

#### Type parameters

| Name | Type |
| :- | :- |
| `DocumentType` | extends [`Validator`](/api/modules/browser#validator)\<`any`, `any`, `any`> = [`Validator`](/api/modules/browser#validator)\<`any`, `any`, `any`> |
| `Indexes` | extends [`GenericTableIndexes`](/api/modules/browser#generictableindexes) = \{} |
| `SearchIndexes` | extends [`GenericTableSearchIndexes`](/api/modules/browser#generictablesearchindexes) = \{} |
| `VectorIndexes` | extends [`GenericTableVectorIndexes`](/api/modules/browser#generictablevectorindexes) = \{} |
| `IsSource` | extends `boolean` = `false` |
| `Relations` | extends [`DeclaredRelations`](/api/modules/browser#declaredrelations) = \{} |

#### Parameters

| Name | Type |
| :- | :- |
| `documentType` | `DocumentType` |

## Properties

### isSource

• `Readonly` **isSource**: `IsSource`

***

### relations

• `Readonly` **relations**: `Relations`

***

### declared

• `Private` **declared**: [`TableExtensions`](/api/modules/browser#tableextensions)

***

### indexes

• `Private` **indexes**: `Index`\[]

***

### stagedDbIndexes

• `Private` **stagedDbIndexes**: `Index`\[]

***

### searchIndexes

• `Private` **searchIndexes**: `SearchIndex`\[]

***

### stagedSearchIndexes

• `Private` **stagedSearchIndexes**: `SearchIndex`\[]

***

### vectorIndexes

• `Private` **vectorIndexes**: `VectorIndex`\[]

***

### stagedVectorIndexes

• `Private` **stagedVectorIndexes**: `VectorIndex`\[]

***

### validator

• **validator**: `DocumentType`

***

### stagedValidator

• `Private` **stagedValidator**: `undefined` | [`Validator`](/api/modules/browser#validator)\<`any`, `any`, `any`>

## Methods

### access

▸ **access**(`definition`): [`TableDefinition`](/api/classes/browser.TableDefinition)\<`DocumentType`, `Indexes`, `SearchIndexes`, `VectorIndexes`, `IsSource`, `Relations`>

#### Parameters

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

#### Returns

[`TableDefinition`](/api/classes/browser.TableDefinition)\<`DocumentType`, `Indexes`, `SearchIndexes`, `VectorIndexes`, `IsSource`, `Relations`>

▸ **access**(`definition`): [`TableDefinition`](/api/classes/browser.TableDefinition)\<`DocumentType`, `Indexes`, `SearchIndexes`, `VectorIndexes`, `IsSource`, `Relations`>

#### Parameters

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

#### Returns

[`TableDefinition`](/api/classes/browser.TableDefinition)\<`DocumentType`, `Indexes`, `SearchIndexes`, `VectorIndexes`, `IsSource`, `Relations`>

▸ **access**\<`R`, `B`>(`definition`, `...binding`): [`TableDefinition`](/api/classes/browser.TableDefinition)\<`DocumentType`, `Indexes`, `SearchIndexes`, `VectorIndexes`, `IsSource`, `Relations`> & [`AccessTableBinding`](/api/modules/browser#accesstablebinding)\<`R`, `B`>

#### Type parameters

| Name | Type |
| :- | :- |
| `R` | extends [`AccessResource`](/api/interfaces/browser.AccessResource)\<`undefined` \| `string`, `string`, `string`, [`ResourceAccessModelDefinition`](/api/modules/browser#resourceaccessmodeldefinition), `R`> |
| `B` | extends `object` = \{} |

#### Parameters

| Name | Type |
| :- | :- |
| `definition` | `R` |
| `...binding` | `R` extends [`AccessResource`](/api/interfaces/browser.AccessResource)\<`string`, `string`, `string`, [`ResourceAccessModelDefinition`](/api/modules/browser#resourceaccessmodeldefinition)> ? \[options: AccessResourceBinding\<Extract\<keyof DocumentType\["type"], string>, R extends AccessResource\<any, P, string, ResourceAccessModelDefinition> ? P : never> & B & Object & Object] : \[options?: AccessResourceBinding\<Extract\<keyof DocumentType\["type"], string>, R extends AccessResource\<any, P, string, ResourceAccessModelDefinition> ? P : never> & B & Object] |

#### Returns

[`TableDefinition`](/api/classes/browser.TableDefinition)\<`DocumentType`, `Indexes`, `SearchIndexes`, `VectorIndexes`, `IsSource`, `Relations`> & [`AccessTableBinding`](/api/modules/browser#accesstablebinding)\<`R`, `B`>

***

### input

▸ **input**(`...limits`): [`TableInput`](/api/modules/browser#tableinput)\<`DocumentType`>

#### Parameters

| Name | Type |
| :- | :- |
| `...limits` | [`TableInputArgs`](/api/modules/browser#tableinputargs)\<`DocumentType`> |

#### Returns

[`TableInput`](/api/modules/browser#tableinput)\<`DocumentType`>

***

### resourceRequests

▸ **resourceRequests**(`options`): [`TableDefinition`](/api/classes/browser.TableDefinition)\<`DocumentType`, `Indexes`, `SearchIndexes`, `VectorIndexes`, `IsSource`, `Relations`>

#### Parameters

| Name | Type |
| :- | :- |
| `options` | `Object` |
| `options.grants` | `string` |
| `options.expire` | [`FunctionReference`](/api/modules/browser#functionreference)\<`"mutation"`, `"internal"`, \{ `id`: [`Id`](/api/modules/browser#id)\<`string`>  }> |

#### Returns

[`TableDefinition`](/api/classes/browser.TableDefinition)\<`DocumentType`, `Indexes`, `SearchIndexes`, `VectorIndexes`, `IsSource`, `Relations`>

***

### retain

▸ **retain**(`options`): [`TableDefinition`](/api/classes/browser.TableDefinition)\<`DocumentType`, `Indexes`, `SearchIndexes`, `VectorIndexes`, `IsSource`, `Relations`>

#### Parameters

| Name | Type |
| :- | :- |
| `options` | `Object` |
| `options.by` | `string` \| `string`\[] |
| `options.keys?` | `"registered"` \| `"derived"` |

#### Returns

[`TableDefinition`](/api/classes/browser.TableDefinition)\<`DocumentType`, `Indexes`, `SearchIndexes`, `VectorIndexes`, `IsSource`, `Relations`>

***

### erasable

▸ **erasable**(): [`TableDefinition`](/api/classes/browser.TableDefinition)\<`DocumentType`, `Indexes`, `SearchIndexes`, `VectorIndexes`, `IsSource`, `Relations`>

#### Returns

[`TableDefinition`](/api/classes/browser.TableDefinition)\<`DocumentType`, `Indexes`, `SearchIndexes`, `VectorIndexes`, `IsSource`, `Relations`>

***

### aggregate

▸ **aggregate**(`name`, `options`): [`TableDefinition`](/api/classes/browser.TableDefinition)\<`DocumentType`, `Indexes`, `SearchIndexes`, `VectorIndexes`, `IsSource`, `Relations`>

#### Parameters

| Name | Type |
| :- | :- |
| `name` | `string` |
| `options` | `Object` |
| `options.by` | `string`\[] |
| `options.sum?` | `string`\[] |
| `options.decimal?` | `Record`\<`string`, `number`> |
| `options.time?` | `Object` |
| `options.time.field` | `string` |
| `options.time.unit` | `"minute"` \| `"hour"` \| `"day"` \| `"week"` \| `"month"` \| `"second"` |
| `options.visibility?` | `"collectionReaders"` |

#### Returns

[`TableDefinition`](/api/classes/browser.TableDefinition)\<`DocumentType`, `Indexes`, `SearchIndexes`, `VectorIndexes`, `IsSource`, `Relations`>

***

### govern

▸ **govern**(`this`, `definition`): [`TableDefinition`](/api/classes/browser.TableDefinition)\<`DocumentType`, `Indexes`, `SearchIndexes`, `VectorIndexes`, `IsSource`, `Relations`>

#### Parameters

| Name | Type |
| :- | :- |
| `this` | [`GovernableTable`](/api/modules/browser#governabletable)\<`IsSource`, [`TableDefinition`](/api/classes/browser.TableDefinition)\<`DocumentType`, `Indexes`, `SearchIndexes`, `VectorIndexes`, `IsSource`, `Relations`>> |
| `definition` | [`GoverningDefinition`](/api/modules/browser#governingdefinition)\<[`Expand`](/api/modules/browser#expand)\<[`SystemFields`](/api/modules/browser#systemfields) & `DocumentType`\[`"type"`]> & \{ `_id`: [`Id`](/api/modules/browser#id)\<`string`>  }> |

#### Returns

[`TableDefinition`](/api/classes/browser.TableDefinition)\<`DocumentType`, `Indexes`, `SearchIndexes`, `VectorIndexes`, `IsSource`, `Relations`>

***

### link

▸ **link**\<`Fields`, `Names`>(`this`, `endpoints`, `names?`): [`TableDefinition`](/api/classes/browser.TableDefinition)\<`DocumentType`, `Indexes`, `SearchIndexes`, `VectorIndexes`, `IsSource`, `Relations` & [`LinkRelations`](/api/modules/browser#linkrelations)\<`DocumentType`, `Fields`, `Names`>>

#### Type parameters

| Name | Type |
| :- | :- |
| `Fields` | extends `never` |
| `Names` | extends `Partial`\<`Record`\<`Fields`, [`LinkEndpointNames`](/api/modules/browser#linkendpointnames)>> = \{} |

#### Parameters

| Name | Type |
| :- | :- |
| `this` | [`LinkableTable`](/api/modules/browser#linkabletable)\<`DocumentType`, `IsSource`, [`TableDefinition`](/api/classes/browser.TableDefinition)\<`DocumentType`, `Indexes`, `SearchIndexes`, `VectorIndexes`, `IsSource`, `Relations`>> |
| `endpoints` | `Record`\<`Fields`, [`Cardinality`](/api/modules/browser#cardinality)> |
| `names?` | `Names` |

#### Returns

[`TableDefinition`](/api/classes/browser.TableDefinition)\<`DocumentType`, `Indexes`, `SearchIndexes`, `VectorIndexes`, `IsSource`, `Relations` & [`LinkRelations`](/api/modules/browser#linkrelations)\<`DocumentType`, `Fields`, `Names`>>

***

### reference

▸ **reference**\<`Field`, `Options`>(`this`, `field`, `options?`): [`TableDefinition`](/api/classes/browser.TableDefinition)\<`DocumentType`, `Indexes`, `SearchIndexes`, `VectorIndexes`, `IsSource`, `Relations` & [`ReferenceRelation`](/api/modules/browser#referencerelation)\<`DocumentType`, `Field`, `Options`>>

#### Type parameters

| Name | Type |
| :- | :- |
| `Field` | extends `never` |
| `Options` | extends [`ReferenceOptions`](/api/modules/browser#referenceoptions) = \{} |

#### Parameters

| Name | Type |
| :- | :- |
| `this` | [`TableDefinition`](/api/classes/browser.TableDefinition)\<`DocumentType`, `Indexes`, `SearchIndexes`, `VectorIndexes`, `IsSource`, `Relations`> |
| `field` | `Field` |
| `options?` | `Options` |

#### Returns

[`TableDefinition`](/api/classes/browser.TableDefinition)\<`DocumentType`, `Indexes`, `SearchIndexes`, `VectorIndexes`, `IsSource`, `Relations` & [`ReferenceRelation`](/api/modules/browser#referencerelation)\<`DocumentType`, `Field`, `Options`>>

***

### source

▸ **source**\<`S`>(`this`, `handle`): [`TableDefinition`](/api/classes/browser.TableDefinition)\<[`SourceDocumentType`](/api/modules/browser#sourcedocumenttype)\<`DocumentType`>, `Indexes`, `SearchIndexes`, `VectorIndexes`, `true`, `Relations`>

#### Type parameters

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

#### Parameters

| Name | Type |
| :- | :- |
| `this` | [`TableDefinition`](/api/classes/browser.TableDefinition)\<`DocumentType`, `Indexes`, `SearchIndexes`, `VectorIndexes`, `IsSource`, `Relations`> |
| `handle` | [`SourceHandle`](/api/modules/browser#sourcehandle)\<`S`> & \[`DocumentType`\[`"type"`]] extends \[[`Expand`](/api/modules/browser#expand)\<\{ \[Property in string \| number \| symbol]?: Exclude\<Infer\<S\[Property]>, undefined> } & \{ \[Property in string \| number \| symbol]: Infer\<S\[Property]> }>] ? \[[`Expand`](/api/modules/browser#expand)\<\{ \[Property in string \| number \| symbol]?: Exclude\<Infer\<S\[Property]>, undefined> } & \{ \[Property in string \| number \| symbol]: Infer\<S\[Property]> }>] extends \[`any`\[`any`]] ? `unknown` : `never` : `never` |

#### Returns

[`TableDefinition`](/api/classes/browser.TableDefinition)\<[`SourceDocumentType`](/api/modules/browser#sourcedocumenttype)\<`DocumentType`>, `Indexes`, `SearchIndexes`, `VectorIndexes`, `true`, `Relations`>

***

### isLocalRetained

▸ \*\* isLocalRetained\*\*(): `boolean`

#### Returns

`boolean`

***

### isLocal

▸ \*\* isLocal\*\*(): `boolean`

#### Returns

`boolean`

***

### indexes

▸ \*\* indexes\*\*(): \{ `indexDescriptor`: `string` ; `fields`: `string`\[]  }\[]

#### Returns

\{ `indexDescriptor`: `string` ; `fields`: `string`\[]  }\[]

***

### index

▸ **index**\<`IndexName`, `FirstFieldPath`, `RestFieldPaths`>(`name`, `indexConfig`): [`TableDefinition`](/api/classes/browser.TableDefinition)\<`DocumentType`, [`Expand`](/api/modules/browser#expand)\<`Indexes` & `Record`\<`IndexName`, \[`FirstFieldPath`, ...RestFieldPaths\[], `"_creationTime"`]>>, `SearchIndexes`, `VectorIndexes`, `IsSource`, `Relations`>

#### Type parameters

| Name | Type |
| :- | :- |
| `IndexName` | extends `string` |
| `FirstFieldPath` | extends `any` |
| `RestFieldPaths` | extends [`ExtractFieldPaths`](/api/modules/browser#extractfieldpaths)\<`DocumentType`>\[] |

#### Parameters

| Name | Type |
| :- | :- |
| `name` | `IndexName` |
| `indexConfig` | `Object` |
| `indexConfig.fields` | \[`FirstFieldPath`, ...RestFieldPaths\[]] |
| `indexConfig.staged?` | `false` |

#### Returns

[`TableDefinition`](/api/classes/browser.TableDefinition)\<`DocumentType`, [`Expand`](/api/modules/browser#expand)\<`Indexes` & `Record`\<`IndexName`, \[`FirstFieldPath`, ...RestFieldPaths\[], `"_creationTime"`]>>, `SearchIndexes`, `VectorIndexes`, `IsSource`, `Relations`>

▸ **index**\<`IndexName`, `FirstFieldPath`, `RestFieldPaths`>(`name`, `fields`): [`TableDefinition`](/api/classes/browser.TableDefinition)\<`DocumentType`, [`Expand`](/api/modules/browser#expand)\<`Indexes` & `Record`\<`IndexName`, \[`FirstFieldPath`, ...RestFieldPaths\[], `"_creationTime"`]>>, `SearchIndexes`, `VectorIndexes`, `IsSource`, `Relations`>

#### Type parameters

| Name | Type |
| :- | :- |
| `IndexName` | extends `string` |
| `FirstFieldPath` | extends `any` |
| `RestFieldPaths` | extends [`ExtractFieldPaths`](/api/modules/browser#extractfieldpaths)\<`DocumentType`>\[] |

#### Parameters

| Name | Type |
| :- | :- |
| `name` | `IndexName` |
| `fields` | \[`FirstFieldPath`, ...RestFieldPaths\[]] |

#### Returns

[`TableDefinition`](/api/classes/browser.TableDefinition)\<`DocumentType`, [`Expand`](/api/modules/browser#expand)\<`Indexes` & `Record`\<`IndexName`, \[`FirstFieldPath`, ...RestFieldPaths\[], `"_creationTime"`]>>, `SearchIndexes`, `VectorIndexes`, `IsSource`, `Relations`>

▸ **index**\<`IndexName`, `FirstFieldPath`, `RestFieldPaths`>(`name`, `indexConfig`): [`TableDefinition`](/api/classes/browser.TableDefinition)\<`DocumentType`, `Indexes`, `SearchIndexes`, `VectorIndexes`, `IsSource`, `Relations`>

#### Type parameters

| Name | Type |
| :- | :- |
| `IndexName` | extends `string` |
| `FirstFieldPath` | extends `any` |
| `RestFieldPaths` | extends [`ExtractFieldPaths`](/api/modules/browser#extractfieldpaths)\<`DocumentType`>\[] |

#### Parameters

| Name | Type |
| :- | :- |
| `name` | `IndexName` |
| `indexConfig` | `Object` |
| `indexConfig.fields` | \[`FirstFieldPath`, ...RestFieldPaths\[]] |
| `indexConfig.staged` | `true` |

#### Returns

[`TableDefinition`](/api/classes/browser.TableDefinition)\<`DocumentType`, `Indexes`, `SearchIndexes`, `VectorIndexes`, `IsSource`, `Relations`>

***

### searchIndex

▸ **searchIndex**\<`IndexName`, `SearchField`, `FilterFields`>(`name`, `indexConfig`): [`TableDefinition`](/api/classes/browser.TableDefinition)\<`DocumentType`, `Indexes`, [`Expand`](/api/modules/browser#expand)\<`SearchIndexes` & `Record`\<`IndexName`, \{ `searchField`: `SearchField` ; `filterFields`: `FilterFields`  }>>, `VectorIndexes`, `IsSource`, `Relations`>

#### Type parameters

| Name | Type |
| :- | :- |
| `IndexName` | extends `string` |
| `SearchField` | extends `any` |
| `FilterFields` | extends `any` = `never` |

#### Parameters

| Name | Type |
| :- | :- |
| `name` | `IndexName` |
| `indexConfig` | `Object` |
| `indexConfig.searchField` | `SearchField` |
| `indexConfig.filterFields?` | `FilterFields`\[] |
| `indexConfig.staged?` | `false` |

#### Returns

[`TableDefinition`](/api/classes/browser.TableDefinition)\<`DocumentType`, `Indexes`, [`Expand`](/api/modules/browser#expand)\<`SearchIndexes` & `Record`\<`IndexName`, \{ `searchField`: `SearchField` ; `filterFields`: `FilterFields`  }>>, `VectorIndexes`, `IsSource`, `Relations`>

▸ **searchIndex**\<`IndexName`, `SearchField`, `FilterFields`>(`name`, `indexConfig`): [`TableDefinition`](/api/classes/browser.TableDefinition)\<`DocumentType`, `Indexes`, `SearchIndexes`, `VectorIndexes`, `IsSource`, `Relations`>

#### Type parameters

| Name | Type |
| :- | :- |
| `IndexName` | extends `string` |
| `SearchField` | extends `any` |
| `FilterFields` | extends `any` = `never` |

#### Parameters

| Name | Type |
| :- | :- |
| `name` | `IndexName` |
| `indexConfig` | `Object` |
| `indexConfig.searchField` | `SearchField` |
| `indexConfig.filterFields?` | `FilterFields`\[] |
| `indexConfig.staged` | `true` |

#### Returns

[`TableDefinition`](/api/classes/browser.TableDefinition)\<`DocumentType`, `Indexes`, `SearchIndexes`, `VectorIndexes`, `IsSource`, `Relations`>

***

### vectorIndex

▸ **vectorIndex**\<`IndexName`, `VectorField`, `FilterFields`>(`name`, `indexConfig`): [`TableDefinition`](/api/classes/browser.TableDefinition)\<`DocumentType`, `Indexes`, `SearchIndexes`, [`Expand`](/api/modules/browser#expand)\<`VectorIndexes` & `Record`\<`IndexName`, \{ `vectorField`: `VectorField` ; `dimensions`: `number` ; `filterFields`: `FilterFields`  }>>, `IsSource`, `Relations`>

#### Type parameters

| Name | Type |
| :- | :- |
| `IndexName` | extends `string` |
| `VectorField` | extends `any` |
| `FilterFields` | extends `any` = `never` |

#### Parameters

| Name | Type |
| :- | :- |
| `name` | `IndexName` |
| `indexConfig` | `Object` |
| `indexConfig.vectorField` | `VectorField` |
| `indexConfig.dimensions` | `number` |
| `indexConfig.filterFields?` | `FilterFields`\[] |
| `indexConfig.staged?` | `false` |

#### Returns

[`TableDefinition`](/api/classes/browser.TableDefinition)\<`DocumentType`, `Indexes`, `SearchIndexes`, [`Expand`](/api/modules/browser#expand)\<`VectorIndexes` & `Record`\<`IndexName`, \{ `vectorField`: `VectorField` ; `dimensions`: `number` ; `filterFields`: `FilterFields`  }>>, `IsSource`, `Relations`>

▸ **vectorIndex**\<`IndexName`, `VectorField`, `FilterFields`>(`name`, `indexConfig`): [`TableDefinition`](/api/classes/browser.TableDefinition)\<`DocumentType`, `Indexes`, `SearchIndexes`, `VectorIndexes`, `IsSource`, `Relations`>

#### Type parameters

| Name | Type |
| :- | :- |
| `IndexName` | extends `string` |
| `VectorField` | extends `any` |
| `FilterFields` | extends `any` = `never` |

#### Parameters

| Name | Type |
| :- | :- |
| `name` | `IndexName` |
| `indexConfig` | `Object` |
| `indexConfig.vectorField` | `VectorField` |
| `indexConfig.dimensions` | `number` |
| `indexConfig.filterFields?` | `FilterFields`\[] |
| `indexConfig.staged` | `true` |

#### Returns

[`TableDefinition`](/api/classes/browser.TableDefinition)\<`DocumentType`, `Indexes`, `SearchIndexes`, `VectorIndexes`, `IsSource`, `Relations`>

***

### staged

▸ **staged**(`documentSchema`): [`TableDefinition`](/api/classes/browser.TableDefinition)\<`DocumentType`, `Indexes`, `SearchIndexes`, `VectorIndexes`, `IsSource`, `Relations`>

#### Parameters

| Name | Type |
| :- | :- |
| `documentSchema` | `Record`\<`string`, [`GenericValidator`](/api/modules/browser#genericvalidator)> \| [`Validator`](/api/modules/browser#validator)\<`Record`\<`string`, `any`>, `"required"`, `any`> |

#### Returns

[`TableDefinition`](/api/classes/browser.TableDefinition)\<`DocumentType`, `Indexes`, `SearchIndexes`, `VectorIndexes`, `IsSource`, `Relations`>

***

### self

▸ `Protected` **self**(): [`TableDefinition`](/api/classes/browser.TableDefinition)\<`DocumentType`, `Indexes`, `SearchIndexes`, `VectorIndexes`, `IsSource`, `Relations`>

#### Returns

[`TableDefinition`](/api/classes/browser.TableDefinition)\<`DocumentType`, `Indexes`, `SearchIndexes`, `VectorIndexes`, `IsSource`, `Relations`>

***

### \[accessStorage]

▸ **\[accessStorage]**(): `Object`

#### Returns

`Object`

| Name | Type |
| :- | :- |
| `indexes` | `Index`\[] |
| `erasable` | `boolean` |

***

### export

▸ **export**(): `Object`

#### Returns

`Object`

| Name | Type |
| :- | :- |
| `fileFields` | (`null` \| `string`)\[]\[] |
| `discovery?` | `string` |
| `indexes` | \{ `indexDescriptor`: `string` ; `fields`: `string`\[]  }\[] |
| `stagedDbIndexes` | `Index`\[] |
| `searchIndexes` | `SearchIndex`\[] |
| `stagedSearchIndexes` | `SearchIndex`\[] |
| `vectorIndexes` | `VectorIndex`\[] |
| `stagedVectorIndexes` | `VectorIndex`\[] |
| `documentType` | [`ValidatorJSON`](/api/modules/browser#validatorjson) |
| `stagedDocumentType` | `undefined` \| [`ValidatorJSON`](/api/modules/browser#validatorjson) |
| `access?` | `SerializedReadAccess` |
| `governingRule?` | `SerializedGoverningRule` |
| `source?` | [`SourceBinding`](/api/modules/browser#sourcebinding) |
| `link?` | [`LinkDefinition`](/api/modules/browser#linkdefinition) |
| `references?` | `Record`\<`string`, [`SerializedReference`](/api/modules/browser#serializedreference)> |
| `retain?` | `SerializedRetainedCustody` |
| `resourceRequests?` | `SerializedResourceRequests` |
| `aggregates?` | `Record`\<`string`, `SerializedAggregate`> |
| `erasable?` | `true` |


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