import { S as LinhaDigitavelValidationResult, W as CodigoBarrasValidationResult, V as ValidationErrorCode, A as Arrecadacao, B as BoletoInputKind, b as BoletoValidationResult, F as FormatResult } from './validation-result-D4Wrxl7j.js'; export { a as BoletoSituacao, i as CodigoBarras, D as DocumentFormat, L as LinhaDigitavel } from './validation-result-D4Wrxl7j.js'; /** * FEBRABAN bank boleto (cobrança) — linha digitável + código de barras. * @see Convenção da Cobrança FB-0061/2021 — Anexos V, VI, IX, X * @see https://cmsarquivos.febraban.org.br/Arquivos/documentos/PDF/Conven%C3%A7%C3%A3o%20da%20Cobran%C3%A7a%20-%2005_02_2021_f.pdf */ declare const BOLETO_LINHA_LENGTH = 47; declare const BOLETO_CODIGO_BARRAS_LENGTH = 44; declare const BOLETO_CURRENCY_REAL = "9"; declare const BOLETO_CODE_ISPB_HOLDER = "988"; declare const BOLETO_CURRENCY_ISPB = "0"; declare const BOLETO_GOLDEN_LINHA_MASKED = "03399.02579 08991.834006 71742.301014 6 14500000099668"; declare const BOLETO_GOLDEN_LINHA_STRIPPED = "03399025790899183400671742301014614500000099668"; declare const BOLETO_GOLDEN_CODIGO_BARRAS = "03396145000000996689025708991834007174230101"; declare const BOLETO_GOLDEN_LINHA_BB_STRIPPED = "00191234546789012345767890123457112340000001500"; declare const BOLETO_GOLDEN_CODIGO_BARRAS_BB = "00191123400000015001234567890123456789012345"; declare const BOLETO_GOLDEN_LINHA_SITUACAO2_STRIPPED = "98801234516789012345767890123457760746948000112"; declare const BOLETO_GOLDEN_CODIGO_BARRAS_SITUACAO2 = "98807607469480001121234567890123456789012345"; declare const BOLETO_OFFICIAL_SOURCE_URL = "https://cmsarquivos.febraban.org.br/Arquivos/documentos/PDF/Conven%C3%A7%C3%A3o%20da%20Cobran%C3%A7a%20-%2005_02_2021_f.pdf"; declare const BOLETO_LAYOUTS_PORTAL_URL = "https://portal.febraban.org.br/pagina/3425/33/pt-br/layout-febraban"; declare const BOLETO_ARRECADACAO_LINHA_LENGTH = 48; declare const BOLETO_ARRECADACAO_CODIGO_BARRAS_LENGTH = 44; declare const BOLETO_ARRECADACAO_PRODUCT_ID = "8"; declare const BOLETO_ARRECADACAO_OFFICIAL_SOURCE_URL = "https://cmsarquivos.febraban.org.br/Arquivos/documentos/PDF/Layout%20-%20C%C3%B3digo%20de%20Barras%20-%20Vers%C3%A3o%207%20-%2001_03_2023_mn.pdf"; /** * Modulo 10 — linha digitável field DVs (Anexo IX). */ declare function computeModulo10FieldDv(digits: string): number; /** * Modulo 11 — código de barras general DV (Anexo X). */ declare function computeModulo11BarcodeDv(barcodeWithoutDv: string): number; type DetectedBoletoInputKind = 'linha-digitavel' | 'codigo-barras' | 'arrecadacao' | 'unknown'; declare function detectBoletoInputKind(input: string): DetectedBoletoInputKind; type BoletoSituacaoKind = 'situacao-1' | 'situacao-2' | 'unknown'; type BoletoSituacaoCode = '1' | '2'; declare function detectBoletoSituacao(stripped: string): BoletoSituacaoKind; declare function convertLinhaToCodigoBarrasDigits(strippedLinha: string): string; declare function convertCodigoBarrasToLinhaDigits(barcode: string): string; /** FEBRABAN typable linha digitável mask (47 digits). */ declare function applyLinhaDigitavelMask(stripped47: string): string; /** Backward-compatible alias for applyLinhaDigitavelMask. */ declare function formatLinhaDigitavel(stripped: string): string; /** * Linha digitável validation — modulo 10 field DVs (Anexo IX). * @see BR-BOLETO-002, BR-BOLETO-008 */ declare function stripLinhaDigitavel(input: string): string; declare function validateLinhaDigitavel(input: string): LinhaDigitavelValidationResult; /** * Código de barras validation — modulo 11 general DV (Anexo X). * @see BR-BOLETO-003, BR-BOLETO-004, BR-BOLETO-010 */ declare function stripCodigoBarras(input: string): string; declare function validateCodigoBarras(input: string): CodigoBarrasValidationResult; /** * Due-date factor semantic validation (Situação 1 only). * @see BR-BOLETO-012 */ type FatorVencimentoValidationResult = { ok: true; factor: string; hasDueDate: boolean; } | { ok: false; code: ValidationErrorCode; message: string; }; declare function validateFatorVencimento(factor: string): FatorVencimentoValidationResult; /** * Document amount semantic validation (Situação 1 only). * @see BR-BOLETO-013 */ type ValorDocumentoValidationResult = { ok: true; amountCents: number; } | { ok: false; code: ValidationErrorCode; message: string; }; declare function validateValorDocumento(value: string): ValorDocumentoValidationResult; /** * FEBRABAN arrecadação modulo 11 — Layout v7 §09–10. * @see BOLETO_ARRECADACAO_OFFICIAL_SOURCE_URL * * Multipliers 2,3,4,5,6,7,8,9,2,3,4… from right; remainder 0|1 → DV 0; remainder 10 → DV 1. */ declare function computeArrecadacaoModulo11Dv(digits: string): number; declare function isArrecadacaoValueType(valueType: string): valueType is ArrecadacaoValueType; type ArrecadacaoValueType = '6' | '7' | '8' | '9'; declare function getArrecadacaoDvCalculator(valueType: string): (digits: string) => number; /** * Boleto arrecadação — FEBRABAN Layout v7 (48-digit linha + 44-digit código de barras). * @see docs/use-cases/UC-007-validate-boleto.md * @see BOLETO_ARRECADACAO_OFFICIAL_SOURCE_URL */ type ArrecadacaoInputKind = 'arrecadacao-linha' | 'arrecadacao-codigo-barras'; type ArrecadacaoValidationResult = { ok: true; value: Arrecadacao; inputKind: ArrecadacaoInputKind; format: 'arrecadacao'; segment: string; valueType: ArrecadacaoValueType; } | { ok: false; code: ValidationErrorCode; message: string; inputKind?: ArrecadacaoInputKind; }; declare function stripArrecadacao(input: string): string; declare function linhaArrecadacaoToCodigoBarras(linha: string): string; declare function validateArrecadacaoLinha(input: string): ArrecadacaoValidationResult; declare function validateArrecadacaoCodigoBarras(input: string): ArrecadacaoValidationResult; declare function validateArrecadacao(input: string): ArrecadacaoValidationResult; declare function isValidArrecadacao(input: string): boolean; /** @internal Golden vector helper — builds valid barcode then linha. */ declare function buildArrecadacaoGoldenPair(options: { segment: string; valueType: ArrecadacaoValueType; value: string; company: string; free: string; }): { barcode: string; linha: string; }; /** * Boleto validation — linha digitável + código de barras (FEBRABAN cobrança). * @see docs/use-cases/UC-007-validate-boleto.md */ type ValidateBoletoOptions = { kind?: BoletoInputKind; validateDueFactor?: boolean; validateAmount?: boolean; }; declare function isValidBoleto(input: string, options?: ValidateBoletoOptions): boolean; declare function validateBoleto(input: string, options?: ValidateBoletoOptions): BoletoValidationResult; declare function convertLinhaToCodigoBarras(input: string): BoletoValidationResult; declare function convertCodigoBarrasToLinhaDigitavel(input: string): BoletoValidationResult; declare function formatBoleto(input: string): FormatResult; export { Arrecadacao, type ArrecadacaoInputKind, type ArrecadacaoValidationResult, type ArrecadacaoValueType, BOLETO_ARRECADACAO_CODIGO_BARRAS_LENGTH, BOLETO_ARRECADACAO_LINHA_LENGTH, BOLETO_ARRECADACAO_OFFICIAL_SOURCE_URL, BOLETO_ARRECADACAO_PRODUCT_ID, BOLETO_CODE_ISPB_HOLDER, BOLETO_CODIGO_BARRAS_LENGTH, BOLETO_CURRENCY_ISPB, BOLETO_CURRENCY_REAL, BOLETO_GOLDEN_CODIGO_BARRAS, BOLETO_GOLDEN_CODIGO_BARRAS_BB, BOLETO_GOLDEN_CODIGO_BARRAS_SITUACAO2, BOLETO_GOLDEN_LINHA_BB_STRIPPED, BOLETO_GOLDEN_LINHA_MASKED, BOLETO_GOLDEN_LINHA_SITUACAO2_STRIPPED, BOLETO_GOLDEN_LINHA_STRIPPED, BOLETO_LAYOUTS_PORTAL_URL, BOLETO_LINHA_LENGTH, BOLETO_OFFICIAL_SOURCE_URL, BoletoInputKind, type BoletoSituacaoCode, type BoletoSituacaoKind, BoletoValidationResult, type DetectedBoletoInputKind, type FatorVencimentoValidationResult, type ValidateBoletoOptions, ValidationErrorCode, type ValorDocumentoValidationResult, applyLinhaDigitavelMask, buildArrecadacaoGoldenPair, computeModulo10FieldDv as computeArrecadacaoModulo10Dv, computeArrecadacaoModulo11Dv, computeModulo10FieldDv, computeModulo11BarcodeDv, convertCodigoBarrasToLinhaDigitavel, convertCodigoBarrasToLinhaDigits, convertLinhaToCodigoBarras, convertLinhaToCodigoBarrasDigits, detectBoletoInputKind, detectBoletoSituacao, formatBoleto, formatLinhaDigitavel, getArrecadacaoDvCalculator, isArrecadacaoValueType, isValidArrecadacao, isValidBoleto, linhaArrecadacaoToCodigoBarras, stripArrecadacao, stripCodigoBarras, stripLinhaDigitavel, validateArrecadacao, validateArrecadacaoCodigoBarras, validateArrecadacaoLinha, validateBoleto, validateCodigoBarras, validateFatorVencimento, validateLinhaDigitavel, validateValorDocumento };