import { AbstractValidatableDocument } from '../../contracts/abstract-validatable-document.js'; import { ReasonCode } from '../../contracts/reason-code.js'; import { type DocumentMeta } from '../../contracts/validation-result.js'; /** * Validates payment card numbers via the Luhn algorithm (Mod-10, ISO/IEC 7812). * * Validation is integrity-only: it proves the number is well-formed and passes * the check digit — it does NOT prove the card exists, is active, or is issued. * The `meta.brand` is a best-effort BIN heuristic that can drift as issuers * change ranges; do not rely on it for authorization. */ export declare class CartaoValidation extends AbstractValidatableDocument { protected documentName(): string; protected doValidate(): ReasonCode | null; /** Standard Luhn (Mod-10): double every 2nd digit from the right, sum, % 10 == 0. */ private static luhnValid; /** Best-effort card brand inferred from the BIN. */ protected extractMeta(normalized: string): DocumentMeta; }