/** * Calcula o dígito verificador de um CPF usando o algoritmo Módulo 11 * com pesos lineares crescentes. * * @param digits - String com 9 dígitos (para DV1) ou 10 dígitos (para DV2). * @returns Dígito verificador (0..9). */ declare function cpfDigit(digits: string): number; /** * Calcula o dígito verificador de um CNPJ usando o algoritmo Módulo 11 * com pesos cíclicos 2..9. * * Aceita tanto CNPJs puramente numéricos quanto no formato alfanumérico * da Nota Técnica RFB 49/2024 (letras A-Z convertidas via ASCII - 48). * * @param digits - String com 12 dígitos (para DV1) ou 13 dígitos (para DV2). * @returns Dígito verificador (0..9). */ declare function cnpjDigit(digits: string): number; /** Opções para `cnpj.generate()`. */ interface GenerateOptions$1 { /** Retorna o CNPJ com máscara `XX.XXX.XXX/XXXX-YY` quando `true`. */ formatted?: boolean; } /** * Remove caracteres de máscara e normaliza um CNPJ. * * Em modo padrão (loose), converte minúsculas para maiúsculas e remove * qualquer caractere que não seja dígito ou letra A-Z. Em modo strict, * remove apenas `.`, `/` e `-` (máscara oficial) sem normalizar o case. * * @param value - Entrada a ser normalizada. * @param strict - Se `true`, só remove os caracteres da máscara oficial. * @returns Apenas dígitos e letras A-Z remanescentes. */ declare function strip$1(value: string, strict?: boolean): string; /** * Aplica a máscara oficial `XX.XXX.XXX/XXXX-YY` no CNPJ (numérico ou * alfanumérico). Os 2 últimos caracteres (DVs) são sempre numéricos. * * @param value - CNPJ cru ou já formatado. * @returns CNPJ mascarado, ou entrada normalizada quando não casar com o * padrão de 14 posições. */ declare function format$1(value: string): string; /** * Valida um CNPJ verificando tamanho, lista negra, shape dos DVs e os * dois dígitos verificadores via Módulo 11. * * Aceita tanto CNPJs puramente numéricos (formato legado) quanto * alfanuméricos (novo formato da Nota Técnica RFB 49/2024 — vigência * obrigatória em julho/2026). * * @param value - CNPJ (cru, formatado ou com lixo, conforme `strict`). * @param strict - Se `true`, só aceita máscara canônica ou 14 caracteres * `[0-9A-Z]` sem normalização de case. * @returns `true` se o CNPJ é válido; `false` caso contrário. * * @example * ```ts * cnpj.isValid('54.550.752/0001-55') // true * cnpj.isValid('54550752000155') // true * cnpj.isValid('12ABC34501DE35') // true (novo formato RFB) * cnpj.isValid('12.ABC.345/01DE-35') // true * ``` */ declare function isValid$1(value: string, strict?: boolean): boolean; /** * Gera um CNPJ alfanumérico matematicamente válido, seguindo o formato * da Nota Técnica RFB 49/2024. * * @param options - Boolean legado (apenas `formatted`) ou objeto de opções. * @returns CNPJ gerado com 14 caracteres (12 alfanuméricos + 2 DVs * numéricos) ou a máscara oficial. * * @example * ```ts * cnpj.generate() // '58A0Z919U001O6' * cnpj.generate(true) // '58.A0Z.919/U001-O6' (nope — DVs sempre numéricos) * cnpj.generate({ formatted: true }) // '58.A0Z.919/U001-06' * ``` */ declare function generate$1(options?: boolean | GenerateOptions$1): string; declare const _default$1: { verifierDigit: typeof cnpjDigit; strip: typeof strip$1; format: typeof format$1; isValid: typeof isValid$1; generate: typeof generate$1; }; /** * Mapa dos 27 UFs brasileiros para seus dígitos de Região Fiscal da * Receita Federal (0..9), codificados na 9ª posição do CPF. * * @example * ```ts * FISCAL_REGION_BY_UF.SP // 8 (São Paulo — 8ª Região Fiscal) * FISCAL_REGION_BY_UF.RS // 0 (Rio Grande do Sul — 10ª Região Fiscal) * ``` */ declare const FISCAL_REGION_BY_UF: { readonly DF: 1; readonly GO: 1; readonly MS: 1; readonly MT: 1; readonly TO: 1; readonly AC: 2; readonly AM: 2; readonly AP: 2; readonly PA: 2; readonly RO: 2; readonly RR: 2; readonly CE: 3; readonly MA: 3; readonly PI: 3; readonly AL: 4; readonly PB: 4; readonly PE: 4; readonly RN: 4; readonly BA: 5; readonly SE: 5; readonly MG: 6; readonly ES: 7; readonly RJ: 7; readonly SP: 8; readonly PR: 9; readonly SC: 9; readonly RS: 0; }; /** Unidade da Federação — um dos 26 estados brasileiros ou DF. */ type UF = keyof typeof FISCAL_REGION_BY_UF; /** Opções para `cpf.generate()`. */ interface GenerateOptions { /** Retorna o CPF com máscara `XXX.XXX.XXX-XX` quando `true`. */ formatted?: boolean; /** UF de emissão — controla o dígito da Região Fiscal (9ª posição). */ state?: UF; } /** * Remove caracteres de máscara e normaliza um CPF. * * @param value - Entrada a ser normalizada. * @param strict - Se `true`, remove apenas `.` e `-`. Se `false` ou omitido, * remove qualquer caractere não numérico. * @returns Apenas os dígitos remanescentes. */ declare function strip(value: string, strict?: boolean): string; /** * Aplica a máscara oficial `XXX.XXX.XXX-XX` no CPF. * * @param value - CPF cru ou já formatado. * @returns O CPF com máscara, ou a entrada normalizada quando não casar * com o padrão de 11 dígitos. */ declare function format(value: string): string; /** * Valida um CPF verificando tamanho, lista negra e os dois dígitos * verificadores via Módulo 11. * * @param value - CPF (cru, formatado ou com lixo, conforme `strict`). * @param strict - Se `true`, só aceita máscara canônica `XXX.XXX.XXX-XX` * ou 11 dígitos puros. Se `false` ou omitido, remove qualquer lixo. * @returns `true` se o CPF é válido; `false` caso contrário. * * @example * ```ts * cpf.isValid('295.379.955-93') // true * cpf.isValid('29537995593') // true * cpf.isValid('00000000000') // false (blacklist) * ``` */ declare function isValid(value: string, strict?: boolean): boolean; /** * Gera um CPF matematicamente válido, opcionalmente formatado ou * vinculado a uma UF específica (via Região Fiscal da RFB). * * @param options - Boolean legado (apenas `formatted`) ou objeto com * `formatted` e/ou `state`. Quando `state` é informado, a 9ª posição * recebe o dígito da Região Fiscal correspondente. * @returns CPF gerado, com 11 dígitos crus ou a máscara oficial. * @throws {TypeError} Se `options.state` for informado mas não for um UF * conhecido. * * @example * ```ts * cpf.generate() // '32564428777' * cpf.generate(true) // '325.644.287-77' * cpf.generate({ state: 'SP' }) // '...8??' (8ª posição = RF SP) * cpf.generate({ formatted: true, state: 'SP' }) // '325.644.287-77' (9ª = '8') * ``` */ declare function generate(options?: boolean | GenerateOptions): string; declare const _default: { verifierDigit: typeof cpfDigit; strip: typeof strip; format: typeof format; isValid: typeof isValid; generate: typeof generate; FISCAL_REGION_BY_UF: { readonly DF: 1; readonly GO: 1; readonly MS: 1; readonly MT: 1; readonly TO: 1; readonly AC: 2; readonly AM: 2; readonly AP: 2; readonly PA: 2; readonly RO: 2; readonly RR: 2; readonly CE: 3; readonly MA: 3; readonly PI: 3; readonly AL: 4; readonly PB: 4; readonly PE: 4; readonly RN: 4; readonly BA: 5; readonly SE: 5; readonly MG: 6; readonly ES: 7; readonly RJ: 7; readonly SP: 8; readonly PR: 9; readonly SC: 9; readonly RS: 0; }; }; export { type GenerateOptions$1 as CnpjGenerateOptions, type GenerateOptions as CpfGenerateOptions, type UF, _default$1 as cnpj, _default$1 as cnpjValidator, _default as cpf, _default as cpfValidator };