@sahabaplus/moyasar
Version:
A comprehensive TypeScript SDK for integrating with the Moyasar payment gateway
71 lines • 2.55 kB
TypeScript
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