/** * XDC Trade Finance Utilities * * XDC Network is optimized for international trade finance. * These utilities support document verification, ISO 20022 compliance, * and trade asset management. */ /** * Trade document types supported on XDC */ export declare enum TradeDocumentType { BILL_OF_LADING = "BILL_OF_LADING", COMMERCIAL_INVOICE = "COMMERCIAL_INVOICE", PACKING_LIST = "PACKING_LIST", CERTIFICATE_OF_ORIGIN = "CERTIFICATE_OF_ORIGIN", INSURANCE_CERTIFICATE = "INSURANCE_CERTIFICATE", LETTER_OF_CREDIT = "LETTER_OF_CREDIT", BANK_GUARANTEE = "BANK_GUARANTEE", WAREHOUSE_RECEIPT = "WAREHOUSE_RECEIPT", CUSTOMS_DECLARATION = "CUSTOMS_DECLARATION", INSPECTION_CERTIFICATE = "INSPECTION_CERTIFICATE" } /** * Letter of Credit status types */ export declare enum LCStatus { DRAFT = "DRAFT", ISSUED = "ISSUED", ADVISED = "ADVISED", CONFIRMED = "CONFIRMED", DOCUMENTS_PRESENTED = "DOCUMENTS_PRESENTED", DOCUMENTS_ACCEPTED = "DOCUMENTS_ACCEPTED", PAYMENT_PENDING = "PAYMENT_PENDING", PAID = "PAID", EXPIRED = "EXPIRED", CANCELLED = "CANCELLED" } /** * Supply chain event types */ export declare enum SupplyChainEvent { ORDER_PLACED = "ORDER_PLACED", PRODUCTION_STARTED = "PRODUCTION_STARTED", PRODUCTION_COMPLETED = "PRODUCTION_COMPLETED", QUALITY_INSPECTION = "QUALITY_INSPECTION", PACKED = "PACKED", SHIPPED = "SHIPPED", IN_TRANSIT = "IN_TRANSIT", CUSTOMS_CLEARANCE = "CUSTOMS_CLEARANCE", ARRIVED_AT_PORT = "ARRIVED_AT_PORT", DELIVERED = "DELIVERED", RECEIVED = "RECEIVED" } /** * ISO 20022 Message Types relevant to trade finance */ export declare enum ISO20022MessageType { TSMT_001 = "tsmt.001",// Baseline Report TSMT_002 = "tsmt.002",// Forward Data Set Submission TSMT_003 = "tsmt.003",// Data Set Match Report TSMT_012 = "tsmt.012",// Status Report TREA_001 = "trea.001",// LC Issuance TREA_002 = "trea.002",// LC Amendment TREA_003 = "trea.003",// LC Notification BGRT_001 = "bgrt.001",// Guarantee Issuance BGRT_002 = "bgrt.002",// Guarantee Amendment PAIN_001 = "pain.001",// Customer Credit Transfer Initiation PAIN_002 = "pain.002",// Payment Status Report PACS_008 = "pacs.008",// FI to FI Customer Credit Transfer CAMT_053 = "camt.053" } /** * Document hash structure */ export interface DocumentHash { hash: string; algorithm: 'SHA256' | 'KECCAK256'; timestamp: number; issuer: string; } /** * Trade document metadata */ export interface TradeDocumentMetadata { documentId: string; type: TradeDocumentType; hash: string; issuer: string; issuedAt: number; expiresAt?: number; reference?: string; parties?: string[]; amount?: string; currency?: string; additionalData?: Record; } /** * Generate document hash from content * @param content - Document content (string or buffer) * @param algorithm - Hash algorithm * @returns Hash string */ export declare function generateDocumentHash(content: string | Buffer, algorithm?: 'SHA256' | 'KECCAK256'): string; /** * Verify document hash * @param content - Original content * @param hash - Expected hash * @param algorithm - Hash algorithm used * @returns True if hash matches */ export declare function verifyDocumentHash(content: string | Buffer, hash: string, algorithm?: 'SHA256' | 'KECCAK256'): boolean; /** * Create document registration data * @param metadata - Document metadata * @returns Encoded data for blockchain registration */ export declare function encodeDocumentRegistration(metadata: TradeDocumentMetadata): string; /** * Parse ISO 20022 message type * @param messageType - ISO message type string * @returns Parsed message info */ export declare function parseISO20022MessageType(messageType: string): { domain: string; messageId: string; description: string; }; /** * Validate ISO 20022 compliance data * @param data - Data to validate * @param messageType - Expected message type * @returns Validation result */ export declare function validateISO20022Data(data: Record, messageType: ISO20022MessageType): { valid: boolean; errors: string[]; }; /** * Generate Letter of Credit reference number * @param bankCode - Issuing bank code * @param year - Year * @param sequence - Sequence number * @returns LC reference number */ export declare function generateLCReference(bankCode: string, year: number, sequence: number): string; /** * Calculate trade finance metrics * @param documents - Array of document metadata * @returns Metrics summary */ export declare function calculateTradeMetrics(documents: TradeDocumentMetadata[]): { totalDocuments: number; byType: Record; totalValue: string; currencies: string[]; avgProcessingTime: number; }; /** * Create supply chain event log * @param event - Event type * @param assetId - Asset identifier * @param location - Event location * @param additionalData - Extra event data * @returns Encoded event data */ export declare function encodeSupplyChainEvent(event: SupplyChainEvent, assetId: string, location: string, additionalData?: Record): string; /** * Validate trade asset status transition * @param currentStatus - Current status * @param newStatus - Proposed new status * @returns True if transition is valid */ export declare function isValidStatusTransition(currentStatus: SupplyChainEvent, newStatus: SupplyChainEvent): boolean; /** * Format trade document summary * @param metadata - Document metadata * @returns Formatted summary string */ export declare function formatDocumentSummary(metadata: TradeDocumentMetadata): string; //# sourceMappingURL=tradeFinanceUtils.d.ts.map