import type { _NSArray } from "../Foundation/NSArray.js";
import type { _NSObject } from "../Foundation/NSObject.js";
import type { _NSString } from "../Foundation/NSString.js";
import type { _SKPayment } from "./SKPayment.js";
import type { _SKPaymentQueueDelegate } from "./SKPaymentQueueDelegate.js";
import type { _SKPaymentTransaction } from "./SKPaymentTransaction.js";
import type { _SKPaymentTransactionObserver } from "./SKPaymentTransactionObserver.js";
import type { _SKStorefront } from "./SKStorefront.js";
export declare class _SKPaymentQueue extends _NSObject {
    static alloc(): _SKPaymentQueue;
    static new(): _SKPaymentQueue;
    init(): _SKPaymentQueue;
    /** @deprecated Use AppStore.canMakePayments. */
    static defaultQueue(): _SKPaymentQueue;
    /**
     * NO if this device is not able or allowed to make payments
     * @deprecated Use AppStore.canMakePayments.
     */
    static canMakePayments(): boolean;
    /**
     * Asynchronous. Add a payment to the server queue. The payment is copied to add an SKPaymentTransaction to the transactions array. The same payment can be added multiple times to create multiple transactions.
     * @deprecated Use Product.purchase(confirmIn:options:).
     */
    addPayment$(payment: _SKPayment): void;
    /**
     * Asynchronous. Will add completed transactions for the current user back to the queue to be re-completed. User will be asked to authenticate. Observers will receive 0 or more -paymentQueue:updatedTransactions:, followed by either -paymentQueueRestoreCompletedTransactionsFinished: on success or -paymentQueue:restoreCompletedTransactionsFailedWithError: on failure. In the case of partial success, some transactions may still be delivered.
     * @deprecated Use AppStore.sync().
     */
    restoreCompletedTransactions(): void;
    /** @deprecated Use AppStore.sync(). */
    restoreCompletedTransactionsWithApplicationUsername$(username: _NSString | null): void;
    /**
     * Asynchronous. Remove a finished (i.e. failed or completed) transaction from the queue. Attempting to finish a purchasing transaction will throw an exception.
     * @deprecated Use Transaction.finish().
     */
    finishTransaction$(transaction: _SKPaymentTransaction): void;
    /**
     * Asynchronous. Start the given downloads (SKDownload).
     * @deprecated Hosted content is no longer supported.
     */
    startDownloads$(downloads: _NSArray): void;
    /**
     * Asynchronous. Pause/resume downloads (SKDownload).
     * @deprecated Hosted content is no longer supported.
     */
    pauseDownloads$(downloads: _NSArray): void;
    /** @deprecated Hosted content is no longer supported. */
    resumeDownloads$(downloads: _NSArray): void;
    /**
     * Asynchronous. Cancel downloads (SKDownload)
     * @deprecated Hosted content is no longer supported.
     */
    cancelDownloads$(downloads: _NSArray): void;
    /**
     * Observers are not retained. The transactions array will only be synchronized with the server while the queue has observers. This may require that the user authenticate.
     * @deprecated Use Transaction.updates or PurchaseResult from Product.purchase(confirmIn:options:).
     */
    addTransactionObserver$(observer: _SKPaymentTransactionObserver): void;
    /** @deprecated No longer supported. */
    removeTransactionObserver$(observer: _SKPaymentTransactionObserver): void;
    /**
     * If StoreKit has called your SKPaymentQueueDelegate's "paymentQueueShouldShowPriceConsent:" method and you returned NO, you can use this method to show the price consent UI at a later time that is more appropriate for your app. If there is no pending price consent, this method will do nothing.
     * @deprecated Use Message.messages and Message.display(in:).
     */
    showPriceConsentIfNeeded(): void;
    /**
     * Call this method to have StoreKit present a sheet enabling the user to redeem codes provided by your app.
     * @deprecated Use AppStore.presentOfferCodeRedeemSheet(in:).
     */
    presentCodeRedemptionSheet(): void;
    /** @deprecated No longer supported. */
    delegate(): _SKPaymentQueueDelegate | null;
    setDelegate$(value: _SKPaymentQueueDelegate | null): void;
    /** @deprecated Use Storefront.current. */
    storefront(): _SKStorefront | null;
    /**
     * Array of transactionObservers that are available. Transaction observers are not retained.
     * @deprecated Use Transaction.updates or PurchaseResult from Product.purchase(confirmIn:options:).
     */
    transactionObservers(): _NSArray;
    /**
     * Array of unfinished SKPaymentTransactions. Only valid while the queue has observers. Updated asynchronously.
     * @deprecated Use Transaction.unfinished.
     */
    transactions(): _NSArray;
}
