UNPKG

revenuecat-api

Version:

Type-safe RevenueCat API client using fetch with automatic rate limiting

5,488 lines 222 kB
/**
 * This file was auto-generated by openapi-typescript.
 * Do not make direct changes to the file.
 */

export interface paths {
    "/projects/{project_id}/paywalls": {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        get?: never;
        put?: never;
        /**
         * Create a paywall
         * @description Create a paywall for an offering of the project.
         *      This endpoint requires the following permission(s): <code>project_configuration:offerings:read_write</code>.
         */
        post: operations["create-paywall"];
        delete?: never;
        options?: never;
        head?: never;
        patch?: never;
        trace?: never;
    };
    "/projects/{project_id}/apps/{app_id}/public_api_keys": {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        /**
         * Get a list of the public API keys of an app
         * @description This endpoint requires the following permission(s): <code>project_configuration:apps:read</code>.
         */
        get: operations["list-app-public-api-keys"];
        put?: never;
        post?: never;
        delete?: never;
        options?: never;
        head?: never;
        patch?: never;
        trace?: never;
    };
    "/projects": {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        /**
         * Get a list of projects
         * @description This endpoint requires the following permission(s): <code>project_configuration:projects:read</code>.
         */
        get: operations["list-projects"];
        put?: never;
        post?: never;
        delete?: never;
        options?: never;
        head?: never;
        patch?: never;
        trace?: never;
    };
    "/projects/{project_id}/apps": {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        /**
         * Get a list of apps
         * @description This endpoint requires the following permission(s): <code>project_configuration:apps:read</code>.
         */
        get: operations["list-apps"];
        put?: never;
        /**
         * Create an App
         * @description This endpoint requires the following permission(s): <code>project_configuration:apps:read_write</code>.
         */
        post: operations["create-app"];
        delete?: never;
        options?: never;
        head?: never;
        patch?: never;
        trace?: never;
    };
    "/projects/{project_id}/apps/{app_id}": {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        /**
         * Get an app
         * @description This endpoint requires the following permission(s): <code>project_configuration:apps:read</code>.
         */
        get: operations["get-app"];
        put?: never;
        /**
         * Update an app
         * @description This endpoint requires the following permission(s): <code>project_configuration:apps:read_write</code>.
         */
        post: operations["update-app"];
        /**
         * Delete an app
         * @description This endpoint requires the following permission(s): <code>project_configuration:apps:read_write</code>.
         */
        delete: operations["delete-app"];
        options?: never;
        head?: never;
        patch?: never;
        trace?: never;
    };
    "/projects/{project_id}/apps/{app_id}/store_kit_config": {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        /**
         * Get the StoreKit configuration for an app
         * @description This endpoint requires the following permission(s): <code>project_configuration:apps:read</code>.
         */
        get: operations["get-app-storekit-config"];
        put?: never;
        post?: never;
        delete?: never;
        options?: never;
        head?: never;
        patch?: never;
        trace?: never;
    };
    "/projects/{project_id}/customers": {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        /**
         * Get a list of customers
         * @description This endpoint requires the following permission(s): <code>customer_information:customers:read</code>.
         */
        get: operations["list-customers"];
        put?: never;
        /**
         * Create a customer
         * @description This endpoint requires the following permission(s): <code>customer_information:customers:read_write</code>.
         */
        post: operations["create-customer"];
        delete?: never;
        options?: never;
        head?: never;
        patch?: never;
        trace?: never;
    };
    "/projects/{project_id}/customers/{customer_id}": {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        /**
         * Get a customer
         * @description This endpoint requires the following permission(s): <code>customer_information:customers:read</code>.
         */
        get: operations["get-customer"];
        put?: never;
        post?: never;
        /**
         * Delete a customer
         * @description This endpoint requires the following permission(s): <code>customer_information:customers:read_write</code>.
         */
        delete: operations["delete-customer"];
        options?: never;
        head?: never;
        patch?: never;
        trace?: never;
    };
    "/projects/{project_id}/customers/{customer_id}/actions/transfer": {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        get?: never;
        put?: never;
        /**
         * Transfer customer's subscriptions and one-time purchases to another customer
         * @description This endpoint requires the following permission(s): <code>customer_information:customers:read_write</code>, <code>customer_information:subscriptions:read_write</code>, <code>customer_information:purchases:read_write</code>.
         */
        post: operations["transfer-customer-data"];
        delete?: never;
        options?: never;
        head?: never;
        patch?: never;
        trace?: never;
    };
    "/projects/{project_id}/products/{product_id}": {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        /**
         * Get a product
         * @description This endpoint requires the following permission(s): <code>project_configuration:products:read</code>.
         */
        get: operations["get-product"];
        put?: never;
        post?: never;
        /**
         * Delete a product
         * @description This endpoint requires the following permission(s): <code>project_configuration:products:read_write</code>.
         */
        delete: operations["delete-product"];
        options?: never;
        head?: never;
        patch?: never;
        trace?: never;
    };
    "/projects/{project_id}/products/{product_id}/create_in_store": {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        get?: never;
        put?: never;
        /**
         * Push a product to the store
         * @description Push a product to the App Store.
         *
         *     **For subscription products**: You must provide store information including duration and subscription group details.
         *
         *     **For in-app purchase products** (consumable, non-consumable, non-renewing subscription): No request body is required.
         *      This endpoint requires the following permission(s): <code>project_configuration:products:read_write</code>.
         */
        post: operations["create-product-in-store"];
        delete?: never;
        options?: never;
        head?: never;
        patch?: never;
        trace?: never;
    };
    "/projects/{project_id}/products": {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        /**
         * Get a list of products
         * @description This endpoint requires the following permission(s): <code>project_configuration:products:read</code>.
         */
        get: operations["list-products"];
        put?: never;
        /**
         * Create a product
         * @description <div class="theme-admonition theme-admonition-info alert alert--warning">
         *       <div class="heading">Warning</div>
         *       <div>This endpoint does not allow to create Web Billing products.</div>
         *     This endpoint requires the following permission(s): <code>project_configuration:products:read_write</code>.
         */
        post: operations["create-product"];
        delete?: never;
        options?: never;
        head?: never;
        patch?: never;
        trace?: never;
    };
    "/projects/{project_id}/entitlements/{entitlement_id}": {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        /**
         * Get an entitlement
         * @description This endpoint requires the following permission(s): <code>project_configuration:entitlements:read</code>.
         */
        get: operations["get-entitlement"];
        put?: never;
        /**
         * Update an entitlement
         * @description This endpoint requires the following permission(s): <code>project_configuration:entitlements:read_write</code>.
         */
        post: operations["update-entitlement"];
        /**
         * Delete an entitlement
         * @description This endpoint requires the following permission(s): <code>project_configuration:entitlements:read_write</code>.
         */
        delete: operations["delete-entitlement"];
        options?: never;
        head?: never;
        patch?: never;
        trace?: never;
    };
    "/projects/{project_id}/entitlements": {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        /**
         * Get a list of entitlements
         * @description This endpoint requires the following permission(s): <code>project_configuration:entitlements:read</code>.
         */
        get: operations["list-entitlements"];
        put?: never;
        /**
         * Create an entitlement
         * @description This endpoint requires the following permission(s): <code>project_configuration:entitlements:read_write</code>.
         */
        post: operations["create-entitlement"];
        delete?: never;
        options?: never;
        head?: never;
        patch?: never;
        trace?: never;
    };
    "/projects/{project_id}/entitlements/{entitlement_id}/products": {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        /**
         * Get a list of products attached to a given entitlement
         * @description This endpoint requires the following permission(s): <code>project_configuration:entitlements:read</code>.
         */
        get: operations["get-products-from-entitlement"];
        put?: never;
        post?: never;
        delete?: never;
        options?: never;
        head?: never;
        patch?: never;
        trace?: never;
    };
    "/projects/{project_id}/entitlements/{entitlement_id}/actions/attach_products": {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        get?: never;
        put?: never;
        /**
         * Attach a set of products to an entitlement
         * @description This endpoint requires the following permission(s): <code>project_configuration:entitlements:read_write</code>.
         */
        post: operations["attach-products-to-entitlement"];
        delete?: never;
        options?: never;
        head?: never;
        patch?: never;
        trace?: never;
    };
    "/projects/{project_id}/entitlements/{entitlement_id}/actions/detach_products": {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        get?: never;
        put?: never;
        /**
         * Detach a set of product from an entitlement
         * @description This endpoint requires the following permission(s): <code>project_configuration:entitlements:read_write</code>.
         */
        post: operations["detach-products-from-entitlement"];
        delete?: never;
        options?: never;
        head?: never;
        patch?: never;
        trace?: never;
    };
    "/projects/{project_id}/offerings/{offering_id}": {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        /**
         * Get an offering
         * @description This endpoint requires the following permission(s): <code>project_configuration:offerings:read</code>.
         */
        get: operations["get-offering"];
        put?: never;
        /**
         * Update an offering
         * @description This endpoint requires the following permission(s): <code>project_configuration:offerings:read_write</code>.
         */
        post: operations["update-offering"];
        /**
         * Delete an offering and its attached packages
         * @description This endpoint requires the following permission(s): <code>project_configuration:offerings:read_write</code>.
         */
        delete: operations["delete-offering"];
        options?: never;
        head?: never;
        patch?: never;
        trace?: never;
    };
    "/projects/{project_id}/offerings": {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        /**
         * Get a list of offerings
         * @description This endpoint requires the following permission(s): <code>project_configuration:offerings:read</code>.
         */
        get: operations["list-offerings"];
        put?: never;
        /**
         * Create an offering
         * @description This endpoint requires the following permission(s): <code>project_configuration:offerings:read_write</code>.
         */
        post: operations["create-offering"];
        delete?: never;
        options?: never;
        head?: never;
        patch?: never;
        trace?: never;
    };
    "/projects/{project_id}/packages/{package_id}": {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        /**
         * Get a package
         * @description This endpoint requires the following permission(s): <code>project_configuration:packages:read</code>.
         */
        get: operations["get-package"];
        put?: never;
        /**
         * Update a package
         * @description This endpoint requires the following permission(s): <code>project_configuration:packages:read_write</code>.
         */
        post: operations["update-package"];
        /**
         * Delete a package
         * @description This endpoint requires the following permission(s): <code>project_configuration:packages:read_write</code>.
         */
        delete: operations["delete-package-from-offering"];
        options?: never;
        head?: never;
        patch?: never;
        trace?: never;
    };
    "/projects/{project_id}/offerings/{offering_id}/packages": {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        /**
         * Get a list of packages in an offering
         * @description This endpoint requires the following permission(s): <code>project_configuration:packages:read</code>.
         */
        get: operations["list-packages"];
        put?: never;
        /**
         * Create a package
         * @description This endpoint requires the following permission(s): <code>project_configuration:packages:read_write</code>.
         */
        post: operations["create-packages"];
        delete?: never;
        options?: never;
        head?: never;
        patch?: never;
        trace?: never;
    };
    "/projects/{project_id}/packages/{package_id}/products": {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        /**
         * Get a list of products attached to a given package of an offering
         * @description This endpoint requires the following permission(s): <code>project_configuration:packages:read</code>.
         */
        get: operations["get-products-from-package"];
        put?: never;
        post?: never;
        delete?: never;
        options?: never;
        head?: never;
        patch?: never;
        trace?: never;
    };
    "/projects/{project_id}/packages/{package_id}/actions/attach_products": {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        get?: never;
        put?: never;
        /**
         * Attach a set of products to a package
         * @description This endpoint requires the following permission(s): <code>project_configuration:packages:read_write</code>.
         */
        post: operations["attach-products-to-package"];
        delete?: never;
        options?: never;
        head?: never;
        patch?: never;
        trace?: never;
    };
    "/projects/{project_id}/packages/{package_id}/actions/detach_products": {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        get?: never;
        put?: never;
        /**
         * Detach a set of products from a package
         * @description This endpoint requires the following permission(s): <code>project_configuration:packages:read_write</code>.
         */
        post: operations["detach-products-from-package"];
        delete?: never;
        options?: never;
        head?: never;
        patch?: never;
        trace?: never;
    };
    "/projects/{project_id}/subscriptions/{subscription_id}": {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        /**
         * Get a subscription
         * @description This endpoint requires the following permission(s): <code>customer_information:subscriptions:read</code>.
         */
        get: operations["get-subscription"];
        put?: never;
        post?: never;
        delete?: never;
        options?: never;
        head?: never;
        patch?: never;
        trace?: never;
    };
    "/projects/{project_id}/subscriptions/{subscription_id}/transactions": {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        /**
         * Get a Play Store subscription's transactions
         * @description This endpoint requires the following permission(s): <code>customer_information:subscriptions:read</code>.
         */
        get: operations["get-play-store-subscription-transactions"];
        put?: never;
        post?: never;
        delete?: never;
        options?: never;
        head?: never;
        patch?: never;
        trace?: never;
    };
    "/projects/{project_id}/subscriptions/{subscription_id}/transactions/{transaction_id}/actions/refund": {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        get?: never;
        put?: never;
        /**
         * Refund a Play Store subscription's transaction
         * @description Refund a Play Store subscription's transaction. This endpoint does not cancel the subscription or revoke access to it.
         *      This endpoint requires the following permission(s): <code>customer_information:subscriptions:read_write</code>.
         */
        post: operations["refund-play-store-subscription-transaction"];
        delete?: never;
        options?: never;
        head?: never;
        patch?: never;
        trace?: never;
    };
    "/projects/{project_id}/subscriptions/{subscription_id}/entitlements": {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        /**
         * Get a list of entitlements associated with a subscription
         * @description Lists all Entitlements granted by a Subscription.
         *      This endpoint requires the following permission(s): <code>customer_information:subscriptions:read</code>.
         */
        get: operations["list-subscription-entitlements"];
        put?: never;
        post?: never;
        delete?: never;
        options?: never;
        head?: never;
        patch?: never;
        trace?: never;
    };
    "/projects/{project_id}/subscriptions/{subscription_id}/actions/cancel": {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        get?: never;
        put?: never;
        /**
         * Cancel an active Web Billing subscription
         * @description Cancel an active Web Billing subscription. The customer will lose access to the associated entitlements at the end of the current period.
         *      This endpoint requires the following permission(s): <code>customer_information:subscriptions:read_write</code>.
         */
        post: operations["cancel-subscription"];
        delete?: never;
        options?: never;
        head?: never;
        patch?: never;
        trace?: never;
    };
    "/projects/{project_id}/subscriptions/{subscription_id}/actions/refund": {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        get?: never;
        put?: never;
        /**
         * Refund an active Web Billing subscription
         * @description Cancel a Web Billing subscription by refunding the most recent payment. The customer will immediately lose access to the associated entitlements.
         *      This endpoint requires the following permission(s): <code>customer_information:subscriptions:read_write</code>.
         */
        post: operations["refund-subscription"];
        delete?: never;
        options?: never;
        head?: never;
        patch?: never;
        trace?: never;
    };
    "/projects/{project_id}/subscriptions/{subscription_id}/authenticated_management_url": {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        /**
         * Get an authenticated Web Billing customer portal URL
         * @description Get a secure, single-use URL that allows customers to access their Web Billing customer portal.
         *      This endpoint requires the following permission(s): <code>customer_information:subscriptions:read</code>.
         */
        get: operations["get-authorized-subscription-management-url"];
        put?: never;
        post?: never;
        delete?: never;
        options?: never;
        head?: never;
        patch?: never;
        trace?: never;
    };
    "/projects/{project_id}/customers/{customer_id}/subscriptions": {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        /**
         * Get a list of subscriptions associated with a customer
         * @description This endpoint requires the following permission(s): <code>customer_information:subscriptions:read</code>.
         */
        get: operations["list-subscriptions"];
        put?: never;
        post?: never;
        delete?: never;
        options?: never;
        head?: never;
        patch?: never;
        trace?: never;
    };
    "/projects/{project_id}/purchases/{purchase_id}": {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        /**
         * Get a purchase
         * @description This endpoint requires the following permission(s): <code>customer_information:purchases:read</code>.
         */
        get: operations["get-purchase"];
        put?: never;
        post?: never;
        delete?: never;
        options?: never;
        head?: never;
        patch?: never;
        trace?: never;
    };
    "/projects/{project_id}/purchases/{purchase_id}/entitlements": {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        /**
         * Get a list of entitlements associated with a purchase
         * @description Lists all Entitlements granted by a Purchase.
         *      This endpoint requires the following permission(s): <code>customer_information:purchases:read</code>.
         */
        get: operations["list-purchase-entitlements"];
        put?: never;
        post?: never;
        delete?: never;
        options?: never;
        head?: never;
        patch?: never;
        trace?: never;
    };
    "/projects/{project_id}/purchases/{purchase_id}/actions/refund": {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        get?: never;
        put?: never;
        /**
         * Refund a Web Billing purchase
         * @description Refund a Web Billing purchase and revoke access to associated granted entitlements.
         *      This endpoint requires the following permission(s): <code>customer_information:purchases:read_write</code>.
         */
        post: operations["refund-purchase"];
        delete?: never;
        options?: never;
        head?: never;
        patch?: never;
        trace?: never;
    };
    "/projects/{project_id}/customers/{customer_id}/purchases": {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        /**
         * Get a list of purchases associated with a customer
         * @description This endpoint requires the following permission(s): <code>customer_information:purchases:read</code>.
         */
        get: operations["list-purchases"];
        put?: never;
        post?: never;
        delete?: never;
        options?: never;
        head?: never;
        patch?: never;
        trace?: never;
    };
    "/projects/{project_id}/customers/{customer_id}/active_entitlements": {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        /**
         * Get a list of customer's active entitlements
         * @description This endpoint requires the following permission(s): <code>customer_information:customers:read</code>.
         */
        get: operations["list-customer-active-entitlements"];
        put?: never;
        post?: never;
        delete?: never;
        options?: never;
        head?: never;
        patch?: never;
        trace?: never;
    };
    "/projects/{project_id}/customers/{customer_id}/aliases": {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        /**
         * Get a list of the customer's aliases
         * @description This endpoint requires the following permission(s): <code>customer_information:customers:read</code>.
         */
        get: operations["list-customer-aliases"];
        put?: never;
        post?: never;
        delete?: never;
        options?: never;
        head?: never;
        patch?: never;
        trace?: never;
    };
    "/projects/{project_id}/customers/{customer_id}/virtual_currencies": {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        /**
         * Get a list of customer's virtual currencies balances
         * @description This endpoint requires the following permission(s): <code>customer_information:purchases:read</code>.
         */
        get: operations["list-virtual-currencies-balances"];
        put?: never;
        post?: never;
        delete?: never;
        options?: never;
        head?: never;
        patch?: never;
        trace?: never;
    };
    "/projects/{project_id}/customers/{customer_id}/virtual_currencies/transactions": {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        get?: never;
        put?: never;
        /**
         * Create a virtual currencies transaction
         * @description This endpoint requires the following permission(s): <code>customer_information:purchases:read_write</code>.
         */
        post: operations["create-virtual-currencies-transaction"];
        delete?: never;
        options?: never;
        head?: never;
        patch?: never;
        trace?: never;
    };
    "/projects/{project_id}/customers/{customer_id}/virtual_currencies/update_balance": {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        get?: never;
        put?: never;
        /**
         * Update a virtual currencies balance without creating a transaction
         * @description This endpoint requires the following permission(s): <code>customer_information:purchases:read_write</code>.
         */
        post: operations["update-virtual-currencies-balance"];
        delete?: never;
        options?: never;
        head?: never;
        patch?: never;
        trace?: never;
    };
    "/projects/{project_id}/customers/{customer_id}/attributes": {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        /**
         * Get a list of the customer's attributes
         * @description This endpoint requires the following permission(s): <code>customer_information:customers:read</code>.
         */
        get: operations["list-customer-attributes"];
        put?: never;
        /**
         * Set a customer's attributes
         * @description This endpoint requires the following permission(s): <code>customer_information:customers:read_write</code>.
         */
        post: operations["set-customer-attributes"];
        delete?: never;
        options?: never;
        head?: never;
        patch?: never;
        trace?: never;
    };
    "/projects/{project_id}/customers/{customer_id}/invoices": {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        /**
         * Get a list of the customer's invoices
         * @description This endpoint requires the following permission(s): <code>customer_information:invoices:read</code>.
         */
        get: operations["list-customer-invoices"];
        put?: never;
        post?: never;
        delete?: never;
        options?: never;
        head?: never;
        patch?: never;
        trace?: never;
    };
    "/projects/{project_id}/customers/{customer_id}/invoices/{invoice_id}/file": {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        /**
         * Get an invoice
         * @description This endpoint requires the following permission(s): <code>customer_information:invoices:read</code>.
         */
        get: operations["get-invoice"];
        put?: never;
        post?: never;
        delete?: never;
        options?: never;
        head?: never;
        patch?: never;
        trace?: never;
    };
    "/projects/{project_id}/metrics/overview": {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        /**
         * Get overview metrics for a project
         * @description This endpoint requires the following permission(s): <code>charts_metrics:overview:read</code>.
         */
        get: operations["get-overview-metrics"];
        put?: never;
        post?: never;
        delete?: never;
        options?: never;
        head?: never;
        patch?: never;
        trace?: never;
    };
    "/projects/{project_id}/subscriptions": {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        /**
         * Search subscriptions by store subscription identifier
         * @description Search for a subscription by any of its associated `store_subscription_identifier` values, whether from a past or current subscription period.
         *
         *     For example, this may include the `transactionId` of any transaction in an Apple App Store subscription, or any order ID from a Google Play Store subscription.
         *      This endpoint requires the following permission(s): <code>customer_information:subscriptions:read</code>.
         */
        get: operations["search-subscriptions"];
        put?: never;
        post?: never;
        delete?: never;
        options?: never;
        head?: never;
        patch?: never;
        trace?: never;
    };
    "/projects/{project_id}/purchases": {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        /**
         * Search one-time purchases by store purchase identifier
         * @description Search for a one-time purchases by any of its associated `store_purchase_identifier` values.
         *
         *     For example, this may include the `transactionId` of any transaction in an Apple App Store purchase, or any order ID from a Google Play Store purchase.
         *      This endpoint requires the following permission(s): <code>customer_information:purchases:read</code>.
         */
        get: operations["search-purchases"];
        put?: never;
        post?: never;
        delete?: never;
        options?: never;
        head?: never;
        patch?: never;
        trace?: never;
    };
}
export type webhooks = Record<string, never>;
export interface components {
    schemas: {
        AmazonApp: {
            /** @description Amazon type details */
            amazon?: {
                /** @description The package name of the app */
                package_name: string;
            };
        };
        AmazonAppCreate: {
            /** @description Amazon type details. Should only be used when type is amazon. */
            amazon?: {
                /** @description The package name of the app */
                package_name: string;
                /** @description Your Amazon Developer Identity Shared Key */
                shared_secret?: string;
            };
        };
        App: {
            [key: string]: unknown;
        } & ({
            /**
             * @description String representing the object's type. Objects of the same type share the same value.
             * @enum {string}
             */
            object: "app";
            /**
             * @description The id of the app
             * @example app1a2b3c4
             */
            id: string;
            /** @description The name of the app */
            name: string;
            /**
             * Format: int64
             * @description The date when the app was created in ms since epoch
             * @example 1658399423658
             */
            created_at: number;
            /**
             * @description The platform of the app
             * @example app_store
             * @enum {string}
             */
            type: "amazon" | "app_store" | "mac_app_store" | "play_store" | "stripe" | "rc_billing" | "roku" | "paddle";
            /**
             * @description The id of the project
             * @example proj1a2b3c4
             */
            project_id: string;
        } & components["schemas"]["AmazonApp"] & components["schemas"]["AppStoreApp"] & components["schemas"]["MacAppStoreApp"] & components["schemas"]["PlayStoreApp"] & components["schemas"]["StripeApp"] & components["schemas"]["RCBillingApp"] & components["schemas"]["RokuApp"] & components["schemas"]["PaddleApp"]);
        AppCreate: {
            /** @description The name of the app */
            name: string;
            /**
             * @description The platform of the app.
             *     Mac App Store is disabled by default. See [Legacy Mac Apps](https://www.revenuecat.com/docs/legacy-mac-apps) for more details.
             * @enum {string}
             */
            type: "amazon" | "app_store" | "mac_app_store" | "play_store" | "stripe" | "rc_billing" | "roku" | "paddle";
        } & components["schemas"]["AmazonAppCreate"] & components["schemas"]["AppStoreAppCreate"] & components["schemas"]["MacAppStoreAppCreate"] & components["schemas"]["PlayStoreAppCreate"] & components["schemas"]["StripeAppCreate"] & components["schemas"]["RCBillingAppCreate"] & components["schemas"]["RokuAppCreate"] & components["schemas"]["PaddleAppCreate"];
        AppStoreApp: {
            /** @description App Store type details */
            app_store?: {
                /** @description The bundle ID of the app */
                bundle_id: string;
            };
        };
        AppStoreAppCreate: {
            /** @description App Store type details. Should only be used when type is app_store. */
            app_store?: {
                /** @description The bundle ID of the app */
                bundle_id: string;
                /** @description The shared secret of the app */
                shared_secret?: string;
                /**
                 * @description PKCS /#8 In App Key downloaded from App Store Connect in PEM format. Copy the contents
                 *     of the file in this field. See instructions on how to get it in:
                 *     https://www.revenuecat.com/docs/in-app-purchase-key-configuration
                 */
                subscription_private_key?: string;
                /** @description In App Key id. The ID of the downloaded in app key. You can get it from App Store Connect */
                subscription_key_id?: string;
                /** @description The key Issuer id. See instructions on how to obtain this in: https://www.revenuecat.com/docs/in-app-purchase-key-configuration#3-providing-the-issuer-id-to-revenuecat */
                subscription_key_issuer?: string;
            };
        };
        AuthenticatedManagementUrl: {
            /**
             * @description String representing the object's type. Objects of the same type share the same value.
             * @enum {string}
             */
            object: "authenticated_management_url";
            /**
             * @description A secure, single-use URL that provides temporary access to the customer portal for a specific customer. This URL can only be used once and expires after use.
             * @example https://billing.revenuecat.com/app1a2b3c4/sub1ab2c3d4e5?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9
             */
            management_url: string;
        };
        /**
         * @description The country that the object is associated with, in ISO alpha 2 code
         * @example US
         * @enum {string|null}
         */
        Country: string | null;
        /** @description In-app purchase products do not require any additional information */
        CreateAppStoreConnectInAppPurchaseInput: Record<string, never>;
        CreateAppStoreConnectSubscriptionInput: {
            /**
             * @description The subscription duration period
             * @enum {string}
             */
            duration: "ONE_WEEK" | "ONE_MONTH" | "TWO_MONTHS" | "THREE_MONTHS" | "SIX_MONTHS" | "ONE_YEAR";
            /** @description The name of the subscription group */
            subscription_group_name: string;
            /** @description The ID of the subscription group (optional) */
            subscription_group_id?: string | null;
        };
        /**
         * @description ISO 4217 currency code
         * @example USD
         * @enum {string}
         */
        Currency: string;
        Customer: {
            /**
             * @description String representing the object's type. Objects of the same type share the same value.
             * @enum {string}
             */
            object: "customer";
            /** @example 19b8de26-77c1-49f1-aa18-019a391603e2 */
            id: string;
            /**
             * @description ID of the project to which the customer belongs
             * @example proj1ab2c3d4
             */
            project_id: string;
            /**
             * Format: int64
             * @description The first time the customer was seen
             * @example 1658399423658
             */
            first_seen_at: number;
            /**
             * Format: int64
             * @description The last time the customer was seen
             * @example 1658399423658
             */
            last_seen_at: number | null;
            /**
             * @description The last app version the customer was seen on
             * @example 1.0.0
             */
            last_seen_app_version: string | null;
            /**
             * @description The last country the customer was seen in
             * @example US
             */
            last_seen_country: string | null;
            /**
             * @description The last platform the customer was seen on
             * @example android
             */
            last_seen_platform: string | null;
            /**
             * @description The last platform version the customer was seen on
             * @example 35
             */
            last_seen_platform_version: string | null;
            active_entitlements?: (Record<string, never> | null) & components["schemas"]["ListCustomerActiveEntitlements"];
            /** @description The experiment enrollment object */
            experiment?: components["schemas"]["ExperimentEnrollment"];
            attributes?: (Record<string, never> | null) & components["schemas"]["ListCustomerAttributes"];
        };
        CustomerAlias: {
            /**
             * @description String representing the object's type. Objects of the same type share the same value.
             * @enum {string}
             */
            object: "customer.alias";
            /** @example 19b8de26-77c1-49f1-aa18-019a391603e2 */
            id: string;
            /**
             * Format: int64
             * @description The time when the alias was created
             * @example 1658399423658
             */
            created_at: number;
        };
        CustomerAttribute: {
            /**
             * @description String representing the object's type. Objects of the same type share the same value.
             * @enum {string}
             */
            object: "customer.attribute";
            /**
             * @description The name of the attribute. Reserved attributes are prefixed with a `$`.
             * @example $email
             */
            name: string;
            /**
             * @description The value of the attribute.
             * @example garfield@revenuecat.com
             */
            value: string | null;
            /**
             * Format: int64
             * @description The time when the attribute was last updated.
             * @example 1658399423658
             */
            updated_at: number;
        };
        /** @example opt_into_marketing */
        CustomerAttributeCustomName: string;
        /**
         * @example $email
         * @enum {string}
         */
        CustomerAttributeReservedName: string;
        CustomerEntitlement: {
            /**
             * @description String representing the object's type. Objects of the same type share the same value.
             * @enum {string}
             */
            object: "customer.active_entitlement";
            /**
             * @description ID of the entitlement granted to the customer
             * @example entla1b2c3d4e5
             */
            entitlement_id: string;
            /**
             * Format: int64
             * @description The date after which the access to the entitlement expires in ms since epoch
             * @example 1658399423658
             */
            expires_at: number | null;
        };
        DeletedObject: {
            /**
             * @description The type of the deleted object
             * @enum {string}
             */
            object: "app" | "customer" | "entitlement" | "offering" | "package" | "product";
            /** @description The ID of the deleted object */
            id: string;
            /**
             * Format: int64
             * @description The date when the object was deleted in ms since epoch
             * @example 1658399423658
             */
            deleted_at: number;
        };
        /** @enum {string} */
        EligibilityCriteria: "all" | "google_sdk_lt_6" | "google_sdk_ge_6";
        Entitlement: {
            /**
             * @description String representing the object's type. Objects of the same type share the same value.
             * @enum {string}
             */
            object: "entitlement";
            /**
             * @description ID of the project to which the entitlement belongs
             * @example proj1ab2c3d4
             */
            project_id: string;
            /**
             * @description The id of the entitlement
             * @example entla1b2c3d4e5
             */
            id: string;
            /**
             * @description A custom identifier of the entitlement
             * @example premium
             */
            lookup_key: string;
            /**
             * @description The display name of the entitlement
             * @example Premium
             */
            display_name: string;
            /**
             * Format: int64
             * @description The date when the entitlement was created in ms since epoch
             * @example 1658399423658
             */
            created_at: number;
            /**
             * ProductsList
             * @description List of products attached to the entitlement
             */
            products?: {
                /**
                 * @description String representing the object's type. Objects of the same type share the same value. Always has the value `list`.
                 * @enum {string}
                 */
                object: "list";
                /** @description Details about each object. */
                items: components["schemas"]["Product"][];
                /**
                 * @description URL to access the next page of the Entitlement's products. If not present / null, there is no next page
                 * @example /v2/projects/proj1ab2c3d4/entitlements/entle1a2b3c4d5/products?starting_after=prodeab21dac
                 */
                next_page: string | null;
                /**
                 * @description The URL where this list can be accessed.
                 * @example /v2/projects/proj1ab2c3d4/entitlements/entle1a2b3c4d5/products
                 */
                url: string;
            } | null;
        };
        /**
         * @description The store environment
         * @example production
         * @enum {string}
         */
        Environment: string;
        Error: {
            /**
             * @description String representing the object's type. Objects of the same type share the same value.
             * @example error
             * @enum {string}
             */
            object: "error";
            /**
             * @description The error type
             * @example parameter_error
             * @enum {string}
             */
            type: "parameter_error" | "resource_already_exists" | "resource_missing" | "idempotency_error" | "rate_limit_error" | "authentication_error" | "authorization_error" | "store_error" | "server_error" | "resource_locked_error" | "unprocessable_entity_error" | "invalid_request";
            /**
             * @description If the error is parameter-specific, the parameter related to the error
             * @example customer_id
             */
            param?: string | null;
            /**
             * @description A URL to more information about the error reported
             * @example https://errors.rev.cat/parameter-error
             */
            doc_url?: string;
            /**
             * @description A message describing the reason of the error
             * @example id shouldn't be longer than 1,500 characters
             */
            message: string;
            /**
             * @description Indicates if the error is retryable or not
             * @example false
             */
            retryable: boolean;
            /**
             * @description The ms the client should wait before retrying the request. Only present for retryable errors.
             * @example null
             */
            backoff_ms?: number | null;
        };
        ExperimentEnrollment: {
            /**
             * @description String representing the object's type. Objects of the same type share the same value.
             * @enum {string}
             */
            object: "experiment_enrollment";
            id: string;
            name: string;
            /**
             * @description The variant of the Experiment that the Customer was or is assigned to, where 'a' represents the Control, and 'b' represents the Treatment.
             * @example a
             */
            variant: string;
        } | null;
        Invoice: {
            /**
             * @description String representing the object's type. Objects of the same type share the same value.
             * @enum {string}
             */
            object: "invoice";
            /**
             * @description The id of the invoice
             * @example rcbin1a2b3c4d5e
             */
            id: string;
            total_amount: components["schemas"]["MonetaryAmount"];
            /**
             * InvoiceLiteItemList
             * @description List of line items that are part of the invoice. Each line item represents a product that was purchased.
             */
            line_items: components["schemas"]["InvoiceLineItem"][];
            /**
             * Format: int64
             * @description The date when the invoiced was issued in ms since epoch
             * @example 1658399423658
             */
            issued_at: number;
            /**
             * Format: int64
             * @description The date when the invoiced was paid in ms since epoch
             * @example 1658399423658
             */
            paid_at: number | null;
            /**
             * @description URL to download the invoice pdf
             * @example https://api.revenuecat.com/v2/projects/proj1ab2c3d4/customers/cust1ab2c3d4/invoices/inv1ab2c3d4/file
             */
            invoice_url: string | null;
        };
        InvoiceLineItem: {
            /**
             * @description String representing the object's type. Objects of the same type share the same value.
             * @enum {string}
             */
            object: "invoice.line_item";
            /**
             * @description The product identifier
             * @example rc_1w_199
             */
            product_identifier: string;
            /**
             * @description The display name of the product
             * @example Premium Monthly 2023
             */
            product_display_name: string | null;
            /**
             * @description The duration of the subscription in ISO-8601 standard
             * @example P1M
             */
            product_duration: string | null;
            /**
             * @description Total purchased items
             * @example 1
             */
            quantity: number;
            unit_amount: components["schemas"]["MonetaryAmount"];
        };
        /** AppList */
        ListApps: {
            /**
             * @description String representing the object's type. Objects of the same type share the same value. Always has the value `list`.
             * @enum {string}
             */
            object: "list";
            /** @description Details about each object. */
            items: components["schemas"]["App"][];
            /**
             * @description URL to access the next page of the project's apps. If not present / null, there is no next page
             * @example /v2/projects/projec1a2b3c4d/apps?starting_after=app1a2b3c4d
             */
            next_page: string | null;
            /**
             * @description The URL where this list can be accessed.
             * @example /v2/projects/projec1a2b3c4d/apps
             */
            url: string;
        };
        /**
         * CustomerActiveEntitlementList
         * @description List of the entitlements currently active for the customer. This property is only available in the "Get a customer" endpoint.
         */
        ListCustomerActiveEntitlements: {
            /**
             * @description String representing the object's type. Objects of the same type share the same value. Always has the value `list`.
             * @enum {string}
             */
            object: "list";
            /** @description Details about each object. */
            items: components["schemas"]["CustomerEntitlement"][];
            /**
             * @description URL to access the next page of the customer's active entitlements. If not present / null, there is no next page
             * @example /v2/projects/proj1ab2c3d4/customers/19b8de26-77c1-49f1-aa18-019a391603e2/active_entitlements?starting_after=entlab21dac
             */
            next_page: string | null;
            /**
             * @description The URL where this list can be accessed.
             * @example /v2/projects/proj1ab2c3d4/customers/19b8de26-77c1-49f1-aa18-019a391603e2/active_entitlements
             */
            url: string;
        };
        /** CustomerAliasList */
        ListCustomerAliases: {
            /**
             * @description String representing the object's type. Objects of the same type share the same value. Always has the value `list`.
             * @enum {string}
             */
            object: "list";
            /** @description Details about each object. */
            items: components["schemas"]["CustomerAlias"][];
            /**
             * @description URL to access the next page of the customer's aliases. If not present / null, there is no next page
             * @example /v2/projects/proj1ab2c3d4/customers/19b8de26-77c1-49f1-aa18-019a391603e2/aliases?starting_after=9fjeja8fjed
             */
            next_page: string | null;
            /**
             * @description The URL where this list can be accessed.
             * @example /v2/projects/proj1ab2c3d4/customers/19b8de26-77c1-49f1-aa18-019a391603e2/aliases
             */
            url: string;
        };
        /** CustomerAttributeList */
        ListCustomerAttributes: {
            /**
             * @description String representing the object's type. Objects of the same type share the same value. Always has the value `list`.
             * @enum {string}
             */
            object: "list";
            /** @description Details about each object. */
            items: components["schemas"]["CustomerAttribute"][];
            /**
             * @description URL to access the next page of the customer's aliases. If not present / null, there is no next page
             * @example /v2/projects/proj1ab2c3d4/customers/19b8de26-77c1-49f1-aa18-019a391603e2/attributes?starting_after=myCustomAttribute
             */
            next_page: string | null;
            /**
             * @description The URL where this list can be accessed.
             * @example /v2/projects/proj1ab2c3d4/customers/19b8de26-77c1-49f1-aa18-019a391603e2/attributes
             */
            url: string;
        };
        /** CustomerInvoicesList */
        ListCustomerInvoices: {
            /**
             * @description String representing the object's type. Objects of the same type share the same value. Always has the value `list`.
             * @enum {string}
             */
            object: "list";
            /** @description Details about each object. */
            items: components["schemas"]["Invoice"][];
            /**
             * @description URL to access the next page of the customer's invoice. If not present / null, there is no next page
             * @example /v2/projects/proj1ab2c3d4/customers/19b8de26-77c1-49f1-aa18-019a391603e2/invoices?starting_after=rcbin1a2b3c4d5e
             */
            next_page: string | null;
            /**
             * @description The URL where this list can be accessed.
             * @example /v2/projects/proj1ab2c3d4/customers/19b8de26-77c1-49f1-aa18-019a391603e2/invoices
             */
            url: string;
        };
        /** CustomerList */
        ListCustomers: {
            /**
             * @description String representing the object's type. Objects of the same type share the same value. Always has the value `list`.
             * @enum {string}
             */
            object: "list";
            /** @description Details about each object. */
            items: components["schemas"]["Customer"][];
            /**
             * @description URL to access the next page of the project's customers. If not present / null, there is no next page
             * @example /v2/projects/projec1a2b3c4d/customers?starting_after=223xx1100
             */
            next_page: string | null;
            /**
             * @description The URL where this list can be accessed.
             * @example /v2/projects/projec1a2b3c4d/customers
             */
            url: string;
        };
        /** EntitlementList */
        ListEntitlements: {
            /**
             * @description String representing the object's type. Objects of the same type share the same value. Always has the value `list`.
             * @enum {string}
             */
            object: "list";
            /** @description Details about each object. */
            items: components["schemas"]["Entitlement"][];
            /**
             * @description URL to access the next page of the project's entitlements. If not present / null, there is no next page
             * @example /v2/projects/proj1ab2c3d4/entitlements?starting_after=entlab21dac
             */
            next_page: string | null;
            /**
             * @description The URL where this list can be accessed.
             * @example /v2/projects/proj1ab2c3d4/entitlements
             */
            url: string;
        };
        /** OfferingList */
        ListOfferings: {
            /**
             * @description String representing the object's type. Objects of the same type share the same value. Always has the value `list`.
             * @enum {string}
             */
            object: "list";
            /** @description Details about each object. */
            items: components["schemas"]["Offering"][];
            /**
             * @description URL to access the next page of the project's offerings. If not present / null, there is no next page
             * @example /v2/projects/proj1ab2c3d4/offerings?starting_after=ofrngeab21da
             */
            next_page: string | null;
            /**
             * @description The URL where this list can be accessed.
             * @example /v2/projects/proj1ab2c3d4/offerings
             */
            url: string;
        };
        /** PackageList */
        ListPackages: {
            /**
             * @description String representing the object's type. Objects of the same type share the same value. Always has the value `list`.
             * @enum {string}
             */
            object: "list";
            /** @description Details about each object. */
            items: components["schemas"]["Package"][];
            /**
             * @description URL to access the next page of the project's packages. If not present / null, there is no next page
             * @example /v2/projects/proj1ab2c3d4/offerings/ofrnge1a2b3c4d5/packages?starting_after=pkgeab21dac
             */
            next_page: string | null;
            /**
             * @description The URL where this list can be accessed.
             * @example /v2/projects/proj1ab2c3d4/offerings/ofrnge1a2b3c4d5/packages
             */
            url: string;
        };
        /** ProductList */
        ListProducts: {
            /**
             * @description String representing the object's type. Objects of the same type share the same value. Always has the value `list`.
             * @enum {string}
             */
            object: "list";
            /** @description Details about each object. */
            items: components["schemas"]["Product"][];
            /**
             * @description URL to access the next page of the project's products. If not present / null, there is no next page
             * @example /v2/projects/proj1ab2c3d4/products?starting_after=prodab21dac
             */
            next_page: string | null;
            /**
             * @description The URL where this list can be accessed.
             * @example /v2/projects/proj1ab2c3d4/products
             */
            url: string;
        };
        /** ProjectList */
        ListProjects: {
            /**
             * @description String representing the object's type. Objects of the same type share the same value. Always has the value `list`.
             * @enum {string}
             */
            object: "list";
            /** @description Details about each object. */
            items: components["schemas"]["Project"][];
            /**
             * @description URL to access the next page of the projects. If not present / null, there is no next page
             * @example /v2/projects?starting_after=projab21dac
             */
            next_page: string | null;
            /**
             * @description The URL where this list can be accessed.
             * @example /v2/projects
             */
            url: string;
        };
        /** PublicApiKeyList */
        ListPublicApiKeys: {
            /**
             * @description String representing the object's type. Objects of the same type share the same value. Always has the value `list`.
             * @enum {string}
             */
            object: "list";
            /** @description Details about each object. */
            items: components["schemas"]["PublicApiKey"][];
            /**
             * @description URL to access the next page of the app's public API keys. If not present / null, there is no next page
             * @example /v2/projects/projec1a2b3c4d/apps/app1a2b3c4d/public_api_keys?starting_after=pub1a2b3c4d
             */
            next_page: string | null;
            /**
             * @description The URL where this list can be accessed.
             * @example /v2/projects/projec1a2b3c4d/apps/app1a2b3c4d/public_api_keys
             */
            url: string;
        };
        /** PurchaseList */
        ListPurchases: {
            /**
             * @description String representing the object's type. Objects of the same type share the same value. Always has the value `list`.
             * @enum {string}
             */
            object: "list";
            /** @description Details about each object. */
            items: components["schemas"]["Purchase"][];
            /**
             * @description URL to access the next page of the customer's purchases. If not present / null, there is no next page
             * @example /v2/projects/proj1ab2c3d4/customers/19b8de26-77c1-49f1-aa18-019a391603e2/purchases?starting_after=purc1a2b3c4d5e
             */
            next_page: string | null;
            /**
             * @description The URL where this list can be accessed.
             * @example /v2/projects/proj1ab2c3d4/customers/19b8de26-77c1-49f1-aa18-019a391603e2/purchases
             */
            url: string;
        };
        /** SubscriptionTransactionList */
        ListSubscriptionTransaction: {
            /**
             * @description String representing the object's type. Objects of the same type share the same value. Always has the value `list`.
             * @enum {string}
             */
            object: "list";
            /** @description Details about each object. */
            items: components["schemas"]["SubscriptionTransaction"][];
            /**
             * @description URL to access the next page of the projects. If not present / null, there is no next page
             * @example /v2/projects/proj123/subscriptions/sub123/transactions?starting_after=GPA.0000-0000-0000-00000
             */
            next_page: string | null;
            /**
             * @description The URL where this list can be accessed.
             * @example /v2/projects/proj123/subscriptions/sub123/transactions
             */
            url: string;
        };
        /** SubscriptionList */
        ListSubscriptions: {
            /**
             * @description String representing the object's type. Objects of the same type share the same value. Always has the value `list`.
             * @enum {string}
             */
            object: "list";
            /** @description Details about each object. */
            items: components["schemas"]["Subscription"][];
            /**
             * @description URL to access the next page of the customer's subscriptions. If not present / null, there is no next page
             * @example /v2/projects/proj1ab2c3d4/customers/19b8de26-77c1-49f1-aa18-019a391603e2/subscriptions?starting_after=sub1a2b3c4d
             */
            next_page: string | null;
            /**
             * @description The URL where this list can be accessed.
             * @example /v2/projects/proj1ab2c3d4/customers/19b8de26-77c1-49f1-aa18-019a391603e2/subscriptions
             */
            url: string;
        };
        /** VirtualCurrenciesBalancesList */
        ListVirtualCurrenciesBalances: {
            /**
             * @description String representing the object's type. Objects of the same type share the same value.
             * @enum {string}
             */
            object: "list";
            /** @description Details about each object. */
            items: components["schemas"]["VirtualCurrencyBalance"][];
            /**
             * @description URL to access the next page of the customer's balances. If not present / null, there is no next page
             * @example /v2/projects/proj1ab2c3d4/customers/19b8de26-77c1-49f1-aa18-019a391603e2/virtual_currencies?starting_after=9fjeja8fjed
             */
            next_page: string | null;
            /**
             * @description The URL where this list can be accessed.
             * @example /v2/projects/proj1ab2c3d4/customers/19b8de26-77c1-49f1-aa18-019a391603e2/virtual_currencies
             */
            url: string;
        };
        MacAppStoreApp: {
            /** @description Legacy Mac App Store type details */
            mac_app_store?: {
                /** @description The bundle ID of the app */
                bundle_id: string;
            };
        };
        MacAppStoreAppCreate: {
            /** @description Mac App Store type details. Should only be used when type is mac_app_store. */
            mac_app_store?: {
                /** @description The bundle ID of the app */
                bundle_id: string;
                /** @description The shared secret of the app */
                shared_secret?: string;
            };
        };
        MonetaryAmount: {
            currency: components["schemas"]["Currency"];
            /**
             * @description Total revenue generated (excluding taxes and commission)
             * @example 9.99
             */
            gross: number;
            /**
             * @description Store commission or payment processor fees deducted from gross revenue (if any)
             * @example 2.99
             */
            commission?: number;
            /**
             * @description Estimated taxes deducted from gross revenue
             * @example 0.75
             */
            tax: number;
            /**
             * @description Net revenue after store commission / fees and taxes
             * @example 6.25
             */
            proceeds: number;
        };
        Offering: {
            /**
             * @description String representing the object's type. Objects of the same type share the same value.
             * @enum {string}
             */
            object: "offering";
            /**
             * @description The id of the offering
             * @example ofrnge1a2b3c4d5
             */
            id: string;
            /**
             * @description A custom identifier of the entitlement
             * @example default
             */
            lookup_key: string;
            /**
             * @description The display name of the offering
             * @example The standard set of packages
             */
            display_name: string;
            /**
             * @description Indicates if the offering is the current offering
             * @example true
             */
            is_current: boolean;
            /**
             * Format: int64
             * @description The date the offering was created at in ms since epoch
             * @example 1658399423658
             */
            created_at: number;
            /**
             * @description ID of the project to which the offering belongs
             * @example proj1ab2c3d4
             */
            project_id: string;
            /** @description Custom metadata of the offering */
            metadata?: components["schemas"]["OfferingMetadata"];
            /** PackageList */
            packages?: {
                /**
                 * @description String representing the object's type. Objects of the same type share the same value. Always has the value `list`.
                 * @enum {string}
                 */
                object: "list";
                /** @description Details about each object. */
                items: components["schemas"]["Package"][];
                /**
                 * @description URL to access the next page of the Offering's packages. If not present / null, there is no next page
                 * @example /v2/projects/proj1ab2c3d4/offerings/ofrnge1a2b3c4d5/packages?starting_after=pkgeab21dac
                 */
                next_page: string | null;
                /**
                 * @description The URL where this list can be accessed.
                 * @example /v2/projects/proj1ab2c3d4/offerings/ofrnge1a2b3c4d5/packages
                 */
                url: string;
            } | null;
        };
        /**
         * @description Custom metadata of the offering
         * @example {
         *       "color": "blue",
         *       "call_to_action": "Subscribe Now!"
         *     }
         */
        OfferingMetadata: {
            [key: string]: unknown;
        } | null;
        OneTimeProduct: {
            /**
             * @description Indicates whether the product is consumable or not.
             * @example true
             */
            is_consumable: boolean | null;
        } | null;
        OverviewMetric: {
            /**
             * @description String representing the object's type. Objects of the same type share the same value.
             * @enum {string}
             */
            object: "overview_metric";
            /**
             * @description Id of the overview metric
             * @example active_trials
             */
            id: string;
            /**
             * @description Display name of the overview metric
             * @example Active Trials
             */
            name: string;
            /** @description Description of the overview metric */
            description: string;
            /**
             * @description Unit of the overview metric
             * @example $
             */
            unit: string;
            /**
             * @description Length of time during which metric data is collected in ISO 8601 format. Zero period means metric data was collected now
             * @example P0D
             * @enum {string}
             */
            period: "P0D" | "P28D";
            /**
             * @description Value of the overview metric
             * @example 34765
             */
            value: number;
            /**
             * Format: int64
             * @description Last time the overview metric was updated in ms since epoch
             * @example 1658399423658
             */
            last_updated_at: number | null;
            /**
             * Format: date-time
             * @description Last time the overview metric was updated datetime in ISO 8601 format
             * @example 2022-10-13 09:45:00.123000+00:00
             */
            last_updated_at_iso8601: string | null;
        };
        OverviewMetrics: {
            /**
             * @description String representing the object's type. Objects of the same type share the same value.
             * @enum {string}
             */
            object: "overview_metrics";
            /** @description Details about each overview metric. */
            metrics: components["schemas"]["OverviewMetric"][];
        };
        /**
         * @example purchased
         * @enum {string}
         */
        Ownership: string;
        Package: {
            /**
             * @description String representing the object's type. Objects of the same type share the same value.
             * @enum {string}
             */
            object: "package";
            /**
             * @description The id of the package
             * @example pkge1a2b3c4d5
             */
            id: string;
            /**
             * @description The lookup_key of the package
             * @example monthly
             */
            lookup_key: string;
            /**
             * @description The display name of the package
             * @example Monthly discounted with 3-day trial
             */
            display_name: string;
            /**
             * @description The position of the package within the offering
             * @example 1
             */
            position: number | null;
            /**
             * Format: int64
             * @description The date the package was created at in ms since epoch
             * @example 1658399423658
             */
            created_at: number;
            /** ProductList */
            products?: {
                /**
                 * @description String representing the object's type. Objects of the same type share the same value. Always has the value `list`.
                 * @enum {string}
                 */
                object: "list";
                /** @description Product association */
                items: components["schemas"]["PackageProductAssociation"][];
                /**
                 * @description URL to access the next page of the project's products. If not present / null, there is no next page
                 * @example /v2/projects/proj1ab2c3d4/offerings/ofrnge1a2b3c4d5/packages/pkge1a2b3c4d5/products?starting_after=prodab21dac
                 */
                next_page: string | null;
                /**
                 * @description The URL where this list can be accessed.
                 * @example /v2/projects/proj1ab2c3d4/offerings/ofrnge1a2b3c4d5/packages/pkge1a2b3c4d5/products
                 */
                url: string;
            } | null;
        };
        PackageProductAssociation: {
            product: components["schemas"]["Product"];
            eligibility_criteria: components["schemas"]["EligibilityCriteria"];
        };
        PackageProductIDAssociation: {
            product_id: string;
            eligibility_criteria: components["schemas"]["EligibilityCriteria"];
        };
        PaddleApp: {
            /** @description Paddle Billing type details */
            paddle?: {
                /**
                 * @description Whether the app is tied to the sandbox environment.
                 * @example true
                 */
                paddle_is_sandbox?: boolean;
                /** @description Paddle Server-side API key provided on the Paddle dashboard. */
                paddle_api_key?: string | null;
            };
        };
        PaddleAppCreate: {
            /** @description Paddle Billing details. Should only be used when type is paddle. */
            paddle?: {
                /** @description Paddle Server-side API key provided on the Paddle dashboard. */
                paddle_api_key?: string | null;
                /**
                 * @description [Deprecated] Whether the app is tied to the sandbox environment.
                 *     This field is deprecated and will be removed in the future.
                 *     The environment is determined by the `paddle_api_key` format.
                 * @example true
                 */
                paddle_is_sandbox?: boolean | null;
            } | null;
        };
        Paywall: {
            /**
             * @description String representing the object's type. Objects of the same type share the same value.
             * @enum {string}
             */
            object: "paywall";
            /**
             * @description The id of the paywall
             * @example pw123456789abcdef
             */
            id: string;
            /**
             * @description The name of the paywall
             * @example My Awesome Paywall
             */
            name: string | null;
            /**
             * @description The ID of the offering the paywall is for.
             * @example ofrng123456789a
             */
            offering_id: string;
            /**
             * Format: int64
             * @description The date the paywall was created at in ms since epoch
             * @example 1658399423658
             */
            created_at: number;
            /**
             * Format: int64
             * @description The date the paywall was published at in ms since epoch
             * @example 1658399423958
             */
            published_at: number | null;
        };
        PlayStoreApp: {
            /** @description Play Store type details */
            play_store?: {
                /** @description The package name of the app */
                package_name: string;
            };
        };
        PlayStoreAppCreate: {
            /** @description Play Store type details. Should only be used when type is play_store. */
            play_store?: {
                /** @description The package name of the app */
                package_name: string;
            };
        };
        Product: {
            /**
             * @description String representing the object's type. Objects of the same type share the same value. Always has the value `list`.
             * @enum {string}
             */
            object: "product";
            /**
             * @description The id of the product
             * @example prod1a2b3c4d5e
             */
            id: string;
            /**
             * @description The store product identifier
             * @example rc_1w_199
             */
            store_identifier: string;
            /** @description The product type */
            type: components["schemas"]["ProductType"];
            /** @description The subscription product object */
            subscription?: components["schemas"]["SubscriptionProduct"];
            /** @description The one time product object */
            one_time?: components["schemas"]["OneTimeProduct"];
            /**
             * Format: int64
             * @description The date when the product was created in ms since epoch
             * @example 1658399423658
             */
            created_at: number;
            /**
             * @description The id of the app
             * @example app1a2b3c4
             */
            app_id: string;
            /** @description The app associated with the product */
            app?: components["schemas"]["App"];
            /**
             * @description The display name of the product
             * @example Premium Monthly 2023
             */
            display_name: string | null;
        };
        /** @enum {string} */
        ProductType: string;
        /** ProductsFromEntitlementList */
        ProductsFromEntitlement: {
            /**
             * @description String representing the object's type. Objects of the same type share the same value. Always has the value `list`.
             * @enum {string}
             */
            object: "list";
            /** @description Details about each object. */
            items: components["schemas"]["Product"][];
            /**
             * @description URL to access the next page of the entitlement's products. If not present / null, there is no next page
             * @example /v2/projects/proj1ab2c3d4/entitlements/entla1b2c3d4e5/products?starting_after=prod1a2b3c4d5
             */
            next_page: string | null;
            /**
             * @description The URL where this list can be accessed.
             * @example /v2/projects/proj1ab2c3d4/entitlements/entla1b2c3d4e5/products
             */
            url: string;
        };
        /** ProductsFromPackageList */
        ProductsFromPackage: {
            /**
             * @description String representing the object's type. Objects of the same type share the same value. Always has the value `list`.
             * @enum {string}
             */
            object: "list";
            /** @description Details about each object. */
            items: components["schemas"]["PackageProductAssociation"][];
            /**
             * @description URL to access the next page of the entitlement's products. If not present / null, there is no next page
             * @example /v2/projects/proj1ab2c3d4/packages/pkge1a2b3c4d5/products?starting_after=prod1a2b3c4d5
             */
            next_page: string | null;
            /**
             * @description The URL where this list can be accessed.
             * @example /v2/projects/proj1ab2c3d4/packages/pkge1a2b3c4d5/products
             */
            url: string;
        };
        Project: {
            /**
             * @description String representing the object's type. Objects of the same type share the same value.
             * @enum {string}
             */
            object: "project";
            /**
             * @description The id of the project
             * @example proj1ab2c3d4
             */
            id: string;
            /**
             * @description The name of the project
             * @example MagicWeather
             */
            name: string;
            /**
             * Format: int64
             * @description The date when the project was created in ms since epoch
             * @example 1658399423658
             */
            created_at: number;
        };
        PublicApiKey: {
            /**
             * @description String representing the object's type. Objects of the same type share the same value.
             * @enum {string}
             */
            object: "public_api_key";
            /**
             * @description The ID of the public API key
             * @example apikey12345
             */
            id: string;
            /**
             * @description The value of the public API key
             * @example goog_1ab2c3d4
             */
            key: string;
            /**
             * @description The environment the public API key is for
             * @enum {string}
             */
            environment: "production" | "sandbox";
            /**
             * @description The ID of the app the public API key is for
             * @example app1a2b3c4
             */
            app_id: string;
            /**
             * Format: int64
             * @description The date when the public API key was created in ms since epoch
             * @example 1658399423658
             */
            created_at: number;
        };
        Purchase: {
            /**
             * @description String representing the object's type. Objects of the same type share the same value.
             * @enum {string}
             */
            object: "purchase";
            /**
             * @description The id of the purchase
             * @example purch1a2b3c4d5e
             */
            id: string;
            /**
             * @description The id of the customer
             * @example 19b8de26-77c1-49f1-aa18-019a391603e2
             */
            customer_id: string;
            /**
             * @description The ID of the original customer
             * @example 19b8de26-77c1-49f1-aa18-019a391603e2
             */
            original_customer_id: string;
            /**
             * @description The ID of the product that was purchased
             * @example prod1a2b3c4d5e
             */
            product_id: string;
            /**
             * Format: int64
             * @description The date when the purchase was made in ms since epoch
             * @example 1658399423658
             */
            purchased_at: number;
            /** @description The revenue generated by the purchase in USD */
            revenue_in_usd: components["schemas"]["MonetaryAmount"];
            /**
             * @description The quantity of the product purchased in one transaction
             * @example 1
             */
            quantity: number;
            /**
             * @description The status of a purchase
             * @example owned
             * @enum {string}
             */
            status: "owned" | "refunded";
            /**
             * @description The ID of the offering the customer saw when they did the purchase
             * @example ofrnge1a2b3c4d5
             */
            presented_offering_id: string | null;
            /** EntitlementList */
            entitlements: {
                /**
                 * @description String representing the object's type. Objects of the same type share the same value. Always has the value `list`.
                 * @enum {string}
                 */
                object: "list";
                /** @description Details about each object. */
                items: components["schemas"]["Entitlement"][];
                /**
                 * @description URL to access the next page of the customer's entitlements. If not present / null, there is no next page
                 * @example /v2/projects/proj1ab2c3d4/purchases/sub1a2b3c4d5e/entitlements?status=active&starting_after=entlab21dac
                 */
                next_page: string | null;
                /**
                 * @description The URL where this list can be accessed.
                 * @example /v2/projects/proj1ab2c3d4/purchases/sub1a2b3c4d5e/entitlements
                 */
                url: string;
            };
            environment: components["schemas"]["Environment"];
            /**
             * @description Store the purchase belongs to
             * @example amazon
             * @enum {string}
             */
            store: "amazon" | "app_store" | "mac_app_store" | "play_store" | "promotional" | "stripe" | "rc_billing";
            /**
             * @description The store purchase identifier
             * @example 12345678
             */
            store_purchase_identifier: string;
            /** @description Ownership of the purchase */
            ownership: components["schemas"]["Ownership"];
            /** @description Billing country in ISO alpha 2 code */
            country?: components["schemas"]["Country"];
        };
        RCBillingApp: {
            /** @description Revenue Cat Billing Store type details */
            rc_billing?: {
                /** @description Stripe account connected to your RevenueCat account. */
                stripe_account_id?: string | null;
                /**
                 * @deprecated
                 * @description The company name.  This field is deprecated. Please, use `app_name` instead.
                 */
                seller_company_name: string;
                /** @description Shown in checkout, emails, and receipts sent to customers. */
                app_name?: string;
                /**
                 * @deprecated
                 * @description The company support email. This field is deprecated. Please, use `support_email` instead.
                 */
                seller_company_support_email?: string | null;
                /** @description Used as the `reply to` address in all emails sent to customers, to allow them to receive support. */
                support_email?: string | null;
                /** @description The default currency to be used for the app. */
                default_currency: components["schemas"]["RCBillingCurrency"];
            };
        };
        RCBillingAppCreate: {
            /** @description Revenue Cat Billing Store type details */
            rc_billing?: {
                /** @description It needs to be connected to your RevenueCat account. It can be omitted if you only have a single Stripe account connected to your RevenueCat account. */
                stripe_account_id?: string | null;
                /** @description Shown in checkout, emails, and receipts sent to customers. */
                app_name: string;
                /** @description Used as the `reply to` address in all emails sent to customers, to allow them to receive support.  If you leave this field blank, your RevenueCat account email address will be used. */
                support_email?: string | null;
                default_currency?: components["schemas"]["RCBillingCurrency"];
            } | null;
        };
        /**
         * @description ISO 4217 currency code
         * @example USD
         * @enum {string}
         */
        RCBillingCurrency: string;
        RokuApp: {
            /** @description Roku Channel Store type details */
            roku?: {
                /** @description Channel ID provided on the Roku Channel page. */
                roku_channel_id?: string | null;
                /** @description Channel name that is displayed on the Roku Channel page. */
                roku_channel_name?: string | null;
            };
        };
        RokuAppCreate: {
            /** @description Roku Channel Store details. Should only be used when type is roku. */
            roku?: {
                /** @description Roku Pay API key provided on the Roku Pay Web Services page. */
                roku_api_key?: string | null;
                /** @description Channel ID provided on the Roku Channel page. */
                roku_channel_id?: string | null;
                /** @description Channel name that is displayed on the Roku Channel page. */
                roku_channel_name?: string | null;
            } | null;
        };
        /** @description Contents of a generated StoreKit config file for an app */
        StoreKitConfigFile: {
            /**
             * @description String representing the object's type. Objects of the same type share the same value.
             * @enum {string}
             */
            object: "store_kit_config_file";
            /** @description Contents of the StoreKit config file */
            contents: {
                [key: string]: unknown;
            };
        };
        StoreProduct: {
            /**
             * @description String representing the object's type. Objects of the same type share the same value.
             * @enum {string}
             */
            object: "store_product";
            /**
             * @description The unique identifier of the product in the store (e.g., App Store Connect product ID)
             * @example 1234567890
             */
            id: string;
            /**
             * @description The name of the store product
             * @example Premium Monthly Subscription
             */
            name?: string | null;
            /**
             * @description The product identifier used in the store
             * @example com.example.premium_monthly
             */
            product_identifier: string;
        };
        StripeApp: {
            /** @description Stripe type details */
            stripe?: {
                /** @description Stripe account connected to your RevenueCat account. */
                stripe_account_id?: string | null;
            };
        };
        StripeAppCreate: {
            /** @description Stripe type details. Should only be used when type is stripe. */
            stripe?: {
                /** @description It needs to be connected to your RevenueCat account. It can be omitted if you only have a single Stripe account connected to your RevenueCat account. */
                stripe_account_id?: string | null;
            };
        };
        Subscription: {
            /**
             * @description String representing the object's type. Objects of the same type share the same value.
             * @enum {string}
             */
            object: "subscription";
            /**
             * @description The ID of the subscription (generated by RevenueCat)
             * @example sub1ab2c3d4e5
             */
            id: string;
            /**
             * @description The ID of the customer
             * @example 19b8de26-77c1-49f1-aa18-019a391603e2
             */
            customer_id: string;
            /**
             * @description The ID of the original customer. Relevant for subscriptions that were transferred from one customer to another
             * @example 19b8de26-77c1-49f1-aa18-019a391603e2
             */
            original_customer_id: string;
            /**
             * @description The RevenueCat ID of the product that the customer is subscribed to. Exists for all store types except for promotional.
             * @example prod1a2b3c4d5e
             */
            product_id: string | null;
            /**
             * Format: int64
             * @description The date when the subscription originally started in ms since epoch
             * @example 1658399423658
             */
            starts_at: number;
            /**
             * Format: int64
             * @description The date when the subscription billing period started in ms since epoch
             * @example 1658399423658
             */
            current_period_starts_at: number;
            /**
             * Format: int64
             * @description The date when the subscription billing period is expected to end in ms since epoch. Can be null if the subscription is paused until an indefinite date.
             * @example 1658399423658
             */
            current_period_ends_at: number | null;
            /**
             * Format: int64
             * @description The date when the latest subscription billing period is expected to end in ms since epoch. It will only be different from `current_period_ends_at` if `auto_renewal_status` is `has_already_renewed`, in which case it indicates the end of the next billing period. Can be null if the subscription is paused until an indefinite date.
             * @example 1658399423658
             */
            ends_at: number | null;
            /**
             * @description Determines whether the customer should currently be provided access to the entitlements associated with the subscription
             * @example true
             */
            gives_access: boolean;
            /**
             * @description Determines whether there is a pending payment associated with the subscription
             * @example true
             */
            pending_payment: boolean;
            /**
             * @description The auto renewal status of a subscription.<br><br>Possible values:<br>• `will_renew`: the subscription is currently set to automatically renew<br>• `will_not_renew`: the subscription is currently set to expire at the end of the period<br>• `will_change_product`: the subscription is currently set to change product at the end of the period (which might start a new subscription)<br>• `will_pause`: the subscription is currently set to pause at the end of the current period<br>• `requires_price_increase_consent`: the subscription will expire at the end of the current period unless the customer consents to the price increase<br>• `has_already_renewed`: the customer has already been charged for the upcoming renewal (so the renewal will take place even if the customer opts out of auto-renewal before the end of the period)
             * @example will_renew
             * @enum {string}
             */
            auto_renewal_status: "will_renew" | "will_not_renew" | "will_change_product" | "will_pause" | "requires_price_increase_consent" | "has_already_renewed";
            /**
             * @description The status of a subscription. Please note that additional states might be added in the future. To determine whether or not a subscription currently provides access to any associated entitlements, use the _gives_access_ field.<br><br>Possible values:<br>• `trialing`: the subscription is in a free trial period<br>• `active`: the subscription is active, in a paid period<br>• `expired`: the subscription is expired and no longer active<br>• `in_grace_period`: the subscription is past its regular expiry date and experienced a billing issue, but is currently still in an access-granting grace period<br>• `in_billing_retry`: the subscription has experienced a billing issue. Billing is being retried, access is suspended.-paused: the subscription is currently paused and should not provide access.<br>• `unknown`: the subscription is in an unknown state. Refer to the _gives_access_ field to determine whether or not to grant access.<br>• `incomplete`: the subscription is in an incomplete state, maybe due to incorrect billing details or because it's scheduled to start in the future.
             * @example trialing
             * @enum {string}
             */
            status: "trialing" | "active" | "expired" | "in_grace_period" | "in_billing_retry" | "paused" | "unknown" | "incomplete";
            /** @description Total revenue generated by a subscription in USD */
            total_revenue_in_usd: components["schemas"]["MonetaryAmount"];
            /**
             * @description The ID of the offering the customer saw when purchasing the subscription
             * @example ofrnge1a2b3c4d5
             */
            presented_offering_id: string | null;
            /** EntitlementList */
            entitlements: {
                /**
                 * @description String representing the object's type. Objects of the same type share the same value. Always has the value `list`.
                 * @enum {string}
                 */
                object: "list";
                /** @description Details about each object. */
                items: components["schemas"]["Entitlement"][];
                /**
                 * @description URL to access the next page of the customer's entitlements. If not present / null, there is no next page
                 * @example /v2/projects/proj1ab2c3d4/subscriptions/sub1a2b3c4d5e/entitlements?status=active&starting_after=entlab21dac
                 */
                next_page: string | null;
                /**
                 * @description The URL where this list can be accessed.
                 * @example /v2/projects/proj1ab2c3d4/subscriptions/sub1a2b3c4d5e/entitlements
                 */
                url: string;
            };
            /** @description The store environment */
            environment: components["schemas"]["Environment"];
            /**
             * @description Store the subscription belongs to
             * @example amazon
             * @enum {string}
             */
            store: "amazon" | "app_store" | "mac_app_store" | "play_store" | "promotional" | "stripe" | "rc_billing";
            /**
             * @description The subscription identifier as per the store (e.g, for Apple App Store, the `transaction_id` of the latest transaction of the subscription, or for Google Play Store, the Order ID of the last renewal of the subscription)
             * @example 12345678
             */
            store_subscription_identifier: string;
            /** @description Ownership of the subscription */
            ownership: components["schemas"]["Ownership"];
            /** @description Indicates pending product changes. Present if the `auto_renewal_status` is `will_change_product`. */
            pending_changes?: {
                /** @description The product that will be active as of the next renewal */
                product?: components["schemas"]["Product"];
            } | null;
            /** @description Billing country in ISO alpha 2 code */
            country?: components["schemas"]["Country"];
            /**
             * @description The URL to manage the subscription
             * @example https://apps.apple.com/account/subscriptions
             */
            management_url: string | null;
        };
        SubscriptionProduct: {
            /**
             * @description The duration of the subscription in ISO-8601 standard
             * @example P1M
             */
            duration: string | null;
            /**
             * @description The duration of the subscription's grace period in ISO-8601 standard
             * @example P3D
             */
            grace_period_duration: string | null;
            /**
             * @description The duration of the subscription's trial period in ISO-8601 standard
             * @example P1W
             */
            trial_duration: string | null;
        } | null;
        SubscriptionTransaction: {
            /**
             * @description String representing the object's type. Objects of the same type share the same value.
             * @enum {string}
             */
            object: "subscription_transaction";
            /**
             * @description The ID of the subscription transaction in the store
             * @example GPA.0000-0000-0000-00000
             */
            id: string;
            /**
             * Format: int64
             * @description The date of the transaction in ms since epoch
             * @example 1658399423658
             */
            purchased_at: number;
        };
        /** TransferResult */
        Transfer: {
            /** @description The original customer before the transfer */
            source_customer: components["schemas"]["Customer"];
            /** @description The target customer after the transfer */
            target_customer: components["schemas"]["Customer"];
        };
        /** VirtualCurrencyBalance */
        VirtualCurrencyBalance: {
            /**
             * @description String representing the object's type. Objects of the same type share the same value.
             * @enum {string}
             */
            object: "virtual_currency_balance";
            /** @description The code of the virtual currency. */
            currency_code: string;
            /** @description The balance of the virtual currency. */
            balance: number;
            /** @description The description of the virtual currency. */
            description?: string;
            /** @description The name of the virtual currency. */
            name?: string;
        };
    };
    responses: {
        /** @description Bad request */
        BadRequest: {
            headers: {
                [name: string]: unknown;
            };
            content: {
                "application/json": components["schemas"]["Error"] & {
                    /** @enum {string} */
                    type?: "parameter_error" | "invalid_request";
                };
            };
        };
        /** @description Conflict */
        Conflict: {
            headers: {
                [name: string]: unknown;
            };
            content: {
                "application/json": components["schemas"]["Error"] & {
                    /** @enum {string} */
                    type?: "resource_already_exists" | "idempotency_error";
                };
            };
        };
        /** @description Access denied */
        Forbidden: {
            headers: {
                [name: string]: unknown;
            };
            content: {
                "application/json": components["schemas"]["Error"] & {
                    /** @enum {string} */
                    type?: "authorization_error";
                };
            };
        };
        /** @description Internal server error */
        InternalError: {
            headers: {
                [name: string]: unknown;
            };
            content: {
                "application/json": components["schemas"]["Error"] & {
                    /** @enum {string} */
                    type?: "server_error";
                };
            };
        };
        /** @description Locked */
        Locked: {
            headers: {
                [name: string]: unknown;
            };
            content: {
                "application/json": components["schemas"]["Error"] & {
                    /** @enum {string} */
                    type?: "resource_locked_error";
                };
            };
        };
        /** @description Not found */
        NotFound: {
            headers: {
                [name: string]: unknown;
            };
            content: {
                "application/json": components["schemas"]["Error"] & {
                    /** @enum {string} */
                    type?: "resource_missing";
                };
            };
        };
        /** @description The request could not be completed because the rate limiting domain for this endpoint is currently at its limit for this project. */
        RateLimited: {
            headers: {
                "RevenueCat-Rate-Limit-Current-Usage": components["headers"]["RateLimitCurrentUsage"];
                "RevenueCat-Rate-Limit-Current-Limit": components["headers"]["RateLimitCurrentLimit"];
                "Retry-After": components["headers"]["RateLimitRetryAfter"];
                [name: string]: unknown;
            };
            content: {
                "application/json": components["schemas"]["Error"] & {
                    /** @enum {string} */
                    type?: "rate_limit_error";
                };
            };
        };
        /** @description Unauthorized */
        Unauthorized: {
            headers: {
                [name: string]: unknown;
            };
            content: {
                "application/json": components["schemas"]["Error"] & {
                    /** @enum {string} */
                    type?: "authentication_error";
                };
            };
        };
        /** @description Unprocessable entity */
        UnprocessableEntity: {
            headers: {
                [name: string]: unknown;
            };
            content: {
                "application/json": components["schemas"]["Error"] & {
                    /** @enum {string} */
                    type?: "unprocessable_entity_error" | "parameter_error" | "store_error";
                };
            };
        };
    };
    parameters: never;
    requestBodies: never;
    headers: {
        /**
         * @description The rate limit for this endpoint, expressed in requests per minute.
         * @example 30
         */
        RateLimitCurrentLimit: number;
        /**
         * @description The current number of requests used for the current limit (including the current request).
         * @example 25
         */
        RateLimitCurrentUsage: number;
        /**
         * @description The number of seconds to wait before retrying a rate limited request.Only present when a request is rate limited.
         * @example 10
         */
        RateLimitRetryAfter: number;
    };
    pathItems: never;
}
export type $defs = Record<string, never>;
export interface operations {
    "create-paywall": {
        parameters: {
            query?: never;
            header?: never;
            path: {
                /** @description ID of the project */
                project_id: string;
            };
            cookie?: never;
        };
        requestBody: {
            content: {
                "application/json": {
                    /**
                     * @description The ID of the offering the paywall will be created for.
                     * @example ofrng123456789a
                     */
                    offering_id: string;
                };
            };
        };
        responses: {
            /** @description Success. The paywall was created */
            201: {
                headers: {
                    "RevenueCat-Rate-Limit-Current-Usage": components["headers"]["RateLimitCurrentUsage"];
                    "RevenueCat-Rate-Limit-Current-Limit": components["headers"]["RateLimitCurrentLimit"];
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["Paywall"];
                };
            };
            400: components["responses"]["BadRequest"];
            401: components["responses"]["Unauthorized"];
            403: components["responses"]["Forbidden"];
            404: components["responses"]["NotFound"];
            409: components["responses"]["Conflict"];
            422: components["responses"]["UnprocessableEntity"];
            423: components["responses"]["Locked"];
            429: components["responses"]["RateLimited"];
            500: components["responses"]["InternalError"];
            503: components["responses"]["InternalError"];
        };
    };
    "list-app-public-api-keys": {
        parameters: {
            query?: never;
            header?: never;
            path: {
                /** @description ID of the project */
                project_id: string;
                /** @description ID of the app */
                app_id: string;
            };
            cookie?: never;
        };
        requestBody?: never;
        responses: {
            /** @description Success */
            200: {
                headers: {
                    "RevenueCat-Rate-Limit-Current-Usage": components["headers"]["RateLimitCurrentUsage"];
                    "RevenueCat-Rate-Limit-Current-Limit": components["headers"]["RateLimitCurrentLimit"];
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["ListPublicApiKeys"];
                };
            };
            400: components["responses"]["BadRequest"];
            401: components["responses"]["Unauthorized"];
            403: components["responses"]["Forbidden"];
            404: components["responses"]["NotFound"];
            423: components["responses"]["Locked"];
            429: components["responses"]["RateLimited"];
            500: components["responses"]["InternalError"];
            503: components["responses"]["InternalError"];
        };
    };
    "list-projects": {
        parameters: {
            query?: {
                starting_after?: string;
                limit?: number;
            };
            header?: never;
            path?: never;
            cookie?: never;
        };
        requestBody?: never;
        responses: {
            /** @description Success */
            200: {
                headers: {
                    "RevenueCat-Rate-Limit-Current-Usage": components["headers"]["RateLimitCurrentUsage"];
                    "RevenueCat-Rate-Limit-Current-Limit": components["headers"]["RateLimitCurrentLimit"];
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["ListProjects"];
                };
            };
            400: components["responses"]["BadRequest"];
            401: components["responses"]["Unauthorized"];
            403: components["responses"]["Forbidden"];
            404: components["responses"]["NotFound"];
            423: components["responses"]["Locked"];
            429: components["responses"]["RateLimited"];
            500: components["responses"]["InternalError"];
            503: components["responses"]["InternalError"];
        };
    };
    "list-apps": {
        parameters: {
            query?: {
                starting_after?: string;
                limit?: number;
            };
            header?: never;
            path: {
                /** @description ID of the project */
                project_id: string;
            };
            cookie?: never;
        };
        requestBody?: never;
        responses: {
            /** @description Success */
            200: {
                headers: {
                    "RevenueCat-Rate-Limit-Current-Usage": components["headers"]["RateLimitCurrentUsage"];
                    "RevenueCat-Rate-Limit-Current-Limit": components["headers"]["RateLimitCurrentLimit"];
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["ListApps"];
                };
            };
            400: components["responses"]["BadRequest"];
            401: components["responses"]["Unauthorized"];
            403: components["responses"]["Forbidden"];
            404: components["responses"]["NotFound"];
            423: components["responses"]["Locked"];
            429: components["responses"]["RateLimited"];
            500: components["responses"]["InternalError"];
            503: components["responses"]["InternalError"];
        };
    };
    "create-app": {
        parameters: {
            query?: never;
            header?: never;
            path: {
                /** @description ID of the project */
                project_id: string;
            };
            cookie?: never;
        };
        requestBody: {
            content: {
                "application/json": components["schemas"]["AppCreate"];
            };
        };
        responses: {
            /** @description Success. The app was created */
            201: {
                headers: {
                    "RevenueCat-Rate-Limit-Current-Usage": components["headers"]["RateLimitCurrentUsage"];
                    "RevenueCat-Rate-Limit-Current-Limit": components["headers"]["RateLimitCurrentLimit"];
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["App"];
                };
            };
            400: components["responses"]["BadRequest"];
            401: components["responses"]["Unauthorized"];
            403: components["responses"]["Forbidden"];
            404: components["responses"]["NotFound"];
            409: components["responses"]["Conflict"];
            422: components["responses"]["UnprocessableEntity"];
            423: components["responses"]["Locked"];
            429: components["responses"]["RateLimited"];
            500: components["responses"]["InternalError"];
            503: components["responses"]["InternalError"];
        };
    };
    "get-app": {
        parameters: {
            query?: never;
            header?: never;
            path: {
                /** @description ID of the project */
                project_id: string;
                /** @description ID of the app */
                app_id: string;
            };
            cookie?: never;
        };
        requestBody?: never;
        responses: {
            /** @description Success */
            200: {
                headers: {
                    "RevenueCat-Rate-Limit-Current-Usage": components["headers"]["RateLimitCurrentUsage"];
                    "RevenueCat-Rate-Limit-Current-Limit": components["headers"]["RateLimitCurrentLimit"];
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["App"];
                };
            };
            400: components["responses"]["BadRequest"];
            401: components["responses"]["Unauthorized"];
            403: components["responses"]["Forbidden"];
            404: components["responses"]["NotFound"];
            423: components["responses"]["Locked"];
            429: components["responses"]["RateLimited"];
            500: components["responses"]["InternalError"];
            503: components["responses"]["InternalError"];
        };
    };
    "update-app": {
        parameters: {
            query?: never;
            header?: never;
            path: {
                /** @description ID of the project */
                project_id: string;
                /** @description ID of the app */
                app_id: string;
            };
            cookie?: never;
        };
        requestBody: {
            content: {
                "application/json": {
                    /**
                     * @description The name of the app
                     * @example My App
                     */
                    name?: string;
                    /** @description Amazon type details. Should only be used when type is amazon. */
                    amazon?: {
                        /** @description The package name of the app */
                        package_name?: string;
                        /** @description Your Amazon Developer Identity Shared Key */
                        shared_secret?: string | null;
                    };
                    /** @description App Store type details. Should only be used when type is app_store. */
                    app_store?: {
                        /** @description The bundle ID of the app */
                        bundle_id?: string;
                        /** @description The shared secret of the app */
                        shared_secret?: string | null;
                    };
                    /** @description Legacy Mac App Store type details. Should only be used when type is mac_app_store. */
                    mac_app_store?: {
                        /** @description The bundle ID of the app */
                        bundle_id?: string;
                        /** @description The shared secret of the app */
                        shared_secret?: string | null;
                    };
                    /** @description Play Store type details. Should only be used when type is play_store. */
                    play_store?: {
                        /** @description The package name of the app */
                        package_name: string;
                    };
                    /** @description Stripe type details. Should only be used when type is stripe. */
                    stripe?: {
                        /** @description It needs to be connected to your RevenueCat account. It can be omitted if you only have a single Stripe account connected to your RevenueCat account. */
                        stripe_account_id?: string;
                    };
                    /** @description Web Billing type details. Should only be used when type is rc_billing. */
                    rc_billing?: {
                        /** @description It needs to be connected to your RevenueCat account. It can be omitted if you only have a single Stripe account connected to your RevenueCat account. */
                        stripe_account_id?: string | null;
                        /** @description Shown in checkout, emails, and receipts sent to customers. */
                        app_name?: string | null;
                        /** @description Used as the `reply to` address in all emails sent to customers, to allow them to receive support. If you leave this field blank, your RevenueCat account email address will be used. */
                        support_email?: string | null;
                        default_currency?: components["schemas"]["RCBillingCurrency"];
                    };
                    /** @description Roku Channel Store type details. Should only be used when type is roku. */
                    roku?: {
                        /** @description Roku Pay API key provided on the Roku Pay Web Services page. */
                        roku_api_key?: string | null;
                        /** @description Channel ID provided on the Roku Channel page. */
                        roku_channel_id?: string | null;
                        /** @description Channel name that is displayed on the Roku Channel page. */
                        roku_channel_name?: string | null;
                    };
                    /** @description Paddle Billing type details. Should only be used when type is paddle. */
                    paddle?: {
                        /** @description Paddle Server-side API key provided on the Paddle dashboard. */
                        paddle_api_key?: string | null;
                        /**
                         * @description Whether the app is tied to the sandbox environment.
                         * @example true
                         */
                        paddle_is_sandbox?: boolean;
                    };
                };
            };
        };
        responses: {
            /** @description Success. The app was updated */
            200: {
                headers: {
                    "RevenueCat-Rate-Limit-Current-Usage": components["headers"]["RateLimitCurrentUsage"];
                    "RevenueCat-Rate-Limit-Current-Limit": components["headers"]["RateLimitCurrentLimit"];
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["App"];
                };
            };
            400: components["responses"]["BadRequest"];
            401: components["responses"]["Unauthorized"];
            403: components["responses"]["Forbidden"];
            404: components["responses"]["NotFound"];
            409: components["responses"]["Conflict"];
            422: components["responses"]["UnprocessableEntity"];
            423: components["responses"]["Locked"];
            429: components["responses"]["RateLimited"];
            500: components["responses"]["InternalError"];
            503: components["responses"]["InternalError"];
        };
    };
    "delete-app": {
        parameters: {
            query?: never;
            header?: never;
            path: {
                /** @description ID of the project */
                project_id: string;
                /** @description ID of the app */
                app_id: string;
            };
            cookie?: never;
        };
        requestBody?: never;
        responses: {
            /** @description Success */
            200: {
                headers: {
                    "RevenueCat-Rate-Limit-Current-Usage": components["headers"]["RateLimitCurrentUsage"];
                    "RevenueCat-Rate-Limit-Current-Limit": components["headers"]["RateLimitCurrentLimit"];
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["DeletedObject"];
                };
            };
            400: components["responses"]["BadRequest"];
            401: components["responses"]["Unauthorized"];
            403: components["responses"]["Forbidden"];
            404: components["responses"]["NotFound"];
            409: components["responses"]["Conflict"];
            422: components["responses"]["UnprocessableEntity"];
            423: components["responses"]["Locked"];
            429: components["responses"]["RateLimited"];
            500: components["responses"]["InternalError"];
            503: components["responses"]["InternalError"];
        };
    };
    "get-app-storekit-config": {
        parameters: {
            query?: never;
            header?: never;
            path: {
                /** @description ID of the project */
                project_id: string;
                /** @description ID of the app */
                app_id: string;
            };
            cookie?: never;
        };
        requestBody?: never;
        responses: {
            /** @description Success */
            200: {
                headers: {
                    "RevenueCat-Rate-Limit-Current-Usage": components["headers"]["RateLimitCurrentUsage"];
                    "RevenueCat-Rate-Limit-Current-Limit": components["headers"]["RateLimitCurrentLimit"];
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["StoreKitConfigFile"];
                };
            };
            400: components["responses"]["BadRequest"];
            401: components["responses"]["Unauthorized"];
            403: components["responses"]["Forbidden"];
            404: components["responses"]["NotFound"];
            423: components["responses"]["Locked"];
            429: components["responses"]["RateLimited"];
            500: components["responses"]["InternalError"];
            503: components["responses"]["InternalError"];
        };
    };
    "list-customers": {
        parameters: {
            query?: {
                starting_after?: string;
                limit?: number;
                /** @description Search term. Currently, only searching by email is supported (searching for exact matches in the $email attribute). */
                search?: string;
            };
            header?: never;
            path: {
                /** @description ID of the project */
                project_id: string;
            };
            cookie?: never;
        };
        requestBody?: never;
        responses: {
            /** @description Success */
            200: {
                headers: {
                    "RevenueCat-Rate-Limit-Current-Usage": components["headers"]["RateLimitCurrentUsage"];
                    "RevenueCat-Rate-Limit-Current-Limit": components["headers"]["RateLimitCurrentLimit"];
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["ListCustomers"];
                };
            };
            400: components["responses"]["BadRequest"];
            401: components["responses"]["Unauthorized"];
            403: components["responses"]["Forbidden"];
            404: components["responses"]["NotFound"];
            423: components["responses"]["Locked"];
            429: components["responses"]["RateLimited"];
            500: components["responses"]["InternalError"];
            503: components["responses"]["InternalError"];
        };
    };
    "create-customer": {
        parameters: {
            query?: never;
            header?: never;
            path: {
                /** @description ID of the project */
                project_id: string;
            };
            cookie?: never;
        };
        requestBody: {
            content: {
                "application/json": {
                    /**
                     * @description The ID of the customer
                     * @example 19b8de26-77c1-49f1-aa18-019a391603e2
                     */
                    id: string;
                    attributes?: {
                        /**
                         * @description The name of the attribute
                         * @example $email
                         */
                        name: components["schemas"]["CustomerAttributeReservedName"] | components["schemas"]["CustomerAttributeCustomName"];
                        /**
                         * @description The value of the attribute
                         * @example cat@revenuecat.com
                         */
                        value: string;
                    }[];
                };
            };
        };
        responses: {
            /** @description Success. The customer was created */
            201: {
                headers: {
                    "RevenueCat-Rate-Limit-Current-Usage": components["headers"]["RateLimitCurrentUsage"];
                    "RevenueCat-Rate-Limit-Current-Limit": components["headers"]["RateLimitCurrentLimit"];
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["Customer"];
                };
            };
            400: components["responses"]["BadRequest"];
            401: components["responses"]["Unauthorized"];
            403: components["responses"]["Forbidden"];
            404: components["responses"]["NotFound"];
            409: components["responses"]["Conflict"];
            422: components["responses"]["UnprocessableEntity"];
            423: components["responses"]["Locked"];
            429: components["responses"]["RateLimited"];
            500: components["responses"]["InternalError"];
            503: components["responses"]["InternalError"];
        };
    };
    "get-customer": {
        parameters: {
            query?: {
                /**
                 * @description Specifies which fields in the response should be expanded.
                 *      Accepted values are: `attributes` (requires `customer_information:customers:read` permission).
                 */
                expand?: "attributes"[];
            };
            header?: never;
            path: {
                /** @description ID of the project */
                project_id: string;
                /** @description ID of the customer */
                customer_id: string;
            };
            cookie?: never;
        };
        requestBody?: never;
        responses: {
            /** @description Success */
            200: {
                headers: {
                    "RevenueCat-Rate-Limit-Current-Usage": components["headers"]["RateLimitCurrentUsage"];
                    "RevenueCat-Rate-Limit-Current-Limit": components["headers"]["RateLimitCurrentLimit"];
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["Customer"];
                };
            };
            400: components["responses"]["BadRequest"];
            401: components["responses"]["Unauthorized"];
            403: components["responses"]["Forbidden"];
            404: components["responses"]["NotFound"];
            423: components["responses"]["Locked"];
            429: components["responses"]["RateLimited"];
            500: components["responses"]["InternalError"];
            503: components["responses"]["InternalError"];
        };
    };
    "delete-customer": {
        parameters: {
            query?: never;
            header?: never;
            path: {
                /** @description ID of the project */
                project_id: string;
                /** @description ID of the customer */
                customer_id: string;
            };
            cookie?: never;
        };
        requestBody?: never;
        responses: {
            /** @description Success */
            200: {
                headers: {
                    "RevenueCat-Rate-Limit-Current-Usage": components["headers"]["RateLimitCurrentUsage"];
                    "RevenueCat-Rate-Limit-Current-Limit": components["headers"]["RateLimitCurrentLimit"];
                    [name: string]: unknown;
                };
                content: {
                    /**
                     * @example {
                     *       "object": "customer",
                     *       "id": "b5b7bfd2-66fb-4091-af50-7c3cdccfdf24",
                     *       "deleted_at": 1658399423658
                     *     }
                     */
                    "application/json": components["schemas"]["DeletedObject"];
                };
            };
            400: components["responses"]["BadRequest"];
            401: components["responses"]["Unauthorized"];
            403: components["responses"]["Forbidden"];
            404: components["responses"]["NotFound"];
            409: components["responses"]["Conflict"];
            422: components["responses"]["UnprocessableEntity"];
            423: components["responses"]["Locked"];
            429: components["responses"]["RateLimited"];
            500: components["responses"]["InternalError"];
            503: components["responses"]["InternalError"];
        };
    };
    "transfer-customer-data": {
        parameters: {
            query?: never;
            header?: never;
            path: {
                /** @description ID of the project */
                project_id: string;
                /** @description ID of the customer */
                customer_id: string;
            };
            cookie?: never;
        };
        requestBody: {
            content: {
                "application/json": {
                    /** @description The ID of the customer to whom the subscriptions and one-time purchases will be transferred. */
                    target_customer_id: string;
                    /** @description Optional. The IDs of the apps to filter the transfer by. When specified, only purchases and subscriptions associated with these apps will be transferred. */
                    app_ids?: string[] | null;
                };
            };
        };
        responses: {
            /** @description Success */
            200: {
                headers: {
                    "RevenueCat-Rate-Limit-Current-Usage": components["headers"]["RateLimitCurrentUsage"];
                    "RevenueCat-Rate-Limit-Current-Limit": components["headers"]["RateLimitCurrentLimit"];
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["Transfer"];
                };
            };
            400: components["responses"]["BadRequest"];
            401: components["responses"]["Unauthorized"];
            403: components["responses"]["Forbidden"];
            404: components["responses"]["NotFound"];
            409: components["responses"]["Conflict"];
            422: components["responses"]["UnprocessableEntity"];
            423: components["responses"]["Locked"];
            429: components["responses"]["RateLimited"];
            500: components["responses"]["InternalError"];
            503: components["responses"]["InternalError"];
        };
    };
    "get-product": {
        parameters: {
            query?: {
                /**
                 * @description Specifies which fields in the response should be expanded.
                 *      Accepted values are: `app` (requires `project_configuration:apps:read` permission).
                 */
                expand?: "app"[];
            };
            header?: never;
            path: {
                /** @description ID of the project */
                project_id: string;
                /** @description ID of the product */
                product_id: string;
            };
            cookie?: never;
        };
        requestBody?: never;
        responses: {
            /** @description Success */
            200: {
                headers: {
                    "RevenueCat-Rate-Limit-Current-Usage": components["headers"]["RateLimitCurrentUsage"];
                    "RevenueCat-Rate-Limit-Current-Limit": components["headers"]["RateLimitCurrentLimit"];
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["Product"];
                };
            };
            400: components["responses"]["BadRequest"];
            401: components["responses"]["Unauthorized"];
            403: components["responses"]["Forbidden"];
            404: components["responses"]["NotFound"];
            423: components["responses"]["Locked"];
            429: components["responses"]["RateLimited"];
            500: components["responses"]["InternalError"];
            503: components["responses"]["InternalError"];
        };
    };
    "delete-product": {
        parameters: {
            query?: never;
            header?: never;
            path: {
                /** @description ID of the project */
                project_id: string;
                /** @description ID of the product */
                product_id: string;
            };
            cookie?: never;
        };
        requestBody?: never;
        responses: {
            /** @description Success */
            200: {
                headers: {
                    "RevenueCat-Rate-Limit-Current-Usage": components["headers"]["RateLimitCurrentUsage"];
                    "RevenueCat-Rate-Limit-Current-Limit": components["headers"]["RateLimitCurrentLimit"];
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["DeletedObject"];
                };
            };
            400: components["responses"]["BadRequest"];
            401: components["responses"]["Unauthorized"];
            403: components["responses"]["Forbidden"];
            404: components["responses"]["NotFound"];
            409: components["responses"]["Conflict"];
            422: components["responses"]["UnprocessableEntity"];
            423: components["responses"]["Locked"];
            429: components["responses"]["RateLimited"];
            500: components["responses"]["InternalError"];
            503: components["responses"]["InternalError"];
        };
    };
    "create-product-in-store": {
        parameters: {
            query?: never;
            header?: never;
            path: {
                /** @description ID of the project */
                project_id: string;
                /** @description ID of the product */
                product_id: string;
            };
            cookie?: never;
        };
        /**
         * @description Store-specific information. Only required for subscription products.
         *     For in-app purchase products, send an empty body or omit the request body entirely.
         */
        requestBody?: {
            content: {
                "application/json": {
                    /** @description Store-specific information for creating the product in the store */
                    store_information?: components["schemas"]["CreateAppStoreConnectSubscriptionInput"] | components["schemas"]["CreateAppStoreConnectInAppPurchaseInput"];
                };
            };
        };
        responses: {
            /** @description Success. The product was pushed to the store */
            201: {
                headers: {
                    "RevenueCat-Rate-Limit-Current-Usage": components["headers"]["RateLimitCurrentUsage"];
                    "RevenueCat-Rate-Limit-Current-Limit": components["headers"]["RateLimitCurrentLimit"];
                    [name: string]: unknown;
                };
                content: {
                    "application/json": {
                        created_product: components["schemas"]["StoreProduct"];
                    };
                };
            };
            400: components["responses"]["BadRequest"];
            401: components["responses"]["Unauthorized"];
            403: components["responses"]["Forbidden"];
            404: components["responses"]["NotFound"];
            409: components["responses"]["Conflict"];
            422: components["responses"]["UnprocessableEntity"];
            423: components["responses"]["Locked"];
            429: components["responses"]["RateLimited"];
            500: components["responses"]["InternalError"];
            503: components["responses"]["InternalError"];
        };
    };
    "list-products": {
        parameters: {
            query?: {
                /** @description This is an optional query parameter to get a list of products of a given entitlement associated with a particular app */
                app_id?: string;
                starting_after?: string;
                limit?: number;
                /**
                 * @description Specifies which fields in the response should be expanded.
                 *      Accepted values are: `items.app` (requires `project_configuration:apps:read` permission).
                 */
                expand?: "items.app"[];
            };
            header?: never;
            path: {
                /** @description ID of the project */
                project_id: string;
            };
            cookie?: never;
        };
        requestBody?: never;
        responses: {
            /** @description Success */
            200: {
                headers: {
                    "RevenueCat-Rate-Limit-Current-Usage": components["headers"]["RateLimitCurrentUsage"];
                    "RevenueCat-Rate-Limit-Current-Limit": components["headers"]["RateLimitCurrentLimit"];
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["ListProducts"];
                };
            };
            400: components["responses"]["BadRequest"];
            401: components["responses"]["Unauthorized"];
            403: components["responses"]["Forbidden"];
            404: components["responses"]["NotFound"];
            423: components["responses"]["Locked"];
            429: components["responses"]["RateLimited"];
            500: components["responses"]["InternalError"];
            503: components["responses"]["InternalError"];
        };
    };
    "create-product": {
        parameters: {
            query?: never;
            header?: never;
            path: {
                /** @description ID of the project */
                project_id: string;
            };
            cookie?: never;
        };
        requestBody: {
            content: {
                "application/json": {
                    /**
                     * @description The store identifier of the product.
                     *     - For Apple App Store products this is the product ID of the subscription or in-app product.
                     *     - For Google's Play Store, it should follow the format 'productId:basePlanId' for subscription products and SKU for one-time purchase products.
                     *     - For Stripe, the product identifier that always starts with "prod_"
                     *     - For Amazon, if it's a subscription, the term SKU of the subscription. If it's a one-time purchase, the SKU of the product.
                     *     - For Roku, this is the product identifier of the subscription or one-time purchase product.
                     * @example com.revenuecat.magicweather.monthly
                     */
                    store_identifier: string;
                    /**
                     * @description The ID of the app
                     * @example app1a2b3c4
                     */
                    app_id: string;
                    /** @description The product type */
                    type: components["schemas"]["ProductType"];
                    /**
                     * @description The display name of the product
                     * @example Premium Monthly 2023
                     */
                    display_name?: string | null;
                };
            };
        };
        responses: {
            /** @description Success. The product was created */
            201: {
                headers: {
                    "RevenueCat-Rate-Limit-Current-Usage": components["headers"]["RateLimitCurrentUsage"];
                    "RevenueCat-Rate-Limit-Current-Limit": components["headers"]["RateLimitCurrentLimit"];
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["Product"];
                };
            };
            400: components["responses"]["BadRequest"];
            401: components["responses"]["Unauthorized"];
            403: components["responses"]["Forbidden"];
            404: components["responses"]["NotFound"];
            409: components["responses"]["Conflict"];
            422: components["responses"]["UnprocessableEntity"];
            423: components["responses"]["Locked"];
            429: components["responses"]["RateLimited"];
            500: components["responses"]["InternalError"];
            503: components["responses"]["InternalError"];
        };
    };
    "get-entitlement": {
        parameters: {
            query?: {
                /**
                 * @description Specifies which fields in the response should be expanded.
                 *      Accepted values are: `product` (requires `project_configuration:products:read` permission).
                 */
                expand?: "product"[];
            };
            header?: never;
            path: {
                /** @description ID of the project */
                project_id: string;
                /** @description ID of the entitlement */
                entitlement_id: string;
            };
            cookie?: never;
        };
        requestBody?: never;
        responses: {
            /** @description Success */
            200: {
                headers: {
                    "RevenueCat-Rate-Limit-Current-Usage": components["headers"]["RateLimitCurrentUsage"];
                    "RevenueCat-Rate-Limit-Current-Limit": components["headers"]["RateLimitCurrentLimit"];
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["Entitlement"];
                };
            };
            400: components["responses"]["BadRequest"];
            401: components["responses"]["Unauthorized"];
            403: components["responses"]["Forbidden"];
            404: components["responses"]["NotFound"];
            423: components["responses"]["Locked"];
            429: components["responses"]["RateLimited"];
            500: components["responses"]["InternalError"];
            503: components["responses"]["InternalError"];
        };
    };
    "update-entitlement": {
        parameters: {
            query?: never;
            header?: never;
            path: {
                /** @description ID of the project */
                project_id: string;
                /** @description ID of the entitlement */
                entitlement_id: string;
            };
            cookie?: never;
        };
        requestBody: {
            content: {
                "application/json": {
                    /**
                     * @description The display name of the entitlement
                     * @example Premium
                     */
                    display_name: string;
                };
            };
        };
        responses: {
            /** @description Success. The entitlement was updated */
            200: {
                headers: {
                    "RevenueCat-Rate-Limit-Current-Usage": components["headers"]["RateLimitCurrentUsage"];
                    "RevenueCat-Rate-Limit-Current-Limit": components["headers"]["RateLimitCurrentLimit"];
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["Entitlement"];
                };
            };
            400: components["responses"]["BadRequest"];
            401: components["responses"]["Unauthorized"];
            403: components["responses"]["Forbidden"];
            404: components["responses"]["NotFound"];
            409: components["responses"]["Conflict"];
            422: components["responses"]["UnprocessableEntity"];
            423: components["responses"]["Locked"];
            429: components["responses"]["RateLimited"];
            500: components["responses"]["InternalError"];
            503: components["responses"]["InternalError"];
        };
    };
    "delete-entitlement": {
        parameters: {
            query?: never;
            header?: never;
            path: {
                /** @description ID of the project */
                project_id: string;
                /** @description ID of the entitlement */
                entitlement_id: string;
            };
            cookie?: never;
        };
        requestBody?: never;
        responses: {
            /** @description Success */
            200: {
                headers: {
                    "RevenueCat-Rate-Limit-Current-Usage": components["headers"]["RateLimitCurrentUsage"];
                    "RevenueCat-Rate-Limit-Current-Limit": components["headers"]["RateLimitCurrentLimit"];
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["DeletedObject"];
                };
            };
            400: components["responses"]["BadRequest"];
            401: components["responses"]["Unauthorized"];
            403: components["responses"]["Forbidden"];
            404: components["responses"]["NotFound"];
            409: components["responses"]["Conflict"];
            422: components["responses"]["UnprocessableEntity"];
            423: components["responses"]["Locked"];
            429: components["responses"]["RateLimited"];
            500: components["responses"]["InternalError"];
            503: components["responses"]["InternalError"];
        };
    };
    "list-entitlements": {
        parameters: {
            query?: {
                starting_after?: string;
                limit?: number;
                /**
                 * @description Specifies which fields in the response should be expanded.
                 *      Accepted values are: `items.product` (requires `project_configuration:products:read` permission).
                 */
                expand?: "items.product"[];
            };
            header?: never;
            path: {
                /** @description ID of the project */
                project_id: string;
            };
            cookie?: never;
        };
        requestBody?: never;
        responses: {
            /** @description Success */
            200: {
                headers: {
                    "RevenueCat-Rate-Limit-Current-Usage": components["headers"]["RateLimitCurrentUsage"];
                    "RevenueCat-Rate-Limit-Current-Limit": components["headers"]["RateLimitCurrentLimit"];
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["ListEntitlements"];
                };
            };
            400: components["responses"]["BadRequest"];
            401: components["responses"]["Unauthorized"];
            403: components["responses"]["Forbidden"];
            404: components["responses"]["NotFound"];
            423: components["responses"]["Locked"];
            429: components["responses"]["RateLimited"];
            500: components["responses"]["InternalError"];
            503: components["responses"]["InternalError"];
        };
    };
    "create-entitlement": {
        parameters: {
            query?: never;
            header?: never;
            path: {
                /** @description ID of the project */
                project_id: string;
            };
            cookie?: never;
        };
        requestBody: {
            content: {
                "application/json": {
                    /**
                     * @description The identifier of the entitlement
                     * @example premium
                     */
                    lookup_key: string;
                    /**
                     * @description The display name of the entitlement
                     * @example Premium access to all features
                     */
                    display_name: string;
                };
            };
        };
        responses: {
            /** @description Success. The entitlement was created */
            201: {
                headers: {
                    "RevenueCat-Rate-Limit-Current-Usage": components["headers"]["RateLimitCurrentUsage"];
                    "RevenueCat-Rate-Limit-Current-Limit": components["headers"]["RateLimitCurrentLimit"];
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["Entitlement"];
                };
            };
            400: components["responses"]["BadRequest"];
            401: components["responses"]["Unauthorized"];
            403: components["responses"]["Forbidden"];
            404: components["responses"]["NotFound"];
            409: components["responses"]["Conflict"];
            422: components["responses"]["UnprocessableEntity"];
            423: components["responses"]["Locked"];
            429: components["responses"]["RateLimited"];
            500: components["responses"]["InternalError"];
            503: components["responses"]["InternalError"];
        };
    };
    "get-products-from-entitlement": {
        parameters: {
            query?: {
                starting_after?: string;
                limit?: number;
            };
            header?: never;
            path: {
                /** @description ID of the project */
                project_id: string;
                /** @description ID of the entitlement */
                entitlement_id: string;
            };
            cookie?: never;
        };
        requestBody?: never;
        responses: {
            /** @description Success */
            200: {
                headers: {
                    "RevenueCat-Rate-Limit-Current-Usage": components["headers"]["RateLimitCurrentUsage"];
                    "RevenueCat-Rate-Limit-Current-Limit": components["headers"]["RateLimitCurrentLimit"];
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["ProductsFromEntitlement"];
                };
            };
            400: components["responses"]["BadRequest"];
            401: components["responses"]["Unauthorized"];
            403: components["responses"]["Forbidden"];
            404: components["responses"]["NotFound"];
            423: components["responses"]["Locked"];
            429: components["responses"]["RateLimited"];
            500: components["responses"]["InternalError"];
            503: components["responses"]["InternalError"];
        };
    };
    "attach-products-to-entitlement": {
        parameters: {
            query?: never;
            header?: never;
            path: {
                /** @description ID of the project */
                project_id: string;
                /** @description ID of the entitlement */
                entitlement_id: string;
            };
            cookie?: never;
        };
        requestBody: {
            content: {
                "application/json": {
                    /** @description IDs of the products to be attached to the entitlement. */
                    product_ids: string[];
                };
            };
        };
        responses: {
            /** @description Success. The products were attached to the entitlement */
            200: {
                headers: {
                    "RevenueCat-Rate-Limit-Current-Usage": components["headers"]["RateLimitCurrentUsage"];
                    "RevenueCat-Rate-Limit-Current-Limit": components["headers"]["RateLimitCurrentLimit"];
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["Entitlement"];
                };
            };
            400: components["responses"]["BadRequest"];
            401: components["responses"]["Unauthorized"];
            403: components["responses"]["Forbidden"];
            404: components["responses"]["NotFound"];
            409: components["responses"]["Conflict"];
            422: components["responses"]["UnprocessableEntity"];
            423: components["responses"]["Locked"];
            429: components["responses"]["RateLimited"];
            500: components["responses"]["InternalError"];
            503: components["responses"]["InternalError"];
        };
    };
    "detach-products-from-entitlement": {
        parameters: {
            query?: never;
            header?: never;
            path: {
                /** @description ID of the project */
                project_id: string;
                /** @description ID of the entitlement */
                entitlement_id: string;
            };
            cookie?: never;
        };
        requestBody: {
            content: {
                "application/json": {
                    /** @description IDs of the products to be detached from the entitlement. */
                    product_ids: string[];
                };
            };
        };
        responses: {
            /** @description Success. The products were detached from the entitlement */
            200: {
                headers: {
                    "RevenueCat-Rate-Limit-Current-Usage": components["headers"]["RateLimitCurrentUsage"];
                    "RevenueCat-Rate-Limit-Current-Limit": components["headers"]["RateLimitCurrentLimit"];
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["Entitlement"];
                };
            };
            400: components["responses"]["BadRequest"];
            401: components["responses"]["Unauthorized"];
            403: components["responses"]["Forbidden"];
            404: components["responses"]["NotFound"];
            409: components["responses"]["Conflict"];
            422: components["responses"]["UnprocessableEntity"];
            423: components["responses"]["Locked"];
            429: components["responses"]["RateLimited"];
            500: components["responses"]["InternalError"];
            503: components["responses"]["InternalError"];
        };
    };
    "get-offering": {
        parameters: {
            query?: {
                /**
                 * @description Specifies which fields in the response should be expanded.
                 *      Accepted values are: `package` (requires `project_configuration:packages:read` permission), `package.product` (requires `project_configuration:products:read` permission).
                 */
                expand?: ("package" | "package.product")[];
            };
            header?: never;
            path: {
                /** @description ID of the project */
                project_id: string;
                /** @description ID of the offering */
                offering_id: string;
            };
            cookie?: never;
        };
        requestBody?: never;
        responses: {
            /** @description Success */
            200: {
                headers: {
                    "RevenueCat-Rate-Limit-Current-Usage": components["headers"]["RateLimitCurrentUsage"];
                    "RevenueCat-Rate-Limit-Current-Limit": components["headers"]["RateLimitCurrentLimit"];
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["Offering"];
                };
            };
            400: components["responses"]["BadRequest"];
            401: components["responses"]["Unauthorized"];
            403: components["responses"]["Forbidden"];
            404: components["responses"]["NotFound"];
            423: components["responses"]["Locked"];
            429: components["responses"]["RateLimited"];
            500: components["responses"]["InternalError"];
            503: components["responses"]["InternalError"];
        };
    };
    "update-offering": {
        parameters: {
            query?: never;
            header?: never;
            path: {
                /** @description ID of the project */
                project_id: string;
                /** @description ID of the offering */
                offering_id: string;
            };
            cookie?: never;
        };
        requestBody: {
            content: {
                "application/json": {
                    /**
                     * @description The display name of the offering
                     * @example premium access to features
                     */
                    display_name?: string;
                    /**
                     * @description Indicates if the offering is the current offering
                     * @example true
                     */
                    is_current?: boolean;
                    /** @description Custom metadata of the offering */
                    metadata?: components["schemas"]["OfferingMetadata"];
                };
            };
        };
        responses: {
            /** @description Success. The offering was updated */
            200: {
                headers: {
                    "RevenueCat-Rate-Limit-Current-Usage": components["headers"]["RateLimitCurrentUsage"];
                    "RevenueCat-Rate-Limit-Current-Limit": components["headers"]["RateLimitCurrentLimit"];
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["Offering"];
                };
            };
            400: components["responses"]["BadRequest"];
            401: components["responses"]["Unauthorized"];
            403: components["responses"]["Forbidden"];
            404: components["responses"]["NotFound"];
            409: components["responses"]["Conflict"];
            422: components["responses"]["UnprocessableEntity"];
            423: components["responses"]["Locked"];
            429: components["responses"]["RateLimited"];
            500: components["responses"]["InternalError"];
            503: components["responses"]["InternalError"];
        };
    };
    "delete-offering": {
        parameters: {
            query?: never;
            header?: never;
            path: {
                /** @description ID of the project */
                project_id: string;
                /** @description ID of the offering */
                offering_id: string;
            };
            cookie?: never;
        };
        requestBody?: never;
        responses: {
            /** @description Success */
            200: {
                headers: {
                    "RevenueCat-Rate-Limit-Current-Usage": components["headers"]["RateLimitCurrentUsage"];
                    "RevenueCat-Rate-Limit-Current-Limit": components["headers"]["RateLimitCurrentLimit"];
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["DeletedObject"];
                };
            };
            400: components["responses"]["BadRequest"];
            401: components["responses"]["Unauthorized"];
            403: components["responses"]["Forbidden"];
            404: components["responses"]["NotFound"];
            409: components["responses"]["Conflict"];
            422: components["responses"]["UnprocessableEntity"];
            423: components["responses"]["Locked"];
            429: components["responses"]["RateLimited"];
            500: components["responses"]["InternalError"];
            503: components["responses"]["InternalError"];
        };
    };
    "list-offerings": {
        parameters: {
            query?: {
                starting_after?: string;
                limit?: number;
                /**
                 * @description Specifies which fields in the response should be expanded.
                 *      Accepted values are: `items.package` (requires `project_configuration:packages:read` permission), `items.package.product` (requires `project_configuration:products:read` permission).
                 */
                expand?: ("items.package" | "items.package.product")[];
            };
            header?: never;
            path: {
                /** @description ID of the project */
                project_id: string;
            };
            cookie?: never;
        };
        requestBody?: never;
        responses: {
            /** @description Success */
            200: {
                headers: {
                    "RevenueCat-Rate-Limit-Current-Usage": components["headers"]["RateLimitCurrentUsage"];
                    "RevenueCat-Rate-Limit-Current-Limit": components["headers"]["RateLimitCurrentLimit"];
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["ListOfferings"];
                };
            };
            400: components["responses"]["BadRequest"];
            401: components["responses"]["Unauthorized"];
            403: components["responses"]["Forbidden"];
            404: components["responses"]["NotFound"];
            423: components["responses"]["Locked"];
            429: components["responses"]["RateLimited"];
            500: components["responses"]["InternalError"];
            503: components["responses"]["InternalError"];
        };
    };
    "create-offering": {
        parameters: {
            query?: never;
            header?: never;
            path: {
                /** @description ID of the project */
                project_id: string;
            };
            cookie?: never;
        };
        requestBody: {
            content: {
                "application/json": {
                    /**
                     * @description The custom identifier of the offering
                     * @example default
                     */
                    lookup_key: string;
                    /**
                     * @description The display_name of the offering
                     * @example The standard set of packages
                     */
                    display_name: string;
                    /** @description Custom metadata of the offering */
                    metadata?: components["schemas"]["OfferingMetadata"];
                };
            };
        };
        responses: {
            /** @description Success. The offering was created */
            201: {
                headers: {
                    "RevenueCat-Rate-Limit-Current-Usage": components["headers"]["RateLimitCurrentUsage"];
                    "RevenueCat-Rate-Limit-Current-Limit": components["headers"]["RateLimitCurrentLimit"];
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["Offering"];
                };
            };
            400: components["responses"]["BadRequest"];
            401: components["responses"]["Unauthorized"];
            403: components["responses"]["Forbidden"];
            404: components["responses"]["NotFound"];
            409: components["responses"]["Conflict"];
            422: components["responses"]["UnprocessableEntity"];
            423: components["responses"]["Locked"];
            429: components["responses"]["RateLimited"];
            500: components["responses"]["InternalError"];
            503: components["responses"]["InternalError"];
        };
    };
    "get-package": {
        parameters: {
            query?: {
                /**
                 * @description Specifies which fields in the response should be expanded.
                 *      Accepted values are: `product` (requires `project_configuration:products:read` permission).
                 */
                expand?: "product"[];
            };
            header?: never;
            path: {
                /** @description ID of the project */
                project_id: string;
                /** @description ID of the package */
                package_id: string;
            };
            cookie?: never;
        };
        requestBody?: never;
        responses: {
            /** @description Success */
            200: {
                headers: {
                    "RevenueCat-Rate-Limit-Current-Usage": components["headers"]["RateLimitCurrentUsage"];
                    "RevenueCat-Rate-Limit-Current-Limit": components["headers"]["RateLimitCurrentLimit"];
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["Package"];
                };
            };
            400: components["responses"]["BadRequest"];
            401: components["responses"]["Unauthorized"];
            403: components["responses"]["Forbidden"];
            404: components["responses"]["NotFound"];
            423: components["responses"]["Locked"];
            429: components["responses"]["RateLimited"];
            500: components["responses"]["InternalError"];
            503: components["responses"]["InternalError"];
        };
    };
    "update-package": {
        parameters: {
            query?: never;
            header?: never;
            path: {
                /** @description ID of the project */
                project_id: string;
                /** @description ID of the package */
                package_id: string;
            };
            cookie?: never;
        };
        requestBody: {
            content: {
                "application/json": {
                    /**
                     * @description The display name of the package
                     * @example monthly with one-week trial
                     */
                    display_name?: string;
                    /**
                     * @description The position of the package within the offering
                     * @example 2
                     */
                    position?: number;
                };
            };
        };
        responses: {
            /** @description Success. The package was updated */
            200: {
                headers: {
                    "RevenueCat-Rate-Limit-Current-Usage": components["headers"]["RateLimitCurrentUsage"];
                    "RevenueCat-Rate-Limit-Current-Limit": components["headers"]["RateLimitCurrentLimit"];
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["Package"];
                };
            };
            400: components["responses"]["BadRequest"];
            401: components["responses"]["Unauthorized"];
            403: components["responses"]["Forbidden"];
            404: components["responses"]["NotFound"];
            409: components["responses"]["Conflict"];
            422: components["responses"]["UnprocessableEntity"];
            423: components["responses"]["Locked"];
            429: components["responses"]["RateLimited"];
            500: components["responses"]["InternalError"];
            503: components["responses"]["InternalError"];
        };
    };
    "delete-package-from-offering": {
        parameters: {
            query?: never;
            header?: never;
            path: {
                /** @description ID of the project */
                project_id: string;
                /** @description ID of the package */
                package_id: string;
            };
            cookie?: never;
        };
        requestBody?: never;
        responses: {
            /** @description Success */
            200: {
                headers: {
                    "RevenueCat-Rate-Limit-Current-Usage": components["headers"]["RateLimitCurrentUsage"];
                    "RevenueCat-Rate-Limit-Current-Limit": components["headers"]["RateLimitCurrentLimit"];
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["DeletedObject"];
                };
            };
            400: components["responses"]["BadRequest"];
            401: components["responses"]["Unauthorized"];
            403: components["responses"]["Forbidden"];
            404: components["responses"]["NotFound"];
            409: components["responses"]["Conflict"];
            422: components["responses"]["UnprocessableEntity"];
            423: components["responses"]["Locked"];
            429: components["responses"]["RateLimited"];
            500: components["responses"]["InternalError"];
            503: components["responses"]["InternalError"];
        };
    };
    "list-packages": {
        parameters: {
            query?: {
                starting_after?: string;
                limit?: number;
                /**
                 * @description Specifies which fields in the response should be expanded.
                 *      Accepted values are: `items.product` (requires `project_configuration:products:read` permission).
                 */
                expand?: "items.product"[];
            };
            header?: never;
            path: {
                /** @description ID of the project */
                project_id: string;
                /** @description ID of the offering */
                offering_id: string;
            };
            cookie?: never;
        };
        requestBody?: never;
        responses: {
            /** @description Success */
            200: {
                headers: {
                    "RevenueCat-Rate-Limit-Current-Usage": components["headers"]["RateLimitCurrentUsage"];
                    "RevenueCat-Rate-Limit-Current-Limit": components["headers"]["RateLimitCurrentLimit"];
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["ListPackages"];
                };
            };
            400: components["responses"]["BadRequest"];
            401: components["responses"]["Unauthorized"];
            403: components["responses"]["Forbidden"];
            404: components["responses"]["NotFound"];
            423: components["responses"]["Locked"];
            429: components["responses"]["RateLimited"];
            500: components["responses"]["InternalError"];
            503: components["responses"]["InternalError"];
        };
    };
    "create-packages": {
        parameters: {
            query?: never;
            header?: never;
            path: {
                /** @description ID of the project */
                project_id: string;
                /** @description ID of the offering */
                offering_id: string;
            };
            cookie?: never;
        };
        requestBody: {
            content: {
                "application/json": {
                    /**
                     * @description The lookup_key of the package
                     * @example monthly
                     */
                    lookup_key: string;
                    /**
                     * @description The display name of the package
                     * @example monthly with one-week trial
                     */
                    display_name: string;
                    /**
                     * @description The position of the package in the offering
                     * @example 1
                     */
                    position?: number;
                };
            };
        };
        responses: {
            /** @description Success. The package was created */
            201: {
                headers: {
                    "RevenueCat-Rate-Limit-Current-Usage": components["headers"]["RateLimitCurrentUsage"];
                    "RevenueCat-Rate-Limit-Current-Limit": components["headers"]["RateLimitCurrentLimit"];
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["Package"];
                };
            };
            400: components["responses"]["BadRequest"];
            401: components["responses"]["Unauthorized"];
            403: components["responses"]["Forbidden"];
            404: components["responses"]["NotFound"];
            409: components["responses"]["Conflict"];
            422: components["responses"]["UnprocessableEntity"];
            423: components["responses"]["Locked"];
            429: components["responses"]["RateLimited"];
            500: components["responses"]["InternalError"];
            503: components["responses"]["InternalError"];
        };
    };
    "get-products-from-package": {
        parameters: {
            query?: {
                starting_after?: string;
                limit?: number;
            };
            header?: never;
            path: {
                /** @description ID of the project */
                project_id: string;
                /** @description ID of the package */
                package_id: string;
            };
            cookie?: never;
        };
        requestBody?: never;
        responses: {
            /** @description Success */
            200: {
                headers: {
                    "RevenueCat-Rate-Limit-Current-Usage": components["headers"]["RateLimitCurrentUsage"];
                    "RevenueCat-Rate-Limit-Current-Limit": components["headers"]["RateLimitCurrentLimit"];
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["ProductsFromPackage"];
                };
            };
            400: components["responses"]["BadRequest"];
            401: components["responses"]["Unauthorized"];
            403: components["responses"]["Forbidden"];
            404: components["responses"]["NotFound"];
            423: components["responses"]["Locked"];
            429: components["responses"]["RateLimited"];
            500: components["responses"]["InternalError"];
            503: components["responses"]["InternalError"];
        };
    };
    "attach-products-to-package": {
        parameters: {
            query?: never;
            header?: never;
            path: {
                /** @description ID of the project */
                project_id: string;
                /** @description ID of the package */
                package_id: string;
            };
            cookie?: never;
        };
        requestBody: {
            content: {
                "application/json": {
                    /** @description Product association list */
                    products: components["schemas"]["PackageProductIDAssociation"][];
                };
            };
        };
        responses: {
            /** @description Success. The products were attached to the package. */
            200: {
                headers: {
                    "RevenueCat-Rate-Limit-Current-Usage": components["headers"]["RateLimitCurrentUsage"];
                    "RevenueCat-Rate-Limit-Current-Limit": components["headers"]["RateLimitCurrentLimit"];
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["Package"];
                };
            };
            400: components["responses"]["BadRequest"];
            401: components["responses"]["Unauthorized"];
            403: components["responses"]["Forbidden"];
            404: components["responses"]["NotFound"];
            409: components["responses"]["Conflict"];
            422: components["responses"]["UnprocessableEntity"];
            423: components["responses"]["Locked"];
            429: components["responses"]["RateLimited"];
            500: components["responses"]["InternalError"];
            503: components["responses"]["InternalError"];
        };
    };
    "detach-products-from-package": {
        parameters: {
            query?: never;
            header?: never;
            path: {
                /** @description ID of the project */
                project_id: string;
                /** @description ID of the package */
                package_id: string;
            };
            cookie?: never;
        };
        requestBody: {
            content: {
                "application/json": {
                    /** @description IDs of the products to detach from the package */
                    product_ids: string[];
                };
            };
        };
        responses: {
            /** @description Success */
            200: {
                headers: {
                    "RevenueCat-Rate-Limit-Current-Usage": components["headers"]["RateLimitCurrentUsage"];
                    "RevenueCat-Rate-Limit-Current-Limit": components["headers"]["RateLimitCurrentLimit"];
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["Package"];
                };
            };
            400: components["responses"]["BadRequest"];
            401: components["responses"]["Unauthorized"];
            403: components["responses"]["Forbidden"];
            404: components["responses"]["NotFound"];
            409: components["responses"]["Conflict"];
            422: components["responses"]["UnprocessableEntity"];
            423: components["responses"]["Locked"];
            429: components["responses"]["RateLimited"];
            500: components["responses"]["InternalError"];
            503: components["responses"]["InternalError"];
        };
    };
    "get-subscription": {
        parameters: {
            query?: never;
            header?: never;
            path: {
                /** @description ID of the project */
                project_id: string;
                /** @description ID of the subscription */
                subscription_id: string;
            };
            cookie?: never;
        };
        requestBody?: never;
        responses: {
            /** @description Success */
            200: {
                headers: {
                    "RevenueCat-Rate-Limit-Current-Usage": components["headers"]["RateLimitCurrentUsage"];
                    "RevenueCat-Rate-Limit-Current-Limit": components["headers"]["RateLimitCurrentLimit"];
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["Subscription"];
                };
            };
            400: components["responses"]["BadRequest"];
            401: components["responses"]["Unauthorized"];
            403: components["responses"]["Forbidden"];
            404: components["responses"]["NotFound"];
            423: components["responses"]["Locked"];
            429: components["responses"]["RateLimited"];
            500: components["responses"]["InternalError"];
            503: components["responses"]["InternalError"];
        };
    };
    "get-play-store-subscription-transactions": {
        parameters: {
            query?: never;
            header?: never;
            path: {
                /** @description ID of the project */
                project_id: string;
                /** @description ID of the subscription */
                subscription_id: string;
            };
            cookie?: never;
        };
        requestBody?: never;
        responses: {
            /** @description Success */
            200: {
                headers: {
                    "RevenueCat-Rate-Limit-Current-Usage": components["headers"]["RateLimitCurrentUsage"];
                    "RevenueCat-Rate-Limit-Current-Limit": components["headers"]["RateLimitCurrentLimit"];
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["ListSubscriptionTransaction"];
                };
            };
            400: components["responses"]["BadRequest"];
            401: components["responses"]["Unauthorized"];
            403: components["responses"]["Forbidden"];
            404: components["responses"]["NotFound"];
            423: components["responses"]["Locked"];
            429: components["responses"]["RateLimited"];
            500: components["responses"]["InternalError"];
            503: components["responses"]["InternalError"];
        };
    };
    "refund-play-store-subscription-transaction": {
        parameters: {
            query?: never;
            header?: never;
            path: {
                /** @description ID of the project */
                project_id: string;
                /** @description ID of the subscription */
                subscription_id: string;
                /** @description Identifier of the transaction in the store */
                transaction_id: string;
            };
            cookie?: never;
        };
        requestBody?: never;
        responses: {
            /** @description Success */
            200: {
                headers: {
                    "RevenueCat-Rate-Limit-Current-Usage": components["headers"]["RateLimitCurrentUsage"];
                    "RevenueCat-Rate-Limit-Current-Limit": components["headers"]["RateLimitCurrentLimit"];
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["SubscriptionTransaction"];
                };
            };
            400: components["responses"]["BadRequest"];
            401: components["responses"]["Unauthorized"];
            403: components["responses"]["Forbidden"];
            404: components["responses"]["NotFound"];
            409: components["responses"]["Conflict"];
            422: components["responses"]["UnprocessableEntity"];
            423: components["responses"]["Locked"];
            429: components["responses"]["RateLimited"];
            500: components["responses"]["InternalError"];
            503: components["responses"]["InternalError"];
        };
    };
    "list-subscription-entitlements": {
        parameters: {
            query?: {
                starting_after?: string;
                limit?: number;
            };
            header?: never;
            path: {
                /** @description ID of the project */
                project_id: string;
                /** @description ID of the subscription */
                subscription_id: string;
            };
            cookie?: never;
        };
        requestBody?: never;
        responses: {
            /** @description Success */
            200: {
                headers: {
                    "RevenueCat-Rate-Limit-Current-Usage": components["headers"]["RateLimitCurrentUsage"];
                    "RevenueCat-Rate-Limit-Current-Limit": components["headers"]["RateLimitCurrentLimit"];
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["ListEntitlements"];
                };
            };
            400: components["responses"]["BadRequest"];
            401: components["responses"]["Unauthorized"];
            403: components["responses"]["Forbidden"];
            404: components["responses"]["NotFound"];
            423: components["responses"]["Locked"];
            429: components["responses"]["RateLimited"];
            500: components["responses"]["InternalError"];
            503: components["responses"]["InternalError"];
        };
    };
    "cancel-subscription": {
        parameters: {
            query?: never;
            header?: never;
            path: {
                /** @description ID of the project */
                project_id: string;
                /** @description ID of the subscription */
                subscription_id: string;
            };
            cookie?: never;
        };
        requestBody?: never;
        responses: {
            /** @description Success. The subscription has been successfully canceled. */
            200: {
                headers: {
                    "RevenueCat-Rate-Limit-Current-Usage": components["headers"]["RateLimitCurrentUsage"];
                    "RevenueCat-Rate-Limit-Current-Limit": components["headers"]["RateLimitCurrentLimit"];
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["Subscription"];
                };
            };
            400: components["responses"]["BadRequest"];
            401: components["responses"]["Unauthorized"];
            403: components["responses"]["Forbidden"];
            404: components["responses"]["NotFound"];
            409: components["responses"]["Conflict"];
            422: components["responses"]["UnprocessableEntity"];
            423: components["responses"]["Locked"];
            429: components["responses"]["RateLimited"];
            500: components["responses"]["InternalError"];
            503: components["responses"]["InternalError"];
        };
    };
    "refund-subscription": {
        parameters: {
            query?: never;
            header?: never;
            path: {
                /** @description ID of the project */
                project_id: string;
                /** @description ID of the subscription */
                subscription_id: string;
            };
            cookie?: never;
        };
        requestBody?: never;
        responses: {
            /** @description Success. The subscription has been successfully refunded. */
            200: {
                headers: {
                    "RevenueCat-Rate-Limit-Current-Usage": components["headers"]["RateLimitCurrentUsage"];
                    "RevenueCat-Rate-Limit-Current-Limit": components["headers"]["RateLimitCurrentLimit"];
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["Subscription"];
                };
            };
            400: components["responses"]["BadRequest"];
            401: components["responses"]["Unauthorized"];
            403: components["responses"]["Forbidden"];
            404: components["responses"]["NotFound"];
            409: components["responses"]["Conflict"];
            422: components["responses"]["UnprocessableEntity"];
            423: components["responses"]["Locked"];
            429: components["responses"]["RateLimited"];
            500: components["responses"]["InternalError"];
            503: components["responses"]["InternalError"];
        };
    };
    "get-authorized-subscription-management-url": {
        parameters: {
            query?: never;
            header?: never;
            path: {
                /** @description ID of the project */
                project_id: string;
                /** @description ID of the subscription */
                subscription_id: string;
            };
            cookie?: never;
        };
        requestBody?: never;
        responses: {
            /** @description Success */
            200: {
                headers: {
                    "RevenueCat-Rate-Limit-Current-Usage": components["headers"]["RateLimitCurrentUsage"];
                    "RevenueCat-Rate-Limit-Current-Limit": components["headers"]["RateLimitCurrentLimit"];
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["AuthenticatedManagementUrl"];
                };
            };
            400: components["responses"]["BadRequest"];
            401: components["responses"]["Unauthorized"];
            403: components["responses"]["Forbidden"];
            404: components["responses"]["NotFound"];
            423: components["responses"]["Locked"];
            429: components["responses"]["RateLimited"];
            500: components["responses"]["InternalError"];
            503: components["responses"]["InternalError"];
        };
    };
    "list-subscriptions": {
        parameters: {
            query?: {
                /** @example production */
                environment?: "sandbox" | "production";
                starting_after?: string;
                limit?: number;
            };
            header?: never;
            path: {
                /** @description ID of the project */
                project_id: string;
                /** @description ID of the customer */
                customer_id: string;
            };
            cookie?: never;
        };
        requestBody?: never;
        responses: {
            /** @description Success */
            200: {
                headers: {
                    "RevenueCat-Rate-Limit-Current-Usage": components["headers"]["RateLimitCurrentUsage"];
                    "RevenueCat-Rate-Limit-Current-Limit": components["headers"]["RateLimitCurrentLimit"];
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["ListSubscriptions"];
                };
            };
            400: components["responses"]["BadRequest"];
            401: components["responses"]["Unauthorized"];
            403: components["responses"]["Forbidden"];
            404: components["responses"]["NotFound"];
            423: components["responses"]["Locked"];
            429: components["responses"]["RateLimited"];
            500: components["responses"]["InternalError"];
            503: components["responses"]["InternalError"];
        };
    };
    "get-purchase": {
        parameters: {
            query?: never;
            header?: never;
            path: {
                /** @description ID of the project */
                project_id: string;
                /** @description ID of the purchase */
                purchase_id: string;
            };
            cookie?: never;
        };
        requestBody?: never;
        responses: {
            /** @description Success */
            200: {
                headers: {
                    "RevenueCat-Rate-Limit-Current-Usage": components["headers"]["RateLimitCurrentUsage"];
                    "RevenueCat-Rate-Limit-Current-Limit": components["headers"]["RateLimitCurrentLimit"];
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["Purchase"];
                };
            };
            400: components["responses"]["BadRequest"];
            401: components["responses"]["Unauthorized"];
            403: components["responses"]["Forbidden"];
            404: components["responses"]["NotFound"];
            423: components["responses"]["Locked"];
            429: components["responses"]["RateLimited"];
            500: components["responses"]["InternalError"];
            503: components["responses"]["InternalError"];
        };
    };
    "list-purchase-entitlements": {
        parameters: {
            query?: {
                starting_after?: string;
                limit?: number;
            };
            header?: never;
            path: {
                /** @description ID of the project */
                project_id: string;
                /** @description ID of the purchase */
                purchase_id: string;
            };
            cookie?: never;
        };
        requestBody?: never;
        responses: {
            /** @description Success */
            200: {
                headers: {
                    "RevenueCat-Rate-Limit-Current-Usage": components["headers"]["RateLimitCurrentUsage"];
                    "RevenueCat-Rate-Limit-Current-Limit": components["headers"]["RateLimitCurrentLimit"];
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["ListEntitlements"];
                };
            };
            400: components["responses"]["BadRequest"];
            401: components["responses"]["Unauthorized"];
            403: components["responses"]["Forbidden"];
            404: components["responses"]["NotFound"];
            423: components["responses"]["Locked"];
            429: components["responses"]["RateLimited"];
            500: components["responses"]["InternalError"];
            503: components["responses"]["InternalError"];
        };
    };
    "refund-purchase": {
        parameters: {
            query?: never;
            header?: never;
            path: {
                /** @description ID of the project */
                project_id: string;
                /** @description ID of the purchase */
                purchase_id: string;
            };
            cookie?: never;
        };
        requestBody?: never;
        responses: {
            /** @description Success. The purchase has been successfully refunded. */
            200: {
                headers: {
                    "RevenueCat-Rate-Limit-Current-Usage": components["headers"]["RateLimitCurrentUsage"];
                    "RevenueCat-Rate-Limit-Current-Limit": components["headers"]["RateLimitCurrentLimit"];
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["Purchase"];
                };
            };
            400: components["responses"]["BadRequest"];
            401: components["responses"]["Unauthorized"];
            403: components["responses"]["Forbidden"];
            404: components["responses"]["NotFound"];
            409: components["responses"]["Conflict"];
            422: components["responses"]["UnprocessableEntity"];
            423: components["responses"]["Locked"];
            429: components["responses"]["RateLimited"];
            500: components["responses"]["InternalError"];
            503: components["responses"]["InternalError"];
        };
    };
    "list-purchases": {
        parameters: {
            query?: {
                /** @example production */
                environment?: "sandbox" | "production";
                starting_after?: string;
                limit?: number;
            };
            header?: never;
            path: {
                /** @description ID of the project */
                project_id: string;
                /** @description ID of the customer */
                customer_id: string;
            };
            cookie?: never;
        };
        requestBody?: never;
        responses: {
            /** @description Success */
            200: {
                headers: {
                    "RevenueCat-Rate-Limit-Current-Usage": components["headers"]["RateLimitCurrentUsage"];
                    "RevenueCat-Rate-Limit-Current-Limit": components["headers"]["RateLimitCurrentLimit"];
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["ListPurchases"];
                };
            };
            400: components["responses"]["BadRequest"];
            401: components["responses"]["Unauthorized"];
            403: components["responses"]["Forbidden"];
            404: components["responses"]["NotFound"];
            423: components["responses"]["Locked"];
            429: components["responses"]["RateLimited"];
            500: components["responses"]["InternalError"];
            503: components["responses"]["InternalError"];
        };
    };
    "list-customer-active-entitlements": {
        parameters: {
            query?: {
                starting_after?: string;
                limit?: number;
            };
            header?: never;
            path: {
                /** @description ID of the project */
                project_id: string;
                /** @description ID of the customer */
                customer_id: string;
            };
            cookie?: never;
        };
        requestBody?: never;
        responses: {
            /** @description Success */
            200: {
                headers: {
                    "RevenueCat-Rate-Limit-Current-Usage": components["headers"]["RateLimitCurrentUsage"];
                    "RevenueCat-Rate-Limit-Current-Limit": components["headers"]["RateLimitCurrentLimit"];
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["ListCustomerActiveEntitlements"];
                };
            };
            400: components["responses"]["BadRequest"];
            401: components["responses"]["Unauthorized"];
            403: components["responses"]["Forbidden"];
            404: components["responses"]["NotFound"];
            423: components["responses"]["Locked"];
            429: components["responses"]["RateLimited"];
            500: components["responses"]["InternalError"];
            503: components["responses"]["InternalError"];
        };
    };
    "list-customer-aliases": {
        parameters: {
            query?: {
                starting_after?: string;
                limit?: number;
            };
            header?: never;
            path: {
                /** @description ID of the project */
                project_id: string;
                /** @description ID of the customer */
                customer_id: string;
            };
            cookie?: never;
        };
        requestBody?: never;
        responses: {
            /** @description Success */
            200: {
                headers: {
                    "RevenueCat-Rate-Limit-Current-Usage": components["headers"]["RateLimitCurrentUsage"];
                    "RevenueCat-Rate-Limit-Current-Limit": components["headers"]["RateLimitCurrentLimit"];
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["ListCustomerAliases"];
                };
            };
            400: components["responses"]["BadRequest"];
            401: components["responses"]["Unauthorized"];
            403: components["responses"]["Forbidden"];
            404: components["responses"]["NotFound"];
            423: components["responses"]["Locked"];
            429: components["responses"]["RateLimited"];
            500: components["responses"]["InternalError"];
            503: components["responses"]["InternalError"];
        };
    };
    "list-virtual-currencies-balances": {
        parameters: {
            query?: {
                include_empty_balances?: boolean;
                starting_after?: string;
                limit?: number;
            };
            header?: never;
            path: {
                /** @description ID of the project */
                project_id: string;
                /** @description ID of the customer */
                customer_id: string;
            };
            cookie?: never;
        };
        requestBody?: never;
        responses: {
            /** @description Success */
            200: {
                headers: {
                    "RevenueCat-Rate-Limit-Current-Usage": components["headers"]["RateLimitCurrentUsage"];
                    "RevenueCat-Rate-Limit-Current-Limit": components["headers"]["RateLimitCurrentLimit"];
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["ListVirtualCurrenciesBalances"];
                };
            };
            400: components["responses"]["BadRequest"];
            401: components["responses"]["Unauthorized"];
            403: components["responses"]["Forbidden"];
            404: components["responses"]["NotFound"];
            423: components["responses"]["Locked"];
            429: components["responses"]["RateLimited"];
            500: components["responses"]["InternalError"];
            503: components["responses"]["InternalError"];
        };
    };
    "create-virtual-currencies-transaction": {
        parameters: {
            query?: {
                include_empty_balances?: boolean;
            };
            header?: {
                /** @description This is an optional idempotency key to ensure exactly once execution of the request. */
                "Idempotency-Key"?: string;
            };
            path: {
                /** @description ID of the project */
                project_id: string;
                /** @description ID of the customer */
                customer_id: string;
            };
            cookie?: never;
        };
        requestBody: {
            content: {
                "application/json": {
                    /** @description The adjustments to the virtual currencies */
                    adjustments: {
                        [key: string]: number;
                    };
                    /** @description The reference of the transaction */
                    reference?: string | null;
                };
            };
        };
        responses: {
            /** @description Success */
            200: {
                headers: {
                    "RevenueCat-Rate-Limit-Current-Usage": components["headers"]["RateLimitCurrentUsage"];
                    "RevenueCat-Rate-Limit-Current-Limit": components["headers"]["RateLimitCurrentLimit"];
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["ListVirtualCurrenciesBalances"];
                };
            };
            400: components["responses"]["BadRequest"];
            401: components["responses"]["Unauthorized"];
            403: components["responses"]["Forbidden"];
            404: components["responses"]["NotFound"];
            409: components["responses"]["Conflict"];
            422: components["responses"]["UnprocessableEntity"];
            423: components["responses"]["Locked"];
            429: components["responses"]["RateLimited"];
            500: components["responses"]["InternalError"];
            503: components["responses"]["InternalError"];
        };
    };
    "update-virtual-currencies-balance": {
        parameters: {
            query?: {
                include_empty_balances?: boolean;
            };
            header?: {
                /** @description This is an optional idempotency key to ensure exactly once execution of the request. */
                "Idempotency-Key"?: string;
            };
            path: {
                /** @description ID of the project */
                project_id: string;
                /** @description ID of the customer */
                customer_id: string;
            };
            cookie?: never;
        };
        requestBody: {
            content: {
                "application/json": {
                    /** @description The adjustments to the virtual currencies */
                    adjustments: {
                        [key: string]: number;
                    };
                    /** @description The reference of the transaction */
                    reference?: string | null;
                };
            };
        };
        responses: {
            /** @description Success */
            200: {
                headers: {
                    "RevenueCat-Rate-Limit-Current-Usage": components["headers"]["RateLimitCurrentUsage"];
                    "RevenueCat-Rate-Limit-Current-Limit": components["headers"]["RateLimitCurrentLimit"];
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["ListVirtualCurrenciesBalances"];
                };
            };
            400: components["responses"]["BadRequest"];
            401: components["responses"]["Unauthorized"];
            403: components["responses"]["Forbidden"];
            404: components["responses"]["NotFound"];
            409: components["responses"]["Conflict"];
            422: components["responses"]["UnprocessableEntity"];
            423: components["responses"]["Locked"];
            429: components["responses"]["RateLimited"];
            500: components["responses"]["InternalError"];
            503: components["responses"]["InternalError"];
        };
    };
    "list-customer-attributes": {
        parameters: {
            query?: {
                starting_after?: string;
                limit?: number;
            };
            header?: never;
            path: {
                /** @description ID of the project */
                project_id: string;
                /** @description ID of the customer */
                customer_id: string;
            };
            cookie?: never;
        };
        requestBody?: never;
        responses: {
            /** @description Success */
            200: {
                headers: {
                    "RevenueCat-Rate-Limit-Current-Usage": components["headers"]["RateLimitCurrentUsage"];
                    "RevenueCat-Rate-Limit-Current-Limit": components["headers"]["RateLimitCurrentLimit"];
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["ListCustomerAttributes"];
                };
            };
            400: components["responses"]["BadRequest"];
            401: components["responses"]["Unauthorized"];
            403: components["responses"]["Forbidden"];
            404: components["responses"]["NotFound"];
            423: components["responses"]["Locked"];
            429: components["responses"]["RateLimited"];
            500: components["responses"]["InternalError"];
            503: components["responses"]["InternalError"];
        };
    };
    "set-customer-attributes": {
        parameters: {
            query?: never;
            header?: never;
            path: {
                /** @description ID of the project */
                project_id: string;
                /** @description ID of the customer */
                customer_id: string;
            };
            cookie?: never;
        };
        requestBody: {
            content: {
                "application/json": {
                    attributes: {
                        /**
                         * @description The name of the attribute
                         * @example $email
                         */
                        name: components["schemas"]["CustomerAttributeReservedName"] | components["schemas"]["CustomerAttributeCustomName"];
                        /** @description The value of the attribute. Use null to delete the attribute. */
                        value: string | null;
                    }[];
                };
            };
        };
        responses: {
            /** @description Success. The customer attributes were set */
            200: {
                headers: {
                    "RevenueCat-Rate-Limit-Current-Usage": components["headers"]["RateLimitCurrentUsage"];
                    "RevenueCat-Rate-Limit-Current-Limit": components["headers"]["RateLimitCurrentLimit"];
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["ListCustomerAttributes"];
                };
            };
            400: components["responses"]["BadRequest"];
            401: components["responses"]["Unauthorized"];
            403: components["responses"]["Forbidden"];
            404: components["responses"]["NotFound"];
            409: components["responses"]["Conflict"];
            422: components["responses"]["UnprocessableEntity"];
            423: components["responses"]["Locked"];
            429: components["responses"]["RateLimited"];
            500: components["responses"]["InternalError"];
            503: components["responses"]["InternalError"];
        };
    };
    "list-customer-invoices": {
        parameters: {
            query?: {
                starting_after?: string;
                limit?: number;
            };
            header?: never;
            path: {
                /** @description ID of the project */
                project_id: string;
                /** @description ID of the customer */
                customer_id: string;
            };
            cookie?: never;
        };
        requestBody?: never;
        responses: {
            /** @description Success */
            200: {
                headers: {
                    "RevenueCat-Rate-Limit-Current-Usage": components["headers"]["RateLimitCurrentUsage"];
                    "RevenueCat-Rate-Limit-Current-Limit": components["headers"]["RateLimitCurrentLimit"];
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["ListCustomerInvoices"];
                };
            };
            400: components["responses"]["BadRequest"];
            401: components["responses"]["Unauthorized"];
            403: components["responses"]["Forbidden"];
            404: components["responses"]["NotFound"];
            423: components["responses"]["Locked"];
            429: components["responses"]["RateLimited"];
            500: components["responses"]["InternalError"];
            503: components["responses"]["InternalError"];
        };
    };
    "get-invoice": {
        parameters: {
            query?: never;
            header?: never;
            path: {
                /** @description ID of the project */
                project_id: string;
                /** @description ID of the customer */
                customer_id: string;
                /** @description ID of the invoice */
                invoice_id: string;
            };
            cookie?: never;
        };
        requestBody?: never;
        responses: {
            /** @description File found. Needs to be downloaded from the location header */
            302: {
                headers: {
                    /** @description The URL to download the invoice pdf */
                    location?: string;
                    [name: string]: unknown;
                };
                content?: never;
            };
            400: components["responses"]["BadRequest"];
            401: components["responses"]["Unauthorized"];
            403: components["responses"]["Forbidden"];
            404: components["responses"]["NotFound"];
            423: components["responses"]["Locked"];
            429: components["responses"]["RateLimited"];
            500: components["responses"]["InternalError"];
            503: components["responses"]["InternalError"];
        };
    };
    "get-overview-metrics": {
        parameters: {
            query?: {
                /**
                 * @description ISO 4217 currency code
                 * @example EUR
                 */
                currency?: "USD" | "EUR" | "GBP" | "AUD" | "CAD" | "JPY" | "BRL" | "KRW" | "CNY" | "MXN" | "SEK" | "PLN";
            };
            header?: never;
            path: {
                /** @description ID of the project */
                project_id: string;
            };
            cookie?: never;
        };
        requestBody?: never;
        responses: {
            /** @description Success */
            200: {
                headers: {
                    "RevenueCat-Rate-Limit-Current-Usage": components["headers"]["RateLimitCurrentUsage"];
                    "RevenueCat-Rate-Limit-Current-Limit": components["headers"]["RateLimitCurrentLimit"];
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["OverviewMetrics"];
                };
            };
            400: components["responses"]["BadRequest"];
            401: components["responses"]["Unauthorized"];
            403: components["responses"]["Forbidden"];
            404: components["responses"]["NotFound"];
            423: components["responses"]["Locked"];
            429: components["responses"]["RateLimited"];
            500: components["responses"]["InternalError"];
            503: components["responses"]["InternalError"];
        };
    };
    "search-subscriptions": {
        parameters: {
            query: {
                /** @description Store ID associated with the subscription for the current or next period. */
                store_subscription_identifier: string;
            };
            header?: never;
            path: {
                /** @description ID of the project */
                project_id: string;
            };
            cookie?: never;
        };
        requestBody?: never;
        responses: {
            /** @description Success */
            200: {
                headers: {
                    "RevenueCat-Rate-Limit-Current-Usage": components["headers"]["RateLimitCurrentUsage"];
                    "RevenueCat-Rate-Limit-Current-Limit": components["headers"]["RateLimitCurrentLimit"];
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["ListSubscriptions"];
                };
            };
            400: components["responses"]["BadRequest"];
            401: components["responses"]["Unauthorized"];
            403: components["responses"]["Forbidden"];
            404: components["responses"]["NotFound"];
            423: components["responses"]["Locked"];
            429: components["responses"]["RateLimited"];
            500: components["responses"]["InternalError"];
            503: components["responses"]["InternalError"];
        };
    };
    "search-purchases": {
        parameters: {
            query: {
                /** @description Store ID associated with the one-time purchase. */
                store_purchase_identifier: string;
            };
            header?: never;
            path: {
                /** @description ID of the project */
                project_id: string;
            };
            cookie?: never;
        };
        requestBody?: never;
        responses: {
            /** @description Success */
            200: {
                headers: {
                    "RevenueCat-Rate-Limit-Current-Usage": components["headers"]["RateLimitCurrentUsage"];
                    "RevenueCat-Rate-Limit-Current-Limit": components["headers"]["RateLimitCurrentLimit"];
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["ListPurchases"];
                };
            };
            400: components["responses"]["BadRequest"];
            401: components["responses"]["Unauthorized"];
            403: components["responses"]["Forbidden"];
            404: components["responses"]["NotFound"];
            423: components["responses"]["Locked"];
            429: components["responses"]["RateLimited"];
            500: components["responses"]["InternalError"];
            503: components["responses"]["InternalError"];
        };
    };
}