UNPKG

@sahabaplus/moyasar

Version:

A comprehensive TypeScript SDK for integrating with the Moyasar payment gateway

71 lines 2.55 kB
import type { Invoice, CreateInvoiceRequest, BulkCreateInvoiceRequest, DetailedInvoice } from "./types"; import { InvoiceStatus } from "./enums"; import type { ValidationResult, Amount, CurrencyType } from "../../shared/types/index"; export declare class InvoiceUtils { /** * Validate single invoice creation request using Zod */ static validateCreateInvoiceRequest(request: CreateInvoiceRequest): ValidationResult<CreateInvoiceRequest>; /** * Validate bulk invoice creation request using Zod */ static validateBulkCreateRequest(request: BulkCreateInvoiceRequest): ValidationResult<BulkCreateInvoiceRequest>; /** * Convert amount to display format */ static formatAmount(amount: Amount, currency: CurrencyType): `${number} ${CurrencyType}`; /** * Parse amount from display format to smallest unit */ static parseAmount(formattedAmount: string, currency: CurrencyType): number; /** * Check if invoice is in a final state */ static isInvoiceFinal(status: InvoiceStatus): boolean; /** * Check if invoice can be canceled */ static canCancelInvoice(invoice: Invoice): boolean; /** * Check if invoice is expired */ static isInvoiceExpired(invoice: Invoice): boolean; /** * Get time until expiry */ static getTimeUntilExpiry(invoice: Invoice): number | null; /** * Get payment summary for an invoice */ static getPaymentSummary(invoice: DetailedInvoice): { total: number; paid: number; failed: number; pending: number; totalAmount: number; paidAmount: number; refundedAmount: number; }; /** * Build metadata query parameters for filtering */ static buildMetadataQuery(metadata: Record<string, string>): Record<string, string>; /** * Sanitize invoice description */ static sanitizeDescription(description: string): string; /** * Generate invoice reference number */ static generateReference(prefix?: string): string; /** * Parse and validate a CreateInvoiceRequest, returning sanitized data */ static parseCreateInvoiceRequest(request: unknown): ValidationResult<CreateInvoiceRequest>; /** * Parse and validate a BulkCreateInvoiceRequest, returning sanitized data */ static parseBulkCreateRequest(request: unknown): ValidationResult<BulkCreateInvoiceRequest>; static parseInvoice(invoice: unknown): Invoice; } //# sourceMappingURL=utils.d.ts.map