import { SecurepayConstruction } from "../interfaces/common/construction.interface";
import { PaypalTransactionExecute } from "../interfaces/paypal/paypal-transaction-execute.interface";
import { PaypalTransactionInitial } from "../interfaces/paypal/paypal-transaction-initial.interface";
import { PaypalTransactionRefund } from "../interfaces/paypal/paypal-transaction-refund.interface";
export declare class Paypal {
    /** Services */
    private _paypalTransaction;
    constructor(options: SecurepayConstruction);
    /**
     * Initiates a PayPal express checkout transaction.
     * https://auspost.com.au/payments/docs/securepay/?javascript#securepay-api-paypal-payments-rest-api-initiate-paypal-transaction
     *
     * @param {PaypalTransactionInitial} payload
     */
    initialTransaction(payload: PaypalTransactionInitial): Promise<import("../interfaces/paypal/paypal-initial-response.interface").PaypalInitialResponse>;
    /**
     * Executes a PayPal express checkout transaction after the customer has logged into PayPal and accepted it.
     * https://auspost.com.au/payments/docs/securepay/?javascript#securepay-api-paypal-payments-rest-api-execute-paypal-transaction
     *
     * @param {string} orderId
     * @param {PaypalTransactionExecute} payload
     */
    executeTransaction(orderId: string, payload: PaypalTransactionExecute): Promise<any>;
    /**
     * Refunds a previously executed PayPal transaction
     * https://auspost.com.au/payments/docs/securepay/?javascript#securepay-api-paypal-payments-rest-api-refund-paypal-transaction
     *
     * @param {string} orderId
     * @param {PaypalTransactionRefund} payload
     */
    refundTransaction(orderId: string, payload: PaypalTransactionRefund): Promise<any>;
    /**
     * Retrieves billing & shipping details for a customer that has previously initiated/executed a PayPal transaction
     * https://auspost.com.au/payments/docs/securepay/?javascript#securepay-api-paypal-payments-rest-api-retrieve-paypal-order-details
     *
     * @param {string} orderId
     * @param {string} merchantCode
     */
    retrieveTransaction(orderId: string, merchantCode: string): Promise<import("../interfaces/paypal/paypal-object.interface").PaypalObject>;
}
