@freemius/sdk
Version:
JS SDK for integrating your SaaS with Freemius
1 lines • 625 kB
Source Map (JSON)
{"version":3,"file":"index.d.mts","names":["paths","components","operations","webhooks","Record","$defs"],"sources":["../src/api/schema.d.ts","../../src/api/types.ts","../../src/contracts/types.ts","../../src/contracts/purchase.ts","../../src/contracts/portal.ts","../../src/contracts/checkout.ts","../../src/contracts/pricing.ts","../../src/api/parser.ts","../../src/api/client.ts","../../src/api/ApiBase.ts","../../src/api/License.ts","../../src/api/Product.ts","../../src/api/Subscription.ts","../../src/api/User.ts","../../src/api/Payment.ts","../../src/services/ApiService.ts","../../src/checkout/Checkout.ts","../../src/models/PurchaseInfo.ts","../../src/services/PurchaseService.ts","../../src/services/PricingService.ts","../../src/checkout/PricingRetriever.ts","../../src/checkout/PurchaseProcessor.ts","../../src/models/CheckoutRedirectInfo.ts","../../src/checkout/RedirectProcessor.ts","../../src/checkout/CheckoutRequestProcessor.ts","../../src/services/CheckoutService.ts","../../src/services/AuthService.ts","../../src/customer-portal/BillingAction.ts","../../src/customer-portal/InvoiceAction.ts","../../src/customer-portal/SubscriptionCancellationAction.ts","../../src/customer-portal/SubscriptionRenewalCouponAction.ts","../../src/customer-portal/CustomerPortalActionService.ts","../../src/customer-portal/PortalDataRepository.ts","../../src/customer-portal/PurchaseRestorer.ts","../../src/customer-portal/PortalRequestProcessor.ts","../../src/services/CustomerPortalService.ts","../../src/webhook/license.events.ts","../../src/webhook/subscription.events.ts","../../src/webhook/events.ts","../../src/webhook/WebhookListener.ts","../../src/services/WebhookService.ts","../../src/services/EntitlementService.ts","../../src/Freemius.ts"],"sourcesContent":["/**\n * This file was auto-generated by openapi-typescript.\n * Do not make direct changes to the file.\n */\n\nexport interface paths {\n '/developers/{developer_id}/bank_account/{bank_account_id}.json': {\n parameters: {\n query?: never;\n header?: never;\n path: {\n /**\n * @description The ID of the developer.\n * @example 1234\n */\n developer_id: components['parameters']['developer_id'];\n /**\n * @description The ID of the bank account.\n * @example 1234\n */\n bank_account_id: components['parameters']['bank_account_id'];\n };\n cookie?: never;\n };\n /**\n * Retrieve bank account\n * @description Retrieve the developer's bank account.\n */\n get: operations['developers/retrieve-bank-account'];\n put?: never;\n post?: never;\n delete?: never;\n options?: never;\n head?: never;\n patch?: never;\n trace?: never;\n };\n '/developers/{developer_id}/login.json': {\n parameters: {\n query?: never;\n header?: never;\n path: {\n /**\n * @description The ID of the developer.\n * @example 1234\n */\n developer_id: components['parameters']['developer_id'];\n };\n cookie?: never;\n };\n get?: never;\n put?: never;\n /**\n * Log in\n * @description\n * Call this endpoint with your developer email and password and optionally 2FA auth code to login and set the authorization cookie.\n *\n * > This is a public endpoint and does not require any authentication.\n *\n * Please note that this endpoint is not meant for public use and should only be used by the Freemius Developer Dashboard. The login can expect a reCAPTCHA token and it will only work if the reCAPTCHA widget is initialized from the Developer Dashboard itself.\n * To get API tokens for a product or a store, please do it from the Developer Dashboard app itself.\n *\n */\n post: operations['developers/log-in'];\n delete?: never;\n options?: never;\n head?: never;\n patch?: never;\n trace?: never;\n };\n '/products/{product_id}/addons.json': {\n parameters: {\n query?: never;\n header?: never;\n path: {\n /**\n * @description The ID of the product.\n * @example 1234\n */\n product_id: components['parameters']['product_id'];\n };\n cookie?: never;\n };\n /**\n * List all addons\n * @description Retrieve the addons collection.\n */\n get: operations['products/list-addons'];\n put?: never;\n post?: never;\n delete?: never;\n options?: never;\n head?: never;\n patch?: never;\n trace?: never;\n };\n '/products/{product_id}/addons/{addon_id}/plans/{plan_id}/features.json': {\n parameters: {\n query?: never;\n header?: never;\n path: {\n /**\n * @description The ID of the product.\n * @example 1234\n */\n product_id: components['parameters']['product_id'];\n /**\n * @description The ID of the Addon.\n * @example 1234\n */\n addon_id: components['parameters']['addon_id'];\n /**\n * @description The ID of the plan.\n * @example 1234\n */\n plan_id: components['parameters']['plan_id'];\n };\n cookie?: never;\n };\n /**\n * List all plan's features\n * @description Retrieve the plan's features collection for the addon.\n */\n get: operations['addons/list-plans-features'];\n put?: never;\n post?: never;\n delete?: never;\n options?: never;\n head?: never;\n patch?: never;\n trace?: never;\n };\n '/products/{product_id}/addons/{addon_id}/plans.json': {\n parameters: {\n query?: never;\n header?: never;\n path: {\n /**\n * @description The ID of the product.\n * @example 1234\n */\n product_id: components['parameters']['product_id'];\n /**\n * @description The ID of the Addon.\n * @example 1234\n */\n addon_id: components['parameters']['addon_id'];\n };\n cookie?: never;\n };\n /**\n * List all plans\n * @description Retrieve the plans collection for the addon.\n */\n get: operations['addons/list-plans'];\n put?: never;\n post?: never;\n delete?: never;\n options?: never;\n head?: never;\n patch?: never;\n trace?: never;\n };\n '/products/{product_id}/addons/{addon_id}/plans/{plan_id}/pricing.json': {\n parameters: {\n query?: never;\n header?: never;\n path: {\n /**\n * @description The ID of the product.\n * @example 1234\n */\n product_id: components['parameters']['product_id'];\n /**\n * @description The ID of the Addon.\n * @example 1234\n */\n addon_id: components['parameters']['addon_id'];\n /**\n * @description The ID of the plan.\n * @example 1234\n */\n plan_id: components['parameters']['plan_id'];\n };\n cookie?: never;\n };\n /**\n * List all pricings\n * @description Retrieve the pricing collection for the addon for specific the plan.\n */\n get: operations['addons/list-pricings'];\n put?: never;\n post?: never;\n delete?: never;\n options?: never;\n head?: never;\n patch?: never;\n trace?: never;\n };\n '/products/{product_id}/carts/{cart_id}/events.json': {\n parameters: {\n query?: never;\n header?: never;\n path: {\n /**\n * @description The ID of the product.\n * @example 1234\n */\n product_id: components['parameters']['product_id'];\n /**\n * @description The ID of the Cart.\n * @example 1234\n */\n cart_id: components['parameters']['cart_id'];\n };\n cookie?: never;\n };\n /**\n * Retrieve cart events\n * @description Get the list of events associated with a cart.\n */\n get: operations['carts/retrieve-events'];\n put?: never;\n post?: never;\n delete?: never;\n options?: never;\n head?: never;\n patch?: never;\n trace?: never;\n };\n '/products/{product_id}/carts/{cart_id}.json': {\n parameters: {\n query?: never;\n header?: never;\n path: {\n /**\n * @description The ID of the product.\n * @example 1234\n */\n product_id: components['parameters']['product_id'];\n /**\n * @description The ID of the Cart.\n * @example 1234\n */\n cart_id: components['parameters']['cart_id'];\n };\n cookie?: never;\n };\n /**\n * Retrieve a cart\n * @description Retrieve cart details associated with the product.\n *\n * > You can use `enriched=true` to get more details about the cart, for example the `gross`, `coupon_code` and `licenses` fields will only be returned if enriched is enabled. Please see individual parameters in the response data below to learn more.\n */\n get: operations['carts/retrieve'];\n /**\n * Update a cart\n * @description Update the details of a particular cart.\n *\n * > Updating a completed checkout cart is prohibited.\n *\n * > Updating the coupon requires both the `coupon_id` and `coupon_code`.\n */\n put: operations['carts/update'];\n post?: never;\n /**\n * Delete a cart\n * @description Delete a particular cart.\n */\n delete: operations['carts/delete'];\n options?: never;\n head?: never;\n patch?: never;\n trace?: never;\n };\n '/products/{product_id}/carts.json': {\n parameters: {\n query?: never;\n header?: never;\n path: {\n /**\n * @description The ID of the product.\n * @example 1234\n */\n product_id: components['parameters']['product_id'];\n };\n cookie?: never;\n };\n /**\n * List all carts\n * @description Retrieve the cart collection associated with your product.\n *\n * > If `enriched=true` you will get more details about the cart for example the `gross`, `coupon_code` and `licenses` fields.\n *\n * > You can use the `filter` or `email` or `count` parameters to get more refined results from your query. Please learn more about the individual parameters below.\n */\n get: operations['carts/list'];\n put?: never;\n post?: never;\n delete?: never;\n options?: never;\n head?: never;\n patch?: never;\n trace?: never;\n };\n '/products/{product_id}/coupons/{coupon_id}.json': {\n parameters: {\n query?: never;\n header?: never;\n path: {\n /**\n * @description The ID of the product.\n * @example 1234\n */\n product_id: components['parameters']['product_id'];\n /**\n * @description The ID of the coupon.\n * @example 1234\n */\n coupon_id: components['parameters']['coupon_id'];\n };\n cookie?: never;\n };\n /**\n * Retrieve a coupon\n * @description Get details of a specific coupon by ID.\n */\n get: operations['coupons/retrieve'];\n /**\n * Update a coupon\n * @description Update a specific coupon's details by ID.\n */\n put: operations['coupons/update'];\n post?: never;\n /**\n * Delete a coupon\n * @description Delete a specific coupon by ID.\n */\n delete: operations['coupons/delete'];\n options?: never;\n head?: never;\n patch?: never;\n trace?: never;\n };\n '/products/{product_id}/coupons.json': {\n parameters: {\n query?: never;\n header?: never;\n path: {\n /**\n * @description The ID of the product.\n * @example 1234\n */\n product_id: components['parameters']['product_id'];\n };\n cookie?: never;\n };\n /**\n * List all coupons\n * @description Retrieve the coupon collection associated with your product.\n *\n * ### Searching and filtering\n *\n * You can use filtering to search for a particular coupon or a group of coupons. The available parameters are:\n *\n * - `code` - You can explicitly search coupon by the code.\n * - `search` - You can search by coupon code or coupon ID.\n * - `prefix` - You can filter by coupon code prefix.\n *\n * > If using search and filtering, then the `is_enriched` parameter is ignored.\n *\n */\n get: operations['coupons/list'];\n put?: never;\n /**\n * Create a coupon\n * @description Create a new coupon.\n *\n * Alternatively, you can use the [Freemius Developer Dashboard](https://dashboard.freemius.com).\n *\n * > If you're creating coupon from your SaaS for some specific use case, please be sure to set the `plans`, `redemptions_limit`, `end_date`, and `is_one_per_user` properties to the appropriate values, to avoid misuse.\n */\n post: operations['coupons/create'];\n delete?: never;\n options?: never;\n head?: never;\n patch?: never;\n trace?: never;\n };\n '/products/{product_id}/coupons/{coupon_id}/note.json': {\n parameters: {\n query?: never;\n header?: never;\n path: {\n /**\n * @description The ID of the product.\n * @example 1234\n */\n product_id: components['parameters']['product_id'];\n /**\n * @description The ID of the coupon.\n * @example 1234\n */\n coupon_id: components['parameters']['coupon_id'];\n };\n cookie?: never;\n };\n /**\n * Retrieve a note\n * @description Get the details of a note associated with a coupon.\n */\n get: operations['coupons/retrieve-note'];\n /**\n * Update a note\n * @description Update a note for a coupon.\n */\n put: operations['coupons/update-note'];\n /**\n * Create a note\n * @description Create a new note for a coupon.\n */\n post: operations['coupons/create-note'];\n /**\n * Delete a note\n * @description Delete a note for a coupon.\n */\n delete: operations['coupons/delete-note'];\n options?: never;\n head?: never;\n patch?: never;\n trace?: never;\n };\n '/products/{product_id}/coupons/special.json': {\n parameters: {\n query?: never;\n header?: never;\n path: {\n /**\n * @description The ID of the product.\n * @example 1234\n */\n product_id: components['parameters']['product_id'];\n };\n cookie?: never;\n };\n /**\n * Retrieve special coupons\n * @description Get the details of a special coupon.\n * *\n * ### Searching and filtering\n *\n * You can use filtering to search for a particular coupon or a group of coupons by `type`.\n */\n get: operations['coupons/retrieve-special'];\n put?: never;\n post?: never;\n delete?: never;\n options?: never;\n head?: never;\n patch?: never;\n trace?: never;\n };\n '/products/{product_id}/coupons/{coupon_id}/special/{special_id}.json': {\n parameters: {\n query?: never;\n header?: never;\n path: {\n /**\n * @description The ID of the product.\n * @example 1234\n */\n product_id: components['parameters']['product_id'];\n /**\n * @description The ID of the coupon.\n * @example 1234\n */\n coupon_id: components['parameters']['coupon_id'];\n /**\n * @description The ID of the special coupon.\n * @example cart_recovery\n */\n special_id: components['parameters']['special_id'];\n };\n cookie?: never;\n };\n get?: never;\n /**\n * Create a special coupon\n * @description Create a special coupon.\n */\n put: operations['coupons/create-special'];\n post?: never;\n /**\n * Delete a special coupon\n * @description Delete a special coupon by ID.\n */\n delete: operations['coupons/delete-special'];\n options?: never;\n head?: never;\n patch?: never;\n trace?: never;\n };\n '/products/{product_id}/emails/addresses.json': {\n parameters: {\n query?: never;\n header?: never;\n path: {\n /**\n * @description The ID of the product.\n * @example 1234\n */\n product_id: components['parameters']['product_id'];\n };\n cookie?: never;\n };\n /**\n * List all email addresses\n * @description Retrieve the email addresses collection associated with a product. In case the product is using the store's email address configuration, the endpoint will return a `404` error.\n */\n get: operations['products/list-email-addresses'];\n put?: never;\n post?: never;\n /**\n * Delete all email addresses\n * @description Delete all email addresses associated with a product. Sets the product to use the default store-level email addresses.\n */\n delete: operations['products/delete-email-addresses'];\n options?: never;\n head?: never;\n patch?: never;\n trace?: never;\n };\n '/developers/{developer_id}/products/{product_id}/emails/addresses.json': {\n parameters: {\n query?: never;\n header?: never;\n path: {\n /**\n * @description The ID of the developer.\n * @example 1234\n */\n developer_id: components['parameters']['developer_id'];\n /**\n * @description The ID of the product.\n * @example 1234\n */\n product_id: components['parameters']['product_id'];\n };\n cookie?: never;\n };\n get?: never;\n /**\n * Update email addressses\n * @description Update the email addresses associated with a product.\n *\n * > Only a plugin's developer can update the email addresses of their plugin.\n */\n put: operations['products/update-email-addressses'];\n post?: never;\n delete?: never;\n options?: never;\n head?: never;\n patch?: never;\n trace?: never;\n };\n '/developers/{developer_id}/products/{product_id}/emails/{email_id}.json': {\n parameters: {\n query?: never;\n header?: never;\n path: {\n /**\n * @description The ID of the product.\n * @example 1234\n */\n product_id: components['parameters']['product_id'];\n /**\n * @description The ID of the developer.\n * @example 1234\n */\n developer_id: components['parameters']['developer_id'];\n /** @description The ID of the email. */\n email_id: string;\n };\n cookie?: never;\n };\n /**\n * Retrieve an email template\n * @description Retrieve a specific email template by ID.\n * > This is an experimental feature, please don't use it.\n *\n * > Only a developer can access email templates.\n */\n get: operations['products/retrieve-email-template'];\n /**\n * Update an email template\n * @description Update a specific email template by ID.\n * > This is an experimental feature, please don't use it.\n *\n * > Only a developer can update email templates.\n */\n put: operations['products/update-email-template'];\n post?: never;\n delete?: never;\n options?: never;\n head?: never;\n patch?: never;\n trace?: never;\n };\n '/products/{product_id}/events/{event_id}.json': {\n parameters: {\n query?: never;\n header?: never;\n path: {\n /**\n * @description The ID of the product.\n * @example 1234\n */\n product_id: components['parameters']['product_id'];\n /**\n * @description The ID of the event.\n * @example 1234\n */\n event_id: components['parameters']['event_id'];\n };\n cookie?: never;\n };\n /**\n * Retrieve an event\n * @description Retrieve a specific event by its ID. For instructions on creating webhook listeners, see the [documentation](https://freemius.com/help/documentation/saas/events-webhooks/#how_to_create_a_webhook).\n */\n get: operations['events/retrieve'];\n put?: never;\n post?: never;\n delete?: never;\n options?: never;\n head?: never;\n patch?: never;\n trace?: never;\n };\n '/products/{product_id}/events.json': {\n parameters: {\n query?: never;\n header?: never;\n path: {\n /**\n * @description The ID of the product.\n * @example 1234\n */\n product_id: components['parameters']['product_id'];\n };\n cookie?: never;\n };\n /**\n * List all events\n * @description Retrieve a list of events for a specific product. Supports filtering by type, state, and pagination. See the [documentation](https://freemius.com/help/documentation/saas/events-webhooks/#how_to_create_a_webhook) for instructions on creating a webhook to listen for events.\n */\n get: operations['events/list'];\n put?: never;\n post?: never;\n delete?: never;\n options?: never;\n head?: never;\n patch?: never;\n trace?: never;\n };\n '/products/{product_id}/features/{feature_id}.json': {\n parameters: {\n query?: never;\n header?: never;\n path: {\n /**\n * @description The ID of the product.\n * @example 1234\n */\n product_id: components['parameters']['product_id'];\n /**\n * @description The ID of the feature.\n * @example 1234\n */\n feature_id: components['parameters']['feature_id'];\n };\n cookie?: never;\n };\n /**\n * Retrieve a feature\n * @description Retrieve a product's feature. In case of WordPress products, this is used automatically for the [in-dashboard pricing page](https://freemius.com/wordpress/checkout/).\n */\n get: operations['products/retrieve-feature'];\n /**\n * Update a feature\n * @description Update a product's feature. Please note that the `value` attribute can only be set and updated per plan with a developer scope authorization.\n */\n put: operations['products/update-feature'];\n post?: never;\n /**\n * Delete a feature\n * @description Delete a product's feature.\n */\n delete: operations['products/delete-feature'];\n options?: never;\n head?: never;\n patch?: never;\n trace?: never;\n };\n '/products/{product_id}/features.json': {\n parameters: {\n query?: never;\n header?: never;\n path: {\n /**\n * @description The ID of the product.\n * @example 1234\n */\n product_id: components['parameters']['product_id'];\n };\n cookie?: never;\n };\n /**\n * List all features\n * @description Retrieve the product features collection.\n */\n get: operations['products/list-features'];\n put?: never;\n post?: never;\n delete?: never;\n options?: never;\n head?: never;\n patch?: never;\n trace?: never;\n };\n '/products/{product_id}.json': {\n parameters: {\n query?: never;\n header?: never;\n path: {\n /**\n * @description The ID of the product.\n * @example 1234\n */\n product_id: components['parameters']['product_id'];\n };\n cookie?: never;\n };\n /**\n * Retrieve a product\n * @description Query and retrieve a specific product by ID.\n */\n get: operations['products/retrieve'];\n /**\n * Update a product\n * @description Update a specific product by ID.\n */\n put: operations['products/update'];\n post?: never;\n delete?: never;\n options?: never;\n head?: never;\n patch?: never;\n trace?: never;\n };\n '/products/{product_id}/info.json': {\n parameters: {\n query?: never;\n header?: never;\n path: {\n /**\n * @description The ID of the product.\n * @example 1234\n */\n product_id: components['parameters']['product_id'];\n };\n cookie?: never;\n };\n /**\n * Get product info\n * @description Get product info. Please use the Developer Dashboard to update the information of a product.\n */\n get: operations['products/get-info'];\n put?: never;\n post?: never;\n delete?: never;\n options?: never;\n head?: never;\n patch?: never;\n trace?: never;\n };\n '/products/{product_id}/installs/{install_id}/addons/{addon_id}/plans/{plan_id}/features.json': {\n parameters: {\n query?: never;\n header?: never;\n path: {\n /**\n * @description The ID of the product.\n * @example 1234\n */\n product_id: components['parameters']['product_id'];\n /**\n * @description The ID of the install.\n * @example 1234\n */\n install_id: components['parameters']['install_id'];\n /**\n * @description The ID of the Addon.\n * @example 1234\n */\n addon_id: components['parameters']['addon_id'];\n /**\n * @description The ID of the plan.\n * @example 1234\n */\n plan_id: components['parameters']['plan_id'];\n };\n cookie?: never;\n };\n /**\n * List all plan's features for Addon\n * @description Get plan's features collection for an addon on a site.\n */\n get: operations['installations/list-plans-features-for-addon'];\n put?: never;\n post?: never;\n delete?: never;\n options?: never;\n head?: never;\n patch?: never;\n trace?: never;\n };\n '/products/{product_id}/installs/{install_id}/clones/{clone_id}.json': {\n parameters: {\n query?: never;\n header?: never;\n path: {\n /**\n * @description The ID of the product.\n * @example 1234\n */\n product_id: components['parameters']['product_id'];\n /**\n * @description The ID of the install.\n * @example 1234\n */\n install_id: components['parameters']['install_id'];\n /**\n * @description The ID of the clone.\n * @example 1234\n */\n clone_id: components['parameters']['clone_id'];\n };\n cookie?: never;\n };\n get?: never;\n /**\n * Resolve a clone\n * @description Resolve a clone of an install that was created by the product.\n */\n put: operations['installations/resolve-clone'];\n post?: never;\n delete?: never;\n options?: never;\n head?: never;\n patch?: never;\n trace?: never;\n };\n '/products/{product_id}/installs/{install_id}/clones.json': {\n parameters: {\n query?: never;\n header?: never;\n path: {\n /**\n * @description The ID of the product.\n * @example 1234\n */\n product_id: components['parameters']['product_id'];\n /**\n * @description The ID of the install.\n * @example 1234\n */\n install_id: components['parameters']['install_id'];\n };\n cookie?: never;\n };\n get?: never;\n put?: never;\n /**\n * Create a clone\n * @description Create a clone of an install associated with the product.\n *\n * > Use this endpoint if you want to support migration or temporary or long-term duplicates for staging purposes.\n *\n * By default the clone will be created in a pending state. For our [WP SDK](https://freemius.com/help/documentation/wordpress-sdk/safe-mode-clone-resolution-duplicate-website/) the clone will be created in a safe mode state.\n *\n * After creating the clone, you will need to resolve the clone by updating its state and resolution. You will need to handle the licensing logic for the new install entity. Our [WP SDK](https://freemius.com/help/documentation/wordpress-sdk/safe-mode-clone-resolution-duplicate-website/) handles it automatically for WordPress products (plugins and themes).\n */\n post: operations['installations/create-clone'];\n delete?: never;\n options?: never;\n head?: never;\n patch?: never;\n trace?: never;\n };\n '/products/{product_id}/installs/count.json': {\n parameters: {\n query?: never;\n header?: never;\n path: {\n /**\n * @description The ID of the product.\n * @example 1234\n */\n product_id: components['parameters']['product_id'];\n };\n cookie?: never;\n };\n /**\n * Retrieve installs count\n * @description Retrieve the number of installs associated with the product.\n *\n * ### Filtering\n *\n * You can filter the count by `plan_id` or `is_active`.\n */\n get: operations['installations/retrieve-installs-count'];\n put?: never;\n post?: never;\n delete?: never;\n options?: never;\n head?: never;\n patch?: never;\n trace?: never;\n };\n '/products/{product_id}/installs/{install_id}/downgrade.json': {\n parameters: {\n query?: never;\n header?: never;\n path: {\n /**\n * @description The ID of the product.\n * @example 1234\n */\n product_id: components['parameters']['product_id'];\n /**\n * @description The ID of the install.\n * @example 1234\n */\n install_id: components['parameters']['install_id'];\n };\n cookie?: never;\n };\n get?: never;\n /**\n * Downgrade to the default plan\n * @description Downgrade install's plan to product’s default plan. This is usually the free plan.\n */\n put: operations['installations/downgrade-default-plan'];\n post?: never;\n delete?: never;\n options?: never;\n head?: never;\n patch?: never;\n trace?: never;\n };\n '/products/{product_id}/installs/{install_id}/events.json': {\n parameters: {\n query?: never;\n header?: never;\n path: {\n /**\n * @description The ID of the product.\n * @example 1234\n */\n product_id: components['parameters']['product_id'];\n /**\n * @description The ID of the install.\n * @example 1234\n */\n install_id: components['parameters']['install_id'];\n };\n cookie?: never;\n };\n /**\n * List all events\n * @description Retrieve the event collection related to a product install.\n */\n get: operations['installations/list-events'];\n put?: never;\n post?: never;\n delete?: never;\n options?: never;\n head?: never;\n patch?: never;\n trace?: never;\n };\n '/products/{product_id}/installs/{install_id}.json': {\n parameters: {\n query?: never;\n header?: never;\n path: {\n /**\n * @description The ID of the product.\n * @example 1234\n */\n product_id: components['parameters']['product_id'];\n /**\n * @description The ID of the install.\n * @example 1234\n */\n install_id: components['parameters']['install_id'];\n };\n cookie?: never;\n };\n /**\n * Retrieve an install\n * @description Retrieve the details related to the product install.\n */\n get: operations['installations/retrieve-install'];\n /**\n * Update an install\n * @description Update the details related to the product install.\n */\n put: operations['installations/update-install'];\n post?: never;\n /**\n * Delete an install\n * @description Delete a product install. This is different from an uninstall.\n */\n delete: operations['installations/delete-install'];\n options?: never;\n head?: never;\n patch?: never;\n trace?: never;\n };\n '/products/{product_id}/installs.json': {\n parameters: {\n query?: never;\n header?: never;\n path: {\n /**\n * @description The ID of the product.\n * @example 1234\n */\n product_id: components['parameters']['product_id'];\n };\n cookie?: never;\n };\n /**\n * List all installs\n * @description Retrieve the install collection associated with the product.\n *\n * Various filtering and search parameters are available to narrow down the results.\n */\n get: operations['installations/list-installs'];\n put?: never;\n post?: never;\n delete?: never;\n options?: never;\n head?: never;\n patch?: never;\n trace?: never;\n };\n '/products/{product_id}/installs/{install_id}/license.json': {\n parameters: {\n query?: never;\n header?: never;\n path: {\n /**\n * @description The ID of the install.\n * @example 1234\n */\n install_id: components['parameters']['install_id'];\n /**\n * @description The ID of the product.\n * @example 1234\n */\n product_id: components['parameters']['product_id'];\n };\n cookie?: never;\n };\n /**\n * Retrieve an active license by UID\n * @description Retrieve the full information about the active license for the specified install when the UID of the install is known.\n *\n * > No Authorization header is required.\n */\n get: operations['installations/retrieve-active-license-by-uid'];\n put?: never;\n post?: never;\n delete?: never;\n options?: never;\n head?: never;\n patch?: never;\n trace?: never;\n };\n '/products/{product_id}/installs/{install_id}/licenses/{license_id}.json': {\n parameters: {\n query?: never;\n header?: never;\n path: {\n /**\n * @description The ID of the product.\n * @example 1234\n */\n product_id: components['parameters']['product_id'];\n /**\n * @description The ID of the install.\n * @example 1234\n */\n install_id: components['parameters']['install_id'];\n /**\n * @description The ID of the License.\n * @example 1234\n */\n license_id: components['parameters']['license_id'];\n };\n cookie?: never;\n };\n /**\n * Retrieve an active license by ID\n * @description Retrieve specific license of the install when the license ID and the license key are known but the UID of the install is not known.\n *\n * > Retrieve the license information with product level authorization when the UID of the install is unknown.\n */\n get: operations['installations/retrieve-active-license-by-id'];\n /**\n * Activate a license\n * @description Activate license for an install.\n */\n put: operations['installations/activate-license'];\n post?: never;\n /**\n * Deactivate a license\n * @description Deactivate license from an install.\n */\n delete: operations['installations/deactivate-license'];\n options?: never;\n head?: never;\n patch?: never;\n trace?: never;\n };\n '/products/{product_id}/installs/{install_id}/licenses.json': {\n parameters: {\n query?: never;\n header?: never;\n path: {\n /**\n * @description The ID of the product.\n * @example 1234\n */\n product_id: components['parameters']['product_id'];\n /**\n * @description The ID of the install.\n * @example 1234\n */\n install_id: components['parameters']['install_id'];\n };\n cookie?: never;\n };\n /**\n * List all active licenses\n * @description Retrieve the active licenses (usually only one) on an install.\n *\n * > Use this endpoint only when the ID of the license is unknown.\n */\n get: operations['installations/list-active-licenses'];\n put?: never;\n post?: never;\n delete?: never;\n options?: never;\n head?: never;\n patch?: never;\n trace?: never;\n };\n '/products/{product_id}/installs/{install_id}/licenses/{license_id}/subscriptions.json': {\n parameters: {\n query?: never;\n header?: never;\n path: {\n /**\n * @description The ID of the product.\n * @example 1234\n */\n product_id: components['parameters']['product_id'];\n /**\n * @description The ID of the install.\n * @example 1234\n */\n install_id: components['parameters']['install_id'];\n /**\n * @description The ID of the License.\n * @example 1234\n */\n license_id: components['parameters']['license_id'];\n };\n cookie?: never;\n };\n /**\n * List all subscriptions\n * @description Retrieve the subscription collection associated with a license.\n *\n * > A license can have one active and multiple inactive subscriptions. Subscriptions are inactivated when a license is downgraded or upgraded or when the payment method is updated.\n */\n get: operations['licenses/list-subscriptions'];\n put?: never;\n post?: never;\n delete?: never;\n options?: never;\n head?: never;\n patch?: never;\n trace?: never;\n };\n '/products/{product_id}/installs/{install_id}/market_items.json': {\n parameters: {\n query?: never;\n header?: never;\n path: {\n /**\n * @description The ID of the product.\n * @example 1234\n */\n product_id: components['parameters']['product_id'];\n /**\n * @description The ID of the install.\n * @example 1234\n */\n install_id: components['parameters']['install_id'];\n };\n cookie?: never;\n };\n /**\n * List all market items\n * @description Retrieves all market items associated with an `Install` entity.\n *\n * > Market items are other products (not necessarily powered by Freemius) that are installed in the same site as the Freemius powered product.\n *\n * > It is only after the user chooses to opt-in that such data is collected and sent to Freemius. Right now we only support WordPress products i.e. plugins and themes.\n */\n get: operations['installations/list-market-items'];\n put?: never;\n post?: never;\n delete?: never;\n options?: never;\n head?: never;\n patch?: never;\n trace?: never;\n };\n '/developer/{developer_id}/products/{product_id}/installs/{install_id}/members.json': {\n parameters: {\n query?: never;\n header?: never;\n path: {\n /**\n * @description The ID of the product.\n * @example 1234\n */\n product_id: components['parameters']['product_id'];\n /**\n * @description The ID of the install.\n * @example 1234\n */\n install_id: components['parameters']['install_id'];\n };\n cookie?: never;\n };\n get?: never;\n put?: never;\n /**\n * Add team member\n * @description Add new team member to the product.\n *\n * > Only a developer with priviledge can add a new team member to a product.\n */\n post: operations['developers/add-team-member'];\n delete?: never;\n options?: never;\n head?: never;\n patch?: never;\n trace?: never;\n };\n '/products/{product_id}/installs/{install_id}/payments.json': {\n parameters: {\n query?: never;\n header?: never;\n path: {\n /**\n * @description The ID of the product.\n * @example 1234\n */\n product_id: components['parameters']['product_id'];\n /**\n * @description The ID of the install.\n * @example 1234\n */\n install_id: components['parameters']['install_id'];\n };\n cookie?: never;\n };\n /**\n * List all payments\n * @description Retrieve the payment associated with the install.\n *\n * > This lists all payments collected from the license activated on this install.\n */\n get: operations['installations/list-payments'];\n put?: never;\n post?: never;\n delete?: never;\n options?: never;\n head?: never;\n patch?: never;\n trace?: never;\n };\n '/products/{product_id}/installs/{install_id}/permissions.json': {\n parameters: {\n query?: never;\n header?: never;\n path: {\n /**\n * @description The ID of the product.\n * @example 1234\n */\n product_id: components['parameters']['product_id'];\n /**\n * @description The ID of the install.\n * @example 1234\n */\n install_id: components['parameters']['install_id'];\n };\n cookie?: never;\n };\n get?: never;\n /**\n * Update permissions\n * @description Update permissions to a product install.\n */\n put: operations['installations/update-permissions'];\n post?: never;\n delete?: never;\n options?: never;\n head?: never;\n patch?: never;\n trace?: never;\n };\n '/products/{product_id}/installs/{install_id}/plans/{plan_id}.json': {\n parameters: {\n query?: never;\n header?: never;\n path: {\n /**\n * @description The ID of the product.\n * @example 1234\n */\n product_id: components['parameters']['product_id'];\n /**\n * @description The ID of the install.\n * @example 1234\n */\n install_id: components['parameters']['install_id'];\n /**\n * @description The ID of the plan.\n * @example 1234\n */\n plan_id: components['parameters']['plan_id'];\n };\n cookie?: never;\n };\n /**\n * Retrieve a plan\n * @description Retrieve the product plan details to which the install is subscribed.\n */\n get: operations['installations/retrieve-plan'];\n put?: never;\n post?: never;\n delete?: never;\n options?: never;\n head?: never;\n patch?: never;\n trace?: never;\n };\n '/products/{product_id}/installs/{install_id}/plans.json': {\n parameters: {\n query?: never;\n header?: never;\n path: {\n /**\n * @description The ID of the product.\n * @example 1234\n */\n product_id: components['parameters']['product_id'];\n /**\n * @description The ID o