declare enum TipoCodigo {
    CODIGO_DE_BARRAS = "CODIGO_DE_BARRAS",
    LINHA_DIGITAVEL = "LINHA_DIGITAVEL",
    TAMANHO_INCORRETO = "TAMANHO_INCORRETO"
}
/**
 * Identifica o tipo de código inserido (se baseando na quantidade de dígitos).
 */
declare const identificarTipoCodigo: (codigo: string) => TipoCodigo;
declare enum TipoBoleto {
    BANCO = "BANCO",
    ARRECADACAO_PREFEITURA = "ARRECADACAO_PREFEITURA",
    ARRECADACAO_ORGAOS_GOVERNAMENTAIS = "ARRECADACAO_ORGAOS_GOVERNAMENTAIS",
    ARRECADACAO_TAXAS_DE_TRANSITO = "ARRECADACAO_TAXAS_DE_TRANSITO",
    CONVENIO_SANEAMENTO = "CONVENIO_SANEAMENTO",
    CONVENIO_ENERGIA_ELETRICA_E_GAS = "CONVENIO_ENERGIA_ELETRICA_E_GAS",
    CONVENIO_TELECOMUNICACOES = "CONVENIO_TELECOMUNICACOES",
    OUTROS = "OUTROS",
    CARTAO_DE_CREDITO = "CARTAO_DE_CREDITO"
}
/**
 * Identifica o tipo de boleto inserido a partir da validação de seus dois dígitos iniciais.
 */
declare const identificarTipoBoleto: (codigo: string) => TipoBoleto | undefined;
/**
 * Identifica o o código de referência do boleto para determinar qual módulo
 * será utilizado para calcular os dígitos verificadores
 */
declare const identificarReferencia: (codigo: string) => {
    mod: number;
    efetivo: boolean;
};
type obtemFatorDataParams = {
    codigo: string;
    tipoCodigo: TipoCodigo;
};
declare const obtemFatorData: ({ codigo, tipoCodigo }: obtemFatorDataParams) => string;
/**
 * Identifica o fator da data de vencimento do boleto
 */
declare const identificarData: (codigo: string, tipoCodigo: TipoCodigo) => Date;
/**
 * Identifica o fator da data de vencimento do boleto após 22/02/2025
 * O novo fator já tem seu início em 1000, logo fator 1000 representa 22/05/2025
 */
declare const identificarDataComNovoFator2025: (codigo: string, tipoCodigo: TipoCodigo) => Date;
/**
 * Identifica o valor no CÓDIGO DE BARRAS do boleto do tipo 'Arrecadação'
 */
declare const identificarValorCodBarrasArrecadacao: (codigo: string, tipoCodigo: TipoCodigo) => string | number;
/**
 * Identifica o valor no boleto inserido
 */
declare const identificarValor: (codigo: string, tipoCodigo: TipoCodigo) => number;
/**
 * Define qual módulo deverá ser utilizado para calcular os dígitos verificadores
 */
declare const digitosVerificadores: (codigo: string, mod: 10 | 11) => string | undefined;
/**
 * Converte a numeração do código de barras em linha digitável
 */
declare const codBarras2LinhaDigitavel: (codigo: string, formatada: boolean) => string;
/**
 * Converte a numeração da linha digitável em código de barras
 */
declare const linhaDigitavel2CodBarras: (codigo: string) => string;
/**
 * Calcula o dígito verificador de toda a numeração do código de barras
 */
declare const calculaDVCodBarras: (codigo: string, posicaoCodigo: number, mod: number) => number | undefined;
/**
 * Informa se o código de barras inserido é válido, calculando seu dígito verificador.
 */
declare const validarCodigoComDV: (codigo: string, tipoCodigo: TipoCodigo) => boolean;
/**
 * Gerar código de barras já realizando o cálculo do dígito verificador
 */
declare const geraCodBarras: (codigo: string) => string;
/**
 * ## __`BOLETO COBRANÇA`__
 * ### __AS POSIÇÕES AQUI MENCIONADAS PARTEM DO NÚMERO 0 E NÃO DO 1, A FIM DE FACILITAR O ENTENDIMENTO LÓGICO__
 * ---------------------------------------------------------
 *
 * ### __TIPO:__ CÓDIGO DE BARRAS (44 POSIÇÕES NUMÉRICAS)
 *
 * ---------------------------------------------------------
 *
 * #### __EXEMPLO:__ 11123444455555555556666666666666666666666666
 *
 * Bloco | Posições | Definição
 * --- | --- | ---
 * __1__ | **0 a 2**  | `Código do Banco na Câmara de Compensação`
 * __2__ | **3 a 3**  | `Código da Moeda = 9 (Real)`
 * __3__ | **4 a 4**  | `Digito Verificador (DV) do código de Barras`
 * __4__ | **5 a 8**  | `Fator de Vencimento`
 * __5__ | **9 a 18**  | `Valor com 2 casas de centavos`
 * __6__ | **19 a 43**  | `Campo Livre (De uso da instituição bancária)`
 *
 * ---------------------------------------------------------
 *
 * ### __TIPO:__ LINHA DIGITÁVEL (47 POSIÇÕES NUMÉRICAS)
 *
 * ---------------------------------------------------------
 *
 * #### __EXEMPLO__: AAABC.CCCCX DDDDD.DDDDDY EEEEE.EEEEEZ K UUUUVVVVVVVVVV
 *
 * Campo | Posições linha dig. | Definição
 * --- | --- | ---
 * __A__ | **0 a 2** (0 a 2 do cód. barras)  | `Código do Banco na Câmara de compensação`
 * __B__ | **3 a 3** (3 a 3 do cód. barras)  | `Código da moeda`
 * __C__ | **4 a 8** (19 a 23 do cód. barras)  | `Campo Livre`
 * __X__ | **9 a 9**  | `Dígito verificador do Bloco 1 (Módulo 10)`
 * __D__ | **10 a 19** (24 a 33 do cód. barras)  | `Campo Livre`
 * __Y__ | **20 a 20**  | `Dígito verificador do Bloco 2 (Módulo 10)`
 * __E__ | **21 a 30** (24 a 43 do cód. barras)  | `Campo Livre`
 * __Z__ | **31 a 31**  | `Dígito verificador do Bloco 3 (Módulo 10)`
 * __K__ | **32 a 32** (4 a 4 do cód. barras)  | `Dígito verificador do código de barras`
 * __U__ | **33 a 36** (5 a 8 do cód. barras)  | `Fator de Vencimento`
 * __V__ | **37 a 43** (9 a 18 do cód. barras)  | `Valor`
 *
 * ## __`CONTA CONVÊNIO / ARRECADAÇÃO`__
 *
 * ---------------------------------------------------------
 *
 * ### __TIPO:__ CÓDIGO DE BARRAS (44 POSIÇÕES NUMÉRICAS)
 *
 * ---------------------------------------------------------
 *
 * #### __EXEMPLO__: 12345555555555566667777777777777777777777777
 *
 * Campo | Posições | Definição
 * --- | --- | ---
 * __1__ | **0 a 0**  | `"8" Identificação da Arrecadação/convênio`
 * __2__ | **1 a 1**  | `Identificação do segmento`
 * __3__ | **2 a 2**  | `Identificação do valor real ou referência`
 * __4__ | **3 a 3**  | `Dígito verificador geral (módulo 10 ou 11)`
 * __5__ | **4 a 14**  | `Valor efetivo ou valor referência`
 * __6__ | **15 a 18**  | `Identificação da empresa/órgão`
 * __7__ | **19 a 43**  | `Campo livre de utilização da empresa/órgão`
 *
 * ---------------------------------------------------------
 *
 * ### __TIPO:__ LINHA DIGITÁVEL (48 POSIÇÕES NUMÉRICAS)
 *
 * ---------------------------------------------------------
 *
 * #### __EXEMPLO__: ABCDEEEEEEE-W EEEEFFFFGGG-X GGGGGGGGGGG-Y GGGGGGGGGGG-Z
 *
 * Campo | Posições | Definição
 * --- | --- | ---
 * __A__ | **0 a 0**  | `"8" Identificação da Arrecadação/convênio`
 * __B__ | **1 a 1**  | `Identificação do segmento`
 * __C__ | **2 a 2**  | `Identificação do valor real ou referência`
 * __D__ | **3 a 3**  | `Dígito verificador geral (módulo 10 ou 11)`
 * __E__ | **4 a 14**  | `Valor efetivo ou valor referência`
 * __W__ | **11 a 11**  | `Dígito verificador do Bloco 1`
 * __F__ | **15 a 18**  | `Identificação da empresa/órgão`
 * __G__ | **19 a 43**  | `Campo livre de utilização da empresa/órgão`
 * __X__ | **23 a 23**  | `Dígito verificador do Bloco 2`
 * __Y__ | **35 a 35**  | `Dígito verificador do Bloco 3`
 * __Z__ | **47 a 47**  | `Dígito verificador do Bloco 4`
 */
declare const validarBoleto: (codigo: string) => Record<string, any>;
/**
 * Calcula o dígito verificador de uma numeração a partir do módulo 10
 */
declare const calculaMod10: (numero: string) => number;
/**
 * Calcula o dígito verificador de uma numeração a partir do módulo 11
 */
declare const calculaMod11: (x: string) => number;

export { TipoBoleto, TipoCodigo, calculaDVCodBarras, calculaMod10, calculaMod11, codBarras2LinhaDigitavel, digitosVerificadores, geraCodBarras, identificarData, identificarDataComNovoFator2025, identificarReferencia, identificarTipoBoleto, identificarTipoCodigo, identificarValor, identificarValorCodBarrasArrecadacao, linhaDigitavel2CodBarras, obtemFatorData, validarBoleto, validarCodigoComDV };
