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

# Referência

> Opções, métodos, callbacks e erros do init()

## Opções do init()

Agrupadas por tema; tudo é opcional. O `window.TelepatiaRecorderConfig` (definido
antes do carregamento do script) aceita os mesmos campos, e o `init()` prevalece
quando ambos definem o mesmo.

| Campo                                   | Valor                                                                   |
| --------------------------------------- | ----------------------------------------------------------------------- |
| `settings.locale` · `settings.branding` | `"en"·"es"·"pt"` · nome exibido no painel                               |
| `patient.name`                          | nome de exibição                                                        |
| `patient.idCountry · idType · idValue`  | identidade — registra o paciente ao iniciar (ex.: `CO · CC · 55544433`) |
| `template.medicalRecordConfigurationId` | smart template (`mrc_…`)                                                |
| `template.configurationDocumentId`      | template selecionado (SSC)                                              |
| `consultation.scribeSessionModality`    | `"in-person"` · `"telemedicine"`                                        |
| `consultation.externalConsultationId`   | o id do seu atendimento — sempre passe                                  |
| `open` · `callbacks`                    | abrir o painel agora · callbacks de ciclo de vida                       |

Overrides de endpoint (`baseUrl`, `data-*`) existem apenas para configurações
white-label; normalmente você não define nada aqui.

## Métodos de TelepatiaRecorder

| Método              | Faz                                                                                                          |
| ------------------- | ------------------------------------------------------------------------------------------------------------ |
| `init(config?)`     | monta e abre (overlay); recolhido no modo launcher, a não ser que `open: true`. Seguro chamar a cada clique. |
| `show()` / `hide()` | expande / recolhe um painel que já está montado                                                              |
| `destroy()`         | desmonta o Shadow DOM                                                                                        |
| `version`           | versão do bundle carregado (ex.: `"0.2.0"`)                                                                  |

Depois que o painel é montado, um novo `init()` aplica apenas `open` e `callbacks`;
os outros campos passam a valer após `destroy()` e então `init()`.

## Callbacks e erros

Registre-os em `init({ callbacks })`: `onSessionStart(id)`,
`onSessionComplete(event)`, `onError(message)`, `onStateChange(state)`. O
`onSessionComplete` no navegador é opcional — o webhook é o gatilho confiável.
Sinais de saúde disparam no `window`:

```js theme={null}
window.addEventListener("telepatia-recorder-health", (e) => {
  // e.detail.type: "page-hidden" | "pagehide" | "microphone-denied"
});
```

Erros de busca no backend usam o formato padrão da Telepatia — use `switch` no
`code`: `authentication_required` (401, chave inválida ou expirada),
`resource_not_found` (404, id errado ou busca cedo demais), `resource_conflict`
(409, id reutilizado), `rate_limit_exceeded` (429). A tabela completa está na
página de erros da Scribe API.
