/**
 * 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 };
