/** * Códigos padrão usados pelo contrato de respostas. * * Observação: este enum é parte da API pública do pacote. */ declare enum codigosResposta { sucesso = 200, erroConhecido = 400, erroPermissao = 401, erroNaoEncontrado = 404, erroDesconhecido = 500, tempoEsgotado = 504 } type tipoRespostaSucesso = { cod: codigosResposta.sucesso; valor: T; mensagem: undefined; eErro: false; eCerto: true; detalhes?: string[]; }; type tipoRespostaErro = { cod: codigosResposta.erroConhecido | codigosResposta.erroDesconhecido | codigosResposta.erroPermissao | codigosResposta.erroNaoEncontrado | codigosResposta.tempoEsgotado; valor: undefined; mensagem: string; eErro: true; eCerto: false; detalhes?: string[]; }; type tipoResposta = tipoRespostaSucesso | tipoRespostaErro; type tipoPrErroInterno = { erro: any; mensagem?: string; local: string; __filename?: string; }; /** * Cria um conjunto de geradores de respostas. * * @param registrarErroInterno callback para registrar/normalizar erros internos. */ interface InterfaceRespostas { valor: (valor: T, detalhes?: string[]) => tipoRespostaSucesso; valorTrue: (detalhes?: string[]) => tipoRespostaSucesso; erro: (mensagem: string, detalhes?: string[]) => tipoRespostaErro; erroPermissao: (mensagem?: string | undefined | null, detalhes?: string[]) => tipoRespostaErro; erroInterno: (op: tipoPrErroInterno) => tipoRespostaErro; naoEncontrado: (mensagem?: string | undefined | null, detalhes?: string[]) => tipoRespostaErro; tempoEsgotado: (mensagem?: string | undefined | null, detalhes?: string[]) => tipoRespostaErro; erroEspera: (mensagem?: string | undefined | null, detalhes?: string[]) => tipoRespostaErro; } declare const gerarRespostas: ( /** Faz um processamento quando erro interno * Recebe o erro gerado, mensagem personalizada e detalhes */ registrarErroInterno: (op: tipoPrErroInterno) => Partial) => InterfaceRespostas; /** * Instância default (sem handler de erro interno). */ declare const respostaComuns: InterfaceRespostas; export { type InterfaceRespostas, codigosResposta, gerarRespostas, respostaComuns, type tipoPrErroInterno, type tipoResposta, type tipoRespostaErro, type tipoRespostaSucesso };