import { AbstractValidatableDocument } from '../../contracts/abstract-validatable-document.js'; import { ReasonCode } from '../../contracts/reason-code.js'; import { type DocumentMeta } from '../../contracts/validation-result.js'; /** * Validates Brazilian CNPJ (Cadastro Nacional da Pessoa Jurídica) numbers. * * Supports both numeric and alphanumeric CNPJ formats. */ export declare class CNPJValidation extends AbstractValidatableDocument { protected documentName(): string; /** * Generates a valid (numeric) CNPJ. * * @param formatted When true, returns the masked form (00.000.000/0000-00). */ static generate(formatted?: boolean): string; /** * CNPJ keeps letters (alphanumeric format), so it cannot strip to digits only. * Uppercases and removes only formatting separators; other characters are * preserved so they are caught as invalid during validation. */ protected sanitize(value: string): string; protected doValidate(): ReasonCode | null; /** * CNPJ metadata: whether it is a headquarters (branch marker '0001' before the * check digits) and whether it uses the alphanumeric format (any letter present). */ protected extractMeta(normalized: string): DocumentMeta; /** * Canonical CNPJ mask: XX.XXX.XXX/XXXX-YY. Alphanumeric-aware — the first 12 * positions may be [A-Z0-9] and only the last 2 (check digits) are numeric. */ protected mask(stripped: string): string; }