///
import { MobileMoneyCheckoutOptions, CheckoutResult, PaymentProvider, RefundOptions, RefundResult, CreditCardCheckoutOptions, RedirectCheckoutOptions, PaymentMethod, HandleWebhookOptions, Currency, MobileMoneyPayoutOptions, PayoutResult } from "../payment-provider.interface";
import EventEmitter2 from "eventemitter2";
import { PaymentFailedEvent, PaymentSuccessfulEvent } from "../payment-events";
declare class BogusPaymentProvider implements PaymentProvider {
private config;
private eventEmitter?;
constructor(config: BogusPaymentProviderConfig);
useEventEmitter(eventEmitter: EventEmitter2): void;
checkout(options: MobileMoneyCheckoutOptions | CreditCardCheckoutOptions | RedirectCheckoutOptions, isFailure: boolean): Promise;
checkoutMobileMoney(options: MobileMoneyCheckoutOptions): Promise;
checkoutCreditCard(options: CreditCardCheckoutOptions): Promise;
checkoutRedirect(options: RedirectCheckoutOptions): Promise;
refund(options: RefundOptions): Promise;
handleWebhook(rawBody: Buffer | string, options: HandleWebhookOptions): Promise;
payoutMobileMoney(options: MobileMoneyPayoutOptions): Promise;
}
type BogusPaymentProviderConfig = {
/**
* Whether to emit events instantly or wait for the webhook to be called
*/
instantEvents: boolean;
};
export type BogusPaymentProviderWebhookBody = {
success: boolean;
amount: number;
transactionId: string;
transactionReference: string;
paymentMethod: PaymentMethod;
currency: Currency;
metadata?: Record;
};
export default BogusPaymentProvider;
//# sourceMappingURL=bogus.d.ts.map