import Service from "../../service";
import { ApplePayInfo } from '../../typings/management/models';
import { PaymentMethod } from '../../typings/management/models';
import { PaymentMethodResponse } from '../../typings/management/models';
import { PaymentMethodSetupInfo } from '../../typings/management/models';
import { UpdatePaymentMethodInfo } from '../../typings/management/models';
import { IRequest } from "../../typings/requestOptions";
export default class PaymentMethodsMerchantLevelApi extends Service {
    /**
     * @summary Get all payment methods
     * @param merchantId The unique identifier of the merchant account.
     * @param storeId The unique identifier of the store for which to return the payment methods.
     * @param businessLineId The unique identifier of the Business Line for which to return the payment methods.
     * @param pageSize The number of items to have on a page, maximum 100. The default is 10 items on a page.
     * @param pageNumber The number of the page to fetch.
     */
    getAllPaymentMethods(merchantId: string, requestOptions?: IRequest.Options): Promise<PaymentMethodResponse>;
    /**
     * @summary Get payment method details
     * @param merchantId The unique identifier of the merchant account.
     * @param paymentMethodId The unique identifier of the payment method.
     */
    getPaymentMethodDetails(merchantId: string, paymentMethodId: string, requestOptions?: IRequest.Options): Promise<PaymentMethod>;
    /**
     * @summary Get Apple Pay domains
     * @param merchantId The unique identifier of the merchant account.
     * @param paymentMethodId The unique identifier of the payment method.
     */
    getApplePayDomains(merchantId: string, paymentMethodId: string, requestOptions?: IRequest.Options): Promise<ApplePayInfo>;
    /**
     * @summary Update a payment method
     * @param merchantId The unique identifier of the merchant account.
     * @param paymentMethodId The unique identifier of the payment method.
     * @param updatePaymentMethodInfo
     */
    updatePaymentMethod(merchantId: string, paymentMethodId: string, updatePaymentMethodInfo: UpdatePaymentMethodInfo, requestOptions?: IRequest.Options): Promise<PaymentMethod>;
    /**
     * @summary Request a payment method
     * @param merchantId The unique identifier of the merchant account.
     * @param paymentMethodSetupInfo
     */
    requestPaymentMethod(merchantId: string, paymentMethodSetupInfo: PaymentMethodSetupInfo, requestOptions?: IRequest.Options): Promise<PaymentMethod>;
    /**
     * @summary Add an Apple Pay domain
     * @param merchantId The unique identifier of the merchant account.
     * @param paymentMethodId The unique identifier of the payment method.
     * @param applePayInfo
     */
    addApplePayDomain(merchantId: string, paymentMethodId: string, applePayInfo: ApplePayInfo, requestOptions?: IRequest.Options): Promise<void>;
}
