/**
 * SBV ISO 20022 Message Validator
 * Validates incoming/outgoing messages against SBV-profiled ISO 20022 XSD schemas
 *
 * Cơ quan chủ quản: Ngân hàng Nhà nước Việt Nam (SBV)
 * Phiên bản: 1.0.0
 */
/**
 * Tập catalogue các message ISO 20022 được SBV hỗ trợ.
 * Key = Message Definition Identifier (MsgDefIdr trong head.001)
 */
declare const SUPPORTED_MESSAGES: readonly ["pain.001.001.09", "pain.002.001.11", "pain.007.001.09", "pain.008.001.09", "pain.013.001.09", "pacs.002.001.11", "pacs.003.001.09", "pacs.004.001.10", "pacs.008.001.09", "pacs.009.001.09", "pacs.010.001.05", "camt.052.001.10", "camt.053.001.10", "camt.054.001.10", "camt.055.001.10", "camt.056.001.10", "camt.057.001.08", "camt.060.001.05", "head.001.001.03", "auth.001.001.02", "auth.002.001.02", "auth.018.001.04"];
export type MessageDefId = typeof SUPPORTED_MESSAGES[number];
export interface ValidationResult {
    valid: boolean;
    msgDefId: string;
    errors: ValidationError[];
    warnings: ValidationWarning[];
}
export interface ValidationError {
    field: string;
    message: string;
    value?: unknown;
}
export interface ValidationWarning {
    field: string;
    message: string;
}
export declare class Iso20022Validator {
    private ajv;
    private schemaCache;
    constructor();
    /**
     * Nạp trước tất cả JSON Schema vào bộ nhớ cache khi khởi động gateway.
     */
    private preloadSchemas;
    /**
     * Xác thực một message ISO 20022 đã được parse sang JavaScript object.
     * @param msgDefId  - Message Definition Identifier (vd: 'pacs.008.001.09')
     * @param payload   - Object đã parse từ XML/JSON
     */
    validate(msgDefId: string, payload: unknown): ValidationResult;
    /**
     * Business rules SBV-specific không thể express bằng JSON Schema.
     */
    private applyBusinessRules;
    /**
     * Cảnh báo không block giao dịch nhưng cần ghi log để giám sát.
     */
    private applyWarningRules;
}
export {};
//# sourceMappingURL=iso20022-validator.d.ts.map