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