# Resolver

**Kind**: interface | **Module**: [Intents](https://docs.interop.io/desktop/reference/javascript/intents/index.md) | **Access**: `io.intents.resolver`

**Source**: https://docs.interop.io/desktop/reference/javascript/intents/resolver/index.html

API for controlling the Intents Resolver UI app.

## Properties

- **`caller`** (`ResolverCaller`, optional)
  Details about the app instance that opened the Intents Resolver UI.
- **`handlerFilter`** (`HandlerFilter`, optional)
  Criteria for filtering the available Intent handlers. Available only if the `filterHandlers()` method was used to open the Intents Resolver UI.
- **`intent`** (`string | IntentRequest`, optional)
  Name of the raised Intent.
- **`version`** (`string`, required)
  Version of the Intents Resolver API.

## Methods

### getTitle

Retrieves the title for the search operation. Available only if the `filterHandlers()` method was used to open the Intents Resolver UI and the `title` property of the `HandlerFilter` object was set.

```ts
() => string | undefined
```

**Returns**: `string | undefined`

### onHandlerAdded

Notifies when a handler for the current Intent is added. Replays already existing handlers.

```ts
(callback: (handler: ResolverIntentHandler, intent: IntentInfo) => void) => UnsubscribeFunction
```

**Parameters**

- **`callback`** (`(handler: ResolverIntentHandler, intent: IntentInfo) => void`, required)
  Callback function for handling the event.

**Returns**: `UnsubscribeFunction`

### onHandlerRemoved

Notifies when a handler for the current Intent is removed.

```ts
(callback: (removedHandler: ResolverIntentHandler, intent: IntentInfo) => void) => UnsubscribeFunction
```

**Parameters**

- **`callback`** (`(removedHandler: ResolverIntentHandler, intent: IntentInfo) => void`, required)
  Callback function for handling the event.

**Returns**: `UnsubscribeFunction`

### sendResponse

Sends the chosen Intent handler to the app which raised the Intent.

```ts
(handler: ResolverIntentHandler, options?: SendResolverResponseOptions) => Promise<IOConnectDesktop.Interop.InvocationResult | undefined>
```

**Parameters**

- **`handler`** (`ResolverIntentHandler`, required)
- **`options`** (`SendResolverResponseOptions`, optional)

**Returns**: `Promise<IOConnectDesktop.Interop.InvocationResult | undefined>`

## Related types

- [HandlerFilter](https://docs.interop.io/desktop/reference/javascript/intents/handlerfilter/index.md)
- [IntentInfo](https://docs.interop.io/desktop/reference/javascript/intents/intentinfo/index.md)
- [IntentRequest](https://docs.interop.io/desktop/reference/javascript/intents/intentrequest/index.md)
- [InvocationResult](https://docs.interop.io/desktop/reference/javascript/interop/invocationresult/index.md)
- [ResolverCaller](https://docs.interop.io/desktop/reference/javascript/intents/resolvercaller/index.md)
- [ResolverIntentHandler](https://docs.interop.io/desktop/reference/javascript/intents/resolverintenthandler/index.md)
- [SendResolverResponseOptions](https://docs.interop.io/desktop/reference/javascript/intents/sendresolverresponseoptions/index.md)
- [UnsubscribeFunction](https://docs.interop.io/desktop/reference/javascript/search/unsubscribefunction/index.md)
