import type { _NSArray } from "../Foundation/NSArray.js";
import type { _NSObject } from "../Foundation/NSObject.js";
import type { _PKDisbursementRequest } from "./PKDisbursementRequest.js";
import type { _PKPaymentAuthorizationControllerDelegate } from "./PKPaymentAuthorizationControllerDelegate.js";
import type { _PKPaymentRequest } from "./PKPaymentRequest.js";
import type { PKMerchantCapability } from "./PKMerchantCapability.js";
export declare class _PKPaymentAuthorizationController extends _NSObject {
    static alloc(): _PKPaymentAuthorizationController;
    static new(): _PKPaymentAuthorizationController;
    init(): _PKPaymentAuthorizationController;
    /**
     * Determine whether this device can process payment requests. YES if the device is generally capable of making in-app payments. NO if the device cannot make in-app payments or if the user is restricted from authorizing payments.
     */
    static canMakePayments(): boolean;
    /**
     * Determine whether this device can process payment requests using specific payment network brands. Your application should confirm that the user can make payments before attempting to authorize a payment. Your application may also want to alter its appearance or behavior when the user is not allowed to make payments. YES if the user can authorize payments on this device using one of the payment networks supported by the merchant. NO if the user cannot authorize payments on these networks or if the user is restricted from authorizing payments.
     */
    static canMakePaymentsUsingNetworks$(supportedNetworks: _NSArray): boolean;
    /**
     * Determine whether this device can process payments using the specified networks and capabilities bitmask See +canMakePaymentsUsingNetworks:
     */
    static canMakePaymentsUsingNetworks$capabilities$(supportedNetworks: _NSArray, capabilties: PKMerchantCapability): boolean;
    /** Determine whether this device can process disbursement requests. */
    static supportsDisbursements(): boolean;
    /**
     * Determine whether this device can process disbursement requests using specific payment network brands.
     */
    static supportsDisbursementsUsingNetworks$(supportedNetworks: _NSArray): boolean;
    /**
     * Determine whether this device can process disbursements to cards issued in any of the indicated regions using the specified networks and capabilities bitmask. supportedRegions is a list of ISO 3166 country codes. Duplicates are ignored.
     */
    static supportsDisbursementsUsingNetworks$capabilities$(supportedNetworks: _NSArray, capabilties: PKMerchantCapability): boolean;
    /** Initialize the controller with a payment request. */
    initWithPaymentRequest$(request: _PKPaymentRequest): _PKPaymentAuthorizationController;
    /**
     * Presents the Apple Pay UI modally over your app. You are responsible for dismissal
     */
    presentWithCompletion$(completion: ((success: boolean) => void) | null): void;
    /**
     * Dismisses the Apple Pay UI. Call this when you receive the paymentAuthorizationControllerDidFinish delegate callback, or otherwise wish a dismissal to occur
     */
    dismissWithCompletion$(completion: (() => void) | null): void;
    /** Initialize the controller with a request to send money to a user. */
    initWithDisbursementRequest$(request: _PKDisbursementRequest): _PKPaymentAuthorizationController;
    /** The controller's delegate. */
    delegate(): _PKPaymentAuthorizationControllerDelegate | null;
    setDelegate$(value: _PKPaymentAuthorizationControllerDelegate | null): void;
}
