> For a complete index of all SignalWire documentation pages, fetch https://signalwire.com/docs/llms.txt

# SelfCapabilities

> SelfCapabilities manages the capability state for the self participant.

SelfCapabilities manages the capability state for the self participant.

Capabilities are received from the server via `call.joined` events and determine
what actions the current participant is allowed to perform.

Each capability is exposed as both:

* An observable (e.g., `end$`) for reactive state management
* A synchronous getter (e.g., `end`) for immediate access

Member-level capabilities are accessed via the grouped `self` / `member` accessors:

* `capabilities.self.muteAudio` (sync)
* `capabilities.self$` (observable)

When a new `call.joined` event is received, the capabilities state is
completely replaced (not merged).

Each capability is exposed in **both forms** on every page below — an
observable (e.g. `end$`) for reactive UI binding, and a synchronous
getter (e.g. `end`) for one-shot reads. The accessor cards below list
the observable; click through for both signatures plus an example.

## **Extends**

* `Destroyable`

## **Constructors**

### Constructor

```ts
new SelfCapabilities(): SelfCapabilities
```

#### Returns

`SelfCapabilities`

#### Inherited from

`Destroyable.constructor`

## **Accessors**

Observable that emits when the instance is destroyed

Observable for device capability

Observable for end call capability

Observable for lock capability

Observable for other member capabilities

Observable for screenshare capability

Observable for self member capabilities

Observable for send digit capability

Observable for set layout capability

Observable for the full capabilities state

Observable for vmuted hide capability

## **Methods**

Cleans up subscriptions and subjects owned by this instance.