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 CNS (Cartão Nacional de Saúde) numbers. */ export declare class CNSValidation extends AbstractValidatableDocument { protected documentName(): string; /** * Generates a valid CNS (provisional type, leading 7/8/9). * * Provisional cards only require the weighted sum (15..1) to be divisible by * 11, so we fix the first 14 digits at random and solve the last one; if no * single digit closes the sum, we resample. This avoids reproducing the * Ministry of Health's definitive-card (type 1/2) suffix rules. * * @param formatted When true, returns the masked form (000 0000 0000 0000). */ static generate(formatted?: boolean): string; protected doValidate(): ReasonCode | null; /** CNS subtype from the leading digit: 1/2 definitive, 7/8/9 provisional. */ protected extractMeta(normalized: string): DocumentMeta; /** Canonical CNS mask: 000 0000 0000 0000 (space-separated groups). */ protected mask(stripped: string): string; }