import type { _NSArray } from "../Foundation/NSArray.js";
import type { _NSDate } from "../Foundation/NSDate.js";
import type { _NSObject } from "../Foundation/NSObject.js";
import type { _NSString } from "../Foundation/NSString.js";
import type { _NSURL } from "../Foundation/NSURL.js";
import type { _VSAppleSubscription } from "./VSAppleSubscription.js";
import type { VSOriginatingDeviceCategory } from "./VSOriginatingDeviceCategory.js";
import type { VSUserAccountType } from "./VSUserAccountType.js";
export declare class _VSUserAccount extends _NSObject {
    static alloc(): _VSUserAccount;
    static new(): _VSUserAccount;
    init(): _VSUserAccount;
    /**
     * Initializes a new VSUserAccount with a URL that points to an application JS that can respond to account update requests.
     */
    initWithAccountType$updateURL$(accountType: VSUserAccountType, url: _NSURL | null): _VSUserAccount;
    /**
     * The URL pointing to the application JS that can respond to account update requests, or nil if JS updates are not supported.
     */
    updateURL(): _NSURL | null;
    setUpdateURL$(value: _NSURL | null): void;
    /**
     * Indicates whether or not the update URL must have a certificate trusted by the system, and not a certificate trusted by the user of the device.
     */
    requiresSystemTrust(): boolean;
    setRequiresSystemTrust$(value: boolean): void;
    /**
     * The identifier of the provider known to Apple that provides the account. For use only with TV Provider Authentication integrated apps.
     */
    accountProviderIdentifier(): _NSString | null;
    setAccountProviderIdentifier$(value: _NSString | null): void;
    /**
     * A value opaque to Apple that can be used to uniquely identify the account. When an account update request is made to the application JS, this identifier will be provided in order to help identify the account to be refreshed.
     */
    identifier(): _NSString | null;
    setIdentifier$(value: _NSString | null): void;
    accountType(): VSUserAccountType;
    setAccountType$(value: VSUserAccountType): void;
    /** Indicates if the user has signed out of their account. */
    signedOut(): boolean;
    setSignedOut$(value: boolean): void;
    /**
     * The date in which the billing cycle ends for paid accounts. used as a heuristic to determine when a refresh should occur. If there is no existing billing cycle, this value should be nil.
     */
    subscriptionBillingCycleEndDate(): _NSDate | null;
    setSubscriptionBillingCycleEndDate$(value: _NSDate | null): void;
    /**
     * Identifies a subset of content from your catalog that subscriber can play. Matches tier identifiers that are present in the availability feed.
     */
    tierIdentifiers(): _NSArray | null;
    setTierIdentifiers$(value: _NSArray | null): void;
    /** Identifies the billing group associated with the subscription. */
    billingIdentifier(): _NSString | null;
    setBillingIdentifier$(value: _NSString | null): void;
    /**
     * The authentication token or data used to maintain the authentication state for the account in your application. This will be provided to the application JS during account refresh requests so that billing cycle dates, account validity, or any other data can be fetched for the account. Additionally, when fetching accounts using VSUserAccountManager, if an account is pulled from a different device, and the user is not signed in to the current device, it can be used to authenticate the user seamlessly without requiring username/password. This data is not accessible by Apple.
     */
    authenticationData(): _NSString | null;
    setAuthenticationData$(value: _NSString | null): void;
    /**
     * Indicates whether or not the account was registered on the current device. Accounts pulled using VSUserAccountManager may be from other devices signed in to the same iCloud account.
     */
    fromCurrentDevice(): boolean;
    /** The type of device the VSUserAccount was registered on. */
    deviceCategory(): VSOriginatingDeviceCategory;
    /** The Apple service subscription associated with the user account. */
    appleSubscription(): _VSAppleSubscription | null;
    setAppleSubscription$(value: _VSAppleSubscription | null): void;
}
