/**
 * @typedef {Object} GOVBREditorHTMLUserControl
 *
 * @prop {boolean} Enabled
 *
 * @prop {string} URL_CDN
 * @prop {string} VERSAO_JS_COMPONENTE
 * @prop {string} IDENTIFICADOR_COMPONENTE
 * @prop {string} CLASSE_CSS
 * @prop {string} LARGURA_COMPONENTE
 * @prop {string} ALTURA_COMPONENTE
 *
 * @prop {string} PLACEHOLDER
 * @prop {string} HINT_RODAPE
 *
 * @prop {boolean} QUEBRAR_LINHA_TOOLBAR
 *
 * @prop {boolean} PODE_MENCOES
 * @prop {GOVBREditorHTMLUserControlOrigemDadosMencoes[]} ORIGEM_DADOS_MENCOES
 * @prop {boolean} PODE_REDIMENSIONAR
 *
 * @prop {boolean} FORCE_EDITOR_COMPLETO
 * @prop {boolean} BARRA_MENUS
 *
 * @prop {boolean} PODE_DESFAZER_REFAZER
 * @prop {boolean} PODE_EDITAR_VISUALIZAR_FONTE
 * @prop {boolean} PODE_DEFINIR_CABECALHOS
 *
 * @prop {boolean} PODE_MUDAR_TAMANHO_ESTILO_FONTE
 * @prop {boolean} PODE_MUDAR_COR_FONTE_FUNDO
 *
 * @prop {boolean} PODE_NEGRITO
 * @prop {boolean} PODE_ITALICO
 * @prop {boolean} PODE_UNDERLINE
 * @prop {boolean} PODE_RISCAR_TEXTO
 * @prop {boolean} PODE_SUBSCRITO
 * @prop {boolean} PODE_SUPERSCRITO
 * @prop {boolean} PODE_CODIGO_FONTE
 * @prop {boolean} PODE_REMOVER_FORMATACAO
 *
 * @prop {boolean} PODE_CARACTERES_ESPECIAIS
 * @prop {boolean} PODE_LINHA_HORIZONTAL
 * @prop {boolean} PODE_LINKS
 * @prop {boolean} PODE_IMAGENS
 * @prop {boolean} PODE_TABELAS
 * @prop {boolean} PODE_DESTACAR
 * @prop {boolean} PODE_CITACAO_BLOCO
 * @prop {boolean} PODE_BLOCO_CODIGO_FONTE
 * @prop {boolean} PODE_EMBEDAR_CONTEUDO_EXTERNO
 *
 * @prop {boolean} PODE_ALTERAR_ALINHAMENTO
 *
 * @prop {boolean} PODE_LISTAS_TRACOS
 * @prop {boolean} PODE_LISTAS_NUMERO
 * @prop {boolean} PODE_LISTAS_CHECKBOX
 * @prop {boolean} PODE_INDENTAR
 *
 * @prop {boolean} PODE_TELA_CHEIA
 */

/**
 * @typedef {Object} GOVBREditorHTMLUserControlOrigemDadosMencoes
 * @prop {string} caractereMarcador
 * @prop {number} minimoCaracteres
 * @prop {string} origemDados
 * @prop {boolean} filtrarNoCliente
 * @prop {boolean} naoDestacar
 */

/**
 * @typedef {Object} GOVBREditorHTMLUserControlMencao
 * @prop {string} id
 * @prop {string} nome
 * @prop {string} link
 * @prop {string[]} dadosAdicionais
 * @prop {GOVBREditorHTMLMatchFuse[]} matches
 */

/**
 * @typedef {Object} GOVBREditorHTMLMatchFuse
 * @prop {([number, number]|{ini: number, fim: number})[]} indices
 * @prop {'id'|'nome'|'dadosAdicionais'} key
 * @prop {string} value
 * @prop {number} refIndex
 */
