> ## Documentation Index
> Fetch the complete documentation index at: https://docs.gethinto.com/llms.txt
> Use this file to discover all available pages before exploring further.

# SupportOfferStore

> The help offer Hinto Signal holds for this tab's journeys.

The help offer Hinto Signal holds for this tab's journeys. It renders nothing: the host decides
whether and how to show an offer. Actions never throw.

## Methods

### contact()

```typescript
contact(id: string, input: ContactSupportInput): SupportContactOutcome
```

The customer chose Contact support. On `started` the offer is hidden and one message naming it is
queued; open the conversation (`runtime.open()`) and the runtime sends it, joining the active
conversation or starting one. The send accepts the offer on the server. A second call while
that message is on its way answers `unavailable` and sends nothing.

#### Parameters

<ResponseField name={"id"} type={"string"} required />

<ResponseField name={"input"} type={"ContactSupportInput"} typeHref={"/sdk/conversation/interfaces/ContactSupportInput"} required />

#### Returns

<code>[SupportContactOutcome](/sdk/conversation/types/SupportContactOutcome)</code>

### dismiss()

```typescript
dismiss(id: string): Promise<SupportOfferOutcome>
```

Hide the offer at once and record the dismissal.

#### Parameters

<ResponseField name={"id"} type={"string"} required />

#### Returns

<code>{"Promise<"}[SupportOfferOutcome](/sdk/conversation/types/SupportOfferOutcome){">"}</code>

### refresh()

```typescript
refresh(): Promise<void>
```

Send queued capture events, then read the offer now.

#### Returns

`Promise<void>`

### show()

```typescript
show(id: string): Promise<SupportOfferOutcome>
```

Claim the current offer before rendering it. Render only when this returns `ok`. Concurrent
calls for one offer share one request.

#### Parameters

<ResponseField name={"id"} type={"string"} required />

#### Returns

<code>{"Promise<"}[SupportOfferOutcome](/sdk/conversation/types/SupportOfferOutcome){">"}</code>

### snapshot()

```typescript
snapshot(): SupportOfferSnapshot
```

Deep-frozen. The same object until the offer or its status changes.

#### Returns

<code>[SupportOfferSnapshot](/sdk/conversation/types/SupportOfferSnapshot)</code>

### subscribe()

```typescript
subscribe(listener: (snapshot: SupportOfferSnapshot) => void): () => void
```

Calls the listener at once with the current snapshot, then on every change.

#### Parameters

<ResponseField name={"listener"} type={"(snapshot: SupportOfferSnapshot) => void"} required>
  **Type:** <code>{"(snapshot: "}[SupportOfferSnapshot](/sdk/conversation/types/SupportOfferSnapshot){") => void"}</code>
</ResponseField>

#### Returns

`() => void`


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.