import type { _NSArray } from "../Foundation/NSArray.js";
import type { _NSData } from "../Foundation/NSData.js";
import type { _NSDictionary } from "../Foundation/NSDictionary.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 { _PKPass } from "./PKPass.js";
import type { _PKPaymentPass } from "./PKPaymentPass.js";
import type { _PKSecureElementPass } from "./PKSecureElementPass.js";
import type { PKAutomaticPassPresentationSuppressionResult } from "./PKAutomaticPassPresentationSuppressionResult.js";
import type { PKPassLibraryAddPassesStatus } from "./PKPassLibraryAddPassesStatus.js";
import type { PKPassLibraryAuthorizationStatus } from "./PKPassLibraryAuthorizationStatus.js";
import type { PKPassLibraryCapability } from "./PKPassLibraryCapability.js";
import type { PKPassType } from "./PKPassType.js";
export declare class _PKPassLibrary extends _NSObject {
    static alloc(): _PKPassLibrary;
    static new(): _PKPassLibrary;
    init(): _PKPassLibrary;
    /** The library is not available on iPad in 6.0. */
    static isPassLibraryAvailable(): boolean;
    /**
     * These methods may be used to temporarily disable the automatic presentation of passes when a device encounters a contactless field. Use of these methods require an entitlement. Otherwise, requesting will always return a PKAutomaticPassPresentationSuppressionResultDenied as the result.
     * @deprecated Use -[PKPassLibrary isPaymentPassActivationAvailable] instead
     */
    static requestAutomaticPassPresentationSuppressionWithResponseHandler$(responseHandler: (result: PKAutomaticPassPresentationSuppressionResult) => void): number;
    /** @deprecated Use -[PKPassLibrary isPaymentPassActivationAvailable] instead */
    static endAutomaticPassPresentationSuppressionWithRequestToken$(requestToken: number): void;
    /** @deprecated Use -[PKPassLibrary isPaymentPassActivationAvailable] instead */
    static isSuppressingAutomaticPassPresentation(): boolean;
    /**
     * If device supports adding payment passes, this method will return YES. Otherwise, NO will be returned.
     * @deprecated Use -[PKPassLibrary isPaymentPassActivationAvailable] instead
     */
    static isPaymentPassActivationAvailable(): boolean;
    /**
     * If this pass library supports activating payment passes, this method will return YES. Otherwise, NO will be returned.
     * @deprecated Use -[PKPassLibrary isSecureElementPassActivationAvailable] instead
     */
    isPaymentPassActivationAvailable(): boolean;
    /** These return only local passes the process is entitled to access. */
    passes(): _NSArray;
    /** @deprecated Use -[PKPassLibrary remoteSecureElementPasses] instead */
    passWithPassTypeIdentifier$serialNumber$(identifier: _NSString, serialNumber: _NSString): _PKPass | null;
    /** @deprecated Use -[PKPassLibrary remoteSecureElementPasses] instead */
    passesWithReaderIdentifier$(readerIdentifier: _NSString): _NSSet;
    /** @deprecated Use -[PKPassLibrary remoteSecureElementPasses] instead */
    passesOfType$(passType: PKPassType): _NSArray;
    /**
     * This returns the remote payment passes from attached devices
     * @deprecated Use -[PKPassLibrary remoteSecureElementPasses] instead
     */
    remotePaymentPasses(): _NSArray;
    removePass$(pass: _PKPass): void;
    /**
     * This returns YES even if the process is not entitled to access the pass in the library. An app like Mail is not entitled to get pass from the library, but it should avoid presenting UI for adding an email attachment pass that is already in the library.
     */
    containsPass$(pass: _PKPass): boolean;
    /**
     * This will fail if a pass with matching identifier and serial number is not already present in the library, or if the process is not entitled to access the pass. To add a completely new pass, use PKAddPassesViewController.
     */
    replacePassWithPass$(pass: _PKPass): boolean;
    /**
     * The user will be prompted to grant permission for the calling process to add passes to the Pass Library. The user may respond by allowing the passes to be added, or requesting to review the passes. The selection will be returned in the completionHandler as a PKPassLibraryAddPassesStatus. If PKPassLibraryPassesPresentReview is returned, you must present a PKAddPassesViewController initialized with the passes so that the user may review and add the passes manually. The completion handler for this method is called on an arbitrary queue - dispatch to the main queue if you're presenting UI.
     */
    addPasses$withCompletionHandler$(passes: _NSArray, completion: ((status: PKPassLibraryAddPassesStatus) => void) | null): void;
    /**
     * Opens the card setup flow (in Wallet on iPhone, Settings on iPad). Use this to direct a user to card setup directly from your app.
     * @deprecated Use -[PKPassLibrary presentSecureElementPass:] instead
     */
    openPaymentSetup(): void;
    /**
     * Presents the pass for use above the current application. The pass must already be in the pass library for this to have effect.
     * @deprecated Use -[PKPassLibrary presentSecureElementPass:] instead
     */
    presentPaymentPass$(pass: _PKPaymentPass): void;
    /**
     * @deprecated Use -[PKPassLibrary canAddSecureElementPassWithPrimaryAccountIdentifier] instead
     */
    presentSecureElementPass$(pass: _PKSecureElementPass): void;
    /**
     * Returns YES if either the current device or an attached device both supports adding payment passes and does not already contain a payment pass with the supplied primary account identifier.
     * @deprecated Use -[PKPassLibrary canAddSecureElementPassWithPrimaryAccountIdentifier] instead
     */
    canAddPaymentPassWithPrimaryAccountIdentifier$(primaryAccountIdentifier: _NSString): boolean;
    canAddSecureElementPassWithPrimaryAccountIdentifier$(primaryAccountIdentifier: _NSString): boolean;
    /**
     * If the library can add Felica passes, this method will return YES. Otherwise, NO will be returned.
     * @deprecated Use activateSecureElementPass:withActivationData:completion: instead
     */
    canAddFelicaPass(): boolean;
    /**
     * These methods may be utilized to activate a payment pass that is provisioned but currently in the inactive state, by providing either a cryptographic OTP, or an activation code.
     * @deprecated Use activateSecureElementPass:withActivationData:completion: instead
     */
    activatePaymentPass$withActivationData$completion$(paymentPass: _PKPaymentPass, activationData: _NSData, completion: ((success: boolean, error: _NSError) => void) | null): void;
    /** @deprecated Use activatePaymentPass:withActivationData:completion: instead */
    activatePaymentPass$withActivationCode$completion$(paymentPass: _PKPaymentPass, activationCode: _NSString, completion: ((success: boolean, error: _NSError) => void) | null): void;
    activateSecureElementPass$withActivationData$completion$(secureElementPass: _PKSecureElementPass, activationData: _NSData, completion: ((success: boolean, error: _NSError) => void) | null): void;
    /** Sign a payload using the pass */
    signData$withSecureElementPass$completion$(signData: _NSData, secureElementPass: _PKSecureElementPass, completion: ((signedData: _NSData, signature: _NSData, error: _NSError) => void) | null): void;
    encryptedServiceProviderDataForSecureElementPass$completion$(secureElementPass: _PKSecureElementPass, completion: ((encryptedServiceProviderData: _NSDictionary, error: _NSError) => void) | null): void;
    /** Returns custom data for a given secure element pass, if supported by that pass */
    serviceProviderDataForSecureElementPass$completion$(secureElementPass: _PKSecureElementPass, completion: ((serviceProviderData: _NSData, error: _NSError) => void) | null): void;
    /** Check TCC authorization for capability */
    authorizationStatusForCapability$(capability: PKPassLibraryCapability): PKPassLibraryAuthorizationStatus;
    /** Request authorization for capability, saved in TCC */
    requestAuthorizationForCapability$completion$(capability: PKPassLibraryCapability, completion: (status: PKPassLibraryAuthorizationStatus) => void): void;
    secureElementPassActivationAvailable(): boolean;
    remoteSecureElementPasses(): _NSArray;
}
