UNPKG

@sahabaplus/moyasar

Version:

A comprehensive TypeScript SDK for integrating with the Moyasar payment gateway

63 lines 2.54 kB
import type { ApiClient, MoyasarClientTypes } from "../../shared/types/index"; import type { CreateInvoiceRequest, UpdateInvoiceRequest, BulkCreateInvoiceRequest, ListInvoicesResponse, BulkCreateInvoicesResponse, InvoiceListOptions, DetailedInvoice } from "./types"; import { InvoiceStatus } from "./enums"; type InvoiceServiceParams<T extends MoyasarClientTypes> = { apiClient: ApiClient<T>; }; export declare class InvoiceService<T extends MoyasarClientTypes> { private readonly apiClient; private readonly invoiceUtils; constructor(p: InvoiceServiceParams<T>); /** * Create a new invoice */ create(params: CreateInvoiceRequest<T["metadata"]>): Promise<DetailedInvoice<T["metadata"]>>; /** * Create multiple invoices in bulk */ createBulk(params: BulkCreateInvoiceRequest<T["metadata"]>): Promise<BulkCreateInvoicesResponse<T["metadata"]>>; /** * List invoices with optional filtering */ list(options?: InvoiceListOptions<T["metadata"]>): Promise<ListInvoicesResponse<T["metadata"]>>; /** * Retrieve a specific invoice */ retrieve(invoiceId: string): Promise<DetailedInvoice<T["metadata"]>>; /** * Update an invoice */ update(invoiceId: string, params: UpdateInvoiceRequest<T["metadata"]>): Promise<DetailedInvoice<T["metadata"]>>; /** * Cancel an invoice */ cancel(invoiceId: string): Promise<DetailedInvoice<T["metadata"]>>; /** * Search invoices by metadata */ searchByMetadata(metadata: Partial<T["metadata"]>, options?: Omit<InvoiceListOptions, "metadata">): Promise<ListInvoicesResponse<T["metadata"]>>; /** * Get invoices by status */ getByStatus(status: InvoiceStatus, options?: Omit<InvoiceListOptions, "status">): Promise<ListInvoicesResponse<T["metadata"]>>; /** * Get expired invoices */ getExpired(options?: Omit<InvoiceListOptions, "status">): Promise<ListInvoicesResponse<T["metadata"]>>; /** * Get paid invoices */ getPaid(options?: Omit<InvoiceListOptions, "status">): Promise<ListInvoicesResponse<T["metadata"]>>; private handleError; protected parseBody(p: InvoiceListOptions<T["metadata"]>): { id?: string | undefined; status?: InvoiceStatus | undefined; "created[gt]"?: Date | undefined; "created[lt]"?: Date | undefined; page?: number; limit?: 40; metadata?: Partial<T["metadata"]> | null | undefined; }; } export {}; //# sourceMappingURL=service.d.ts.map