# DevtoolsObserverContribution

Source: /tuil/docs/reference/packages/devtools/api/devtools-observer-contribution
Locale: en

interface exported by @mwillbanks/tuil-devtools.



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

## interface [#interface]

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

```ts
export interface DevtoolsObserverContribution extends DevtoolsContribution {
  readonly kind: DevtoolsObserverKind;
  observe(input?: unknown): unknown | Promise<unknown>;
}
```

## Members [#members]

| Member                 | Type                                               | Required | Description                                                                                       | Related types                                                                          |
| ---------------------- | -------------------------------------------------- | -------- | ------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- |
| `kind`                 | `DevtoolsObserverKind`                             | Yes      | The `kind` member uses the `DevtoolsObserverKind` contract.                                       | [`DevtoolsObserverKind`](/tuil/docs/reference/packages/devtools/api/devtools-observer-kind) |
| `observe`              | `(input?: unknown) => unknown \| Promise<unknown>` | Yes      | The `observe` member uses the `(input?: unknown) => unknown \| Promise<unknown>` contract.        | —                                                                                      |
| `id`                   | `string`                                           | Yes      | The `id` member uses the `string` contract.                                                       | —                                                                                      |
| `title`                | `string`                                           | Yes      | The `title` member uses the `string` contract.                                                    | —                                                                                      |
| `icon`                 | `string \| undefined`                              | No       | The `icon` member uses the `string \| undefined` contract.                                        | —                                                                                      |
| `requiredCapabilities` | `readonly DevtoolsCapability[] \| undefined`       | No       | The `requiredCapabilities` member uses the `readonly DevtoolsCapability[] \| undefined` contract. | [`DevtoolsCapability`](/tuil/docs/reference/packages/devtools/api/devtools-capability)      |
| `activation`           | `(() => boolean) \| undefined`                     | No       | The `activation` member uses the `(() => boolean) \| undefined` contract.                         | —                                                                                      |
| `permissions`          | `ReadonlySet<DevtoolsPermission>`                  | Yes      | The `permissions` member uses the `ReadonlySet<DevtoolsPermission>` contract.                     | [`DevtoolsPermission`](/tuil/docs/reference/packages/devtools/api/devtools-permission)      |
| `serialization`        | `"json"`                                           | Yes      | The `serialization` member uses the `"json"` contract.                                            | —                                                                                      |
| `dispose`              | `(() => void) \| undefined`                        | No       | The `dispose` member uses the `(() => void) \| undefined` contract.                               | —                                                                                      |

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

* [`DevtoolsContribution`](/tuil/docs/reference/packages/devtools/api/devtools-contribution)
* [`DevtoolsObserverKind`](/tuil/docs/reference/packages/devtools/api/devtools-observer-kind)

## Source [#source]

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

## Package [#package]

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