/**
 * @typedef {Object} GOVBRFormsUserControl
 * @prop {string=} IDENTIFICADOR_COMPONENTE
 * @prop {string} URL_CDN
 * @prop {string} VERSAO_JS_COMPONENTE
 * @prop {string} LARGURA_COMPONENTE
 * @prop {string} ALTURA_COMPONENTE
 * @prop {Boolean} EXIBE_VALIDACAO_PADRAO
 * @prop {Boolean} MODO_PREENCHIMENTO
 * @prop {Boolean=} SOMENTE_LEITURA
 * @prop {Boolean=} PERMITE_EXPORTAR
 * @prop {Boolean=} PREENCHIMENTO_VALIDO
 * @prop {Boolean} OCULTA_TITULO_FORMULARIO
 * @prop {GOVBRFormsFormulario[]|GOVBRFormsFormulario} FORMULARIOS
 * @prop {"TABS"|"PANELS"=} FORMATO_MULTIFORMULARIOS
 * @prop {string=} VALORES_JSON
 * @prop {string=} MENSAGEM_VALIDACAO
 * @prop {GOVBRFormsValor[]=} VALORES
 */

/**
 * @typedef {Object} GOVBRFormsUserControlPropriedade
 * @prop {string} Nome
 * @prop {string} Valor
 */

/**
 * @typedef {Object} GOVBRFormsFormulario
 * @prop {string=} Titulo
 * @prop {string=} Id
 * @prop {GOVBRFormsComponente[]=} Componentes
 * @prop {GOVBRFormsUserControlPropriedade[]=} Propriedades
 * @prop {GOVBRFormsValor[]=} Valores
 * @prop {import("./GOVBRFormsUCConfiguradorEventos.mjs").GOVBRFormsUCEvento[]=} Eventos
 * @prop {import("./GOVBRFormsUCConfiguradorEventos.mjs").GOVBRFormsUCValidacao[]=} Validacoes
 */

/**
 * @typedef {Object} GOVBRFormsComponente
 * @prop {string} Id
 * @prop {string} Tipo
 * @prop {GOVBRFormsUserControlPropriedade[]=} Propriedades
 * @prop {GOVBRFormsComponente[]=} Filhos
 * @prop {import("./GOVBRFormsUCConfiguradorEventos.mjs").GOVBRFormsUCEvento[]=} Eventos
 * @prop {import("./GOVBRFormsUCConfiguradorEventos.mjs").GOVBRFormsUCValidacao[]=} Validacoes
 */

/**
 * @typedef {Object} GOVBRFormsUserControlComponenteListaItem
 * @prop {string=} nome - mantido para retrocompatibilidade
 * @prop {string=} valor - mantido para retrocompatibilidade
 * @prop {string} Nome
 * @prop {string} Valor
 */

/**
 * @typedef {Object} GOVBRFormsValor
 * @prop {'grupo'|'campo'=} Tipo
 * @prop {string} Id
 * @prop {string=} Valor
 * @prop {string=} Titulo
 * @prop {string=} Formato
 * @prop {Record<string,  any>=} Adicionais
 */
