# ExtensionRegistry

Source: /tuil/docs/reference/packages/plugin/api/extension-registry
Locale: en

interface exported by @mwillbanks/tuil-plugin.



{/* Generated by tooling/docs/generate-reference.ts. */}

## interface [#interface]

Public interface exported by `@mwillbanks/tuil-plugin`.

```ts
export interface ExtensionRegistry<TValue = unknown> {
  register(value: TValue): Disposable;
  values(): readonly TValue[];
  observe(observer: () => void): Disposer;
}
```

## Members [#members]

| Member     | Type                                 | Required | Description                                                                  | Related types                                                |
| ---------- | ------------------------------------ | -------- | ---------------------------------------------------------------------------- | ------------------------------------------------------------ |
| `register` | `(value: TValue) => Disposable`      | Yes      | The `register` member uses the `(value: TValue) => Disposable` contract.     | [`Disposable`](/tuil/docs/reference/packages/core/api/disposable) |
| `values`   | `() => readonly TValue[]`            | Yes      | The `values` member uses the `() => readonly TValue[]` contract.             | —                                                            |
| `observe`  | `(observer: () => void) => Disposer` | Yes      | The `observe` member uses the `(observer: () => void) => Disposer` contract. | [`Disposer`](/tuil/docs/reference/packages/core/api/disposer)     |

## Parameters [#parameters]

This declaration has no public members.

## Returns [#returns]

This declaration does not return a value.

## Throws [#throws]

No thrown errors are documented for this declaration.

## Related types [#related-types]

No package-local related types.

## Source [#source]

[View the secondary source reference](https://github.com/mwillbanks/tuil/blob/main/packages/plugin/src/index.ts)

## Package [#package]

[@mwillbanks/tuil-plugin](/tuil/docs/reference/packages/plugin)
