import type { _NSArray } from "../Foundation/NSArray.js";
import type { _NSData } from "../Foundation/NSData.js";
import type { _NSError } from "../Foundation/NSError.js";
import type { _NSObject } from "../Foundation/NSObject.js";
import type { _NSSet } from "../Foundation/NSSet.js";
import type { _NSString } from "../Foundation/NSString.js";
import type { _PKAutomaticReloadPaymentRequest } from "./PKAutomaticReloadPaymentRequest.js";
import type { _PKContact } from "./PKContact.js";
import type { _PKDeferredPaymentRequest } from "./PKDeferredPaymentRequest.js";
import type { _PKRecurringPaymentRequest } from "./PKRecurringPaymentRequest.js";
import type { PKAddressField } from "./PKAddressField.js";
import type { PKApplePayLaterAvailability } from "./PKApplePayLaterAvailability.js";
import type { PKContactField } from "./PKContactField.js";
import type { PKMerchantCapability } from "./PKMerchantCapability.js";
import type { PKShippingContactEditingMode } from "./PKShippingContactEditingMode.js";
import type { PKShippingType } from "./PKShippingType.js";
export declare class _PKPaymentRequest extends _NSObject {
    static alloc(): _PKPaymentRequest;
    static new(): _PKPaymentRequest;
    init(): _PKPaymentRequest;
    /** The payment networks and platforms supported for in-app payment */
    static availableNetworks(): _NSArray;
    /**
     * Convenience method to create a payment contact error with the supplied field You may optionally provide a localized description to be displayed to the user. Available display space for descriptions may be limited, so you should keep your messages concise
     */
    static paymentContactInvalidErrorWithContactField$localizedDescription$(field: PKContactField, localizedDescription: _NSString | null): _NSError;
    /**
     * Convenience method to create a payment shipping address error with the supplied CNPostalAddressKey and description
     */
    static paymentShippingAddressInvalidErrorWithKey$localizedDescription$(postalAddressKey: _NSString, localizedDescription: _NSString | null): _NSError;
    /**
     * Convenience method to create a payment billing address error with the supplied CNPostalAddressKey and description
     */
    static paymentBillingAddressInvalidErrorWithKey$localizedDescription$(postalAddressKey: _NSString, localizedDescription: _NSString | null): _NSError;
    /**
     * Convenience method to create a payment shipping address service error with the supplied description
     */
    static paymentShippingAddressUnserviceableErrorWithLocalizedDescription$(localizedDescription: _NSString | null): _NSError;
    /**
     * Convenience method to create a payment coupon code invalid error with the supplied description.
     */
    static paymentCouponCodeInvalidErrorWithLocalizedDescription$(localizedDescription: _NSString | null): _NSError;
    /**
     * Convenience method to create a payment coupon code expired error with the supplied description.
     */
    static paymentCouponCodeExpiredErrorWithLocalizedDescription$(localizedDescription: _NSString | null): _NSError;
    /**
     * Identifies the merchant, as previously agreed with Apple. Must match one of the merchant identifiers in the application's entitlement.
     */
    merchantIdentifier(): _NSString;
    setMerchantIdentifier$(value: _NSString): void;
    /**
     * An indentifier which should be used by partners that support "inline provisioning" (the addition of a Wallet pass without leaving a third-party app). The identifier can be used to identify the partner whose app experience has lead to the successful provisioning.
     */
    attributionIdentifier(): _NSString;
    setAttributionIdentifier$(value: _NSString): void;
    /** The merchant's ISO country code. */
    countryCode(): _NSString;
    setCountryCode$(value: _NSString): void;
    /**
     * The payment networks supported by the merchant, for example @[ PKPaymentNetworkVisa, PKPaymentNetworkMasterCard ]. This property constrains payment cards that may fund the payment.
     */
    supportedNetworks(): _NSArray;
    setSupportedNetworks$(value: _NSArray): void;
    /** The payment processing capabilities of the merchant. */
    merchantCapabilities(): PKMerchantCapability;
    setMerchantCapabilities$(value: PKMerchantCapability): void;
    /**
     * Indicates whether the merchant supports coupon code entry and validation. Defaults to NO.
     */
    supportsCouponCode(): boolean;
    setSupportsCouponCode$(value: boolean): void;
    /**
     * An optional coupon code that is valid and has been applied to the payment request already.
     */
    couponCode(): _NSString;
    setCouponCode$(value: _NSString): void;
    /**
     * The ISO 18245 Merchant Category Code for the payment. Some payment methods may not support specific merchant category codes. By setting the merchant category code, these payment methods can be excluded.
     */
    merchantCategoryCode(): number;
    setMerchantCategoryCode$(value: number): void;
    /**
     * Array of PKPaymentSummaryItem objects which should be presented to the user. The last item should be the total you wish to charge, and should not be pending
     */
    paymentSummaryItems(): _NSArray;
    setPaymentSummaryItems$(value: _NSArray): void;
    /** Currency code for this payment. */
    currencyCode(): _NSString;
    setCurrencyCode$(value: _NSString): void;
    /**
     * Indicates which billing contact fields the merchant requires in order to process a transaction. Currently only postal address may be requested for billing contact. For all other fields use -requiredShippingContactFields
     * @deprecated requiredBillingContactFields
     */
    requiredBillingContactFields(): _NSSet;
    setRequiredBillingContactFields$(value: _NSSet): void;
    /**
     * Indicates which billing address fields are required. The default is PKAddressFieldNone. This property is deprecated and should not be used.
     * @deprecated requiredBillingContactFields
     */
    requiredBillingAddressFields(): PKAddressField;
    setRequiredBillingAddressFields$(value: PKAddressField): void;
    /** If the merchant already has a billing address on file, set it here. */
    billingContact(): _PKContact | null;
    setBillingContact$(value: _PKContact | null): void;
    /**
     * Indicates which shipping contact fields the merchant requires in order to process a transactions
     * @deprecated requiredShippingContactFields
     */
    requiredShippingContactFields(): _NSSet;
    setRequiredShippingContactFields$(value: _NSSet): void;
    /**
     * Indicates which shipping address fields are required. The default is PKAddressFieldNone. This property is deprecated and should not be used
     * @deprecated requiredShippingContactFields
     */
    requiredShippingAddressFields(): PKAddressField;
    setRequiredShippingAddressFields$(value: PKAddressField): void;
    /** If the merchant already has a shipping address on file, set it here. */
    shippingContact(): _PKContact | null;
    setShippingContact$(value: _PKContact | null): void;
    /** Shipping methods supported by the merchant. */
    shippingMethods(): _NSArray | null;
    setShippingMethods$(value: _NSArray | null): void;
    /**
     * Indicates the display mode for the shipping (e.g, "Pick Up", "Ship To", "Deliver To"). Localized. The default is PKShippingTypeShipping
     */
    shippingType(): PKShippingType;
    setShippingType$(value: PKShippingType): void;
    /**
     * Indicates the editing mode for the shipping contact. The default is PKShippingContactEditingModeEnabled.
     */
    shippingContactEditingMode(): PKShippingContactEditingMode;
    setShippingContactEditingMode$(value: PKShippingContactEditingMode): void;
    /**
     * Optional merchant-supplied information about the payment request. Examples of this are an order or cart identifier. It will be signed and included in the resulting PKPaymentToken.
     */
    applicationData(): _NSData | null;
    setApplicationData$(value: _NSData | null): void;
    /**
     * Set of two-letter ISO 3166 country codes. When provided will filter the selectable payment passes to those issued in the supported countries.
     * @deprecated ABRecordRef has been deprecated, and does not support all available address properties. You should migrate to shippingContact.
     */
    supportedCountries(): _NSSet | null;
    setSupportedCountries$(value: _NSSet | null): void;
    /**
     * Array of payment token contexts that indicates multiple payment tokens are requested, one for each context object provided. The sum of all context amounts must be less than or equal to the total amount of the enclosing payment request, as indicated by the last payment summary item. This property cannot be used simultaneously with recurring, automatic reload or deferred payment requests. Multiple payment tokens are not supported on watchOS.
     */
    multiTokenContexts(): _NSArray;
    setMultiTokenContexts$(value: _NSArray): void;
    /**
     * Optional request to set up a recurring payment, typically a subscription. This payment request will receive a merchant-specific payment token if the payment network supports merchant-specific payment tokens. This property cannot be used simultaneously with multi token contexts, automatic reload or deferred payment requests. Merchant-specific payment tokens are not supported on watchOS.
     */
    recurringPaymentRequest(): _PKRecurringPaymentRequest;
    setRecurringPaymentRequest$(value: _PKRecurringPaymentRequest): void;
    /**
     * Optional request to set up an automatic reload, such as a store card top-up. This payment request will receive a merchant-specific payment token if the payment network supports merchant-specific payment tokens. This property cannot be used simultaneously with multi token contexts, recurring payment requests or deferred payment requests. Merchant-specific payment tokens are not supported on watchOS.
     */
    automaticReloadPaymentRequest(): _PKAutomaticReloadPaymentRequest;
    setAutomaticReloadPaymentRequest$(value: _PKAutomaticReloadPaymentRequest): void;
    /**
     * Optional request to set up a deferred payment, such as a hospitality booking or a pre-order. This payment request will receive a merchant-specific payment token if the payment network supports merchant-specific payment tokens. This property cannot be used simultaneously with: multi token contexts, recurring payment requests or automatic reload payment requests. Merchant-specific payment tokens are not supported on watchOS.
     */
    deferredPaymentRequest(): _PKDeferredPaymentRequest;
    setDeferredPaymentRequest$(value: _PKDeferredPaymentRequest): void;
    /**
     * Opt out of Apple Pay Later. Defaults to enabled. Only set this property if you have a specific requirement to disable Apple Pay Later. Be sure to select the correct mode that matches your requirement, since this will be displayed to the user.
     */
    applePayLaterAvailability(): PKApplePayLaterAvailability;
    setApplePayLaterAvailability$(value: PKApplePayLaterAvailability): void;
}
