# DevtoolsActionContribution

Source: /tuil/docs/reference/packages/devtools/api/devtools-action-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 DevtoolsActionContribution extends DevtoolsContribution {
  readonly kind: "action";
  run(
    input: unknown,
    context: DevtoolsActionContext,
  ): unknown | Promise<unknown>;
}
```

## Members [#members]

| Member                 | Type                                                                              | Required | Description                                                                                                           | Related types                                                                            |
| ---------------------- | --------------------------------------------------------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- |
| `kind`                 | `"action"`                                                                        | Yes      | The `kind` member uses the `"action"` contract.                                                                       | —                                                                                        |
| `run`                  | `(input: unknown, context: DevtoolsActionContext) => unknown \| Promise<unknown>` | Yes      | The `run` member uses the `(input: unknown, context: DevtoolsActionContext) => unknown \| Promise<unknown>` contract. | [`DevtoolsActionContext`](/tuil/docs/reference/packages/devtools/api/devtools-action-context) |
| `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]

* [`DevtoolsActionContext`](/tuil/docs/reference/packages/devtools/api/devtools-action-context)
* [`DevtoolsContribution`](/tuil/docs/reference/packages/devtools/api/devtools-contribution)

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