import { IPerxToken } from '.'; import { IPerxService, MerchantInfo, PerxCustomer, PerxInvoiceCreationResponse, PerxInvoiceRequest, PerxLoyaltyTransaction, PerxLoyaltyTransactionRequest, PerxLoyaltyTransactionRequestUserAccount, PerxLoyaltyTransactionReservationRequest, PerxTransaction, PerxTransactionReqeust, PerxVoucher } from '..'; import type { IPerxPosProxy } from './manager'; export declare class PerxPosProxy implements IPerxPosProxy { private readonly getToken; private readonly perxService; constructor(getToken: () => Promise, perxService: IPerxService); createInvoice(request: PerxInvoiceRequest): Promise; /** * Release the reserved vouchers * * @param voucherIds */ releaseVouchers(voucherIds: string[]): Promise; /** * Hard burn/earn points * * @param applicationToken * @param request */ submitLoyaltyTransaction(request: PerxLoyaltyTransactionRequest): Promise; /** * Reserve the loyalty points give back the `loyaltyTransactionId` that holding the specified loyalty points. * * @param request */ reserveLoyaltyPoints(request: PerxLoyaltyTransactionReservationRequest): Promise; /** * release the loyalty points witheld by specific `loyaltyTransactionId` * * @param account * @param loyaltyTransactionId */ releaseLoyaltyPoints(account: PerxLoyaltyTransactionRequestUserAccount, loyaltyTransactionId: string): Promise; /** * Submit new transaction to perx service via POS Access. * * @param transaction */ submitTransaction(transaction: PerxTransactionReqeust): Promise; /** * get customer detail via POS Access. * * @param userId */ getCustomerDetail(userId: number): Promise; /** * create merchant info * * @param username * @param email * @param merchantId * @returns */ createMerchantInfo(username: string, email: string, merchantId: number): Promise; private _forEachVoucher; }