{
  "libs": [
    {
      "path": "/types/common/anyProperties.d.ts",
      "content": "declare interface AnyProperties {\n    [prop: string]: any;\n}\n"
    },
    {
      "path": "/types/common/declaration.deprecated.d.ts",
      "content": "/**\n * The wix-location module contains functionality for getting information\n *  about the URL of the current page and for navigating to other pages.\n * \t[Read more](https://www.wix.com/corvid/reference/wix-location.html#)\n */\ndeclare module 'wix-location' {\n    /**\n     * Gets the base URL of the current page.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-location.html#baseUrl)\n     */\n    const baseUrl: string;\n    /**\n     * Gets the path of the current page's URL.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-location.html#path)\n     */\n    const path: string[];\n    /**\n     * Gets the prefix of a dynamic page's or router page's URL.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-location.html#prefix)\n     */\n    const prefix: string;\n    /**\n     * Gets the protocol of the current page's URL.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-location.html#protocol)\n     */\n    const protocol: string;\n    /**\n     * Gets an object that represents the query segment of the current page's URL.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-location.html#query)\n     */\n    const query: any;\n    /**\n     * Gets an object used to manage the query segment of the current page's URL.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-location.html#queryParams)\n     */\n    const queryParams: wix_location.QueryParams;\n    /**\n     * Gets the full URL of the current page.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-location.html#url)\n     */\n    const url: string;\n    /**\n     * Adds an event handler that runs when an application page's URL changes.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-location.html#onChange)\n     */\n    function onChange(handler: wix_location.LocationChangeHandler): void;\n    /**\n     * Directs the browser to navigate to the specified URL.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-location.html#to)\n     */\n    function to(url: string, options?: wix_location.NavOptions): void;\n}\n/**\n * The wix-site module contains functionality for obtaining information about your site and its pages.\n * \t[Read more](https://www.wix.com/corvid/reference/wix-site.html#)\n */\ndeclare module 'wix-site' {\n    /**\n     * Gets a code representing the site's currency.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-site.html#currency)\n     */\n    const currency: string;\n    /**\n     * Gets information about the current page or lightbox.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-site.html#currentPage)\n     */\n    const currentPage: wix_site.StructurePage | wix_site.StructureLightbox;\n    /**\n     * Gets a code representing the site's language.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-site.html#language)\n     */\n    const language: string;\n    /**\n     * Gets the site's regional settings.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-site.html#regionalSettings)\n     */\n    const regionalSettings: string;\n    /**\n     * Gets the site revision ID.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-site.html#revision)\n     */\n    const revision: string;\n    /**\n     * Gets the site's timezone.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-site.html#timezone)\n     */\n    const timezone: string;\n    /**\n     * [Read more](https://www.wix.com/corvid/reference/wix-site.html#wixRouterSitemapEntry)\n     */\n    const wixRouterSitemapEntry: wix_site.WixRouterSitemapEntry;\n    /**\n     * Gets the site display name.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-site.html#getSiteDisplayName)\n     */\n    function getSiteDisplayName(): string;\n    /**\n     * Returns information about the site's pages, prefixes, and lightboxes.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-site.html#getSiteStructure)\n     */\n    function getSiteStructure(): wix_site.SiteStructure;\n    /**\n     * Optimizes resource fetching of pages and lightboxes in the site so they will load faster.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-site.html#prefetchPageResources)\n     */\n    function prefetchPageResources(prefetchItems: wix_site.PrefetchItems): wix_site.PrefetchResult;\n    /**\n     * Returns the sitemap for a router or dynamic page prefix.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-site.html#routerSitemap)\n     */\n    function routerSitemap(routerPrefix: string): Promise<wix_site.WixRouterSitemapEntry[]>;\n}\n/**\n * The wix-storage module contains functionality for the persistent\n *  storage of key/value data in the site visitor's browser.\n * \t[Read more](https://www.wix.com/corvid/reference/wix-storage.html#)\n */\ndeclare module 'wix-storage' {\n    /**\n     * Used for local storage of data.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-storage.html#local)\n     */\n    const local: wix_storage.Storage;\n    /**\n     * Used for memory storage of data.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-storage.html#memory)\n     */\n    const memory: wix_storage.Storage;\n    /**\n     * Used for session storage of data.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-storage.html#session)\n     */\n    const session: wix_storage.Storage;\n}\n/**\n * The wix-window module contains functionality that pertains to the\n *  current browser window.\n * \t[Read more](https://www.wix.com/corvid/reference/wix-window.html#)\n */\ndeclare module 'wix-window' {\n    /**\n     * Gets the locale of the site visitor's browser.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-window.html#browserLocale)\n     */\n    const browserLocale: string;\n    /**\n     * The ConsentPolicy API is used to perform actions related to the user's allowed cookies and 3rd-party data transfer, such as for GDPR or CCPA purposes.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-window.html#consentPolicy)\n     */\n    const consentPolicy: wix_window.ConsentPolicy;\n    /**\n     * Gets what kind of device is being used to view the page.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-window.html#formFactor)\n     */\n    const formFactor: string;\n    /**\n     * A [lightbox](https://support.wix.com/en/article/about-lightboxes) pops up on your site to grab your visitor's attention.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-window.html#lightbox)\n     */\n    const lightbox: wix_window.Lightbox;\n    /**\n     * **Deprecated.** The `locale` property is being deprecated. Use the\n     * [`browserLocale`](https://www.wix.com/velo/reference/wix-window/browserlocale) property instead.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-window.html#locale)\n     */\n    const locale: string;\n    /**\n     * The Multilingual API is used when working with the languages in a multilingual site.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-window.html#multilingual)\n     */\n    const multilingual: wix_window.Multilingual;\n    /**\n     * Gets the HTTP referrer header field.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-window.html#referrer)\n     */\n    const referrer: string;\n    /**\n     * The [Rendering API](wix-window.html#rendering) is used to control when code is run as a page is being loaded.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-window.html#rendering)\n     */\n    const rendering: wix_window.Rendering;\n    /**\n     * Gets which mode the site is currently being viewed in.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-window.html#viewMode)\n     */\n    const viewMode: string;\n    /**\n     * The Warmup Data API is used to optimize data loading for sites that render both on the server and in the browser,\n     *  allowing costly data fetching operations to be done only once.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-window.html#warmupData)\n     */\n    const warmupData: wix_window.WarmupData;\n    /**\n     * Copies text to the site visitor's clipboard.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-window.html#copyToClipboard)\n     */\n    function copyToClipboard(text: string): Promise<void>;\n    /**\n     * Returns information about the window.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-window.html#getBoundingRect)\n     */\n    function getBoundingRect(): Promise<wix_window.WindowSizeInfo>;\n    /**\n     * Returns the current geolocation of the user.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-window.html#getCurrentGeolocation)\n     */\n    function getCurrentGeolocation(): Promise<wix_window.CurrentGeolocation>;\n    /**\n     * Returns the data that a router passed to the page in its response.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-window.html#getRouterData)\n     */\n    function getRouterData(): any;\n    /**\n     * Opens a lightbox and optionally passes it the given data.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-window.html#openLightbox)\n     */\n    function openLightbox(name: string, data?: any): Promise<any>;\n    /**\n     * Opens a modal window that displays the specified web page.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-window.html#openModal)\n     */\n    function openModal(url: string, options: wix_window.OpenModalOptions): Promise<void>;\n    /**\n     * Sends a message to the page's parent.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-window.html#postMessage)\n     */\n    function postMessage(message: any, target?: string): Promise<any>;\n    /**\n     * Scrolls the page by a given number of pixels.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-window.html#scrollBy)\n     */\n    function scrollBy(x: number, y: number): Promise<void>;\n    /**\n     * Scrolls the page to a specific location on the page.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-window.html#scrollTo)\n     */\n    function scrollTo(x: number, y: number, options?: wix_window.ScrollToOptions): Promise<void>;\n    /**\n     * Sends a tracking event to external analytics tools.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-window.html#trackEvent)\n     */\n    function trackEvent(eventName: string, parameters: wix_window.trackingParametersCustomEvent | wix_window.trackingParametersAddPaymentInfoEvent | wix_window.trackingParametersAddProductImpressionEvent | wix_window.trackingParametersAddToCartEvent | wix_window.trackingParametersCheckoutStepEvent | wix_window.trackingParametersClickProductEvent | wix_window.trackingParametersInitiateCheckoutEvent | wix_window.trackingParametersLeadEvent | wix_window.trackingParametersPurchaseEvent | wix_window.trackingParametersRemoveFromCartEvent | wix_window.trackingParametersStartPaymentEvent | wix_window.trackingParametersViewContentEvent): void;\n}\n/**\n * The wix-animations module contains functionality for working with\n *  animations.\n * \t[Read more](https://www.wix.com/corvid/reference/wix-animations.html#)\n */\ndeclare module 'wix-animations' {\n    /**\n     * Creates a new animation timeline.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-animations.html#timeline)\n     */\n    function timeline(timelineOptions?: wix_animations.TimeLineOptions): wix_animations.TimeLine;\n}\n/**\n * The wix-auth module contains functionality for working with permissions.\n * \t[Read more](https://www.wix.com/corvid/reference/wix-auth.html#)\n */\ndeclare module 'wix-auth' {\n    /**\n     * Allows a site visitor to call a function without the required permissions.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-auth.html#elevate)\n     */\n    function elevate<T extends (...arg: any) => any>(func: T): (...param: Parameters<T>) => ReturnType<T>;\n}\n/**\n * The wix-billing-backend module contains functionality for working with\n *  billing features, such as [price quotes](https://support.wix.com/en/article/wix-price-quotes-creating-and-sending-price-quotes-to-clients) and\n * [invoices](https://support.wix.com/en/article/about-wix-invoices).\n * \t[Read more](https://www.wix.com/corvid/reference/wix-billing-backend.html#)\n */\ndeclare module 'wix-billing-backend' {\n    /**\n     * The wix-billing-backend module contains functionality for working with\n     *  [your site's invoices](https://support.wix.com/en/article/about-wix-invoices)\n     *  from backend code.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-billing-backend.html#invoices)\n     */\n    const invoices: wix_billing_backend.Invoices;\n    /**\n     * The wix-billing-backend module contains functionality for working with\n     *  your site's [price quotes](https://support.wix.com/en/article/wix-price-quotes-creating-and-sending-price-quotes-to-clients)\n     *  from backend code.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-billing-backend.html#priceQuotes)\n     */\n    const priceQuotes: wix_billing_backend.PriceQuotes;\n}\n/**\n * [Read more](https://www.wix.com/corvid/reference/wix-blog-backend.html#)\n */\ndeclare module 'wix-blog-backend' {\n    /**\n     * [Read more](https://www.wix.com/corvid/reference/wix-blog-backend.html#categories)\n     */\n    const categories: wix_blog_backend.Categories;\n    /**\n     * [Read more](https://www.wix.com/corvid/reference/wix-blog-backend.html#posts)\n     */\n    const posts: wix_blog_backend.Posts;\n    /**\n     * [Read more](https://www.wix.com/corvid/reference/wix-blog-backend.html#tags)\n     */\n    const tags: wix_blog_backend.Tags;\n}\n/**\n * The wix-bookings-backend module contains functionality for working with bookings from backend code.\n * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.html#)\n */\ndeclare module 'wix-bookings-backend' {\n    /**\n     * The Bookings API provides functionality for updating and managing bookings created in the Wix Bookings app.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.html#bookings)\n     */\n    const bookings: wix_bookings_backend.Bookings;\n    /**\n     * [Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.html#events)\n     */\n    const events: wix_bookings_backend.Events;\n    /**\n     * The Resources API provides functionality for creating and managing wix-bookings resources.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.html#resources)\n     */\n    const resources: wix_bookings_backend.Resources;\n    /**\n     * The Bookings API provides functionality for creating and managing wix-bookings sessions.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.html#sessions)\n     */\n    const sessions: wix_bookings_backend.Sessions;\n}\n/**\n * The wix-captcha-backend module contains functionality for working with the reCAPTCHA element from backend code.\n * \t[Read more](https://www.wix.com/corvid/reference/wix-captcha-backend.html#)\n */\ndeclare module 'wix-captcha-backend' {\n    /**\n     * Authorizes the CAPTCHA token.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-captcha-backend.html#authorize)\n     */\n    function authorize(token: string): Promise<wix_captcha_backend.SuccessReport>;\n}\n/**\n * The wix-chat-backend module contains functionality for working with the [Wix Chat](https://support.wix.com/en/article/about-wix-chat) application from backend code.\n * \t[Read more](https://www.wix.com/corvid/reference/wix-chat-backend.html#)\n */\ndeclare module 'wix-chat-backend' {\n    /**\n     * Sends a chat message from the backend.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-chat-backend.html#sendMessage)\n     */\n    function sendMessage(messageInfo: wix_chat_backend.MessageInfo): Promise<void>;\n}\n/**\n * The wix-configs-backend module contains functionality for working with user-configured data in Velo package code.\n * \t[Read more](https://www.wix.com/corvid/reference/wix-configs-backend.html#)\n */\ndeclare module 'wix-configs-backend' {\n    /**\n     * Retrieves the value of a specific key in a package's `config.json` file.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-configs-backend.html#getPackageConfig)\n     */\n    function getPackageConfig(key: string): Promise<any>;\n}\n/**\n * The wix-crm-backend module contains functionality for working with\n *  [your site's contacts](https://support.wix.com/en/article/about-your-contact-list)\n *  from backend code.\n * \t[Read more](https://www.wix.com/corvid/reference/wix-crm-backend.html#)\n */\ndeclare module 'wix-crm-backend' {\n    /**\n     * The Contacts API is used to manage a site's contacts.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-crm-backend.html#contacts)\n     */\n    const contacts: wix_crm_backend.Contacts;\n    /**\n     * The Notifications API is used to send notifications to the site owner and contributors.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-crm-backend.html#notifications)\n     */\n    const notifications: wix_crm_backend.Notifications;\n    /**\n     * The Tasks API is used to manage a site's tasks.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-crm-backend.html#tasks)\n     */\n    const tasks: wix_crm_backend.Tasks;\n    /**\n     * The Triggered Emails API is used to send triggered emails to your site's contacts and members.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-crm-backend.html#triggeredEmails)\n     */\n    const triggeredEmails: wix_crm_backend.TriggeredEmails;\n    /**\n     * The Workflows API is used to manage your site's\n     * [workflows](https://support.wix.com/en/article/about-workflows).\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-crm-backend.html#workflows)\n     */\n    const workflows: wix_crm_backend.Workflows;\n    /**\n     * **Deprecated.**\n     * This function will continue to work, but a newer version is available at\n     * [wix-crm-backend.contacts.createContact()](https://www.wix.com/velo/reference/wix-crm-backend/contacts/createcontact).\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-crm-backend.html#createContact)\n     */\n    function createContact(contactInfo: wix_crm_backend.ContactInfo): Promise<string>;\n    /**\n     * **Deprecated.**\n     * This function will continue to work, but a newer version is available at\n     * [wix-crm-backend.contacts.deleteContact()](https://www.wix.com/velo/reference/wix-crm-backend/contacts/deletecontact).\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-crm-backend.html#deleteContact)\n     */\n    function deleteContact(contactId: string, options: wix_crm_backend.DeleteOptions): Promise<void>;\n    /**\n     * **Deprecated.**\n     * This function will continue to work, but a newer version is available at\n     * [wix-crm-backend.triggeredEmails.emailContact()](https://www.wix.com/velo/reference/wix-crm-backend/triggeredemails/emailcontact).\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-crm-backend.html#emailContact)\n     */\n    function emailContact(emailId: string, toContact: string, options?: wix_crm_backend.TriggeredEmails.TriggeredEmailOptions): Promise<void>;\n    /**\n     * **Deprecated.**\n     * This function will continue to work, but a newer version is available at\n     * [wix-crm-backend.contacts.getContact()](https://www.wix.com/velo/reference/wix-crm-backend/contacts/getcontact).\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-crm-backend.html#getContactById)\n     */\n    function getContactById(contactId: string): Promise<wix_crm_backend.ContactInfo>;\n    /**\n     * **Deprecated.**\n     * This function will continue to work, but a newer version is available at\n     * [wix-crm-backend.contacts.updateContact()](https://www.wix.com/velo/reference/wix-crm-backend/contacts/updatecontact).\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-crm-backend.html#updateContact)\n     */\n    function updateContact(contactId: string, contactInfo: wix_crm_backend.ContactInfo): Promise<void>;\n}\n/**\n * The wix-data module contains functionality for working with data in collections.\n * \t[Read more](https://www.wix.com/corvid/reference/wix-data.html#)\n */\ndeclare module 'wix-data' {\n    /**\n     * Creates an aggregation.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-data.html#aggregate)\n     */\n    function aggregate(collectionId: string): wix_data.WixDataAggregate;\n    /**\n     * Adds a number of items to a collection.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-data.html#bulkInsert)\n     */\n    function bulkInsert(collectionId: string, items: any[], options?: wix_data.WixDataOptions): Promise<wix_data.WixDataBulkResult>;\n    /**\n     * Removes a number of items from a collection.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-data.html#bulkRemove)\n     */\n    function bulkRemove(collectionId: string, itemIds: string[], options?: wix_data.WixDataOptions): Promise<wix_data.WixDataBulkRemoveResult>;\n    /**\n     * Inserts or updates a number of items in a collection.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-data.html#bulkSave)\n     */\n    function bulkSave(collectionId: string, items: any[], options?: wix_data.WixDataOptions): Promise<wix_data.WixDataBulkResult>;\n    /**\n     * Updates a number of items in a collection.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-data.html#bulkUpdate)\n     */\n    function bulkUpdate(collectionId: string, items: any[], options?: wix_data.WixDataOptions): Promise<wix_data.WixDataBulkResult>;\n    /**\n     * Creates a filter to be used with datasets and aggregations.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-data.html#filter)\n     */\n    function filter(): wix_data.WixDataFilter;\n    /**\n     * Retrieves an item from a collection.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-data.html#get)\n     */\n    function get(collectionId: string, itemId: string, options?: wix_data.WixDataOptions): Promise<any>;\n    /**\n     * Adds an item to a collection.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-data.html#insert)\n     */\n    function insert(collectionId: string, item: any, options?: wix_data.WixDataOptions): Promise<any>;\n    /**\n     * Inserts a reference in the specified property.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-data.html#insertReference)\n     */\n    function insertReference(collectionId: string, propertyName: string, referringItem: any | string, referencedItem: any | string | any[] | string[], options?: wix_data.WixDataOptions): Promise<void>;\n    /**\n     * Checks if a reference to the referenced item exists in the specified\n     *   property of the referring item.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-data.html#isReferenced)\n     */\n    function isReferenced(collectionId: string, propertyName: string, referringItem: any | string, referencedItem: any | string, options?: wix_data.WixDataOptions): Promise<boolean>;\n    /**\n     * Creates a query for retrieving items from a database collection.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-data.html#query)\n     */\n    function query(collectionId: string): wix_data.WixDataQuery;\n    /**\n     * Gets the full items referenced in the specified property.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-data.html#queryReferenced)\n     */\n    function queryReferenced(collectionId: string, item: any | string, propertyName: string, options?: wix_data.WixDataQueryReferencedOptions): Promise<wix_data.WixDataQueryReferencedResult>;\n    /**\n     * Removes an item from a collection.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-data.html#remove)\n     */\n    function remove(collectionId: string, itemId: string, options?: wix_data.WixDataOptions): Promise<any>;\n    /**\n     * Removes a reference from the specified property.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-data.html#removeReference)\n     */\n    function removeReference(collectionId: string, propertyName: string, referringItem: any | string, referencedItem: any | string | any[] | string[], options?: wix_data.WixDataOptions): Promise<void>;\n    /**\n     * Replaces current references with references in the specified property.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-data.html#replaceReferences)\n     */\n    function replaceReferences(collectionId: string, propertyName: string, referringItem: any | string, referencedItem: any | string | any[] | string[], options?: wix_data.WixDataOptions): Promise<void>;\n    /**\n     * Inserts or updates an item in a collection.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-data.html#save)\n     */\n    function save(collectionId: string, item: any, options?: wix_data.WixDataOptions): Promise<any>;\n    /**\n     * Creates a sort to be used with the dataset `setSort()` function.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-data.html#sort)\n     */\n    function sort(): wix_data.WixDataSort;\n    /**\n     * Removes all items from a collection.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-data.html#truncate)\n     */\n    function truncate(collectionId: string, options?: wix_data.WixDataOptions): Promise<null>;\n    /**\n     * Updates an item in a collection.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-data.html#update)\n     */\n    function update(collectionId: string, item: any, options?: wix_data.WixDataOptions): Promise<any>;\n}\n/**\n * [Read more](https://www.wix.com/corvid/reference/wix-ecom-backend.html#)\n */\ndeclare module 'wix-ecom-backend' {\n    /**\n     * [Read more](https://www.wix.com/corvid/reference/wix-ecom-backend.html#cart)\n     */\n    const cart: wix_ecom_backend.Cart;\n    /**\n     * [Read more](https://www.wix.com/corvid/reference/wix-ecom-backend.html#checkout)\n     */\n    const checkout: wix_ecom_backend.Checkout;\n    /**\n     * [Read more](https://www.wix.com/corvid/reference/wix-ecom-backend.html#currentCart)\n     */\n    const currentCart: wix_ecom_backend.CurrentCart;\n    /**\n     * [Read more](https://www.wix.com/corvid/reference/wix-ecom-backend.html#orders)\n     */\n    const orders: wix_ecom_backend.Orders;\n}\n/**\n * The wix-events module contains functionality for working with\n *  Wix Events from client-side code.\n * \t[Read more](https://www.wix.com/corvid/reference/wix-events.html#)\n */\ndeclare module 'wix-events' {\n    /**\n     * Gets an object containing RSVP functionality.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-events.html#rsvp)\n     */\n    const rsvp: wix_events.Rsvp;\n    /**\n     * Gets an object containing ticketing functionality.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-events.html#tickets)\n     */\n    const tickets: wix_events.Tickets;\n    /**\n     * **Deprecated:** Creates a new RSVP form for the specified event.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-events.html#createEventRsvpForm)\n     */\n    function createEventRsvpForm(eventId: string): wix_events.RsvpForm;\n    /**\n     * Gets a new registration form for the specified event.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-events.html#getForm)\n     */\n    function getForm(eventId: string): Promise<wix_events.Form>;\n}\n/**\n * The wix-events-backend module contains functionality for working with\n *  your site's [Wix events](https://support.wix.com/en/article/about-wix-events).\n * \t[Read more](https://www.wix.com/corvid/reference/wix-events-backend.html#)\n */\ndeclare module 'wix-events-backend' {\n    /**\n     * The Events API provides functionality for updating and managing events created in the Wix Events app or using this Wix Events API.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-events-backend.html#wixEvents)\n     */\n    const wixEvents: wix_events_backend.WixEvents;\n}\n/**\n * The wix-fetch module contains functionality for sending HTTPS requests to a server.\n * \t[Read more](https://www.wix.com/corvid/reference/wix-fetch.html#)\n */\ndeclare module 'wix-fetch' {\n    /**\n     * Retrieves the specified resource from the network using HTTPS.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-fetch.html#fetch)\n     */\n    function fetch(url: string, options?: wix_fetch.WixFetchRequest): Promise<wix_fetch.WixFetchResponse>;\n    /**\n     * Retrieves the specified JSON resource from the network using HTTPS.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-fetch.html#getJSON)\n     */\n    function getJSON(url: string, options?: wix_fetch.WixFetchRequest): Promise<any>;\n}\n/**\n * The wix-groups-backend module contains functionality for managing groups on your site from backend code.\n * \t[Read more](https://www.wix.com/corvid/reference/wix-groups-backend.html#)\n */\ndeclare module 'wix-groups-backend' {\n    /**\n     * The CreateRequests API provides functionality for managing requests to create a group.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-groups-backend.html#createRequests)\n     */\n    const createRequests: wix_groups_backend.CreateRequests;\n    /**\n     * [Read more](https://www.wix.com/corvid/reference/wix-groups-backend.html#groups)\n     */\n    const groups: wix_groups_backend.Groups;\n    /**\n     * [Read more](https://www.wix.com/corvid/reference/wix-groups-backend.html#joinRequests)\n     */\n    const joinRequests: wix_groups_backend.JoinRequests;\n    /**\n     * [Read more](https://www.wix.com/corvid/reference/wix-groups-backend.html#members)\n     */\n    const members: wix_groups_backend.Members;\n    /**\n     * [Read more](https://www.wix.com/corvid/reference/wix-groups-backend.html#roles)\n     */\n    const roles: wix_groups_backend.Roles;\n}\n/**\n * HTTP functions are used to expose an API of your site's functionality.\n * \t[Read more](https://www.wix.com/corvid/reference/wix-http-functions.html#)\n */\ndeclare module 'wix-http-functions' {\n    /**\n     * An object representing an incoming request received by a call to an HTTP function.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-http-functions.html#wixHttpFunctionRequest)\n     */\n    const wixHttpFunctionRequest: wix_http_functions.WixHttpFunctionRequest;\n    /**\n     * Returns a response with status code 400 (Bad Request) and the information from the options parameter.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-http-functions.html#badRequest)\n     */\n    function badRequest(options: wix_http_functions.WixHttpFunctionResponseOptions): wix_http_functions.WixHttpFunctionResponse;\n    /**\n     * Returns a response with status code 201 (Created) and the information from the options parameter.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-http-functions.html#created)\n     */\n    function created(options: wix_http_functions.WixHttpFunctionResponseOptions): wix_http_functions.WixHttpFunctionResponse;\n    /**\n     * A function that responds to requests made with the HTTP DELETE method.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-http-functions.html#delete)\n     */\n    /* Illegal function name 'delete' can't be used here\n    function delete(request: wix_http_functions.WixHttpFunctionRequest): wix_http_functions.WixHttpFunctionResponse;\n    */\n    /**\n     * Returns a response with status code 403 (Forbidden) and the information from the options parameter.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-http-functions.html#forbidden)\n     */\n    function forbidden(options?: wix_http_functions.WixHttpFunctionResponseOptions): wix_http_functions.WixHttpFunctionResponse;\n    /**\n     * A function that responds to requests made with the HTTP GET method.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-http-functions.html#get)\n     */\n    function get(request: wix_http_functions.WixHttpFunctionRequest): wix_http_functions.WixHttpFunctionResponse;\n    /**\n     * Returns a response with status code 404 (Not Found) and the information from the options parameter.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-http-functions.html#notFound)\n     */\n    function notFound(options: wix_http_functions.WixHttpFunctionResponseOptions): wix_http_functions.WixHttpFunctionResponse;\n    /**\n     * Returns a response with status code 200 (OK) and the information from the options parameter.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-http-functions.html#ok)\n     */\n    function ok(options?: wix_http_functions.WixHttpFunctionResponseOptions): wix_http_functions.WixHttpFunctionResponse;\n    /**\n     * A function that responds to requests made with the HTTP OPTIONS method.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-http-functions.html#options)\n     */\n    function options(request: wix_http_functions.WixHttpFunctionRequest): wix_http_functions.WixHttpFunctionResponse;\n    /**\n     * A function that responds to requests made with the HTTP POST method.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-http-functions.html#post)\n     */\n    function post(request: wix_http_functions.WixHttpFunctionRequest): wix_http_functions.WixHttpFunctionResponse;\n    /**\n     * A function that responds to requests made with the HTTP PUT method.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-http-functions.html#put)\n     */\n    function put(request: wix_http_functions.WixHttpFunctionRequest): wix_http_functions.WixHttpFunctionResponse;\n    /**\n     * Returns a response populated with the information from the options parameter.\n     *  The `response()` function creates a custom response built with the\n     *  information passed to the `options` parameter in a `WixHttpFunctionCustomResponseOptions`\n     *  object.\n     *\n     *  Use the `response()` function to create a response to return from an HTTP\n     *  function.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-http-functions.html#response)\n     */\n    function response(options: wix_http_functions.WixHttpFunctionCustomResponseOptions): wix_http_functions.WixHttpFunctionResponse;\n    /**\n     * Returns a response with status code 500 (Internal Server Error) and the information from the options parameter.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-http-functions.html#serverError)\n     */\n    function serverError(options: wix_http_functions.WixHttpFunctionResponseOptions): wix_http_functions.WixHttpFunctionResponse;\n    /**\n     * A function that responds to requests made with any HTTP method.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-http-functions.html#use)\n     */\n    function use(request: wix_http_functions.WixHttpFunctionRequest): wix_http_functions.WixHttpFunctionResponse;\n}\n/**\n * The wix-marketing-backend module contains functionality for working with your\n *  site's marketing tools from backend code.\n * \t[Read more](https://www.wix.com/corvid/reference/wix-marketing-backend.html#)\n */\ndeclare module 'wix-marketing-backend' {\n    /**\n     * The Coupons API is used to manage your site's coupons.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-marketing-backend.html#coupons)\n     */\n    const coupons: wix_marketing_backend.Coupons;\n}\n/**\n * The `wix-media-backend` module contains functionality for working with\n *  media from backend code.\n * \t[Read more](https://www.wix.com/corvid/reference/wix-media-backend.html#)\n */\ndeclare module 'wix-media-backend' {\n    /**\n     * The `mediaManager` module contains functionality for working with\n     *  the media that is stored in your site's [Media Manager](https://support.wix.com/en/article/about-the-media-manager-568956).\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-media-backend.html#mediaManager)\n     */\n    const mediaManager: wix_media_backend.MediaManager;\n}\n/**\n * The wix-members module contains functionality\n * for working with your site members from frontend page code.\n * \t[Read more](https://www.wix.com/corvid/reference/wix-members.html#)\n */\ndeclare module 'wix-members' {\n    /**\n     * The Authentication API contains functionality for authenticating members from frontend code.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-members.html#authentication)\n     */\n    const authentication: wix_members.Authentication;\n    /**\n     * The CurrentMember API contains functionality for viewing and managing site members from frontend code.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-members.html#currentMember)\n     */\n    const currentMember: wix_members.CurrentMember;\n}\n/**\n * The wix-members-backend module contains functionality\n * for working with your site members from backend code.\n * \t[Read more](https://www.wix.com/corvid/reference/wix-members-backend.html#)\n */\ndeclare module 'wix-members-backend' {\n    /**\n     * The Authentication API contains functionality for authenticating users from backend code.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-members-backend.html#authentication)\n     */\n    const authentication: wix_members_backend.Authentication;\n    /**\n     * The Authorization API contains functionality for working with\n     * [member roles](https://support.wix.com/en/site-members/setting-your-members-permissions)\n     * from backend code.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-members-backend.html#authorization)\n     */\n    const authorization: wix_members_backend.Authorization;\n    /**\n     * The Badges API contains functionality for working with [member badges](https://support.wix.com/en/article/about-member-badges) from backend code.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-members-backend.html#badges)\n     */\n    const badges: wix_members_backend.Badges;\n    /**\n     * The CurrentMember API contains functionality for viewing and managing site members from backend code.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-members-backend.html#currentMember)\n     */\n    const currentMember: wix_members_backend.CurrentMember;\n    /**\n     * The Members API contains functionality for viewing and managing site members from backend code.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-members-backend.html#members)\n     */\n    const members: wix_members_backend.Members;\n}\n/**\n * **Deprecated.**\n *  The wix-paid-plans module will continue to work, but a newer version is available at [wix-pricing-plans](https://www.wix.com/velo/reference/wix-pricing-plans).\n * \t[Read more](https://www.wix.com/corvid/reference/wix-paid-plans.html#)\n */\ndeclare module 'wix-paid-plans' {\n    /**\n     * **Deprecated.**\n     *  This function will continue to work, but a newer version is available at [`wix-pricing-plans.orders.requestCurrentMemberOrderCancellation()`](https://www.wix.com/velo/reference/wix-pricing-plans/orders/requestcurrentmemberordercancellation) and [`wix-pricing-plans-backend.orders.cancelOrder()`](wix-pricing-plans-backend/orders/cancelorder).\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-paid-plans.html#cancelOrder)\n     */\n    function cancelOrder(orderId: string): Promise<void>;\n    /**\n     * **Deprecated.**\n     *  This function will continue to work, but a newer version is available at [`wix-pricing-plans.orders.listCurrentMemberOrders()`](https://www.wix.com/velo/reference/wix-pricing-plans/orders/listcurrentmemberorders).\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-paid-plans.html#getCurrentMemberOrders)\n     */\n    function getCurrentMemberOrders(limit?: number, offset?: number): Promise<wix_paid_plans.Order[]>;\n    /**\n     * **Deprecated**.\n     *  This function will continue to work, but newer versions are available\n     *  at [`wix-pricing-plans.checkout.createOnlineOrder()`](https://www.wix.com/velo/reference/wix-pricing-plans/checkout/createonlineorder)\n     *  and\n     *  at [`wix-pricing-plans-backend.checkout.createOfflineOrder()`](https://www.wix.com/velo/reference/wix-pricing-plans-backend/checkout/createofflineorder).\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-paid-plans.html#orderPlan)\n     */\n    function orderPlan(planId: string): Promise<wix_paid_plans.OrderResult>;\n    /**\n     * **Deprecated.**\n     *  This function will continue to work, but a newer version is available\n     *  at [`wix-pricing-plans.startOnlinePurchase()`](https://www.wix.com/velo/reference/wix-pricing-plans/checkout/startonlinepurchase).\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-paid-plans.html#purchasePlan)\n     */\n    function purchasePlan(planId: string): Promise<wix_paid_plans.PurchaseResult>;\n}\n/**\n * The wix-pay module contains functionality for working with\n *  payments from client-side code.\n * \t[Read more](https://www.wix.com/corvid/reference/wix-pay.html#)\n */\ndeclare module 'wix-pay' {\n    /**\n     * Contains functionality for displaying prices in your store in different currencies, getting exchange rates, and converting between currencies.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-pay.html#currencies)\n     */\n    const currencies: wix_pay.Currencies;\n    /**\n     * Starts a payment.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-pay.html#startPayment)\n     */\n    function startPayment(paymentId: string, options?: wix_pay.PaymentOptions): Promise<wix_pay.PaymentResult>;\n}\n/**\n * The wix-pay-backend module contains functionality for working with\n *  payments from backend code.\n * \t[Read more](https://www.wix.com/corvid/reference/wix-pay-backend.html#)\n */\ndeclare module 'wix-pay-backend' {\n    /**\n     * Contains functionality for displaying prices in your store in different currencies, getting exchange rates, and converting between currencies.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-pay-backend.html#currencies)\n     */\n    const currencies: wix_pay_backend.Currencies;\n    /**\n     * Creates a new payment.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-pay-backend.html#createPayment)\n     */\n    function createPayment(paymentInfo: wix_pay_backend.PaymentInfo): Promise<wix_pay_backend.Payment>;\n}\n/**\n * The wix-pricing-plans module contains functionality for working with\n *  pricing plans from client-side code.\n * \t[Read more](https://www.wix.com/corvid/reference/wix-pricing-plans.html#)\n */\ndeclare module 'wix-pricing-plans' {\n    /**\n     * The Pricing Plans Checkout API contains functionality for ordering, checking out, and purchasing\n     *  your site's pricing plan [orders](https://support.wix.com/en/article/pricing-plans-an-overview).\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-pricing-plans.html#checkout)\n     */\n    const checkout: wix_pricing_plans.Checkout;\n    /**\n     * The Pricing Plan Orders API provides functionality for managing pricing plan orders created in the Wix Pricing Plans app or using the Wix Pricing Plans API.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-pricing-plans.html#orders)\n     */\n    const orders: wix_pricing_plans.Orders;\n}\n/**\n * The wix-pricing-plans-backend module contains functionality for managing your\n *  site's pricing plans from backend code.\n * \t[Read more](https://www.wix.com/corvid/reference/wix-pricing-plans-backend.html#)\n */\ndeclare module 'wix-pricing-plans-backend' {\n    /**\n     * The Pricing Plans Checkout API provides functionality for ordering and checking out pricing plan orders created in the Wix Pricing Plans app or using this Wix Pricing Plans API.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-pricing-plans-backend.html#checkout)\n     */\n    const checkout: wix_pricing_plans_backend.Checkout;\n    /**\n     * [Read more](https://www.wix.com/corvid/reference/wix-pricing-plans-backend.html#events)\n     */\n    const events: wix_pricing_plans_backend.Events;\n    /**\n     * The Pricing Plan Orders API provides functionality for managing pricing plan orders created in the Wix Pricing Plans app or using this Wix Pricing Plans API.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-pricing-plans-backend.html#orders)\n     */\n    const orders: wix_pricing_plans_backend.Orders;\n    /**\n     * Archives a single pricing plan.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-pricing-plans-backend.html#archivePlan)\n     */\n    function archivePlan(id: string): Promise<wix_pricing_plans_backend.Plan>;\n    /**\n     * Changes the display order of the pricing plans on the site page and in the Dashboard.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-pricing-plans-backend.html#arrangePlans)\n     */\n    function arrangePlans(ids: string[]): Promise<void>;\n    /**\n     * Sets all pricing plans as not primary.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-pricing-plans-backend.html#clearPrimary)\n     */\n    function clearPrimary(): Promise<void>;\n    /**\n     * Creates a pricing plan.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-pricing-plans-backend.html#createPlan)\n     */\n    function createPlan(planInfo: wix_pricing_plans_backend.CreatePlanInfo): Promise<wix_pricing_plans_backend.Plan>;\n    /**\n     * Gets an existing pricing plan by ID.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-pricing-plans-backend.html#getPlan)\n     */\n    function getPlan(id: string): Promise<wix_pricing_plans_backend.Plan>;\n    /**\n     * Gets statistics about the pricing plans.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-pricing-plans-backend.html#getPlanStats)\n     */\n    function getPlanStats(): Promise<wix_pricing_plans_backend.PlansStats>;\n    /**\n     * Lists pricing plans.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-pricing-plans-backend.html#listPlans)\n     */\n    function listPlans(planIds?: string[], options?: wix_pricing_plans_backend.ListPlanInfo): Promise<wix_pricing_plans_backend.Plans[]>;\n    /**\n     * Lists public pricing plans.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-pricing-plans-backend.html#listPublicPlans)\n     */\n    function listPublicPlans(planIds?: string[], options?: wix_pricing_plans_backend.ListPublicPlanOptions): Promise<wix_pricing_plans_backend.PublicPlans[]>;\n    /**\n     * Marks a pricing plan as the primary pricing plan.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-pricing-plans-backend.html#makePlanPrimary)\n     */\n    function makePlanPrimary(id: string): Promise<wix_pricing_plans_backend.Plan>;\n    /**\n     * Creates a query to retrieve a list of public pricing plans.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-pricing-plans-backend.html#queryPublicPlans)\n     */\n    function queryPublicPlans(): Promise<wix_pricing_plans_backend.PublicPlansQueryBuilder>;\n    /**\n     * Sets visibility for non-archived pricing plans. Public plans are plans that are set to visible.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-pricing-plans-backend.html#setPlanVisibility)\n     */\n    function setPlanVisibility(id: string, visible: boolean): Promise<wix_pricing_plans_backend.Plan>;\n    /**\n     * Updates a pricing plan.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-pricing-plans-backend.html#updatePlan)\n     */\n    function updatePlan(planInfo: wix_pricing_plans_backend.UpdatePlanInfo): Promise<wix_pricing_plans_backend.Plan>;\n}\n/**\n * The wix-realtime module contains functionality for publishing messages\n *  on channels that site visitors can subscribe to.\n * \t[Read more](https://www.wix.com/corvid/reference/wix-realtime.html#)\n */\ndeclare module 'wix-realtime' {\n    /**\n     * Adds an event handler that runs when a connection or reconnection\n     *  occurs.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-realtime.html#onConnected)\n     */\n    function onConnected(handler: wix_realtime.ConnectionHandler): void;\n    /**\n     * Adds an event handler that runs when a disconnection occurs.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-realtime.html#onDisconnected)\n     */\n    function onDisconnected(handler: wix_realtime.DisconnectionHandler): void;\n    /**\n     * Adds an event handler that runs when an error occurs.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-realtime.html#onError)\n     */\n    function onError(handler: wix_realtime.ErrorHandler): void;\n    /**\n     * Subscribes to a channel or channel resource.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-realtime.html#subscribe)\n     */\n    function subscribe(channel: wix_realtime.Channel, handler: wix_realtime.MessageHandler): Promise<string>;\n    /**\n     * Unsubscribes from a channel or channel resource.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-realtime.html#unsubscribe)\n     */\n    function unsubscribe(options: wix_realtime.UnsubscribeOptions): Promise<void>;\n}\n/**\n * The wix-realtime module contains functionality for publishing messages\n *  on channels that site visitors can subscribe to and for managing channel permissions.\n * \t[Read more](https://www.wix.com/corvid/reference/wix-realtime-backend.html#)\n */\ndeclare module 'wix-realtime-backend' {\n    /**\n     * Returns the realtime permissions router.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-realtime-backend.html#permissionsRouter)\n     */\n    const permissionsRouter: wix_realtime_backend.PermissionsRouter;\n    /**\n     * Publishes a message to a channel or channel resource.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-realtime-backend.html#publish)\n     */\n    function publish(channel: wix_realtime_backend.Channel, payload: any, options?: wix_realtime_backend.PublishOptions): Promise<void> & void;\n    /**\n     * Checks permissions for a subscriber on a channel or channel resource.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-realtime-backend.html#realtime_check_permission)\n     */\n    function realtime_check_permission(channel: wix_realtime_backend.Channel, subscriber: wix_realtime_backend.Subscriber): Promise<wix_realtime_backend.ChannelPermissions> & wix_realtime_backend.ChannelPermissions;\n}\n/**\n * This module contains the APIs for code routers and data binding router hooks.\n * \t[Read more](https://www.wix.com/corvid/reference/wix-router.html#)\n */\ndeclare module 'wix-router' {\n    /**\n     * [Read more](https://www.wix.com/corvid/reference/wix-router.html#wixRouterSitemapEntry)\n     */\n    const wixRouterSitemapEntry: wix_router.WixRouterSitemapEntry;\n    /**\n     * Registers a hook that is called after a router.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-router.html#afterRouter)\n     */\n    function afterRouter(request: wix_router.WixRouterRequest, response: wix_router.WixRouterResponse): Promise<wix_router.WixRouterResponse>;\n    /**\n     * Registers a hook that is called after a sitemap is created.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-router.html#afterSitemap)\n     */\n    function afterSitemap(request: wix_router.WixRouterSitemapRequest, sitemapEntries: wix_router.WixRouterSitemapEntry[]): Promise<wix_router.WixRouterSitemapEntry[]>;\n    /**\n     * Registers a hook that is called before a router.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-router.html#beforeRouter)\n     */\n    function beforeRouter(request: wix_router.WixRouterRequest): Promise<wix_router.WixRouterResponse>;\n    /**\n     * Registers a hook that is called after a route is resolved by the data binding router, but before the wix-data query is executed.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-router.html#customizeQuery)\n     */\n    function customizeQuery(request: wix_router.WixRouterRequest, route: string, query: wix_data.WixDataQuery): wix_data.WixDataQuery;\n    /**\n     * Returns a response with a status code 403 (Forbidden) and instructs the router to show a 403 page.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-router.html#forbidden)\n     */\n    function forbidden(message?: string): Promise<wix_router.WixRouterResponse>;\n    /**\n     * Returns a response that instructs the router to continue.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-router.html#next)\n     */\n    function next(): Promise<wix_router.WixRouterResponse>;\n    /**\n     * Returns a response with a status code 404 (Not Found) and instructs the router to show a 404 page.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-router.html#notFound)\n     */\n    function notFound(message?: string): Promise<wix_router.WixRouterResponse>;\n    /**\n     * Returns a response with a status code 200 (OK) and instructs the router to show the selected page.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-router.html#ok)\n     */\n    function ok(Page: string | string[], routerReturnedData?: any, head?: wix_router.WixRouterResponse.HeadOptions): Promise<wix_router.WixRouterResponse>;\n    /**\n     * Returns a response with a status code of 301 (Moved Permanently) or 302 (Found) and instructs the router to redirect to the given URL.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-router.html#redirect)\n     */\n    function redirect(url: string, statusCode?: string): Promise<wix_router.WixRouterResponse>;\n    /**\n     * Function containing routing logic for a given URL prefix.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-router.html#router)\n     */\n    function router(request: wix_router.WixRouterRequest): Promise<wix_router.WixRouterResponse>;\n    /**\n     * Returns a response with the specified HTTP status code with an optional message.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-router.html#sendStatus)\n     */\n    function sendStatus(statusCode: string, message?: string): Promise<wix_router.WixRouterResponse>;\n    /**\n     * Function containing sitemap logic for a given URL prefix.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-router.html#sitemap)\n     */\n    function sitemap(request: wix_router.WixRouterSitemapRequest): Promise<wix_router.WixRouterSitemapEntry[]>;\n}\n/**\n * The wix-search module contains functionality for searching a site.\n * \t[Read more](https://www.wix.com/corvid/reference/wix-search.html#)\n */\ndeclare module 'wix-search' {\n    /**\n     * Creates a filter builder for building search filters.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-search.html#filter)\n     */\n    function filter(): wix_search.WixSearchFilterBuilder;\n    /**\n     * Creates a search builder.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-search.html#search)\n     */\n    function search(phrase?: string): wix_search.WixSearchBuilder;\n}\n/**\n * The wix-secrets-backend module contains functionality for\n * managing secrets you safely store in your site's [Secrets Manager](https://support.wix.com/en/article/velo-about-the-secrets-manager).\n * \t[Read more](https://www.wix.com/corvid/reference/wix-secrets-backend.html#)\n */\ndeclare module 'wix-secrets-backend' {\n    /**\n     * Creates a new secret.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-secrets-backend.html#createSecret)\n     */\n    function createSecret(secret: wix_secrets_backend.Secret): Promise<string>;\n    /**\n     * Deletes an existing secret by ID.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-secrets-backend.html#deleteSecret)\n     */\n    function deleteSecret(id: string): Promise<void>;\n    /**\n     * Gets a secret by name.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-secrets-backend.html#getSecret)\n     */\n    function getSecret(name: string): Promise<string>;\n    /**\n     * Gets a list of objects containing information about all secrets stored in the Secrets Manager.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-secrets-backend.html#listSecretInfo)\n     */\n    function listSecretInfo(): Promise<wix_secrets_backend.SecretInfo[]>;\n    /**\n     * Updates the specified fields of an existing secret by ID.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-secrets-backend.html#updateSecret)\n     */\n    function updateSecret(id: string, secret: wix_secrets_backend.SecretUpdateInfo): Promise<void>;\n}\n/**\n * The wix-seo module contains functionality for working with\n *  [your site's SEO](https://support.wix.com/en/article/search-engine-optimization-seo) from\n *  client-side code.\n * \t[Read more](https://www.wix.com/corvid/reference/wix-seo.html#)\n */\ndeclare module 'wix-seo' {\n    /**\n     * Gets the page's SEO-related link tags.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-seo.html#links)\n     */\n    const links: wix_seo.Link[];\n    /**\n     * Gets the page's SEO-related meta tags.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-seo.html#metaTags)\n     */\n    const metaTags: wix_seo.MetaTag[];\n    /**\n     * Gets the page's structured data.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-seo.html#structuredData)\n     */\n    const structuredData: any[];\n    /**\n     * Gets the page's title.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-seo.html#title)\n     */\n    const title: string;\n    /**\n     * Sets the page's SEO-related link tags.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-seo.html#setLinks)\n     */\n    function setLinks(links: wix_seo.Link[]): Promise<void>;\n    /**\n     * Sets the page's SEO-related meta tags.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-seo.html#setMetaTags)\n     */\n    function setMetaTags(metaTags: wix_seo.MetaTag[]): Promise<void>;\n    /**\n     * Sets the page's structured data.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-seo.html#setStructuredData)\n     */\n    function setStructuredData(structuredData: any[]): Promise<void>;\n    /**\n     * Sets the page's title.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-seo.html#setTitle)\n     */\n    function setTitle(title: string): Promise<void>;\n}\n/**\n * The wix-site-backend module contains functionality for working with\n *  your site and its pages from backend code.\n * \t[Read more](https://www.wix.com/corvid/reference/wix-site-backend.html#)\n */\ndeclare module 'wix-site-backend' {\n    /**\n     * The generalInfo API contains functionality for getting\n     *  [the information about your business](https://support.wix.com/en/article/adding-your-sites-business-info) that\n     *  has been entered in the **General Info** section of your site's [**Dashboard**](https://support.wix.com/en/article/wix-dashboard-overview).\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-site-backend.html#generalInfo)\n     */\n    const generalInfo: wix_site_backend.GeneralInfo;\n    /**\n     * Invalidates the cache for a site.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-site-backend.html#invalidateCache)\n     */\n    function invalidateCache(): Promise<void>;\n}\n/**\n * The wix-stores-backend module contains functionality for working with your\n *  site's store from backend code.\n * \t[Read more](https://www.wix.com/corvid/reference/wix-stores-backend.html#)\n */\ndeclare module 'wix-stores-backend' {\n    /**\n     * Adds media items by ID to a product.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-stores-backend.html#addProductMedia)\n     */\n    function addProductMedia(productId: string, media: wix_stores_backend.Media[]): Promise<void>;\n    /**\n     * Adds media items by ID to product options.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-stores-backend.html#addProductMediaToChoices)\n     */\n    function addProductMediaToChoices(productId: string, mediaChoices: wix_stores_backend.MediaChoice[]): Promise<void>;\n    /**\n     * Adds products by ID to a product collection.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-stores-backend.html#addProductsToCollection)\n     */\n    function addProductsToCollection(collectionId: string, productIds: string[]): Promise<void>;\n    /**\n     * Adjusts a numeric property for up to 100 products at a time.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-stores-backend.html#bulkAdjustProductProperty)\n     */\n    function bulkAdjustProductProperty(ids: string[], adjust: wix_stores_backend.BulkAdjustProperties): Promise<wix_stores_backend.BulkUpdateResponse>;\n    /**\n     * Updates a property for up to 100 products at a time.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-stores-backend.html#bulkUpdateProductProperty)\n     */\n    function bulkUpdateProductProperty(ids: string[], set: wix_stores_backend.BulkUpdateProperties): Promise<wix_stores_backend.BulkUpdateResponse>;\n    /**\n     * Creates a new fulfillment in an order.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-stores-backend.html#createFulfillment)\n     */\n    function createFulfillment(orderId: string, fulfillment: wix_stores_backend.FulfillmentInfo): Promise<wix_stores_backend.NewFulfillmentAndOrder>;\n    /**\n     * Creates a new order.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-stores-backend.html#createOrder)\n     */\n    function createOrder(orderInfo: wix_stores_backend.OrderInfo): Promise<wix_stores_backend.Order>;\n    /**\n     * Creates a new product.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-stores-backend.html#createProduct)\n     */\n    function createProduct(productInfo: wix_stores_backend.ProductInfo): Promise<wix_stores_backend.Product>;\n    /**\n     * Subtracts a set number of items from inventory.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-stores-backend.html#decrementInventory)\n     */\n    function decrementInventory(items: wix_stores_backend.DecrementInfo[]): Promise<void>;\n    /**\n     * Deletes a fulfillment from an order.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-stores-backend.html#deleteFulfillment)\n     */\n    function deleteFulfillment(orderId: string, fulfillmentId: string): Promise<wix_stores_backend.Order>;\n    /**\n     * Deletes an existing product.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-stores-backend.html#deleteProduct)\n     */\n    function deleteProduct(productId: string): Promise<void>;\n    /**\n     * Deletes all options for an existing product.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-stores-backend.html#deleteProductOptions)\n     */\n    function deleteProductOptions(productId: string): Promise<void>;\n    /**\n     * Gets the specified abandoned shopping cart.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-stores-backend.html#getAbandonedCart)\n     */\n    function getAbandonedCart(cartId: string): Promise<wix_stores_backend.AbandonedCart>;\n    /**\n     * Gets the current site visitor's shopping cart.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-stores-backend.html#getCurrentCart)\n     */\n    function getCurrentCart(): Promise<wix_stores_backend.Cart>;\n    /**\n     * Generates a link to a PDF file containing information about one or more specified orders, up to 1000 orders.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-stores-backend.html#getOrdersLink)\n     */\n    function getOrdersLink(orderIds: string[]): Promise<wix_stores_backend.LinkToPdf>;\n    /**\n     * Generates a link to a PDF file containing an order's packing slip.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-stores-backend.html#getPackingSlipLink)\n     */\n    function getPackingSlipLink(orderId: string): Promise<wix_stores_backend.LinkToPdf>;\n    /**\n     * Gets the availability of a product based on the specified option choices.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-stores-backend.html#getProductOptionsAvailability)\n     */\n    function getProductOptionsAvailability(productId: string, choices: wix_stores_backend.ProductChoices): Promise<wix_stores_backend.ProductOptionsAvailability>;\n    /**\n     * Gets a product's available variants based on the specified product ID and either option choices or variant IDs.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-stores-backend.html#getProductVariants)\n     */\n    function getProductVariants(productId: string, options?: wix_stores_backend.ProductVariantOptions): Promise<wix_stores_backend.VariantItem[]>;\n    /**\n     * Adds a set number of items from inventory.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-stores-backend.html#incrementInventory)\n     */\n    function incrementInventory(items: wix_stores_backend.IncrementInfo[]): Promise<void>;\n    /**\n     * Removes media items by ID from a product.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-stores-backend.html#removeProductMedia)\n     */\n    function removeProductMedia(productId: string, media: wix_stores_backend.Media[]): Promise<void>;\n    /**\n     * Removes media items by ID from a product's options.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-stores-backend.html#removeProductMediaFromChoices)\n     */\n    function removeProductMediaFromChoices(productId: string, mediaChoices: wix_stores_backend.MediaChoice[]): Promise<void>;\n    /**\n     * Removes products by ID from a collection.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-stores-backend.html#removeProductsFromCollection)\n     */\n    function removeProductsFromCollection(collectionId: string, productIds: string[]): Promise<void>;\n    /**\n     * Resets the data (such as the price and the weight) of all variants for a given product to their default values.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-stores-backend.html#resetVariantData)\n     */\n    function resetVariantData(productId: string): Promise<void>;\n    /**\n     * Sends a fulfillment email to a specified custom fulfiller of a line item in a given order.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-stores-backend.html#sendFulfillmentEmail)\n     */\n    function sendFulfillmentEmail(orderId: string, fulfillerId: string): Promise<void>;\n    /**\n     * Updates an existing fulfillment in an order.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-stores-backend.html#updateFulfillment)\n     */\n    function updateFulfillment(orderId: string, fulfillmentId: string, trackingInfo: wix_stores_backend.TrackingInfo): Promise<wix_stores_backend.Order>;\n    /**\n     * Updates an existing inventory item's variants by inventory ID.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-stores-backend.html#updateInventoryVariantFields)\n     */\n    function updateInventoryVariantFields(inventoryId: string, inventoryInfo: wix_stores_backend.InventoryItemVariantInfo): Promise<void>;\n    /**\n     * Updates an existing inventory item's variants by product ID.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-stores-backend.html#updateInventoryVariantFieldsByProductId)\n     */\n    function updateInventoryVariantFieldsByProductId(productId: string, inventoryInfo: wix_stores_backend.InventoryItemVariantInfo): Promise<void>;\n    /**\n     * Updates an existing product by ID.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-stores-backend.html#updateProductFields)\n     */\n    function updateProductFields(productId: string, productInfo: wix_stores_backend.UpdateProductInfo): Promise<wix_stores_backend.Product>;\n    /**\n     * Updates the data (such as the price and the weight) of an existing product variant in the store.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-stores-backend.html#updateVariantData)\n     */\n    function updateVariantData(productId: string, variantInfo: wix_stores_backend.VariantInfo[]): Promise<wix_stores_backend.VariantItem>;\n}\n/**\n * **Deprecated.**\n * The wix-users-backend module will continue to work, but a newer version is available at\n * [wix-members-backend](https://www.wix.com/velo/reference/wix-members-backend).\n * \t[Read more](https://www.wix.com/corvid/reference/wix-users-backend.html#)\n */\ndeclare module 'wix-users-backend' {\n    /**\n     * **Deprecated.**\n     * This code will continue to work, but a newer version is available at\n     * [wix-members-backend.badges](https://www.wix.com/velo/reference/wix-members-backend/badges).\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-users-backend.html#badges)\n     */\n    const badges: wix_users_backend.Badges;\n    /**\n     * **Deprecated.**\n     * This object will continue to work, but a newer version is available at\n     * [wix-members-backend.currentMember.getMember()](https://www.wix.com/velo/reference/wix-members-backend/currentmember/getmember).\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-users-backend.html#currentUser)\n     */\n    const currentUser: wix_users_backend.User;\n    /**\n     * **Deprecated.**\n     * This code will continue to work, but a newer version is available at\n     * [wix-members-backend.authorization](https://www.wix.com/velo/reference/wix-members-backend/authorization).\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-users-backend.html#roles)\n     */\n    const roles: wix_users_backend.Roles;\n    /**\n     * **Deprecated.**\n     * This function will continue to work, but a newer version is available at\n     * [wix-members-backend.authentication.approveByEmail()](https://www.wix.com/velo/reference/wix-members-backend/authentication/approvebyemail).\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-users-backend.html#approveByEmail)\n     */\n    function approveByEmail(email: string): Promise<string>;\n    /**\n     * **Deprecated.**\n     * This function will continue to work, but a newer version is available at\n     * [wix-members-backend.authentication.approveByToken()](https://www.wix.com/velo/reference/wix-members-backend/authentication/approvebytoken).\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-users-backend.html#approveByToken)\n     */\n    function approveByToken(token: string): Promise<string>;\n    /**\n     * **Deprecated.**\n     * This function will continue to work, but a newer version is available at\n     * [wix-members-backend.authentication.blockByEmail()](https://www.wix.com/velo/reference/wix-members-backend/authentication/blockbyemail).\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-users-backend.html#blockByEmail)\n     */\n    function blockByEmail(email: string): Promise<void>;\n    /**\n     * **Deprecated.**\n     * This function will continue to work, but a newer version is available at\n     * [wix-members-backend.members.deleteMember()](https://www.wix.com/velo/reference/wix-members-backend/members/deletemember).\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-users-backend.html#deleteUser)\n     */\n    function deleteUser(userId: string): Promise<void>;\n    /**\n     * **Deprecated.**\n     * This function will continue to work, but a newer version is available at\n     * [wix-crm-backend.triggeredEmails.emailMember()](https://www.wix.com/velo/reference/wix-crm-backend/triggeredemails/emailmember).\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-users-backend.html#emailUser)\n     */\n    function emailUser(emailId: string, toUser: string, options?: wix_users_backend.TriggeredEmailOptions): Promise<void>;\n    /**\n     * **Deprecated.**\n     * This function will continue to work, but a newer version is available at\n     * [wix-members-backend.authentication.generateSessionToken()](https://www.wix.com/velo/reference/wix-members-backend/authentication/generatesessiontoken).\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-users-backend.html#generateSessionToken)\n     */\n    function generateSessionToken(email: string): Promise<string>;\n    /**\n     * **Deprecated.**\n     * This function will continue to work, but a newer version is available at\n     * [wix-members-backend.members.getMember()](https://www.wix.com/velo/reference/wix-members-backend/members/getmember).\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-users-backend.html#getUser)\n     */\n    function getUser(userId: string): Promise<wix_users_backend.RetrievedUser>;\n    /**\n     * **Deprecated.**\n     * This function will continue to work, but a newer version is available at\n     * [wix-members-backend.authentication.login()](https://www.wix.com/velo/reference/wix-members-backend/authentication/login).\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-users-backend.html#login)\n     */\n    function login(email: string, password: string): Promise<string>;\n    /**\n     * **Deprecated.**\n     * This function will continue to work, but a newer version is available at\n     * [wix-members-backend.authentication.register()](https://www.wix.com/velo/reference/wix-members-backend/authentication/register).\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-users-backend.html#register)\n     */\n    function register(email: string, password: string, options?: wix_users_backend.RegistrationOptions): Promise<wix_users_backend.RegistrationResult>;\n    /**\n     * **Deprecated.**\n     * This function will continue to work, but a newer version is available at\n     * [wix-members-backend.members.updateMember()](https://www.wix.com/velo/reference/wix-members-backend/members/updatemember).\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-users-backend.html#updateUserFields)\n     */\n    function updateUserFields(userId: string, userInfo: wix_users_backend.UserInfo): Promise<void>;\n}\n/**\n * The wix-bookings module contains functionality for working with\n *  bookings from client-side code.\n * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings.html#)\n */\ndeclare module 'wix-bookings' {\n    /**\n     * Books a service and processes payment for the service.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings.html#checkoutBooking)\n     */\n    function checkoutBooking(bookingInfo: wix_bookings.BookingInfo, options?: wix_bookings.PaymentOptions): Promise<wix_bookings.BookingResult>;\n    /**\n     * Gets the valid checkout options for a service's slot.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings.html#getCheckoutOptions)\n     */\n    function getCheckoutOptions(checkoutOptionOptions: wix_bookings.CheckoutOptionOptions): Promise<wix_bookings.CheckoutOption[]>;\n    /**\n     * Gets the available slots for a specific service.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings.html#getServiceAvailability)\n     */\n    function getServiceAvailability(serviceId: string, options?: wix_bookings.AvailabilityOptions): Promise<wix_bookings.ServiceAvailability>;\n}\n/**\n * The wix-crm module contains functionality for working with\n *  [your site's contacts](https://support.wix.com/en/article/about-your-contact-list)\n *  from client-side code.\n * \t[Read more](https://www.wix.com/corvid/reference/wix-crm.html#)\n */\ndeclare module 'wix-crm' {\n    /**\n     * The Contacts API is used to manage a site's contacts.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-crm.html#contacts)\n     */\n    const contacts: wix_crm.Contacts;\n    /**\n     * The Triggered Emails API is used to send triggered emails to your site's contacts and members.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-crm.html#triggeredEmails)\n     */\n    const triggeredEmails: wix_crm.TriggeredEmails;\n    /**\n     * **Deprecated.**\n     * This function will continue to work, but a newer version is available at\n     * [`wix-crm.contacts.appendOrCreateContact()`](https://www.wix.com/velo/reference/wix-crm/contacts/appendorcreatecontact).\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-crm.html#createContact)\n     */\n    function createContact(contactInfo: wix_crm.ContactInfo): Promise<string>;\n    /**\n     * **Deprecated.**\n     * This function will continue to work, but a newer version is available at\n     * [wix-crm.triggeredEmails.emailContact()](https://www.wix.com/velo/reference/wix-crm/triggeredemails/emailcontact).\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-crm.html#emailContact)\n     */\n    function emailContact(emailId: string, toContact: string, options?: wix_crm.TriggeredEmails.TriggeredEmailOptions): Promise<void>;\n}\n/**\n * The wix-stores module contains functionality for working with your\n *  site's store from client-side code.\n * \t[Read more](https://www.wix.com/corvid/reference/wix-stores.html#)\n */\ndeclare module 'wix-stores' {\n    /**\n     * The wix-stores.cart module provides functionality for working with your site's cart from client-side code.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-stores.html#cart)\n     */\n    const cart: wix_stores.Cart;\n    /**\n     * The wix-stores.navigate module provides functionality for navigating your store from client-side code.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-stores.html#navigate)\n     */\n    const navigate: wix_stores.Navigate;\n    /**\n     * The wix-stores.product module provides functionality for working with your store's products from client-side code.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-stores.html#product)\n     */\n    const product: wix_stores.Product;\n    /**\n     * **Deprecated.**\n     * This function will continue to work, but a newer version is available at\n     * [wix-stores.cart.getCurrentCart()](https://www.wix.com/velo/reference/wix-stores/cart/getcurrentcart).\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-stores.html#getCurrentCart)\n     */\n    function getCurrentCart(): Promise<wix_stores.CartObj>;\n    /**\n     * **Deprecated.**\n     * This function will continue to work, but a newer version is available at\n     * [wix-stores.product.getOptionsAvailability()](https://www.wix.com/velo/reference/wix-stores/product/getoptionsavailability).\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-stores.html#getProductOptionsAvailability)\n     */\n    function getProductOptionsAvailability(productId: string, choices: any): Promise<wix_stores.ProductOptionsAvailability>;\n    /**\n     * **Deprecated.**\n     * This function will continue to work, but a newer version is available at\n     * [wix-stores.product.getVariants()](https://www.wix.com/velo/reference/wix-stores/product/getvariants).\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-stores.html#getProductVariants)\n     */\n    function getProductVariants(productId: string, options?: wix_stores.ProductVariantOptions): Promise<wix_stores.VariantItem[]>;\n    /**\n     * **Deprecated.**\n     * This function will continue to work, but a newer version is available at\n     * [wix-stores.cart.onChange()](https://www.wix.com/velo/reference/wix-stores/cart/onchange).\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-stores.html#onCartChanged)\n     */\n    function onCartChanged(handler: wix_stores.CartChangedHandler): void;\n    /**\n     * **Deprecated.**\n     * This function will continue to work, but a newer version is available at\n     * [wix-stores.cart.removeProduct()](https://www.wix.com/velo/reference/wix-stores/cart/removeproduct).\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-stores.html#removeProductFromCart)\n     */\n    function removeProductFromCart(cartLineItemId: number): Promise<wix_stores.CartObj>;\n}\n/**\n * **Deprecated.**\n * The wix-users module will continue to work, but a newer version is available at\n * [wix-members](https://www.wix.com/velo/reference/wix-members).\n * \t[Read more](https://www.wix.com/corvid/reference/wix-users.html#)\n */\ndeclare module 'wix-users' {\n    /**\n     * **Deprecated.**\n     * This object will continue to work, but a newer version is available at\n     * [wix-members.currentMember.getMember()](https://www.wix.com/velo/reference/wix-members/currentmember/getmember).\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-users.html#currentUser)\n     */\n    const currentUser: wix_users.User;\n    /**\n     * **Deprecated.**\n     * This function will continue to work, but a newer version is available at\n     * [wix-members.authentication.applySessionToken()](https://www.wix.com/velo/reference/wix-members/authentication/applysessiontoken).\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-users.html#applySessionToken)\n     */\n    function applySessionToken(sessionToken: string): Promise<void>;\n    /**\n     * **Deprecated.**\n     * This function will continue to work, but a newer version is available at\n     * [wix-crm.triggeredEmails.emailMember()](https://www.wix.com/velo/reference/wix-crm/triggeredemails/emailmember).\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-users.html#emailUser)\n     */\n    function emailUser(emailId: string, toUser: string, options?: wix_users.TriggeredEmailOptions): Promise<void>;\n    /**\n     * **Deprecated.**\n     * This function will continue to work, but a newer version is available at\n     * [wix-window.consentPolicy.getCurrentConsentPolicy()](https://www.wix.com/velo/reference/wix-window/consentpolicy/getcurrentconsentpolicy).\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-users.html#getCurrentConsentPolicy)\n     */\n    function getCurrentConsentPolicy(): wix_users.PolicyDetails;\n    /**\n     * **Deprecated.**\n     * This function will continue to work, but a newer version is available at\n     * [wix-members.authentication.login()](https://www.wix.com/velo/reference/wix-members/authentication/login).\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-users.html#login)\n     */\n    function login(email: string, password: string): Promise<void>;\n    /**\n     * **Deprecated.**\n     * This function will continue to work, but a newer version is available at\n     * [wix-members.authentication.logout()](https://www.wix.com/velo/reference/wix-members/authentication/logout).\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-users.html#logout)\n     */\n    function logout(): void;\n    /**\n     * **Deprecated.**\n     * This function will continue to work, but a newer version is available at\n     * [wix-window.consentPolicy.onConsentPolicyChanged()](https://www.wix.com/velo/reference/wix-window/consentpolicy/onconsentpolicychanged).\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-users.html#onConsentPolicyChanged)\n     */\n    function onConsentPolicyChanged(handler: wix_users.ConsentPolicyChangedHandler): void;\n    /**\n     * **Deprecated.**\n     * This function will continue to work, but a newer version is available at\n     * [wix-members.authentication.onLogin()](https://www.wix.com/velo/reference/wix-members/authentication/onlogin).\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-users.html#onLogin)\n     */\n    function onLogin(handler: wix_users.LoginHandler): void;\n    /**\n     * **Deprecated.**\n     * This function will continue to work, but a newer version is available at\n     * [wix-members.authentication.promptForgotPassword()](https://www.wix.com/velo/reference/wix-members/authentication/promptforgotpassword).\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-users.html#promptForgotPassword)\n     */\n    function promptForgotPassword(language?: string): Promise<void>;\n    /**\n     * **Deprecated.**\n     * This function will continue to work, but a newer version is available at\n     * [wix-members.authentication.promptLogin()](https://www.wix.com/velo/reference/wix-members/authentication/promptlogin).\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-users.html#promptLogin)\n     */\n    function promptLogin(options?: wix_users.LoginOptions): Promise<wix_users.User>;\n    /**\n     * **Deprecated.**\n     * This function will continue to work, but a newer version is available at\n     * [wix-members.authentication.register()](https://www.wix.com/velo/reference/wix-members/authentication/register).\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-users.html#register)\n     */\n    function register(email: string, password: string, options?: wix_users.RegistrationOptions): Promise<wix_users.RegistrationResult>;\n    /**\n     * **Deprecated.**\n     * This function will continue to work, but a newer version is available at\n     * [wix-window.consentPolicy.resetConsentPolicy()](https://www.wix.com/velo/reference/wix-window/consentpolicy/resetconsentpolicy).\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-users.html#resetConsentPolicy)\n     */\n    function resetConsentPolicy(): Promise<void>;\n    /**\n     * **Deprecated.**\n     * This function will continue to work, but a newer version is available at\n     * [wix-window.consentPolicy.setConsentPolicy()](https://www.wix.com/velo/reference/wix-window/consentpolicy/setconsentpolicy).\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-users.html#setConsentPolicy)\n     */\n    function setConsentPolicy(policy: wix_users.Policy): Promise<wix_users.PolicyDetails>;\n}\ndeclare namespace $w {\n    /**\n     * A post page for a specific blog post.\n     * \t[Read more](https://www.wix.com/corvid/reference/$w.PostPage.html#)\n     */\n    interface PostPage extends $w.Element, $w.HiddenCollapsedMixin {\n        /**\n         * Gets the all the information associated with the current blog post.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.PostPage.html#getPost)\n         */\n        getPost(): Promise<$w.PostPage.BlogPost>;\n    }\n    namespace PostPage {\n        /**\n         * An object representing a blog post on a post page.\n         * > **Note:**\n         * `viewCount` and `likeCount` data used on your site pages is eventually consistent and may require up\n         * to 24 hours to update. To make sure new post views and likes are included on your site in real time,\n         * [disable caching](https://support.wix.com/en/article/caching-your-sites-pages) for\n         * any page that uses `viewCount` or `likeCount` data. Note that disabling caching may increase your page loading time.\n         */\n        type BlogPost = {\n            /**\n             * Post ID.\n             */\n            _id: string;\n            /**\n             * Post title.\n             */\n            title: string;\n            /**\n             * Text of the post.\n             */\n            plainContent: string;\n            /**\n             * Date the post was originally published.\n             */\n            publishedDate: Date;\n            /**\n             * Number of times the post was viewed.\n             */\n            viewCount: number;\n            /**\n             * Number of likes the post received.\n             */\n            likeCount: number;\n            /**\n             * Number of comments the post received.\n             */\n            commentCount: number;\n            /**\n             * Date the post was most recently published.\n             */\n            lastPublishedDate: Date;\n            /**\n             * Indicates whether the cover image is displayed in the post.\n             */\n            coverImageDisplayed: boolean;\n            /**\n             * Estimated time in minutes required to read the post.\n             */\n            timeToRead: number;\n            /**\n             * Indicates whether the post was pinned to the top of the blog feed.\n             */\n            pinned: boolean;\n            /**\n             * Indicates whether the post is set as featured in the post settings. Featured posts appear in custom blog feeds.\n             */\n            featured: boolean;\n            /**\n             * List of all hashtags in the post.\n             */\n            hashtags: string[];\n            /**\n             * The post's cover [image]($w.Image.html#src).\n             */\n            coverImage: string;\n            /**\n             * Relative URL of the post page on your published site.\n             */\n            postPageUrl: string;\n            /**\n             * A few lines of text that appear in the blog feed. Defined\n             * in [Post Settings](https://support.wix.com/en/article/editing-excerpts-in-the-new-wix-blog) or default of first 160 characters of the post.\n             */\n            excerpt: string;\n        };\n    }\n    /**\n     * Breadcrumbs are used for navigating between site pages.\n     * \t[Read more](https://www.wix.com/corvid/reference/$w.Breadcrumbs.html#)\n     */\n    interface Breadcrumbs extends $w.HiddenCollapsedMixin, $w.ViewportMixin {\n        /**\n         * Indicates if an ellipsis is displayed in the breadcrumbs trail.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Breadcrumbs.html#isEllipsisVisible)\n         */\n        readonly isEllipsisVisible: boolean;\n        /**\n         * Sets or gets breadcrumbs items.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Breadcrumbs.html#items)\n         */\n        items: $w.Breadcrumbs.Item[];\n        /**\n         * Sets or gets the number of items that appear in the breadcrumbs trail after an ellipsis.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Breadcrumbs.html#itemsAfterEllipsis)\n         */\n        itemsAfterEllipsis: number;\n        /**\n         * Sets or gets the number of items that appear in the breadcrumbs trail before an ellipsis.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Breadcrumbs.html#itemsBeforeEllipsis)\n         */\n        itemsBeforeEllipsis: number;\n        /**\n         * Hides an ellipsis displayed in a breadcrumbs element and displays the middle items of the breadcrumbs trail instead.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Breadcrumbs.html#hideEllipsis)\n         */\n        hideEllipsis(): void;\n        /**\n         * Displays an ellipsis in a breadcrumbs element instead of the middle items of the breadcrumbs trail.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Breadcrumbs.html#showEllipsis)\n         */\n        showEllipsis(): void;\n    }\n    namespace Breadcrumbs {\n        /**\n         * An object that contains the attributes of a breadcrumbs item.\n         */\n        type Item = {\n            /**\n             * The label of the breadcrumbs item. This is text that the site visitor sees and can click to navigate. Required if `icon` isn't specified. If not specified, `label` is omitted from the returned array.\n             */\n            label?: string;\n            /**\n             * The icon of the breadcrumbs item. This is a vector image that the site visitor sees and can click to navigate. Required if `label` isn't specified. If not specified, the `icon` key is omitted from the returned array.\n             *\n             *  The vector image file can be an image file from the Media Manager, an external SVG image from any web location, or a literal SVG XML string.\n             *\n             *  The formats supported are:\n             *  + Vector images from the Media Manager: `wix:vector://v1//`\n             *  + Vector images from the web: `http(s)://`\n             *  + Vector XML string: `...`\n             */\n            icon?: string;\n            /**\n             * Optional link for the breadcrumbs item as a URL relative to your site's home page. This is the link the site visitor navigates to when they click on a breadcrumbs item. The page opens in the same window/tab.\n             *\n             *  If a link isn't specified, it's `undefined` in the breadcrumbs object. The corresponding label or icon isn't clickable.\n             *\n             *  >**Note:**\n             *  > In the default breadcrumbs `items` array generated for a page, any `link` properties contain absolute URLs, not relative ones.\n             */\n            link?: string;\n            /**\n             * Setting `isCurrent` to `true` for a breadcrumbs item causes the item to appear highlighted in the breadcrumbs element.\n             * You can use this property to indicate which page in a breadcrumbs trail is currently displayed. In a default `items` array, the last item's `isCurrent` value is `true`.\n             * >**Note:** The value of `isCurrent` isn't validated against which page is actually displayed. It can also be set to `true` for multiple breadcrumbs items.\n             */\n            isCurrent?: boolean;\n        };\n    }\n    /**\n     * An element for sending and receiving chat messages.\n     * \t[Read more](https://www.wix.com/corvid/reference/$w.Chatbox.html#)\n     */\n    interface Chatbox extends $w.Element, $w.HiddenMixin {\n        /**\n         * Indicates if an element appears on all pages or only on the current page.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Chatbox.html#global)\n         */\n        readonly global: boolean;\n        /**\n         * Indicates if the chatbox is visible or hidden.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Chatbox.html#hidden)\n         */\n        readonly hidden: boolean;\n        /**\n         * Indicates if the element is actually visible.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Chatbox.html#isVisible)\n         */\n        readonly isVisible: boolean;\n        /**\n         * Indicates if the chatbox is maximized.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Chatbox.html#maximized)\n         */\n        readonly maximized: boolean;\n        /**\n         * Note: This standard element property is not relevant for Chatbox.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Chatbox.html#parent)\n         */\n        readonly parent: $w.Node;\n        /**\n         * Expands the chatbox and focuses it on the specified chat channel.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Chatbox.html#focusChannel)\n         */\n        focusChannel(channelInfo: $w.Chatbox.ChannelInfo): Promise<void>;\n        /**\n         * Gets a chatbox channel.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Chatbox.html#getChannel)\n         */\n        getChannel(channelInfo: $w.Chatbox.ChannelInfo): Promise<$w.Chatbox.Channel>;\n        /**\n         * Gets a list of available chat channels for a site visitor.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Chatbox.html#getChannelList)\n         */\n        getChannelList(): Promise<$w.Chatbox.Channel[]>;\n        /**\n         * Expands the chatbox and sets its [`maximized`](#maximized) property to `true`.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Chatbox.html#maximize)\n         */\n        maximize(): Promise<void>;\n        /**\n         * Collapses the chatbox and sets its [`maximized`](#maximized) property to `false`.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Chatbox.html#minimize)\n         */\n        minimize(): Promise<void>;\n        /**\n         * An event that fires when the chatbox is maximized.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Chatbox.html#onMaximize)\n         */\n        onMaximize(handler: $w.BasicEventHandler): void;\n        /**\n         * An event that fires when a site visitor receives a chat message.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Chatbox.html#onMessageReceived)\n         */\n        onMessageReceived(message: $w.Chatbox.Message): void;\n        /**\n         * An event that fires when a site visitor sends a chat message.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Chatbox.html#onMessageSent)\n         */\n        onMessageSent(message: $w.Chatbox.Message): void;\n        /**\n         * An event that fires when the chatbox is minimized.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Chatbox.html#onMinimize)\n         */\n        onMinimize(handler: $w.BasicEventHandler): void;\n        /**\n         * Note: This standard element event is not relevant for Chatbox.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Chatbox.html#onViewportEnter)\n         *  @eventType viewportEnter\n         */\n        onViewportEnter(handler: $w.EventHandler): $w.Element;\n        /**\n         * Note: This standard element event is not relevant for Chatbox.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Chatbox.html#onViewportLeave)\n         *  @eventType viewportLeave\n         */\n        onViewportLeave(handler: $w.EventHandler): $w.Element;\n        /**\n         * Note: This standard element function is not relevant for Chatbox.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Chatbox.html#scrollTo)\n         */\n        scrollTo(): Promise<void>;\n        /**\n         * Sends a chat message from a site visitor.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Chatbox.html#sendMessage)\n         */\n        sendMessage(messageInfo: $w.Chatbox.MessageInfo): Promise<void>;\n    }\n    namespace Chatbox {\n        /**\n         * An object representing a chat channel.\n         */\n        type Channel = {\n            /**\n             * ID of the channel.\n             */\n            id: string;\n            /**\n             * Display information associated with the channel.\n             */\n            displayData: $w.Chatbox.DisplayData;\n            /**\n             * An array of messages sent over the channel. Currently only the last message is included.\n             */\n            messages: $w.Chatbox.Message[];\n        };\n        /**\n         * An object containing information about a chat channel.\n         */\n        type ChannelInfo = {\n            /**\n             * ID of a chat channel.\n             */\n            channelId?: string;\n            /**\n             * Type of chat channel.\n             *  One of the following:\n             *\n             *  + `\"Focused\"`: Currently focused channel.\n             *  + `\"Business\"`: Business channel.\n             */\n            type?: string;\n        };\n        /**\n         * An object representing display information associated with a [`Channel`](#channel).\n         */\n        type DisplayData = {\n            /**\n             * The image associated with the channel.\n             *  One of the following:\n             *\n             *  + For private social channels, the image associated with the site member's account. If there is no image associated with the account, defaults to the avatar image.\n             *  + For group social channels, the image associated with the chat group.\n             *  + For business channels, `image` is not currently supported.\n             */\n            image: string;\n            /**\n             * For social channels, the member's name or chat group name. For business channels, the site's [display name](wix-site-backend.generalInfo.html#getSiteDisplayName).\n             */\n            name: string;\n            /**\n             * Only supported for business channels. Initials of the site's business.\n             */\n            initials: string;\n        };\n        /**\n         * An object that contains information about a chat message.\n         */\n        type Message = {\n            /**\n             * ID of the channel on which the message was sent.\n             */\n            channelId: string;\n            /**\n             * Type of message. Currently only `TEXT` is supported.\n             */\n            type: string;\n            /**\n             * First 250 characters of the chat message. Currently only text is included in the summary.\n             */\n            summary: string;\n            /**\n             * The sender's member ID. For a message sent from the site's business, the site owner's member ID.\n             */\n            participantId: string;\n            /**\n             * Date and time the message was sent.\n             */\n            createdAt: Date;\n            /**\n             * Content of the message.\n             */\n            payload: $w.Chatbox.MessagePayload;\n            /**\n             * An object representing additional contextual message information included in a chat message. Only relevant for messages sent using the backend [`sendMessage()`](wix-chat-backend.html#sendMessage) function. Site visitors do not see metadata.\n             */\n            metadata?: any;\n        };\n        /**\n         * An object representing a chat message to be sent.\n         */\n        type MessageInfo = {\n            /**\n             * The text to be sent in the message.\n             */\n            messageText: string;\n            /**\n             * The ID of the channel over which the message is sent. If empty, message is sent to the site's business.\n             */\n            channelId?: string;\n        };\n        /**\n         * The content of a chat message.\n         */\n        type MessagePayload = {\n            /**\n             * Text of the chat message.\n             */\n            text: string;\n        };\n    }\n    /**\n     * A text element for managing large amounts of text.\n     * \t[Read more](https://www.wix.com/corvid/reference/$w.CollapsibleText.html#)\n     */\n    interface CollapsibleText extends $w.Element, $w.HiddenCollapsedMixin, $w.ClickableMixin {\n        /**\n         * Indicates whether the ellipsis functionality is turned on.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.CollapsibleText.html#ellipsisEnabled)\n         */\n        readonly ellipsisEnabled: boolean;\n        /**\n         * Sets or gets the maximum number of lines of introductory text in the collapsible text.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.CollapsibleText.html#maxLines)\n         */\n        maxLines: number;\n        /**\n         * Sets or gets the data object of the read more action for the collapsible text.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.CollapsibleText.html#readMoreActionData)\n         */\n        readMoreActionData: $w.CollapsibleText.ExpandOnCurrentPage | $w.CollapsibleText.LinkToContent;\n        /**\n         * Sets or gets the type of read more action for the collapsible text.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.CollapsibleText.html#readMoreActionType)\n         */\n        readMoreActionType: string;\n        /**\n         * Sets or gets the plain-text content of a collapsible text element.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.CollapsibleText.html#text)\n         */\n        text: string;\n        /**\n         * Adds a read more button that links to the remaining text when clicked.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.CollapsibleText.html#addReadMoreButton)\n         */\n        addReadMoreButton(buttonText?: string): void;\n        /**\n         * Collapses the collapsible text and displays the introductory text with an ellipsis.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.CollapsibleText.html#collapseText)\n         */\n        collapseText(): void;\n        /**\n         * Turns off the ellipsis functionality.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.CollapsibleText.html#disableEllipsis)\n         */\n        disableEllipsis(): void;\n        /**\n         * Turns on the ellipsis functionality.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.CollapsibleText.html#enableEllipsis)\n         */\n        enableEllipsis(): void;\n        /**\n         * Expands the collapsible text, displays the full text, and hides the ellipsis.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.CollapsibleText.html#expandText)\n         */\n        expandText(): void;\n        /**\n         * Removes the read more button that links to the remaining text when clicked.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.CollapsibleText.html#removeReadMoreButton)\n         */\n        removeReadMoreButton(): void;\n    }\n    namespace CollapsibleText {\n        /**\n         * Expands content overflow on current page.\n         */\n        type ExpandOnCurrentPage = {\n            /**\n             * Text of the read more button. Defaults to `Read more`.\n             */\n            readMoreButtonText?: string;\n            /**\n             * Text of the read less button. Defaults to `Read less`.\n             */\n            readLessButtonText?: string;\n            /**\n             * Whether the collapsible text is currently collapsed. Defaults to `true`.\n             */\n            collapsed?: boolean;\n        };\n        /**\n         * Links to the content overflow.\n         */\n        type LinkToContent = {\n            /**\n             * Link for the remaining text. Supports all [link types](https://www.wix.com/velo/reference/$w/linkablemixin/link).\n             */\n            link: string;\n            /**\n             * Determines where the link opens, either in the current page or in a new page.\n             * One of:\n             * `\"_blank\"`: The link opens in a new tab or window.\n             * `\"_self\"`: The link opens in the tab or window.\n             *\n             * Defaults to `\"_blank\"`.\n             *\n             * Note: Link targets are only supported for external web links, for example, `https://www.wix.com`.\n             */\n            target?: string;\n            /**\n             * Whether the read more button is visible. Defaults to `false`.\n             */\n            readMoreButtonVisible?: boolean;\n            /**\n             * Text of the read more button. Defaults to 'Link to full article'.\n             */\n            readMoreButtonText?: string;\n        };\n    }\n    /**\n     * The Lottie element is used for adding and customizing a Lottie animation.\n     * \t[Read more](https://www.wix.com/corvid/reference/$w.Lottie.html#)\n     */\n    interface Lottie extends $w.Element, $w.FocusMixin, $w.HiddenCollapsedMixin, $w.ClickableMixin {\n        /**\n         * Sets or gets a Lottie animation's alt text.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Lottie.html#alt)\n         */\n        alt: string;\n        /**\n         * Sets or gets whether the Lottie animation plays in a loop.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Lottie.html#loop)\n         */\n        loop: boolean;\n        /**\n         * Sets or gets the Lottie animation's playback speed.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Lottie.html#speed)\n         */\n        speed: number;\n        /**\n         * Sets or gets the source of the Lottie animation.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Lottie.html#src)\n         */\n        src: string;\n        /**\n         * Pauses playback.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Lottie.html#pause)\n         */\n        pause(): void;\n        /**\n         * Begins or resumes playback.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Lottie.html#play)\n         */\n        play(): void;\n        /**\n         * Stops the playback.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Lottie.html#stop)\n         */\n        stop(): void;\n    }\n    /**\n     * A container component used to divide your page into meaningful segments.\n     * \t[Read more](https://www.wix.com/corvid/reference/$w.Section.html#)\n     */\n    interface Section extends $w.Element, $w.Background, $w.HiddenCollapsedMixin, $w.ClickableMixin, $w.ContainableMixin {\n    }\n    /**\n     * An element that displays your site's events.\n     * \t[Read more](https://www.wix.com/corvid/reference/$w.WixEvents.html#)\n     */\n    interface WixEvents extends $w.Element, $w.HiddenCollapsedMixin {\n        /**\n         * Sets or gets the event category displayed in a Wix Events element.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.WixEvents.html#categoryId)\n         */\n        categoryId: string;\n    }\n    /**\n     * The menu in a user profile.\n     * \t[Read more](https://www.wix.com/corvid/reference/$w.AccountNavBar.html#)\n     */\n    interface AccountNavBar extends $w.Element, $w.HiddenCollapsedMixin {\n    }\n    /**\n     * [Anchors](https://www.wix.com/support/html5/article/about-anchors)\n     *  are invisible position markers which you can place anywhere on your site.\n     * \t[Read more](https://www.wix.com/corvid/reference/$w.Anchor.html#)\n     */\n    interface Anchor extends $w.Node, $w.ViewportMixin {\n        /**\n         * Gets the name of an anchor.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Anchor.html#name)\n         */\n        readonly name: string;\n    }\n    /**\n     * Use an `AppointmentField` to select dates, times, and timezones for scheduling appointments.\n     * \t[Read more](https://www.wix.com/corvid/reference/$w.AppointmentField.html#)\n     */\n    interface AppointmentField extends $w.FormElement, $w.HiddenCollapsedMixin, $w.DisabledMixin, $w.FocusMixin, $w.ClickableMixin, $w.RequiredMixin {\n        /**\n         * Sets or gets a list of dates and times that a site visitor can select.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.AppointmentField.html#dateTimeRanges)\n         */\n        dateTimeRanges: $w.AppointmentField.dateTimeRangeInfo;\n        /**\n         * Sets or gets a list of days in the week that are not selectable.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.AppointmentField.html#disabledDaysOfWeek)\n         */\n        disabledDaysOfWeek: number[];\n        /**\n         * Sets or gets the latest date that a site visitor can select.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.AppointmentField.html#maxDate)\n         */\n        maxDate: Date;\n        /**\n         * Sets or gets the earliest date that a site visitor can select.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.AppointmentField.html#minDate)\n         */\n        minDate: Date;\n        /**\n         * Sets or gets the minimum amount of time before an appointment starts that a time slot is displayed.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.AppointmentField.html#schedulingNotice)\n         */\n        schedulingNotice: number;\n        /**\n         * Sets  or gets the interval between the times displayed in the time picker.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.AppointmentField.html#timeIncrements)\n         */\n        timeIncrements: number;\n        /**\n         * Sets or gets the title of an appointment field.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.AppointmentField.html#title)\n         */\n        title: string;\n        /**\n         * Sets or gets the time format.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.AppointmentField.html#useAmPmFormat)\n         */\n        useAmPmFormat: boolean;\n        /**\n         * Sets or gets the date and time value of the appointment field.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.AppointmentField.html#value)\n         */\n        value: Date;\n        /**\n         * Sets or gets the timezone dropdown value.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.AppointmentField.html#visitorTimeZone)\n         */\n        visitorTimeZone: string;\n        /**\n         * Adds an event handler that triggers when the appointment field's year or month changes.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.AppointmentField.html#onViewChange)\n         *  @eventType onViewChange\n         */\n        onViewChange(handler: $w.ViewChangeEventHandler, operation?: $w.ViewChangeOperation, timeout?: number): void;\n        /**\n         * Resets the appointment field to its original values.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.AppointmentField.html#reset)\n         */\n        reset(): void;\n    }\n    namespace AppointmentField {\n        type OperationOptions = {\n            /**\n             * Start date of the currently displayed month.\n             */\n            startDate: Date;\n            /**\n             * End date of the currently displayed month.\n             */\n            endDate: Date;\n        };\n        type dateTimeRange = {\n            /**\n             * Date and time of the start of the range.\n             */\n            startDateTime: Date;\n            /**\n             * Date and time of the end of the range.\n             */\n            endDateTime: Date;\n        };\n        type dateTimeRangeInfo = {\n            /**\n             * Date range type. Valid values: `'enabledRanges'`\n             */\n            type: string;\n            /**\n             * Array of dateTimeRange objects.\n             */\n            payload: $w.AppointmentField.dateTimeRange[];\n        };\n    }\n    /**\n     * Provides functionality for background images in certain elements.\n     * \t[Read more](https://www.wix.com/corvid/reference/$w.Background.html#)\n     */\n    interface Background {\n        /**\n         * Sets or gets an object containing information about the element's background.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Background.html#background)\n         */\n        background: $w.Background.BackgroundOptions;\n    }\n    namespace Background {\n        /**\n         * An object used by the `background` property that contains the background options.\n         */\n        type BackgroundOptions = {\n            /**\n             * The file location of the background image or video.\n             *  Setting the `src` property changes the\n             *  displayed image or video to the image or video found at the new `src` value.\n             *\n             *  Getting the `src` property returns the\n             *  location of the current image or video file.\n             *\n             *  Images can either be from the [Media Manager](https://support.wix.com/en/article/about-the-media-manager)\n             *  or an external image from any web location. Videos must come from the\n             *  [Media Manager](https://support.wix.com/en/article/about-the-media-manager).\n             *\n             *  The URL formats supported are:\n             *\n             *  + Images from the Media Manager:\n             *    `wix:image://v1//#originWidth=&originHeight=[&watermark=]`\n             *  + Videos from the Media Manager:\n             *    `wix:video://v1//#posterUri=&posterWidth=&posterHeight=`\n             *  + Images from the web:\n             *    `http(s)://`\n             */\n            src: string;\n        };\n    }\n    /**\n     * Container [boxes](https://support.wix.com/en/article/container-boxes)\n     *  are used to structure your site.\n     * \t[Read more](https://www.wix.com/corvid/reference/$w.Box.html#)\n     */\n    interface Box extends $w.Element, $w.HiddenCollapsedMixin, $w.ClickableMixin, $w.ContainableMixin, $w.StyleMixin {\n        /**\n         * Gets an object containing information about the box's styles.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Box.html#style)\n         */\n        readonly style: $w.Style;\n    }\n    /**\n     * A button on your site.\n     * \t[Read more](https://www.wix.com/corvid/reference/$w.Button.html#)\n     */\n    interface Button extends $w.Element, $w.HiddenCollapsedMixin, $w.DisabledMixin, $w.LinkableMixin, $w.ClickableMixin, $w.StyleMixin, $w.LabelMixin {\n        /**\n         * Sets or gets the icon image displayed on the button.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Button.html#icon)\n         */\n        icon: string;\n        /**\n         * Indicates if the button’s icon is collapsed or expanded.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Button.html#iconCollapsed)\n         */\n        readonly iconCollapsed: boolean;\n        /**\n         * Sets or gets a button's label.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Button.html#label)\n         */\n        label: string;\n        /**\n         * Sets or gets the button's link.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Button.html#link)\n         */\n        link: string;\n        /**\n         * Gets an object containing information about the button's styles.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Button.html#style)\n         */\n        readonly style: $w.Style;\n        /**\n         * Collapses the button’s icon and sets its `iconCollapsed` property to `true`.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Button.html#collapseIcon)\n         */\n        collapseIcon(): Promise<void>;\n        /**\n         * Expands the button’s icon and sets its `iconCollapsed` property to `false`.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Button.html#expandIcon)\n         */\n        expandIcon(): Promise<void>;\n        /**\n         * Adds an event handler that runs when the mouse pointer is moved\n         *  onto the element.\n         *\n         *  You can also [define an event handler using the Properties and Events panel](https://support.wix.com/en/article/velo-reacting-to-user-actions-using-events).\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Button.html#onMouseIn)\n         */\n        onMouseIn(handler: $w.MouseEventHandler): $w.Button;\n        /**\n         * Adds an event handler that runs when the mouse pointer is moved\n         *  off of the element.\n         *\n         *  You can also [define an event handler using the Properties and Events panel](https://support.wix.com/en/article/velo-reacting-to-user-actions-using-events).\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Button.html#onMouseOut)\n         */\n        onMouseOut(handler: $w.MouseEventHandler): $w.Button;\n    }\n    /**\n     * Checkboxes are used for a single binary choice.\n     * \t[Read more](https://www.wix.com/corvid/reference/$w.Checkbox.html#)\n     */\n    interface Checkbox extends $w.LabelMixin, $w.FormElement, $w.DisabledMixin, $w.HiddenCollapsedMixin, $w.FocusMixin, $w.ClickableMixin, $w.StyleMixin, $w.RequiredMixin, $w.CheckedMixin {\n        /**\n         * Sets or gets whether a checkbox is checked.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Checkbox.html#checked)\n         */\n        checked: boolean;\n        /**\n         * Gets or sets if a checkbox is required to be checked.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Checkbox.html#required)\n         */\n        required: boolean;\n        /**\n         * Gets an object containing information about the checkbox's styles.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Checkbox.html#style)\n         */\n        readonly style: $w.Style;\n        /**\n         * Sets or gets a checkbox's value.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Checkbox.html#value)\n         */\n        value: string;\n    }\n    /**\n     * Checkbox groups are used for selecting any number of the given\n     *  options.\n     * \t[Read more](https://www.wix.com/corvid/reference/$w.CheckboxGroup.html#)\n     */\n    interface CheckboxGroup extends $w.LabelMixin, $w.FormElement, $w.HiddenCollapsedMixin, $w.DisabledMixin, $w.FocusMixin, $w.ClickableMixin, $w.StyleMixin, $w.RequiredMixin {\n        /**\n         * Sets or gets the options of a checkbox group.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.CheckboxGroup.html#options)\n         */\n        options: $w.CheckboxGroup.Option[];\n        /**\n         * Sets or gets the indices of the selected options.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.CheckboxGroup.html#selectedIndices)\n         */\n        selectedIndices: number[];\n        /**\n         * Gets an object containing information about the checkbox group's styles.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.CheckboxGroup.html#style)\n         */\n        readonly style: $w.Style;\n        /**\n         * Sets or gets the value of the selected options.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.CheckboxGroup.html#value)\n         */\n        value: string[];\n    }\n    namespace CheckboxGroup {\n        /**\n         * An object used by the `options` property that contains the attributes of a checkbox item.\n         */\n        type Option = {\n            /**\n             * The value of the checkbox option. This is what you use in code and is what is stored in your collections. Mandatory if `label` is not specified.\n             */\n            value?: string;\n            /**\n             * The label of the checkbox option. This is what a user sees.  Mandatory if `value` is not specified.\n             */\n            label?: string;\n        };\n    }\n    /**\n     * Provides functionality for elements that can be checked.\n     * \t[Read more](https://www.wix.com/corvid/reference/$w.CheckedMixin.html#)\n     */\n    interface CheckedMixin {\n        /**\n         * Sets or gets whether the element is checked or not.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.CheckedMixin.html#checked)\n         */\n        checked: boolean;\n    }\n    /**\n     * Provides functionality for elements that can be clicked.\n     * \t[Read more](https://www.wix.com/corvid/reference/$w.ClickableMixin.html#)\n     */\n    interface ClickableMixin {\n        /**\n         * Adds an event handler that runs when the element is clicked.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.ClickableMixin.html#onClick)\n         *  @eventType click\n         */\n        onClick(handler: $w.MouseEventHandler): $w.Element;\n        /**\n         * Adds an event handler that runs when the element is double-clicked.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.ClickableMixin.html#onDblClick)\n         *  @eventType dblClick\n         */\n        onDblClick(handler: $w.MouseEventHandler): $w.Element;\n    }\n    /**\n     * Provides functionality for elements that can be collapsed.\n     * \t[Read more](https://www.wix.com/corvid/reference/$w.CollapsedMixin.html#)\n     */\n    interface CollapsedMixin {\n        /**\n         * Indicates if the element is collapsed or expanded.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.CollapsedMixin.html#collapsed)\n         */\n        readonly collapsed: boolean;\n        /**\n         * Collapses the element and sets its `collapsed` property to `true`.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.CollapsedMixin.html#collapse)\n         */\n        collapse(): Promise<void>;\n        /**\n         * Expands the element and sets its `collapsed` property to `false`.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.CollapsedMixin.html#expand)\n         */\n        expand(): Promise<void>;\n    }\n    /**\n     * A `Column` is a component part of a `ColumnStrip`.\n     * \t[Read more](https://www.wix.com/corvid/reference/$w.Column.html#)\n     */\n    interface Column extends $w.Element, $w.HiddenCollapsedMixin, $w.Background, $w.ClickableMixin, $w.ContainableMixin {\n    }\n    /**\n     * A `ColumnStrip` is a strip of `Column` elements.\n     * \t[Read more](https://www.wix.com/corvid/reference/$w.ColumnStrip.html#)\n     */\n    interface ColumnStrip extends $w.Element, $w.Background, $w.HiddenCollapsedMixin, $w.ClickableMixin, $w.ContainableMixin {\n        /**\n         * Gets an object containing information about the column strip's background, such as its image or video source.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.ColumnStrip.html#background)\n         */\n        readonly background: $w.Document.BackgroundOptions;\n        /**\n         * Gets a list of all the columns contained in the column strip.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.ColumnStrip.html#columns)\n         */\n        readonly columns: $w.Column[];\n    }\n    /**\n     * Provides functionality for elements that can contain other elements.\n     * \t[Read more](https://www.wix.com/corvid/reference/$w.ContainableMixin.html#)\n     */\n    interface ContainableMixin {\n        /**\n         * Gets an array of the elements that are contained within the element.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.ContainableMixin.html#children)\n         */\n        readonly children: ($w.Element & AnyProperties)[];\n    }\n    /**\n     * A container for Repeater items.\n     * \t[Read more](https://www.wix.com/corvid/reference/$w.Container.html#)\n     */\n    interface Container extends $w.Element, $w.HiddenCollapsedMixin, $w.Background, $w.ClickableMixin, $w.ContainableMixin {\n    }\n    /**\n     * A `DatePicker` is used for entering dates. It lets site visitors populate a\n     *  date field by picking a date using a calendar popup.\n     * You can enable and disable dates, date ranges, and days of the week  on your date picker.\n     * \t[Read more](https://www.wix.com/corvid/reference/$w.DatePicker.html#)\n     */\n    interface DatePicker extends $w.LabelMixin, $w.FormElement, $w.HiddenCollapsedMixin, $w.DisabledMixin, $w.FocusMixin, $w.ReadOnlyMixin, $w.ClickableMixin, $w.RequiredMixin {\n        /**\n         * Sets or gets the format of the date displayed in the date picker.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.DatePicker.html#dateFormat)\n         */\n        dateFormat: string;\n        /**\n         * Sets or gets ranges of dates that a site visitor can't select.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.DatePicker.html#disabledDateRanges)\n         */\n        disabledDateRanges: $w.DatePicker.DateRange[];\n        /**\n         * **Deprecated.** This property will continue to work, but a newer version is available at [`disabledDateRanges`](https://www.wix.com/velo/reference/$w/datepicker/disableddateranges).\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.DatePicker.html#disabledDates)\n         */\n        disabledDates: Date[];\n        /**\n         * Sets or gets the days of the week that a site visitor can't select.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.DatePicker.html#disabledDaysOfWeek)\n         */\n        disabledDaysOfWeek: number[];\n        /**\n         * Sets or gets ranges of dates that a site visitor can select.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.DatePicker.html#enabledDateRanges)\n         */\n        enabledDateRanges: $w.DatePicker.DateRange[];\n        /**\n         * Sets or gets the latest date that a site visitor can select.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.DatePicker.html#maxDate)\n         */\n        maxDate: Date;\n        /**\n         * Sets or gets the earliest date that a site visitor can select.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.DatePicker.html#minDate)\n         */\n        minDate: Date;\n        /**\n         * Sets or gets the date picker's timezone.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.DatePicker.html#timeZone)\n         */\n        timeZone: string;\n        /**\n         * Sets or gets the value of the date picker.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.DatePicker.html#value)\n         */\n        value: Date;\n        /**\n         * Adds an event handler that triggers when the date picker's view changes.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.DatePicker.html#onViewChange)\n         *  @eventType onViewChange\n         */\n        onViewChange(handler: $w.ViewChangeEventHandler, operation?: $w.ViewChangeOperation, timeout?: number): void;\n    }\n    namespace DatePicker {\n        /**\n         * An object containing the start and end dates of a range of dates.\n         */\n        type DateRange = {\n            /**\n             * Start date for the range. The `startDate` is inclusive,\n             *  meaning it's included in the range. The start date must be earlier than or the same as the\n             *  end date of the range.\n             */\n            startDate: Date;\n            /**\n             * End date for the range. The `endDate` is inclusive,\n             *  meaning it's included in the range. The end date must be later than or the same as the\n             *  start date of the range.\n             */\n            endDate: Date;\n        };\n    }\n    /**\n     * Provides functionality for elements that can be disabled.\n     * \t[Read more](https://www.wix.com/corvid/reference/$w.DisabledMixin.html#)\n     */\n    interface DisabledMixin {\n        /**\n         * Indicates if the element is enabled or disabled.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.DisabledMixin.html#enabled)\n         */\n        readonly enabled: boolean;\n        /**\n         * Disables the element and sets its `enabled` property to `false`.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.DisabledMixin.html#disable)\n         */\n        disable(): Promise<void>;\n        /**\n         * Enables the element and sets its `enabled` property to `true`.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.DisabledMixin.html#enable)\n         */\n        enable(): Promise<void>;\n    }\n    /**\n     * A complete web page, which consists of a Header, Page, and Footer.\n     * \t[Read more](https://www.wix.com/corvid/reference/$w.Document.html#)\n     */\n    interface Document {\n        /**\n         * Gets an object containing information about the document's background, such as its image or video source.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Document.html#background)\n         */\n        readonly background: $w.Document.BackgroundOptions;\n        /**\n         * Gets the document's Header, Page, and Footer.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Document.html#children)\n         */\n        readonly children: $w.Node[];\n        /**\n         * Gets the document's type.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Document.html#type)\n         */\n        readonly type: string;\n    }\n    namespace Document {\n        /**\n         * An object used by the `background` property that contains the background options.\n         */\n        type BackgroundOptions = {\n            /**\n             * The file location of the background image.\n             *\n             *  Setting the `src` property changes the\n             *  displayed image or video to the image or video found at the new `src` value.\n             *\n             *  Getting the `src` property returns the\n             *  location of the current image or video file.\n             *\n             *  Images can either be from the [Media Manager](https://support.wix.com/en/article/about-the-media-manager)\n             *  or an external image from any web location. Videos must come from the\n             *  [Media Manager](https://support.wix.com/en/article/about-the-media-manager).\n             *\n             *  The URL formats supported are:\n             *\n             *  + Images from the Media Manager:\n             *    `wix:image://v1//#originWidth=&originHeight=[&watermark=]`\n             *  + Videos from the Media Manager:\n             *    `wix:video://v1//#posterUri=&posterWidth=&posterHeight=`\n             *  + Images from the web:\n             *    `http(s)://`\n             */\n            src: string;\n        };\n    }\n    /**\n     * Dropdowns are used for selecting one of a number of options.\n     * \t[Read more](https://www.wix.com/corvid/reference/$w.Dropdown.html#)\n     */\n    interface Dropdown extends $w.LabelMixin, $w.FormElement, $w.HiddenCollapsedMixin, $w.DisabledMixin, $w.FocusMixin, $w.ClickableMixin, $w.StyleMixin, $w.RequiredMixin {\n        /**\n         * Sets or gets a dropdown's label.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Dropdown.html#label)\n         */\n        label: string;\n        /**\n         * Sets or gets the options in a dropdown.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Dropdown.html#options)\n         */\n        options: $w.Dropdown.Option[];\n        /**\n         * Sets or gets the dropdown's placeholder text.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Dropdown.html#placeholder)\n         */\n        placeholder: string;\n        /**\n         * Sets or gets the index of the selected option.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Dropdown.html#selectedIndex)\n         */\n        selectedIndex: number;\n        /**\n         * Gets an object containing information about the dropdown's styles.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Dropdown.html#style)\n         */\n        readonly style: $w.Style;\n        /**\n         * Sets or gets an element's value.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Dropdown.html#value)\n         */\n        value: string;\n        /**\n         * Adds an event handler that runs when an input element's value\n         *  is changed.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Dropdown.html#onChange)\n         */\n        onChange(handler: $w.EventHandler): $w.Dropdown;\n    }\n    namespace Dropdown {\n        /**\n         * An object used by the `options` property that contains the attributes of a dropdown list item.\n         */\n        type Option = {\n            /**\n             * The value of the dropdown option. This is what you use in code and is what is stored in your collections. Mandatory if `label` is not specified.\n             */\n            value?: string;\n            /**\n             * The label of the dropdown option. This is what a user sees. Mandatory if `value` is not specified.\n             */\n            label?: string;\n        };\n    }\n    /**\n     * Use effect options to customize an effect when [showing]($w.HiddenMixin.html#show) or [hiding]($w.HiddenMixin.html#hide) an element.\n     *  Effect options include arcs, bouncing, fading, flipping, floating, flying in/out, folding, gliding and more.\n     * \t[Read more](https://www.wix.com/corvid/reference/$w.EffectOptions.html#)\n     */\n    interface EffectOptions {\n    }\n    namespace EffectOptions {\n        /**\n         * An object used to customize the `\"arc\"` effect.\n         */\n        type ArcEffectOptions = {\n            /**\n             * Valid values: `0`-`4000` milliseconds. Defaults to `1200`.\n             */\n            duration?: number;\n            /**\n             * Valid values: `0`-`8000` milliseconds. Defaults to `0`.\n             */\n            delay?: number;\n            /**\n             * Valid values: `\"left\"`, `\"right\"`. Defaults to `\"left\"`.\n             */\n            direction?: string;\n        };\n        /**\n         * An object used to customize the `\"bounce\"` effect.\n         */\n        type BounceEffectOptions = {\n            /**\n             * Valid values: `0`-`4000` milliseconds. Defaults to `1200`.\n             */\n            duration?: number;\n            /**\n             * Valid values: `0`-`8000` milliseconds. Defaults to `0`.\n             */\n            delay?: number;\n            /**\n             * Valid values: `\"topLeft\"`, `\"topRight\"`, `\"bottomRight\"`,\n             *  `\"bottomLeft\"`, `\"center\"`. Defaults to `\"topLeft\"`.\n             */\n            direction?: string;\n            /**\n             * Valid values: `\"soft\"`, `\"medium\"`, `\"hard\"`. Defaults to `\"medium\"`.\n             */\n            intensity?: string;\n        };\n        /**\n         * An object used to customize the `\"fade\"` effect.\n         */\n        type FadeEffectOptions = {\n            /**\n             * Valid values: `0`-`4000` milliseconds. Defaults to `1200`.\n             */\n            duration?: number;\n            /**\n             * Valid values: `0`-`8000` milliseconds. Defaults to `0`.\n             */\n            delay?: number;\n        };\n        /**\n         * An object used to customize the `\"flip\"` effect.\n         */\n        type FlipEffectOptions = {\n            /**\n             * Valid values: `0`-`4000` milliseconds. Defaults to `1200`.\n             */\n            duration?: number;\n            /**\n             * Valid values: `0`-`8000` milliseconds. Defaults to `0`.\n             */\n            delay?: number;\n            /**\n             * Valid values: `\"top\"`, `\"right\"`, `\"bottom\"`, `\"left\"`. Defaults to `\"right\"`.\n             */\n            direction?: string;\n        };\n        /**\n         * An object used to customize the `\"float\"` effect.\n         */\n        type FloatEffectOptions = {\n            /**\n             * Valid values: `0`-`4000` milliseconds. Defaults to `1200`.\n             */\n            duration?: number;\n            /**\n             * Valid values: `0`-`8000` milliseconds. Defaults to `0`.\n             */\n            delay?: number;\n            /**\n             * Valid values: `\"top\"`, `\"right\"`, `\"bottom\"`, `\"left\"`. Defaults to `\"right\"`.\n             */\n            direction?: string;\n        };\n        /**\n         * An object used to customize the `\"fly\"` effect.\n         */\n        type FlyEffectOptions = {\n            /**\n             * Valid values: `0`-`4000` milliseconds. Defaults to `1200`.\n             */\n            duration?: number;\n            /**\n             * Valid values: `0`-`8000` milliseconds. Defaults to `0`.\n             */\n            delay?: number;\n            /**\n             * Valid values: `\"top\"`, `\"right\"`, `\"bottom\"`, `\"left\"`. Defaults to `\"right\"`.\n             */\n            direction?: string;\n        };\n        /**\n         * An object used to customize the `\"fold\"` effect.\n         */\n        type FoldEffectOptions = {\n            /**\n             * Valid values: `0`-`4000` milliseconds. Defaults to `1200`.\n             */\n            duration?: number;\n            /**\n             * Valid values: `0`-`8000` milliseconds. Defaults to `0`.\n             */\n            delay?: number;\n            /**\n             * Valid values: `\"top\"`, `\"right\"`, `\"bottom\"`, `\"left\"`. Defaults to `\"left\"`.\n             */\n            direction?: string;\n        };\n        /**\n         * An object used to customize the `\"glide\"` effect.\n         */\n        type GlideEffectOptions = {\n            /**\n             * Valid values: `0`-`4000` milliseconds. Defaults to `1200`.\n             */\n            duration?: number;\n            /**\n             * Valid values: `0`-`8000` milliseconds. Defaults to `0`.\n             */\n            delay?: number;\n            /**\n             * Valid values: `0`-`360` degrees. Defaults to `0`.\n             */\n            angle?: number;\n            /**\n             * Valid values: `0`-`300` pixels. Defaults to `0`.\n             */\n            distance?: number;\n        };\n        /**\n         * An object used to customize the `\"puff\"` effect.\n         */\n        type PuffEffectOptions = {\n            /**\n             * Valid values: `0`-`4000` milliseconds. Defaults to `1200`.\n             */\n            duration?: number;\n            /**\n             * Valid values: `0`-`8000` milliseconds. Defaults to `0`.\n             */\n            delay?: number;\n        };\n        /**\n         * An object used to customize the `\"roll\"` effect.\n         */\n        type RollEffectOptions = {\n            /**\n             * Valid values: `0`-`4000` milliseconds. Defaults to `1200`.\n             */\n            duration?: number;\n            /**\n             * Valid values: `0`-`8000` milliseconds. Defaults to `0`.\n             */\n            delay?: number;\n            /**\n             * Valid values: `\"top\"`, `\"right\"`, `\"bottom\"`, `\"left\"`. Defaults to `\"left\"`.\n             */\n            direction?: string;\n        };\n        /**\n         * An object used to customize the `\"slide\"` effect.\n         */\n        type SlideEffectOptions = {\n            /**\n             * Valid values: `0`-`4000` milliseconds. Defaults to `1200`.\n             */\n            duration?: number;\n            /**\n             * Valid values: `0`-`8000` milliseconds. Defaults to `0`.\n             */\n            delay?: number;\n            /**\n             * Valid values: `\"top\"`, `\"right\"`, `\"bottom\"`, `\"left\"`. Defaults to `\"left\"`.\n             */\n            direction?: string;\n        };\n        /**\n         * An object used to customize the `\"spin\"` effect.\n         */\n        type SpinEffectOptions = {\n            /**\n             * Valid values: `0`-`4000` milliseconds. Defaults to `1200`.\n             */\n            duration?: number;\n            /**\n             * Valid values: `0`-`8000` milliseconds. Defaults to `0`.\n             */\n            delay?: number;\n            /**\n             * Valid values: `cw`, `ccw`. Defaults to `cw`.\n             */\n            direction?: string;\n            /**\n             * Valid values: `1`-`15`. Defaults to `5`.\n             */\n            cycles?: number;\n        };\n        /**\n         * An object used to customize the `\"turn\"` effect.\n         */\n        type TurnEffectOptions = {\n            /**\n             * Valid values: `0`-`4000` milliseconds. Defaults to `1200`.\n             */\n            duration?: number;\n            /**\n             * Valid values: `0`-`8000` milliseconds. Defaults to `0`.\n             */\n            delay?: number;\n            /**\n             * Valid values: `\"right\"`, `\"left\"`. Defaults to `\"right\"`.\n             */\n            direction?: string;\n        };\n        /**\n         * An object used to customize the `\"zoom\"` effect.\n         */\n        type ZoomEffectOptions = {\n            /**\n             * Valid values: `0`-`4000` milliseconds. Defaults to `1200`.\n             */\n            duration?: number;\n            /**\n             * Valid values: `0`-`8000` milliseconds. Defaults to `0`.\n             */\n            delay?: number;\n        };\n    }\n    /**\n     * Provides basic functionality for elements.\n     * \t[Read more](https://www.wix.com/corvid/reference/$w.Element.html#)\n     */\n    interface Element extends $w.Node, $w.ViewportMixin {\n        /**\n         * Indicates if an element is currently in the [DOM structure](https://developer.mozilla.org/en-US/docs/Web/API/Document_Object_Model/Introduction).\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Element.html#rendered)\n         */\n        readonly rendered: boolean;\n        /**\n         * Adds an event handler that runs when the mouse pointer is moved\n         *  onto the element.\n         *\n         *  You can also [define an event handler using the Properties and Events panel](https://support.wix.com/en/article/velo-reacting-to-user-actions-using-events).\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Element.html#onMouseIn)\n         *  @eventType mouseenter\n         */\n        onMouseIn(handler: $w.MouseEventHandler): $w.Element;\n        /**\n         * Adds an event handler that runs when the mouse pointer is moved\n         *  off of the element.\n         *\n         *  You can also [define an event handler using the Properties and Events panel](https://support.wix.com/en/article/velo-reacting-to-user-actions-using-events).\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Element.html#onMouseOut)\n         *  @eventType mouseleave\n         */\n        onMouseOut(handler: $w.MouseEventHandler): $w.Element;\n    }\n    /**\n     * Events are fired when certain actions occur to elements.\n     * \t[Read more](https://www.wix.com/corvid/reference/$w.Event.html#)\n     */\n    interface Event {\n        /**\n         * Gets the context in which an event was fired.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Event.html#context)\n         */\n        readonly context: $w.Event.EventContext;\n        /**\n         * Gets the element that the event was fired on.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Event.html#target)\n         */\n        readonly target: $w.Element & AnyProperties;\n        /**\n         * Gets the type of event that was fired.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Event.html#type)\n         */\n        readonly type: string;\n    }\n    namespace Event {\n        /**\n         * An object that contains information about the context in which an event was fired.\n         */\n        type EventContext = {\n            /**\n             * `\"GLOBAL_SCOPE\"` for events fired outside\n             *  of repeaters, or `\"COMPONENT_SCOPE\"` for events fired from repeaters.\n             */\n            type: string;\n            /**\n             * ID of the repeater item where the\n             *  event was fired from.\n             */\n            itemId: string;\n        };\n    }\n    /**\n     * Provides functionality for elements that can set and lose focus.\n     * \t[Read more](https://www.wix.com/corvid/reference/$w.FocusMixin.html#)\n     */\n    interface FocusMixin {\n        /**\n         * Removes focus from the element.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.FocusMixin.html#blur)\n         */\n        blur(): void;\n        /**\n         * Places focus on the element.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.FocusMixin.html#focus)\n         */\n        focus(): void;\n        /**\n         * Adds an event handler that runs when the element loses focus.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.FocusMixin.html#onBlur)\n         *  @eventType blur\n         */\n        onBlur(handler: $w.EventHandler): $w.Element;\n        /**\n         * Adds an event handler that runs when the element receives focus.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.FocusMixin.html#onFocus)\n         *  @eventType focus\n         */\n        onFocus(handler: $w.EventHandler): $w.Element;\n    }\n    /**\n     * The footer is the area of your site that appears at the bottom and\n     *  throughout all of your pages.\n     * \t[Read more](https://www.wix.com/corvid/reference/$w.Footer.html#)\n     */\n    interface Footer extends $w.Element, $w.ClickableMixin, $w.ContainableMixin, $w.StyleMixin {\n        /**\n         * Gets an object containing information about the footer's styles.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Footer.html#style)\n         */\n        readonly style: $w.Style;\n    }\n    /**\n     * A container for the input elements and buttons in a `WixForms` `$w` element.\n     * \t[Read more](https://www.wix.com/corvid/reference/$w.Form.html#)\n     */\n    interface Form extends $w.Element, $w.ClickableMixin, $w.ContainableMixin, $w.HiddenCollapsedMixin, $w.StyleMixin {\n        /**\n         * Gets an object containing information about the styles of the form.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Form.html#style)\n         */\n        readonly style: $w.Style;\n    }\n    /**\n     * Provides functionality related to user input elements.\n     * \t[Read more](https://www.wix.com/corvid/reference/$w.FormElement.html#)\n     */\n    interface FormElement extends $w.Element, $w.ValidatableMixin, $w.ValueMixin {\n    }\n    /**\n     * A gallery for displaying multiple items.\n     * \t[Read more](https://www.wix.com/corvid/reference/$w.Gallery.html#)\n     */\n    interface Gallery extends $w.Element, $w.HiddenCollapsedMixin, $w.PlayableMixin {\n        /**\n         * Sets or gets the action that occurs when an item in the gallery is clicked.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Gallery.html#clickAction)\n         */\n        clickAction: string;\n        /**\n         * Gets the index of the gallery's current item.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Gallery.html#currentIndex)\n         */\n        readonly currentIndex: number;\n        /**\n         * Gets an object containing information about the current item.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Gallery.html#currentItem)\n         */\n        readonly currentItem: $w.Gallery.ImageItem | $w.Gallery.VideoItem;\n        /**\n         * Gets an object containing information about the gallery's capabilities.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Gallery.html#galleryCapabilities)\n         */\n        readonly galleryCapabilities: $w.Gallery.GalleryCapabilities;\n        /**\n         * Sets or gets the items in a gallery.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Gallery.html#items)\n         */\n        items: $w.Gallery.ImageItem[] | $w.Gallery.VideoItem[];\n        /**\n         * Determines if a gallery's navigation arrows are shown.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Gallery.html#showNavigationButtons)\n         */\n        showNavigationButtons: boolean;\n        /**\n         * Adds an event handler that runs when a gallery's current item changes.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Gallery.html#onCurrentItemChanged)\n         *  @eventType imageChanged\n         */\n        onCurrentItemChanged(handler: $w.GalleryItemChangedEventHandler): $w.Gallery;\n        /**\n         * Adds an event handler that runs when an item in a gallery is\n         *  clicked.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Gallery.html#onItemClicked)\n         *  @eventType itemClicked\n         */\n        onItemClicked(handler: $w.GalleryItemClickedEventHandler): $w.Gallery;\n    }\n    namespace Gallery {\n        /**\n         * An object used by the `galleryCapabilities` property that contains the capabilities of a gallery.\n         */\n        type GalleryCapabilities = {\n            /**\n             * Indicates if the gallery supports play operations.\n             */\n            isPlayable: boolean;\n            /**\n             * Indicates if the gallery supports the notion of a current item.\n             */\n            hasCurrentItem: boolean;\n            /**\n             * Indicates if the gallery supports navigation buttons.\n             */\n            hasNavigationButtons: boolean;\n        };\n        /**\n         * An object used by the Gallery properties `items` and `currentItem` to represent a single gallery image.\n         */\n        type ImageItem = {\n            /**\n             * Item type. Value is `\"image\"`.\n             */\n            type: string;\n            /**\n             * Item slug.\n             */\n            slug?: string;\n            /**\n             * Image source URL.\n             */\n            src: string;\n            /**\n             * Image description. Descriptions over 100 characters are truncated.\n             */\n            description?: string;\n            /**\n             * Image title.\n             */\n            title?: string;\n            /**\n             * URL of the image's clickable link. See [here]($w.LinkableMixin.html#link) for more information about links.\n             */\n            link?: string;\n        };\n        /**\n         * An object used by the Gallery properties `items` and `currentItem` to represent a single gallery video.\n         */\n        type VideoItem = {\n            /**\n             * Item type. Value is `\"video\"`.\n             */\n            type: string;\n            /**\n             * Item slug.\n             */\n            slug?: string;\n            /**\n             * Video source URL.\n             */\n            src: string;\n            /**\n             * Video description. Descriptions over 100 characters are truncated.\n             */\n            description?: string;\n            /**\n             * Video title.\n             */\n            title?: string;\n            /**\n             * URL of the video's clickable link. See [here]($w.LinkableMixin.html#link) for more information about links.\n             */\n            link?: string;\n            /**\n             * Video thumbnail URL.\n             */\n            thumbnail?: string;\n        };\n    }\n    /**\n     * Event that is fired when a gallery moves to a new image.\n     * \t[Read more](https://www.wix.com/corvid/reference/$w.GalleryItemChangedEvent.html#)\n     */\n    interface GalleryItemChangedEvent extends $w.Event {\n        /**\n         * Gets the gallery item.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.GalleryItemChangedEvent.html#item)\n         */\n        readonly item: $w.Gallery.ImageItem | $w.Gallery.VideoItem;\n        /**\n         * Gets the gallery item's index.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.GalleryItemChangedEvent.html#itemIndex)\n         */\n        readonly itemIndex: number;\n    }\n    /**\n     * Event that is fired when an image in a gallery is clicked.\n     * \t[Read more](https://www.wix.com/corvid/reference/$w.GalleryItemClickedEvent.html#)\n     */\n    interface GalleryItemClickedEvent extends $w.GalleryItemChangedEvent, $w.Event {\n    }\n    /**\n     * A [Google Map element](https://www.wix.com/support/html5/article/adding-google-maps)\n     *  that allows you to display a given location.\n     * \t[Read more](https://www.wix.com/corvid/reference/$w.GoogleMap.html#)\n     */\n    interface GoogleMap extends $w.Element, $w.HiddenCollapsedMixin {\n        /**\n         * Sets or gets the location information of a map's marked location.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.GoogleMap.html#location)\n         */\n        location: $w.GoogleMap.MapLocation;\n    }\n    namespace GoogleMap {\n        /**\n         * An object used by the `location` property that\n         *  contains the attributes of a marked map location.\n         */\n        type MapLocation = {\n            /**\n             * The latitude of the location. Must be between -90 and 90.\n             */\n            latitude: number;\n            /**\n             * The longitude of the location. Must be between -180 and 180.\n             */\n            longitude: number;\n            /**\n             * The description of the location.\n             */\n            description?: string;\n        };\n    }\n    /**\n     * The header is the area of your site that appears at the top and\n     *  throughout all of your pages.\n     * \t[Read more](https://www.wix.com/corvid/reference/$w.Header.html#)\n     */\n    interface Header extends $w.Element, $w.ClickableMixin, $w.ContainableMixin, $w.StyleMixin {\n        /**\n         * Gets an object containing information about the header's styles.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Header.html#style)\n         */\n        readonly style: $w.Style;\n    }\n    /**\n     * Provides functionality for all elements that can be hidden or collapsed.\n     * \t[Read more](https://www.wix.com/corvid/reference/$w.HiddenCollapsedElement.html#)\n     */\n    interface HiddenCollapsedElement extends $w.Element, $w.HiddenCollapsedMixin {\n    }\n    /**\n     * Provides functionality for all elements that can be hidden or collapsed.\n     * \t[Read more](https://www.wix.com/corvid/reference/$w.HiddenCollapsedMixin.html#)\n     */\n    interface HiddenCollapsedMixin extends $w.HiddenMixin, $w.CollapsedMixin {\n    }\n    /**\n     * Provides functionality for elements that can be hidden.\n     * \t[Read more](https://www.wix.com/corvid/reference/$w.HiddenMixin.html#)\n     */\n    interface HiddenMixin {\n        /**\n         * Indicates if the element is visible or hidden.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.HiddenMixin.html#hidden)\n         */\n        readonly hidden: boolean;\n        /**\n         * Indicates if the element is actually visible.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.HiddenMixin.html#isVisible)\n         */\n        readonly isVisible: boolean;\n        /**\n         * Hides the element and sets its `hidden` property\n         *  to `true`, using an effect if specified.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.HiddenMixin.html#hide)\n         */\n        hide(effectName?: string, effectOptions?: $w.EffectOptions.ArcEffectOptions | $w.EffectOptions.BounceEffectOptions | $w.EffectOptions.FadeEffectOptions | $w.EffectOptions.FlipEffectOptions | $w.EffectOptions.FloatEffectOptions | $w.EffectOptions.FlyEffectOptions | $w.EffectOptions.FoldEffectOptions | $w.EffectOptions.GlideEffectOptions | $w.EffectOptions.PuffEffectOptions | $w.EffectOptions.RollEffectOptions | $w.EffectOptions.SlideEffectOptions | $w.EffectOptions.SpinEffectOptions | $w.EffectOptions.TurnEffectOptions | $w.EffectOptions.ZoomEffectOptions): Promise<void>;\n        /**\n         * Shows the element and sets its `hidden` property\n         *  to `false`, using an effect if specified.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.HiddenMixin.html#show)\n         */\n        show(effectName?: string, effectOptions?: $w.EffectOptions.ArcEffectOptions | $w.EffectOptions.BounceEffectOptions | $w.EffectOptions.FadeEffectOptions | $w.EffectOptions.FlipEffectOptions | $w.EffectOptions.FloatEffectOptions | $w.EffectOptions.FlyEffectOptions | $w.EffectOptions.FoldEffectOptions | $w.EffectOptions.GlideEffectOptions | $w.EffectOptions.PuffEffectOptions | $w.EffectOptions.RollEffectOptions | $w.EffectOptions.SlideEffectOptions | $w.EffectOptions.SpinEffectOptions | $w.EffectOptions.TurnEffectOptions | $w.EffectOptions.ZoomEffectOptions): Promise<void>;\n    }\n    /**\n     * A container for internal or external HTML code.\n     * \t[Read more](https://www.wix.com/corvid/reference/$w.HtmlComponent.html#)\n     */\n    interface HtmlComponent extends $w.IFrame {\n        /**\n         * Sets or gets whether the HTML Component displays scrollbars.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.HtmlComponent.html#scrolling)\n         */\n        scrolling: string;\n        /**\n         * Sets or gets the URL of the HTML Component's code.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.HtmlComponent.html#src)\n         */\n        src: string;\n        /**\n         * Allows the HTML Component to be put into full screen mode.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.HtmlComponent.html#allowFullScreen)\n         */\n        allowFullScreen(): $w.HtmlComponent;\n        /**\n         * Adds an event handler that runs when the HTML Component\n         *  sends a message.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.HtmlComponent.html#onMessage)\n         *  @eventType message\n         */\n        onMessage(handler: $w.HtmlComponentMessageEventHandler): $w.HtmlComponent;\n        /**\n         * Sends a message to the HTML Component.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.HtmlComponent.html#postMessage)\n         */\n        postMessage(message: string | number | boolean | any | any[]): void;\n    }\n    /**\n     * Event that is fired when the code in an HtmlComponent sends a message.\n     * \t[Read more](https://www.wix.com/corvid/reference/$w.HtmlComponentMessageEvent.html#)\n     */\n    interface HtmlComponentMessageEvent extends $w.Event {\n        /**\n         * Gets the event data.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.HtmlComponentMessageEvent.html#data)\n         */\n        readonly data: any;\n    }\n    /**\n     * Provides functionality for iframe-based elements, such as `HtmlComponent`.\n     * \t[Read more](https://www.wix.com/corvid/reference/$w.IFrame.html#)\n     */\n    interface IFrame extends $w.Element, $w.HiddenCollapsedMixin {\n    }\n    /**\n     * Event that is fired when a user hovers over a star on a ratings input component.\n     * \t[Read more](https://www.wix.com/corvid/reference/$w.IconMouseInEvent.html#)\n     */\n    interface IconMouseInEvent extends $w.Event {\n        /**\n         * Gets the display label that corresponds to the icon that the mouse entered.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.IconMouseInEvent.html#label)\n         */\n        readonly label: string;\n        /**\n         * Gets the value (1-5) that corresponds to the icon that the mouse entered.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.IconMouseInEvent.html#value)\n         */\n        readonly value: number;\n    }\n    /**\n     * Images are images stored in the [Media Manager](https://support.wix.com/en/article/about-the-media-manager)\n     *  or retrieved from an external web location.\n     * \t[Read more](https://www.wix.com/corvid/reference/$w.Image.html#)\n     */\n    interface Image extends $w.Element, $w.HiddenCollapsedMixin, $w.LinkableMixin, $w.ClickableMixin {\n        /**\n         * Sets or gets an image's alt text.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Image.html#alt)\n         */\n        alt: string;\n        /**\n         * Sets or gets the action that occurs when an image is clicked.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Image.html#clickAction)\n         */\n        clickAction: string;\n        /**\n         * Sets or gets how an image is placed inside an image element.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Image.html#fitMode)\n         */\n        fitMode: string;\n        /**\n         * Sets or gets the file location of the image.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Image.html#src)\n         */\n        src: string;\n        /**\n         * Sets or gets an image's tooltip.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Image.html#tooltip)\n         */\n        tooltip: string;\n    }\n    /**\n     * Event that is fired when the keyboard is pressed.\n     * \t[Read more](https://www.wix.com/corvid/reference/$w.KeyboardEvent.html#)\n     */\n    interface KeyboardEvent extends $w.Event {\n        /**\n         * Indicates if the Option key on a Mac or Alt key on a PC was pressed.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.KeyboardEvent.html#altKey)\n         */\n        readonly altKey: boolean;\n        /**\n         * Indicates if the Control (Ctrl) key was pressed.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.KeyboardEvent.html#ctrlKey)\n         */\n        readonly ctrlKey: boolean;\n        /**\n         * Gets a string representation of the key that was pressed.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.KeyboardEvent.html#key)\n         */\n        readonly key: string;\n        /**\n         * Indicates if the ⌘ Command key on a Mac or ⊞ Windows key on a PC was pressed.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.KeyboardEvent.html#metaKey)\n         */\n        readonly metaKey: boolean;\n        /**\n         * Indicates if the Shift key was pressed.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.KeyboardEvent.html#shiftKey)\n         */\n        readonly shiftKey: boolean;\n    }\n    /**\n     * Provides functionality for elements that have a label.\n     * \t[Read more](https://www.wix.com/corvid/reference/$w.LabelMixin.html#)\n     */\n    interface LabelMixin {\n        /**\n         * Sets or gets the label of an element.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.LabelMixin.html#label)\n         */\n        label: string;\n    }\n    /**\n     * Provides functionality for elements that can act as links.\n     * \t[Read more](https://www.wix.com/corvid/reference/$w.LinkableMixin.html#)\n     */\n    interface LinkableMixin {\n        /**\n         * Sets or gets the element's link.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.LinkableMixin.html#link)\n         */\n        link: string;\n        /**\n         * Sets or gets the target of the element's link.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.LinkableMixin.html#target)\n         */\n        target: string;\n    }\n    /**\n     * A container for media items.\n     * \t[Read more](https://www.wix.com/corvid/reference/$w.MediaBox.html#)\n     */\n    interface MediaBox extends $w.Element, $w.HiddenCollapsedMixin, $w.Background {\n    }\n    /**\n     * Menus are used for navigating between site pages.\n     * \t[Read more](https://www.wix.com/corvid/reference/$w.Menu.html#)\n     */\n    interface Menu extends $w.Element, $w.HiddenCollapsedMixin {\n        /**\n         * Sets or gets menu items.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Menu.html#menuItems)\n         */\n        menuItems: $w.Menu.MenuItem[];\n        /**\n         * Adds an event handler that runs when a user clicks a menu item.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Menu.html#onItemClick)\n         *  @eventType ItemMouseClick\n         */\n        onItemClick(handler: $w.MenuItemMouseEventHandler): $w.Menu.MenuItem;\n        /**\n         * Adds an event handler that runs when a user double clicks a menu item.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Menu.html#onItemDblClick)\n         *  @eventType ItemMouseDblClick\n         */\n        onItemDblClick(handler: $w.MenuItemMouseEventHandler): $w.Menu.MenuItem;\n        /**\n         * Adds an event handler that runs when a user hovers over a menu item.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Menu.html#onItemMouseIn)\n         *  @eventType ItemMouseIn\n         */\n        onItemMouseIn(handler: $w.MenuItemMouseEventHandler): $w.Menu.MenuItem;\n        /**\n         * Adds an event handler that runs when a user stops hovering over a menu item.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Menu.html#onItemMouseOut)\n         *  @eventType ItemMouseOut\n         */\n        onItemMouseOut(handler: $w.MenuItemMouseEventHandler): $w.Menu.MenuItem;\n    }\n    namespace Menu {\n        /**\n         * An object that contains the attributes of a menu item.\n         */\n        type MenuItem = {\n            /**\n             * The label of the menu item. This is text that the site visitor sees in the menu and can click to navigate.\n             *\n             *  If not specified, and the page that the link property references is:\n             *  + An external page or an empty string: The menu defaults to the menu items based on site pages only, as defined in the Editor, and an error is logged to the console.\n             *  + A page nested under a folder: The specific menu item label defaults to the name of the corresponding page as defined in the Editor.\n             *  + A regular, non-nested, site page: The `label` for the menu item gets its value from the name of the page that the `link` property references.\n             *\n             *  Min: 1 character\n             *\n             *  Max: 40 characters\n             */\n            label?: string;\n            /**\n             * Setting `selected` to `true` for a menu item causes the item to appear highlighted in the menu element.\n             *  You can use this property to indicate which page is currently being displayed.\n             *\n             *  >**Note:** The value of `selected` isn't validated against which page is actually displayed. For example, you can write code that misleadingly sets `selected` to `true` for multiple menu items.\n             *\n             *  When not defined explicitly using the `selected` property, the `selected` value is derived from the currently-active page in the site's _main_ menu\n             *  (as defined when managing the menu in the Editor) and not derived from a currently-active page in a _custom_ menu.\n             *\n             *  Default: `false`\n             */\n            selected?: boolean;\n            /**\n             * Optional link for the menu item. This is the link the site visitor navigates to when they click on a menu item.\n             *  The different types of links you can use are:\n             *\n             *  + `/localPageURL`: Another page on your site, such as `/about` or `/rentals/shortterm`.\n             *  + `/`: Your site's home page.\n             *  + `http(s)://`: An external web address, such as `https://www.mortgagecalculator.org/`.\n             *  + `wix:document://`: A document stored in the Media Manager, such as `wix:document://v1/9bec_52fb06ea/filename.xls`.\n             *  + `mailto:?subject=`: An email, such as `mailto:michael@example.com?subject=Coming%20Soon`.\n             *  + `tel:`: A phone number, such as `tel:+1-555-555-5555`.\n             *\n             *  If `link` isn't specified, the corresponding label isn't clickable.\n             *\n             *  Specifying an empty string is not supported. The menu defaults to the menu items as defined in the Editor and an error is logged to the console.\n             *\n             *  Min: 1 character\n             *\n             *  Max: 40 characters\n             */\n            link?: string;\n            /**\n             * Whether the link opens in the same window/tab or in a new window/tab.\n             *  + `_self`. The page opens in the same window/tab.\n             *  + `_blank`. The page opens in a new window/tab.\n             *\n             *  > **Note:** `target` doesn't work when previewing your site.\n             *\n             *\n             *  Default: `_self`\n             */\n            target?: string;\n            /**\n             * Menus can have additional levels of submenus. Vertical menus can have\n             *  1 level of submenus. Horizontal menus can have 2 additional levels of submenus.\n             */\n            menuItems?: $w.Menu.MenuItem[];\n        };\n    }\n    /**\n     * A menu container holds the elements in a\n     *  mobile menu that are used for navigating between mobile site pages.\n     * \t[Read more](https://www.wix.com/corvid/reference/$w.MenuContainer.html#)\n     */\n    interface MenuContainer extends $w.Element {\n        /**\n         * Sets or gets mobile menu items.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.MenuContainer.html#menuItems)\n         */\n        menuItems: $w.MenuContainer.MenuItem[];\n        /**\n         * Closes a mobile menu.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.MenuContainer.html#close)\n         */\n        close(): Promise<void>;\n        /**\n         * Adds an event handler that runs when a user clicks a mobile menu item.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.MenuContainer.html#onItemClick)\n         *  @eventType ItemMouseClick\n         */\n        onItemClick(handler: $w.MenuItemMouseEventHandler): $w.Menu.MenuItem;\n        /**\n         * Adds an event handler that runs when a user double clicks a mobile menu item.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.MenuContainer.html#onItemDblClick)\n         *  @eventType ItemMouseDblClick\n         */\n        onItemDblClick(handler: $w.MenuItemMouseEventHandler): $w.Menu.MenuItem;\n        /**\n         * Adds an event handler that runs when a user hovers over a mobile menu item.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.MenuContainer.html#onItemMouseIn)\n         *  @eventType ItemMouseIn\n         */\n        onItemMouseIn(handler: $w.MenuItemMouseEventHandler): $w.MenuContainer.MenuItem;\n        /**\n         * Adds an event handler that runs when a user stops hovering over a mobile menu item.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.MenuContainer.html#onItemMouseOut)\n         *  @eventType ItemMouseOut\n         */\n        onItemMouseOut(handler: $w.MenuItemMouseEventHandler): $w.MenuContainer.MenuItem;\n        /**\n         * Opens a mobile menu.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.MenuContainer.html#open)\n         */\n        open(): Promise<void>;\n    }\n    namespace MenuContainer {\n        /**\n         * An object that contains the attributes of a mobile menu item.\n         */\n        type MenuItem = {\n            /**\n             * The label of the mobile menu item. This is text that the site visitor sees in the mobile menu and can click to navigate.\n             *\n             *  If not specified, and the page that the link property references is:\n             *  + An external page or an empty string: The mobile menu defaults to the mobile menu items based on site pages only, as defined in the Editor, and an error is logged to the console.\n             *  + A page nested under a folder: The specific mobile menu item label defaults to the name of the corresponding page as defined in the Editor.\n             *  + A regular, non-nested, site page: The `label` for the mobile menu item gets its value from the name of the page that the `link` property references.\n             *\n             *  Min: 1 character\n             *\n             *  Max: 40 characters\n             */\n            label?: string;\n            /**\n             * Setting `selected` to `true` for a mobile menu item causes the item to appear highlighted and to expand any of its sub-items in the menu container.\n             *  You can use this property to indicate which page is currently being displayed.\n             *\n             *  >**Note:** The value of `selected` isn't validated against which page is actually displayed. For example, you can write code that misleadingly sets `selected` to `true` for multiple menu items.\n             *\n             *  When not defined explicitly using the `selected` property, the `selected` value is derived from the currently-active page in the site's _main_ mobile menu\n             *  (as defined when managing the mobile menu in the Editor) and not derived from a currently-active page in a _custom_ mobile menu.\n             *\n             *  Default: `false`\n             */\n            selected?: boolean;\n            /**\n             * Optional link for the mobile menu item. The different types of links you can use are:\n             *\n             *  + `/localPageURL`: Another page on your site, such as `/about` or `/rentals/shortterm`.\n             *  + `/`: Your site's home page.\n             *  + `http(s)://`: An external web address, such as `https://www.mortgagecalculator.org/`.\n             *  + `wix:document://`: A document stored in the Media Manager, such as `wix:document://v1/9bec_52fb06ea/filename.xls`.\n             *  + `mailto:?subject=`: An email, such as `mailto:michael@example.com?subject=Coming%20Soon`.\n             *  + `tel:`: A phone number, such as `tel:+1-555-555-5555`.\n             *\n             *  If `link` isn't specified, the corresponding label isn't clickable.\n             *\n             *  Specifying an empty string is not supported. The mobile menu defaults to the mobile menu items as defined in the Editor and an error is logged to the console.\n             *\n             *  Min: 1 character\n             *\n             *  Max: 40 characters\n             */\n            link?: string;\n            /**\n             * Whether the link opens in the same window/tab or in a new window/tab.\n             *  + `_self`. The page opens in the same window/tab.\n             *  + `_blank`. The page opens in a new window/tab.\n             *\n             *  > **Note:** `target` doesn't work when previewing your site.\n             *\n             *\n             *  Default: `_self`\n             */\n            target?: string;\n            /**\n             * Menus can have 1 additional level of submenus.\n             */\n            menuItems?: $w.MenuContainer.MenuItem[];\n        };\n    }\n    /**\n     * Event that is fired when the mouse is used on a menu item.\n     * \t[Read more](https://www.wix.com/corvid/reference/$w.MenuItemMouseEvent.html#)\n     */\n    interface MenuItemMouseEvent extends $w.Event {\n        /**\n         * Gets the distance in pixels between the mouse pointer and the\n         *  left edge of the browser's viewable area.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.MenuItemMouseEvent.html#clientX)\n         */\n        readonly clientX: number;\n        /**\n         * Gets the distance in pixels between the mouse pointer and the\n         *  top edge of the browser's viewable area.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.MenuItemMouseEvent.html#clientY)\n         */\n        readonly clientY: number;\n        /**\n         * The menu item on which the event occurred.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.MenuItemMouseEvent.html#item)\n         */\n        readonly item: $w.Menu.MenuItem;\n        /**\n         * Gets the distance in pixels between the mouse pointer and the\n         *  left edge of the element that triggered this event.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.MenuItemMouseEvent.html#offsetX)\n         */\n        readonly offsetX: number;\n        /**\n         * Gets the distance in pixels between the mouse pointer and the\n         *  top edge of the element that triggered this event.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.MenuItemMouseEvent.html#offsetY)\n         */\n        readonly offsetY: number;\n        /**\n         * Gets the distance in pixels between the mouse pointer and the\n         *  left edge of the page.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.MenuItemMouseEvent.html#pageX)\n         */\n        readonly pageX: number;\n        /**\n         * Gets the distance in pixels between the mouse pointer and the\n         *  top edge of the page.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.MenuItemMouseEvent.html#pageY)\n         */\n        readonly pageY: number;\n        /**\n         * Gets the distance in pixels between the mouse pointer and the\n         *  left edge of the screen or screens.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.MenuItemMouseEvent.html#screenX)\n         */\n        readonly screenX: number;\n        /**\n         * Gets the distance in pixels between the mouse pointer and the\n         *  top edge of the screen or screens.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.MenuItemMouseEvent.html#screenY)\n         */\n        readonly screenY: number;\n    }\n    /**\n     * Event that is fired when the mouse is clicked.\n     * \t[Read more](https://www.wix.com/corvid/reference/$w.MouseEvent.html#)\n     */\n    interface MouseEvent extends $w.Event {\n        /**\n         * Gets the distance in pixels between the mouse pointer and the\n         *  left edge of the browser's viewable area.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.MouseEvent.html#clientX)\n         */\n        readonly clientX: number;\n        /**\n         * Gets the distance in pixels between the mouse pointer and the\n         *  top edge of the browser's viewable area.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.MouseEvent.html#clientY)\n         */\n        readonly clientY: number;\n        /**\n         * Gets the distance in pixels between the mouse pointer and the\n         *  left edge of the element that triggered this event.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.MouseEvent.html#offsetX)\n         */\n        readonly offsetX: number;\n        /**\n         * Gets the distance in pixels between the mouse pointer and the\n         *  top edge of the element that triggered this event.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.MouseEvent.html#offsetY)\n         */\n        readonly offsetY: number;\n        /**\n         * Gets the distance in pixels between the mouse pointer and the\n         *  left edge of the page.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.MouseEvent.html#pageX)\n         */\n        readonly pageX: number;\n        /**\n         * Gets the distance in pixels between the mouse pointer and the\n         *  top edge of the page.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.MouseEvent.html#pageY)\n         */\n        readonly pageY: number;\n        /**\n         * Gets the distance in pixels between the mouse pointer and the\n         *  left edge of the screen or screens.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.MouseEvent.html#screenX)\n         */\n        readonly screenX: number;\n        /**\n         * Gets the distance in pixels between the mouse pointer and the\n         *  top edge of the screen or screens.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.MouseEvent.html#screenY)\n         */\n        readonly screenY: number;\n    }\n    /**\n     * Multi-state boxes are containers for states.\n     * \t[Read more](https://www.wix.com/corvid/reference/$w.MultiStateBox.html#)\n     */\n    interface MultiStateBox extends $w.Element, $w.HiddenCollapsedMixin, $w.ClickableMixin, $w.ContainableMixin {\n        /**\n         * Gets the multi-state box's current state.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.MultiStateBox.html#currentState)\n         */\n        readonly currentState: $w.State;\n        /**\n         * Gets a list of all the states contained in the multi-state box.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.MultiStateBox.html#states)\n         */\n        readonly states: $w.State[];\n        /**\n         * Change the multi-state box's current state to a specific state.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.MultiStateBox.html#changeState)\n         */\n        changeState(stateReference: string | $w.State): Promise<$w.State>;\n        /**\n         * Adds an event handler that runs when the multi-state box moves to a new state.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.MultiStateBox.html#onChange)\n         *  @eventType change\n         */\n        onChange(eventHandler: $w.EventHandler): $w.MultiStateBox;\n    }\n    /**\n     * Provides basic functionality for all Wix objects, including objects\n     *  that are not [elements]($w.Element.html).\n     * \t[Read more](https://www.wix.com/corvid/reference/$w.Node.html#)\n     */\n    interface Node {\n        /**\n         * Indicates if an element appears on all pages or only on the current page.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Node.html#global)\n         */\n        readonly global: boolean;\n        /**\n         * Gets the element's ID.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Node.html#id)\n         */\n        readonly id: string;\n        /**\n         * Gets the element's parent element.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Node.html#parent)\n         */\n        readonly parent: $w.Node;\n        /**\n         * Gets the element's type.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Node.html#type)\n         */\n        readonly type: string;\n        /**\n         * Scrolls the page to the top of the element using an animation.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Node.html#scrollTo)\n         */\n        scrollTo(): Promise<void>;\n    }\n    /**\n     * A page is a web page that can contain other elements.\n     * \t[Read more](https://www.wix.com/corvid/reference/$w.Page.html#)\n     */\n    interface Page extends $w.Element, $w.ClickableMixin, $w.ContainableMixin {\n        /**\n         * Gets the page's [SEO description](https://support.wix.com/en/article/adding-seo-page-titles-and-descriptions-meta-tags).\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Page.html#description)\n         */\n        readonly description: string;\n        /**\n         * Gets the page's keywords.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Page.html#keywords)\n         */\n        readonly keywords: string[];\n        /**\n         * Gets the page's title.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Page.html#title)\n         */\n        readonly title: string;\n        /**\n         * Indicates if the page is included in the site's menu.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Page.html#visibleInMenu)\n         */\n        readonly visibleInMenu: boolean;\n    }\n    /**\n     * Provides functionality for elements that can be played.\n     * \t[Read more](https://www.wix.com/corvid/reference/$w.PlayableMixin.html#)\n     */\n    interface PlayableMixin {\n        /**\n         * Indicates if the element is currently playing.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.PlayableMixin.html#isPlaying)\n         */\n        readonly isPlaying: boolean;\n        /**\n         * Moves to the next item.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.PlayableMixin.html#next)\n         */\n        next(): Promise<$w.Element & AnyProperties>;\n        /**\n         * Adds an event handler that runs when playback is paused.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.PlayableMixin.html#onPause)\n         *  @eventType autoplayOff\n         */\n        onPause(handler: $w.EventHandler): $w.Gallery & $w.Slideshow;\n        /**\n         * Adds an event handler that runs when playback is started or restarted.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.PlayableMixin.html#onPlay)\n         *  @eventType autoplayOn\n         */\n        onPlay(handler: $w.EventHandler): $w.Gallery & $w.Slideshow;\n        /**\n         * Pauses playback.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.PlayableMixin.html#pause)\n         */\n        pause(): void;\n        /**\n         * Begins or resumes playback.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.PlayableMixin.html#play)\n         */\n        play(): void;\n        /**\n         * Moves to the previous image or slide.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.PlayableMixin.html#previous)\n         */\n        previous(): Promise<$w.Element & AnyProperties>;\n    }\n    /**\n     * A [quick action bar](https://support.wix.com/en/article/adding-and-setting-up-the-quick-action-bar-on-your-mobile-site)\n     *  helps your visitors contact you instantly from their mobile devices.\n     * \t[Read more](https://www.wix.com/corvid/reference/$w.QuickActionBar.html#)\n     */\n    interface QuickActionBar extends $w.HiddenCollapsedMixin, $w.StyleMixin {\n        /**\n         * Sets or gets a quick action bar's alignment.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.QuickActionBar.html#alignment)\n         */\n        alignment: boolean;\n        /**\n         * Sets or gets a quick action bar's color scheme.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.QuickActionBar.html#colorScheme)\n         */\n        colorScheme: string;\n        /**\n         * Sets or gets whether a quick action bar's color scheme is inverted.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.QuickActionBar.html#invertColorScheme)\n         */\n        invertColorScheme: boolean;\n        /**\n         * Sets or gets whether a quick action bar's labels are shown.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.QuickActionBar.html#showLabels)\n         */\n        showLabels: boolean;\n        /**\n         * Adds an event handler that runs when an item in a quick action bar is\n         *  clicked.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.QuickActionBar.html#onItemClicked)\n         *  @eventType itemClicked\n         */\n        onItemClicked(handler: $w.QuickActionBarItemClickedEventHandler): $w.QuickActionBar;\n    }\n    /**\n     * Event that is fired when a quick action bar item is clicked.\n     * \t[Read more](https://www.wix.com/corvid/reference/$w.QuickActionBarItemClickedEvent.html#)\n     */\n    interface QuickActionBarItemClickedEvent extends $w.Event {\n        /**\n         * Gets the gallery item.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.QuickActionBarItemClickedEvent.html#item)\n         */\n        readonly item: $w.QuickActionBarItemClickedEvent.QuickActionBarItem;\n        /**\n         * Gets the quick action bar item's index.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.QuickActionBarItemClickedEvent.html#itemIndex)\n         */\n        readonly itemIndex: number;\n    }\n    namespace QuickActionBarItemClickedEvent {\n        /**\n         * An object representing a quick action bar item.\n         */\n        type QuickActionBarItem = {\n            /**\n             * The quick action bar item type.\n             *\n             *  One of:\n             *\n             *  + `\"3dots\"`\n             *  + `\"3dotsvertical\"`\n             *  + `\"about\"`\n             *  + `\"add\"`\n             *  + `\"address\"`\n             *  + `\"arrowdown\"`\n             *  + `\"arrowup\"`\n             *  + `\"blog\"`\n             *  + `\"booking\"`\n             *  + `\"briefcase\"`\n             *  + `\"clock\"`\n             *  + `\"clothes\"`\n             *  + `\"cloud\"`\n             *  + `\"contactform\"`\n             *  + `\"creditcard\"`\n             *  + `\"crown\"`\n             *  + `\"currency\"`\n             *  + `\"earth\"`\n             *  + `\"ecom\"`\n             *  + `\"email\"`\n             *  + `\"facebook\"`\n             *  + `\"flag\"`\n             *  + `\"flickr\"`\n             *  + `\"freebutton\"`\n             *  + `\"gallery\"`\n             *  + `\"googleplus\"`\n             *  + `\"hamburgermenu\"`\n             *  + `\"heart\"`\n             *  + `\"home\"`\n             *  + `\"hot\"`\n             *  + `\"hotel\"`\n             *  + `\"hotsale\"`\n             *  + `\"icecream\"`\n             *  + `\"instagram\"`\n             *  + `\"lightning\"`\n             *  + `\"link\"`\n             *  + `\"linkedin\"`\n             *  + `\"music\"`\n             *  + `\"new\"`\n             *  + `\"page\"`\n             *  + `\"phone\"`\n             *  + `\"pinterest\"`\n             *  + `\"present\"`\n             *  + `\"register\"`\n             *  + `\"restaurant\"`\n             *  + `\"rocket\"`\n             *  + `\"sale\"`\n             *  + `\"search\"`\n             *  + `\"shoppingcart\"`\n             *  + `\"signup\"`\n             *  + `\"smile\"`\n             *  + `\"social\"`\n             *  + `\"speaker\"`\n             *  + `\"star\"`\n             *  + `\"ticket\"`\n             *  + `\"twitter\"`\n             *  + `\"vimeo\"`\n             *  + `\"vk\"`\n             *  + `\"yelp\"`\n             *  + `\"youtube\"`\n             */\n            itemType: string;\n            /**\n             * The quick action bar item label.\n             */\n            label: string;\n            /**\n             * The quick action bar item link.\n             */\n            link: string;\n        };\n    }\n    /**\n     * Radio button groups are used for selecting one of a number of\n     *  options.\n     * \t[Read more](https://www.wix.com/corvid/reference/$w.RadioButtonGroup.html#)\n     */\n    interface RadioButtonGroup extends $w.LabelMixin, $w.FormElement, $w.HiddenCollapsedMixin, $w.DisabledMixin, $w.FocusMixin, $w.ClickableMixin, $w.StyleMixin, $w.RequiredMixin {\n        /**\n         * Sets or gets the options in a radio button group.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.RadioButtonGroup.html#options)\n         */\n        options: $w.RadioButtonGroup.Option[];\n        /**\n         * Sets or gets the index of the selected option.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.RadioButtonGroup.html#selectedIndex)\n         */\n        selectedIndex: number;\n        /**\n         * Gets an object containing information about the radio button group's styles.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.RadioButtonGroup.html#style)\n         */\n        readonly style: $w.Style;\n        /**\n         * Sets or gets the value of the selected option.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.RadioButtonGroup.html#value)\n         */\n        value: string;\n    }\n    namespace RadioButtonGroup {\n        /**\n         * An object used by the `options` property that contains the attributes of a radio button item.\n         */\n        type Option = {\n            /**\n             * The value of the radio button option. This is what you use in code and is what is stored in your collections. Mandatory if `label` is not specified.\n             */\n            value?: string;\n            /**\n             * The label of the radio button option. This is what a user sees. Mandatory if `value` is not specified.\n             */\n            label?: string;\n        };\n    }\n    /**\n     * Provides functionality for input elements that support readonly mode.\n     * \t[Read more](https://www.wix.com/corvid/reference/$w.ReadOnlyMixin.html#)\n     */\n    interface ReadOnlyMixin {\n        /**\n         * Sets or gets if a user can modify the value of the input element.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.ReadOnlyMixin.html#readOnly)\n         */\n        readOnly: boolean;\n    }\n    /**\n     * A repeating layout.\n     * \t[Read more](https://www.wix.com/corvid/reference/$w.Repeater.html#)\n     */\n    interface Repeater extends $w.Element, $w.HiddenCollapsedMixin {\n        /**\n         * Sets or gets the repeater data.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Repeater.html#data)\n         */\n        data: any[];\n        /**\n         * Runs a function for each repeated item.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Repeater.html#forEachItem)\n         */\n        forEachItem(callback: $w.ForItemCallback): void;\n        /**\n         * Runs a function for each repeated item with the given IDs.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Repeater.html#forItems)\n         */\n        forItems(itemIds: string[], callback: $w.ForItemCallback): void;\n        /**\n         * Sets the function that runs when a new repeated item is created.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Repeater.html#onItemReady)\n         *  @eventType itemReady\n         */\n        onItemReady(handler: $w.ItemReadyEventHandler): $w.Repeater;\n        /**\n         * Sets the function that runs when a repeated item is removed.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Repeater.html#onItemRemoved)\n         *  @eventType itemRemoved\n         */\n        onItemRemoved(handler: $w.ItemRemovedEventHandler): $w.Repeater;\n    }\n    /**\n     * Provides functionality for input elements that can be required to have a value.\n     * \t[Read more](https://www.wix.com/corvid/reference/$w.RequiredMixin.html#)\n     */\n    interface RequiredMixin {\n        /**\n         * Sets or gets whether an input element is required to have a value.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.RequiredMixin.html#required)\n         */\n        required: boolean;\n    }\n    /**\n     * A `Slide` from a `Slideshow` that can contain other elements.\n     * \t[Read more](https://www.wix.com/corvid/reference/$w.Slide.html#)\n     */\n    interface Slide extends $w.Element, $w.Background, $w.ContainableMixin {\n        /**\n         * Gets the slide's ID.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Slide.html#id)\n         */\n        readonly id: string;\n        /**\n         * Gets the name of the slide.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Slide.html#name)\n         */\n        readonly name: string;\n    }\n    /**\n     * Slideshows are playable containers for slides.\n     * \t[Read more](https://www.wix.com/corvid/reference/$w.Slideshow.html#)\n     */\n    interface Slideshow extends $w.Element, $w.HiddenCollapsedMixin, $w.PlayableMixin, $w.ClickableMixin, $w.ContainableMixin {\n        /**\n         * Gets the index of the slideshow's current slide.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Slideshow.html#currentIndex)\n         */\n        readonly currentIndex: number;\n        /**\n         * Gets the slideshow's current slide.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Slideshow.html#currentSlide)\n         */\n        readonly currentSlide: $w.Slide;\n        /**\n         * Sets or gets whether a slideshow's navigation buttons are shown.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Slideshow.html#showNavigationButtons)\n         */\n        showNavigationButtons: boolean;\n        /**\n         * Set or returns whether a slideshow's slide buttons are shown.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Slideshow.html#showSlideButtons)\n         */\n        showSlideButtons: boolean;\n        /**\n         * Gets a list of all the slides contained in the slideshow.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Slideshow.html#slides)\n         */\n        readonly slides: $w.Slide[];\n        /**\n         * Change the slideshow's current slide to a specific slide or index.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Slideshow.html#changeSlide)\n         */\n        changeSlide(slideReference: number | $w.Slide): Promise<$w.Slide>;\n        /**\n         * Adds an event handler that runs when the slideshow moves to a new slide.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Slideshow.html#onChange)\n         *  @eventType change\n         */\n        onChange(eventHandler: $w.EventHandler): $w.Slideshow;\n    }\n    /**\n     * A `State` from a [`MultiStateBox`]($w.MultiStateBox.html) that can contain other elements.\n     * \t[Read more](https://www.wix.com/corvid/reference/$w.State.html#)\n     */\n    interface State extends $w.Element, $w.Background, $w.ContainableMixin {\n        /**\n         * Gets the state's ID.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.State.html#id)\n         */\n        readonly id: string;\n    }\n    /**\n     * An object representing an element's styles.\n     * \t[Read more](https://www.wix.com/corvid/reference/$w.Style.html#)\n     */\n    interface Style {\n        /**\n         * Sets or gets the background color of an element.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Style.html#backgroundColor)\n         */\n        backgroundColor: string;\n        /**\n         * Sets or gets the border color of an element.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Style.html#borderColor)\n         */\n        borderColor: string;\n        /**\n         * Sets or gets the border radius of an element.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Style.html#borderRadius)\n         */\n        borderRadius: string;\n        /**\n         * Sets or gets the border width of an element.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Style.html#borderWidth)\n         */\n        borderWidth: string;\n        /**\n         * Sets or gets the text color of an element.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Style.html#color)\n         */\n        color: string;\n        /**\n         * Sets or gets the foreground color of an element.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Style.html#foregroundColor)\n         */\n        foregroundColor: string;\n    }\n    /**\n     * Provides functionality for elements that can be styled.\n     * \t[Read more](https://www.wix.com/corvid/reference/$w.StyleMixin.html#)\n     */\n    interface StyleMixin {\n        /**\n         * Gets an object containing information about the element's styles.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.StyleMixin.html#style)\n         */\n        readonly style: $w.Style;\n    }\n    /**\n     * A tab within a [tabs]($w.Tabs.html) element.\n     * \t[Read more](https://www.wix.com/corvid/reference/$w.Tab.html#)\n     */\n    interface Tab extends $w.Element, $w.Background, $w.ContainableMixin {\n        /**\n         * Gets the tab's ID.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Tab.html#id)\n         */\n        readonly id: string;\n        /**\n         * Sets or gets the tab's label.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Tab.html#label)\n         */\n        label: string;\n        /**\n         * Gets the element's type.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Tab.html#type)\n         */\n        readonly type: string;\n    }\n    /**\n     * A table for displaying data.\n     * \t[Read more](https://www.wix.com/corvid/reference/$w.Table.html#)\n     */\n    interface Table extends $w.Element, $w.HiddenCollapsedMixin, $w.ClickableMixin {\n        /**\n         * Sets or gets the defining properties of the columns in a table.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Table.html#columns)\n         */\n        columns: $w.Table.Column[];\n        /**\n         * Sets the function that is called when a new page of table data is to be displayed.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Table.html#dataFetcher)\n         */\n        dataFetcher: Function;\n        /**\n         * Sets or gets the table's pagination options.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Table.html#pagination)\n         */\n        pagination: $w.Table.PaginationOptions;\n        /**\n         * Sets or gets the table's row data.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Table.html#rows)\n         */\n        rows: any[];\n        /**\n         * Adds an event handler that runs when a table cell is selected.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Table.html#onCellSelect)\n         *  @eventType cellSelect\n         */\n        onCellSelect(eventHandler: $w.TableCellEventHandler): $w.Table;\n        /**\n         * Adds an event handler that runs when the table's data is changed.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Table.html#onDataChange)\n         *  @eventType dataChange\n         */\n        onDataChange(eventHandler: $w.EventHandler): void;\n        /**\n         * Adds an event handler that runs when a table row is selected.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Table.html#onRowSelect)\n         *  @eventType rowSelect\n         */\n        onRowSelect(eventHandler: $w.TableRowEventHandler): $w.Table;\n        /**\n         * Fetches the most current data and updates the table.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Table.html#refresh)\n         */\n        refresh(): void;\n        /**\n         * Selects a table row by index.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Table.html#selectRow)\n         */\n        selectRow(index: number): void;\n        /**\n         * Updates the row data of a single row at the specified index.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Table.html#updateRow)\n         */\n        updateRow(index: number, rowData: any): void;\n    }\n    namespace Table {\n        /**\n         * An object used by the `columns` property that\n         *  contains the properties that define a table column. Table columns do not\n         *  store any data.\n         */\n        type Column = {\n            /**\n             * The column ID.\n             */\n            id: string;\n            /**\n             * The location of the data displayed\n             *  in the column.\n             *\n             *  When the table is populated by a connection to a dataset, the `dataPath`\n             *  value is a field key from the collection that the dataset is connected to. The\n             *  `dataPath` can contain a [reference field](https://support.wix.com/en/article/about-reference-fields-in-database-collections)\n             *  by prefixing the field with the referenced collection name and a period. For example,\n             *  `\"dataPath\": \"writer.name\"`.\n             *\n             *  When the table is populated by using the [`rows`](#rows) or\n             *  [`dataFetcher`](#dataFetcher) properties, the `dataPath` value is one of the\n             *  property keys from the table's row objects.\n             */\n            dataPath: string;\n            /**\n             * The column header label.\n             */\n            label: string;\n            /**\n             * The type of data in this column: `\"number\"`, `\"string\"`, `\"date\"`, `\"image\"`, `\"bool\"`, or `\"richText\"`.\n             */\n            type: string;\n            /**\n             * The pixel width of the column.\n             */\n            width?: number;\n            /**\n             * Whether the column is visible.\n             */\n            visible?: boolean;\n            /**\n             * The location of the links used when\n             *  the items in the column are clicked.\n             *\n             *  When the table is populated by a connection to a dataset, the `linkPath`\n             *  value is a field key from the collection that the dataset is connected to.\n             *  The collection field can be a [regular field](https://support.wix.com/en/article/about-database-collections#regular-fields)\n             *  that contains URLs, a [calculated field](https://support.wix.com/en/article/about-database-collections#calculated-fields), or a [reference field](https://support.wix.com/en/article/about-reference-fields-in-database-collections)\n             *  that contains relative links to dynamic pages.\n             *\n             *  When the table is populated by using the [`rows`](#rows) or\n             *  [`dataFetcher`](#dataFetcher) properties, the `linkPath` value is one of the\n             *  property keys from the table's rows objects.\n             *  The property values associated with that key contain URLs or relative links.\n             */\n            linkPath?: string;\n        };\n        /**\n         * An object used by the `pagination` property that\n         * contains the pagination options which determine if and how the table\n         * is paginated.\n         */\n        type PaginationOptions = {\n            /**\n             * The type of pagination.\n             *  One of:\n             *\n             *  + `\"normal\"`: No pagination. The table is scrollable if there are more\n             *    rows than can be displayed at once. All data is fetched at once.\n             *  + `\"pagination\"`: The data is separated into pages which are navigatable\n             *    using paging buttons. New data is fetched when a user clicks on a\n             *    paging button.\n             *  + `\"virtual\"`: The data is separated into pages which are navigated by\n             *    scrolling. New data is fetched when user a user scrolls below the\n             *    displayed rows.\n             */\n            type: string;\n            /**\n             * The number of rows per page.\n             */\n            rowsPerPage: number;\n        };\n    }\n    /**\n     * Event that is fired when a table cell is selected.\n     * \t[Read more](https://www.wix.com/corvid/reference/$w.TableCellEvent.html#)\n     */\n    interface TableCellEvent extends $w.Event {\n        /**\n         * Gets the column ID of the selected cell.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.TableCellEvent.html#cellColumnId)\n         */\n        readonly cellColumnId: string;\n        /**\n         * Gets the data from the selected cell.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.TableCellEvent.html#cellData)\n         */\n        readonly cellData: string;\n        /**\n         * Gets the row index of the selected cell.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.TableCellEvent.html#cellRowIndex)\n         */\n        readonly cellRowIndex: number;\n    }\n    /**\n     * Event that is fired when a table row is selected.\n     * \t[Read more](https://www.wix.com/corvid/reference/$w.TableRowEvent.html#)\n     */\n    interface TableRowEvent extends $w.Event {\n        /**\n         * Gets the data for the selected row.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.TableRowEvent.html#rowData)\n         */\n        readonly rowData: any;\n        /**\n         * Gets the index of the selected row.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.TableRowEvent.html#rowIndex)\n         */\n        readonly rowIndex: number;\n    }\n    /**\n     * A container that holds multiple [tab]($w.Tab.html) elements, displaying one at a time.\n     * \t[Read more](https://www.wix.com/corvid/reference/$w.Tabs.html#)\n     */\n    interface Tabs extends $w.Element, $w.HiddenCollapsedMixin, $w.ClickableMixin, $w.ContainableMixin {\n        /**\n         * Gets the tab currently displayed in the tabs element.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Tabs.html#currentTab)\n         */\n        readonly currentTab: $w.Tab;\n        /**\n         * Gets the tabs element's default tab.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Tabs.html#defaultTab)\n         */\n        readonly defaultTab: $w.Tab;\n        /**\n         * Gets a list of all the tabs contained in the tabs element.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Tabs.html#tabs)\n         */\n        readonly tabs: $w.Tab[];\n        /**\n         * Gets the element's type.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Tabs.html#type)\n         */\n        readonly type: string;\n        /**\n         * Changes the tabs element's current tab.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Tabs.html#changeTab)\n         */\n        changeTab(tabReference: string | $w.Tab): Promise<$w.Tab>;\n        /**\n         * Adds an event handler that runs when the tabs element moves to a different tab.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Tabs.html#onChange)\n         *  @eventType change\n         */\n        onChange(eventHandler: $w.EventHandler): void;\n        /**\n         * Adds an event handler that runs when any tab menu item is clicked.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Tabs.html#onTabItemClicked)\n         *  @eventType click\n         */\n        onTabItemClicked(eventHandler: $w.EventHandler): $w.Tabs;\n        /**\n         * Changes the order of the tabs in a tabs element.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Tabs.html#orderTabs)\n         */\n        orderTabs(orderedTabIds: string[] | $w.Tab[]): Promise<void>;\n    }\n    /**\n     * Provides functionality for text elements.\n     * \t[Read more](https://www.wix.com/corvid/reference/$w.Text.html#)\n     */\n    interface Text extends $w.Element, $w.HiddenCollapsedMixin, $w.ClickableMixin {\n        /**\n         * Sets or gets the contents of a text element using standard HTML.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Text.html#html)\n         */\n        html: string;\n        /**\n         * Sets or gets the plain-text contents of a text element.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Text.html#text)\n         */\n        text: string;\n    }\n    /**\n     * An input element for capturing large amounts of text.\n     * \t[Read more](https://www.wix.com/corvid/reference/$w.TextBox.html#)\n     */\n    interface TextBox extends $w.LabelMixin, $w.FormElement, $w.DisabledMixin, $w.TextInputMixin, $w.HiddenCollapsedMixin, $w.FocusMixin, $w.ReadOnlyMixin, $w.ClickableMixin, $w.StyleMixin, $w.RequiredMixin {\n        /**\n         * Gets an object containing information about the text box's styles.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.TextBox.html#style)\n         */\n        readonly style: $w.Style;\n        /**\n         * Sets or gets a text input's value.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.TextBox.html#value)\n         */\n        value: string;\n        /**\n         * Determines if the text contains line breaks when its value is read.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.TextBox.html#wrap)\n         */\n        wrap: string;\n    }\n    /**\n     * An input element for capturing small amounts of text.\n     * \t[Read more](https://www.wix.com/corvid/reference/$w.TextInput.html#)\n     */\n    interface TextInput extends $w.LabelMixin, $w.FormElement, $w.HiddenCollapsedMixin, $w.DisabledMixin, $w.TextInputMixin, $w.FocusMixin, $w.ReadOnlyMixin, $w.ClickableMixin, $w.StyleMixin, $w.RequiredMixin {\n        /**\n         * Sets or gets the input type of an Input element.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.TextInput.html#inputType)\n         */\n        inputType: string;\n        /**\n         * Sets or gets the maximum value for a text input element whose\n         *  type is set to **Number**.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.TextInput.html#max)\n         */\n        max: number;\n        /**\n         * Sets or gets the minimum value for a text input element whose\n         *  type is set to **Number**.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.TextInput.html#min)\n         */\n        min: number;\n        /**\n         * Indicates if the number spinner is hidden or visible for a numeric text input element.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.TextInput.html#numberSpinnerHidden)\n         */\n        readonly numberSpinnerHidden: boolean;\n        /**\n         * Gets an object containing information about the text input's styles.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.TextInput.html#style)\n         */\n        readonly style: $w.Style;\n        /**\n         * Gets a ValidityState object that contains\n         *  detailed information about the validity states of the element.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.TextInput.html#validity)\n         */\n        readonly validity: $w.ValidatableMixin.ValidityState;\n        /**\n         * Sets or gets a text input's value.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.TextInput.html#value)\n         */\n        value: string;\n        /**\n         * Hides the number spinner for a numeric text input.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.TextInput.html#hideNumberSpinner)\n         */\n        hideNumberSpinner(): void;\n        /**\n         * Shows the number spinner for a numeric text input.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.TextInput.html#showNumberSpinner)\n         */\n        showNumberSpinner(): void;\n    }\n    /**\n     * Provides functionality for elements that accept text as input.\n     * \t[Read more](https://www.wix.com/corvid/reference/$w.TextInputMixin.html#)\n     */\n    interface TextInputMixin {\n        /**\n         * Sets or gets the maximum number of characters that can be entered.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.TextInputMixin.html#maxLength)\n         */\n        maxLength: number;\n        /**\n         * Sets or gets the element's placeholder text.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.TextInputMixin.html#placeholder)\n         */\n        placeholder: string;\n        /**\n         * Adds an event handler that runs when the input element receives\n         * input.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.TextInputMixin.html#onInput)\n         *  @eventType onInput\n         */\n        onInput(eventHandler: $w.EventHandler): $w.Element;\n        /**\n         * Adds an event handler that runs when the cursor is inside the\n         *  input element and a key is pressed.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.TextInputMixin.html#onKeyPress)\n         *  @eventType keyPress\n         */\n        onKeyPress(eventHandler: $w.KeyboardEventHandler): $w.Element;\n    }\n    /**\n     * An upload button enables site visitors to upload files to your site.\n     * \t[Read more](https://www.wix.com/corvid/reference/$w.UploadButton.html#)\n     */\n    interface UploadButton extends $w.LabelMixin, $w.FormElement, $w.HiddenCollapsedMixin, $w.DisabledMixin, $w.FocusMixin, $w.StyleMixin, $w.RequiredMixin {\n        /**\n         * Sets or gets the label on the upload button.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.UploadButton.html#buttonLabel)\n         */\n        buttonLabel: string;\n        /**\n         * Sets or gets the maximum amount of files a site visitor can upload at a time.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.UploadButton.html#fileLimit)\n         */\n        fileLimit: number;\n        /**\n         * Sets or gets the type of file a site visitor can upload.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.UploadButton.html#fileType)\n         */\n        fileType: string;\n        /**\n         * Gets an object containing information about the upload button's styles.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.UploadButton.html#style)\n         */\n        readonly style: $w.Style;\n        /**\n         * Indicates if a required file was selected, and if the file is valid for upload to the Media Manager.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.UploadButton.html#valid)\n         */\n        readonly valid: boolean;\n        /**\n         * Gets a message indicating why the file is invalid or could not be uploaded. Contains\n         *  empty string if the file is valid and successfully uploaded.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.UploadButton.html#validationMessage)\n         */\n        readonly validationMessage: string;\n        /**\n         * Gets a ValidityState object that contains\n         *  detailed information about the validity states of the file to upload.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.UploadButton.html#validity)\n         */\n        readonly validity: $w.UploadButton.ValidityState;\n        /**\n         * Returns a list of files that are pending upload.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.UploadButton.html#value)\n         */\n        readonly value: $w.UploadButton.File[];\n        /**\n         * Clears the files that are pending upload.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.UploadButton.html#reset)\n         */\n        reset(): void;\n        /**\n         * **Deprecated.** This function will continue to work, but a newer version is available. Use the\n         * [`uploadFiles()`](#uploadFiles) function instead.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.UploadButton.html#startUpload)\n         */\n        startUpload(): Promise<$w.UploadButton.UploadFile>;\n        /**\n         * Uploads the files that the site visitor has chosen.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.UploadButton.html#uploadFiles)\n         */\n        uploadFiles(): Promise<$w.UploadButton.UploadedFile[]>;\n    }\n    namespace UploadButton {\n        /**\n         * The object used by the [`value`](#value) property that represents files ready for upload.\n         */\n        type File = {\n            /**\n             * File name.\n             */\n            name: string;\n            /**\n             * File size in bytes.\n             */\n            size: number;\n            /**\n             * `true` if the file is valid for upload to the Media Manager.\n             */\n            valid: boolean;\n            /**\n             * Message indicating why the file is invalid. Empty if the file is valid.\n             */\n            validationMessage: string;\n        };\n        /**\n         * The error message object returned when the `uploadFiles()`'s Promise is rejected.\n         */\n        type UploadError = {\n            /**\n             * The error's code.\n             */\n            errorCode: string;\n            /**\n             * The error's description.\n             */\n            errorDescription: string;\n        };\n        /**\n         * Object returned by the `startUpload()`'s Promise.\n         */\n        type UploadFile = {\n            /**\n             * Wix URL of the successfully uploaded file.\n             */\n            url: string;\n            /**\n             * Wix media ID of the uploaded file.\n             */\n            mediaId: string;\n            /**\n             * Title of the uploaded file.\n             */\n            title: string;\n            /**\n             * Width of an uploaded image or video file.\n             */\n            width: number;\n            /**\n             * Height of an uploaded image or video file.\n             */\n            height: number;\n            /**\n             * Duration (in milliseconds) of an uploaded audio file.\n             */\n            duration: number;\n        };\n        /**\n         * An array of objects returned by the `uploadFiles()`'s Promise.\n         */\n        type UploadedFile = {\n            /**\n             * Width of an uploaded image or video file.\n             */\n            width: number;\n            /**\n             * Height of an uploaded image or video file.\n             */\n            height: number;\n            /**\n             * Duration (in milliseconds) of an uploaded audio file.\n             */\n            duration: number;\n            /**\n             * Wix media URL of the successfully uploaded file in the following format: `'wix:image://v1//#originWidth=&originHeight=[&watermark=]'`.\n             *\n             * **Note:** This replaces the old `fileName` parameter. `fileName` will continue to work, but we recommend that you use the updated `fileUrl` parameter instead.\n             */\n            fileUrl: string;\n            /**\n             * **Deprecated**. Use the `fileUrl` property instead.\n             *\n             * Internal file name of the uploaded file, generated by the Media Manager. The name is the string located in the file's URL. Click [here](https://www.wix.com/velo/forum/tips-tutorials-examples/creating-a-url-for-a-media-file-or-the-truth-about-getfileurl) to learn more.\n             */\n            fileName: string;\n            /**\n             * Original name of the uploaded file.\n             */\n            originalFileName: string;\n        };\n        /**\n         * Contains detailed information about the validity states of a file to upload.\n         */\n        type ValidityState = {\n            /**\n             * `true` if the file's custom validity message has been set to a non-empty string.\n             */\n            customError: boolean;\n            /**\n             * `true` if the file to upload meets all validations.\n             */\n            valid: boolean;\n            /**\n             * `true` if a file is required, and either no file has been selected, or a file has been selected but not uploaded.\n             */\n            fileNotUploaded: boolean;\n            /**\n             * `true` if a file has been selected but it is too large. Maximum allowed file sizes are listed [here](https://support.wix.com/en/article/supported-media-file-types-and-file-sizes).\n             */\n            fileSizeExceedsLimit: boolean;\n            /**\n             * `true` if a file has been selected but the file's type is not supported. Supported file types are listed [here](https://support.wix.com/en/article/supported-media-file-types-and-file-sizes).\n             */\n            fileTypeNotAllowed: boolean;\n            /**\n             * `true` if a file is required but no file has been selected.\n             */\n            valueMissing: boolean;\n            /**\n             * `true` if the text input element's value does not match its type when the type is email or url.\n             */\n            typeMismatch: boolean;\n            /**\n             * `true` if the element's value does not match its pattern validation.\n             */\n            patternMismatch: boolean;\n            /**\n             * `true` if the length of the element's value exceeds its [`maxLength`]($w.TextInputMixin.html#maxLength) property.\n             */\n            tooLong: boolean;\n            /**\n             * `true` if the length of the element's value is smaller than its `minlength` property.\n             */\n            tooShort: boolean;\n            /**\n             * `true` if the element's value is less than the its [`min`]($w.TextInput.html#min) property.\n             */\n            rangeUnderflow: boolean;\n            /**\n             * `true` if the element's value is more than the its [`max`]($w.TextInput.html#max) property.\n             */\n            rangeOverflow: boolean;\n            /**\n             * `true` if a text input element's numeric value is defined as a whole number but a decimal number is entered.\n             */\n            stepMismatch: boolean;\n            /**\n             * `true` if the element's value cannot be converted to a value.\n             */\n            badInput: boolean;\n            /**\n             * `true` if the number of files selected exceeds the limit defined in the `fileLimit` property.\n             */\n            exceedsFileLimit: boolean;\n            /**\n             * `true` if the element's time value is not a valid time.\n             */\n            invalidTime: boolean;\n            /**\n             * `true` if the element's date value is not a valid date.\n             */\n            invalidDate: boolean;\n        };\n    }\n    /**\n     * Provides functionality for elements that can be validated.\n     * \t[Read more](https://www.wix.com/corvid/reference/$w.ValidatableMixin.html#)\n     */\n    interface ValidatableMixin {\n        /**\n         * Indicates if an input element's value is valid.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.ValidatableMixin.html#valid)\n         */\n        readonly valid: boolean;\n        /**\n         * Gets a message indicating why the element is invalid, or an\n         *  empty string if the message is valid.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.ValidatableMixin.html#validationMessage)\n         */\n        readonly validationMessage: string;\n        /**\n         * Gets a ValidityState object that contains\n         *  detailed information about the validity states of the element.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.ValidatableMixin.html#validity)\n         */\n        readonly validity: $w.ValidatableMixin.ValidityState;\n        /**\n         * Adds an event handler that runs when the element's validation is checked.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.ValidatableMixin.html#onCustomValidation)\n         */\n        onCustomValidation(validator: $w.Validator, override?: boolean): void;\n        /**\n         * Resets the element's visual validity indication.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.ValidatableMixin.html#resetValidityIndication)\n         */\n        resetValidityIndication(): void;\n        /**\n         * Updates the element's visual validity indication based on its current validity state.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.ValidatableMixin.html#updateValidityIndication)\n         */\n        updateValidityIndication(): void;\n    }\n    namespace ValidatableMixin {\n        /**\n         * Contains detailed information about the validity states of an element.\n         */\n        type ValidityState = {\n            /**\n             * `true` if the element's custom\n             *  validity message has been set to a non-empty string.\n             */\n            customError: boolean;\n            /**\n             * `true` if the element meets all\n             *  constraint validations.\n             */\n            valid: boolean;\n            /**\n             * `true` if the element's\n             *  [`required`]($w.RequiredMixin.html#required) property is `true`, but\n             *  it does not contain a value.\n             */\n            valueMissing: boolean;\n            /**\n             * `true` if the text input element's value\n             *  does not match its type when the type is email or url.\n             */\n            typeMismatch: boolean;\n            /**\n             * `true` if the element's\n             *  value does not match its pattern validation.\n             */\n            patternMismatch: boolean;\n            /**\n             * `true` if the length of the\n             *  element's value exceeds its [`maxLength`]($w.TextInputMixin.html#maxLength)\n             *  property.\n             */\n            tooLong: boolean;\n            /**\n             * `true` if the length of the\n             *  element's value is smaller than its `minlength` property.\n             */\n            tooShort: boolean;\n            /**\n             * `true` if the element's\n             *  value is less than its [`min`]($w.TextInput.html#min) property.\n             */\n            rangeUnderflow: boolean;\n            /**\n             * `true` if the element's\n             *  value is more than its [`max`]($w.TextInput.html#max) property.\n             */\n            rangeOverflow: boolean;\n            /**\n             * `true` if the element is\n             *  an upload button that is required and a file has been selected but not\n             *  uploaded.\n             */\n            fileNotUploaded: boolean;\n            /**\n             * `true` if a text input\n             *  element's numeric value is defined as a whole number but a decimal\n             *  number is entered.\n             */\n            stepMismatch: boolean;\n            /**\n             * `true` if the element's value\n             *  cannot be converted to a value.\n             */\n            badInput: boolean;\n            /**\n             * `true` if the element's time value\n             *  is not a valid time.\n             */\n            invalidTime: boolean;\n            /**\n             * `true` if the element's date value\n             *  is not a valid date.\n             */\n            invalidDate: boolean;\n        };\n    }\n    /**\n     * Adds the value property to elements.\n     * \t[Read more](https://www.wix.com/corvid/reference/$w.ValueMixin.html#)\n     */\n    interface ValueMixin {\n        /**\n         * Sets or gets an element's value.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.ValueMixin.html#value)\n         */\n        value: any;\n        /**\n         * Adds an event handler that runs when an input element's value\n         *  is changed.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.ValueMixin.html#onChange)\n         *  @eventType change\n         */\n        onChange(handler: $w.EventHandler): $w.Element;\n    }\n    /**\n     * Vector images are digital illustrations based on geometric shapes.\n     *  They maintain their high quality when resized.\n     * \t[Read more](https://www.wix.com/corvid/reference/$w.VectorImage.html#)\n     */\n    interface VectorImage extends $w.Element, $w.HiddenCollapsedMixin, $w.LinkableMixin, $w.ClickableMixin {\n        /**\n         * Sets or gets the file location of the vector image.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.VectorImage.html#src)\n         */\n        src: string;\n    }\n    /**\n     * **Deprecated.**\n     * This API will continue to work, but a newer version is available at\n     * [Video Player]($w/videoplayer).\n     * \t[Read more](https://www.wix.com/corvid/reference/$w.Video.html#)\n     */\n    interface Video extends $w.Element, $w.HiddenCollapsedMixin {\n        /**\n         * Sets or gets the URL of the video.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Video.html#videoUrl)\n         */\n        videoUrl: string;\n    }\n    /**\n     * An element for displaying videos in customizable video containers.\n     * \t[Read more](https://www.wix.com/corvid/reference/$w.VideoBox.html#)\n     */\n    interface VideoBox extends $w.Element, $w.HiddenCollapsedMixin {\n        /**\n         * Gets the current play time from the beginning of the current video, in seconds.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.VideoBox.html#currentTime)\n         */\n        readonly currentTime: number;\n        /**\n         * Gets the total play time of the current video, in seconds.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.VideoBox.html#duration)\n         */\n        readonly duration: number;\n        /**\n         * Indicates if the volume is currently muted.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.VideoBox.html#isMuted)\n         */\n        readonly isMuted: boolean;\n        /**\n         * Indicates if a video is currently playing.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.VideoBox.html#isPlaying)\n         */\n        readonly isPlaying: boolean;\n        /**\n         * Sets or gets the file location of the current video.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.VideoBox.html#src)\n         */\n        src: string;\n        /**\n         * Sets or gets the video box volume.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.VideoBox.html#volume)\n         */\n        readonly volume: number;\n        /**\n         * Mutes video box volume.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.VideoBox.html#mute)\n         */\n        mute(): Promise<void>;\n        /**\n         * Adds an event handler that runs when the playback has ended.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.VideoBox.html#onEnded)\n         *  @eventType onEnded\n         */\n        onEnded(handler: $w.EventHandler): $w.VideoBox;\n        /**\n         * **Note: This standard element property is not relevant for VideoBox.**\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.VideoBox.html#onMouseIn)\n         *  @eventType mouseenter\n         */\n        onMouseIn(handler: $w.MouseEventHandler): $w.Element;\n        /**\n         * **Note: This standard element property is not relevant for VideoBox.**\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.VideoBox.html#onMouseOut)\n         *  @eventType mouseleave\n         */\n        onMouseOut(handler: $w.MouseEventHandler): $w.Element;\n        /**\n         * Adds an event handler that runs when the playback is paused.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.VideoBox.html#onPause)\n         *  @eventType onPause\n         */\n        onPause(handler: $w.EventHandler): $w.VideoBox;\n        /**\n         * Adds an event handler that runs when the playback is started or restarted.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.VideoBox.html#onPlay)\n         *  @eventType onPlay\n         */\n        onPlay(handler: $w.EventHandler): $w.VideoBox;\n        /**\n         * Adds an event handler that runs when the playback progresses.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.VideoBox.html#onProgress)\n         *  @eventType onProgress\n         */\n        onProgress(handler: $w.EventHandler): $w.VideoBox;\n        /**\n         * Pauses playback.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.VideoBox.html#pause)\n         */\n        pause(): Promise<void>;\n        /**\n         * Begins or resumes playback.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.VideoBox.html#play)\n         */\n        play(): Promise<void>;\n        /**\n         * Stops the playback.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.VideoBox.html#stop)\n         */\n        stop(): Promise<void>;\n        /**\n         * Toggles playback.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.VideoBox.html#togglePlay)\n         */\n        togglePlay(): Promise<void>;\n        /**\n         * Unmutes video volume.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.VideoBox.html#unmute)\n         */\n        unmute(): Promise<void>;\n    }\n    /**\n     * The ViewChangeEvent is triggered when the month or year changes on a date picker or appointment field element.\n     * \t[Read more](https://www.wix.com/corvid/reference/$w.ViewChangeEvent.html#)\n     */\n    interface ViewChangeEvent {\n        /**\n         * Gets the context in which an event was triggered.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.ViewChangeEvent.html#context)\n         */\n        readonly context: $w.Event.EventContext;\n        /**\n         * Gets the options that relate to the date picker or appointment field view change event.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.ViewChangeEvent.html#options)\n         */\n        readonly options: $w.ViewChangeEvent.ViewChangeEventOptions;\n        /**\n         * Gets the type of event that was triggered.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.ViewChangeEvent.html#type)\n         */\n        readonly type: string;\n    }\n    namespace ViewChangeEvent {\n        /**\n         * An object that contains information about the date picker or appointment field for which an event was triggered.\n         */\n        type ViewChangeEventOptions = {\n            /**\n             * Start date of the currently displayed month.\n             */\n            startDate: Date;\n            /**\n             * End date of the currently displayed month.\n             */\n            endDate: Date;\n            /**\n             * Result returned by the operation.\n             */\n            operationResult: any;\n        };\n    }\n    /**\n     * Provides functionality for elements that can be scrolled into and out\n     *  of view.\n     * \t[Read more](https://www.wix.com/corvid/reference/$w.ViewportMixin.html#)\n     */\n    interface ViewportMixin {\n        /**\n         * Adds an event handler that runs when an element is displayed\n         *  in the viewable part of the current window.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.ViewportMixin.html#onViewportEnter)\n         *  @eventType viewportEnter\n         */\n        onViewportEnter(handler: $w.EventHandler): $w.Element;\n        /**\n         * Adds an event handler that runs when an element is no longer\n         *  displayed in the viewable part of the current window.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.ViewportMixin.html#onViewportLeave)\n         *  @eventType viewportLeave\n         */\n        onViewportLeave(handler: $w.EventHandler): $w.Element;\n    }\n    type BasicEventHandler = () => void;\n    type EventHandler = (event: $w.Event) => void;\n    type ForItemCallback = ($item: $w.$w, itemData: any, index: number) => void;\n    /**\n     * Handles events fired when a gallery moves to a new image.\n     */\n    type GalleryItemChangedEventHandler = (event: $w.GalleryItemChangedEvent) => void;\n    /**\n     * Handles events fired when an image in a gallery is clicked.\n     */\n    type GalleryItemClickedEventHandler = (event: $w.GalleryItemClickedEvent) => void;\n    /**\n     * Handles events fired when google map / marker is clicked.\n     */\n    type GoogleMapClickEvent = (event: $w.GoogleMapClickEvent) => void;\n    /**\n     * Handles events fired when the code in an HtmlComponent sends a message.\n     */\n    type HtmlComponentMessageEventHandler = (event: $w.HtmlComponentMessageEvent) => void;\n    type HtmlElementEventHandler = (event: $w.HtmlComponentMessageEvent) => void;\n    /**\n     * Handles events fired when a user hovers over a star on the rating component.\n     */\n    type IconMouseInEventHandler = (event: $w.IconMouseInEvent) => void;\n    type ItemReadyEventHandler = ($item: $w.$w, itemData: any, index: number) => void;\n    type ItemRemovedEventHandler = (itemData: any) => void;\n    /**\n     * Handles events fired when the keyboard is pressed.\n     */\n    type KeyboardEventHandler = (event: $w.KeyboardEvent) => void;\n    /**\n     * Handles events fired when the mouse is used on a menu item.\n     */\n    type MenuItemMouseEventHandler = (event: $w.MenuItemMouseEvent) => void;\n    /**\n     * Handles events fired when the mouse is clicked.\n     */\n    type MouseEventHandler = (event: $w.MouseEvent) => void;\n    /**\n     * Handles events fired when an item in a quick action bar is clicked.\n     */\n    type QuickActionBarItemClickedEventHandler = (event: $w.QuickActionBarItemClickedEvent) => void;\n    /**\n     * Function that runs when all page elements have finished loading.\n     */\n    type ReadyHandler = () => Promise<void> | void;\n    /**\n     * Handles events fired when a table cell is selected.\n     */\n    type TableCellEventHandler = (event: $w.TableCellEvent) => void;\n    /**\n     * Handles events fired when a table row is selected.\n     */\n    type TableRowEventHandler = (event: $w.TableRowEvent) => void;\n    /**\n     * Function that runs when custom validation is checked.\n     */\n    type Validator = (value: string | $w.UploadButton.File[] | boolean, reject: Function) => void;\n    type ViewChangeEventHandler = (event: $w.ViewChangeEvent) => void;\n    type ViewChangeOperation = (options: $w.AppointmentField.OperationOptions) => any;\n    /**\n     * An event that is fired when a site visitor clicks a submit button on a [`WixForms`](wix-crm.html#$w-wixforms) element and the Wix Form is about to be submitted to the server.\n     *  You do not need to import `$w` or `wix-crm` to work with Wix Forms events.\n     * \t[Read more](https://www.wix.com/corvid/reference/$w.WixFormSubmitEvent.html#)\n     */\n    interface WixFormSubmitEvent extends $w.Event {\n        /**\n         * An array of objects representing the fields on a Wix Form.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.WixFormSubmitEvent.html#wixFormFields)\n         */\n        readonly wixFormFields: $w.WixFormSubmittedEvent.WixFormField[];\n    }\n    namespace WixFormSubmitEvent {\n        /**\n         * An object representing a field on a Wix Form and its value.\n         */\n        type WixFormField = {\n            /**\n             * The [`WixForms`](wix-crm.html#$w-wixforms) element's unique identifier. Used when selecting elements using the `$w()` selector.\n             */\n            id: string;\n            /**\n             * Name of the field.\n             */\n            fieldName: string;\n            /**\n             * Value of the field. If the field is a checkbox, its value is the checked property. If the field is a Captcha, its value is the token property. If the field is a file upload, its value is an array of the uploaded files' type.\n             */\n            fieldValue: string;\n        };\n    }\n    /**\n     * An event that is fired when a site visitor clicks a submit button on a [`WixForms`](wix-crm.html#$w-wixforms) element but the Wix Form is not successfully submitted to the server.\n     *  You do not need to import `$w` or `wix-crm` to work with Wix Forms events.\n     * \t[Read more](https://www.wix.com/corvid/reference/$w.WixFormSubmittedErrorEvent.html#)\n     */\n    interface WixFormSubmittedErrorEvent extends $w.Event {\n        /**\n         * Gets the error code for a failed Wix Form submission.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.WixFormSubmittedErrorEvent.html#code)\n         */\n        readonly code: string;\n        /**\n         * Gets the error message for a failed Wix Form submission.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.WixFormSubmittedErrorEvent.html#message)\n         */\n        readonly message: string;\n    }\n    /**\n     * An event that is fired when a site visitor clicks a submit button on a [`WixForms`](wix-crm.html#$w-wixforms) element and the Wix Form is successfully submitted to the server.\n     *  You do not need to import `$w` or `wix-crm` to work with Wix Forms events.\n     * \t[Read more](https://www.wix.com/corvid/reference/$w.WixFormSubmittedEvent.html#)\n     */\n    interface WixFormSubmittedEvent extends $w.Event {\n        /**\n         * An array of objects representing the fields on a Wix Form.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.WixFormSubmittedEvent.html#wixFormFields)\n         */\n        readonly wixFormFields: $w.WixFormSubmittedEvent.WixFormField[];\n    }\n    namespace WixFormSubmittedEvent {\n        /**\n         * An object representing a field on a Wix Form and its value.\n         */\n        type WixFormField = {\n            /**\n             * The [`WixForms`](wix-crm.html#$w-wixforms) element's unique identifier. Used when selecting elements using the `$w()` selector.\n             */\n            id: string;\n            /**\n             * Name of the field.\n             */\n            fieldName: string;\n            /**\n             * Value of the field. If the field is a checkbox, its value is the checked property. If the field is a Captcha, its value is the token property. If the field is a file upload, its value is an array of the uploaded files' type.\n             */\n            fieldValue: string;\n        };\n    }\n    /**\n     * A `$w` element for enabling your site contacts and visitors to work with the Wix Forms app.\n     * \t[Read more](https://www.wix.com/corvid/reference/$w.WixForms.html#)\n     */\n    interface WixForms extends $w.HiddenCollapsedMixin {\n        /**\n         * Adds an event handler that runs when a site visitor starts to submit a Wix Form yet before the form is actually submitted and sent to the server.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.WixForms.html#onWixFormSubmit)\n         *  @eventType WixFormSubmitEvent\n         */\n        onWixFormSubmit(eventHandler: $w.WixForms.WixFormSubmitEventHandler): void;\n        /**\n         * Adds an event handler that runs when a site visitor submits a Wix Form and it is successfully received by the server.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.WixForms.html#onWixFormSubmitted)\n         *  @eventType WixFormSubmittedEvent\n         */\n        onWixFormSubmitted(eventHandler: $w.WixForms.WixFormSubmittedEventHandler): void;\n        /**\n         * Adds an event handler that runs when a site visitor is not able to successfully submit a Wix Form to the server.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.WixForms.html#onWixFormSubmittedError)\n         *  @eventType WixFormSubmittedErrorEvent\n         */\n        onWixFormSubmittedError(eventHandler: $w.WixForms.WixFormSubmittedErrorEventHandler): void;\n    }\n    namespace WixForms {\n        /**\n         * Handles events fired when the Wix Form is about to be submitted.\n         */\n        type WixFormSubmitEventHandler = (event: $w.WixFormSubmitEvent) => any | boolean;\n        /**\n         * Handles events fired when the Wix Form is not submitted due to error.\n         */\n        type WixFormSubmittedErrorEventHandler = (errorEvent: $w.WixFormSubmittedErrorEvent) => void;\n        /**\n         * Handles events fired when the Wix Form is submitted.\n         */\n        type WixFormSubmittedEventHandler = (event: $w.WixFormSubmittedEvent) => void;\n    }\n    /**\n     * `AddressInput` is used for entering addresses. It lets users type\n     * an address, and suggests exact locations using Google Maps services.\n     * \t[Read more](https://www.wix.com/corvid/reference/$w.AddressInput.html#)\n     */\n    interface AddressInput extends $w.LabelMixin, $w.FormElement, $w.DisabledMixin, $w.RequiredMixin, $w.ReadOnlyMixin, $w.HiddenCollapsedMixin, $w.FocusMixin, $w.ClickableMixin {\n        /**\n         * Sets or gets the filter of the address input.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.AddressInput.html#filter)\n         */\n        filter: $w.AddressInput.AddressFilter;\n        /**\n         * Sets or gets the placeholder of the address input.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.AddressInput.html#placeholder)\n         */\n        placeholder: string;\n        /**\n         * Sets or gets the value of the address input.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.AddressInput.html#value)\n         */\n        value: $w.AddressInput.Address;\n    }\n    namespace AddressInput {\n        /**\n         * An object representing a physical address.\n         */\n        type Address = {\n            /**\n             * Address in human-readable format. The formatted address is displayed in the address input element.\n             */\n            formatted: string;\n            /**\n             * Address coordinates.\n             */\n            location?: $w.AddressInput.AddressLocation;\n            /**\n             * Address street name and number.\n             */\n            streetAddress?: $w.AddressInput.StreetAddress;\n            /**\n             * Address city.\n             */\n            city?: string;\n            /**\n             * Address subdivision of a country, such as a state or province.\n             */\n            subdivision?: string;\n            /**\n             * Address country.\n             */\n            country?: string;\n            /**\n             * Address postal code.\n             */\n            postalCode?: string;\n        };\n        /**\n         * An object containing a filter for filtering address suggestions\n         * in an address input. Suggestions are restricted to addresses within\n         * the specified country.\n         * > **Note:** Currently only filtering by country is supported.\n         */\n        type AddressFilter = {\n            /**\n             * [ISO_3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3) country code.\n             */\n            country?: string;\n        };\n        /**\n         * An object containing the coordinates of an address.\n         */\n        type AddressLocation = {\n            /**\n             * Address latitude.\n             */\n            latitude: number;\n            /**\n             * Address longitude.\n             */\n            longitude: number;\n        };\n        /**\n         * An object containing the street name and number of an address.\n         */\n        type StreetAddress = {\n            /**\n             * Street name.\n             */\n            name: string;\n            /**\n             * Street number.\n             */\n            number?: string;\n        };\n    }\n    /**\n     * An element for playing audio files.\n     * \t[Read more](https://www.wix.com/corvid/reference/$w.AudioPlayer.html#)\n     */\n    interface AudioPlayer extends $w.Element, $w.HiddenCollapsedMixin {\n        /**\n         * Sets or gets the name of the artist displayed in an audio player.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.AudioPlayer.html#artistName)\n         */\n        artistName: string;\n        /**\n         * Sets or gets the cover image displayed in an audio player.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.AudioPlayer.html#coverImage)\n         */\n        coverImage: string;\n        /**\n         * Gets the current play time from the beginning of the audio track, in seconds.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.AudioPlayer.html#currentTime)\n         */\n        readonly currentTime: number;\n        /**\n         * Gets the total play time of the audio track, in seconds.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.AudioPlayer.html#duration)\n         */\n        readonly duration: number;\n        /**\n         * Indicates if the volume is currently muted.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.AudioPlayer.html#isMuted)\n         */\n        readonly isMuted: boolean;\n        /**\n         * Indicates if an audio track is currently playing.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.AudioPlayer.html#isPlaying)\n         */\n        readonly isPlaying: boolean;\n        /**\n         * Sets or gets the file location of the audio file.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.AudioPlayer.html#src)\n         */\n        src: string;\n        /**\n         * Sets or gets the track name displayed in an audio player.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.AudioPlayer.html#trackName)\n         */\n        trackName: string;\n        /**\n         * Sets or gets an audio player's volume.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.AudioPlayer.html#volume)\n         */\n        volume: number;\n        /**\n         * Mutes audio volume.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.AudioPlayer.html#mute)\n         */\n        mute(): Promise<void>;\n        /**\n         * Adds an event handler that runs when playback has ended.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.AudioPlayer.html#onEnded)\n         *  @eventType onEnded\n         */\n        onEnded(handler: $w.EventHandler): $w.AudioPlayer;\n        /**\n         * Adds an event handler that runs when playback is paused.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.AudioPlayer.html#onPause)\n         *  @eventType onPause\n         */\n        onPause(handler: $w.EventHandler): $w.AudioPlayer;\n        /**\n         * Adds an event handler that runs when playback is started or restarted.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.AudioPlayer.html#onPlay)\n         *  @eventType onPlay\n         */\n        onPlay(handler: $w.EventHandler): $w.AudioPlayer;\n        /**\n         * Adds an event handler that runs when playback progresses.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.AudioPlayer.html#onProgress)\n         *  @eventType onProgress\n         */\n        onProgress(handler: $w.EventHandler): $w.AudioPlayer;\n        /**\n         * Pauses playback.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.AudioPlayer.html#pause)\n         */\n        pause(): Promise<void>;\n        /**\n         * Begins or resumes playback.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.AudioPlayer.html#play)\n         */\n        play(): Promise<void>;\n        /**\n         * Moves playback to the specified time, in seconds.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.AudioPlayer.html#seek)\n         */\n        seek(time: number): Promise<void>;\n        /**\n         * Stops playback.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.AudioPlayer.html#stop)\n         */\n        stop(): Promise<void>;\n        /**\n         * Toggles playback.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.AudioPlayer.html#togglePlay)\n         */\n        togglePlay(): Promise<void>;\n        /**\n         * Unmutes audio volume.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.AudioPlayer.html#unmute)\n         */\n        unmute(): Promise<void>;\n    }\n    /**\n     * The reCAPTCHA element allows you to present a challenge-response test to site visitors to determine whether they are human or a bot.\n     * \t[Read more](https://www.wix.com/corvid/reference/$w.Captcha.html#)\n     */\n    interface Captcha extends $w.Element, $w.FocusMixin, $w.HiddenCollapsedMixin {\n        /**\n         * Gets the reCAPTCHA token.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Captcha.html#token)\n         */\n        readonly token: string;\n        /**\n         * Adds an event handler that runs when a connection error occurs while completing the CAPTCHA challenge.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Captcha.html#onError)\n         *  @eventType onError\n         */\n        onError(handler: $w.Captcha.ErrorHandler): void;\n        /**\n         * Adds an event handler that runs when the CAPTCHA token expires.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Captcha.html#onTimeout)\n         *  @eventType onTimeout\n         */\n        onTimeout(handler: $w.Captcha.TimeoutHandler): void;\n        /**\n         * Adds an event handler that runs when the CAPTCHA challenge is successfully completed.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Captcha.html#onVerified)\n         *  @eventType onVerified\n         */\n        onVerified(handler: $w.Captcha.VerifiedHandler): void;\n        /**\n         * Resets the reCAPTCHA element.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Captcha.html#reset)\n         */\n        reset(): Promise<void>;\n    }\n    namespace Captcha {\n        /**\n         * An error event handler.\n         */\n        type ErrorHandler = () => void;\n        /**\n         * A timeout event handler.\n         */\n        type TimeoutHandler = () => void;\n        /**\n         * A verification event handler.\n         */\n        type VerifiedHandler = () => Promise<void> | void;\n    }\n    /**\n     * An API for rendering a custom element.\n     * \t[Read more](https://www.wix.com/corvid/reference/$w.CustomElement.html#)\n     */\n    interface CustomElement extends $w.Element, $w.HiddenCollapsedMixin {\n        /**\n         * Sets or gets the SEO markup to be rendered for search engine bots.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.CustomElement.html#seoMarkup)\n         */\n        seoMarkup: string;\n        /**\n         * Registers a callback function in Velo for an event triggered from the custom element.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.CustomElement.html#on)\n         */\n        on(eventName: string, callBackFunction: Function): void;\n        /**\n         * Sets an HTML attribute on the custom element's DOM node.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.CustomElement.html#setAttribute)\n         */\n        setAttribute(key: string, value: string | boolean | number): void;\n    }\n    /**\n     * An element for working with paging.\n     * \t[Read more](https://www.wix.com/corvid/reference/$w.Pagination.html#)\n     */\n    interface Pagination extends $w.Element, $w.DisabledMixin, $w.HiddenCollapsedMixin, $w.ClickableMixin, $w.ViewportMixin {\n        /**\n         * Sets or gets the current page.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Pagination.html#currentPage)\n         */\n        currentPage: number;\n        /**\n         * Sets or gets the total number of pages shown in a pagination bar.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Pagination.html#totalPages)\n         */\n        totalPages: number;\n        /**\n         * Adds an event handler that runs when the pagination bar\n         *  is changed.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Pagination.html#onChange)\n         *  @eventType Change\n         */\n        onChange(handler: $w.EventHandler): $w.Pagination;\n    }\n    /**\n     * An element for displaying the status of an ongoing process.\n     * \t[Read more](https://www.wix.com/corvid/reference/$w.ProgressBar.html#)\n     */\n    interface ProgressBar extends $w.Element, $w.HiddenCollapsedMixin, $w.StyleMixin {\n        /**\n         * Gets an object containing information about the progress bar's styles.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.ProgressBar.html#style)\n         */\n        readonly style: $w.Style;\n        /**\n         * Sets or gets a progress bar's target value.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.ProgressBar.html#targetValue)\n         */\n        targetValue: number;\n        /**\n         * Sets or gets a progress bar's value.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.ProgressBar.html#value)\n         */\n        value: number;\n    }\n    /**\n     * Range sliders allow site visitors to select a range of values within a given range.\n     * \t[Read more](https://www.wix.com/corvid/reference/$w.RangeSlider.html#)\n     */\n    interface RangeSlider extends $w.Element, $w.ValueMixin, $w.DisabledMixin, $w.HiddenCollapsedMixin, $w.FocusMixin {\n        /**\n         * Sets or gets the label of a range slider.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.RangeSlider.html#label)\n         */\n        label: string;\n        /**\n         * Sets or gets the maximum value of a range slider.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.RangeSlider.html#max)\n         */\n        max: number;\n        /**\n         * Sets or gets the minimum value of a range slider.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.RangeSlider.html#min)\n         */\n        min: number;\n        /**\n         * Sets or gets the prefix of a range slider's value.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.RangeSlider.html#prefix)\n         */\n        prefix: string;\n        /**\n         * Sets or gets a range slider's type.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.RangeSlider.html#sliderType)\n         */\n        sliderType: string;\n        /**\n         * Sets or gets a range slider's step value.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.RangeSlider.html#step)\n         */\n        step: number;\n        /**\n         * Sets or gets a range slider's step type.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.RangeSlider.html#stepType)\n         */\n        stepType: string;\n        /**\n         * Sets or gets the suffix of a range slider's value.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.RangeSlider.html#suffix)\n         */\n        suffix: string;\n        /**\n         * Sets or gets the value(s) of a range slider's handle(s).\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.RangeSlider.html#value)\n         */\n        value: number | number[];\n    }\n    /**\n     * A ratings display element allows you to display a value to your users\n     *  using icons.\n     * \t[Read more](https://www.wix.com/corvid/reference/$w.RatingsDisplay.html#)\n     */\n    interface RatingsDisplay extends $w.Element, $w.HiddenCollapsedMixin, $w.ClickableMixin {\n        /**\n         * Sets or gets the displayed number of ratings.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.RatingsDisplay.html#numRatings)\n         */\n        numRatings: number;\n        /**\n         * Sets or gets the displayed rating.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.RatingsDisplay.html#rating)\n         */\n        rating: number;\n    }\n    /**\n     * A ratings input element allows you to capture a value from your users\n     *  using icons.\n     * \t[Read more](https://www.wix.com/corvid/reference/$w.RatingsInput.html#)\n     */\n    interface RatingsInput extends $w.FormElement, $w.DisabledMixin, $w.RequiredMixin, $w.HiddenCollapsedMixin, $w.FocusMixin, $w.ClickableMixin, $w.ViewportMixin {\n        /**\n         * Sets or gets the rating value.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.RatingsInput.html#value)\n         */\n        value: number;\n        /**\n         * Sets the function that runs when a user's mouse enters one of the rating icons.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.RatingsInput.html#onIconMouseIn)\n         *  @eventType IconMouseIn\n         */\n        onIconMouseIn(handler: $w.IconMouseInEventHandler): $w.RatingsInput;\n    }\n    /**\n     * An input element for entering information in rich text format.\n     * \t[Read more](https://www.wix.com/corvid/reference/$w.RichTextBox.html#)\n     */\n    interface RichTextBox extends $w.FormElement, $w.DisabledMixin, $w.TextInputMixin, $w.HiddenCollapsedMixin, $w.FocusMixin, $w.ReadOnlyMixin, $w.ClickableMixin, $w.RequiredMixin {\n        /**\n         * **This standard element function is not supported for RichTextBox.**\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.RichTextBox.html#onInput)\n         */\n        onInput(eventHandler: $w.EventHandler): $w.Element;\n    }\n    /**\n     * [Selection Tags](https://support.wix.com/en/article/adding-and-setting-up-selection-tags) are used for selecting one or more options.\n     * \t[Read more](https://www.wix.com/corvid/reference/$w.SelectionTags.html#)\n     */\n    interface SelectionTags extends $w.FormElement, $w.HiddenCollapsedMixin, $w.DisabledMixin, $w.ClickableMixin, $w.StyleMixin, $w.RequiredMixin, $w.ValidatableMixin {\n        /**\n         * Sets or gets a list of items which will be rendered as tags.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.SelectionTags.html#options)\n         */\n        options: $w.SelectionTags.Option[];\n        /**\n         * Sets or gets the indices of the selected options.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.SelectionTags.html#selectedIndices)\n         */\n        selectedIndices: number[];\n        /**\n         * Gets an object containing information about the selection tags' styles.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.SelectionTags.html#style)\n         */\n        readonly style: $w.Style;\n        /**\n         * Sets or gets the values of the selected options.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.SelectionTags.html#value)\n         */\n        value: string[];\n    }\n    namespace SelectionTags {\n        /**\n         * An object used by the [`options`](#options) property that contains the attributes of the selection tag item.\n         */\n        type Option = {\n            /**\n             * The value of the selection tag option. This is what you use in code and is what is stored in your collections.\n             */\n            value: string;\n            /**\n             * The label of the selection tag option. This is what a site visitor sees.\n             */\n            label: string;\n        };\n    }\n    /**\n     * `SignatureInput` lets site visitors enter signatures.\n     * \t[Read more](https://www.wix.com/corvid/reference/$w.SignatureInput.html#)\n     */\n    interface SignatureInput extends $w.LabelMixin, $w.FormElement, $w.HiddenCollapsedMixin, $w.DisabledMixin, $w.FocusMixin, $w.StyleMixin, $w.RequiredMixin {\n        /**\n         * Gets an object containing information about the signature input element's styles.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.SignatureInput.html#style)\n         */\n        readonly style: $w.Style;\n        /**\n         * Gets the value of a signature input.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.SignatureInput.html#value)\n         */\n        readonly value: string;\n        /**\n         * Clears the signature.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.SignatureInput.html#clear)\n         */\n        clear(): void;\n        /**\n         * Adds an event handler that runs when a signature input element's value\n         *  is changed by a site visitor.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.SignatureInput.html#onChange)\n         */\n        onChange(handler: $w.EventHandler): $w.SignatureInput;\n    }\n    /**\n     * Sliders allow users to select a number from a given range.\n     * \t[Read more](https://www.wix.com/corvid/reference/$w.Slider.html#)\n     */\n    interface Slider extends $w.Element, $w.ValueMixin, $w.DisabledMixin, $w.HiddenCollapsedMixin, $w.FocusMixin {\n        /**\n         * Sets or gets the slider's maximum value.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Slider.html#max)\n         */\n        max: number;\n        /**\n         * Sets or gets the slider's minimum value.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Slider.html#min)\n         */\n        min: number;\n        /**\n         * Sets or gets a slider's step value.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Slider.html#step)\n         */\n        step: number;\n        /**\n         * Sets or gets a slider's step type.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Slider.html#stepType)\n         */\n        stepType: string;\n        /**\n         * Sets or gets the value of the slider.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Slider.html#value)\n         */\n        value: number;\n    }\n    /**\n     * Switches are used for a single binary choice.\n     * \t[Read more](https://www.wix.com/corvid/reference/$w.Switch.html#)\n     */\n    interface Switch extends $w.Element, $w.DisabledMixin, $w.HiddenCollapsedMixin, $w.FocusMixin, $w.ClickableMixin, $w.ValueMixin, $w.CheckedMixin {\n        /**\n         * Sets or gets whether a switch is on or off.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Switch.html#checked)\n         */\n        checked: boolean;\n        /**\n         * **Note: This standard element property is not relevant for Switch. Use [`checked`](#checked) instead.**\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.Switch.html#value)\n         */\n        readonly value: string;\n    }\n    /**\n     * An input element for capturing the time of day.\n     * \t[Read more](https://www.wix.com/corvid/reference/$w.TimePicker.html#)\n     */\n    interface TimePicker extends $w.LabelMixin, $w.FocusMixin, $w.DisabledMixin, $w.HiddenCollapsedMixin, $w.RequiredMixin, $w.ReadOnlyMixin, $w.FormElement {\n        /**\n         * Sets or gets the time slots that are available for a time picker.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.TimePicker.html#enabledTimes)\n         */\n        enabledTimes: $w.TimePicker.TimeSlot[];\n        /**\n         * Sets or gets the number of minutes the time picker steps.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.TimePicker.html#step)\n         */\n        step: number;\n        /**\n         * Sets or gets whether the time picker uses 12-hour or 24-hour format.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.TimePicker.html#useAmPmFormat)\n         */\n        useAmPmFormat: boolean;\n        /**\n         * Sets or gets a time picker's value.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.TimePicker.html#value)\n         */\n        value: string;\n    }\n    namespace TimePicker {\n        /**\n         * An object representing an available time slot for a time picker.\n         */\n        type TimeSlot = {\n            /**\n             * Start time for the time slot. The `startTime` must be earlier than the `endTime`, and\n             *  be in one of the following formats:\n             *  + `HH:MM` (hours and minutes)\n             *  + `HH:MM:SS` (hours, minutes, and seconds)\n             *  + `HH:MM:SS.mmm` (hours, minutes, seconds, and milliseconds)\n             *\n             *  `HH` is a 2-digit value between 0-23.\n             *\n             *  `MM` is a 2-digit value between 0-59.\n             *\n             *  `SS` is a 2-digit value between 0-59. Seconds are rounded down to the nearest minute.\n             *\n             *  `mmm` is a 3-digit value between 0-999. Milliseconds are rounded down to the nearest second.\n             *\n             *\n             *  The time picker's first input time option is the `startTime`.\n             *  This means that if the `startTime` is '10:00', the first input time option is '10:00'.\n             */\n            startTime: string;\n            /**\n             * End time for the time slot. The `endTime` must be later than the `startTime`, and\n             *  be in one of the following formats:\n             *  + `HH:MM` (hours and minutes)\n             *  + `HH:MM:SS` (hours, minutes, and seconds)\n             *  + `HH:MM:SS.mmm` (hours, minutes, seconds, and milliseconds)\n             *\n             *  `HH` is a 2-digit value between 0-23.\n             *  > Note that '24:00' is a valid `endTime` in order for '23:59' to be an input time option.\n             *\n             *  `MM` is a 2-digit value between 0-59.\n             *\n             *  `SS` is a 2-digit value between 0-59. Seconds are rounded down to the nearest minute.\n             *\n             *  `mmm` is a 3-digit value between 0-999.  Milliseconds are rounded down to the nearest second.\n             *\n             *\n             *  The `endTime` is not included in the time picker's input time options. This means that if the `endTime`\n             *  is '11:00', the time picker's last input time option (assuming [`step`](#step) is '1'), is '10:59'.\n             */\n            endTime: string;\n        };\n    }\n    /**\n     * An element for presenting videos.\n     * \t[Read more](https://www.wix.com/corvid/reference/$w.VideoPlayer.html#)\n     */\n    interface VideoPlayer extends $w.Element, $w.HiddenCollapsedMixin {\n        /**\n         * Gets the current play time from the beginning of the current video, in seconds.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.VideoPlayer.html#currentTime)\n         */\n        readonly currentTime: number;\n        /**\n         * Sets or gets the description of a video.\n         *  > **Notes:**\n         *  > - Setting a video description only works when a video player is presenting a\n         *  >   video uploaded to your site.\n         *  > - Getting a video description does not work when a video player is presenting a\n         *  >   video from Facebook, Twitch, or YouTube.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.VideoPlayer.html#description)\n         */\n        description: string;\n        /**\n         * Gets the total play time of the current video, in seconds.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.VideoPlayer.html#duration)\n         */\n        readonly duration: number;\n        /**\n         * Indicates if the volume is currently muted.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.VideoPlayer.html#isMuted)\n         */\n        readonly isMuted: boolean;\n        /**\n         * Indicates if a video is currently playing.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.VideoPlayer.html#isPlaying)\n         */\n        readonly isPlaying: boolean;\n        /**\n         * Sets or gets the image shown in the video player before the video is played.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.VideoPlayer.html#poster)\n         */\n        poster: string;\n        /**\n         * Sets or gets the file location of the current video.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.VideoPlayer.html#src)\n         */\n        src: string;\n        /**\n         * Sets or gets the title displayed in a video player.\n         *  > **Notes:**\n         *  > - Setting a video title only works when a video player is presenting a\n         *  >   video uploaded to your site.\n         *  > - Getting a video title does not work when a video player is presenting a\n         *  >   video from Facebook, Twitch, or YouTube.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.VideoPlayer.html#title)\n         */\n        title: string;\n        /**\n         * Sets or gets the video player volume.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.VideoPlayer.html#volume)\n         */\n        volume: number;\n        /**\n         * Mutes video volume.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.VideoPlayer.html#mute)\n         */\n        mute(): Promise<void>;\n        /**\n         * Adds an event handler that runs when playback has ended.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.VideoPlayer.html#onEnded)\n         *  @eventType onEnded\n         */\n        onEnded(handler: $w.EventHandler): $w.VideoPlayer;\n        /**\n         * Adds an event handler that runs when playback is paused.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.VideoPlayer.html#onPause)\n         *  @eventType onPause\n         */\n        onPause(handler: $w.EventHandler): $w.VideoPlayer;\n        /**\n         * Adds an event handler that runs when playback is started or restarted.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.VideoPlayer.html#onPlay)\n         *  @eventType onPlay\n         */\n        onPlay(handler: $w.EventHandler): $w.VideoPlayer;\n        /**\n         * Adds an event handler that runs when playback progresses.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.VideoPlayer.html#onProgress)\n         *  @eventType onProgress\n         */\n        onProgress(handler: $w.EventHandler): $w.VideoPlayer;\n        /**\n         * Pauses playback.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.VideoPlayer.html#pause)\n         */\n        pause(): Promise<void>;\n        /**\n         * Begins or resumes playback.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.VideoPlayer.html#play)\n         */\n        play(): Promise<void>;\n        /**\n         * Moves playback to the specified time, in seconds.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.VideoPlayer.html#seek)\n         */\n        seek(time: number): Promise<void>;\n        /**\n         * Pauses playback.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.VideoPlayer.html#stop)\n         */\n        stop(): Promise<void>;\n        /**\n         * Toggles playback.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.VideoPlayer.html#togglePlay)\n         */\n        togglePlay(): Promise<void>;\n        /**\n         * Unmutes video volume.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.VideoPlayer.html#unmute)\n         */\n        unmute(): Promise<void>;\n    }\n    /**\n     * An icon that leads users to the shopping cart.\n     * \t[Read more](https://www.wix.com/corvid/reference/$w.CartIcon.html#)\n     */\n    interface CartIcon extends $w.Element, $w.HiddenCollapsedMixin {\n        /**\n         * **Deprecated.**\n         * This function will continue to work, but a newer version is available at\n         * [wix-stores.cart.addProducts()](https://www.wix.com/velo/reference/wix-stores/cart/addproducts).\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.CartIcon.html#addProductsToCart)\n         */\n        addProductsToCart(products: $w.CartIcon.AddToCartItem[]): Promise<void>;\n        /**\n         * **Deprecated.**\n         * This function will continue to work, but a newer version is available at\n         * [wix-stores.cart.addProducts()](https://www.wix.com/velo/reference/wix-stores/cart/addproducts).\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.CartIcon.html#addToCart)\n         */\n        addToCart(productID: string, quantity?: number, options?: $w.CartIcon.AddToCartOptions): Promise<void>;\n    }\n    namespace CartIcon {\n        /**\n         * An object used to pass a custom text field when adding a product to\n         *  the shopping cart with options.\n         */\n        type AddToCartCustomTextField = {\n            /**\n             * Custom text field title.\n             */\n            title: string;\n            /**\n             * Custom text field value.\n             */\n            value: string;\n        };\n        /**\n         * An object used when adding multiple products to the shopping cart.\n         */\n        type AddToCartItem = {\n            /**\n             * The ID of the product to add to the cart.\n             */\n            productId: string;\n            /**\n             * The number of product units to add to the cart.\n             */\n            quantity: number;\n            /**\n             * Specific product options to add to the cart.\n             */\n            options?: $w.CartIcon.AddToCartOptions;\n        };\n        /**\n         * An object used when adding a product to the shopping cart with options.\n         */\n        type AddToCartOptions = {\n            /**\n             * Product options to use when adding the product to the cart.\n             * The object contains key:value pairs where the key is the option name and the value is the chosen option value.\n             */\n            choices: any;\n            /**\n             * Custom text fields to use when adding the product to the cart.\n             */\n            customTextFields: $w.CartIcon.AddToCartCustomTextField[];\n        };\n    }\n    /**\n     * A store page for a specific product.\n     * \t[Read more](https://www.wix.com/corvid/reference/$w.ProductPage.html#)\n     */\n    interface ProductPage extends $w.Element, $w.HiddenCollapsedMixin {\n        /**\n         * Gets all the information associated with the current product.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.ProductPage.html#getProduct)\n         */\n        getProduct(): Promise<$w.ProductPage.Product>;\n    }\n    namespace ProductPage {\n        /**\n         * An object representing a media item.\n         */\n        type MediaItem = {\n            /**\n             * Media item ID.\n             */\n            id: string;\n            /**\n             * Media item title.\n             */\n            title: string;\n            /**\n             * Media item description. Descriptions over 100 characters are truncated.\n             */\n            description: string;\n            /**\n             * Media item type. Can be \"image\" or \"video.\"\n             */\n            type: string;\n            /**\n             * Media item source URL.\n             */\n            src: string;\n            /**\n             * Thumbnail URL for videos only.\n             */\n            thumbnail?: string;\n        };\n        /**\n         * An object representing a product in a store.\n         */\n        type Product = {\n            /**\n             * Product ID.\n             */\n            _id: string;\n            /**\n             * Date and time the product was last updated.\n             */\n            _updatedDate: Date;\n            /**\n             * Product name.\n             */\n            name: string;\n            /**\n             * Product description.\n             */\n            description: string;\n            /**\n             * Main product media item (image or video thumbnail) URL.\n             */\n            mainMedia: string;\n            /**\n             * List of product media items.\n             */\n            mediaItems: $w.ProductPage.MediaItem;\n            /**\n             * Product stock keeping unit value. Must be unique.\n             */\n            sku: string;\n            /**\n             * Deprecated. Use `ribbon` instead.\n             */\n            ribbons: $w.ProductPage.ProductRibbon[];\n            /**\n             * Product currency.\n             */\n            currency: string;\n            /**\n             * Product price.\n             *  The price must be greater than its discount.\n             *  The product price is propagated to the product's newly-created variants. Product variants whose prices have been updated directly are not affected by the changes to the product price.\n             */\n            price: number;\n            /**\n             * Discounted product price.\n             */\n            discountedPrice: number;\n            /**\n             * Product price formatted with the currency.\n             */\n            formattedPrice: string;\n            /**\n             * Discounted product price formatted with the currency.\n             */\n            formattedDiscountedPrice: string;\n            /**\n             * ID for the inventory item.\n             */\n            inventoryItemId: string;\n            /**\n             * Product discount.\n             */\n            discount: $w.ProductPage.ProductDiscount;\n            /**\n             * Indicates whether inventory is tracked for the product.\n             */\n            trackInventory: boolean;\n            /**\n             * Indicates whether the product is in stock.\n             */\n            inStock: boolean;\n            /**\n             * Number of units currently in stock.\n             */\n            quantityInStock: number;\n            /**\n             * Additional product information sections.\n             */\n            additionalInfoSections: $w.ProductPage.ProductAdditionalInfoSection[];\n            /**\n             * All the available options for a store product.\n             */\n            productOptions: $w.ProductPage.ProductOptions;\n            /**\n             * Product page relative URL.\n             */\n            productPageUrl: string;\n            /**\n             * Indicates whether product variants are managed. Can be set to true only if the product has options. Once set to true, `manageVariants` can only be reset to false only if no variants exist. Use [`getProductVariants()`](https://www.wix.com/velo/reference/wix-stores.html#getProductVariants) to check if variants exist. You cannot set `manageVariants` to true if more than 300 variants are defined.\n             */\n            manageVariants: boolean;\n            /**\n             * List of product customization fields.\n             */\n            customTextFields: $w.ProductPage.ProductCustomTextFields[];\n            /**\n             * Product type. Either `\"physical\"` or `\"digital\"`. When creating a product using the API, currently only `\"physical\"` is supported.\n             */\n            productType: string;\n            /**\n             * Product slug.\n             */\n            slug: string;\n            /**\n             * Product weight.\n             */\n            weight: number;\n            /**\n             * Product variants.\n             */\n            variants: $w.ProductPage.VariantItem[];\n            /**\n             * Price per unit.\n             */\n            pricePerUnit: number;\n            /**\n             * Price per unit formatted with currency symbol.\n             */\n            formattedPricePerUnit: string;\n            /**\n             * Details of the product's price per unit.\n             */\n            pricePerUnitData: $w.ProductPage.pricePerUnitData;\n            /**\n             * Custom SEO data for the product. Learn more [about SEO](https://support.wix.com/en/search?term=seo).\n             */\n            seoData: $w.ProductPage.SeoData;\n            /**\n             * Product ribbon. Used to highlight relevant information about a product. For example, `\"Sale\"`, `\"New Arrival\"`, `\"Sold Out\"`.\n             */\n            ribbon: string;\n        };\n        /**\n         * An object representing an additional info section for a store product.\n         */\n        type ProductAdditionalInfoSection = {\n            /**\n             * Section title.\n             */\n            title: string;\n            /**\n             * Section description.\n             */\n            description: string;\n        };\n        /**\n         * An object representing a product variant's option choices.\n         */\n        type ProductChoices = {\n            /**\n             * Value of the choice. This key name is dependent on the\n             *  product option. For example, if a product has a size option, this\n             *  key value will be something like `\"Size\"` and its value will be something like\n             *  `\"Large\"`.\n             *\n             *  `optionKey` is not case-sensitive. Therefore the values for the option keys \"`Size`\", \"`SIZE`\", and \"`size`\" are combined.\n             */\n            optionKey: string;\n        };\n        /**\n         * An object representing a custom text field for a store product.\n         */\n        type ProductCustomTextFields = {\n            /**\n             * Product customization field title.\n             */\n            title: string;\n            /**\n             * Maximum length of product customization field in characters.\n             */\n            maxLength: string;\n        };\n        /**\n         * An object representing a product discount.\n         */\n        type ProductDiscount = {\n            /**\n             * Discount type. Required.\n             *\n             *  One of:\n             *\n             *\n             *\n             *  - `\"AMOUNT\"`\n             *  - `\"PERCENT\"`\n             *  - `\"NONE\"`\n             */\n            type: string;\n            /**\n             * Discount value. The discount value cannot be greater than the price of the product or the variant.\n             */\n            value: string;\n        };\n        /**\n         * An object representing an option for a store product.\n         */\n        type ProductOption = {\n            /**\n             * Option type. Either `\"color\"` or `\"drop_down\"`.\n             */\n            optionType: string;\n            /**\n             * Option name.\n             */\n            name: string;\n            /**\n             * Option choices.\n             */\n            choices: $w.ProductPage.ProductOptionsChoice[];\n        };\n        /**\n         * An object representing all the available options for a store product, such as \"Size\" and \"Color.\"\n         */\n        type ProductOptions = {\n            /**\n             * Name of the option. This key name\n             *  is dependent on the options added to the product. For example, if a product has a size\n             *  option, this key will be something like `\"Size\"`.\n             *\n             *  `optionKey` is not case-sensitive. Therefore the values for the option keys \"`Size`\", \"`SIZE`\", and \"`size`\" are combined.\n             */\n            optionKey: $w.ProductPage.ProductOption;\n        };\n        /**\n         * An object representing an option's choice for a store product, such as choice \"Small\" for the option \"Size.\"\n         */\n        type ProductOptionsChoice = {\n            /**\n             * Choice value.\n             */\n            value: number;\n            /**\n             * Choice description.\n             */\n            description: number;\n            /**\n             * Choice media.\n             */\n            media: $w.ProductPage.ProductOptionsChoiceMedia;\n            /**\n             * Indicates whether the product with this choice is in stock.\n             */\n            inStock: boolean;\n            /**\n             * Indicates whether the product with this option is visible.\n             */\n            visible: boolean;\n        };\n        /**\n         * An object representing the choice media.\n         */\n        type ProductOptionsChoiceMedia = {\n            /**\n             * Main choice media item (image or video thumbnail) URL.\n             */\n            mainMedia: string;\n            /**\n             * List of choice media items.\n             */\n            mediaItems: $w.ProductPage.MediaItem;\n        };\n        /**\n         * An object representing a ribbon for a store product.\n         */\n        type ProductRibbon = {\n            /**\n             * Ribbon text.\n             */\n            text: string;\n        };\n        /**\n         * An object representing custom SEO data for the product.\n         */\n        type SeoData = {\n            /**\n             * SEO tag details.\n             */\n            tags: $w.ProductPage.SeoTag[];\n        };\n        /**\n         * An object representing the product's custom SEO tags.\n         */\n        type SeoTag = {\n            /**\n             * SEO tag type.\n             * Supported values:\n             *\n             *  + `\"title\"`\n             *  + `\"meta\"`\n             *  + `\"script\"`\n             *  + `\"link\"`\n             */\n            type: string;\n            /**\n             * The props property holds an object of `{\"key\": \"value\"}` pairs where the key is one of the SEO tag's properties (name, content, rel, href, etc.)\n             * and the value is the value for that property. `{\"name\": \"description\", \"content\": \"The description itself.\"}`.\n             */\n            props: object;\n            /**\n             * Tag metadata. For example, `{\"height\": 300, \"width\": 240}`.\n             */\n            meta: object;\n            /**\n             * Tag inner content. For example, ` inner content `.\n             */\n            children: string;\n            /**\n             * Whether the tag is a custom tag.\n             */\n            custom: boolean;\n            /**\n             * Whether the tag is disabled.\n             */\n            disabled: boolean;\n        };\n        /**\n         * An object representing variant information to use when creating or updating variants.\n         */\n        type VariantInfo = {\n            /**\n             * Variant currency.\n             */\n            currency: string;\n            /**\n             * Variant price. The variant price must be greater than its discount. If the variant price has been updated, changes to the product price do not affect the variant price.\n             */\n            price: number;\n            /**\n             * Discounted variant price.\n             */\n            discountedPrice: number;\n            /**\n             * Variant price formatted with the currency.\n             */\n            formattedPrice: string;\n            /**\n             * Discounted variant price formatted with the currency.\n             */\n            formattedDiscountedPrice: string;\n            /**\n             * Variant weight.\n             */\n            weight: number;\n            /**\n             * Variant stock keeping unit value.\n             */\n            sku: string;\n            /**\n             * Whether the variant is visible in the store.\n             */\n            visible: boolean;\n            /**\n             * Price per unit.\n             */\n            pricePerUnit: number;\n            /**\n             * Price per unit formatted with currency symbol.\n             */\n            formattedPricePerUnit: string;\n        };\n        /**\n         * An object representing a product variant item.\n         */\n        type VariantItem = {\n            /**\n             * Unique variant ID.\n             */\n            _id: string;\n            /**\n             * The choices of the retrieved variant.\n             */\n            choices: $w.ProductPage.ProductChoices;\n            /**\n             * Variant information.\n             */\n            variant: $w.ProductPage.VariantInfo;\n        };\n        /**\n         * An object representing a product's price per unit data.\n         */\n        type pricePerUnitData = {\n            /**\n             * Product’s total weight, volume, or area. For example, if your product weighs 1 kilogram, the `totalQuantity` is `1`.\n             */\n            totalQuantity: number;\n            /**\n             * Total measurement unit of weight, volume, or area. For example, if your product weighs 1 kilogram, the `totalMeasurementUnit` is `\"KG\"`.\n             *\n             * Supported values:\n             * `\"ML\"`, `\"CL\"`, `\"L\"`, `\"CBM\"`, `\"MG\"`, `\"G\"`, `\"KG\"`, `\"MM\"`, `\"CM\"`, `\"M\"`, `\"SQM\"`, `\"OZ\"`, `\"LB\"`, `\"FLOZ\"`, `\"PT\"`, `\"QT\"`, `\"GAL\"`, `\"IN\"`, `\"FT\"`, `\"YD\"`, `\"SQFT\"`.\n             */\n            totalMeasurementUnit: string;\n            /**\n             * Product’s base weight, volume, or area. For example, for a product weighing 1 kilogram, the `baseQuantity` could be `100` (grams).\n             */\n            baseQuantity: number;\n            /**\n             * Base measurement unit of weight, volume, or area. For example, if your product weighs 1 kilogram, and the `baseQuantity` is `100` grams, `baseMeasurementUnit` is `\"G\"`.\n             *\n             * Supported values:\n             * `\"ML\"`, `\"CL\"`, `\"L\"`, `\"CBM\"`, `\"MG\"`, `\"G\"`, `\"KG\"`, `\"MM\"`, `\"CM\"`, `\"M\"`, `\"SQM\"`, `\"OZ\"`, `\"LB\"`, `\"FLOZ\"`, `\"PT\"`, `\"QT\"`, `\"GAL\"`, `\"IN\"`, `\"FT\"`, `\"YD\"`, `\"SQFT\"`.\n             */\n            baseMeasurementUnit: string;\n        };\n    }\n    /**\n     * A thank you page displayed when an order is created.\n     * \t[Read more](https://www.wix.com/corvid/reference/$w.ThankYouPage.html#)\n     */\n    interface ThankYouPage extends $w.Element, $w.HiddenCollapsedMixin {\n        /**\n         * Gets the order associated with the current page.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.ThankYouPage.html#getOrder)\n         */\n        getOrder(): Promise<$w.ThankYouPage.Order>;\n    }\n    namespace ThankYouPage {\n        /**\n         * An object representing address information.\n         */\n        type Address = {\n            /**\n             * Address in readable format.\n             */\n            formatted: string;\n            /**\n             * City.\n             */\n            city?: string;\n            /**\n             * Country.\n             */\n            country?: string;\n            /**\n             * Main address information.\n             */\n            addressLine?: string;\n            /**\n             * Additional address information (apt, floor, etc.).\n             */\n            addressLine2?: string;\n            /**\n             * Alternative property for street name and number.\n             */\n            streetAddress?: $w.ThankYouPage.StreetAddress;\n            /**\n             * Postal/zip code.\n             */\n            postalCode?: string;\n            /**\n             * Subdivision of a country, such as a state or province.\n             */\n            subdivision?: string;\n        };\n        /**\n         * An object representing a coupon applied to the order.\n         */\n        type AppliedCoupon = {\n            /**\n             * Coupon ID.\n             */\n            couponId: string;\n            /**\n             * Coupon name.\n             */\n            name: string;\n            /**\n             * Coupon code.\n             */\n            code: string;\n        };\n        /**\n         * An object representing an order's billing info.\n         */\n        type BillingInfo = {\n            /**\n             * Billing address.\n             */\n            address?: $w.ThankYouPage.Address;\n            /**\n             * Last name.\n             */\n            lastName?: string;\n            /**\n             * First name.\n             */\n            firstName?: string;\n            /**\n             * Email address.\n             */\n            email?: string;\n            /**\n             * Phone number.\n             */\n            phone?: string;\n            /**\n             * Company name.\n             */\n            company?: string;\n            /**\n             * VAT information.\n             */\n            vatId?: $w.ThankYouPage.VatId;\n        };\n        /**\n         * An object representing information about the buyer.\n         */\n        type BuyerInfo = {\n            /**\n             * Unique buyer's ID.\n             */\n            id: string;\n            /**\n             * Buyer's email address.\n             */\n            email: string;\n            /**\n             * Buyer's first name.\n             */\n            firstName: string;\n            /**\n             * Buyer's last name.\n             */\n            lastName: string;\n            /**\n             * Buyer's identity.\n             * One of:\n             *\n             *\n             *  - `\"MEMBER\"`: A logged-in site member.\n             *  - `\"CONTACT\"`: A Wix contact.\n             */\n            identityType: string;\n            /**\n             * Buyer's phone number.\n             */\n            phone?: string;\n        };\n        /**\n         * An object representing information about the sales channel that submitted this order.\n         */\n        type ChannelInfo = {\n            /**\n             * Order ID from an external system (e.g., eBay or Amazon).\n             */\n            externalOrderId?: string;\n            /**\n             * URL to the order in the external system (e.g., eBay or Amazon).\n             */\n            externalOrderUrl?: string;\n            /**\n             * Sales channel that submitted the order.\n             * One of:\n             *\n             *\n             *  + `\"WEB\"`: Wix online store.\n             *  + `\"POS\"`: Point of sale.\n             *  + `\"EBAY\"`: eBay.\n             *  + `\"OTHER_PLATFORM\"`: Order imported from another system (e.g., Cart2Cart).\n             *  + `\"WIX_APP_STORE\"`: Order created via the Wix mobile app.\n             */\n            type: string;\n        };\n        /**\n         * An object representing a custom field added by the customer during the checkout process.\n         */\n        type CustomField = {\n            /**\n             * Custom field's title.\n             */\n            title: string;\n            /**\n             * Title translated into the buyer's language.\n             */\n            translatedTitle: string;\n            /**\n             * Custom field's text.\n             */\n            value: string;\n        };\n        /**\n         * An object representing a custom text field.\n         */\n        type CustomTextField = {\n            /**\n             * Field title.\n             */\n            title: string;\n            /**\n             * Field value.\n             */\n            value: string;\n        };\n        /**\n         * An object representing a discount applied to the order.\n         */\n        type Discount = {\n            appliedCoupon: $w.ThankYouPage.AppliedCoupon;\n        };\n        /**\n         * An object representing information about the identity of the order initiator.\n         * Occasionally, the person that completes the order isn't the buyer. For example, this occurs when an order is created using a point of sale terminal.\n         */\n        type EnteredBy = {\n            id: string;\n            /**\n             * Order was created by one of the following:\n             *\n             *\n             *   + `\"USER\"`: Wix user who performed a POS transaction on behalf of the buyer.\n             *   + `\"MEMBER\"`: Logged-in site member.\n             *   + `\"CONTACT\"`: A Wix contact.\n             */\n            identityType: string;\n        };\n        /**\n         * An object representing an line item's price information.\n         */\n        type LineItemPriceData = {\n            /**\n             * Price of the item.\n             */\n            price: number;\n            /**\n             * Total price charged to the customer (per line item) after calculation of quantity and discount.\n             */\n            totalPrice: number;\n            /**\n             * Whether the price includes tax.\n             */\n            taxIncludedInPrice: boolean;\n        };\n        /**\n         * An object representing a line item's primary media item.\n         */\n        type MediaItem = {\n            /**\n             * Image description for accessibility purposes.\n             */\n            altText?: string;\n            /**\n             * Unique media item ID.\n             */\n            id: string;\n            /**\n             * Media item external URL.\n             */\n            externalImageUrl?: string;\n            /**\n             * Media item source URL for media uploaded to Wix.\n             */\n            src: string;\n            /**\n             * Media item width.\n             *  One of:\n             *\n             *\n             *  - `\"IMAGE\"`: Image item.\n             *  - `\"UNSPECIFIED_MEDIA_TYPE_ITEM\"`: Media item type can't be classified due to an error.\n             */\n            type: string;\n        };\n        /**\n         * An object representing a line item option.\n         */\n        type Option = {\n            /**\n             * Name of the product option.\n             */\n            option: string;\n            /**\n             * Selected option.\n             */\n            selection: string;\n        };\n        /**\n         * An object representing an order.\n         */\n        type Order = {\n            /**\n             * Unique order ID.\n             */\n            _id: string;\n            /**\n             * Date and time the order was updated.\n             */\n            _updatedDate: Date;\n            /**\n             * The site's displayed language.\n             */\n            buyerLanguage: string;\n            /**\n             * The shopping cart's unique ID.\n             */\n            cartId?: string;\n            /**\n             * Channel information.\n             */\n            channelInfo: $w.ThankYouPage.ChannelInfo;\n            /**\n             * Identity of the order's operator.\n             */\n            enteredBy: $w.ThankYouPage.EnteredBy;\n            /**\n             * Billing information.\n             */\n            billingInfo?: $w.ThankYouPage.BillingInfo;\n            /**\n             * Buyer information.\n             */\n            buyerInfo: $w.ThankYouPage.BuyerInfo;\n            /**\n             * A note added by the buyer.\n             */\n            buyerNote?: string;\n            /**\n             * Date and time the order was created.\n             */\n            _dateCreated: Date;\n            /**\n             * Order currency.\n             */\n            currency: string;\n            /**\n             * Running order number.\n             */\n            number: number;\n            /**\n             * Shipping information.\n             */\n            shippingInfo?: $w.ThankYouPage.OrderShippingInfo;\n            /**\n             * Order items.\n             */\n            lineItems: $w.ThankYouPage.OrderLineItem[];\n            /**\n             * Order totals.\n             */\n            totals: $w.ThankYouPage.Totals;\n            /**\n             * The unit in which the order's weight is measured. Either `\"KG\"` or `\"LB\"`.\n             */\n            weightUnit: string;\n            /**\n             * Information about a custom field.\n             */\n            customField?: $w.ThankYouPage.CustomField;\n            /**\n             * Discount information.\n             */\n            discount?: $w.ThankYouPage.Discount;\n        };\n        /**\n         * An object representing a line item in an order.\n         */\n        type OrderLineItem = {\n            /**\n             * Custom text.\n             */\n            customTextFields?: $w.ThankYouPage.CustomTextField[];\n            /**\n             * Line item product ID.\n             */\n            productId?: string;\n            /**\n             * Type of the line item.\n             *  One of:\n             *\n             *\n             *  - `\"DIGITAL\"`: Digital item.\n             *  - `\"PHYSICAL\"`: Physical item.\n             *  - `\"CUSTOM_AMOUNT_ITEM\"`: Item with a custom price.\n             */\n            lineItemType?: string;\n            /**\n             * Information about the line item's primary media item.\n             */\n            mediaItem: $w.ThankYouPage.MediaItem;\n            /**\n             * Name of the line item.\n             */\n            name: string;\n            /**\n             * Notes about the line item.\n             */\n            notes?: string;\n            /**\n             * Line item options.\n             */\n            options: $w.ThankYouPage.Option[];\n            /**\n             * Deprecated: see priceData.\n             */\n            price: number;\n            /**\n             * Line item quantity.\n             */\n            quantity: number;\n            /**\n             * Line item stock keeping unit.\n             */\n            sku: string;\n            /**\n             * Deprecated: see priceData.\n             */\n            totalPrice: number;\n            /**\n             * Line item weight.\n             */\n            weight: number;\n            /**\n             * Line item index.\n             */\n            index: number;\n            /**\n             * Line item's name, translated into the customer's language.\n             */\n            translatedName: string;\n            /**\n             * Line item's discount amount.\n             */\n            discount?: number;\n            /**\n             * Line item's total amount of tax applied.\n             */\n            tax?: number;\n            /**\n             * Price information.\n             */\n            priceData?: $w.ThankYouPage.LineItemPriceData;\n            /**\n             * Tax group ID.\n             */\n            taxGroupId?: string;\n            /**\n             * Line item's fulfiller ID.\n             */\n            fulfillerId: string;\n            /**\n             * Line item's variant ID.\n             */\n            variantId: string;\n        };\n        /**\n         * An object representing an order's shipping information.\n         */\n        type OrderShippingInfo = {\n            /**\n             * Expected date of delivery.\n             */\n            deliverByDate?: Date;\n            /**\n             * Delivery option name.\n             */\n            deliveryOption: string;\n            /**\n             * Estimated time until delivery.\n             */\n            estimatedDeliveryTime?: string;\n            /**\n             * Shipment details (empty if order was designated for pickup).\n             */\n            shipmentDetails?: $w.ThankYouPage.ShipmentDetails;\n            /**\n             * Pickup details (empty if order was designated for delivery).\n             */\n            pickupDetails?: $w.ThankYouPage.PickupDetails;\n            /**\n             * Shipping region.\n             */\n            shippingRegion?: string;\n        };\n        /**\n         * An object representing an order's pickup details.\n         */\n        type PickupDetails = {\n            /**\n             * Pickup instructions.\n             */\n            pickupInstructions?: string;\n            /**\n             * Pickup address.\n             */\n            pickupAddress?: $w.ThankYouPage.Address;\n            /**\n             * First name.\n             */\n            firstName?: string;\n            /**\n             * Last name.\n             */\n            lastName?: string;\n            /**\n             * Email address.\n             */\n            email?: string;\n            /**\n             * Phone number.\n             */\n            phone?: string;\n        };\n        /**\n         * An object representing an order's shipping details.\n         */\n        type ShipmentDetails = {\n            /**\n             * Shipping address.\n             */\n            address?: $w.ThankYouPage.Address;\n            /**\n             * Last name.\n             */\n            lastName?: string;\n            /**\n             * First name.\n             */\n            firstName?: string;\n            /**\n             * Email address.\n             */\n            email?: string;\n            /**\n             * Phone number.\n             */\n            phone?: string;\n            /**\n             * Company name.\n             */\n            company?: string;\n            /**\n             * VAT information.\n             */\n            vatId?: $w.ThankYouPage.VatId;\n            /**\n             * Deprecated: see priceData.\n             */\n            tax?: number;\n            /**\n             * Deprecated: see priceData.\n             */\n            discount?: number;\n            /**\n             * Shipment price information.\n             */\n            priceData?: $w.ThankYouPage.ShipmentPriceData;\n        };\n        /**\n         * An object representing shipment price information.\n         */\n        type ShipmentPriceData = {\n            /**\n             * Price of the item.\n             */\n            price: number;\n            /**\n             * Whether the price includes tax.\n             */\n            taxIncludedInPrice: boolean;\n        };\n        /**\n         * An object representing information about the street name and street number of an address.\n         */\n        type StreetAddress = {\n            /**\n             * Address street name.\n             */\n            name: string;\n            /**\n             * Address street number.\n             */\n            number: string;\n        };\n        type SubscriptionInfo = {\n            /**\n             * ID of the current subscription's cycle.\n             */\n            id: string;\n            /**\n             * Current cycle number. For example, if the subscription is in the 3rd month of a 4-month subscription, the value will be `3`.\n             */\n            cycleNumber: number;\n            /**\n             * Subscription settings.\n             */\n            subscriptionSettings: $w.ThankYouPage.SubscriptionSettings;\n            /**\n             * Subscription option information.\n             */\n            subscriptionOptionInfo: $w.ThankYouPage.SubscriptionOptionInfo;\n        };\n        type SubscriptionOptionInfo = {\n            /**\n             * Subscription option ID.\n             */\n            id: string;\n            /**\n             * Subscription option title. For example, \"Coffee of the week\".\n             */\n            title: string;\n            /**\n             * Subscription option description. For example, \"Subscribe and get 15% off\".\n             */\n            description: string;\n        };\n        type SubscriptionSettings = {\n            /**\n             * Frequency of recurring payment.\n             * Supported values:\n             *\n             *  + `\"DAY\"`\n             *  + `\"WEEK\"`\n             *  + `\"MONTH\"`\n             *  + `\"YEAR\"`\n             */\n            frequency: string;\n            /**\n             * Whether subscription is renewed automatically at the end of each period.\n             */\n            autoRenewal: boolean;\n            /**\n             * Number of billing cycles before subscription ends. Ignored if `autoRenewal: false`.\n             */\n            billingCycles: number;\n        };\n        /**\n         * An object representing an order's totals.\n         */\n        type Totals = {\n            /**\n             * Total calculated discount amount.\n             */\n            discount?: number;\n            /**\n             * Total quantity of the the order's line items.\n             */\n            quantity: number;\n            /**\n             * Total shipping price, including tax.\n             */\n            shipping?: number;\n            /**\n             * Subtotal of all the order's line items, excluding tax.\n             */\n            subtotal: number;\n            /**\n             * Total amount of tax.\n             */\n            tax?: number;\n            /**\n             * Total price.\n             */\n            total: number;\n            /**\n             * Total weight of the order's items.\n             */\n            weight: number;\n        };\n        /**\n         * An object representing value added tax (VAT) information.\n         */\n        type VatId = {\n            /**\n             * VAT number.\n             */\n            number: string;\n            /**\n             * VAT type. Either `\"CPF\"` or `\"CNPJ\"`.\n             */\n            type: string;\n        };\n    }\n    type dataset = wix_dataset.Dataset;\n    type router_dataset = wix_dataset.DynamicDataset;\n}\ndeclare namespace wix_dataset {\n    /**\n     * A [dataset](wix-dataset.html) connects page elements to a set of items in a data collection.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-dataset.Dataset.html#)\n     */\n    interface Dataset {\n        /**\n         * Adds a new blank item.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-dataset.Dataset.html#add)\n         */\n        add(): Promise<void>;\n        /**\n         * Returns the current item.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-dataset.Dataset.html#getCurrentItem)\n         */\n        getCurrentItem(): any;\n        /**\n         * Returns the current item's index.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-dataset.Dataset.html#getCurrentItemIndex)\n         */\n        getCurrentItemIndex(): number;\n        /**\n         * Gets the index of the dataset's current page.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-dataset.Dataset.html#getCurrentPageIndex)\n         */\n        getCurrentPageIndex(): number;\n        /**\n         * Returns the selected items.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-dataset.Dataset.html#getItems)\n         */\n        getItems(fromIndex: number, numberOfItems: number): Promise<wix_dataset.Dataset.GetItemsResult>;\n        /**\n         * Gets the dataset's page size.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-dataset.Dataset.html#getPageSize)\n         */\n        getPageSize(): number;\n        /**\n         * Returns the number of items in the dataset that match its filter criteria.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-dataset.Dataset.html#getTotalCount)\n         */\n        getTotalCount(): number;\n        /**\n         * Gets the number of pages in the dataset.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-dataset.Dataset.html#getTotalPageCount)\n         */\n        getTotalPageCount(): number;\n        /**\n         * Indicates if there is a next item.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-dataset.Dataset.html#hasNext)\n         */\n        hasNext(): boolean;\n        /**\n         * Indicates if there is a next page of data.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-dataset.Dataset.html#hasNextPage)\n         */\n        hasNextPage(): boolean;\n        /**\n         * Indicates if there is a previous item.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-dataset.Dataset.html#hasPrevious)\n         */\n        hasPrevious(): boolean;\n        /**\n         * Indicates if there is a previous page of data.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-dataset.Dataset.html#hasPreviousPage)\n         */\n        hasPreviousPage(): boolean;\n        /**\n         * Loads the next page of data in addition to the current data.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-dataset.Dataset.html#loadMore)\n         */\n        loadMore(): Promise<void>;\n        /**\n         * Loads the specified page.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-dataset.Dataset.html#loadPage)\n         */\n        loadPage(pageIndex: number): Promise<any[]>;\n        /**\n         * **Deprecated.**\n         * This function will continue to work, but a newer version is available. Use the\n         * [`add()`](https://www.wix.com/velo/reference/wix-dataset/dataset/add) function instead.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-dataset.Dataset.html#new)\n         */\n        new (): Promise<void>;\n        /**\n         * Saves the current item and moves to the next item.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-dataset.Dataset.html#next)\n         */\n        next(): Promise<any>;\n        /**\n         * Moves to the next page of data.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-dataset.Dataset.html#nextPage)\n         */\n        nextPage(): Promise<any[]>;\n        /**\n         * Adds an event handler that runs just after a save.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-dataset.Dataset.html#onAfterSave)\n         *  @eventType afterSave\n         */\n        onAfterSave(handler: wix_dataset.Dataset.AfterSaveHandler): void;\n        /**\n         * Adds an event handler that runs just before a save.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-dataset.Dataset.html#onBeforeSave)\n         */\n        onBeforeSave(handler: wix_dataset.Dataset.BeforeSaveHandler): void;\n        /**\n         * Adds an event handler that runs when the current index changes.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-dataset.Dataset.html#onCurrentIndexChanged)\n         *  @eventType currentIndexChanged\n         */\n        onCurrentIndexChanged(handler: wix_dataset.Dataset.CurrentIndexChangedHandler): void;\n        /**\n         * Adds an event handler that runs when an error occurs.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-dataset.Dataset.html#onError)\n         *  @eventType datasetError\n         */\n        onError(handler: wix_dataset.Dataset.ErrorHandler): void;\n        /**\n         * Adds an event handler that runs when a value of the current item changes.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-dataset.Dataset.html#onItemValuesChanged)\n         *  @eventType itemValuesChanged\n         */\n        onItemValuesChanged(handler: wix_dataset.Dataset.ItemValuesChangedHandler): void;\n        /**\n         * Adds an event handler that runs when the dataset is ready.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-dataset.Dataset.html#onReady)\n         *  @eventType datasetReady\n         */\n        onReady(handler: wix_dataset.Dataset.ReadyHandler): void;\n        /**\n         * The `onReadyAsync()` function returns a Promise that resolves when a dataset is ready.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-dataset.Dataset.html#onReadyAsync)\n         */\n        onReadyAsync(): Promise<void>;\n        /**\n         * Saves the current item and moves to the previous item.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-dataset.Dataset.html#previous)\n         */\n        previous(): Promise<any>;\n        /**\n         * Moves to the previous page of data.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-dataset.Dataset.html#previousPage)\n         */\n        previousPage(): Promise<any[]>;\n        /**\n         * Refetches the contents of the dataset from the collection.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-dataset.Dataset.html#refresh)\n         */\n        refresh(): Promise<void>;\n        /**\n         * Removes the current item.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-dataset.Dataset.html#remove)\n         */\n        remove(): Promise<void>;\n        /**\n         * Reverts the current item to its saved value.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-dataset.Dataset.html#revert)\n         */\n        revert(): Promise<void>;\n        /**\n         * Saves the current item.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-dataset.Dataset.html#save)\n         */\n        save(): Promise<any>;\n        /**\n         * Sets the current item by index.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-dataset.Dataset.html#setCurrentItemIndex)\n         */\n        setCurrentItemIndex(index: number): Promise<void>;\n        /**\n         * Updates the value of a field in the current item.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-dataset.Dataset.html#setFieldValue)\n         */\n        setFieldValue(fieldKey: string, value: any): void;\n        /**\n         * Updates the values of a set of fields in the current item.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-dataset.Dataset.html#setFieldValues)\n         */\n        setFieldValues(fieldValues: any): void;\n        /**\n         * Sets the dataset filter.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-dataset.Dataset.html#setFilter)\n         */\n        setFilter(filter: wix_data.WixDataFilter): Promise<void>;\n        /**\n         * Sets the dataset's page size.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-dataset.Dataset.html#setPageSize)\n         */\n        setPageSize(pageSize: number): Promise<void>;\n        /**\n         * Sets the dataset sort order.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-dataset.Dataset.html#setSort)\n         */\n        setSort(sort: wix_data.WixDataSort): Promise<void>;\n    }\n    namespace Dataset {\n        /**\n         * An object representing a dataset error.\n         */\n        type DatasetError = {\n            /**\n             * Error code.\n             */\n            code: string;\n            /**\n             * Error message.\n             */\n            message: string;\n        };\n        /**\n         * An object used by the `getItems()` function that contains the items retrieved and the total number of items in the dataset that match its filter criteria\n         */\n        type GetItemsResult = {\n            /**\n             * List of items objects where key:value pairs are the field keys and field values of the retrieved items, including all hidden fields.\n             */\n            items: any[];\n            /**\n             * The number of items in the dataset that match its filter criteria.\n             */\n            totalCount: number;\n            /**\n             * The index in the dataset of the first item in the items property.\n             */\n            offset: number;\n        };\n        /**\n         * An after save event handler.\n         */\n        type AfterSaveHandler = (itemBeforeSave: any, itemAfterSave: any) => void;\n        /**\n         * A before save event handler.\n         */\n        type BeforeSaveHandler = () => Promise<boolean> | boolean;\n        /**\n         * A current item index change event handler.\n         */\n        type CurrentIndexChangedHandler = (index: number) => void;\n        /**\n         * An error event handler.\n         */\n        type ErrorHandler = (operation: string, error: wix_dataset.Dataset.DatasetError) => void;\n        /**\n         * A current item value change event handler.\n         */\n        type ItemValuesChangedHandler = (itemBeforeChange: any, updatedItem: any) => void;\n        /**\n         * A dataset ready event handler.\n         */\n        type ReadyHandler = () => void;\n    }\n    /**\n     * A [dataset](wix-dataset.html) connects page elements on a dynamic page to a set of items in a data collection.\n     *\n     * >**Note:** It is not possible to connect page elements on a dynamic page to an item in a [single item collection](https://support.wix.com/en/article/about-collections-with-a-single-item).\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-dataset.DynamicDataset.html#)\n     */\n    interface DynamicDataset extends wix_dataset.Dataset {\n        /**\n         * Gets the next dynamic page URL.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-dataset.DynamicDataset.html#getNextDynamicPage)\n         */\n        getNextDynamicPage(): Promise<string>;\n        /**\n         * Gets the previous dynamic page URL.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-dataset.DynamicDataset.html#getPreviousDynamicPage)\n         */\n        getPreviousDynamicPage(): Promise<string>;\n    }\n}\ndeclare namespace site_monitoring {\n    /**\n     * A single record of a Wix site event in JSON format.\n     * \t[Read more](https://www.wix.com/corvid/reference/site-monitoring.LogEntry.html#)\n     */\n    interface LogEntry {\n        /**\n         * Unique identifier for the log entry.\n         * \t[Read more](https://www.wix.com/corvid/reference/site-monitoring.LogEntry.html#insertId)\n         */\n        readonly insertId: string;\n        /**\n         * Payload of the log entry in JSON format.\n         * \t[Read more](https://www.wix.com/corvid/reference/site-monitoring.LogEntry.html#jsonPayload)\n         */\n        readonly jsonPayload: site_monitoring.LogEntry.LogEntryJsonPayload;\n        /**\n         * Additional information about the log entry.\n         * \t[Read more](https://www.wix.com/corvid/reference/site-monitoring.LogEntry.html#labels)\n         */\n        readonly labels: site_monitoring.LogEntry.LogEntryLabels;\n        /**\n         * Additional information about a potentially long-running operation associated with the log entry.\n         * \t[Read more](https://www.wix.com/corvid/reference/site-monitoring.LogEntry.html#operation)\n         */\n        readonly operation: site_monitoring.LogEntry.LogEntryOperation;\n        /**\n         * Time the log entry was received by site monitoring.\n         * \t[Read more](https://www.wix.com/corvid/reference/site-monitoring.LogEntry.html#receiveTimestamp)\n         */\n        readonly receiveTimestamp: string;\n        /**\n         * Severity of the log entry.\n         * \t[Read more](https://www.wix.com/corvid/reference/site-monitoring.LogEntry.html#severity)\n         */\n        readonly severity: string;\n        /**\n         * Source code location information associated with the log entry.\n         * \t[Read more](https://www.wix.com/corvid/reference/site-monitoring.LogEntry.html#sourceLocation)\n         */\n        readonly sourceLocation: site_monitoring.LogEntry.LogEntrySourceLocation;\n        /**\n         * Time the site event occurred.\n         * \t[Read more](https://www.wix.com/corvid/reference/site-monitoring.LogEntry.html#timestamp)\n         */\n        readonly timestamp: string;\n    }\n    namespace LogEntry {\n        /**\n         * Payload of the log entry in JSON format.\n         */\n        type LogEntryJsonPayload = {\n            /**\n             * Payload message.\n             */\n            message: string;\n        };\n        /**\n         * Additional information about the log entry.\n         */\n        type LogEntryLabels = {\n            /**\n             * [`baseUrl`](https://www.wix.com/velo/reference/wix-location.html#baseUrl) of the site with which the log entry is associated.\n             */\n            siteUrl: string;\n            /**\n             * Name of Wix application with which the log entry is associated, such as Stores or Bookings. The generic namespace `Corvid` represents site code not associated with a specific Wix application. Currently only the `Corvid` namespace is supported.\n             */\n            namespace: string;\n            /**\n             * Unique identifier for the site. Does not change even if the site name or other site attributes change.\n             */\n            tenantId: string;\n            /**\n             * Indicates the viewing mode from which the log entry originates.\n             *  One of the following:\n             *\n             *  + `\"Preview\"`: Preview mode.\n             *  + `\"Site\"`: Published site mode.\n             */\n            viewMode: string;\n            /**\n             * Unique identifier for a specific site [`revision`](https://www.wix.com/velo/reference/wix-site.html#revision). You can use the `revision` property together with the [Release Manager](https://support.wix.com/en/article/about-site-monitoring#site-revisions) to monitor and debug new revisions of your site.\n             */\n            revision: string;\n        };\n        /**\n         * Additional information about a potentially long-running operation associated with the log entry.\n         */\n        type LogEntryOperation = {\n            /**\n             * Unique identifier useful for linking together all log entries associated with a specific operation.\n             */\n            id: string;\n            /**\n             * Context of the operation, such as a URL path for page code or a web module function name.\n             */\n            producer: string;\n        };\n        /**\n         * Source code location information associated with the log entry. Currently only applicable for backend log entries with the `Corvid` namespace.\n         */\n        type LogEntrySourceLocation = {\n            /**\n             * Name of the source file.\n             */\n            file: string;\n            /**\n             * Line within the source file. 1-based. 0 indicates no line number available.\n             */\n            line: number;\n        };\n    }\n}\ndeclare namespace wix_location {\n    /**\n     * An object used to manage the query segment of the current page's URL.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-location.QueryParams.html#)\n     */\n    interface QueryParams {\n        /**\n         * Adds query parameters to the current page's URL.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-location.QueryParams.html#add)\n         */\n        add(toAdd: any): void;\n        /**\n         * Removes query parameters from the current page's URL.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-location.QueryParams.html#remove)\n         */\n        remove(toRemove: string[]): void;\n    }\n    /**\n     * An object containing information about a location.\n     */\n    type Location = {\n        /**\n         * Location path.\n         */\n        path: string;\n    };\n    /**\n     * An object containing navigation and scrolling options.\n     */\n    type NavOptions = {\n        /**\n         * Whether the page scrolls to the top when navigating to the specified URL for a Wix page. Defaults to `false`. When `true`, the page remains at the same Y-axis position as the previously-viewed page. This setting does not affect scrolling for external URLs.\n         */\n        disableScrollToTop?: boolean;\n    };\n    /**\n     * Set of key-value pairs for query parameters and their values.\n     */\n    type ParamsToAdd = {\n        /**\n         * Key value pair in the format `key:value`:\n         *\n         *  + `key`  Any query parameter name of type `string`.\n         *  + `:`  A colon separating the `key` and the `value`.\n         *  + `value`  Any query parameter value of type `string`.\n         */\n        \"key:value\": string;\n    };\n    /**\n     * Set of key-value pairs for query parameters and their values.\n     */\n    type QueryObject = {\n        /**\n         * Key value pair in the format `key:value`:\n         *\n         *  + `key`  Any query parameter name of type `string`.\n         *  + `:`  A colon separating the `key` and the `value`.\n         *  + `value`  Any query parameter value of type `string`.\n         */\n        \"key:value\": string;\n    };\n    /**\n     * Set of key-value pairs for query parameters and their values.\n     */\n    type QueryParamsToAdd = {\n        /**\n         * Key value pair in the format `key:value`:\n         *\n         *  + `key`  Any query parameter name of type `string`.\n         *  + `:`  A colon separating the `key` and the `value`.\n         *  + `value`  Any query parameter value of type `string`.\n         */\n        \"key:value\": string;\n    };\n    /**\n     * An object containing navigation and scrolling options.\n     */\n    type navigationParams = {\n        /**\n         * When navigating to the specified URL, do not scroll to the top. Instead, remain at the current position on the page.\n         */\n        disableScrollToTop: boolean;\n    };\n    /**\n     * Handles location change events.\n     */\n    type LocationChangeHandler = (event: wix_location.Location) => void;\n}\ndeclare namespace wix_site {\n    /**\n     * An object representing a single entry in a sitemap.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-site.WixRouterSitemapEntry.html#)\n     */\n    interface WixRouterSitemapEntry {\n        /**\n         * Gets how frequently the page is likely to change.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-site.WixRouterSitemapEntry.html#changeFrequency)\n         */\n        readonly changeFrequency: string;\n        /**\n         * Gets when the page data was last modified.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-site.WixRouterSitemapEntry.html#lastModified)\n         */\n        readonly lastModified: Date;\n        /**\n         * Gets the page name.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-site.WixRouterSitemapEntry.html#pageName)\n         */\n        readonly pageName: string;\n        /**\n         * Gets the priority of this URL relative to other URLs on your site.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-site.WixRouterSitemapEntry.html#priority)\n         */\n        readonly priority: number;\n        /**\n         * Gets the page title.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-site.WixRouterSitemapEntry.html#title)\n         */\n        readonly title: string;\n        /**\n         * Gets the relative url of the page.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-site.WixRouterSitemapEntry.html#url)\n         */\n        readonly url: string;\n    }\n    /**\n     * An object that contains information about which pages and lightboxes to\n     *  prefetch resources for.\n     */\n    type PrefetchItems = {\n        /**\n         * The relative or absolute URLs of the pages in your site\n         *  to prefetch resources for.\n         */\n        pages?: string[];\n        /**\n         * The names of the lightboxes in your site to prefetch\n         *  resources for.\n         *\n         *  > **Note:** Pages are listed by relative or absolute URL, but lightboxes are listed by name.\n         *  See [`wix-location.to()`](wix-location.html#to) to learn how to find a page's relative\n         *  URL. You can find a lightbox's name by selecting the lightbox and clicking the settings button.\n         */\n        lightboxes?: string[];\n    };\n    /**\n     * An object that is returned from a prefetch request.\n     */\n    type PrefetchResult = {\n        /**\n         * A success or failure message.\n         */\n        message: string;\n        /**\n         * The errors that occurred.\n         */\n        errors: wix_site.PrefetchResultError;\n    };\n    /**\n     * An object that is returned when a resource prefetch is unsuccessful.\n     */\n    type PrefetchResultError = {\n        /**\n         * The names of the pages for which prefetch failed.\n         */\n        pages: string[];\n        /**\n         * The names of the lightbox for which prefetch failed.\n         */\n        lightboxes: string[];\n    };\n    /**\n     * An object that contains information about the site's prefixes.\n     */\n    type Prefix = {\n        /**\n         * The name of the prefix.\n         */\n        name: string;\n        /**\n         * The type of the prefix.\n         *\n         *  A site's routers, dynamic pages, and app pages all have prefixes.\n         *\n         *  One of:\n         *\n         *  + `\"dynamicPages\"`\n         *  + `\"router\"`\n         *  + `\"app\"`\n         */\n        type: string;\n        /**\n         * The prefix.\n         */\n        prefix: string;\n        /**\n         * If the prefix is an app's prefix, the `applicationId` property is the app's ID.\n         */\n        applicationId?: string;\n    };\n    /**\n     * An object that contains information about the site's pages, prefixes, and lightboxes.\n     */\n    type SiteStructure = {\n        /**\n         * The pages of the site.\n         *  Pages can be regular pages, dynamic pages, router pages, or pages from an app.\n         */\n        pages: wix_site.StructurePage[];\n        /**\n         * The prefixes of the site's routers and dynamic pages.\n         */\n        prefixes: wix_site.Prefix[];\n        /**\n         * The site's lightboxes.\n         */\n        lightboxes: wix_site.StructureLightbox[];\n    };\n    /**\n     * An object that contains information about a lightbox on the site.\n     */\n    type StructureLightbox = {\n        /**\n         * The name of the lightbox.\n         */\n        name: string;\n    };\n    /**\n     * An object that contains information about a page on the site.\n     */\n    type StructurePage = {\n        /**\n         * The name of the page.\n         */\n        name: string;\n        /**\n         * The type of the page: `\"static\"` or `\"template\"`.\n         */\n        type: string;\n        /**\n         * The URL of the page. If the page is a `static` page the `url` property is the page's SEO URL.\n         */\n        url?: string;\n        /**\n         * If the page is an app page, the `applicationId` property is the app's ID.\n         */\n        applicationId?: string;\n        /**\n         * If the page is a router or dynamic page, the `prefix` property is the page's prefix.\n         */\n        prefix?: string;\n        /**\n         * If the page is the Home page, `isHomePage` is `true`. Otherwise, it does not exist.\n         */\n        isHomePage?: boolean;\n    };\n}\ndeclare namespace wix_storage {\n    /**\n     * Used for storing local, session, or memory key/value data in the visitor's browser.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-storage.Storage.html#)\n     */\n    interface Storage {\n        /**\n         * Removes **all** items from local, session, or memory storage.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-storage.Storage.html#clear)\n         */\n        clear(): void;\n        /**\n         * Gets an item from local, session, or memory storage.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-storage.Storage.html#getItem)\n         */\n        getItem(key: string): string;\n        /**\n         * Removes an item from local, session, or memory storage.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-storage.Storage.html#removeItem)\n         */\n        removeItem(key: string): void;\n        /**\n         * Stores an item in local, session, or memory storage.\n         *  > **Note:** You can store up to 50kb of data in local and session storage and up to\n         *  > 1mb in memory storage.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-storage.Storage.html#setItem)\n         */\n        setItem(key: string, value: string | number | string[]): void;\n    }\n}\ndeclare namespace wix_window {\n    /**\n     * The ConsentPolicy API is used to perform actions related to the user's allowed cookies and 3rd-party data transfer, such as for GDPR or CCPA purposes.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-window.ConsentPolicy.html#)\n     */\n    interface ConsentPolicy {\n        /**\n         * Gets the visitor's consent policy regarding allowed cookies and 3rd-party data transfer, such as for GDPR or CCPA purposes.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-window.ConsentPolicy.html#getCurrentConsentPolicy)\n         */\n        getCurrentConsentPolicy(): wix_window.ConsentPolicy.PolicyDetails;\n        /**\n         * Sets the function that runs\n         * when a visitor's consent policy was changed using\n         * [`setConsentPolicy()`](#setConsentPolicy) or reset using\n         * [`resetConsentPolicy()`](#resetConsentPolicy).\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-window.ConsentPolicy.html#onConsentPolicyChanged)\n         */\n        onConsentPolicyChanged(handler: wix_window.ConsentPolicy.ConsentPolicyChangedHandler): void;\n        /**\n         * Removes the current policy from the visitor's browser\n         * and resets the visitor's consent policy to the default policy for the site.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-window.ConsentPolicy.html#resetConsentPolicy)\n         */\n        resetConsentPolicy(): Promise<void>;\n        /**\n         * Sets the current visitor's consent policy\n         * regarding allowed cookies and data transfer to 3rd parties,\n         * such as for GDPR or CCPA purposes.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-window.ConsentPolicy.html#setConsentPolicy)\n         */\n        setConsentPolicy(policy: wix_window.ConsentPolicy.Policy): Promise<wix_window.ConsentPolicy.PolicyDetails>;\n    }\n    namespace ConsentPolicy {\n        /**\n         * The event that occurred when the consent policy changed.\n         */\n        type ConsentPolicyChangedEvent = {};\n        /**\n         * The current user's consent policy settings.\n         */\n        type Policy = {\n            /**\n             * Consent for mandatory cookies for Wix websites, such as for security cookies. Wix places these cookies on your device and these cookies do not require user consent. Always `true`.\n             */\n            essential: boolean;\n            /**\n             * Consent for cookies placed on the user's device that \"remember\" user settings to improve user experience. For example, an indication that the user dismissed a popup. The default is `true`.\n             */\n            functional: boolean;\n            /**\n             * Consent for cookies used for analytics, such as Wix analytics, Google Analytics, Yandex Metrica, and so on. The default is `true`.\n             */\n            analytics: boolean;\n            /**\n             * Consent for cookies used for advertising purposes. This includes 3rd-party scripts and pixels that may potentially place advertising cookies on the device (such as Twitter page view and Facebook Pixel). The default is `true`.\n             */\n            advertising: boolean;\n            /**\n             * Consent for a user's personal data to be transferred to a 3rd party (such as Google Analytics, Facebook Pixel, and FullStory). The default is `true`.\n             */\n            dataToThirdParty: boolean;\n        };\n        /**\n         * The complete details of the current user's consent policy.\n         */\n        type PolicyDetails = {\n            /**\n             * Whether the policy is the default consent policy set by the site owner. If `true`, either the user has not set a policy or the site owner has reset the policy.\n             */\n            defaultPolicy: boolean;\n            /**\n             * An object representing the user's current consent policy.\n             */\n            policy: wix_window.ConsentPolicy.Policy;\n            /**\n             * If a cookie exists in the browser defining the current consent policy, the date the policy was set. Otherwise, undefined.\n             */\n            createdDate?: Date;\n        };\n        /**\n         * Function that runs when a user's consent policy was changed using [`setConsentPolicy()`](#setConsentPolicy).\n         */\n        type ConsentPolicyChangedHandler = (event: wix_window.ConsentPolicy.ConsentPolicyChangedEvent) => void;\n    }\n    /**\n     * A [lightbox](https://support.wix.com/en/article/about-lightboxes) pops up on your site to grab your visitor's attention.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-window.Lightbox.html#)\n     */\n    interface Lightbox {\n        /**\n         * Closes the lightbox.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-window.Lightbox.html#close)\n         */\n        close(data?: any): void;\n        /**\n         * Returns the data object that was passed to a lightbox.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-window.Lightbox.html#getContext)\n         */\n        getContext(): any;\n    }\n    /**\n     * The Multilingual API is used when working with the languages in a multilingual site.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-window.Multilingual.html#)\n     */\n    interface Multilingual {\n        /**\n         * Sets or gets the site's current display language.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-window.Multilingual.html#currentLanguage)\n         */\n        currentLanguage: string;\n        /**\n         * Gets whether the site has been set up to be shown in multiple languages.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-window.Multilingual.html#isEnabled)\n         */\n        readonly isEnabled: boolean;\n        /**\n         * Gets information about the site's languages.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-window.Multilingual.html#siteLanguages)\n         */\n        readonly siteLanguages: wix_window.Multilingual.SiteLanguage[];\n    }\n    namespace Multilingual {\n        /**\n         * An object returned by the `siteLanguages` property that contains information about the site's languages.\n         */\n        type SiteLanguage = {\n            /**\n             * The language's full name.\n             */\n            name: string;\n            /**\n             * The language's locale code, which represents a set of language-related formatting preferences.\n             */\n            locale: string;\n            /**\n             * The language's two-letter code.\n             */\n            languageCode: string;\n            /**\n             * The language's three-letter country code.\n             */\n            countryCode: string;\n            /**\n             * Whether the language is the site's primary language.\n             */\n            isPrimaryLanguage: boolean;\n        };\n    }\n    /**\n     * The Rendering API is used to control when code is run as a page is being loaded.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-window.Rendering.html#)\n     */\n    interface Rendering {\n        /**\n         * Gets the current environment the rendering process is running in.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-window.Rendering.html#env)\n         */\n        readonly env: string;\n        /**\n         * **Deprecated:**  The `renderCycle` property no longer works as expected.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-window.Rendering.html#renderCycle)\n         */\n        readonly renderCycle: number;\n        /**\n         * **Deprecated:** This version of the `warmupData` property does not work as expected. A newer version is available at [`wix-window.warmupData`](wix-window.html#warmupData).\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-window.Rendering.html#warmupData)\n         */\n        readonly warmupData: boolean | number | string | any;\n    }\n    /**\n     * The Warmup Data API is used to optimize data loading for sites that render both on the server and in the browser,\n     *  allowing costly data fetching operations to be done only once.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-window.WarmupData.html#)\n     */\n    interface WarmupData {\n        /**\n         * Gets data from server-side code for use in client-side code.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-window.WarmupData.html#get)\n         */\n        get(key: string): any;\n        /**\n         * Sets data in server-side code for use in client-side code.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-window.WarmupData.html#set)\n         */\n        set(key: string, data: any): void;\n    }\n    /**\n     * An object that defines the location.\n     */\n    type Coordinates = {\n        /**\n         * The position's latitude in decimal degrees.\n         */\n        latitude: number;\n        /**\n         * The position's longitude in decimal degrees.\n         */\n        longitude: number;\n        /**\n         * The position's altitude in meters, relative to sea level. This value may be null if the browser cannot provide the data.\n         */\n        altitude: number;\n        /**\n         * The accuracy in meters of the `latitude` and `longitude` properties.\n         */\n        accuracy: number;\n        /**\n         * The accuracy in meters of the `altitude` property. This value may be null.\n         */\n        altitudeAccuracy: number;\n        /**\n         * The direction in degrees in which the device is traveling. It indicates how far off from heading true north the device is. If `speed` is `0`, the heading is `NaN`. This value may be null if the browser cannot provide the data.\n         */\n        heading: number;\n        /**\n         * The velocity in meters per second of the device. This value may be null if the browser cannot provide the data.\n         */\n        speed: number;\n    };\n    /**\n     * An object returned by the `getCurrentGeolocation()` function that contains information about the current geolocation.\n     */\n    type CurrentGeolocation = {\n        /**\n         * The geolocation timestamp representing the date and time at which the location was retrieved.\n         */\n        timestamp: string;\n        /**\n         * An object that defines the location.\n         */\n        coords: wix_window.Coordinates;\n    };\n    /**\n     * A custom parameter used when sending a CustomEvent track event.\n     */\n    type CustomType = {};\n    /**\n     * An object containing the size of the actual body of the page, which may be larger or smaller than the current window.\n     */\n    type DocumentSize = {\n        /**\n         * The height of the page body.\n         */\n        height: number;\n        /**\n         * The width of the page body.\n         */\n        width: number;\n    };\n    /**\n     * An object used when opening a modal window.\n     */\n    type OpenModalOptions = {\n        /**\n         * Width of the modal window.\n         */\n        width: number;\n        /**\n         * Height of the modal window.\n         */\n        height: number;\n    };\n    /**\n     * An object containing the scroll offset of the page within the window from the top-left corner.\n     */\n    type ScrollOffset = {\n        /**\n         * The horizontal scroll offset of the page within the window from the left.\n         */\n        x: number;\n        /**\n         * The vertical scroll offset of the page within the window from the top.\n         */\n        y: number;\n    };\n    /**\n     * An object used for providing options for the `scrollTo()` method.\n     */\n    type ScrollToOptions = {\n        /**\n         * Indicates whether to scroll with an animation. Defaults to `true`.\n         */\n        scrollAnimation: boolean;\n    };\n    /**\n     * An object containing the size of the viewable area of the current browser window.\n     */\n    type WindowSize = {\n        /**\n         * The height of the window.\n         */\n        height: number;\n        /**\n         * The width of the window.\n         */\n        width: number;\n    };\n    /**\n     * An object returned by the `getBoundingRect()` function that contains information about the window's size, the document's size, and the current scroll position.\n     */\n    type WindowSizeInfo = {\n        /**\n         * An object containing the size of the viewable area of the current browser window.\n         */\n        window: wix_window.WindowSize;\n        /**\n         * An object containing the size of the actual body of the page, which may be larger or smaller than the current window.\n         */\n        document: wix_window.DocumentSize;\n        /**\n         * An object containing the scroll offset of the page within the window from the top-left corner.\n         */\n        scroll: wix_window.ScrollOffset;\n    };\n    /**\n     * Objects used when calling the [`trackEvent()`](wix-window.html#trackEvent) function.\n     */\n    type trackingParameters = {\n        /**\n         * Object used for `AddPaymentInfo` events.\n         */\n        AddPaymentInfoEvent?: wix_window.trackingParametersAddPaymentInfoEvent;\n        /**\n         * Object used for `AddProductImpression` events.\n         */\n        AddProductImpressionEvent?: wix_window.trackingParametersAddProductImpressionEvent;\n        /**\n         * Object used for `AddToCart` events.\n         */\n        AddToCartEvent?: wix_window.trackingParametersAddToCartEvent;\n        /**\n         * Object used for `CheckoutStep` events.\n         */\n        CheckoutStepEvent?: wix_window.trackingParametersCheckoutStepEvent;\n        /**\n         * Object used for `ClickProduct` events.\n         */\n        ClickProductEvent?: wix_window.trackingParametersClickProductEvent;\n        /**\n         * Object used for `InitiateCheckout` events.\n         */\n        InitiateCheckoutEvent?: wix_window.trackingParametersInitiateCheckoutEvent;\n        /**\n         * Object used for `Lead` events.\n         */\n        LeadEvent?: wix_window.trackingParametersLeadEvent;\n        /**\n         * Object used for `Purchase` events.\n         */\n        PurchaseEvent?: wix_window.trackingParametersPurchaseEvent;\n        /**\n         * Object used for `RemoveFromCart` events.\n         */\n        RemoveFromCartEvent?: wix_window.trackingParametersRemoveFromCartEvent;\n        /**\n         * Object used for `StartPayment` events.\n         */\n        StartPaymentEvent?: wix_window.trackingParametersStartPaymentEvent;\n        /**\n         * Object used for `ViewContent` events.\n         */\n        ViewContentEvent?: wix_window.trackingParametersViewContentEvent;\n        /**\n         * Object used for custom events.\n         */\n        CustomEvent?: wix_window.trackingParametersCustomEvent;\n    };\n    /**\n     * An object used when sending an `AddPaymentInfo` track event.\n     */\n    type trackingParametersAddPaymentInfoEvent = {\n        /**\n         * Event origin. For example, `Music Player` or `Contact Form`.\n         */\n        origin?: string;\n        /**\n         * Payment type. For example, `Visa` or `PayPal`.\n         */\n        option?: string;\n    };\n    /**\n     * An object used when sending an AddProductImpression track event.\n     */\n    type trackingParametersAddProductImpressionEvent = {\n        /**\n         * Event origin. For example, `Music Player` or `Contact Form`.\n         */\n        origin?: string;\n        /**\n         * `key:value` pairs describing the products.\n         */\n        contents: wix_window.trackingParametersAddProductImpressionEventContents[];\n    };\n    /**\n     * An object used when sending an AddProductImpression track event.\n     */\n    type trackingParametersAddProductImpressionEventContents = {\n        /**\n         * Product ID.\n         */\n        id?: string;\n        /**\n         * Stock-keeping unit for the product.\n         */\n        sku?: string;\n        /**\n         * Product name.\n         */\n        name: string;\n        /**\n         * Product category. For example, `Accessories/Watches`.\n         */\n        category?: string;\n        /**\n         * Product price.\n         */\n        price?: number;\n        /**\n         * Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `EUR`, `USD`, or `CAD`.\n         */\n        currency?: string;\n        /**\n         * Brand name of the product.\n         */\n        brand?: string;\n        /**\n         * Product variant such as `green` or `large`.\n         */\n        variant?: string;\n        /**\n         * List or collection the product is part of. For example, `Product Gallery` or `Search Results`.\n         */\n        list?: string;\n        /**\n         * Position of the product within a list or collection.\n         */\n        position?: string;\n    };\n    /**\n     * An object used when sending an AddToCart track event.\n     */\n    type trackingParametersAddToCartEvent = {\n        /**\n         * Event origin. For example, `Music Player` or `Contact Form`.\n         */\n        origin?: string;\n        /**\n         * Product ID.\n         */\n        id?: string;\n        /**\n         * Stock-keeping unit for the product.\n         */\n        sku?: string;\n        /**\n         * Product name.\n         */\n        name: string;\n        /**\n         * Product price.\n         */\n        price?: number;\n        /**\n         * Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `EUR`, `USD`, or `CAD`.\n         */\n        currency?: string;\n        /**\n         * Product category. For example, `Accessories/Watches`.\n         */\n        category?: string;\n        /**\n         * Brand name of the product.\n         */\n        brand?: string;\n        /**\n         * Product variant such as `green` or `large`.\n         */\n        variant?: string;\n        /**\n         * List or collection the product is part of. For example, `Product Gallery` or `Search Results`.\n         */\n        position?: string;\n        /**\n         * Product quantity.\n         */\n        quantity?: number;\n    };\n    /**\n     * An object used when sending an CheckoutStep track event.\n     */\n    type trackingParametersCheckoutStepEvent = {\n        /**\n         * Event origin. For example, `Music Player` or `Contact Form`.\n         */\n        origin?: string;\n        /**\n         * Number of the step in the checkout process.\n         * For example `2` for `addPaymentInfo` in a checkout flow that consists of the steps `StartPayment`, `addPaymentInfo`, and `Select Shipping`.\n         */\n        step?: string;\n        /**\n         * Action the visitor has taken in this step. For example, `Select Shipping`.\n         */\n        action?: string;\n        /**\n         * Option information on the checkout page. For example the selected payment method.\n         */\n        option?: string;\n    };\n    /**\n     * An object used when sending a ClickProduct track event.\n     */\n    type trackingParametersClickProductEvent = {\n        /**\n         * Event origin. For example, `Music Player` or `Contact Form`.\n         */\n        origin?: string;\n        /**\n         * Product ID.\n         */\n        id?: string;\n        /**\n         * Stock-keeping unit for the product.\n         */\n        sku?: string;\n        /**\n         * Product name.\n         */\n        name: string;\n        /**\n         * Product price.\n         */\n        price?: number;\n        /**\n         * Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `EUR`, `USD`, or `CAD`.\n         */\n        currency?: string;\n        /**\n         * Product category. For example, `Accessories/Watches`.\n         */\n        category?: string;\n        /**\n         * Brand name of the product.\n         */\n        brand?: string;\n        /**\n         * Product variant such as `green` or `large`.\n         */\n        variant?: string;\n        /**\n         * List or collection the product is part of. For example, `Product Gallery` or `Search Results`.\n         */\n        list?: string;\n        /**\n         * Position of the product within a list or collection.\n         */\n        position?: string;\n    };\n    /**\n     * An object used when sending a CustomEvent track event.\n     */\n    type trackingParametersCustomEvent = {\n        /**\n         * Event category. **Note:** Required for Google Analytics and Facebook Pixel.\n         */\n        eventCategory?: string;\n        /**\n         * Event action type. **Note:** Required for Google Analytics and Facebook Pixel.\n         */\n        eventAction?: string;\n        /**\n         * Event label.\n         */\n        eventLabel?: string;\n        /**\n         * Event value.\n         */\n        eventValue?: number;\n        /**\n         * Any number of custom properties.\n         */\n        \"*\"?: wix_window.CustomType;\n    };\n    /**\n     * An object used when sending an InitiateCheckout track event.\n     */\n    type trackingParametersInitiateCheckoutEvent = {\n        /**\n         * Event origin. For example, `Music Player` or `Contact Form`.\n         */\n        origin?: string;\n        /**\n         * `key:value` pairs describing the products.\n         */\n        contents: wix_window.trackingParametersInitiateCheckoutEventContents[];\n    };\n    /**\n     * An object used when sending an InitiateCheckout track event.\n     */\n    type trackingParametersInitiateCheckoutEventContents = {\n        /**\n         * Product ID.\n         */\n        id?: string;\n        /**\n         * Stock-keeping unit for the product.\n         */\n        sku?: string;\n        /**\n         * Product name.\n         */\n        name: string;\n        /**\n         * Product category. For example, `Accessories/Watches`.\n         */\n        category?: string;\n        /**\n         * Product price.\n         */\n        price?: number;\n        /**\n         * Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `EUR`, `USD`, or `CAD`.\n         */\n        currency?: string;\n        /**\n         * Brand name of the product.\n         */\n        brand?: string;\n        /**\n         * Product variant such as `green` or `large`.\n         */\n        variant?: string;\n        /**\n         * Product quantity.\n         */\n        quantity?: number;\n    };\n    /**\n     * An object used when sending a Lead track event.\n     */\n    type trackingParametersLeadEvent = {\n        /**\n         * Lead category.\n         */\n        category?: string;\n        /**\n         * Lead action.\n         */\n        action?: string;\n        /**\n         * Lead label.\n         */\n        label?: string;\n    };\n    /**\n     * An object used when sending a Purchase track event.\n     */\n    type trackingParametersPurchaseEvent = {\n        /**\n         * Event origin. For example, `Music Player` or `Contact Form`.\n         */\n        origin?: string;\n        /**\n         * Transaction ID or order number.\n         */\n        id?: string;\n        /**\n         * Store name.\n         */\n        affiliation?: string;\n        /**\n         * Total purchase price. Includes tax and shipping fee.\n         */\n        revenue?: number;\n        /**\n         * Total tax.\n         */\n        tax?: number;\n        /**\n         * Shipping fee.\n         */\n        shipping?: number;\n        /**\n         * Applied coupon code.\n         */\n        coupon?: string;\n        /**\n         * `key:value` pairs describing the purchased products.\n         */\n        contents: wix_window.trackingParametersPurchaseEventContents[];\n    };\n    /**\n     * An object used when sending an Purchase track event.\n     */\n    type trackingParametersPurchaseEventContents = {\n        /**\n         * Product ID.\n         */\n        id?: string;\n        /**\n         * Product name.\n         */\n        name: string;\n        /**\n         * Product category. For example, `Accessories/Watches`.\n         */\n        category?: string;\n        /**\n         * Product price.\n         */\n        price?: number;\n        /**\n         * Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `EUR`, `USD`, or `CAD`.\n         */\n        currency?: string;\n        /**\n         * Brand name of the product.\n         */\n        brand?: string;\n        /**\n         * Product variant such as `green` or `large`.\n         */\n        variant?: string;\n        /**\n         * Product quantity.\n         */\n        quantity?: number;\n    };\n    /**\n     * An object used when sending a RemoveFromCart track event.\n     */\n    type trackingParametersRemoveFromCartEvent = {\n        /**\n         * Event origin. For example, `Music Player` or `Contact Form`.\n         */\n        origin?: string;\n        /**\n         * Product ID.\n         */\n        id?: string;\n        /**\n         * Product name.\n         */\n        name: string;\n        /**\n         * Product price.\n         */\n        price?: number;\n        /**\n         * Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `EUR`, `USD`, or `CAD`.\n         */\n        currency?: string;\n        /**\n         * Product category. For example, `Accessories/Watches`.\n         */\n        category?: string;\n        /**\n         * Brand name of the product.\n         */\n        brand?: string;\n        /**\n         * Product variant such as `green` or `large`.\n         */\n        variant?: string;\n        /**\n         * Position of the product within a list or collection.\n         */\n        position?: string;\n        /**\n         * Product quantity.\n         */\n        quantity?: number;\n    };\n    /**\n     * An object used when sending an StartPayment track event.\n     */\n    type trackingParametersStartPaymentEvent = {\n        /**\n         * Event origin. For example, `Music Player` or `Contact Form`.\n         */\n        origin?: string;\n        /**\n         * Payment type. For example, `Visa` or `PayPal`.\n         */\n        option?: string;\n    };\n    /**\n     * An object used when sending a ViewContent track event.\n     */\n    type trackingParametersViewContentEvent = {\n        /**\n         * Event origin. For example, `Music Player` or `Contact Form`.\n         */\n        origin?: string;\n        /**\n         * Product ID.\n         */\n        id?: string;\n        /**\n         * Stock-keeping unit for the product.\n         */\n        sku?: string;\n        /**\n         * Product name.\n         */\n        name: string;\n        /**\n         * Product price.\n         */\n        price?: number;\n        /**\n         * Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `EUR`, `USD`, or `CAD`.\n         */\n        currency?: string;\n        /**\n         * Product category. For example, `Accessories/Watches`.\n         */\n        category?: string;\n        /**\n         * Brand name of the product.\n         */\n        brand?: string;\n        /**\n         * Product variant such as `green` or `large`.\n         */\n        variant?: string;\n        /**\n         * List or collection the product is part of. For example, `Product Gallery` or `Search Results`.\n         */\n        list?: string;\n        /**\n         * Position of the product within a list or collection.\n         */\n        position?: string;\n    };\n}\ndeclare namespace wix_animations {\n    /**\n     * An animation timeline.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-animations.TimeLine.html#)\n     */\n    interface TimeLine {\n        /**\n         * Adds an animation to a timeline.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-animations.TimeLine.html#add)\n         */\n        add(target: $w.Element | $w.Element[], animation: wix_animations.TimeLine.AnimationAttributes | wix_animations.TimeLine.AnimationAttributes[], offset?: number | string): wix_animations.TimeLine;\n        /**\n         * Sets an event handler that runs when the timeline completes playing.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-animations.TimeLine.html#onComplete)\n         */\n        onComplete(handler: Function): wix_animations.TimeLine;\n        /**\n         * Sets an event handler that runs when a the timeline repeats.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-animations.TimeLine.html#onRepeat)\n         */\n        onRepeat(handler: Function): wix_animations.TimeLine;\n        /**\n         * Sets an event handler that runs when the timeline completes playing\n         *  in the reverse direction.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-animations.TimeLine.html#onReverseComplete)\n         */\n        onReverseComplete(handler: Function): wix_animations.TimeLine;\n        /**\n         * Sets an event handler that runs when the timeline starts playing.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-animations.TimeLine.html#onStart)\n         */\n        onStart(handler: Function): wix_animations.TimeLine;\n        /**\n         * Pauses a timeline.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-animations.TimeLine.html#pause)\n         */\n        pause(): wix_animations.TimeLine;\n        /**\n         * Plays a timeline forwards.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-animations.TimeLine.html#play)\n         */\n        play(): wix_animations.TimeLine;\n        /**\n         * Replays a timeline.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-animations.TimeLine.html#replay)\n         */\n        replay(): wix_animations.TimeLine;\n        /**\n         * Plays a timeline in reverse.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-animations.TimeLine.html#reverse)\n         */\n        reverse(): wix_animations.TimeLine;\n    }\n    namespace TimeLine {\n        /**\n         * An object representing the attributes of an animation in an timeline.\n         */\n        type AnimationAttributes = {\n            /**\n             * Animation duration in milliseconds.\n             */\n            duration: number;\n            /**\n             * Number of milliseconds to delay before beginning the animation.\n             */\n            delay?: number;\n            /**\n             * Target opacity of the animated element or elements, from 0.0 to 1.0.\n             */\n            opacity?: number;\n            /**\n             * The target degree to rotate to, where a complete rotation\n             *  is 360 degrees.\n             *\n             *  Note that the starting orientation of each element is determined by the rotation set in the\n             *  Editor. If you did not rotate the element in the Editor, it begins at 0 degrees.\n             *\n             *  The direction of the rotation is determined by the current orientation of the animated\n             *  element or elements, the target degree specified by the `rotate` attribute, and, optionally,\n             *  the specified `rotateDirection` attribute.\n             *\n             *  + If the target degree is greater than the current rotation degree, the animation\n             *    rotates clockwise.\n             *\n             *    For example, if an element starts at 0 degrees and `rotate` is `540`, it rotates clockwise\n             *    one and a half rotations. Similarly, if an element starts at -540 degrees and `rotate` is `0`,\n             *    it also rotates clockwise one and a half rotations.\n             *  + If the target degree is less than the current rotation degree, the animation\n             *    rotates counterclockwise.\n             *\n             *    For example, if an element starts at 0 degrees and `rotate` is `-540`, it rotates counterclockwise\n             *    one and a half rotations. Similarly, if an element starts a 540 degrees and `rotate` is `0`,\n             *    it also rotates counterclockwise one and a half rotations.\n             *  + If a `rotateDirection` value is specified, that direction overrides the rules listed\n             *    above.\n             *\n             *\n             *  The `rotate` value is specified using one of the following formats:\n             *\n             *  + A number to specify the target degree to rotate to.\n             *  + A `\"+=X\"` expression to specify a target degree is `X` number of degrees greater\n             *    than the current orientation.\n             *\n             *    For example, if the current orientation is 540 degrees and `rotate` is `\"+=90\"`,\n             *    the target degree is 630 and the rotation will be a quarter turn clockwise,\n             *    unless the direction is overridden by specifying a `rotateDirection` value.\n             *  + A `\"-=X\"` expression to specify a target degree is `X` number of degrees less\n             *    than the current orientation.\n             *\n             *    For example, if the current orientation is 540 degrees and `rotate` is `\"-=90\"`,\n             *    the target degree is 450 and the rotation will be a quarter turn counterclockwise,\n             *    unless the direction is overridden by specifying a `rotateDirection` value.\n             */\n            rotate?: number | string;\n            /**\n             * Direction in which to rotate. Overrides the\n             *  default rotation direction as explained in the `rotate` property.\n             *\n             *  Either `\"cw\"` to rotate clockwise or `\"ccw\"` to rotate counterclockwise.\n             */\n            rotateDirection?: string;\n            /**\n             * Target scale of the animated element or elements, where\n             *  `1` is the original size.\n             *\n             *  For example, if `scale` is `.5`, the animated element or elements will shrink to\n             *  half their original sizes and if `scale` is `2`, the animated element or elements\n             *  will grow to double their original sizes.\n             */\n            scale?: number;\n            /**\n             * Target horizontal scale of the animated element or elements.\n             *\n             *  If a `scale` value is set, also setting a `scaleX` value overrides the horizontal\n             *  scaling set use `scale`.\n             */\n            scaleX?: number;\n            /**\n             * Target vertical scale of the animated element or elements.\n             *\n             *  If a `scale` value is set, also setting a `scaleY` value overrides the vertical\n             *  scaling set use `scale`.\n             */\n            scaleY?: number;\n            /**\n             * Horizontal pixel target to move the element or elements\n             *  to horizontally.\n             *\n             *  One of the following formats:\n             *\n             *  + A positive number to specify a target pixel to the right, relative to the\n             *    original position.\n             *  + A negative number to specify a target pixel to the left, relative to the\n             *    original position.\n             *  + A `\"+=\"` expression to specify a target pixel to the right, relative to the\n             *    last animated position. For example, `\"+=100\"` moves 100 pixels to the right\n             *    of wherever the element or elements are positioned when this specific animation\n             *    begins.\n             *  + A `\"-=\"` expression to specify a target pixel to the left, relative to the\n             *    last animated position. For example, `\"-=100\"` moves 100 pixels to the left\n             *    of wherever the element or elements are positioned when this specific animation\n             *    begins.\n             */\n            x?: number | string;\n            /**\n             * Vertical pixel target to move the element or elements\n             *  to vertically.\n             *\n             *  One of the following formats:\n             *\n             *  + A positive number to specify a target pixel down, relative to the\n             *    original position.\n             *  + A negative number to specify a target pixel up, relative to the\n             *    original position.\n             *  + A `\"+=\"` expression to specify a target pixel down, relative to the\n             *    last animated position. For example, `\"+=100\"` moves 100 pixels down\n             *    from wherever the element or elements are positioned when this specific animation\n             *    begins.\n             *  + A `\"-=\"` expression to specify a target pixel up, relative to the\n             *    last animated position.For example, `\"-=100\"` moves 100 pixels up\n             *    from wherever the element or elements are positioned when this specific animation\n             *    begins.\n             */\n            y?: number | string;\n            /**\n             * The animation motion acceleration or deceleration. Specifies\n             * the rate of change of the animation attributes over time.\n             *\n             * One of:\n             *\n             *\n             * | Ease In | Ease Out | Ease In-Out |\n             * |---|---|---|\n             * | `\"easeInSine\"` ![Ease In Sine](images/easeInSine.png \"Ease In Sine\") | `\"easeOutSine\"` ![Ease Out Sine](images/easeOutSine.png \"Ease Out Sine\") | `\"easeInOutSine\"` ![Ease In Sine](images/easeInOutSine.png \"Ease In-Out Sine\") |\n             * | `\"easeInQuad\"` ![Ease In Quad](images/easeInQuad.png \"Ease In Quad\") | `\"easeOutQuad\"` ![Ease Out Quad](images/easeOutQuad.png \"Ease Out Quad\") | `\"easeInOutQuad\"` ![Ease In-Out Quad](images/easeInOutQuad.png \"Ease In-Out Quad\") |\n             * | `\"easeInCubic\"` ![Ease In Cubic](images/easeInCubic.png \"Ease In Cubic\") | `\"easeOutCubic\"` ![Ease Out Cubic](images/easeOutCubic.png \"Ease Out Cubic\") | `\"easeInOutCubic\"` ![Ease In-Out Cubic](images/easeInOutCubic.png \"Ease In-Out Cubic\") |\n             * | `\"easeInQuart\"` ![Ease In Quart](images/easeInQuart.png \"Ease In Quart\") | `\"easeOutQuart\"` ![Ease Out Quart](images/easeOutQuart.png \"Ease Out Quart\") | `\"easeInOutQuart\"` ![Ease In-Out Quart](images/easeInOutQuart.png \"Ease In-Out Quart\") |\n             * | `\"easeInQuint\"` ![Ease In Quint](images/easeInQuint.png \"Ease In Quint\") | `\"easeOutQuint\"` ![Ease Out Quint](images/easeOutQuint.png \"Ease Out Quint\") | `\"easeInOutQuint\"` ![Ease In-Out Quint](images/easeInOutQuint.png \"Ease In-Out Quint\") |\n             * | `\"easeInExpo\"` ![Ease In Expo](images/easeInExpo.png \"Ease In Expo\") | `\"easeOutExpo\"` ![Ease Out Expo](images/easeOutExpo.png \"Ease Out Expo\") | `\"easeInOutExpo\"` ![Ease In-Out Expo](images/easeInOutExpo.png \"Ease In-Out Expo\") |\n             * | `\"easeInCirc\"` ![Ease In Circ](images/easeInCirc.png \"Ease In Circ\") | `\"easeOutCirc\"` ![Ease Out Circ](images/easeOutCirc.png \"Ease Out Circ\") | `\"easeInOutCirc\"` ![Ease In-Out Circ](images/easeInOutCirc.png \"Ease In-Out Circ\") |\n             * | `\"easeInBack\"` ![Ease In Back](images/easeInBack.png \"Ease In Back\") | `\"easeOutBack\"` ![Ease Out Back](images/easeOutBack.png \"Ease Out Back\") | `\"easeInOutBack\"` ![Ease In-Out Back](images/easeInOutBack.png \"Ease In-Out Back\") |\n             * | `\"easeInElastic\"` ![Ease In Elastic](images/easeInElastic.png \"Ease In Elastic\") | `\"easeOutElastic\"` ![Ease Out Elastic](images/easeOutElastic.png \"Ease Out Elastic\") | `\"easeInOutElastic\"` ![Ease In-Out Elastic](images/easeInOutElastic.png \"Ease In-Out Elastic\") |\n             * | `\"easeInBounce\"` ![Ease In Bounce](images/easeInBounce.png \"Ease In Bounce\") | `\"easeOutBounce\"` ![Ease Out Bounce](images/easeOutBounce.png \"Ease Out Bounce\") | `\"easeInOutBounce\"` ![Ease In-Out Bounce](images/easeInOutBounce.png \"Ease In-Out Bounce\") |\n             * | `\"easeLinear\"` ![Ease Linear](images/easeLinear.png \"Ease Linear\") | | |\n             *\n             *\n             * Defaults to `\"easeInSine\"`.\n             */\n            easing?: string;\n        };\n    }\n    /**\n     * An object containing options for creating a timeline.\n     */\n    type TimeLineOptions = {\n        /**\n         * Number of times the timeline repeats after it\n         *  finishes playing all the animations in the timeline once.\n         *\n         *  For example, if `repeat` is `2`, the timeline plays a total of 3 times,\n         *  the initial play plus 2 repetitions.\n         *\n         *  To repeat infinitely, pass a `repeat` value of `-1`.\n         *\n         *  Defaults to `0`, meaning the timeline plays only once.\n         */\n        repeat?: number;\n        /**\n         * Number of milliseconds to wait between\n         *  repetitions.\n         *\n         *  For example, if `repeat` is `2` and `repeatDelay` is `1000`, the timeline plays\n         *  the initial play, then waits for 1 second before it plays again, and then waits\n         *  1 second again before the final play.\n         *\n         *  Defaults to `0`, meaning the each repetition plays immediately after the one\n         *  that preceded it.\n         */\n        repeatDelay?: number;\n        /**\n         * Whether to reverse the animation play for each successive\n         *  repetition.\n         *\n         *  For example, if `repeat` is `2` and the timeline contains the animations **A**,\n         *  **B**, and **C** to be played one after the other, the animations will play in\n         *  the following order:\n         *\n         *  + If `yoyo` is `false`:\n         *\n         *    **A** -> **B** -> **C** -> **A** -> **B** -> **C** -> **A** -> **B** -> **C**\n         *  + If `yoyo` is `true`:\n         *\n         *    **A** -> **B** -> **C** -> **C** -> **B** -> **A** -> **A** -> **B** -> **C**\n         *\n         *\n         *  Defaults to `false`.\n         */\n        yoyo?: boolean;\n    };\n}\ndeclare namespace wix_billing_backend {\n    /**\n     * Events that are fired by actions relating to billing.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-billing-backend.Events.html#)\n     */\n    interface Events {\n        /**\n         * An event that fires when an invoice is created.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-billing-backend.Events.html#onInvoiceCreated)\n         */\n        onInvoiceCreated(event: wix_billing_backend.Invoices.Invoice): void;\n        /**\n         * An event that fires when an invoice is overdue.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-billing-backend.Events.html#onInvoiceOverdue)\n         */\n        onInvoiceOverdue(event: wix_billing_backend.Invoices.Invoice): void;\n        /**\n         * An event that fires when an invoice is paid.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-billing-backend.Events.html#onInvoicePaid)\n         */\n        onInvoicePaid(event: wix_billing_backend.Invoices.Invoice): void;\n        /**\n         * An event that fires when an invoice is sent.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-billing-backend.Events.html#onInvoiceSent)\n         */\n        onInvoiceSent(event: wix_billing_backend.Invoices.Invoice): void;\n        /**\n         * An event that fires when a price quote is accepted.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-billing-backend.Events.html#onPriceQuoteAccepted)\n         */\n        onPriceQuoteAccepted(event: wix_billing_backend.PriceQuotes.PriceQuote): void;\n        /**\n         * An event that fires when a price quote is created.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-billing-backend.Events.html#onPriceQuoteCreated)\n         */\n        onPriceQuoteCreated(event: wix_billing_backend.PriceQuotes.PriceQuote): void;\n        /**\n         * An event that fires when a price quote has expired.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-billing-backend.Events.html#onPriceQuoteExpired)\n         */\n        onPriceQuoteExpired(event: wix_billing_backend.PriceQuotes.PriceQuote): void;\n        /**\n         * An event that fires when a price quote is sent.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-billing-backend.Events.html#onPriceQuoteSent)\n         */\n        onPriceQuoteSent(event: wix_billing_backend.PriceQuotes.PriceQuote): void;\n    }\n    /**\n     * The wix-billing-backend module contains functionality for working with\n     *  [your site's invoices](https://support.wix.com/en/article/about-wix-invoices)\n     *  from backend code.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-billing-backend.Invoices.html#)\n     */\n    interface Invoices {\n        /**\n         * Adds a payment to the invoice and reports the payment to the payment provider.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-billing-backend.Invoices.html#addPayment)\n         */\n        addPayment(id: wix_billing_backend.Invoices.IdAndVersion, payment: wix_billing_backend.Invoices.Payment): Promise<wix_billing_backend.Invoices.Response>;\n        /**\n         * Creates a new invoice.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-billing-backend.Invoices.html#createInvoice)\n         */\n        createInvoice(invoiceFields: wix_billing_backend.Invoices.InvoiceFields): Promise<wix_billing_backend.Invoices.Response>;\n        /**\n         * Creates a link that can be used by a customer to preview the invoice.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-billing-backend.Invoices.html#createInvoicePreviewUrl)\n         */\n        createInvoicePreviewUrl(id: wix_billing_backend.Invoices.IdAndVersion, options?: wix_billing_backend.Invoices.AuthOptions): Promise<string>;\n        /**\n         * Deletes an invoice by ID.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-billing-backend.Invoices.html#deleteInvoice)\n         */\n        deleteInvoice(id: string): Promise<void>;\n        /**\n         * Gets an existing invoice by ID.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-billing-backend.Invoices.html#getInvoice)\n         */\n        getInvoice(id: string): Promise<wix_billing_backend.Invoices.Invoice>;\n        /**\n         * Sends an invoice preview link to a customer via email.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-billing-backend.Invoices.html#sendInvoice)\n         */\n        sendInvoice(id: wix_billing_backend.Invoices.IdAndVersion, emailInfo: wix_billing_backend.Invoices.EmailInfo): Promise<void>;\n        /**\n         * Update an existing invoice.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-billing-backend.Invoices.html#updateInvoice)\n         */\n        updateInvoice(id: wix_billing_backend.Invoices.IdAndVersion, invoiceFields: wix_billing_backend.Invoices.InvoiceFields, fieldMask?: string[]): Promise<wix_billing_backend.Invoices.Response>;\n        /**\n         * Voids an invoice.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-billing-backend.Invoices.html#voidInvoice)\n         */\n        voidInvoice(id: wix_billing_backend.Invoices.IdAndVersion): Promise<void>;\n    }\n    namespace Invoices {\n        /**\n         * An object that contains address information.\n         */\n        type Address = {\n            /**\n             * Address line.\n             */\n            addressLine?: string;\n            /**\n             * Secondary address line.\n             */\n            addressLine2?: string;\n            /**\n             * Address subdivision.\n             */\n            subdivision?: string;\n            /**\n             * Address city.\n             */\n            city?: string;\n            /**\n             * Address postal code.\n             */\n            postalCode?: string;\n            /**\n             * Address street address.\n             */\n            streetAddress?: wix_billing_backend.Invoices.StreetAddress;\n            /**\n             * Address country.\n             */\n            country?: string;\n            /**\n             * Address in human readable format.\n             */\n            formatted?: string;\n        };\n        type AuthOptions = {\n            /**\n             * Prevents permission checks from running for the operation. Defaults to `false`.\n             */\n            suppressAuth: boolean;\n        };\n        /**\n         * An object that contains calculated tax information.\n         */\n        type CalculatedTax = {\n            /**\n             * Tax name.\n             */\n            name: string;\n            /**\n             * Tax rate.\n             */\n            rate: number;\n            /**\n             * Total value of taxable goods.\n             */\n            taxable: number;\n            /**\n             * Total amount of tax applied.\n             */\n            taxed: number;\n            /**\n             * Tax code.\n             */\n            code: string;\n        };\n        /**\n         * An object that contains customer information.\n         */\n        type Customer = {\n            /**\n             * Contact ID.\n             */\n            contactId: string;\n            /**\n             * Email address.\n             */\n            email: string;\n            /**\n             * Physical address.\n             */\n            address?: wix_billing_backend.Invoices.Address;\n            /**\n             * Physical billing address.\n             */\n            billingAddress?: wix_billing_backend.Invoices.Address;\n            /**\n             * Physical shipping address.\n             */\n            shippingAddress?: wix_billing_backend.Invoices.Address;\n            /**\n             * Phone number.\n             */\n            phone?: string;\n            /**\n             * Company name.\n             */\n            company?: string;\n            /**\n             * Company ID. Can be used to store company VAT ID.\n             */\n            companyId?: string;\n            /**\n             * Full name.\n             */\n            fullName?: string;\n            /**\n             * First name.\n             */\n            firstName?: string;\n            /**\n             * Last name.\n             */\n            lastName?: string;\n        };\n        /**\n         * An object that contains discount information.\n         */\n        type Discount = {\n            /**\n             * Discount amount.\n             */\n            value: number;\n            /**\n             * Discount type.\n             *\n             * Either:\n             *\n             * + `\"Fixed\"`: A fixed amount is deducted.\n             * + `\"Percentage\"`: A percentage of the total amount is deducted.\n             */\n            type: string;\n        };\n        /**\n         * An object that contains information used to send an invoice to a customer.\n         */\n        type EmailInfo = {\n            /**\n             * Email subject.\n             */\n            subject: string;\n            /**\n             * Email body. Limited formatting in the email body can be\n             * achieved using standard JavaScript string formatting.\n             */\n            body: string;\n        };\n        /**\n         * An object that contains ID and version information.\n         */\n        type IdAndVersion = {\n            /**\n             * Invoice ID.\n             */\n            id: string;\n            /**\n             * Invoice version.\n             */\n            version: number;\n        };\n        /**\n         * An object that represents an invoice.\n         */\n        type Invoice = {\n            /**\n             * ID and version of the invoice.\n             */\n            id: wix_billing_backend.Invoices.IdAndVersion;\n            /**\n             * Status of the invoice.\n             *  One of:\n             *\n             *  + `\"Draft\"`\n             *  + `\"Sent\"`\n             *  + `\"Processing\"`\n             *  + `\"Paid\"`\n             *  + `\"Overdue\"`\n             *  + `\"Void\"`\n             *  + `\"Deleted\"`\n             *  + `\"PartiallyPaid\"`\n             *  + `\"PartialAndOverdue\"`\n             */\n            status: string;\n            /**\n             * Number of the invoice, unique within your site.\n             */\n            number: string;\n            /**\n             * Title of the invoice.\n             */\n            title: string;\n            /**\n             * Currency code.\n             */\n            currency: string;\n            /**\n             * Locale information.\n             */\n            locale: wix_billing_backend.Invoices.Locale;\n            /**\n             * Customer listed on the invoice.\n             */\n            customer: wix_billing_backend.Invoices.Customer;\n            /**\n             * Line items listed on the invoice.\n             */\n            lineItems: wix_billing_backend.Invoices.LineItem[];\n            /**\n             * Discount included in the invoice.\n             */\n            discount: wix_billing_backend.Invoices.Discount;\n            /**\n             * List of payments already received from the customer.\n             */\n            payments: wix_billing_backend.Invoices.Payment[];\n            /**\n             * List of taxes calculated based on the line items.\n             */\n            taxes: wix_billing_backend.Invoices.CalculatedTax[];\n            /**\n             * Total values.\n             */\n            totals: wix_billing_backend.Invoices.TotalPrice;\n            /**\n             * Invoice dynamic totals.\n             */\n            dynamicTotals: wix_billing_backend.Invoices.InvoiceDynamicTotals;\n            /**\n             * Additional metadata included in the invoice.\n             */\n            metadata: wix_billing_backend.Invoices.MetaData;\n            /**\n             * Invoice company ID.\n             */\n            companyId: string;\n            /**\n             * Whether the invoice was sent to the customer.\n             */\n            wasSent: boolean;\n            /**\n             * Dates associated with the invoice.\n             */\n            dates: wix_billing_backend.Invoices.InvoiceDates;\n        };\n        /**\n         * An object that contains date information for an invoice.\n         */\n        type InvoiceDates = {\n            /**\n             * Invoice issue date.\n             */\n            issueDate: Date;\n            /**\n             * Invoice due date.\n             */\n            dueDate: Date;\n        };\n        /**\n         * An object that contains information about invoice totals that change when payments are received.\n         */\n        type InvoiceDynamicTotals = {\n            /**\n             * Amount paid.\n             */\n            paidAmount: number;\n            /**\n             * Balance amount.\n             */\n            balance: number;\n        };\n        /**\n         * An object that contains information used when creating or updating an invoice.\n         */\n        type InvoiceFields = {\n            /**\n             * Invoice ID, as a UUID.\n             */\n            id?: string;\n            /**\n             * Title of the invoice.\n             */\n            title: string;\n            /**\n             * Customer listed on the invoice.\n             */\n            customer: wix_billing_backend.Invoices.Customer;\n            /**\n             * Currency code.\n             */\n            currency: string;\n            /**\n             * Line items listed on the invoice.\n             */\n            lineItems: wix_billing_backend.Invoices.LineItem[];\n            /**\n             * Discount included in the invoice.\n             */\n            discount?: wix_billing_backend.Invoices.Discount;\n            /**\n             * Invoice payments.\n             */\n            payments: wix_billing_backend.Invoices.Payment[];\n            /**\n             * Invoice metadata.\n             */\n            metadata?: wix_billing_backend.Invoices.MetaData;\n            /**\n             * Dates associated with the invoice.\n             */\n            dates: wix_billing_backend.Invoices.InvoiceDates;\n        };\n        /**\n         * An object that contains itemized fee information.\n         */\n        type ItemizedFee = {\n            /**\n             * Item fee name.\n             */\n            name: string;\n            /**\n             * Item fee price.\n             */\n            price: number;\n        };\n        /**\n         * An object that contains line item information.\n         */\n        type LineItem = {\n            /**\n             * Line item ID.\n             */\n            id: string;\n            /**\n             * Line item name.\n             */\n            name: string;\n            /**\n             * Line item description.\n             */\n            description: string;\n            /**\n             * Line item price.\n             */\n            price: number;\n            /**\n             * Line item quantity.\n             */\n            quantity: number;\n            /**\n             * Line item taxes.\n             */\n            taxes?: wix_billing_backend.Invoices.LineItemTax[];\n        };\n        /**\n         * An object that contains tax information for a line item.\n         */\n        type LineItemTax = {\n            /**\n             * Line item tax name.\n             */\n            name: string;\n            /**\n             * Line item tax rate.\n             */\n            rate: number;\n            /**\n             * Line item tax code.\n             */\n            code: string;\n        };\n        /**\n         * An object that contains locale information.\n         */\n        type Locale = {\n            /**\n             * An IETF language tag.\n             * Some common language tags include:\n             *\n             * + `\"en-US\"`: English, United States\n             * + `\"en-GB\"`: English, British\n             * + `\"es-ES\"`: Spanish, Spain\n             * + `\"de-DE\"`: German, Germany\n             * + `\"ja-JP\"`: Japanese, Japan\n             * + `\"fr-CH\"`: French, Switzerland\n             * + `\"it-IT\"`: Italian, Italy\n             */\n            language: string;\n        };\n        /**\n         * An object that contains metadata information.\n         */\n        type MetaData = {\n            /**\n             * Invoice notes.\n             */\n            notes?: string;\n            /**\n             * Legal terms.\n             */\n            legalTerms?: string;\n            /**\n             * URL to legal terms.\n             */\n            sourceUrl?: string;\n            /**\n             * Source that triggered the action. For example, `\"stores\"`.\n             */\n            source?: string;\n            /**\n             * ID of the trigger source. For example, an order ID.\n             */\n            sourceRefId?: string;\n        };\n        /**\n         * An object that contains information about an invoice payment.\n         */\n        type Payment = {\n            /**\n             * Payment id.\n             */\n            id: string;\n            /**\n             * Payment type, describing how the payment was made.\n             */\n            type: string;\n            /**\n             * Payment amount.\n             */\n            amount: number;\n            /**\n             * Payment date.\n             */\n            date: Date;\n        };\n        /**\n         * An object that contains response information.\n         */\n        type Response = {\n            /**\n             * ID and version information.\n             */\n            id: wix_billing_backend.Invoices.IdAndVersion;\n        };\n        /**\n         * An object that contains street address information.\n         */\n        type StreetAddress = {\n            /**\n             * Street address information.\n             */\n            value: string;\n            /**\n             * Street address type. Either `\"Number\"` or `\"Name\"`.\n             */\n            type: string;\n        };\n        /**\n         * An object that contains price totals.\n         */\n        type TotalPrice = {\n            /**\n             * Discount amount.\n             */\n            discountAmount: number;\n            /**\n             * List of itemized fees.\n             */\n            fees: wix_billing_backend.Invoices.ItemizedFee[];\n            /**\n             * Sum of line item tax amounts.\n             */\n            taxedAmount: number;\n            /**\n             * Subtotal of the line items without the tax included.\n             */\n            subtotal: number;\n            /**\n             * Total price of the itemized fees and taxes.\n             */\n            total: number;\n        };\n    }\n    /**\n     * The wix-billing-backend module contains functionality for working with\n     *  your site's [price quotes](https://support.wix.com/en/article/wix-price-quotes-creating-and-sending-price-quotes-to-clients)\n     *  from backend code.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-billing-backend.PriceQuotes.html#)\n     */\n    interface PriceQuotes {\n        /**\n         * Creates a new price quote.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-billing-backend.PriceQuotes.html#createPriceQuote)\n         */\n        createPriceQuote(priceQuoteInfo: wix_billing_backend.PriceQuotes.PriceQuoteInfo): Promise<wix_billing_backend.PriceQuotes.Response>;\n        /**\n         * Deletes a price quote by ID.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-billing-backend.PriceQuotes.html#deletePriceQuote)\n         */\n        deletePriceQuote(id: string): Promise<void>;\n        /**\n         * Gets an existing price quote by ID.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-billing-backend.PriceQuotes.html#getPriceQuote)\n         */\n        getPriceQuote(id: string): Promise<wix_billing_backend.PriceQuotes.PriceQuote>;\n        /**\n         * Sends a price quote preview link to a customer via email.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-billing-backend.PriceQuotes.html#sendPriceQuote)\n         */\n        sendPriceQuote(id: wix_billing_backend.PriceQuotes.IdAndVersion, emailInfo: wix_billing_backend.PriceQuotes.EmailInfo): Promise<void>;\n        /**\n         * Updates an existing price quote.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-billing-backend.PriceQuotes.html#updatePriceQuote)\n         */\n        updatePriceQuote(id: wix_billing_backend.PriceQuotes.IdAndVersion, priceQuoteInfo: wix_billing_backend.PriceQuotes.PriceQuoteInfo, fieldMask?: string[]): Promise<wix_billing_backend.PriceQuotes.Response>;\n    }\n    namespace PriceQuotes {\n        /**\n         * An object that contains address information.\n         */\n        type Address = {\n            /**\n             * Address line.\n             */\n            addressLine?: string;\n            /**\n             * Secondary address line.\n             */\n            addressLine2?: string;\n            /**\n             * Address subdivision.\n             */\n            subdivision?: string;\n            /**\n             * Address city.\n             */\n            city?: string;\n            /**\n             * Address postal code.\n             */\n            postalCode?: string;\n            /**\n             * Address street address.\n             */\n            streetAddress?: wix_billing_backend.PriceQuotes.StreetAddress;\n            /**\n             * Address country.\n             */\n            country?: string;\n            /**\n             * Address in human readable format.\n             */\n            formatted?: string;\n        };\n        /**\n         * An object that contains calculated tax information.\n         */\n        type CalculatedTax = {\n            /**\n             * Tax name.\n             */\n            name: string;\n            /**\n             * Tax rate.\n             */\n            rate: number;\n            /**\n             * Total value of taxable goods.\n             */\n            taxable: number;\n            /**\n             * Total amount of tax applied.\n             */\n            taxed: number;\n            /**\n             * Tax code.\n             */\n            code: string;\n        };\n        /**\n         * An object that contains customer information.\n         */\n        type Customer = {\n            /**\n             * Contact ID.\n             */\n            contactId: string;\n            /**\n             * Email address.\n             */\n            email: string;\n            /**\n             * Physical address.\n             */\n            address?: wix_billing_backend.PriceQuotes.Address;\n            /**\n             * Physical billing address.\n             */\n            billingAddress?: wix_billing_backend.PriceQuotes.Address;\n            /**\n             * Physical shipping address.\n             */\n            shippingAddress?: wix_billing_backend.PriceQuotes.Address;\n            /**\n             * Phone number.\n             */\n            phone?: string;\n            /**\n             * Company name.\n             */\n            company?: string;\n            /**\n             * Company ID. Can be used to store company VAT ID.\n             */\n            companyId?: string;\n            /**\n             * Full name.\n             */\n            fullName?: string;\n            /**\n             * First name.\n             */\n            firstName?: string;\n            /**\n             * Last name.\n             */\n            lastName?: string;\n        };\n        /**\n         * An object that contains discount information.\n         */\n        type Discount = {\n            /**\n             * Discount amount.\n             */\n            value: number;\n            /**\n             * Discount type.\n             *\n             * Either:\n             *\n             * + `\"Fixed\"`: A fixed amount is deducted.\n             * + `\"Percentage\"`: A percentage of the total amount is deducted.\n             */\n            type: string;\n        };\n        /**\n         * An object that contains information used to send a price quote to a customer.\n         */\n        type EmailInfo = {\n            /**\n             * Email subject.\n             */\n            subject: string;\n            /**\n             * Email body. Limited formatting in the email body can be\n             * achieved using standard JavaScript string formatting.\n             */\n            body: string;\n        };\n        /**\n         * An object that contains ID and version information.\n         */\n        type IdAndVersion = {\n            /**\n             * Price quote ID.\n             */\n            id: string;\n            /**\n             * Price quote version.\n             */\n            version: number;\n        };\n        /**\n         * An object that contains itemized fee information.\n         */\n        type ItemizedFee = {\n            /**\n             * Item fee name.\n             */\n            name: string;\n            /**\n             * Item fee price.\n             */\n            price: number;\n        };\n        /**\n         * An object that contains line item information.\n         */\n        type LineItem = {\n            /**\n             * Line item ID.\n             */\n            id: string;\n            /**\n             * Line item name.\n             */\n            name: string;\n            /**\n             * Line item description.\n             */\n            description: string;\n            /**\n             * Line item price.\n             */\n            price: number;\n            /**\n             * Line item quantity.\n             */\n            quantity: number;\n            /**\n             * Line item taxes.\n             */\n            taxes?: wix_billing_backend.PriceQuotes.LineItemTax[];\n        };\n        /**\n         * An object that contains tax information for a line item.\n         */\n        type LineItemTax = {\n            /**\n             * Line item tax name.\n             */\n            name: string;\n            /**\n             * Line item tax rate.\n             */\n            rate: number;\n            /**\n             * Line item tax code.\n             */\n            code: string;\n        };\n        /**\n         * An object that contains locale information.\n         */\n        type Locale = {\n            /**\n             * An IETF language tag.\n             * Some common language tags include:\n             *\n             * + `\"en-US\"`: English, United States\n             * + `\"en-GB\"`: English, British\n             * + `\"es-ES\"`: Spanish, Spain\n             * + `\"de-DE\"`: German, Germany\n             * + `\"ja-JP\"`: Japanese, Japan\n             * + `\"fr-CH\"`: French, Switzerland\n             * + `\"it-IT\"`: Italian, Italy\n             */\n            language: string;\n        };\n        /**\n         * An object that contains metadata information.\n         */\n        type MetaData = {\n            /**\n             * Price quote notes.\n             */\n            notes?: string;\n            /**\n             * Legal terms.\n             */\n            legalTerms?: string;\n            /**\n             * URL to legal terms.\n             */\n            sourceUrl?: string;\n            /**\n             * Source that triggered the action. For example, `\"stores\"`.\n             */\n            source?: string;\n            /**\n             * ID of the trigger source. For example, an order ID.\n             */\n            sourceRefId?: string;\n        };\n        /**\n         * An object that contains information about price quote payment terms.\n         */\n        type PaymentTerms = {\n            /**\n             * Price quote term type.\n             *  One of:\n             *\n             *  + `\"DueOnReceipt\"`\n             *  + `\"NetPlus\"`\n             *  + `\"TimeStamp\"`\n             *  + `\"Other\"`\n             */\n            termType: string;\n            /**\n             * Term data. When `termType` is `\"NetPlus\"`,\n             *  `termData` contains a positive integer indicating how many days after the charge\n             *  payment is due.\n             */\n            termData?: string;\n        };\n        /**\n         * An object that represents a price quote.\n         */\n        type PriceQuote = {\n            /**\n             * ID and version of the price quote.\n             */\n            id: wix_billing_backend.PriceQuotes.IdAndVersion;\n            /**\n             * Status of the price quote.\n             *  One of:\n             *\n             *  + `\"Draft\"`\n             *  + `\"Sent\"`\n             *  + `\"Processing\"`\n             *  + `\"Accepted\"`\n             *  + `\"Rejected\"`\n             *  + `\"Expired\"`\n             *  + `\"Void\"`\n             *  + `\"Deleted\"`\n             *  + `\"Invoiced\"`\n             */\n            status: string;\n            /**\n             * Number of the price quote, unique within your site.\n             */\n            number: string;\n            /**\n             * Title of the price quote.\n             */\n            title: string;\n            /**\n             * Currency code.\n             */\n            currency: string;\n            /**\n             * Locale information.\n             */\n            locale: wix_billing_backend.PriceQuotes.Locale;\n            /**\n             * Customer listed on the price quote.\n             */\n            customer: wix_billing_backend.PriceQuotes.Customer;\n            /**\n             * Line items listed on the price quote.\n             */\n            lineItems: wix_billing_backend.PriceQuotes.LineItem[];\n            /**\n             * Discount included in the price quote.\n             */\n            discount: wix_billing_backend.PriceQuotes.Discount;\n            /**\n             * Payment terms.\n             */\n            paymentTerms: wix_billing_backend.PriceQuotes.PaymentTerms;\n            /**\n             * List of taxes calculated based on the line items.\n             */\n            taxes: wix_billing_backend.PriceQuotes.CalculatedTax[];\n            /**\n             * Total values.\n             */\n            totals: wix_billing_backend.PriceQuotes.TotalPrice;\n            /**\n             * Additional metadata included in the price quote.\n             */\n            metadata: wix_billing_backend.PriceQuotes.MetaData;\n            /**\n             * Price quote company ID.\n             */\n            companyId: string;\n            /**\n             * Price quote invoice ID, when converting price quote to invoice.\n             */\n            invoiceId: string;\n            /**\n             * Dates associated with the price quote.\n             */\n            dates: wix_billing_backend.PriceQuotes.PriceQuoteDates;\n        };\n        /**\n         * An object that contains date information for a price quote.\n         */\n        type PriceQuoteDates = {\n            /**\n             * Date the price quote was issued.\n             */\n            issueDate: Date;\n            /**\n             * Date that the price quote is valid until.\n             */\n            validThroughDate: Date;\n            /**\n             * Date the price quote was accepted.\n             */\n            acceptanceDate?: Date;\n            /**\n             * Date the price quote was last seen.\n             */\n            lastSeenDate?: Date;\n        };\n        /**\n         * An object that contains information used when creating or updating a price quote.\n         */\n        type PriceQuoteInfo = {\n            /**\n             * Price quote ID, as a UUID.\n             */\n            id?: string;\n            /**\n             * Title of the price quote.\n             */\n            title: string;\n            /**\n             * Customer listed on the price quote.\n             */\n            customer: wix_billing_backend.PriceQuotes.Customer;\n            /**\n             * Currency code.\n             */\n            currency: string;\n            /**\n             * Line items listed on the price quote.\n             */\n            lineItems: wix_billing_backend.PriceQuotes.LineItem[];\n            /**\n             * Discount included in the price quote.\n             */\n            discount?: wix_billing_backend.PriceQuotes.Discount;\n            /**\n             * Payment terms.\n             */\n            paymentTerms: wix_billing_backend.PriceQuotes.PaymentTerms;\n            /**\n             * Price quote metadata.\n             */\n            metadata?: wix_billing_backend.PriceQuotes.MetaData;\n            /**\n             * Dates associated with the price quote.\n             */\n            dates: wix_billing_backend.PriceQuotes.PriceQuoteDates;\n        };\n        /**\n         * An object that contains response information.\n         */\n        type Response = {\n            /**\n             * ID and version information.\n             */\n            id: wix_billing_backend.PriceQuotes.IdAndVersion;\n        };\n        /**\n         * An object that contains street address information.\n         */\n        type StreetAddress = {\n            /**\n             * Street address information.\n             */\n            value: string;\n            /**\n             * Street address type. Either `\"Number\"` or `\"Name\"`.\n             */\n            type: string;\n        };\n        /**\n         * An object that contains price totals.\n         */\n        type TotalPrice = {\n            /**\n             * Discount amount.\n             */\n            discountAmount: number;\n            /**\n             * List of itemized fees.\n             */\n            fees: wix_billing_backend.PriceQuotes.ItemizedFee[];\n            /**\n             * Sum of line item tax amounts.\n             */\n            taxedAmount: number;\n            /**\n             * Subtotal of the line items without the tax included.\n             */\n            subtotal: number;\n            /**\n             * Total price of the itemized fees and taxes.\n             */\n            total: number;\n        };\n    }\n}\ndeclare namespace wix_blog_backend.Categories {\n    /**\n     * [Read more](https://www.wix.com/corvid/reference/wix-blog-backend.Categories.CategoriesQueryBuilder.html#)\n     */\n    interface CategoriesQueryBuilder {\n        /**\n         * Adds a sort to a query, sorting by the specified properties in ascending order.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-blog-backend.Categories.CategoriesQueryBuilder.html#ascending)\n         */\n        ascending(propertyNames: Array<string>): wix_blog_backend.Categories.CategoriesQueryBuilder;\n        /**\n         * Adds a sort to a query, sorting by the specified properties in descending order.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-blog-backend.Categories.CategoriesQueryBuilder.html#descending)\n         */\n        descending(propertyNames: Array<string>): wix_blog_backend.Categories.CategoriesQueryBuilder;\n        /**\n         * Refines a query to match items where the specified property equals the specified value.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-blog-backend.Categories.CategoriesQueryBuilder.html#eq)\n         */\n        eq(propertyName: string, value: any): wix_blog_backend.Categories.CategoriesQueryBuilder;\n        /**\n         * Returns the filtered query results.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-blog-backend.Categories.CategoriesQueryBuilder.html#find)\n         */\n        find(): Promise<wix_blog_backend.Categories.CategoriesQueryResult>;\n        /**\n         * Refines a query to match items where the specified property is greater than or equal to the specified value.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-blog-backend.Categories.CategoriesQueryBuilder.html#ge)\n         */\n        ge(propertyName: string, value: any): wix_blog_backend.Categories.CategoriesQueryBuilder;\n        /**\n         * Refines a query to match items where the specified property is greater than the specified value.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-blog-backend.Categories.CategoriesQueryBuilder.html#gt)\n         */\n        gt(propertyName: string, value: any): wix_blog_backend.Categories.CategoriesQueryBuilder;\n        /**\n         * Refines a query to match items whose specified property contains any of the specified values.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-blog-backend.Categories.CategoriesQueryBuilder.html#hasSome)\n         */\n        hasSome(propertyName: string, value: Array<any>): wix_blog_backend.Categories.CategoriesQueryBuilder;\n        /**\n         * Refines a query to match items where the specified property is less than or equal to the specified value.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-blog-backend.Categories.CategoriesQueryBuilder.html#le)\n         */\n        le(propertyName: string, value: any): wix_blog_backend.Categories.CategoriesQueryBuilder;\n        /**\n         * Limits the number of items the query returns.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-blog-backend.Categories.CategoriesQueryBuilder.html#limit)\n         */\n        limit(limit: number): wix_blog_backend.Categories.CategoriesQueryBuilder;\n        /**\n         * Refines a query to match items where the specified property is less than the specified value.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-blog-backend.Categories.CategoriesQueryBuilder.html#lt)\n         */\n        lt(propertyName: string, value: any): wix_blog_backend.Categories.CategoriesQueryBuilder;\n        /**\n         * Refines a query to match items where the specified property doesn't equal the specified value.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-blog-backend.Categories.CategoriesQueryBuilder.html#ne)\n         */\n        ne(propertyName: string, value: any): wix_blog_backend.Categories.CategoriesQueryBuilder;\n        /**\n         * Sets the number of items to skip before returning query results.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-blog-backend.Categories.CategoriesQueryBuilder.html#skip)\n         */\n        skip(skip: number): wix_blog_backend.Categories.CategoriesQueryBuilder;\n        /**\n         * Refines a query to match items where the specified property starts with the specified value.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-blog-backend.Categories.CategoriesQueryBuilder.html#startsWith)\n         */\n        startsWith(propertyName: string, value: string): wix_blog_backend.Categories.CategoriesQueryBuilder;\n    }\n    /**\n     * [Read more](https://www.wix.com/corvid/reference/wix-blog-backend.Categories.CategoriesQueryResult.html#)\n     */\n    interface CategoriesQueryResult {\n        /**\n         * Returns the index of the current page of results.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-blog-backend.Categories.CategoriesQueryResult.html#currentPage)\n         */\n        currentPage: number;\n        /**\n         * Returns an array of `categories` items that match the query.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-blog-backend.Categories.CategoriesQueryResult.html#items)\n         */\n        items: Array<wix_blog_backend.Categories.Category>;\n        /**\n         * Returns the number of items in the current page of results.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-blog-backend.Categories.CategoriesQueryResult.html#length)\n         */\n        length: number;\n        /**\n         * Returns the requested page size.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-blog-backend.Categories.CategoriesQueryResult.html#pageSize)\n         */\n        pageSize: number;\n        /**\n         * Returns the `CategorysQueryBuilder` object used to get the current results.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-blog-backend.Categories.CategoriesQueryResult.html#query)\n         */\n        query: wix_blog_backend.Categories.CategoriesQueryBuilder;\n        /**\n         * Returns the total number of items that match the query.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-blog-backend.Categories.CategoriesQueryResult.html#totalCount)\n         */\n        totalCount: number;\n        /**\n         * Returns the total number of pages the query produced.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-blog-backend.Categories.CategoriesQueryResult.html#totalPages)\n         */\n        totalPages: number;\n        /**\n         * Indicates whether the query has more results.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-blog-backend.Categories.CategoriesQueryResult.html#hasNext)\n         */\n        hasNext(): boolean;\n        /**\n         * Indicates whether the query has previous results.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-blog-backend.Categories.CategoriesQueryResult.html#hasPrev)\n         */\n        hasPrev(): boolean;\n        /**\n         * Retrieves the next page of query results.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-blog-backend.Categories.CategoriesQueryResult.html#next)\n         */\n        next(): Promise<wix_blog_backend.Categories.CategoriesQueryResult>;\n        /**\n         * Retrieves the previous page of query results.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-blog-backend.Categories.CategoriesQueryResult.html#prev)\n         */\n        prev(): Promise<wix_blog_backend.Categories.CategoriesQueryResult>;\n    }\n}\ndeclare namespace wix_blog_backend {\n    /**\n     * [Read more](https://www.wix.com/corvid/reference/wix-blog-backend.Categories.html#)\n     */\n    interface Categories {\n        /**\n         * Gets a category by the specified ID.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-blog-backend.Categories.html#getCategory)\n         */\n        getCategory(categoryId: string, options: wix_blog_backend.Categories.GetCategoryOptions): Promise<wix_blog_backend.Categories.GetCategoryResponse>;\n        /**\n         * Gets a category by the specified slug.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-blog-backend.Categories.html#getCategoryBySlug)\n         */\n        getCategoryBySlug(slug: string, options: wix_blog_backend.Categories.GetCategoryBySlugOptions): Promise<wix_blog_backend.Categories.GetCategoryBySlugResponse>;\n        /**\n         * Retrieves a list of categories.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-blog-backend.Categories.html#listCategories)\n         */\n        listCategories(options: wix_blog_backend.Categories.ListCategoriesOptions): Promise<wix_blog_backend.Categories.ListCategoriesResponse>;\n        /**\n         * Creates a query to retrieve a list of categories.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-blog-backend.Categories.html#queryCategories)\n         */\n        queryCategories(): wix_blog_backend.Categories.CategoriesQueryBuilder;\n    }\n    namespace Categories {\n        type ApplicationError = {\n            code?: string;\n            data?: Object;\n            description?: string;\n        };\n        type BlogPaging = {\n            /**\n             * Pointer to the next or previous page in the list of results.\n             */\n            cursor?: string;\n            /**\n             * Number of items to return.\n             *\n             * Default: `50`\n             *\n             * Max: `100`\n             */\n            limit?: number;\n            /**\n             * Number of categories to skip in the list.\n             */\n            offset?: number;\n        };\n        type BulkActionMetadata = {\n            /**\n             * Number of items that couldn't be processed.\n             */\n            totalFailures?: number;\n            /**\n             * Number of items that were successfully processed.\n             */\n            totalSuccesses?: number;\n            /**\n             * Number of failures without details because detailed failure threshold was exceeded.\n             */\n            undetailedFailures?: number;\n        };\n        type BulkCategoryResult = {\n            /**\n             * Optional created category.\n             */\n            item?: wix_blog_backend.Categories.Category;\n            /**\n             * Bulk actions metadata for category.\n             */\n            itemMetadata?: wix_blog_backend.Categories.ItemMetadata;\n        };\n        type BulkCreateCategoriesOptions = {\n            /**\n             * List of additional category fields to include in the response. For example, use the `URL` fieldset to retrieve the url field in\n             * the response in addition to the category’s base fields. Base fields don’t include any of the supported fieldset values. By default\n             * only the category’s base fields are returned.\n             */\n            fieldsets?: Array<string>;\n            /**\n             * Whether to return the full created category entities in the response.\n             */\n            returnFullEntity?: boolean;\n        };\n        type BulkCreateCategoriesRequest = {\n            /**\n             * Categories to create.\n             */\n            categories: Array<wix_blog_backend.Categories.Category>;\n            /**\n             * List of additional category fields to include in the response. For example, use the `URL` fieldset to retrieve the url field in\n             * the response in addition to the category’s base fields. Base fields don’t include any of the supported fieldset values. By default\n             * only the category’s base fields are returned.\n             */\n            fieldsets?: Array<string>;\n            /**\n             * Whether to return the full created category entities in the response.\n             */\n            returnFullEntity?: boolean;\n        };\n        type BulkCreateCategoriesResponse = {\n            /**\n             * Bulk action metadata.\n             */\n            bulkActionMetadata?: wix_blog_backend.Categories.BulkActionMetadata;\n            /**\n             * Categories created by bulk action.\n             */\n            results?: Array<wix_blog_backend.Categories.BulkCategoryResult>;\n        };\n        type BulkUpdateCategoriesOptions = {\n            /**\n             * Field mask of fields to update.\n             */\n            fieldMask?: Array<string>;\n            /**\n             * List of category fields to be included in the response if the entities are present.\n             * Base default fieldset returns all core category properties (all properties that are not a supported fieldset value).\n             * For example,  when `URL` fieldset is selected, returned category will include the set of base properties and the category's preview url.\n             */\n            fieldsets?: Array<string>;\n            /**\n             * Whether to return the full created category entities in the response.\n             */\n            returnFullEntity?: boolean;\n        };\n        type BulkUpdateCategoriesRequest = {\n            /**\n             * Categories to update.\n             */\n            categories: Array<wix_blog_backend.Categories.Category>;\n            /**\n             * Field mask of fields to update.\n             */\n            fieldMask?: Array<string>;\n            /**\n             * List of category fields to be included in the response if the entities are present.\n             * Base default fieldset returns all core category properties (all properties that are not a supported fieldset value).\n             * For example,  when `URL` fieldset is selected, returned category will include the set of base properties and the category's preview url.\n             */\n            fieldsets?: Array<string>;\n            /**\n             * Whether to return the full created category entities in the response.\n             */\n            returnFullEntity?: boolean;\n        };\n        type BulkUpdateCategoriesResponse = {\n            /**\n             * Bulk action metadata.\n             */\n            bulkActionMetadata?: wix_blog_backend.Categories.BulkActionMetadata;\n            /**\n             * Categories updated by bulk action.\n             */\n            results?: Array<wix_blog_backend.Categories.BulkCategoryResult>;\n        };\n        type Category = {\n            /**\n             * Category ID.\n             */\n            _id?: string;\n            /**\n             * Category cover image.\n             */\n            coverImage?: string;\n            /**\n             * Reserved for internal use.\n             */\n            coverMedia?: wix_blog_backend.Categories.CoverMedia;\n            /**\n             * Category description.\n             */\n            description?: string;\n            /**\n             * Position of the category in the [Category Menu](https://support.wix.com/en/article/wix-blog-adding-and-customizing-a-category-menu). Categories with lower display position are displayed first.\n             */\n            displayPosition?: number;\n            /**\n             * Reserved for internal use.\n             */\n            internalId?: string;\n            /**\n             * Category label. Displayed in the Category Menu.\n             */\n            label?: string;\n            /**\n             * Category Language.\n             *\n             * 2-letter language code in [ISO 639-1 format](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes).\n             */\n            language?: string;\n            /**\n             * Reserved for internal use.\n             */\n            oldRank?: number;\n            /**\n             * Number of posts in the category.\n             */\n            postCount?: number;\n            /**\n             * Reserved for internal use.\n             */\n            rank?: number;\n            /**\n             * SEO data.\n             */\n            seoData?: wix_blog_backend.Categories.SeoSchema;\n            /**\n             * Part of a category's URL that refers to a specific category.\n             *\n             * For example, `'https:/example.com/blog/category/{my-category-slug}'`.\n             */\n            slug?: string;\n            /**\n             * Category title.\n             */\n            title?: string;\n            /**\n             * ID of the category's translations when [Wix Multilingual](https://wix.wixanswers.com/app/kb/article/36837a9d-5d22-4fa1-9a80-1b99b7f82b5e/en) is installed on a site. All translations of a single category will share the same `translationId`.\n             */\n            translationId?: string;\n            /**\n             * Category URL.\n             *\n             * The `url` directs you to a page that lists every post with the specified category.\n             */\n            url?: string;\n        };\n        type CoverMedia = {\n            /**\n             * If `false`, the cover image is the first media item appearing in the content.\n             */\n            custom?: boolean;\n            /**\n             * Whether cover media is displayed.\n             */\n            displayed?: boolean;\n            /**\n             * Is cover media enabled.\n             * Selected by user whether to display cover media on the feed\n             */\n            enabled?: boolean;\n            /**\n             * Image url.\n             */\n            image?: string;\n            /**\n             * Video url.\n             */\n            video?: string;\n        };\n        type CoverMediaMediaOneOf = {\n            /**\n             * Image url.\n             */\n            image?: string;\n            /**\n             * Video url.\n             */\n            video?: string;\n        };\n        type CreateCategoryOptions = {\n            /**\n             * List of additional category fields to include in the response. For example, use the `URL` fieldset to retrieve the url field in\n             * the response in addition to the category’s base fields. Base fields don’t include any of the supported fieldset values. By default\n             * only the category’s base fields are returned.\n             */\n            fieldsets?: Array<string>;\n        };\n        type CreateCategoryRequest = {\n            /**\n             * Category info.\n             */\n            category: wix_blog_backend.Categories.Category;\n            /**\n             * List of additional category fields to include in the response. For example, use the `URL` fieldset to retrieve the url field in\n             * the response in addition to the category’s base fields. Base fields don’t include any of the supported fieldset values. By default\n             * only the category’s base fields are returned.\n             */\n            fieldsets?: Array<string>;\n        };\n        type CreateCategoryResponse = {\n            /**\n             * Category info.\n             */\n            category?: wix_blog_backend.Categories.Category;\n        };\n        type CursorPaging = {\n            /**\n             * Pointer to the next or previous page in the list of results.\n             *\n             * You can get the relevant cursor token\n             * from the `pagingMetadata` object in the previous call's response.\n             * Not relevant for the first request.\n             */\n            cursor?: string;\n            /**\n             * Number of items to load.\n             */\n            limit?: number;\n        };\n        type Cursors = {\n            /**\n             * Cursor pointing to next page in the list of results.\n             */\n            next?: string;\n            /**\n             * Cursor pointing to previous page in the list of results.\n             */\n            prev?: string;\n        };\n        type DeleteCategoryRequest = {\n            /**\n             * Category ID.\n             */\n            categoryId: string;\n        };\n        type DeleteCategoryResponse = {};\n        type GetCategoryBySlugOptions = {\n            /**\n             * List of category fields to be included in the response. By default, any fields not passed are not returned.\n             *\n             * Supported Values:\n             * `\"SEO\"` and `\"URL\"`.\n             */\n            fieldsets?: Array<string>;\n        };\n        type GetCategoryBySlugRequest = {\n            /**\n             * __Deprecated.__ Use `fieldsets` instead.\n             *\n             * This parameter will be removed on June 30, 2023.\n             * List of category fields to be included in the response.\n             */\n            fieldsToInclude?: Array<string>;\n            /**\n             * List of additional category fields to include in the response. For example, use the `URL` fieldset to retrieve the url field in\n             * the response in addition to the category’s base fields. Base fields don’t include any of the supported fieldset values. By default\n             * only the category’s base fields are returned.\n             */\n            fieldsets?: Array<string>;\n            /**\n             * Slug of the category to retrieve.\n             */\n            slug: string;\n        };\n        type GetCategoryBySlugResponse = {\n            /**\n             * Category info.\n             */\n            category?: wix_blog_backend.Categories.Category;\n        };\n        type GetCategoryOptions = {\n            /**\n             * List of category fields to be included in the response. By default, any fields not passed are not returned.\n             *\n             * Supported Values:\n             * `\"SEO\"` and `\"URL\"`.\n             */\n            fieldsets?: Array<string>;\n        };\n        type GetCategoryRequest = {\n            /**\n             * Category ID.\n             */\n            categoryId: string;\n            /**\n             * __Deprecated.__ Use `fieldsets` instead.\n             * This parameter will be removed on June 30, 2023.\n             *\n             * List of category fields to be included in the response.\n             */\n            fieldsToInclude?: Array<string>;\n            /**\n             * List of additional category fields to include in the response. For example, use the `URL` fieldset to retrieve the url field in\n             * the response in addition to the category’s base fields. Base fields don’t include any of the supported fieldset values. By default\n             * only the category’s base fields are returned.\n             */\n            fieldsets?: Array<string>;\n        };\n        type GetCategoryResponse = {\n            /**\n             * Category info.\n             */\n            category?: wix_blog_backend.Categories.Category;\n        };\n        type InitialCategoriesCopied = {\n            /**\n             * Number of categories copied.\n             */\n            count?: number;\n        };\n        type ItemMetadata = {\n            /**\n             * Item ID. Should always be available, unless it's impossible (for example, when failing to create an item).\n             */\n            _id?: string;\n            /**\n             * Details about the error in case of failure.\n             */\n            error?: wix_blog_backend.Categories.ApplicationError;\n            /**\n             * Index of the item within the request array. Allows for correlation between request and response items.\n             */\n            originalIndex?: number;\n            /**\n             * Whether the requested action was successful for this item. When `false`, the `error` field is populated.\n             */\n            success?: boolean;\n        };\n        type ListCategoriesOptions = {\n            /**\n             * List of category fields to be included in the response. By default, any fields not passed are not returned.\n             *\n             * Supported Values:\n             * `\"SEO\"` and `\"URL\"`.\n             */\n            fieldsets?: Array<string>;\n            /**\n             * Pagination options.\n             */\n            paging?: wix_blog_backend.Categories.BlogPaging;\n        };\n        type ListCategoriesRequest = {\n            /**\n             * __Deprecated.__ Use `fieldsets` instead.\n             *\n             * This parameter will be removed on June 30, 2023.\n             *\n             * List of category fields to be included in the response.\n             */\n            fieldsToInclude?: Array<string>;\n            /**\n             * List of additional category fields to include in the response. For example, use the `URL` fieldset to retrieve the url field in\n             * the response in addition to the category’s base fields. Base fields don’t include any of the supported fieldset values. By default\n             * only the category’s base fields are returned.\n             */\n            fieldsets?: Array<string>;\n            /**\n             * Pagination options.\n             */\n            paging?: wix_blog_backend.Categories.BlogPaging;\n        };\n        type ListCategoriesResponse = {\n            /**\n             * List of categories.\n             */\n            categories?: Array<wix_blog_backend.Categories.Category>;\n            /**\n             * Details on the paged set of results returned.\n             */\n            metaData?: wix_blog_backend.Categories.MetaData;\n        };\n        type MetaData = {\n            /**\n             * Number of items returned in this response.\n             */\n            count?: number;\n            /**\n             * Pointer to the next or previous page in the list of results.\n             */\n            cursor?: string;\n            /**\n             * Number of items skipped.\n             */\n            offset?: number;\n            /**\n             * Total number of items that match the query.\n             */\n            total?: number;\n        };\n        type Paging = {\n            /**\n             * Number of items to load.\n             */\n            limit?: number;\n            /**\n             * Number of items to skip in the current sort order.\n             */\n            offset?: number;\n        };\n        type PagingMetadataV2 = {\n            /**\n             * Number of items returned in the response.\n             */\n            count?: number;\n            /**\n             * Cursors to navigate through the result pages using `next` and `prev`. Returned if cursor paging is used.\n             */\n            cursors?: wix_blog_backend.Categories.Cursors;\n            /**\n             * Offset that was requested.\n             */\n            offset?: number;\n            /**\n             * Flag that indicates the server failed to calculate the `total` field.\n             */\n            tooManyToCount?: boolean;\n            /**\n             * Total number of items that match the query. Returned if offset paging is used and the `tooManyToCount` flag is not set.\n             */\n            total?: number;\n        };\n        type PlatformQuery = {\n            /**\n             * Cursor token pointing to a page of results. Not used in the first request. Following requests use the cursor token and not `filter` or `sort`.\n             */\n            cursorPaging?: wix_blog_backend.Categories.CursorPaging;\n            /**\n             * Filter object in the following format:\n             * `\"filter\" : {\n             * \"fieldName1\": \"value1\",\n             * \"fieldName2\":{\"$operator\":\"value2\"}\n             * }`\n             * Example of operators: `$eq`, `$ne`, `$lt`, `$lte`, `$gt`, `$gte`, `$in`, `$hasSome`, `$hasAll`, `$startsWith`, `$contains`\n             */\n            filter?: Object;\n            /**\n             * Paging options to limit and skip the number of items.\n             */\n            paging?: wix_blog_backend.Categories.Paging;\n            /**\n             * Sort object in the following format:\n             * `[{\"fieldName\":\"sortField1\",\"order\":\"ASC\"},{\"fieldName\":\"sortField2\",\"order\":\"DESC\"}]`\n             */\n            sort?: Array<wix_blog_backend.Categories.Sorting>;\n        };\n        type PlatformQueryPagingMethodOneOf = {\n            /**\n             * Cursor token pointing to a page of results. Not used in the first request. Following requests use the cursor token and not `filter` or `sort`.\n             */\n            cursorPaging?: wix_blog_backend.Categories.CursorPaging;\n            /**\n             * Paging options to limit and skip the number of items.\n             */\n            paging?: wix_blog_backend.Categories.Paging;\n        };\n        type QueryCategoriesOptions = {};\n        type QueryCategoriesRequest = {\n            /**\n             * __Deprecated.__ Use `fieldsets` instead.\n             * This parameter will be removed on June 30, 2023.\n             *\n             * List of category fields to be included in the response.\n             */\n            fieldsToInclude?: Array<string>;\n            /**\n             * List of additional category fields to include in the response. For example, use the `URL` fieldset to retrieve the url field in\n             * the response in addition to the category’s base fields. Base fields don’t include any of the supported fieldset values. By default\n             * only the category’s base fields are returned.\n             */\n            fieldsets?: Array<string>;\n            /**\n             * __Deprecated.__ Use `query` instead.\n             * This parameter will be removed on June 30, 2023.\n             *\n             * Filter object.\n             */\n            filter?: Object;\n            /**\n             * __Deprecated.__ Use `query` instead.\n             * This parameter will be removed on June 30, 2023.\n             *\n             * Pagination options.\n             */\n            paging?: wix_blog_backend.Categories.BlogPaging;\n            /**\n             * Query options.\n             */\n            query?: wix_blog_backend.Categories.PlatformQuery;\n            /**\n             * __Deprecated.__ Use `query` instead.\n             * This parameter will be removed on June 3, 2023.\n             *\n             * Sorting options.\n             */\n            sort?: Array<wix_blog_backend.Categories.Sorting>;\n        };\n        type QueryCategoriesResponse = {\n            /**\n             * List of categories.\n             */\n            categories?: Array<wix_blog_backend.Categories.Category>;\n            /**\n             * __Deprecated.__ Use `pagingMetadata` instead.\n             * This property will be removed on June 30, 2023.\n             *\n             * Details on the paged set of results returned.\n             */\n            metaData?: wix_blog_backend.Categories.MetaData;\n            /**\n             * Details on the paged set of results returned.\n             */\n            pagingMetadata?: wix_blog_backend.Categories.PagingMetadataV2;\n        };\n        type SeoSchema = {\n            /**\n             * SEO general settings.\n             */\n            settings?: wix_blog_backend.Categories.Settings;\n            /**\n             * SEO tag information.\n             */\n            tags?: Array<wix_blog_backend.Categories.Tag>;\n        };\n        type Settings = {\n            /**\n             * Whether the auto redirects feature creating `301 redirects` on a slug change is enabled.\n             *\n             * Default: enabled\n             */\n            preventAutoRedirect?: boolean;\n        };\n        type Sorting = {\n            /**\n             * Name of the field to sort by.\n             */\n            fieldName?: string;\n            /**\n             * Sort order.\n             */\n            order?: string;\n        };\n        type Tag = {\n            /**\n             * SEO tag inner content. For example, ` inner content `.\n             */\n            children?: string;\n            /**\n             * Whether the tag is a custom tag.\n             */\n            custom?: boolean;\n            /**\n             * Whether the tag is disabled.\n             */\n            disabled?: boolean;\n            /**\n             * SEO tag meta data. For example, `{height: 300, width: 240}`.\n             */\n            meta?: Object;\n            /**\n             * A `{'key':'value'} pair object where each SEO tag property (`'name'`, `'content'`, `'rel'`, `'href'`) contains a value.\n             * For example: `{'name': 'description', 'content': 'the description itself'}`.\n             */\n            props?: Object;\n            /**\n             * SEO tag type.\n             *\n             * Supported values: `title`, `meta`, `script`, `link`.\n             */\n            type?: string;\n        };\n        type UpdateCategory = {\n            /**\n             * Category ID.\n             */\n            _id?: string;\n            /**\n             * Category cover image.\n             */\n            coverImage?: string;\n            /**\n             * Reserved for internal use.\n             */\n            coverMedia?: wix_blog_backend.Categories.CoverMedia;\n            /**\n             * Category description.\n             */\n            description?: string;\n            /**\n             * Position of the category in the [Category Menu](https://support.wix.com/en/article/wix-blog-adding-and-customizing-a-category-menu). Categories with lower display position are displayed first.\n             */\n            displayPosition?: number;\n            /**\n             * Reserved for internal use.\n             */\n            internalId?: string;\n            /**\n             * Category label. Displayed in the Category Menu.\n             */\n            label?: string;\n            /**\n             * Category Language.\n             *\n             * 2-letter language code in [ISO 639-1 format](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes).\n             */\n            language?: string;\n            /**\n             * Reserved for internal use.\n             */\n            oldRank?: number;\n            /**\n             * Number of posts in the category.\n             */\n            postCount?: number;\n            /**\n             * Reserved for internal use.\n             */\n            rank?: number;\n            /**\n             * SEO data.\n             */\n            seoData?: wix_blog_backend.Categories.SeoSchema;\n            /**\n             * Part of a category's URL that refers to a specific category.\n             *\n             * For example, `'https:/example.com/blog/category/{my-category-slug}'`.\n             */\n            slug?: string;\n            /**\n             * Category title.\n             */\n            title?: string;\n            /**\n             * ID of the category's translations when [Wix Multilingual](https://wix.wixanswers.com/app/kb/article/36837a9d-5d22-4fa1-9a80-1b99b7f82b5e/en) is installed on a site. All translations of a single category will share the same `translationId`.\n             */\n            translationId?: string;\n            /**\n             * Category URL.\n             *\n             * The `url` directs you to a page that lists every post with the specified category.\n             */\n            url?: string;\n        };\n        type UpdateCategoryOptions = {\n            /**\n             * Field mask of fields to update.\n             */\n            fieldMask?: Array<string>;\n            /**\n             * List of additional category fields to include in the response. For example, use the `URL` fieldset to retrieve the url field in\n             * the response in addition to the category’s base fields. Base fields don’t include any of the supported fieldset values. By default\n             * only the category’s base fields are returned.\n             */\n            fieldsets?: Array<string>;\n        };\n        type UpdateCategoryRequest = {\n            /**\n             * Category info.\n             */\n            category: wix_blog_backend.Categories.Category;\n            /**\n             * Field mask of fields to update.\n             */\n            fieldMask?: Array<string>;\n            /**\n             * List of additional category fields to include in the response. For example, use the `URL` fieldset to retrieve the url field in\n             * the response in addition to the category’s base fields. Base fields don’t include any of the supported fieldset values. By default\n             * only the category’s base fields are returned.\n             */\n            fieldsets?: Array<string>;\n        };\n        type UpdateCategoryResponse = {\n            /**\n             * Category info.\n             */\n            category?: wix_blog_backend.Categories.Category;\n        };\n    }\n    /**\n     * [Read more](https://www.wix.com/corvid/reference/wix-blog-backend.Events.html#)\n     */\n    interface Events {\n        /**\n         * An event that is triggered when a category is created.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-blog-backend.Events.html#onCategoryCreated)\n         */\n        onCategoryCreated(event: wix_blog_backend.Events.blogV3CategoryCategoryCreated): void;\n        /**\n         * An event that is triggered when a category is deleted.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-blog-backend.Events.html#onCategoryDeleted)\n         */\n        onCategoryDeleted(event: wix_blog_backend.Events.blogV3CategoryCategoryDeleted): void;\n        /**\n         * An event that is triggered when a category is updated.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-blog-backend.Events.html#onCategoryUpdated)\n         */\n        onCategoryUpdated(event: wix_blog_backend.Events.blogV3CategoryCategoryUpdated): void;\n        /**\n         * An event that is triggered when a post is created.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-blog-backend.Events.html#onPostCreated)\n         */\n        onPostCreated(event: wix_blog_backend.Events.blogV3PostPostCreated): void;\n        /**\n         * An event that is triggered when a post is deleted.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-blog-backend.Events.html#onPostDeleted)\n         */\n        onPostDeleted(event: wix_blog_backend.Events.blogV3PostPostDeleted): void;\n        /**\n         * An event that is triggered when a post is liked.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-blog-backend.Events.html#onPostLiked)\n         */\n        onPostLiked(event: wix_blog_backend.Events.blogV3PostPostLikedEvent): void;\n        /**\n         * An event that is triggered when a post is unliked.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-blog-backend.Events.html#onPostUnliked)\n         */\n        onPostUnliked(event: wix_blog_backend.Events.blogV3PostPostUnlikedEvent): void;\n        /**\n         * An event that triggers when a post is updated.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-blog-backend.Events.html#onPostUpdated)\n         */\n        onPostUpdated(event: wix_blog_backend.Events.blogV3PostPostUpdated): void;\n        /**\n         * An event that is triggered when a tag is created.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-blog-backend.Events.html#onTagCreated)\n         */\n        onTagCreated(event: wix_blog_backend.Events.blogV3TagTagCreated): void;\n        /**\n         * An event that is triggered when a tag is deleted.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-blog-backend.Events.html#onTagDeleted)\n         */\n        onTagDeleted(event: wix_blog_backend.Events.blogV3TagTagDeleted): void;\n        /**\n         * Triggered when a tag is updated.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-blog-backend.Events.html#onTagUpdated)\n         */\n        onTagUpdated(event: wix_blog_backend.Events.blogV3TagTagUpdated): void;\n    }\n    namespace Events {\n        type blogV3CategoryApplicationError = {\n            code?: string;\n            data?: Object;\n            description?: string;\n        };\n        type blogV3CategoryBackendEventMetadata = {\n            /**\n             * ID of the entity associated with the event.\n             */\n            entityId: string;\n            /**\n             * Event timestamp.\n             */\n            eventTime: string;\n            /**\n             * Event ID.\n             */\n            id: string;\n            /**\n             * Whether the event was triggered as a result of a privacy regulation application (for example, [GDPR](https://support.wix.com/en/article/gdpr-frequently-asked-questions)). For advanced users.\n             */\n            triggeredByAnonymizeRequest: boolean;\n        };\n        type blogV3CategoryBlogPaging = {\n            /**\n             * Pointer to the next or previous page in the list of results.\n             */\n            cursor?: string;\n            /**\n             * Number of items to return.\n             *\n             * Default:`50`\n             */\n            limit?: number;\n            /**\n             * Number of items to skip in the current sort order.\n             *\n             * Default: `0`\n             */\n            offset?: number;\n        };\n        type blogV3CategoryBulkActionMetadata = {\n            /**\n             * Number of items that couldn't be processed.\n             */\n            totalFailures?: number;\n            /**\n             * Number of items that were successfully processed.\n             */\n            totalSuccesses?: number;\n            /**\n             * Number of failures without details because detailed failure threshold was exceeded.\n             */\n            undetailedFailures?: number;\n        };\n        type blogV3CategoryBulkCategoryResult = {\n            /**\n             * Optional created category.\n             */\n            item?: wix_blog_backend.Events.blogV3CategoryCategory;\n            /**\n             * Bulk actions metadata for category.\n             */\n            itemMetadata?: wix_blog_backend.Events.blogV3CategoryItemMetadata;\n        };\n        type blogV3CategoryBulkCreateCategoriesRequest = {\n            /**\n             * Categories to create.\n             */\n            categories: Array<wix_blog_backend.Events.blogV3CategoryCategory>;\n            /**\n             * List of additional category fields to include in the response. For example, use the `URL` fieldset to retrieve the url field in\n             * the response in addition to the category’s base fields. Base fields don’t include any of the supported fieldset values. By default\n             * only the category’s base fields are returned.\n             */\n            fieldsets?: Array<string>;\n            /**\n             * Whether to return the full created category entities in the response.\n             */\n            returnFullEntity?: boolean;\n        };\n        type blogV3CategoryBulkCreateCategoriesResponse = {\n            /**\n             * Bulk action metadata.\n             */\n            bulkActionMetadata?: wix_blog_backend.Events.blogV3CategoryBulkActionMetadata;\n            /**\n             * Categories created by bulk action.\n             */\n            results?: Array<wix_blog_backend.Events.blogV3CategoryBulkCategoryResult>;\n        };\n        type blogV3CategoryBulkUpdateCategoriesRequest = {\n            /**\n             * Categories to update.\n             */\n            categories: Array<wix_blog_backend.Events.blogV3CategoryCategory>;\n            /**\n             * Field mask of fields to update.\n             */\n            fieldMask?: Array<string>;\n            /**\n             * List of category fields to be included in the response if the entities are present.\n             * Base default fieldset returns all core category properties (all properties that are not a supported fieldset value).\n             * For example,  when `URL` fieldset is selected, returned category will include the set of base properties and the category's preview url.\n             */\n            fieldsets?: Array<string>;\n            /**\n             * Whether to return the full created category entities in the response.\n             */\n            returnFullEntity?: boolean;\n        };\n        type blogV3CategoryBulkUpdateCategoriesResponse = {\n            /**\n             * Bulk action metadata.\n             */\n            bulkActionMetadata?: wix_blog_backend.Events.blogV3CategoryBulkActionMetadata;\n            /**\n             * Categories updated by bulk action.\n             */\n            results?: Array<wix_blog_backend.Events.blogV3CategoryBulkCategoryResult>;\n        };\n        type blogV3CategoryCategory = {\n            /**\n             * Category ID.\n             */\n            _id?: string;\n            /**\n             * Category cover image.\n             */\n            coverImage?: string;\n            /**\n             * __Deprecated.__ Use `coverImage` instead.\n             * This property will be removed on June 30, 2023.\n             *\n             * Category cover image or video.\n             */\n            coverMedia?: wix_blog_backend.Events.blogV3CategoryCoverMedia;\n            /**\n             * Category description.\n             */\n            description?: string;\n            /**\n             * Category position in sequence. Categories with a lower display position are displayed first. Categories with a position of `-1` appear at the end of the sequence.\n             *\n             * Default: `-1`\n             */\n            displayPosition?: number;\n            /**\n             * Reserved for internal use.\n             */\n            internalId?: string;\n            /**\n             * Category label. Displayed in the Category Menu.\n             */\n            label?: string;\n            /**\n             * Category language.\n             *\n             * Two-letter language code in [ISO 639-1 alpha-2](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) format.\n             */\n            language?: string;\n            /**\n             * Reserved for internal use.\n             */\n            oldRank?: number;\n            /**\n             * Number of posts in the category.\n             */\n            postCount?: number;\n            /**\n             * __Deprecated.__ Use `displayPosition` instead.\n             * This property will be removed on June 30, 2023.\n             *\n             * Category position in sequence.\n             */\n            rank?: number;\n            /**\n             * SEO data.\n             */\n            seoData?: wix_blog_backend.Events.blogV3CategorySeoSchema;\n            /**\n             * Category slug. For example, `'category-slug'`.\n             */\n            slug?: string;\n            /**\n             * Category title.\n             */\n            title?: string;\n            /**\n             * ID of the category's translations. All translations of a single category share the same `translationId`.\n             */\n            translationId?: string;\n            /**\n             * Category URL.\n             */\n            url?: string;\n        };\n        type blogV3CategoryCategoryCreated = {\n            /**\n             * Created category.\n             */\n            entity: wix_blog_backend.Events.blogV3CategoryCategory;\n            /**\n             * Event metadata.\n             */\n            metadata: wix_blog_backend.Events.blogV3CategoryBackendEventMetadata;\n        };\n        type blogV3CategoryCategoryDeleted = {\n            /**\n             * Event metadata.\n             */\n            metadata: wix_blog_backend.Events.blogV3CategoryBackendEventMetadata;\n        };\n        type blogV3CategoryCategoryUpdated = {\n            /**\n             * Updated category.\n             */\n            entity: wix_blog_backend.Events.blogV3CategoryCategory;\n            /**\n             * Event metadata.\n             */\n            metadata: wix_blog_backend.Events.blogV3CategoryBackendEventMetadata;\n        };\n        type blogV3CategoryCoverMedia = {\n            /**\n             * Whether cover media is custom. If `false` the cover image is set to the first media item that appears in the content.\n             */\n            custom?: boolean;\n            /**\n             * Whether cover media is displayed.\n             */\n            displayed?: boolean;\n            /**\n             * Is cover media enabled.\n             * Selected by user whether to display cover media on the feed\n             */\n            enabled?: boolean;\n            /**\n             * Image url.\n             */\n            image?: string;\n            /**\n             * Video url.\n             */\n            video?: string;\n        };\n        type blogV3CategoryCoverMediaMediaOneOf = {\n            /**\n             * Image url.\n             */\n            image?: string;\n            /**\n             * Video url.\n             */\n            video?: string;\n        };\n        type blogV3CategoryCreateCategoryRequest = {\n            /**\n             * Category info.\n             */\n            category: wix_blog_backend.Events.blogV3CategoryCategory;\n            /**\n             * List of additional category fields to include in the response. For example, use the `URL` fieldset to retrieve the url field in\n             * the response in addition to the category’s base fields. Base fields don’t include any of the supported fieldset values. By default\n             * only the category’s base fields are returned.\n             */\n            fieldsets?: Array<string>;\n        };\n        type blogV3CategoryCreateCategoryResponse = {\n            /**\n             * Category info.\n             */\n            category?: wix_blog_backend.Events.blogV3CategoryCategory;\n        };\n        type blogV3CategoryCursorPaging = {\n            /**\n             * Pointer to the next or previous page in the list of results.\n             *\n             * You can get the relevant cursor token\n             * from the `pagingMetadata` object in the previous call's response.\n             * Not relevant for the first request.\n             */\n            cursor?: string;\n            /**\n             * Number of items to load.\n             */\n            limit?: number;\n        };\n        type blogV3CategoryCursors = {\n            /**\n             * Cursor pointing to next page in the list of results.\n             */\n            next?: string;\n            /**\n             * Cursor pointing to previous page in the list of results.\n             */\n            prev?: string;\n        };\n        type blogV3CategoryDeleteCategoryRequest = {\n            /**\n             * Category ID.\n             */\n            categoryId: string;\n        };\n        type blogV3CategoryDeleteCategoryResponse = {};\n        type blogV3CategoryGetCategoryBySlugRequest = {\n            /**\n             * __Deprecated.__ Use `fieldsets` instead.\n             *\n             * This parameter will be removed on June 30, 2023.\n             * List of category fields to be included in the response.\n             */\n            fieldsToInclude?: Array<string>;\n            /**\n             * List of additional category fields to include in the response. For example, use the `URL` fieldset to retrieve the url field in\n             * the response in addition to the category’s base fields. Base fields don’t include any of the supported fieldset values. By default\n             * only the category’s base fields are returned.\n             */\n            fieldsets?: Array<string>;\n            /**\n             * Slug of the category to retrieve.\n             */\n            slug: string;\n        };\n        type blogV3CategoryGetCategoryBySlugResponse = {\n            /**\n             * Category info.\n             */\n            category?: wix_blog_backend.Events.blogV3CategoryCategory;\n        };\n        type blogV3CategoryGetCategoryRequest = {\n            /**\n             * Category ID.\n             */\n            categoryId: string;\n            /**\n             * __Deprecated.__ Use `fieldsets` instead.\n             * This parameter will be removed on June 30, 2023.\n             *\n             * List of category fields to be included in the response.\n             */\n            fieldsToInclude?: Array<string>;\n            /**\n             * List of additional category fields to include in the response. For example, use the `URL` fieldset to retrieve the url field in\n             * the response in addition to the category’s base fields. Base fields don’t include any of the supported fieldset values. By default\n             * only the category’s base fields are returned.\n             */\n            fieldsets?: Array<string>;\n        };\n        type blogV3CategoryGetCategoryResponse = {\n            /**\n             * Category info.\n             */\n            category?: wix_blog_backend.Events.blogV3CategoryCategory;\n        };\n        type blogV3CategoryInitialCategoriesCopied = {\n            /**\n             * Number of categories copied.\n             */\n            count?: number;\n        };\n        type blogV3CategoryItemMetadata = {\n            /**\n             * Item ID. Should always be available, unless it's impossible (for example, when failing to create an item).\n             */\n            _id?: string;\n            /**\n             * Details about the error in case of failure.\n             */\n            error?: wix_blog_backend.Events.blogV3CategoryApplicationError;\n            /**\n             * Index of the item within the request array. Allows for correlation between request and response items.\n             */\n            originalIndex?: number;\n            /**\n             * Whether the requested action was successful for this item. When `false`, the `error` field is populated.\n             */\n            success?: boolean;\n        };\n        type blogV3CategoryListCategoriesRequest = {\n            /**\n             * __Deprecated.__ Use `fieldsets` instead.\n             *\n             * This parameter will be removed on June 30, 2023.\n             *\n             * List of category fields to be included in the response.\n             */\n            fieldsToInclude?: Array<string>;\n            /**\n             * List of additional category fields to include in the response. For example, use the `URL` fieldset to retrieve the url field in\n             * the response in addition to the category’s base fields. Base fields don’t include any of the supported fieldset values. By default\n             * only the category’s base fields are returned.\n             */\n            fieldsets?: Array<string>;\n            /**\n             * Pagination options.\n             */\n            paging?: wix_blog_backend.Events.blogV3CategoryBlogPaging;\n        };\n        type blogV3CategoryListCategoriesResponse = {\n            /**\n             * List of categories.\n             */\n            categories?: Array<wix_blog_backend.Events.blogV3CategoryCategory>;\n            /**\n             * Details on the paged set of results returned.\n             */\n            metaData?: wix_blog_backend.Events.blogV3CategoryMetaData;\n        };\n        type blogV3CategoryMetaData = {\n            /**\n             * Number of items returned in this response.\n             */\n            count?: number;\n            /**\n             * Pointer to the next or previous page in the list of results.\n             */\n            cursor?: string;\n            /**\n             * Requested offset.\n             */\n            offset?: number;\n            /**\n             * Total number of items that match the query.\n             */\n            total?: number;\n        };\n        type blogV3CategoryPaging = {\n            /**\n             * Number of items to load.\n             */\n            limit?: number;\n            /**\n             * Number of items to skip in the current sort order.\n             */\n            offset?: number;\n        };\n        type blogV3CategoryPagingMetadataV2 = {\n            /**\n             * Number of items returned in the response.\n             */\n            count?: number;\n            /**\n             * Cursors to navigate through the result pages using `next` and `prev`. Returned if cursor paging is used.\n             */\n            cursors?: wix_blog_backend.Events.blogV3CategoryCursors;\n            /**\n             * Offset that was requested.\n             */\n            offset?: number;\n            /**\n             * Flag that indicates the server failed to calculate the `total` field.\n             */\n            tooManyToCount?: boolean;\n            /**\n             * Total number of items that match the query. Returned if offset paging is used and the `tooManyToCount` flag is not set.\n             */\n            total?: number;\n        };\n        type blogV3CategoryPlatformQuery = {\n            /**\n             * Cursor token pointing to a page of results. Not used in the first request. Following requests use the cursor token and not `filter` or `sort`.\n             */\n            cursorPaging?: wix_blog_backend.Events.blogV3CategoryCursorPaging;\n            /**\n             * Filter object in the following format:\n             * `\"filter\" : {\n             * \"fieldName1\": \"value1\",\n             * \"fieldName2\":{\"$operator\":\"value2\"}\n             * }`\n             * Example of operators: `$eq`, `$ne`, `$lt`, `$lte`, `$gt`, `$gte`, `$in`, `$hasSome`, `$hasAll`, `$startsWith`, `$contains`\n             */\n            filter?: Object;\n            /**\n             * Paging options to limit and skip the number of items.\n             */\n            paging?: wix_blog_backend.Events.blogV3CategoryPaging;\n            /**\n             * Sort object in the following format:\n             * `[{\"fieldName\":\"sortField1\",\"order\":\"ASC\"},{\"fieldName\":\"sortField2\",\"order\":\"DESC\"}]`\n             */\n            sort?: Array<wix_blog_backend.Events.blogV3CategorySorting>;\n        };\n        type blogV3CategoryPlatformQueryPagingMethodOneOf = {\n            /**\n             * Cursor token pointing to a page of results. Not used in the first request. Following requests use the cursor token and not `filter` or `sort`.\n             */\n            cursorPaging?: wix_blog_backend.Events.blogV3CategoryCursorPaging;\n            /**\n             * Paging options to limit and skip the number of items.\n             */\n            paging?: wix_blog_backend.Events.blogV3CategoryPaging;\n        };\n        type blogV3CategoryQueryCategoriesRequest = {\n            /**\n             * __Deprecated.__ Use `fieldsets` instead.\n             * This parameter will be removed on June 30, 2023.\n             *\n             * List of category fields to be included in the response.\n             */\n            fieldsToInclude?: Array<string>;\n            /**\n             * List of additional category fields to include in the response. For example, use the `URL` fieldset to retrieve the url field in\n             * the response in addition to the category’s base fields. Base fields don’t include any of the supported fieldset values. By default\n             * only the category’s base fields are returned.\n             */\n            fieldsets?: Array<string>;\n            /**\n             * __Deprecated.__ Use `query` instead.\n             * This parameter will be removed on June 30, 2023.\n             *\n             * Filter object.\n             */\n            filter?: Object;\n            /**\n             * __Deprecated.__ Use `query` instead.\n             * This parameter will be removed on June 30, 2023.\n             *\n             * Pagination options.\n             */\n            paging?: wix_blog_backend.Events.blogV3CategoryBlogPaging;\n            /**\n             * Query options.\n             */\n            query?: wix_blog_backend.Events.blogV3CategoryPlatformQuery;\n            /**\n             * __Deprecated.__ Use `query` instead.\n             * This parameter will be removed on June 3, 2023.\n             *\n             * Sorting options.\n             */\n            sort?: Array<wix_blog_backend.Events.blogV3CategorySorting>;\n        };\n        type blogV3CategoryQueryCategoriesResponse = {\n            /**\n             * List of categories.\n             */\n            categories?: Array<wix_blog_backend.Events.blogV3CategoryCategory>;\n            /**\n             * __Deprecated.__ Use `pagingMetadata` instead.\n             * This property will be removed on June 30, 2023.\n             *\n             * Details on the paged set of results returned.\n             */\n            metaData?: wix_blog_backend.Events.blogV3CategoryMetaData;\n            /**\n             * Details on the paged set of results returned.\n             */\n            pagingMetadata?: wix_blog_backend.Events.blogV3CategoryPagingMetadataV2;\n        };\n        type blogV3CategorySeoSchema = {\n            /**\n             * SEO general settings.\n             */\n            settings?: wix_blog_backend.Events.blogV3CategorySettings;\n            /**\n             * SEO tags information.\n             */\n            tags?: Array<wix_blog_backend.Events.blogV3CategoryTag>;\n        };\n        type blogV3CategorySettings = {\n            /**\n             * Whether the auto redirects feature creating `301 redirects` on a slug change is enabled.\n             *\n             * Default: enabled\n             */\n            preventAutoRedirect?: boolean;\n        };\n        type blogV3CategorySorting = {\n            /**\n             * Name of the field to sort by.\n             */\n            fieldName?: string;\n            /**\n             * Sort order.\n             */\n            order?: string;\n        };\n        type blogV3CategoryTag = {\n            /**\n             * SEO tag inner content. For example, ` inner content `.\n             */\n            children?: string;\n            /**\n             * Whether the tag is a custom tag.\n             */\n            custom?: boolean;\n            /**\n             * Whether the tag is disabled.\n             */\n            disabled?: boolean;\n            /**\n             * SEO tag meta data. For example, `{height: 300, width: 240}`.\n             */\n            meta?: Object;\n            /**\n             * A `{'key':'value'} pair object where each SEO tag property (`'name'`, `'content'`, `'rel'`, `'href'`) contains a value.\n             * For example: `{'name': 'description', 'content': 'the description itself'}`.\n             */\n            props?: Object;\n            /**\n             * SEO tag type.\n             *\n             * Supported values: `title`, `meta`, `script`, `link`.\n             */\n            type?: string;\n        };\n        type blogV3CategoryUpdateCategoryRequest = {\n            /**\n             * Category info.\n             */\n            category: wix_blog_backend.Events.blogV3CategoryCategory;\n            /**\n             * Field mask of fields to update.\n             */\n            fieldMask?: Array<string>;\n            /**\n             * List of additional category fields to include in the response. For example, use the `URL` fieldset to retrieve the url field in\n             * the response in addition to the category’s base fields. Base fields don’t include any of the supported fieldset values. By default\n             * only the category’s base fields are returned.\n             */\n            fieldsets?: Array<string>;\n        };\n        type blogV3CategoryUpdateCategoryResponse = {\n            /**\n             * Category info.\n             */\n            category?: wix_blog_backend.Events.blogV3CategoryCategory;\n        };\n        type blogV3PostAnchorData = {\n            /**\n             * The target node's ID.\n             */\n            anchor?: string;\n        };\n        type blogV3PostAppEmbedData = {\n            /**\n             * Data for embedded Wix Bookings content.\n             */\n            bookingData?: wix_blog_backend.Events.blogV3PostBookingData;\n            /**\n             * Data for embedded Wix Events content.\n             */\n            eventData?: wix_blog_backend.Events.blogV3PostEventData;\n            /**\n             * An image for the embedded content.\n             */\n            image?: wix_blog_backend.Events.blogV3PostMedia;\n            /**\n             * Deprecated: Use `image` instead.\n             */\n            imageSrc?: string;\n            /**\n             * The ID of the embedded content.\n             */\n            itemId?: string;\n            /**\n             * The name of the embedded content.\n             */\n            name?: string;\n            /**\n             * The type of Wix App content being embedded.\n             */\n            type?: string;\n            /**\n             * The URL for the embedded content.\n             */\n            url?: string;\n        };\n        type blogV3PostAppEmbedDataAppDataOneOf = {\n            /**\n             * Data for embedded Wix Bookings content.\n             */\n            bookingData?: wix_blog_backend.Events.blogV3PostBookingData;\n            /**\n             * Data for embedded Wix Events content.\n             */\n            eventData?: wix_blog_backend.Events.blogV3PostEventData;\n        };\n        type blogV3PostAudioData = {\n            /**\n             * Audio file details.\n             */\n            audio?: wix_blog_backend.Events.blogV3PostMedia;\n            /**\n             * Author name.\n             */\n            authorName?: string;\n            /**\n             * Styling for the audio node's container.\n             */\n            containerData?: wix_blog_backend.Events.blogV3PostPluginContainerData;\n            /**\n             * Cover image.\n             */\n            coverImage?: wix_blog_backend.Events.blogV3PostMedia;\n            /**\n             * Sets whether the audio node's download button is disabled.\n             */\n            disableDownload?: boolean;\n            /**\n             * An HTML version of the audio node.\n             */\n            html?: string;\n            /**\n             * Track name.\n             */\n            name?: string;\n        };\n        type blogV3PostBackendEventMetadata = {\n            /**\n             * ID of the entity associated with the event.\n             */\n            entityId: string;\n            /**\n             * Event timestamp.\n             */\n            eventTime: string;\n            /**\n             * Event ID.\n             */\n            id: string;\n            /**\n             * Whether the event was triggered as a result of a privacy regulation application (for example, [GDPR](https://support.wix.com/en/article/gdpr-frequently-asked-questions)). For advanced users.\n             */\n            triggeredByAnonymizeRequest: boolean;\n        };\n        type blogV3PostBackground = {\n            /**\n             * The background color as a hexademical value.\n             */\n            color?: string;\n            /**\n             * Details for a gradient background.\n             */\n            gradient?: wix_blog_backend.Events.blogV3PostGradient;\n            /**\n             * An image to use for the background.\n             */\n            image?: wix_blog_backend.Events.blogV3PostMedia;\n            /**\n             * Background type. For each option, include the relevant details.\n             */\n            type?: string;\n        };\n        type blogV3PostBackgroundBackgroundOneOf = {\n            /**\n             * The background color as a hexademical value.\n             */\n            color?: string;\n            /**\n             * Details for a gradient background.\n             */\n            gradient?: wix_blog_backend.Events.blogV3PostGradient;\n            /**\n             * An image to use for the background.\n             */\n            image?: wix_blog_backend.Events.blogV3PostMedia;\n        };\n        type blogV3PostBlockquoteData = {\n            /**\n             * Indentation level.\n             */\n            indentation?: number;\n        };\n        type blogV3PostBlogCursorPaging = {\n            /**\n             * Pointer to the next or previous page in the list of results.\n             */\n            cursor?: string;\n            /**\n             * Number of items to load.\n             */\n            limit?: number;\n        };\n        type blogV3PostBlogMedia = {\n            /**\n             * Whether custom cover media has been specified. If `false`, the first media item in the post's content serves as cover media.\n             */\n            custom?: boolean;\n            /**\n             * Whether cover media is displayed.\n             */\n            displayed?: boolean;\n            /**\n             * Embed media details.\n             */\n            embedMedia?: wix_blog_backend.Events.blogV3PostEmbedMedia;\n            /**\n             * Wix Media details.\n             */\n            wixMedia?: wix_blog_backend.Events.blogV3PostWixMedia;\n        };\n        type blogV3PostBlogMediaMediaOneOf = {\n            /**\n             * Embed media details.\n             */\n            embedMedia?: wix_blog_backend.Events.blogV3PostEmbedMedia;\n            /**\n             * Wix Media details.\n             */\n            wixMedia?: wix_blog_backend.Events.blogV3PostWixMedia;\n        };\n        type blogV3PostBlogPaging = {\n            /**\n             * Pointer to the next or previous page in the list of results.\n             */\n            cursor?: string;\n            /**\n             * Number of items to return.\n             *\n             * Default:`50`\n             */\n            limit?: number;\n            /**\n             * Number of items to skip in the current sort order.\n             *\n             * Default: `0`\n             */\n            offset?: number;\n        };\n        type blogV3PostBookingData = {\n            /**\n             * Booking duration in minutes.\n             */\n            durations?: string;\n        };\n        type blogV3PostBorder = {\n            /**\n             * Border radius in pixels.\n             */\n            radius?: number;\n            /**\n             * Border width in pixels.\n             */\n            width?: number;\n        };\n        type blogV3PostBorderColors = {\n            /**\n             * Bottom border color as a hexadecimal value.\n             */\n            bottom?: string;\n            /**\n             * Left border color as a hexadecimal value.\n             */\n            left?: string;\n            /**\n             * Right border color as a hexadecimal value.\n             */\n            right?: string;\n            /**\n             * Top border color as a hexadecimal value.\n             */\n            top?: string;\n        };\n        type blogV3PostBulkGetPostMetricsRequest = {\n            /**\n             * Post IDs.\n             */\n            postIds: Array<string>;\n        };\n        type blogV3PostBulkGetPostMetricsResponse = {\n            /**\n             * Map of post.id to metrics\n             */\n            metrics?: Record<string, wix_blog_backend.Events.blogV3PostMetrics>;\n        };\n        type blogV3PostBulkGetPostReactionsRequest = {\n            /**\n             * Post IDs.\n             */\n            postIds: Array<string>;\n        };\n        type blogV3PostBulkGetPostReactionsResponse = {\n            /**\n             * Map of post.id to reactions\n             */\n            reactionsMap?: Record<string, wix_blog_backend.Events.blogV3PostReactions>;\n        };\n        type blogV3PostBulletedListData = {\n            /**\n             * Indentation level.\n             */\n            indentation?: number;\n        };\n        type blogV3PostButtonData = {\n            /**\n             * Styling for the button's container.\n             */\n            containerData?: wix_blog_backend.Events.blogV3PostPluginContainerData;\n            /**\n             * Button link details.\n             */\n            link?: wix_blog_backend.Events.blogV3PostLink;\n            /**\n             * Styling for the button.\n             */\n            styles?: wix_blog_backend.Events.blogV3PostStyles;\n            /**\n             * The text to display on the button.\n             */\n            text?: string;\n            /**\n             * The button type.\n             */\n            type?: string;\n        };\n        type blogV3PostCategory = {\n            /**\n             * Category ID.\n             */\n            _id?: string;\n            /**\n             * Category cover image.\n             */\n            coverImage?: string;\n            /**\n             * __Deprecated.__ Use `coverImage` instead.\n             * This property will be removed on June 30, 2023.\n             *\n             * Category cover image or video.\n             */\n            coverMedia?: wix_blog_backend.Events.blogV3PostCoverMedia;\n            /**\n             * Category description.\n             */\n            description?: string;\n            /**\n             * Category position in sequence. Categories with a lower display position are displayed first. Categories with a position of `-1` appear at the end of the sequence.\n             *\n             * Default: `-1`\n             */\n            displayPosition?: number;\n            /**\n             * Reserved for internal use.\n             */\n            internalId?: string;\n            /**\n             * Category label. Displayed in the Category Menu.\n             */\n            label?: string;\n            /**\n             * Category language.\n             *\n             * Two-letter language code in [ISO 639-1 alpha-2](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) format.\n             */\n            language?: string;\n            /**\n             * Reserved for internal use.\n             */\n            oldRank?: number;\n            /**\n             * Number of posts in the category.\n             */\n            postCount?: number;\n            /**\n             * __Deprecated.__ Use `displayPosition` instead.\n             * This property will be removed on June 30, 2023.\n             *\n             * Category position in sequence.\n             */\n            rank?: number;\n            /**\n             * SEO data.\n             */\n            seoData?: wix_blog_backend.Events.blogV3PostSeoSchema;\n            /**\n             * Category slug. For example, `'category-slug'`.\n             */\n            slug?: string;\n            /**\n             * Category title.\n             */\n            title?: string;\n            /**\n             * ID of the category's translations. All translations of a single category share the same `translationId`.\n             */\n            translationId?: string;\n            /**\n             * Category URL.\n             */\n            url?: string;\n        };\n        type blogV3PostCellStyle = {\n            /**\n             * Cell background color as a hexadecimal value.\n             */\n            backgroundColor?: string;\n            /**\n             * Vertical alignment for the cell's text.\n             */\n            verticalAlignment?: string;\n        };\n        type blogV3PostCodeBlockData = {\n            /**\n             * Styling for the code block's text.\n             */\n            textStyle?: wix_blog_backend.Events.blogV3PostTextStyle;\n        };\n        type blogV3PostCollapsibleListData = {\n            /**\n             * Styling for the collapsible list's container.\n             */\n            containerData?: wix_blog_backend.Events.blogV3PostPluginContainerData;\n            /**\n             * The direction of the text in the list. Either left-to-right or right-to-left.\n             */\n            direction?: string;\n            /**\n             * If `true`, only one item can be expanded at a time.\n             */\n            expandOnlyOne?: boolean;\n            /**\n             * Sets which items are expanded when the page loads.\n             */\n            initialExpandedItems?: string;\n            /**\n             * If `true`, The collapsible item will appear in search results as an FAQ.\n             */\n            isQapageData?: boolean;\n        };\n        type blogV3PostColorData = {\n            /**\n             * The text's background color as a hexadecimal value.\n             */\n            background?: string;\n            /**\n             * The text's foreground color as a hexadecimal value.\n             */\n            foreground?: string;\n        };\n        type blogV3PostColors = {\n            /**\n             * The background color as a hexadecimal value.\n             */\n            background?: string;\n            /**\n             * The border color as a hexadecimal value.\n             */\n            border?: string;\n            /**\n             * The text color as a hexadecimal value.\n             */\n            text?: string;\n        };\n        type blogV3PostCoverMedia = {\n            /**\n             * Whether cover media is custom. If `false` the cover image is set to the first media item that appears in the content.\n             */\n            custom?: boolean;\n            /**\n             * Whether cover media is displayed.\n             */\n            displayed?: boolean;\n            /**\n             * Is cover media enabled.\n             * Selected by user whether to display cover media on the feed\n             */\n            enabled?: boolean;\n            /**\n             * Image url.\n             */\n            image?: string;\n            /**\n             * Video url.\n             */\n            video?: string;\n        };\n        type blogV3PostCoverMediaMediaOneOf = {\n            /**\n             * Image url.\n             */\n            image?: string;\n            /**\n             * Video url.\n             */\n            video?: string;\n        };\n        type blogV3PostCreateDraftPostFromTemplateRequest = {\n            /**\n             * Post template id\n             */\n            postTemplateId: string;\n        };\n        type blogV3PostCreateDraftPostFromTemplateResponse = {\n            /**\n             * Created draft post\n             */\n            draftPost?: wix_blog_backend.Events.blogV3PostDraftPost;\n        };\n        type blogV3PostCursorMetaData = {\n            /**\n             * Cursor pointing to next result page.\n             */\n            next?: string;\n        };\n        type blogV3PostCursorPaging = {\n            /**\n             * Pointer to the next or previous page in the list of results.\n             *\n             * You can get the relevant cursor token\n             * from the `pagingMetadata` object in the previous call's response.\n             * Not relevant for the first request.\n             */\n            cursor?: string;\n            /**\n             * Number of items to load.\n             */\n            limit?: number;\n        };\n        type blogV3PostCursors = {\n            /**\n             * Cursor pointing to next page in the list of results.\n             */\n            next?: string;\n            /**\n             * Cursor pointing to previous page in the list of results.\n             */\n            prev?: string;\n        };\n        type blogV3PostDecoration = {\n            /**\n             * Data for an anchor link decoration.\n             */\n            anchorData?: wix_blog_backend.Events.blogV3PostAnchorData;\n            /**\n             * Data for a color decoration.\n             */\n            colorData?: wix_blog_backend.Events.blogV3PostColorData;\n            /**\n             * Data for a font size decoration.\n             */\n            fontSizeData?: wix_blog_backend.Events.blogV3PostFontSizeData;\n            /**\n             * Font weight for a bold decoration.\n             */\n            fontWeightValue?: number;\n            /**\n             * Data for an italic decoration.\n             */\n            italicData?: boolean;\n            /**\n             * Data for an external link decoration.\n             */\n            linkData?: wix_blog_backend.Events.blogV3PostLinkData;\n            /**\n             * Data for a mention decoration.\n             */\n            mentionData?: wix_blog_backend.Events.blogV3PostMentionData;\n            /**\n             * The type of decoration to apply.\n             */\n            type?: string;\n            /**\n             * Data for an underline decoration.\n             */\n            underlineData?: boolean;\n        };\n        type blogV3PostDecorationDataOneOf = {\n            /**\n             * Data for an anchor link decoration.\n             */\n            anchorData?: wix_blog_backend.Events.blogV3PostAnchorData;\n            /**\n             * Data for a color decoration.\n             */\n            colorData?: wix_blog_backend.Events.blogV3PostColorData;\n            /**\n             * Data for a font size decoration.\n             */\n            fontSizeData?: wix_blog_backend.Events.blogV3PostFontSizeData;\n            /**\n             * Font weight for a bold decoration.\n             */\n            fontWeightValue?: number;\n            /**\n             * Data for an italic decoration.\n             */\n            italicData?: boolean;\n            /**\n             * Data for an external link decoration.\n             */\n            linkData?: wix_blog_backend.Events.blogV3PostLinkData;\n            /**\n             * Data for a mention decoration.\n             */\n            mentionData?: wix_blog_backend.Events.blogV3PostMentionData;\n            /**\n             * Data for an underline decoration.\n             */\n            underlineData?: boolean;\n        };\n        type blogV3PostDesign = {\n            /**\n             * Styling for voting options.\n             */\n            options?: wix_blog_backend.Events.blogV3PostOptionDesign;\n            /**\n             * Styling for the poll.\n             */\n            poll?: wix_blog_backend.Events.blogV3PostPollDesign;\n        };\n        type blogV3PostDimensions = {\n            /**\n             * An array representing the minimum width of each column in pixels.\n             */\n            colsMinWidth?: Array<number>;\n            /**\n             * An array representing relative width of each column in relation to the other columns.\n             */\n            colsWidthRatio?: Array<number>;\n            /**\n             * An array representing the height of each row in pixels.\n             */\n            rowsHeight?: Array<number>;\n        };\n        type blogV3PostDividerData = {\n            /**\n             * Divider alignment.\n             */\n            alignment?: string;\n            /**\n             * Styling for the divider's container.\n             */\n            containerData?: wix_blog_backend.Events.blogV3PostPluginContainerData;\n            /**\n             * Divider line style.\n             */\n            lineStyle?: string;\n            /**\n             * Divider width.\n             */\n            width?: string;\n        };\n        type blogV3PostDocumentStyle = {\n            /**\n             * Styling for block quote nodes.\n             */\n            blockquote?: wix_blog_backend.Events.blogV3PostTextNodeStyle;\n            /**\n             * Styling for code block nodes.\n             */\n            codeBlock?: wix_blog_backend.Events.blogV3PostTextNodeStyle;\n            /**\n             * Styling for H5 nodes.\n             */\n            headerFive?: wix_blog_backend.Events.blogV3PostTextNodeStyle;\n            /**\n             * Styling for H4 nodes.\n             */\n            headerFour?: wix_blog_backend.Events.blogV3PostTextNodeStyle;\n            /**\n             * Styling for H1 nodes.\n             */\n            headerOne?: wix_blog_backend.Events.blogV3PostTextNodeStyle;\n            /**\n             * Styling for H6 nodes.\n             */\n            headerSix?: wix_blog_backend.Events.blogV3PostTextNodeStyle;\n            /**\n             * Styling for H3 nodes.\n             */\n            headerThree?: wix_blog_backend.Events.blogV3PostTextNodeStyle;\n            /**\n             * Styling for H2 nodes.\n             */\n            headerTwo?: wix_blog_backend.Events.blogV3PostTextNodeStyle;\n            /**\n             * Styling for paragraph nodes.\n             */\n            paragraph?: wix_blog_backend.Events.blogV3PostTextNodeStyle;\n        };\n        type blogV3PostDraftPost = {\n            /**\n             * Date the draft post was first created.\n             */\n            _createdDate?: Date;\n            /**\n             * Draft post ID.\n             */\n            _id?: string;\n            /**\n             * Category IDs of the draft post.\n             */\n            categoryIds?: Array<string>;\n            /**\n             * Reserved for internal use.\n             */\n            changeOrigin?: string;\n            /**\n             * Whether commenting on the draft post is enabled.\n             */\n            commentingEnabled?: boolean;\n            /**\n             * Reserved for internal use.\n             */\n            content?: Object;\n            /**\n             * Reserved for internal use.\n             */\n            contentId?: string;\n            /**\n             * Date the draft post was last edited.\n             */\n            editedDate?: Date;\n            /**\n             * Reserved for internal use.\n             */\n            editingSessionId?: string;\n            /**\n             * Draft post excerpt.\n             *\n             * If no excerpt has been manually set, an excerpt is automatically generated from the post's text.\n             * This can be retrieved using the `GENERATED_EXCERPT` fieldset.\n             */\n            excerpt?: string;\n            /**\n             * Whether the draft post is marked as featured.\n             */\n            featured?: boolean;\n            /**\n             * Date the post was first published.\n             */\n            firstPublishedDate?: Date;\n            /**\n             * Indicates if there are changes made to the draft post that have not yet been published.\n             */\n            hasUnpublishedChanges?: boolean;\n            /**\n             * Hashtags in the post.\n             */\n            hashtags?: Array<string>;\n            /**\n             * Image placed at the top of the blog page.\n             */\n            heroImage?: string;\n            /**\n             * Reserved for internal use.\n             */\n            internalId?: string;\n            /**\n             * Language the draft post is written in.\n             *\n             * 2-letter language code in [ISO 639-1 alpha-2](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) format.\n             */\n            language?: string;\n            /**\n             * Post cover media.\n             */\n            media?: wix_blog_backend.Events.blogV3PostBlogMedia;\n            /**\n             * Draft post owner's member ID.\n             */\n            memberId?: string;\n            /**\n             * Estimated reading time of the draft post (calculated automatically).\n             */\n            minutesToRead?: number;\n            /**\n             * Details of the draft post in review. Only relevant to posts submitted by guest writers.\n             */\n            moderationDetails?: wix_blog_backend.Events.blogV3PostModerationDetails;\n            /**\n             * Reserved for internal use.\n             */\n            mostRecentContributorId?: string;\n            /**\n             * Reserved for internal use.\n             */\n            paidContentParagraph?: number;\n            /**\n             * Number of paragraphs to display in a paid content preview for non-paying users.\n             */\n            previewTextParagraph?: number;\n            /**\n             * [Pricing plan IDs](https://dev.wix.com/api/rest/wix-pricing-plans). Only relevant if a post is assigned to a specific pricing plan.\n             */\n            pricingPlanIds?: Array<string>;\n            /**\n             * IDs of posts related to this draft post.\n             */\n            relatedPostIds?: Array<string>;\n            /**\n             * Draft Post rich content.\n             */\n            richContent?: wix_blog_backend.Events.blogV3PostRichContent;\n            /**\n             * Date the draft post is scheduled to be published.\n             */\n            scheduledPublishDate?: Date;\n            /**\n             * SEO data.\n             */\n            seoData?: wix_blog_backend.Events.blogV3PostSeoSchema;\n            /**\n             * SEO slug.\n             */\n            seoSlug?: string;\n            /**\n             * Reserved for internal use.\n             */\n            slugs?: Array<string>;\n            /**\n             * Status of the draft post.\n             */\n            status?: string;\n            /**\n             * Tag IDs the draft post is tagged with.\n             */\n            tagIds?: Array<string>;\n            /**\n             * Draft post title.\n             */\n            title?: string;\n            /**\n             * ID of the draft post's translations.\n             *\n             * All translations of a single post share the same `translationId`.\n             */\n            translationId?: string;\n            /**\n             * Draft post URL preview. What the URL will look like once the post is published.\n             */\n            url?: string;\n        };\n        type blogV3PostDraftPostTranslation = {\n            /**\n             * Post ID.\n             */\n            _id?: string;\n            /**\n             * Language the post is written in.\n             */\n            language?: string;\n            /**\n             * SEO data.\n             */\n            seoData?: wix_blog_backend.Events.blogV3PostSeoSchema;\n            /**\n             * Post slug. For example, 'post-slug'.\n             */\n            slug?: string;\n            /**\n             * Post status.\n             */\n            status?: string;\n            /**\n             * Post URL.\n             */\n            url?: string;\n        };\n        type blogV3PostEmbedData = {\n            /**\n             * Styling for the oEmbed node's container.\n             */\n            containerData?: wix_blog_backend.Events.blogV3PostPluginContainerData;\n            /**\n             * An [oEmbed](https://www.oembed.com) object.\n             */\n            oembed?: wix_blog_backend.Events.blogV3PostOembed;\n            /**\n             * Origin asset source.\n             */\n            src?: string;\n        };\n        type blogV3PostEmbedMedia = {\n            /**\n             * Thumbnail details.\n             */\n            thumbnail?: wix_blog_backend.Events.blogV3PostEmbedThumbnail;\n            /**\n             * Video details.\n             */\n            video?: wix_blog_backend.Events.blogV3PostEmbedVideo;\n        };\n        type blogV3PostEmbedThumbnail = {\n            /**\n             * Thumbnail height.\n             */\n            height?: number;\n            /**\n             * Thumbnail url.\n             */\n            url?: string;\n            /**\n             * Thumbnail width.\n             */\n            width?: number;\n        };\n        type blogV3PostEmbedVideo = {\n            /**\n             * Video height.\n             */\n            height?: number;\n            /**\n             * Video url.\n             */\n            url?: string;\n            /**\n             * Video width.\n             */\n            width?: number;\n        };\n        type blogV3PostEventData = {\n            /**\n             * Event location.\n             */\n            location?: string;\n            /**\n             * Event schedule.\n             */\n            scheduling?: string;\n        };\n        type blogV3PostFileData = {\n            /**\n             * Styling for the file's container.\n             */\n            containerData?: wix_blog_backend.Events.blogV3PostPluginContainerData;\n            /**\n             * File MIME type.\n             */\n            mimeType?: string;\n            /**\n             * File name.\n             */\n            name?: string;\n            /**\n             * File path.\n             */\n            path?: string;\n            /**\n             * Settings for PDF files.\n             */\n            pdfSettings?: wix_blog_backend.Events.blogV3PostPdfSettings;\n            /**\n             * File size in KB.\n             */\n            size?: number;\n            /**\n             * The source for the file's data.\n             */\n            src?: wix_blog_backend.Events.blogV3PostFileSource;\n            /**\n             * File type.\n             */\n            type?: string;\n        };\n        type blogV3PostFileSource = {\n            /**\n             * An ID that's resolved to a URL by a resolver function.\n             */\n            _id?: string;\n            /**\n             * Custom ID. Use `id` instead.\n             */\n            custom?: string;\n            /**\n             * Indicates whether the file's source is private.\n             */\n            private?: boolean;\n            /**\n             * The absolute URL for the file's source.\n             */\n            url?: string;\n        };\n        type blogV3PostFileSourceDataOneOf = {\n            /**\n             * An ID that's resolved to a URL by a resolver function.\n             */\n            _id?: string;\n            /**\n             * Custom ID. Use `id` instead.\n             */\n            custom?: string;\n            /**\n             * The absolute URL for the file's source.\n             */\n            url?: string;\n        };\n        type blogV3PostFontSizeData = {\n            /**\n             * The units used for the font size.\n             */\n            unit?: string;\n            /**\n             * Font size value.\n             */\n            value?: number;\n        };\n        type blogV3PostGalleryData = {\n            /**\n             * Styling for the gallery's container.\n             */\n            containerData?: wix_blog_backend.Events.blogV3PostPluginContainerData;\n            /**\n             * Sets whether the gallery's download button is disabled.\n             */\n            disableDownload?: boolean;\n            /**\n             * Sets whether the gallery's expand button is disabled.\n             */\n            disableExpand?: boolean;\n            /**\n             * The items in the gallery.\n             */\n            items?: Array<wix_blog_backend.Events.blogV3PostItem>;\n            /**\n             * Options for defining the gallery's appearance.\n             */\n            options?: wix_blog_backend.Events.blogV3PostGalleryOptions;\n        };\n        type blogV3PostGalleryOptions = {\n            /**\n             * Styling for gallery items.\n             */\n            item?: wix_blog_backend.Events.blogV3PostItemStyle;\n            /**\n             * Gallery layout.\n             */\n            layout?: wix_blog_backend.Events.blogV3PostLayout;\n            /**\n             * Styling for gallery thumbnail images.\n             */\n            thumbnails?: wix_blog_backend.Events.blogV3PostThumbnails;\n        };\n        type blogV3PostGetPostBySlugRequest = {\n            /**\n             * __Deprecated.__ Use `fieldsets` instead.\n             * This parameter will be removed on June 30, 2023.\n             *\n             * List of post fields to be included in the response.\n             */\n            fieldsToInclude?: Array<string>;\n            /**\n             * List of additional post fields to include in the response. For example, use the `URL` fieldset to retrieve the url field in\n             * the response in addition to the post’s base fields. Base fields don’t include any of the supported fieldset values. By default\n             * only the post’s base fields are returned.\n             */\n            fieldsets?: Array<string>;\n            /**\n             * Slug of the post to retrieve.\n             */\n            slug: string;\n        };\n        type blogV3PostGetPostBySlugResponse = {\n            /**\n             * Post info.\n             */\n            post?: wix_blog_backend.Events.blogV3PostPost;\n        };\n        type blogV3PostGetPostMetricsRequest = {\n            /**\n             * Post ID.\n             */\n            postId: string;\n        };\n        type blogV3PostGetPostMetricsResponse = {\n            /**\n             * Post metrics.\n             */\n            metrics?: wix_blog_backend.Events.blogV3PostMetrics;\n        };\n        type blogV3PostGetPostRequest = {\n            /**\n             * __Deprecated.__ Use `fieldsets` instead.\n             * This parameter will be removed on June 30, 2023.\n             *\n             * List of post fields to be included in the response.\n             */\n            fieldsToInclude?: Array<string>;\n            /**\n             * List of additional post fields to include in the response. For example, use the `URL` fieldset to retrieve the url field in\n             * the response in addition to the post’s base fields. Base fields don’t include any of the supported fieldset values. By default\n             * only the post’s base fields are returned.\n             */\n            fieldsets?: Array<string>;\n            /**\n             * Post ID.\n             */\n            postId: string;\n        };\n        type blogV3PostGetPostResponse = {\n            /**\n             * Post info.\n             */\n            post?: wix_blog_backend.Events.blogV3PostPost;\n        };\n        type blogV3PostGetTemplateRequest = {\n            /**\n             * Post template id\n             */\n            postTemplateId: string;\n        };\n        type blogV3PostGetTemplateResponse = {\n            /**\n             * Post template\n             */\n            postTemplate?: wix_blog_backend.Events.blogV3PostPost;\n        };\n        type blogV3PostGetTotalLikesPerMemberRequest = {\n            /**\n             * Member ID.\n             */\n            memberId: string;\n        };\n        type blogV3PostGetTotalLikesPerMemberResponse = {\n            /**\n             * The total number of likes of the member.\n             */\n            total?: number;\n        };\n        type blogV3PostGetTotalPostsRequest = {\n            /**\n             * Language filter.\n             *\n             * 2-letter language code in [ISO 639-1 alpha-2](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) format.\n             * Pass a language to receive the total amount of posts in that specified language.\n             */\n            language?: string;\n        };\n        type blogV3PostGetTotalPostsResponse = {\n            /**\n             * Total amount of published posts.\n             */\n            total?: number;\n        };\n        type blogV3PostGetTotalPublicationsRequest = {\n            /**\n             * Language filter\n             */\n            language?: string;\n        };\n        type blogV3PostGetTotalPublicationsResponse = {\n            /**\n             * Total amount of publications.\n             */\n            total?: number;\n        };\n        type blogV3PostGif = {\n            /**\n             * GIF format URL.\n             */\n            gif?: string;\n            /**\n             * MP4 format URL.\n             */\n            mp4?: string;\n            /**\n             * Thumbnail URL.\n             */\n            still?: string;\n        };\n        type blogV3PostGifData = {\n            /**\n             * Styling for the GIF's container.\n             */\n            containerData?: wix_blog_backend.Events.blogV3PostPluginContainerData;\n            /**\n             * The source of the downsized GIF.\n             */\n            downsized?: wix_blog_backend.Events.blogV3PostGif;\n            /**\n             * Height in pixels.\n             */\n            height?: number;\n            /**\n             * The source of the full size GIF.\n             */\n            original?: wix_blog_backend.Events.blogV3PostGif;\n            /**\n             * Width in pixels.\n             */\n            width?: number;\n        };\n        type blogV3PostGradient = {\n            /**\n             * The gradient angle in degrees.\n             */\n            angle?: number;\n            /**\n             * The end color as a hexademical value.\n             */\n            lastColor?: string;\n            /**\n             * The start color as a hexademical value.\n             */\n            startColor?: string;\n        };\n        type blogV3PostHeadingData = {\n            /**\n             * Indentation level from 1-6.\n             */\n            indentation?: number;\n            /**\n             * Heading level from 1-6.\n             */\n            level?: number;\n            /**\n             * Styling for the heading text.\n             */\n            textStyle?: wix_blog_backend.Events.blogV3PostTextStyle;\n        };\n        type blogV3PostHeight = {\n            /**\n             * A custom height value in pixels.\n             */\n            custom?: string;\n        };\n        type blogV3PostHtmlData = {\n            /**\n             * Styling for the HTML node's container.\n             */\n            containerData?: wix_blog_backend.Events.blogV3PostPluginContainerData;\n            /**\n             * The HTML code for the node.\n             */\n            html?: string;\n            /**\n             * Whether this is an AdSense element. Use `source` instead.\n             */\n            isAdsense?: boolean;\n            /**\n             * The type of HTML code.\n             */\n            source?: string;\n            /**\n             * The URL for the HTML code for the node.\n             */\n            url?: string;\n        };\n        type blogV3PostHtmlDataDataOneOf = {\n            /**\n             * The HTML code for the node.\n             */\n            html?: string;\n            /**\n             * Whether this is an AdSense element. Use `source` instead.\n             */\n            isAdsense?: boolean;\n            /**\n             * The URL for the HTML code for the node.\n             */\n            url?: string;\n        };\n        type blogV3PostImage = {\n            /**\n             * Link details for images that are links.\n             */\n            link?: wix_blog_backend.Events.blogV3PostLink;\n            /**\n             * Image file details.\n             */\n            media?: wix_blog_backend.Events.blogV3PostMedia;\n        };\n        type blogV3PostImageData = {\n            /**\n             * Image's alternative text.\n             */\n            altText?: string;\n            /**\n             * Image caption.\n             */\n            caption?: string;\n            /**\n             * Styling for the image's container.\n             */\n            containerData?: wix_blog_backend.Events.blogV3PostPluginContainerData;\n            /**\n             * Sets whether the image's download button is disabled.\n             */\n            disableDownload?: boolean;\n            /**\n             * Sets whether the image expands to full screen when clicked.\n             */\n            disableExpand?: boolean;\n            /**\n             * Image file details.\n             */\n            image?: wix_blog_backend.Events.blogV3PostMedia;\n            /**\n             * Link details for images that are links.\n             */\n            link?: wix_blog_backend.Events.blogV3PostLink;\n        };\n        type blogV3PostInitialPostsCopied = {\n            /**\n             * Number of posts copied.\n             */\n            count?: number;\n        };\n        type blogV3PostItem = {\n            /**\n             * Item's alternative text.\n             */\n            altText?: string;\n            /**\n             * An image item.\n             */\n            image?: wix_blog_backend.Events.blogV3PostImage;\n            /**\n             * Item title.\n             */\n            title?: string;\n            /**\n             * A video item.\n             */\n            video?: wix_blog_backend.Events.blogV3PostItemVideo;\n        };\n        type blogV3PostItemDataOneOf = {\n            /**\n             * An image item.\n             */\n            image?: wix_blog_backend.Events.blogV3PostImage;\n            /**\n             * A video item.\n             */\n            video?: wix_blog_backend.Events.blogV3PostItemVideo;\n        };\n        type blogV3PostItemStyle = {\n            /**\n             * Sets how item images are cropped.\n             */\n            crop?: string;\n            /**\n             * Item ratio\n             */\n            ratio?: number;\n            /**\n             * The spacing between items in pixels.\n             */\n            spacing?: number;\n            /**\n             * Desirable dimension for each item in pixels (behvaior changes according to gallery type)\n             */\n            targetSize?: number;\n        };\n        type blogV3PostItemVideo = {\n            /**\n             * Video file details.\n             */\n            media?: wix_blog_backend.Events.blogV3PostMedia;\n            /**\n             * Video thumbnail file details.\n             */\n            thumbnail?: wix_blog_backend.Events.blogV3PostMedia;\n        };\n        type blogV3PostLayout = {\n            /**\n             * Sets whether horizontal scroll is enabled.\n             */\n            horizontalScroll?: boolean;\n            /**\n             * The number of columns to display on mobile screens.\n             */\n            mobileNumberOfColumns?: number;\n            /**\n             * The number of columns to display on full size screens.\n             */\n            numberOfColumns?: number;\n            /**\n             * Gallery orientation.\n             */\n            orientation?: string;\n            /**\n             * Gallery layout type.\n             */\n            type?: string;\n        };\n        type blogV3PostLink = {\n            /**\n             * The target node's ID. Used for linking to another node in this object.\n             */\n            anchor?: string;\n            /**\n             * A serialized object used for a custom or external link panel.\n             */\n            customData?: string;\n            /**\n             * The HTML `rel` attribute value for the link. This object specifies the relationship between the current document and the linked document.\n             */\n            rel?: wix_blog_backend.Events.blogV3PostRel;\n            /**\n             * he HTML `target` attribute value for the link. This property defines where the linked document opens as follows:\n             * `SELF` - Default. Opens the linked document in the same frame as the link.\n             * `BLANK` - Opens the linked document in a new browser tab or window.\n             * `PARENT` - Opens the linked document in the link's parent frame.\n             * `TOP` - Opens the linked document in the full body of the link's browser tab or window.\n             */\n            target?: string;\n            /**\n             * The absolute URL for the linked document.\n             */\n            url?: string;\n        };\n        type blogV3PostLinkData = {\n            /**\n             * Link details.\n             */\n            link?: wix_blog_backend.Events.blogV3PostLink;\n        };\n        type blogV3PostLinkDataOneOf = {\n            /**\n             * The target node's ID. Used for linking to another node in this object.\n             */\n            anchor?: string;\n            /**\n             * The absolute URL for the linked document.\n             */\n            url?: string;\n        };\n        type blogV3PostLinkPreviewData = {\n            /**\n             * Styling for the link preview's container.\n             */\n            containerData?: wix_blog_backend.Events.blogV3PostPluginContainerData;\n            /**\n             * Preview description.\n             */\n            description?: string;\n            /**\n             * The preview content as HTML.\n             */\n            html?: string;\n            /**\n             * Link details.\n             */\n            link?: wix_blog_backend.Events.blogV3PostLink;\n            /**\n             * Preview thumbnail URL.\n             */\n            thumbnailUrl?: string;\n            /**\n             * Preview title.\n             */\n            title?: string;\n        };\n        type blogV3PostListMigratedPostsRequest = {\n            /**\n             * New blog version instance id\n             */\n            instanceId: string;\n            /**\n             * Cursor pointing to page of results\n             */\n            paging?: wix_blog_backend.Events.blogV3PostBlogCursorPaging;\n        };\n        type blogV3PostListMigratedPostsResponse = {\n            /**\n             * Pagination\n             */\n            pagingMetaData?: wix_blog_backend.Events.blogV3PostCursorMetaData;\n            /**\n             * List of posts\n             */\n            posts?: Array<wix_blog_backend.Events.blogV3PostPost>;\n            /**\n             * Data of post in old blog by post id\n             */\n            postsMigrationMeta?: Record<string, wix_blog_backend.Events.blogV3PostPostMigrationMetaData>;\n        };\n        type blogV3PostListPostsRequest = {\n            /**\n             * Category filter.\n             *\n             * Pass an array of category IDs to return only posts with any of the provided categories.\n             * If omitted, all posts with or without associated categories are returned.\n             */\n            categoryIds?: Array<string>;\n            /**\n             * Whether to return only featured posts.\n             *\n             * Default: `false`\n             */\n            featured?: boolean;\n            /**\n             * __Deprecated.__ Use `fieldsets` instead.\n             * This parameter will be removed on June 30, 2023.\n             *\n             * List of post fields to be included in the response.\n             */\n            fieldsToInclude?: Array<string>;\n            /**\n             * List of additional post fields to include in the response. For example, use the `URL` fieldset to retrieve the url field in\n             * the response in addition to the post’s base fields. Base fields don’t include any of the supported fieldset values. By default\n             * only the post’s base fields are returned.\n             */\n            fieldsets?: Array<string>;\n            /**\n             * Hashtag filter.\n             *\n             * Pass an array of hashtags to return only posts containing any of the provided hashtags.\n             * If omitted, all posts with or without hashtags are returned.\n             */\n            hashtags?: Array<string>;\n            /**\n             * Language filter.\n             *\n             * 2-letter language code in [ISO 639-1 alpha-2](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) format.\n             * Pass a language to only receive posts that are in that language.\n             * If omitted, posts in all languages are returned.\n             */\n            language?: string;\n            /**\n             * Post owner's member ID.\n             */\n            memberId?: string;\n            /**\n             * Pagination options.\n             */\n            paging?: wix_blog_backend.Events.blogV3PostBlogPaging;\n            /**\n             * Sorting options.\n             *\n             * - `FEED`: Ordered by `firstPublishedDate` in descending order with pinned posts first.\n             * - `VIEW_COUNT`: Ordered by total number of views in descending order.\n             * - `LIKE_COUNT`: Ordered by total number of likes in descending order.\n             * - `PUBLISHED_DATE_ASC`: Ordered by `firstPublishedDate` in ascending order.\n             * - `PUBLISHED_DATE_DESC`: Ordered by `firstPublishedDate` in descending order.\n             * - `TITLE_ASC`: Ordered by `title` in ascening order.\n             * - `TITLE_DESC`: Ordered by `title` in descending order.\n             * - `RATING`: reserved for internal use.\n             *\n             * Default: `FEED`\n             */\n            sort?: string;\n            /**\n             * Tag filter.\n             *\n             * Pass an array of tag IDs to return only posts with any of the provided tags.\n             * If omitted, all posts with or without tags are returned.\n             */\n            tagIds?: Array<string>;\n        };\n        type blogV3PostListPostsResponse = {\n            /**\n             * Details on the paged set of results returned.\n             */\n            metaData?: wix_blog_backend.Events.blogV3PostMetaData;\n            /**\n             * List of posts.\n             */\n            posts?: Array<wix_blog_backend.Events.blogV3PostPost>;\n        };\n        type blogV3PostListTemplatesRequest = {\n            /**\n             * Filter post templates by given template category ids\n             */\n            categoryIds?: Array<string>;\n            /**\n             * Filter post templates by provided language\n             */\n            language?: string;\n            /**\n             * Returns post template categories when set to TRUE\n             */\n            listTemplateCategories?: boolean;\n            /**\n             * Pagination options.\n             */\n            paging?: wix_blog_backend.Events.blogV3PostBlogPaging;\n            /**\n             * Sort order by ascending/descending publish date. Default is ascending publish date sort\n             */\n            sort?: string;\n        };\n        type blogV3PostListTemplatesResponse = {\n            /**\n             * Available post templates\n             */\n            postTemplates?: Array<wix_blog_backend.Events.blogV3PostPost>;\n            /**\n             * Details on the paged set of posts templates returned.\n             */\n            postTemplatesMetaData?: wix_blog_backend.Events.blogV3PostMetaData;\n            /**\n             * Post template categories. This value is returned empty unless asked explicitly\n             */\n            templateCategories?: Array<wix_blog_backend.Events.blogV3PostCategory>;\n        };\n        type blogV3PostListValue = {\n            /**\n             * Repeated field of dynamically typed values.\n             */\n            values?: Array<any>;\n        };\n        type blogV3PostMapData = {\n            /**\n             * Styling for the map's container.\n             */\n            containerData?: wix_blog_backend.Events.blogV3PostPluginContainerData;\n            /**\n             * Map settings.\n             */\n            mapSettings?: wix_blog_backend.Events.blogV3PostMapSettings;\n        };\n        type blogV3PostMapSettings = {\n            /**\n             * The address to display on the map.\n             */\n            address?: string;\n            /**\n             * Sets whether the map is draggable.\n             */\n            draggable?: boolean;\n            /**\n             * Initial zoom value.\n             */\n            initialZoom?: number;\n            /**\n             * Location latitude.\n             */\n            lat?: number;\n            /**\n             * Location longitude.\n             */\n            lng?: number;\n            /**\n             * Location name.\n             */\n            locationName?: string;\n            /**\n             * Map type. `HYBRID` is a combination of the `ROADMAP` and `SATELLITE` map types.\n             */\n            mapType?: string;\n            /**\n             * Sets whether the location marker is visible.\n             */\n            marker?: boolean;\n            /**\n             * Sets whether street view control is enabled.\n             */\n            streetViewControl?: boolean;\n            /**\n             * Sets whether view mode control is enabled.\n             */\n            viewModeControl?: boolean;\n            /**\n             * Sets whether zoom control is enabled.\n             */\n            zoomControl?: boolean;\n        };\n        type blogV3PostMedia = {\n            /**\n             * Media duration in seconds. Only relevant for audio and video files.\n             */\n            duration?: number;\n            /**\n             * Media height in pixels.\n             */\n            height?: number;\n            /**\n             * The source for the media's data.\n             */\n            src?: wix_blog_backend.Events.blogV3PostFileSource;\n            /**\n             * Media width in pixels.\n             */\n            width?: number;\n        };\n        type blogV3PostMentionData = {\n            /**\n             * Mentioned user's ID.\n             */\n            _id?: string;\n            /**\n             * The mentioned user's name.\n             */\n            name?: string;\n            /**\n             * The version of the user's name that appears after the `@` character in the mention.\n             */\n            slug?: string;\n        };\n        type blogV3PostMetaData = {\n            /**\n             * Number of items returned in this response.\n             */\n            count?: number;\n            /**\n             * Pointer to the next or previous page in the list of results.\n             */\n            cursor?: string;\n            /**\n             * Requested offset.\n             */\n            offset?: number;\n            /**\n             * Total number of items that match the query.\n             */\n            total?: number;\n        };\n        type blogV3PostMetadata = {\n            /**\n             * Object ID.\n             */\n            _id?: string;\n            /**\n             * When the object was created.\n             */\n            createdTimestamp?: Date;\n            /**\n             * When the object was most recently updated.\n             */\n            updatedTimestamp?: Date;\n            /**\n             * Schema version.\n             */\n            version?: number;\n        };\n        type blogV3PostMetrics = {\n            /**\n             * Total number of post comments.\n             */\n            comments?: number;\n            /**\n             * Total number of post likes.\n             */\n            likes?: number;\n            /**\n             * Total number of post views.\n             */\n            views?: number;\n        };\n        type blogV3PostModerationDetails = {\n            /**\n             * Member ID of the person who approved or rejected the post.\n             */\n            moderatedBy?: string;\n            /**\n             * Date the post was approved or rejected.\n             */\n            moderationDate?: Date;\n            /**\n             * Status indicating whether the submission was approved or rejected by the moderator.\n             */\n            status?: string;\n            /**\n             * Member ID of the person submitting the draft post for review.\n             */\n            submittedBy?: string;\n            /**\n             * Date the post was submitted for review.\n             */\n            submittedDate?: Date;\n        };\n        type blogV3PostNode = {\n            /**\n             * Node ID.\n             */\n            _id?: string;\n            /**\n             * Data for an app embed node.\n             */\n            appEmbedData?: wix_blog_backend.Events.blogV3PostAppEmbedData;\n            /**\n             * Data for an audio node.\n             */\n            audioData?: wix_blog_backend.Events.blogV3PostAudioData;\n            /**\n             * Data for a block quote node.\n             */\n            blockquoteData?: wix_blog_backend.Events.blogV3PostBlockquoteData;\n            /**\n             * Data for a bulleted list node.\n             */\n            bulletedListData?: wix_blog_backend.Events.blogV3PostBulletedListData;\n            /**\n             * Data for a button node.\n             */\n            buttonData?: wix_blog_backend.Events.blogV3PostButtonData;\n            /**\n             * Data for a code block node.\n             */\n            codeBlockData?: wix_blog_backend.Events.blogV3PostCodeBlockData;\n            /**\n             * Data for a collapsible list node.\n             */\n            collapsibleListData?: wix_blog_backend.Events.blogV3PostCollapsibleListData;\n            /**\n             * Data for a divider node.\n             */\n            dividerData?: wix_blog_backend.Events.blogV3PostDividerData;\n            /**\n             * Data for an oEmbed node.\n             */\n            embedData?: wix_blog_backend.Events.blogV3PostEmbedData;\n            /**\n             * Data for a custon external node.\n             */\n            externalData?: Object;\n            /**\n             * Data for a file node.\n             */\n            fileData?: wix_blog_backend.Events.blogV3PostFileData;\n            /**\n             * Data for a gallery node.\n             */\n            galleryData?: wix_blog_backend.Events.blogV3PostGalleryData;\n            /**\n             * Data for a GIF node.\n             */\n            gifData?: wix_blog_backend.Events.blogV3PostGifData;\n            /**\n             * Data for a heading node.\n             */\n            headingData?: wix_blog_backend.Events.blogV3PostHeadingData;\n            /**\n             * Data for an embedded HTML node.\n             */\n            htmlData?: wix_blog_backend.Events.blogV3PostHtmlData;\n            /**\n             * Data for an image node.\n             */\n            imageData?: wix_blog_backend.Events.blogV3PostImageData;\n            /**\n             * Data for a link preview node.\n             */\n            linkPreviewData?: wix_blog_backend.Events.blogV3PostLinkPreviewData;\n            /**\n             * Data for a map node.\n             */\n            mapData?: wix_blog_backend.Events.blogV3PostMapData;\n            /**\n             * A list of child nodes.\n             */\n            nodes?: Array<wix_blog_backend.Events.blogV3PostNode>;\n            /**\n             * Data for an ordered list node.\n             */\n            orderedListData?: wix_blog_backend.Events.blogV3PostOrderedListData;\n            /**\n             * Data for a paragraph node.\n             */\n            paragraphData?: wix_blog_backend.Events.blogV3PostParagraphData;\n            /**\n             * Data for a poll node.\n             */\n            pollData?: wix_blog_backend.Events.blogV3PostPollData;\n            /**\n             * Padding and background color styling for the node.\n             */\n            style?: wix_blog_backend.Events.blogV3PostNodeStyle;\n            /**\n             * Data for a table cell node.\n             */\n            tableCellData?: wix_blog_backend.Events.blogV3PostTableCellData;\n            /**\n             * Data for a table node.\n             */\n            tableData?: wix_blog_backend.Events.blogV3PostTableData;\n            /**\n             * Data for a text node. Used to apply decorations to text.\n             */\n            textData?: wix_blog_backend.Events.blogV3PostTextData;\n            /**\n             * Node type. Use `APP_EMBED` for nodes that embed content from other Wix apps. Use `EMBED` to embed content in [oEmbed](https://oembed.com/) format.\n             */\n            type?: string;\n            /**\n             * Data for a video node.\n             */\n            videoData?: wix_blog_backend.Events.blogV3PostVideoData;\n        };\n        type blogV3PostNodeDataOneOf = {\n            /**\n             * Data for an app embed node.\n             */\n            appEmbedData?: wix_blog_backend.Events.blogV3PostAppEmbedData;\n            /**\n             * Data for an audio node.\n             */\n            audioData?: wix_blog_backend.Events.blogV3PostAudioData;\n            /**\n             * Data for a block quote node.\n             */\n            blockquoteData?: wix_blog_backend.Events.blogV3PostBlockquoteData;\n            /**\n             * Data for a bulleted list node.\n             */\n            bulletedListData?: wix_blog_backend.Events.blogV3PostBulletedListData;\n            /**\n             * Data for a button node.\n             */\n            buttonData?: wix_blog_backend.Events.blogV3PostButtonData;\n            /**\n             * Data for a code block node.\n             */\n            codeBlockData?: wix_blog_backend.Events.blogV3PostCodeBlockData;\n            /**\n             * Data for a collapsible list node.\n             */\n            collapsibleListData?: wix_blog_backend.Events.blogV3PostCollapsibleListData;\n            /**\n             * Data for a divider node.\n             */\n            dividerData?: wix_blog_backend.Events.blogV3PostDividerData;\n            /**\n             * Data for an oEmbed node.\n             */\n            embedData?: wix_blog_backend.Events.blogV3PostEmbedData;\n            /**\n             * Data for a custon external node.\n             */\n            externalData?: Object;\n            /**\n             * Data for a file node.\n             */\n            fileData?: wix_blog_backend.Events.blogV3PostFileData;\n            /**\n             * Data for a gallery node.\n             */\n            galleryData?: wix_blog_backend.Events.blogV3PostGalleryData;\n            /**\n             * Data for a GIF node.\n             */\n            gifData?: wix_blog_backend.Events.blogV3PostGifData;\n            /**\n             * Data for a heading node.\n             */\n            headingData?: wix_blog_backend.Events.blogV3PostHeadingData;\n            /**\n             * Data for an embedded HTML node.\n             */\n            htmlData?: wix_blog_backend.Events.blogV3PostHtmlData;\n            /**\n             * Data for an image node.\n             */\n            imageData?: wix_blog_backend.Events.blogV3PostImageData;\n            /**\n             * Data for a link preview node.\n             */\n            linkPreviewData?: wix_blog_backend.Events.blogV3PostLinkPreviewData;\n            /**\n             * Data for a map node.\n             */\n            mapData?: wix_blog_backend.Events.blogV3PostMapData;\n            /**\n             * Data for an ordered list node.\n             */\n            orderedListData?: wix_blog_backend.Events.blogV3PostOrderedListData;\n            /**\n             * Data for a paragraph node.\n             */\n            paragraphData?: wix_blog_backend.Events.blogV3PostParagraphData;\n            /**\n             * Data for a poll node.\n             */\n            pollData?: wix_blog_backend.Events.blogV3PostPollData;\n            /**\n             * Data for a table cell node.\n             */\n            tableCellData?: wix_blog_backend.Events.blogV3PostTableCellData;\n            /**\n             * Data for a table node.\n             */\n            tableData?: wix_blog_backend.Events.blogV3PostTableData;\n            /**\n             * Data for a text node. Used to apply decorations to text.\n             */\n            textData?: wix_blog_backend.Events.blogV3PostTextData;\n            /**\n             * Data for a video node.\n             */\n            videoData?: wix_blog_backend.Events.blogV3PostVideoData;\n        };\n        type blogV3PostNodeStyle = {\n            /**\n             * The background color as a hexadecimal value.\n             */\n            backgroundColor?: string;\n            /**\n             * The bottom padding value in pixels.\n             */\n            paddingBottom?: string;\n            /**\n             * The top padding value in pixels.\n             */\n            paddingTop?: string;\n        };\n        type blogV3PostOembed = {\n            /**\n             * The name of the author or owner of the resource.\n             */\n            authorName?: string;\n            /**\n             * The URL for the author or owner of the resource.\n             */\n            authorUrl?: string;\n            /**\n             * The height of the resource specified in the `url` property in pixels.\n             */\n            height?: number;\n            /**\n             * HTML for embedding a video player. The HTML should have no padding or margins.\n             */\n            html?: string;\n            /**\n             * The name of the resource provider.\n             */\n            providerName?: string;\n            /**\n             * The URL for the resource provider.\n             */\n            providerUrl?: string;\n            /**\n             * The height of the resource's thumbnail image. If this property is defined, `thumbnailUrl` and `thumbnailWidth`must also be defined.\n             */\n            thumbnailHeight?: string;\n            /**\n             * The URL for a thumbnail image for the resource. If this property is defined, `thumbnailWidth` and `thumbnailHeight` must also be defined.\n             */\n            thumbnailUrl?: string;\n            /**\n             * The width of the resource's thumbnail image. If this property is defined, `thumbnailUrl` and `thumbnailHeight` must also be defined.\n             */\n            thumbnailWidth?: string;\n            /**\n             * Resource title.\n             */\n            title?: string;\n            /**\n             * The resource type.\n             */\n            type?: string;\n            /**\n             * The source URL for the resource.\n             */\n            url?: string;\n            /**\n             * The oEmbed version number.  This value must be `1.0`.\n             */\n            version?: string;\n            /**\n             * The URL for an embedded viedo.\n             */\n            videoUrl?: string;\n            /**\n             * The width of the resource specified in the `url` property in pixels.\n             */\n            width?: number;\n        };\n        type blogV3PostOldBlogMigratedEvent = {\n            /**\n             * Instance id of new version of blog\n             */\n            newBlogInstanceId?: string;\n            /**\n             * Instance id of old version of blog\n             */\n            oldBlogInstanceId?: string;\n        };\n        type blogV3PostOption = {\n            /**\n             * Option ID.\n             */\n            _id?: string;\n            /**\n             * The image displayed with the option.\n             */\n            image?: wix_blog_backend.Events.blogV3PostMedia;\n            /**\n             * Option title.\n             */\n            title?: string;\n        };\n        type blogV3PostOptionDesign = {\n            /**\n             * Border radius in pixels.\n             */\n            borderRadius?: number;\n        };\n        type blogV3PostOptionLayout = {\n            /**\n             * Sets whether to display option images.\n             */\n            enableImage?: boolean;\n        };\n        type blogV3PostOrderedListData = {\n            /**\n             * Indentation level.\n             */\n            indentation?: number;\n        };\n        type blogV3PostPaging = {\n            /**\n             * Number of items to load.\n             */\n            limit?: number;\n            /**\n             * Number of items to skip in the current sort order.\n             */\n            offset?: number;\n        };\n        type blogV3PostPagingMetadataV2 = {\n            /**\n             * Number of items returned in the response.\n             */\n            count?: number;\n            /**\n             * Cursors to navigate through the result pages using `next` and `prev`. Returned if cursor paging is used.\n             */\n            cursors?: wix_blog_backend.Events.blogV3PostCursors;\n            /**\n             * Offset that was requested.\n             */\n            offset?: number;\n            /**\n             * Flag that indicates the server failed to calculate the `total` field.\n             */\n            tooManyToCount?: boolean;\n            /**\n             * Total number of items that match the query. Returned if offset paging is used and the `tooManyToCount` flag is not set.\n             */\n            total?: number;\n        };\n        type blogV3PostParagraphData = {\n            /**\n             * Indentation level from 1-6.\n             */\n            indentation?: number;\n            /**\n             * Styling for the paragraph text.\n             */\n            textStyle?: wix_blog_backend.Events.blogV3PostTextStyle;\n        };\n        type blogV3PostPdfSettings = {\n            /**\n             * Sets whether the PDF download button is disabled.\n             */\n            disableDownload?: boolean;\n            /**\n             * Sets whether the PDF print button is disabled.\n             */\n            disablePrint?: boolean;\n            /**\n             * PDF view mode. One of the following:\n             * `NONE` : The PDF isn't displayed.\n             * `FULL` : A full page view of the PDF is displayed.\n             * `MINI` : A mini view of the PDF is displayed.\n             */\n            viewMode?: string;\n        };\n        type blogV3PostPeriodPostCount = {\n            /**\n             * Start of time range in ISO 8601 date and time format.\n             */\n            periodStart?: Date;\n            /**\n             * Number of posts published during this month.\n             */\n            postCount?: number;\n        };\n        type blogV3PostPeriodPublicationsCount = {\n            /**\n             * Start of time range in ISO 8601 date and time format.\n             */\n            periodStart?: Date;\n            /**\n             * Number of posts published during this month.\n             */\n            publicationsCount?: number;\n        };\n        type blogV3PostPermissions = {\n            /**\n             * Sets whether one voter can vote multiple times.\n             */\n            allowMultipleVotes?: boolean;\n            /**\n             * Sets who can view the poll results.\n             */\n            view?: string;\n            /**\n             * Sets who can vote.\n             */\n            vote?: string;\n        };\n        type blogV3PostPlatformQuery = {\n            /**\n             * Cursor token pointing to a page of results. Not used in the first request. Following requests use the cursor token and not `filter` or `sort`.\n             */\n            cursorPaging?: wix_blog_backend.Events.blogV3PostCursorPaging;\n            /**\n             * Filter object in the following format:\n             * `\"filter\" : {\n             * \"fieldName1\": \"value1\",\n             * \"fieldName2\":{\"$operator\":\"value2\"}\n             * }`\n             * Example of operators: `$eq`, `$ne`, `$lt`, `$lte`, `$gt`, `$gte`, `$in`, `$hasSome`, `$hasAll`, `$startsWith`, `$contains`\n             */\n            filter?: Object;\n            /**\n             * Paging options to limit and skip the number of items.\n             */\n            paging?: wix_blog_backend.Events.blogV3PostPaging;\n            /**\n             * Sort object in the following format:\n             * `[{\"fieldName\":\"sortField1\",\"order\":\"ASC\"},{\"fieldName\":\"sortField2\",\"order\":\"DESC\"}]`\n             */\n            sort?: Array<wix_blog_backend.Events.blogV3PostSorting>;\n        };\n        type blogV3PostPlatformQueryPagingMethodOneOf = {\n            /**\n             * Cursor token pointing to a page of results. Not used in the first request. Following requests use the cursor token and not `filter` or `sort`.\n             */\n            cursorPaging?: wix_blog_backend.Events.blogV3PostCursorPaging;\n            /**\n             * Paging options to limit and skip the number of items.\n             */\n            paging?: wix_blog_backend.Events.blogV3PostPaging;\n        };\n        type blogV3PostPlaybackOptions = {\n            /**\n             * Sets whether the media will automatically start playing.\n             */\n            autoPlay?: boolean;\n            /**\n             * Sets whether media's will be looped.\n             */\n            playInLoop?: boolean;\n            /**\n             * Sets whether media's controls will be shown.\n             */\n            showControls?: boolean;\n        };\n        type blogV3PostPluginContainerData = {\n            /**\n             * The node's alignment within its container.\n             */\n            alignment?: string;\n            /**\n             * The height of the node when it's displayed.\n             */\n            height?: wix_blog_backend.Events.blogV3PostHeight;\n            /**\n             * Spoiler cover settings for the node.\n             */\n            spoiler?: wix_blog_backend.Events.blogV3PostSpoiler;\n            /**\n             * Sets whether text should wrap around this node when it's displayed. If `textWrap` is `false`, the node takes up the width of its container.\n             */\n            textWrap?: boolean;\n            /**\n             * The width of the node when it's displayed.\n             */\n            width?: wix_blog_backend.Events.blogV3PostPluginContainerDataWidth;\n        };\n        type blogV3PostPluginContainerDataWidth = {\n            /**\n             * A custom width value in pixels.\n             */\n            custom?: string;\n            /**\n             * One of the following predefined width options:\n             * `CONTENT`: The width of the container matches the content width.\n             * `SMALL`: Small width.\n             * `ORIGINAL`: The width of the container matches the original asset width.\n             * `FULL_WIDTH`: Full width.\n             */\n            size?: string;\n        };\n        type blogV3PostPluginContainerDataWidthDataOneOf = {\n            /**\n             * A custom width value in pixels.\n             */\n            custom?: string;\n            /**\n             * One of the following predefined width options:\n             * `CONTENT`: The width of the container matches the content width.\n             * `SMALL`: Small width.\n             * `ORIGINAL`: The width of the container matches the original asset width.\n             * `FULL_WIDTH`: Full width.\n             */\n            size?: string;\n        };\n        type blogV3PostPoll = {\n            /**\n             * Poll ID.\n             */\n            _id?: string;\n            /**\n             * Poll creator ID.\n             */\n            creatorId?: string;\n            /**\n             * Main poll image.\n             */\n            image?: wix_blog_backend.Events.blogV3PostMedia;\n            /**\n             * Voting options.\n             */\n            options?: Array<wix_blog_backend.Events.blogV3PostOption>;\n            /**\n             * The poll's permissions and display settings.\n             */\n            settings?: wix_blog_backend.Events.blogV3PostPollSettings;\n            /**\n             * Poll title.\n             */\n            title?: string;\n        };\n        type blogV3PostPollData = {\n            /**\n             * Styling for the poll's container.\n             */\n            containerData?: wix_blog_backend.Events.blogV3PostPluginContainerData;\n            /**\n             * Styling for the poll and voting options.\n             */\n            design?: wix_blog_backend.Events.blogV3PostDesign;\n            /**\n             * Layout settings for the poll and voting options.\n             */\n            layout?: wix_blog_backend.Events.blogV3PostPollDataLayout;\n            /**\n             * Poll data.\n             */\n            poll?: wix_blog_backend.Events.blogV3PostPoll;\n        };\n        type blogV3PostPollDataLayout = {\n            /**\n             * Voting otpions layout settings.\n             */\n            options?: wix_blog_backend.Events.blogV3PostOptionLayout;\n            /**\n             * Poll layout settings.\n             */\n            poll?: wix_blog_backend.Events.blogV3PostPollLayout;\n        };\n        type blogV3PostPollDesign = {\n            /**\n             * Background styling.\n             */\n            background?: wix_blog_backend.Events.blogV3PostBackground;\n            /**\n             * Border radius in pixels.\n             */\n            borderRadius?: number;\n        };\n        type blogV3PostPollLayout = {\n            /**\n             * The direction of the text displayed in the voting options. Text can be displayed either right-to-left or left-to-right.\n             */\n            direction?: string;\n            /**\n             * Sets whether to display the main poll image.\n             */\n            enableImage?: boolean;\n            /**\n             * The layout for displaying the voting options.\n             */\n            type?: string;\n        };\n        type blogV3PostPollSettings = {\n            /**\n             * Permissions settings for voting.\n             */\n            permissions?: wix_blog_backend.Events.blogV3PostPermissions;\n            /**\n             * Sets whether voters are displayed in the vote results.\n             */\n            showVoters?: boolean;\n            /**\n             * Sets whether the vote count is displayed.\n             */\n            showVotesCount?: boolean;\n        };\n        type blogV3PostPost = {\n            /**\n             * Post ID.\n             */\n            _id?: string;\n            /**\n             * [Category IDs](https://dev.wix.com/api/rest/wix-blog/blog/categories) of the post.\n             */\n            categoryIds?: Array<string>;\n            /**\n             * Whether commenting on the post is enabled.\n             */\n            commentingEnabled?: boolean;\n            /**\n             * Post owner's [contact ID](https://dev.wix.com/api/rest/contacts).\n             */\n            contactId?: string;\n            /**\n             * Reserved for internal use.\n             */\n            content?: string;\n            /**\n             * Reserved for internal use.\n             */\n            contentId?: string;\n            /**\n             * The post's content in plain text.\n             */\n            contentText?: string;\n            /**\n             * __Deprecated.__ Use `media` instead.\n             * This property will be removed on June 30, 2023.\n             *\n             * Post cover media.\n             */\n            coverMedia?: wix_blog_backend.Events.blogV3PostCoverMedia;\n            /**\n             * Post excerpt.\n             * Can be selected by a site contributor. By default, it is extracted from the content text's first characters.\n             *\n             * Max: 140 characters\n             */\n            excerpt?: string;\n            /**\n             * Whether the post is marked as featured.\n             */\n            featured?: boolean;\n            /**\n             * Date the post was first published.\n             */\n            firstPublishedDate?: Date;\n            /**\n             * Hashtags in the post.\n             */\n            hashtags?: Array<string>;\n            /**\n             * Image placed at the top of the blog page.\n             */\n            heroImage?: string;\n            /**\n             * Reserved for internal use.\n             */\n            internalCategoryIds?: Array<string>;\n            /**\n             * Reserved for internal use.\n             */\n            internalId?: string;\n            /**\n             * Reserved for internal use.\n             */\n            internalRelatedPostIds?: Array<string>;\n            /**\n             * Language the post is written in.\n             *\n             * 2-letter language code in [ISO 639-1 alpha-2](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) format.\n             */\n            language?: string;\n            /**\n             * Date the post was last published.\n             */\n            lastPublishedDate?: Date;\n            /**\n             * Post cover media.\n             */\n            media?: wix_blog_backend.Events.blogV3PostBlogMedia;\n            /**\n             * Post owner's [member ID](https://dev.wix.com/api/rest/members).\n             */\n            memberId?: string;\n            /**\n             * Estimated reading time (calculated automatically).\n             */\n            minutesToRead?: number;\n            /**\n             * Post moderation details. Only relevant to posts submitted by [guest writers](https://support.wix.com/en/article/wix-blog-moderating-blog-posts-from-your-guest-writers).\n             */\n            moderationDetails?: wix_blog_backend.Events.blogV3PostModerationDetails;\n            /**\n             * Reserved for internal use.\n             */\n            mostRecentContributorId?: string;\n            /**\n             * Whether the post is pinned. If `true`, the post is placed at the top of the post list.\n             */\n            pinned?: boolean;\n            /**\n             * [Pricing plan IDs](https://dev.wix.com/api/rest/wix-pricing-plans). Only relevant if a post is assigned to a specific pricing plan.\n             */\n            pricingPlanIds?: Array<string>;\n            /**\n             * IDs of posts related to the post.\n             */\n            relatedPostIds?: Array<string>;\n            /**\n             * Post rich content\n             */\n            richContent?: wix_blog_backend.Events.blogV3PostRichContent;\n            /**\n             * SEO data.\n             */\n            seoData?: wix_blog_backend.Events.blogV3PostSeoSchema;\n            /**\n             * Post slug. Part of a posts's URL, for example, `'https:/example.com/posts/{my-post-slug}'`.\n             */\n            slug?: string;\n            /**\n             * IDs of [tags](https://dev.wix.com/api/rest/wix-blog/blog/tags) the post is tagged with.\n             */\n            tagIds?: Array<string>;\n            /**\n             * Post title.\n             */\n            title?: string;\n            /**\n             * ID of the translations of this post. All translations of a single post share the same `translationId`.\n             */\n            translationId?: string;\n            /**\n             * Post URL.\n             */\n            url?: string;\n        };\n        type blogV3PostPostCountInfo = {\n            /**\n             * Total number of post comments\n             */\n            comments?: number;\n            /**\n             * Total number of post likes\n             */\n            likes?: number;\n            /**\n             * Total number of post views\n             */\n            views?: number;\n        };\n        type blogV3PostPostCountersUpdated = {\n            /**\n             * Visitor ID if person that liked the post is not logged in\n             */\n            anonymousVisitorId?: string;\n            /**\n             * New counter value.\n             */\n            counter?: number;\n            /**\n             * Member ID of person who triggered the counter update\n             */\n            memberId?: string;\n            /**\n             * ID of the post whose counters were updated.\n             */\n            postId?: string;\n            /**\n             * Field of the updated counter.\n             */\n            updatedCounterField?: string;\n        };\n        type blogV3PostPostCountersUpdatedInitiatorOneOf = {\n            /**\n             * Visitor ID if person that liked the post is not logged in\n             */\n            anonymousVisitorId?: string;\n            /**\n             * Member ID of person who triggered the counter update\n             */\n            memberId?: string;\n        };\n        type blogV3PostPostCreated = {\n            /**\n             * Created post.\n             */\n            entity: wix_blog_backend.Events.blogV3PostPost;\n            /**\n             * Event metadata.\n             */\n            metadata: wix_blog_backend.Events.blogV3PostBackendEventMetadata;\n        };\n        type blogV3PostPostDeleted = {\n            /**\n             * Event metadata.\n             */\n            metadata: wix_blog_backend.Events.blogV3PostBackendEventMetadata;\n        };\n        type blogV3PostPostLiked = {\n            /**\n             * ID of the site visitor (not logged in) who liked the post.\n             */\n            anonymousVisitorId?: string;\n            /**\n             * ID of the member (logged in) who liked the post.\n             */\n            memberId?: string;\n            /**\n             * ID of the liked post.\n             */\n            postId?: string;\n        };\n        type blogV3PostPostLikedEvent = {\n            /**\n             * Information about the liked post.\n             */\n            data: wix_blog_backend.Events.blogV3PostPostLiked;\n            /**\n             * Event metadata.\n             */\n            metadata: wix_blog_backend.Events.blogV3PostBackendEventMetadata;\n        };\n        type blogV3PostPostLikedInitiatorOneOf = {\n            /**\n             * Visitor ID of person who liked the post when they are not logged in.\n             */\n            anonymousVisitorId?: string;\n            /**\n             * Member ID of person who liked the post (only returned when the member was logged in when liking the post).\n             */\n            memberId?: string;\n        };\n        type blogV3PostPostMigrationMetaData = {\n            /**\n             * Post author in old blog\n             */\n            author?: string;\n            /**\n             * Old blog instance id\n             */\n            instanceId?: string;\n            /**\n             * Post id in old blog\n             */\n            postId?: string;\n            /**\n             * Post slug in old blog\n             */\n            slug?: string;\n        };\n        type blogV3PostPostOwnerChanged = {};\n        type blogV3PostPostUnliked = {\n            /**\n             * Visitor ID of person who unliked the post when they are not logged in.\n             */\n            anonymousVisitorId?: string;\n            /**\n             * Member ID of person who unliked the post (returned when the member was logged in when unliking the post).\n             */\n            memberId?: string;\n            /**\n             * ID of the unliked post.\n             */\n            postId?: string;\n        };\n        type blogV3PostPostUnlikedEvent = {\n            /**\n             * Information about the unliked post.\n             */\n            data: wix_blog_backend.Events.blogV3PostPostUnliked;\n            /**\n             * Event metadata.\n             */\n            metadata: wix_blog_backend.Events.blogV3PostBackendEventMetadata;\n        };\n        type blogV3PostPostUnlikedInitiatorOneOf = {\n            /**\n             * Visitor ID of person who unliked the post when they are not logged in.\n             */\n            anonymousVisitorId?: string;\n            /**\n             * Member ID of person who unliked the post (returned when the member was logged in when unliking the post).\n             */\n            memberId?: string;\n        };\n        type blogV3PostPostUpdated = {\n            /**\n             * Updated post.\n             */\n            entity: wix_blog_backend.Events.blogV3PostPost;\n            /**\n             * Event metadata.\n             */\n            metadata: wix_blog_backend.Events.blogV3PostBackendEventMetadata;\n        };\n        type blogV3PostQueryPostCountStatsRequest = {\n            /**\n             * Language filter.\n             *\n             * 2-letter language code in [ISO 639-1 alpha-2](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) format.\n             * Pass a language to only receive the period post count for that specified language.\n             */\n            language?: string;\n            /**\n             * Number of months to include in response.\n             */\n            months?: number;\n            /**\n             * Order of returned results.\n             *\n             * - `OLDEST`: posts by date in ascending order.\n             * - `NEWEST`: posts by date in descending order.\n             *\n             * Default: `OLDEST`\n             */\n            order?: string;\n            /**\n             * __Deprecated.__ Use `months` instead.\n             * This property will be removed on June 30, 2023.\n             *\n             * Non-inclusive end of time range to return, in ISO 8601 date and time format.\n             */\n            rangeEnd?: Date;\n            /**\n             * Start of time range to return, in ISO 8601 date and time format.\n             */\n            rangeStart?: Date;\n            /**\n             * Time zone to use when calculating the start of the month.\n             *\n             * [UTC timezone offset](https://en.wikipedia.org/wiki/List_of_UTC_offsets) format. For example, New York time zone is `-05`.\n             */\n            timeZone?: string;\n        };\n        type blogV3PostQueryPostCountStatsResponse = {\n            /**\n             * List of published post counts by month.\n             */\n            stats?: Array<wix_blog_backend.Events.blogV3PostPeriodPostCount>;\n        };\n        type blogV3PostQueryPostsRequest = {\n            /**\n             * __Deprecated.__ Use `fieldsets` instead.\n             * This parameter will be removed on June 30, 2023.\n             *\n             * List of post fields to be included in the response.\n             */\n            fieldsToInclude?: Array<string>;\n            /**\n             * List of additional post fields to include in the response. For example, use the `URL` fieldset to retrieve the url field in\n             * the response in addition to the post’s base fields. Base fields don’t include any of the supported fieldset values. By default\n             * only the post’s base fields are returned.\n             */\n            fieldsets?: Array<string>;\n            /**\n             * __Deprecated.__ Use `query` instead.\n             * This parameter will be removed on June 30, 2023.\n             *\n             * Filter object.\n             */\n            filter?: Object;\n            /**\n             * __Deprecated.__ Use `query` instead.\n             * This parameter will be removed on June 30, 2023.\n             *\n             * Pagination options.\n             */\n            paging?: wix_blog_backend.Events.blogV3PostBlogPaging;\n            /**\n             * Query options.\n             */\n            query?: wix_blog_backend.Events.blogV3PostPlatformQuery;\n            /**\n             * __Deprecated.__ Use `query` instead.\n             * This parameter will be removed on June 30, 2023.\n             *\n             * Sorting options. For a list of sortable fields, see [Field Support for Filtering and Sorting](https://dev.wix.com/api/rest/wix-blog/blog/filter-and-sort).\n             */\n            sort?: Array<wix_blog_backend.Events.blogV3PostSorting>;\n        };\n        type blogV3PostQueryPostsResponse = {\n            /**\n             * __Deprecated.__ Use `pagingMetadata` instead.\n             * This property will be removed on June 30, 2023.\n             *\n             * Details on the paged set of results returned.\n             */\n            metaData?: wix_blog_backend.Events.blogV3PostMetaData;\n            /**\n             * Details on the paged set of results returned.\n             */\n            pagingMetadata?: wix_blog_backend.Events.blogV3PostPagingMetadataV2;\n            /**\n             * List of posts.\n             */\n            posts?: Array<wix_blog_backend.Events.blogV3PostPost>;\n        };\n        type blogV3PostQueryPublicationsCountStatsRequest = {\n            /**\n             * Language filter\n             *\n             * 2-letter language code in [ISO 639-1 alpha-2](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) format.\n             */\n            language?: string;\n            /**\n             * Number of months to include in the response.\n             */\n            months?: number;\n            /**\n             * Order of the returned results.\n             */\n            order?: string;\n            /**\n             * Non-inclusive end of time range to return, in ISO 8601 date and time format.\n             */\n            rangeEnd?: Date;\n            /**\n             * Start of time range to return, in ISO 8601 date and time format.\n             */\n            rangeStart?: Date;\n            /**\n             * Timezone of the client.\n             */\n            timeZone?: string;\n        };\n        type blogV3PostQueryPublicationsCountStatsResponse = {\n            /**\n             * Chronologically ordered list of publications.\n             */\n            stats?: Array<wix_blog_backend.Events.blogV3PostPeriodPublicationsCount>;\n        };\n        type blogV3PostReactions = {\n            /**\n             * Is post liked by the current user\n             */\n            liked?: boolean;\n        };\n        type blogV3PostRel = {\n            /**\n             * Indicates to search engine crawlers not to follow the link.\n             */\n            nofollow?: boolean;\n            /**\n             * Indicates that this link protect referral information from being passed to the target website.\n             */\n            noreferrer?: boolean;\n            /**\n             * Indicates to search engine crawlers that the link is a paid placement such as sponsored content or an advertisement.\n             */\n            sponsored?: boolean;\n            /**\n             * Indicates that this link is user-generated content and isn't necessarily trusted or endorsed by the page’s author. For example, a link in a fourm post.\n             */\n            ugc?: boolean;\n        };\n        type blogV3PostRichContent = {\n            /**\n             * Global styling for header, paragraph, block quote, and code block nodes in the object.\n             */\n            documentStyle?: wix_blog_backend.Events.blogV3PostDocumentStyle;\n            /**\n             * Object metadata.\n             */\n            metadata?: wix_blog_backend.Events.blogV3PostMetadata;\n            /**\n             * Node objects representing a rich content document.\n             */\n            nodes?: Array<wix_blog_backend.Events.blogV3PostNode>;\n        };\n        type blogV3PostSendActionEventRequest = {\n            entityId?: string;\n            postCountersUpdated?: wix_blog_backend.Events.blogV3PostPostCountersUpdated;\n            postLikedAction?: wix_blog_backend.Events.blogV3PostPostLiked;\n        };\n        type blogV3PostSendActionEventRequestActionOneOf = {\n            postCountersUpdated?: wix_blog_backend.Events.blogV3PostPostCountersUpdated;\n            postLikedAction?: wix_blog_backend.Events.blogV3PostPostLiked;\n        };\n        type blogV3PostSendActionEventResponse = {};\n        type blogV3PostSeoSchema = {\n            /**\n             * SEO general settings.\n             */\n            settings?: wix_blog_backend.Events.blogV3PostSettings;\n            /**\n             * SEO tags information.\n             */\n            tags?: Array<wix_blog_backend.Events.blogV3PostTag>;\n        };\n        type blogV3PostSettings = {\n            /**\n             * Whether the auto redirects feature creating `301 redirects` on a slug change is enabled.\n             *\n             * Default: enabled\n             */\n            preventAutoRedirect?: boolean;\n        };\n        type blogV3PostSorting = {\n            /**\n             * Name of the field to sort by.\n             */\n            fieldName?: string;\n            /**\n             * Sort order.\n             */\n            order?: string;\n        };\n        type blogV3PostSpoiler = {\n            /**\n             * The text for the button used to remove the spoiler cover.\n             */\n            buttonText?: string;\n            /**\n             * The description displayed on top of the spoiler cover.\n             */\n            description?: string;\n            /**\n             * Sets whether the spoiler cover is enabled for this node.\n             */\n            enabled?: boolean;\n        };\n        type blogV3PostStyles = {\n            /**\n             * Border attributes.\n             */\n            border?: wix_blog_backend.Events.blogV3PostBorder;\n            /**\n             * Color attributes.\n             */\n            colors?: wix_blog_backend.Events.blogV3PostColors;\n        };\n        type blogV3PostTableCellData = {\n            /**\n             * The cell's border colors.\n             */\n            borderColors?: wix_blog_backend.Events.blogV3PostBorderColors;\n            /**\n             * Styling for the cell's background color and text alignment.\n             */\n            cellStyle?: wix_blog_backend.Events.blogV3PostCellStyle;\n        };\n        type blogV3PostTableData = {\n            /**\n             * Sets whether the table's first column is a header.\n             */\n            columnHeader?: boolean;\n            /**\n             * Styling for the table's container.\n             */\n            containerData?: wix_blog_backend.Events.blogV3PostPluginContainerData;\n            /**\n             * The table's dimensions.\n             */\n            dimensions?: wix_blog_backend.Events.blogV3PostDimensions;\n            /**\n             * Deprecated: Use `rowHeader` and `columnHeader` instead.\n             */\n            header?: boolean;\n            /**\n             * Sets whether the table's first row is a header.\n             */\n            rowHeader?: boolean;\n        };\n        type blogV3PostTag = {\n            /**\n             * SEO tag inner content. For example, ` inner content `.\n             */\n            children?: string;\n            /**\n             * Whether the tag is a custom tag.\n             */\n            custom?: boolean;\n            /**\n             * Whether the tag is disabled.\n             */\n            disabled?: boolean;\n            /**\n             * SEO tag meta data. For example, `{height: 300, width: 240}`.\n             */\n            meta?: Object;\n            /**\n             * A `{'key':'value'} pair object where each SEO tag property (`'name'`, `'content'`, `'rel'`, `'href'`) contains a value.\n             * For example: `{'name': 'description', 'content': 'the description itself'}`.\n             */\n            props?: Object;\n            /**\n             * SEO tag type.\n             *\n             * Supported values: `title`, `meta`, `script`, `link`.\n             */\n            type?: string;\n        };\n        type blogV3PostTextData = {\n            /**\n             * The decorations to apply.\n             */\n            decorations?: Array<wix_blog_backend.Events.blogV3PostDecoration>;\n            /**\n             * The text to apply decorations to.\n             */\n            text?: string;\n        };\n        type blogV3PostTextNodeStyle = {\n            /**\n             * The decorations to apply to the node.\n             */\n            decorations?: Array<wix_blog_backend.Events.blogV3PostDecoration>;\n            /**\n             * Line height for text in the node.\n             */\n            lineHeight?: string;\n            /**\n             * Padding and background color for the node.\n             */\n            nodeStyle?: wix_blog_backend.Events.blogV3PostNodeStyle;\n        };\n        type blogV3PostTextStyle = {\n            /**\n             * A CSS `line-height` value for the text as a unitless ratio.\n             */\n            lineHeight?: string;\n            /**\n             * Text alignment. Defaults to `AUTO`.\n             */\n            textAlignment?: string;\n        };\n        type blogV3PostThumbnails = {\n            /**\n             * Thumbnail alignment.\n             */\n            placement?: string;\n            /**\n             * Spacing between thumbnails in pixels.\n             */\n            spacing?: number;\n        };\n        type blogV3PostVideoData = {\n            /**\n             * Styling for the video's container.\n             */\n            containerData?: wix_blog_backend.Events.blogV3PostPluginContainerData;\n            /**\n             * Sets whether the video's download button is disabled.\n             */\n            disableDownload?: boolean;\n            /**\n             * Video options.\n             */\n            options?: wix_blog_backend.Events.blogV3PostPlaybackOptions;\n            /**\n             * Video thumbnail details.\n             */\n            thumbnail?: wix_blog_backend.Events.blogV3PostMedia;\n            /**\n             * Video title.\n             */\n            title?: string;\n            /**\n             * Video details.\n             */\n            video?: wix_blog_backend.Events.blogV3PostMedia;\n        };\n        type blogV3PostVideoResolution = {\n            /**\n             * Video format for example, mp4, hls.\n             */\n            format?: string;\n            /**\n             * Video height.\n             */\n            height?: number;\n            /**\n             * Video URL.\n             */\n            url?: string;\n            /**\n             * Video width.\n             */\n            width?: number;\n        };\n        type blogV3PostWixMedia = {\n            /**\n             * Thumbnail or image details.\n             */\n            image?: string;\n            /**\n             * Video details. Optional\n             */\n            videoV2?: string;\n        };\n        type blogV3TagApplicationError = {\n            code?: string;\n            data?: Object;\n            description?: string;\n        };\n        type blogV3TagBackendEventMetadata = {\n            /**\n             * ID of the entity associated with the event.\n             */\n            entityId: string;\n            /**\n             * Event timestamp.\n             */\n            eventTime: string;\n            /**\n             * Event ID.\n             */\n            id: string;\n            /**\n             * Whether the event was triggered as a result of a privacy regulation application (for example, [GDPR](https://support.wix.com/en/article/gdpr-frequently-asked-questions)). For advanced users.\n             */\n            triggeredByAnonymizeRequest: boolean;\n        };\n        type blogV3TagBulkActionMetadata = {\n            /**\n             * Number of items that couldn't be processed.\n             */\n            totalFailures?: number;\n            /**\n             * Number of items that were successfully processed.\n             */\n            totalSuccesses?: number;\n            /**\n             * Number of failures without details because detailed failure threshold was exceeded.\n             */\n            undetailedFailures?: number;\n        };\n        type blogV3TagBulkCreateTagsRequest = {\n            /**\n             * List of tag fields to be included if entities are present in the response.\n             * Base fieldset, which is default, will return all core tag properties.\n             * Example: When URL fieldset is selected, returned tag will have a set of base properties and tag url.\n             */\n            fieldsets?: Array<string>;\n            /**\n             * Whether to return the full created tag entities in the response.\n             */\n            returnFullEntity?: boolean;\n            /**\n             * Tags to create.\n             */\n            tags: Array<wix_blog_backend.Events.blogV3TagTag>;\n        };\n        type blogV3TagBulkCreateTagsResponse = {\n            /**\n             * Bulk action metadata.\n             */\n            bulkActionMetadata?: wix_blog_backend.Events.blogV3TagBulkActionMetadata;\n            /**\n             * Tags created by bulk action.\n             */\n            results?: Array<wix_blog_backend.Events.blogV3TagBulkTagResult>;\n        };\n        type blogV3TagBulkTagResult = {\n            /**\n             * Optional created tag.\n             */\n            item?: wix_blog_backend.Events.blogV3TagTag;\n            /**\n             * Bulk actions metadata for tag.\n             */\n            itemMetadata?: wix_blog_backend.Events.blogV3TagItemMetadata;\n        };\n        type blogV3TagCreateTagRequest = {\n            /**\n             * List of additional tag fields to include in the response. For example, use the `URL` fieldset to retrieve the url field in\n             * the response in addition to the tag's base fields. Base fields don’t include any of the supported fieldset values. By default\n             * only the tag's base fields are returned.\n             */\n            fieldsets?: Array<string>;\n            /**\n             * Tag label. The label for each tag in a blog must be unique.\n             */\n            label: string;\n            /**\n             * Tag language.\n             *\n             * 2-letter language code in [ISO 639-1 alpha-2](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) format.\n             */\n            language?: string;\n            /**\n             * Preferred tag slug. For example, `'tag-slug'`.\n             */\n            slug?: string;\n        };\n        type blogV3TagCreateTagResponse = {\n            /**\n             * Tag info.\n             */\n            tag?: wix_blog_backend.Events.blogV3TagTag;\n        };\n        type blogV3TagCursorPaging = {\n            /**\n             * Pointer to the next or previous page in the list of results.\n             *\n             * You can get the relevant cursor token\n             * from the `pagingMetadata` object in the previous call's response.\n             * Not relevant for the first request.\n             */\n            cursor?: string;\n            /**\n             * Number of items to load.\n             */\n            limit?: number;\n        };\n        type blogV3TagCursors = {\n            /**\n             * Cursor pointing to next page in the list of results.\n             */\n            next?: string;\n            /**\n             * Cursor pointing to previous page in the list of results.\n             */\n            prev?: string;\n        };\n        type blogV3TagDeleteTagRequest = {\n            /**\n             * Tag ID.\n             */\n            tagId: string;\n        };\n        type blogV3TagDeleteTagResponse = {};\n        type blogV3TagGetOrCreateTagRequest = {\n            /**\n             * List of tag fields to be included if entities are present in the response.\n             * Base fieldset, which is default, will return all core tag properties.\n             * Example: When URL fieldset is selected, returned tag will have a set of base properties and tag url.\n             */\n            fieldsets?: Array<string>;\n            /**\n             * Tag name. Unique per blog.\n             */\n            label: string;\n            /**\n             * Tag language.\n             */\n            language?: string;\n        };\n        type blogV3TagGetOrCreateTagResponse = {\n            /**\n             * Tag info.\n             */\n            tag?: wix_blog_backend.Events.blogV3TagTag;\n        };\n        type blogV3TagGetTagByLabelRequest = {\n            /**\n             * __Deprecated.__ Use `fieldsets` instead.\n             * This parameter will be removed on June 30, 2023.\n             *\n             * List of tag fields to be included in the response.\n             */\n            fieldsToInclude?: Array<string>;\n            /**\n             * List of additional tag fields to include in the response. For example, use the `URL` fieldset to retrieve the url field in\n             * the response in addition to the tag's base fields. Base fields don’t include any of the supported fieldset values. By default\n             * only the tag's base fields are returned.\n             */\n            fieldsets?: Array<string>;\n            /**\n             * Tag label.\n             */\n            label: string;\n            /**\n             * Tag language.\n             *\n             * 2-letter language code in [ISO 639-1 alpha-2](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) format.\n             * If omitted, tags in all languages are returned.\n             */\n            language?: string;\n        };\n        type blogV3TagGetTagByLabelResponse = {\n            /**\n             * Tag info.\n             */\n            tag?: wix_blog_backend.Events.blogV3TagTag;\n        };\n        type blogV3TagGetTagBySlugRequest = {\n            /**\n             * __Deprecated.__ Use `fieldsets` instead.\n             * This parameter will be removed on June 30, 2023.\n             *\n             * List of tag fields to be included in the response.\n             */\n            fieldsToInclude?: Array<string>;\n            /**\n             * List of additional tag fields to include in the response. For example, use the `URL` fieldset to retrieve the url field in\n             * the response in addition to the tag's base fields. Base fields don’t include any of the supported fieldset values. By default\n             * only the tag's base fields are returned.\n             */\n            fieldsets?: Array<string>;\n            /**\n             * Slug of the tag to retrieve.\n             */\n            slug: string;\n        };\n        type blogV3TagGetTagBySlugResponse = {\n            /**\n             * Tag info.\n             */\n            tag?: wix_blog_backend.Events.blogV3TagTag;\n        };\n        type blogV3TagGetTagRequest = {\n            /**\n             * __Deprecated.__ Use `fieldsets` instead.\n             * This parameter will be removed on June 30, 2023.\n             *\n             * List of tag fields to be included in the response.\n             */\n            fieldsToInclude?: Array<string>;\n            /**\n             * List of additional tag fields to include in the response. For example, use the `URL` fieldset to retrieve the url field in\n             * the response in addition to the tag's base fields. Base fields don’t include any of the supported fieldset values. By default\n             * only the tag's base fields are returned.\n             */\n            fieldsets?: Array<string>;\n            /**\n             * Tag ID.\n             */\n            tagId: string;\n        };\n        type blogV3TagGetTagResponse = {\n            /**\n             * Tag info.\n             */\n            tag?: wix_blog_backend.Events.blogV3TagTag;\n        };\n        type blogV3TagInitialTagsCopied = {\n            /**\n             * Number of tags copied.\n             */\n            count?: number;\n        };\n        type blogV3TagItemMetadata = {\n            /**\n             * Item ID. Should always be available, unless it's impossible (for example, when failing to create an item).\n             */\n            _id?: string;\n            /**\n             * Details about the error in case of failure.\n             */\n            error?: wix_blog_backend.Events.blogV3TagApplicationError;\n            /**\n             * Index of the item within the request array. Allows for correlation between request and response items.\n             */\n            originalIndex?: number;\n            /**\n             * Whether the requested action was successful for this item. When `false`, the `error` field is populated.\n             */\n            success?: boolean;\n        };\n        type blogV3TagListTagsRequest = {\n            /**\n             * Cursor token pointing to a page of results. Not used in the first request. Following requests use the cursor token and not `sort`.\n             */\n            cursorPaging?: wix_blog_backend.Events.blogV3TagCursorPaging;\n            /**\n             * List of tag fields to be included if entities are present in the response.\n             * Base fieldset, which is default, will return all core tag properties.\n             * Example: When URL fieldset is selected, returned tag will have a set of base properties and tag url.\n             */\n            fieldsets?: Array<string>;\n            /**\n             * Paging options to limit and skip the number of items.\n             */\n            paging?: wix_blog_backend.Events.blogV3TagPaging;\n            /**\n             * Sorting options. For a list of sortable fields, see [Field Support for Filtering and Sorting](https://dev.wix.com/api/rest/community/blog/filter-and-sort).\n             */\n            sort?: Array<wix_blog_backend.Events.blogV3TagSorting>;\n        };\n        type blogV3TagListTagsRequestPagingMethodOneOf = {\n            /**\n             * Cursor token pointing to a page of results. Not used in the first request. Following requests use the cursor token and not `sort`.\n             */\n            cursorPaging?: wix_blog_backend.Events.blogV3TagCursorPaging;\n            /**\n             * Paging options to limit and skip the number of items.\n             */\n            paging?: wix_blog_backend.Events.blogV3TagPaging;\n        };\n        type blogV3TagListTagsResponse = {\n            /**\n             * Details on the paged set of results returned.\n             */\n            metaData?: wix_blog_backend.Events.blogV3TagMetaData;\n            /**\n             * List of tags.\n             */\n            tags?: Array<wix_blog_backend.Events.blogV3TagTag>;\n        };\n        type blogV3TagMetaData = {\n            /**\n             * Number of items returned in this response.\n             */\n            count?: number;\n            /**\n             * Pointer to the next or previous page in the list of results.\n             */\n            cursor?: string;\n            /**\n             * Requested offset.\n             */\n            offset?: number;\n            /**\n             * Total number of items that match the query.\n             */\n            total?: number;\n        };\n        type blogV3TagPaging = {\n            /**\n             * Number of items to load.\n             */\n            limit?: number;\n            /**\n             * Number of items to skip in the current sort order.\n             */\n            offset?: number;\n        };\n        type blogV3TagPagingMetadataV2 = {\n            /**\n             * Number of items returned in the response.\n             */\n            count?: number;\n            /**\n             * Cursors to navigate through the result pages using `next` and `prev`. Returned if cursor paging is used.\n             */\n            cursors?: wix_blog_backend.Events.blogV3TagCursors;\n            /**\n             * Offset that was requested.\n             */\n            offset?: number;\n            /**\n             * Flag that indicates the server failed to calculate the `total` field.\n             */\n            tooManyToCount?: boolean;\n            /**\n             * Total number of items that match the query. Returned if offset paging is used and the `tooManyToCount` flag is not set.\n             */\n            total?: number;\n        };\n        type blogV3TagPlatformQuery = {\n            /**\n             * Cursor token pointing to a page of results. Not used in the first request. Following requests use the cursor token and not `filter` or `sort`.\n             */\n            cursorPaging?: wix_blog_backend.Events.blogV3TagCursorPaging;\n            /**\n             * Filter object in the following format:\n             * `\"filter\" : {\n             * \"fieldName1\": \"value1\",\n             * \"fieldName2\":{\"$operator\":\"value2\"}\n             * }`\n             * Example of operators: `$eq`, `$ne`, `$lt`, `$lte`, `$gt`, `$gte`, `$in`, `$hasSome`, `$hasAll`, `$startsWith`, `$contains`\n             */\n            filter?: Object;\n            /**\n             * Paging options to limit and skip the number of items.\n             */\n            paging?: wix_blog_backend.Events.blogV3TagPaging;\n            /**\n             * Sort object in the following format:\n             * `[{\"fieldName\":\"sortField1\",\"order\":\"ASC\"},{\"fieldName\":\"sortField2\",\"order\":\"DESC\"}]`\n             */\n            sort?: Array<wix_blog_backend.Events.blogV3TagSorting>;\n        };\n        type blogV3TagPlatformQueryPagingMethodOneOf = {\n            /**\n             * Cursor token pointing to a page of results. Not used in the first request. Following requests use the cursor token and not `filter` or `sort`.\n             */\n            cursorPaging?: wix_blog_backend.Events.blogV3TagCursorPaging;\n            /**\n             * Paging options to limit and skip the number of items.\n             */\n            paging?: wix_blog_backend.Events.blogV3TagPaging;\n        };\n        type blogV3TagQueryTagsRequest = {\n            /**\n             * __Deprecated.__ Use `fieldsets` instead.\n             * This parameter will be removed on June 30, 2023.\n             *\n             * List of tag fields to be included in the response.\n             */\n            fieldsToInclude?: Array<string>;\n            /**\n             * List of additional tag fields to include in the response. For example, use the `URL` fieldset to retrieve the url field in\n             * the response in addition to the tag's base fields. Base fields don’t include any of the supported fieldset values. By default\n             * only the tag's base fields are returned.\n             */\n            fieldsets?: Array<string>;\n            /**\n             * __Deprecated.__ Use `query` instead.\n             * This parameter will be removed on June 30, 2023.\n             *\n             * Filter object.\n             * For a detailed list of supported filters, see [Field Support for Filtering and Sorting](https://dev.wix.com/api/rest/community/blog/filter-and-sort).\n             */\n            filter?: Object;\n            /**\n             * __Deprecated.__ Use `query` instead.\n             * This parameter will be removed on June 30, 2023.\n             *\n             * Pagination options.\n             */\n            paging?: wix_blog_backend.Events.blogV3TagPaging;\n            /**\n             * Query options.\n             */\n            query?: wix_blog_backend.Events.blogV3TagPlatformQuery;\n            /**\n             * __Deprecated.__ Use `query` instead.\n             * This parameter will be removed on June 30, 2023.\n             *\n             * Sorting options. For a list of sortable fields, see [Field Support for Filtering and Sorting](https://dev.wix.com/api/rest/community/blog/filter-and-sort).\n             */\n            sort?: Array<wix_blog_backend.Events.blogV3TagSorting>;\n        };\n        type blogV3TagQueryTagsResponse = {\n            /**\n             * __Deprecated.__ Use `pagingMetadata` instead.\n             * This property will be removed on June 30, 2023.\n             *\n             * Details on the paged set of results returned.\n             */\n            metaData?: wix_blog_backend.Events.blogV3TagMetaData;\n            /**\n             * Details on the paged set of results returned.\n             */\n            pagingMetadata?: wix_blog_backend.Events.blogV3TagPagingMetadataV2;\n            /**\n             * List of tags.\n             */\n            tags?: Array<wix_blog_backend.Events.blogV3TagTag>;\n        };\n        type blogV3TagSorting = {\n            /**\n             * Name of the field to sort by.\n             */\n            fieldName?: string;\n            /**\n             * Sort order.\n             */\n            order?: string;\n        };\n        type blogV3TagTag = {\n            /**\n             * Date the tag was created.\n             */\n            _createdDate?: Date;\n            /**\n             * Tag ID.\n             */\n            _id?: string;\n            /**\n             * Date the tag was last updated.\n             */\n            _updatedDate?: Date;\n            /**\n             * Tag label.\n             *\n             * A blog can't have two tags with the same label.\n             */\n            label?: string;\n            /**\n             * Tag language.\n             *\n             * 2-letter language code in [ISO 639-1 alpha-2](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) format.\n             */\n            language?: string;\n            /**\n             * Number of posts with this tag, including unpublished draft posts.\n             */\n            postCount?: number;\n            /**\n             * Reserved for internal use.\n             */\n            publicationCount?: number;\n            /**\n             * Number of published posts with this tag.\n             */\n            publishedPostCount?: number;\n            /**\n             * Part of a tag's URL. For example, `'https:/example.com/blog/tags/{my-tag-slug}'`.\n             */\n            slug?: string;\n            /**\n             * ID of the tag translations.\n             *\n             * All translations of a single tag share the same `translationId`.\n             */\n            translationId?: string;\n            /**\n             * Tag URL.\n             */\n            url?: string;\n        };\n        type blogV3TagTagCreated = {\n            /**\n             * Created tag.\n             */\n            entity: wix_blog_backend.Events.blogV3TagTag;\n            /**\n             * Event metadata.\n             */\n            metadata: wix_blog_backend.Events.blogV3TagBackendEventMetadata;\n        };\n        type blogV3TagTagDeleted = {\n            /**\n             * Event metadata.\n             */\n            metadata: wix_blog_backend.Events.blogV3TagBackendEventMetadata;\n        };\n        type blogV3TagTagUpdated = {\n            entity: wix_blog_backend.Events.blogV3TagTag;\n            metadata: wix_blog_backend.Events.blogV3TagBackendEventMetadata;\n        };\n        type blogV3TagTagsFieldSet = {\n            /**\n             * Includes tag URL when TRUE. Defaults to FALSE.\n             */\n            includeUrl?: boolean;\n        };\n        type blogV3TagUpdateTagRequest = {\n            /**\n             * Field mask of fields to update.\n             */\n            fieldMask?: Array<string>;\n            /**\n             * List of tag fields to be included if entities are present in the response.\n             * Base fieldset, which is default, will return all core tag properties.\n             * Example: When URL fieldset is selected, returned tag will have a set of base properties and tag url.\n             */\n            fieldsets?: Array<string>;\n            /**\n             * Tag info.\n             */\n            tag?: wix_blog_backend.Events.blogV3TagTag;\n        };\n        type blogV3TagUpdateTagResponse = {\n            /**\n             * Tag info.\n             */\n            tag?: wix_blog_backend.Events.blogV3TagTag;\n        };\n    }\n    /**\n     * [Read more](https://www.wix.com/corvid/reference/wix-blog-backend.Posts.html#)\n     */\n    interface Posts {\n        /**\n         * Gets a post by the specified ID.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-blog-backend.Posts.html#getPost)\n         */\n        getPost(postId: string, options: wix_blog_backend.Posts.GetPostOptions): Promise<wix_blog_backend.Posts.GetPostResponse>;\n        /**\n         * Gets a post by the provided slug.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-blog-backend.Posts.html#getPostBySlug)\n         */\n        getPostBySlug(slug: string, options: wix_blog_backend.Posts.GetPostBySlugOptions): Promise<wix_blog_backend.Posts.GetPostBySlugResponse>;\n        /**\n         * Gets a specified post's metrics.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-blog-backend.Posts.html#getPostMetrics)\n         */\n        getPostMetrics(postId: string): Promise<wix_blog_backend.Posts.GetPostMetricsResponse>;\n        /**\n         * Gets the total amount of published posts on the blog.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-blog-backend.Posts.html#getTotalPosts)\n         */\n        getTotalPosts(options: wix_blog_backend.Posts.GetTotalPostsOptions): Promise<wix_blog_backend.Posts.GetTotalPostsResponse>;\n        /**\n         * Retrieves a list of published posts.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-blog-backend.Posts.html#listPosts)\n         */\n        listPosts(options: wix_blog_backend.Posts.ListPostsOptions): Promise<wix_blog_backend.Posts.ListPostsResponse>;\n        /**\n         * Retrieves the number of published posts per month within a specified time range.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-blog-backend.Posts.html#queryPostCountStats)\n         */\n        queryPostCountStats(options: wix_blog_backend.Posts.QueryPostCountStatsOptions): Promise<wix_blog_backend.Posts.QueryPostCountStatsResponse>;\n        /**\n         * Creates a query to retrieve a list of posts.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-blog-backend.Posts.html#queryPosts)\n         */\n        queryPosts(): wix_blog_backend.Posts.PostsQueryBuilder;\n    }\n    namespace Posts {\n        type AnchorData = {\n            /**\n             * The target node's ID.\n             */\n            anchor?: string;\n        };\n        type AppEmbedData = {\n            /**\n             * Data for embedded Wix Bookings content.\n             */\n            bookingData?: wix_blog_backend.Posts.BookingData;\n            /**\n             * Data for embedded Wix Events content.\n             */\n            eventData?: wix_blog_backend.Posts.EventData;\n            /**\n             * An image for the embedded content.\n             */\n            image?: wix_blog_backend.Posts.Media;\n            /**\n             * Deprecated: Use `image` instead.\n             */\n            imageSrc?: string;\n            /**\n             * The ID of the embedded content.\n             */\n            itemId?: string;\n            /**\n             * The name of the embedded content.\n             */\n            name?: string;\n            /**\n             * The type of Wix App content being embedded.\n             */\n            type?: string;\n            /**\n             * The URL for the embedded content.\n             */\n            url?: string;\n        };\n        type AppEmbedDataAppDataOneOf = {\n            /**\n             * Data for embedded Wix Bookings content.\n             */\n            bookingData?: wix_blog_backend.Posts.BookingData;\n            /**\n             * Data for embedded Wix Events content.\n             */\n            eventData?: wix_blog_backend.Posts.EventData;\n        };\n        type AudioData = {\n            /**\n             * Audio file details.\n             */\n            audio?: wix_blog_backend.Posts.Media;\n            /**\n             * Author name.\n             */\n            authorName?: string;\n            /**\n             * Styling for the audio node's container.\n             */\n            containerData?: wix_blog_backend.Posts.PluginContainerData;\n            /**\n             * Cover image.\n             */\n            coverImage?: wix_blog_backend.Posts.Media;\n            /**\n             * Sets whether the audio node's download button is disabled.\n             */\n            disableDownload?: boolean;\n            /**\n             * An HTML version of the audio node.\n             */\n            html?: string;\n            /**\n             * Track name.\n             */\n            name?: string;\n        };\n        type Background = {\n            /**\n             * The background color as a hexademical value.\n             */\n            color?: string;\n            /**\n             * Details for a gradient background.\n             */\n            gradient?: wix_blog_backend.Posts.Gradient;\n            /**\n             * An image to use for the background.\n             */\n            image?: wix_blog_backend.Posts.Media;\n            /**\n             * Background type. For each option, include the relevant details.\n             */\n            type?: string;\n        };\n        type BackgroundBackgroundOneOf = {\n            /**\n             * The background color as a hexademical value.\n             */\n            color?: string;\n            /**\n             * Details for a gradient background.\n             */\n            gradient?: wix_blog_backend.Posts.Gradient;\n            /**\n             * An image to use for the background.\n             */\n            image?: wix_blog_backend.Posts.Media;\n        };\n        type BlockquoteData = {\n            /**\n             * Indentation level.\n             */\n            indentation?: number;\n        };\n        type BlogCursorPaging = {\n            /**\n             * Pointer to the next or previous page in the list of results.\n             */\n            cursor?: string;\n            /**\n             * Number of items to load.\n             */\n            limit?: number;\n        };\n        type BlogMedia = {\n            /**\n             * Whether the media is custom.\n             *\n             * `false` if the media is the first image or video in the post. `true` if set to some other image or video.\",\n             */\n            custom?: boolean;\n            /**\n             * Whether cover media is displayed.\n             */\n            displayed?: boolean;\n            /**\n             * Embed media details.\n             */\n            embedMedia?: wix_blog_backend.Posts.EmbedMedia;\n            /**\n             * Wix Media details.\n             */\n            wixMedia?: wix_blog_backend.Posts.WixMedia;\n        };\n        type BlogMediaMediaOneOf = {\n            /**\n             * Embed media details.\n             */\n            embedMedia?: wix_blog_backend.Posts.EmbedMedia;\n            /**\n             * Wix Media details.\n             */\n            wixMedia?: wix_blog_backend.Posts.WixMedia;\n        };\n        type BlogPaging = {\n            /**\n             * Pointer to the next or previous page in the list of results.\n             */\n            cursor?: string;\n            /**\n             * Number of items to return.\n             *\n             * Default:`50`\n             */\n            limit?: number;\n            /**\n             * Number of items to skip in the current sort order.\n             *\n             * Default: `0`\n             */\n            offset?: number;\n        };\n        type BookingData = {\n            /**\n             * Booking duration in minutes.\n             */\n            durations?: string;\n        };\n        type Border = {\n            /**\n             * Border radius in pixels.\n             */\n            radius?: number;\n            /**\n             * Border width in pixels.\n             */\n            width?: number;\n        };\n        type BorderColors = {\n            /**\n             * Bottom border color as a hexadecimal value.\n             */\n            bottom?: string;\n            /**\n             * Left border color as a hexadecimal value.\n             */\n            left?: string;\n            /**\n             * Right border color as a hexadecimal value.\n             */\n            right?: string;\n            /**\n             * Top border color as a hexadecimal value.\n             */\n            top?: string;\n        };\n        type BulkGetPostMetricsRequest = {\n            /**\n             * Post IDs.\n             */\n            postIds: Array<string>;\n        };\n        type BulkGetPostMetricsResponse = {\n            /**\n             * Map of post.id to metrics\n             */\n            metrics?: Record<string, wix_blog_backend.Posts.Metrics>;\n        };\n        type BulkGetPostReactionsRequest = {\n            /**\n             * Post IDs.\n             */\n            postIds: Array<string>;\n        };\n        type BulkGetPostReactionsResponse = {\n            /**\n             * Map of post.id to reactions\n             */\n            reactionsMap?: Record<string, wix_blog_backend.Posts.Reactions>;\n        };\n        type BulletedListData = {\n            /**\n             * Indentation level.\n             */\n            indentation?: number;\n        };\n        type ButtonData = {\n            /**\n             * Styling for the button's container.\n             */\n            containerData?: wix_blog_backend.Posts.PluginContainerData;\n            /**\n             * Button link details.\n             */\n            link?: wix_blog_backend.Posts.Link;\n            /**\n             * Styling for the button.\n             */\n            styles?: wix_blog_backend.Posts.Styles;\n            /**\n             * The text to display on the button.\n             */\n            text?: string;\n            /**\n             * The button type.\n             */\n            type?: string;\n        };\n        type Category = {\n            /**\n             * Category ID.\n             */\n            _id?: string;\n            /**\n             * Category cover image.\n             */\n            coverImage?: string;\n            /**\n             * __Deprecated.__ Use `coverImage` instead.\n             * This property will be removed on June 30, 2023.\n             *\n             * Category cover image or video.\n             */\n            coverMedia?: wix_blog_backend.Posts.CoverMedia;\n            /**\n             * Category description.\n             */\n            description?: string;\n            /**\n             * Category position in sequence. Categories with a lower display position are displayed first. Categories with a position of `-1` appear at the end of the sequence.\n             *\n             * Default: `-1`\n             */\n            displayPosition?: number;\n            /**\n             * Reserved for internal use.\n             */\n            internalId?: string;\n            /**\n             * Category label. Displayed in the Category Menu.\n             */\n            label?: string;\n            /**\n             * Category language.\n             *\n             * Two-letter language code in [ISO 639-1 alpha-2](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) format.\n             */\n            language?: string;\n            /**\n             * Reserved for internal use.\n             */\n            oldRank?: number;\n            /**\n             * Number of posts in the category.\n             */\n            postCount?: number;\n            /**\n             * __Deprecated.__ Use `displayPosition` instead.\n             * This property will be removed on June 30, 2023.\n             *\n             * Category position in sequence.\n             */\n            rank?: number;\n            /**\n             * SEO data.\n             */\n            seoData?: wix_blog_backend.Posts.SeoSchema;\n            /**\n             * Category slug. For example, `'category-slug'`.\n             */\n            slug?: string;\n            /**\n             * Category title.\n             */\n            title?: string;\n            /**\n             * ID of the category's translations. All translations of a single category share the same `translationId`.\n             */\n            translationId?: string;\n            /**\n             * Category URL.\n             */\n            url?: string;\n        };\n        type CellStyle = {\n            /**\n             * Cell background color as a hexadecimal value.\n             */\n            backgroundColor?: string;\n            /**\n             * Vertical alignment for the cell's text.\n             */\n            verticalAlignment?: string;\n        };\n        type CodeBlockData = {\n            /**\n             * Styling for the code block's text.\n             */\n            textStyle?: wix_blog_backend.Posts.TextStyle;\n        };\n        type CollapsibleListData = {\n            /**\n             * Styling for the collapsible list's container.\n             */\n            containerData?: wix_blog_backend.Posts.PluginContainerData;\n            /**\n             * The direction of the text in the list. Either left-to-right or right-to-left.\n             */\n            direction?: string;\n            /**\n             * If `true`, only one item can be expanded at a time.\n             */\n            expandOnlyOne?: boolean;\n            /**\n             * Sets which items are expanded when the page loads.\n             */\n            initialExpandedItems?: string;\n            /**\n             * If `true`, The collapsible item will appear in search results as an FAQ.\n             */\n            isQapageData?: boolean;\n        };\n        type ColorData = {\n            /**\n             * The text's background color as a hexadecimal value.\n             */\n            background?: string;\n            /**\n             * The text's foreground color as a hexadecimal value.\n             */\n            foreground?: string;\n        };\n        type Colors = {\n            /**\n             * The background color as a hexadecimal value.\n             */\n            background?: string;\n            /**\n             * The border color as a hexadecimal value.\n             */\n            border?: string;\n            /**\n             * The text color as a hexadecimal value.\n             */\n            text?: string;\n        };\n        type CoverMedia = {\n            /**\n             * Whether the cover media is custom.\n             *\n             * `false` if the cover media is the first image or video in the post. `true` if set to some other image or video.\n             */\n            custom?: boolean;\n            /**\n             * Whether cover media is displayed.\n             */\n            displayed?: boolean;\n            /**\n             * Is cover media enabled.\n             * Selected by user whether to display cover media on the feed\n             */\n            enabled?: boolean;\n            /**\n             * Image url.\n             */\n            image?: string;\n            /**\n             * Video url.\n             */\n            video?: string;\n        };\n        type CoverMediaMediaOneOf = {\n            /**\n             * Image url.\n             */\n            image?: string;\n            /**\n             * Video url.\n             */\n            video?: string;\n        };\n        type CreateDraftPostFromTemplateRequest = {\n            /**\n             * Post template id\n             */\n            postTemplateId: string;\n        };\n        type CreateDraftPostFromTemplateResponse = {\n            /**\n             * Created draft post\n             */\n            draftPost?: wix_blog_backend.Posts.DraftPost;\n        };\n        type CursorMetaData = {\n            /**\n             * Cursor pointing to next result page.\n             */\n            next?: string;\n        };\n        type CursorPaging = {\n            /**\n             * Pointer to the next or previous page in the list of results.\n             *\n             * You can get the relevant cursor token\n             * from the `pagingMetadata` object in the previous call's response.\n             * Not relevant for the first request.\n             */\n            cursor?: string;\n            /**\n             * Number of items to load.\n             */\n            limit?: number;\n        };\n        type Cursors = {\n            /**\n             * Cursor pointing to next page in the list of results.\n             */\n            next?: string;\n            /**\n             * Cursor pointing to previous page in the list of results.\n             */\n            prev?: string;\n        };\n        type Decoration = {\n            /**\n             * Data for an anchor link decoration.\n             */\n            anchorData?: wix_blog_backend.Posts.AnchorData;\n            /**\n             * Data for a color decoration.\n             */\n            colorData?: wix_blog_backend.Posts.ColorData;\n            /**\n             * Data for a font size decoration.\n             */\n            fontSizeData?: wix_blog_backend.Posts.FontSizeData;\n            /**\n             * Font weight for a bold decoration.\n             */\n            fontWeightValue?: number;\n            /**\n             * Data for an italic decoration.\n             */\n            italicData?: boolean;\n            /**\n             * Data for an external link decoration.\n             */\n            linkData?: wix_blog_backend.Posts.LinkData;\n            /**\n             * Data for a mention decoration.\n             */\n            mentionData?: wix_blog_backend.Posts.MentionData;\n            /**\n             * The type of decoration to apply.\n             */\n            type?: string;\n            /**\n             * Data for an underline decoration.\n             */\n            underlineData?: boolean;\n        };\n        type DecorationDataOneOf = {\n            /**\n             * Data for an anchor link decoration.\n             */\n            anchorData?: wix_blog_backend.Posts.AnchorData;\n            /**\n             * Data for a color decoration.\n             */\n            colorData?: wix_blog_backend.Posts.ColorData;\n            /**\n             * Data for a font size decoration.\n             */\n            fontSizeData?: wix_blog_backend.Posts.FontSizeData;\n            /**\n             * Font weight for a bold decoration.\n             */\n            fontWeightValue?: number;\n            /**\n             * Data for an italic decoration.\n             */\n            italicData?: boolean;\n            /**\n             * Data for an external link decoration.\n             */\n            linkData?: wix_blog_backend.Posts.LinkData;\n            /**\n             * Data for a mention decoration.\n             */\n            mentionData?: wix_blog_backend.Posts.MentionData;\n            /**\n             * Data for an underline decoration.\n             */\n            underlineData?: boolean;\n        };\n        type Design = {\n            /**\n             * Styling for voting options.\n             */\n            options?: wix_blog_backend.Posts.OptionDesign;\n            /**\n             * Styling for the poll.\n             */\n            poll?: wix_blog_backend.Posts.PollDesign;\n        };\n        type Dimensions = {\n            /**\n             * An array representing the minimum width of each column in pixels.\n             */\n            colsMinWidth?: Array<number>;\n            /**\n             * An array representing relative width of each column in relation to the other columns.\n             */\n            colsWidthRatio?: Array<number>;\n            /**\n             * An array representing the height of each row in pixels.\n             */\n            rowsHeight?: Array<number>;\n        };\n        type DividerData = {\n            /**\n             * Divider alignment.\n             */\n            alignment?: string;\n            /**\n             * Styling for the divider's container.\n             */\n            containerData?: wix_blog_backend.Posts.PluginContainerData;\n            /**\n             * Divider line style.\n             */\n            lineStyle?: string;\n            /**\n             * Divider width.\n             */\n            width?: string;\n        };\n        type DocumentStyle = {\n            /**\n             * Styling for block quote nodes.\n             */\n            blockquote?: wix_blog_backend.Posts.TextNodeStyle;\n            /**\n             * Styling for code block nodes.\n             */\n            codeBlock?: wix_blog_backend.Posts.TextNodeStyle;\n            /**\n             * Styling for H5 nodes.\n             */\n            headerFive?: wix_blog_backend.Posts.TextNodeStyle;\n            /**\n             * Styling for H4 nodes.\n             */\n            headerFour?: wix_blog_backend.Posts.TextNodeStyle;\n            /**\n             * Styling for H1 nodes.\n             */\n            headerOne?: wix_blog_backend.Posts.TextNodeStyle;\n            /**\n             * Styling for H6 nodes.\n             */\n            headerSix?: wix_blog_backend.Posts.TextNodeStyle;\n            /**\n             * Styling for H3 nodes.\n             */\n            headerThree?: wix_blog_backend.Posts.TextNodeStyle;\n            /**\n             * Styling for H2 nodes.\n             */\n            headerTwo?: wix_blog_backend.Posts.TextNodeStyle;\n            /**\n             * Styling for paragraph nodes.\n             */\n            paragraph?: wix_blog_backend.Posts.TextNodeStyle;\n        };\n        type DraftPost = {\n            /**\n             * Date the draft post was first created.\n             */\n            _createdDate?: Date;\n            /**\n             * Draft post ID.\n             */\n            _id?: string;\n            /**\n             * Category IDs of the draft post.\n             */\n            categoryIds?: Array<string>;\n            /**\n             * Reserved for internal use.\n             */\n            changeOrigin?: string;\n            /**\n             * Whether commenting on the draft post is enabled.\n             */\n            commentingEnabled?: boolean;\n            /**\n             * Reserved for internal use.\n             */\n            content?: Object;\n            /**\n             * Reserved for internal use.\n             */\n            contentId?: string;\n            /**\n             * Date the draft post was last edited.\n             */\n            editedDate?: Date;\n            /**\n             * Reserved for internal use.\n             */\n            editingSessionId?: string;\n            /**\n             * Draft post excerpt.\n             *\n             * If no excerpt has been manually set, an excerpt is automatically generated from the post's text.\n             * This can be retrieved using the `GENERATED_EXCERPT` fieldset.\n             */\n            excerpt?: string;\n            /**\n             * Whether the draft post is marked as featured.\n             */\n            featured?: boolean;\n            /**\n             * Date the post was first published.\n             */\n            firstPublishedDate?: Date;\n            /**\n             * Indicates if there are changes made to the draft post that have not yet been published.\n             */\n            hasUnpublishedChanges?: boolean;\n            /**\n             * Hashtags in the post.\n             */\n            hashtags?: Array<string>;\n            /**\n             * Image placed at the top of the blog page.\n             */\n            heroImage?: string;\n            /**\n             * Reserved for internal use.\n             */\n            internalId?: string;\n            /**\n             * Language the draft post is written in.\n             *\n             * 2-letter language code in [ISO 639-1 alpha-2](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) format.\n             */\n            language?: string;\n            /**\n             * Post cover media.\n             */\n            media?: wix_blog_backend.Posts.BlogMedia;\n            /**\n             * Draft post owner's member ID.\n             */\n            memberId?: string;\n            /**\n             * Estimated reading time of the draft post (calculated automatically).\n             */\n            minutesToRead?: number;\n            /**\n             * Details of the draft post in review. Only relevant to posts submitted by guest writers.\n             */\n            moderationDetails?: wix_blog_backend.Posts.ModerationDetails;\n            /**\n             * Reserved for internal use.\n             */\n            mostRecentContributorId?: string;\n            /**\n             * Reserved for internal use.\n             */\n            paidContentParagraph?: number;\n            /**\n             * Number of paragraphs to display in a paid content preview for non-paying users.\n             */\n            previewTextParagraph?: number;\n            /**\n             * [Pricing plan IDs](https://dev.wix.com/api/rest/wix-pricing-plans). Only relevant if a post is assigned to a specific pricing plan.\n             */\n            pricingPlanIds?: Array<string>;\n            /**\n             * IDs of posts related to this draft post.\n             */\n            relatedPostIds?: Array<string>;\n            /**\n             * Draft Post rich content.\n             */\n            richContent?: wix_blog_backend.Posts.RichContent;\n            /**\n             * Date the draft post is scheduled to be published.\n             */\n            scheduledPublishDate?: Date;\n            /**\n             * SEO data.\n             */\n            seoData?: wix_blog_backend.Posts.SeoSchema;\n            /**\n             * SEO slug.\n             */\n            seoSlug?: string;\n            /**\n             * Reserved for internal use.\n             */\n            slugs?: Array<string>;\n            /**\n             * Status of the draft post.\n             */\n            status?: string;\n            /**\n             * Tag IDs the draft post is tagged with.\n             */\n            tagIds?: Array<string>;\n            /**\n             * Draft post title.\n             */\n            title?: string;\n            /**\n             * ID of the draft post's translations.\n             *\n             * All translations of a single post share the same `translationId`.\n             */\n            translationId?: string;\n            /**\n             * Draft post URL preview. What the URL will look like once the post is published.\n             */\n            url?: string;\n        };\n        type DraftPostTranslation = {\n            /**\n             * Post ID.\n             */\n            _id?: string;\n            /**\n             * Language the post is written in.\n             */\n            language?: string;\n            /**\n             * SEO data.\n             */\n            seoData?: wix_blog_backend.Posts.SeoSchema;\n            /**\n             * Post slug. For example, 'post-slug'.\n             */\n            slug?: string;\n            /**\n             * Post status.\n             */\n            status?: string;\n            /**\n             * Post URL.\n             */\n            url?: string;\n        };\n        type EmbedData = {\n            /**\n             * Styling for the oEmbed node's container.\n             */\n            containerData?: wix_blog_backend.Posts.PluginContainerData;\n            /**\n             * An [oEmbed](https://www.oembed.com) object.\n             */\n            oembed?: wix_blog_backend.Posts.Oembed;\n            /**\n             * Origin asset source.\n             */\n            src?: string;\n        };\n        type EmbedMedia = {\n            /**\n             * Thumbnail details.\n             */\n            thumbnail?: wix_blog_backend.Posts.EmbedThumbnail;\n            /**\n             * Video details.\n             */\n            video?: wix_blog_backend.Posts.EmbedVideo;\n        };\n        type EmbedThumbnail = {\n            /**\n             * Thumbnail height.\n             */\n            height?: number;\n            /**\n             * Thumbnail url.\n             */\n            url?: string;\n            /**\n             * Thumbnail width.\n             */\n            width?: number;\n        };\n        type EmbedVideo = {\n            /**\n             * Video height.\n             */\n            height?: number;\n            /**\n             * Video url.\n             */\n            url?: string;\n            /**\n             * Video width.\n             */\n            width?: number;\n        };\n        type EventData = {\n            /**\n             * Event location.\n             */\n            location?: string;\n            /**\n             * Event schedule.\n             */\n            scheduling?: string;\n        };\n        type FileData = {\n            /**\n             * Styling for the file's container.\n             */\n            containerData?: wix_blog_backend.Posts.PluginContainerData;\n            /**\n             * File MIME type.\n             */\n            mimeType?: string;\n            /**\n             * File name.\n             */\n            name?: string;\n            /**\n             * File path.\n             */\n            path?: string;\n            /**\n             * Settings for PDF files.\n             */\n            pdfSettings?: wix_blog_backend.Posts.PDFSettings;\n            /**\n             * File size in KB.\n             */\n            size?: number;\n            /**\n             * The source for the file's data.\n             */\n            src?: wix_blog_backend.Posts.FileSource;\n            /**\n             * File type.\n             */\n            type?: string;\n        };\n        type FileSource = {\n            /**\n             * An ID that's resolved to a URL by a resolver function.\n             */\n            _id?: string;\n            /**\n             * Custom ID. Use `id` instead.\n             */\n            custom?: string;\n            /**\n             * Indicates whether the file's source is private.\n             */\n            private?: boolean;\n            /**\n             * The absolute URL for the file's source.\n             */\n            url?: string;\n        };\n        type FileSourceDataOneOf = {\n            /**\n             * An ID that's resolved to a URL by a resolver function.\n             */\n            _id?: string;\n            /**\n             * Custom ID. Use `id` instead.\n             */\n            custom?: string;\n            /**\n             * The absolute URL for the file's source.\n             */\n            url?: string;\n        };\n        type FontSizeData = {\n            /**\n             * The units used for the font size.\n             */\n            unit?: string;\n            /**\n             * Font size value.\n             */\n            value?: number;\n        };\n        type GIF = {\n            /**\n             * GIF format URL.\n             */\n            gif?: string;\n            /**\n             * MP4 format URL.\n             */\n            mp4?: string;\n            /**\n             * Thumbnail URL.\n             */\n            still?: string;\n        };\n        type GIFData = {\n            /**\n             * Styling for the GIF's container.\n             */\n            containerData?: wix_blog_backend.Posts.PluginContainerData;\n            /**\n             * The source of the downsized GIF.\n             */\n            downsized?: wix_blog_backend.Posts.GIF;\n            /**\n             * Height in pixels.\n             */\n            height?: number;\n            /**\n             * The source of the full size GIF.\n             */\n            original?: wix_blog_backend.Posts.GIF;\n            /**\n             * Width in pixels.\n             */\n            width?: number;\n        };\n        type GalleryData = {\n            /**\n             * Styling for the gallery's container.\n             */\n            containerData?: wix_blog_backend.Posts.PluginContainerData;\n            /**\n             * Sets whether the gallery's download button is disabled.\n             */\n            disableDownload?: boolean;\n            /**\n             * Sets whether the gallery's expand button is disabled.\n             */\n            disableExpand?: boolean;\n            /**\n             * The items in the gallery.\n             */\n            items?: Array<wix_blog_backend.Posts.Item>;\n            /**\n             * Options for defining the gallery's appearance.\n             */\n            options?: wix_blog_backend.Posts.GalleryOptions;\n        };\n        type GalleryOptions = {\n            /**\n             * Styling for gallery items.\n             */\n            item?: wix_blog_backend.Posts.ItemStyle;\n            /**\n             * Gallery layout.\n             */\n            layout?: wix_blog_backend.Posts.Layout;\n            /**\n             * Styling for gallery thumbnail images.\n             */\n            thumbnails?: wix_blog_backend.Posts.Thumbnails;\n        };\n        type GetPostBySlugOptions = {\n            /**\n             * List of post fields to be included in the response. By default, any fields not passed are not returned.\n             *\n             * Supported Values:\n             * `\"CONTACT_ID\"`, `\"CONTENT_TEXT\"`, `\"METRICS\"`, `\"SEO\"`, and `\"URL\"`.\n             */\n            fieldsets?: Array<string>;\n        };\n        type GetPostBySlugRequest = {\n            /**\n             * Reserved for internal use.\n             */\n            fieldsToInclude?: Array<string>;\n            /**\n             * List of post fields to be included in the response. By default, any fields not passed are not returned.\n             *\n             * Supported Values:\n             * `\"CONTACT_ID\"`, `\"CONTENT_TEXT\"`, `\"METRICS\"`, `\"SEO\"`, and `\"URL\"`.\n             */\n            fieldsets?: Array<string>;\n            /**\n             * Slug of the post to retrieve.\n             */\n            slug: string;\n        };\n        type GetPostBySlugResponse = {\n            /**\n             * Post info.\n             */\n            post?: wix_blog_backend.Posts.Post;\n        };\n        type GetPostMetricsRequest = {\n            /**\n             * Post ID.\n             */\n            postId: string;\n        };\n        type GetPostMetricsResponse = {\n            /**\n             * Post metrics.\n             */\n            metrics?: wix_blog_backend.Posts.Metrics;\n        };\n        type GetPostOptions = {\n            /**\n             * List of post fields to be included in the response. By default, any fields not passed are not returned.\n             *\n             * Supported Values:\n             * `\"CONTACT_ID\"`, `\"CONTENT_TEXT\"`, `\"METRICS\"`, `\"SEO\"`, and `\"URL\"`.\n             */\n            fieldsets?: Array<string>;\n        };\n        type GetPostRequest = {\n            /**\n             * Reserved for internal use.\n             */\n            fieldsToInclude?: Array<string>;\n            /**\n             * List of post fields to be included in the response. By default, any fields not passed are not returned.\n             *\n             * Supported Values:\n             * `\"CONTACT_ID\"`, `\"CONTENT_TEXT\"`, `\"METRICS\"`, `\"SEO\"`, and `\"URL\"`.\n             */\n            fieldsets?: Array<string>;\n            /**\n             * Post ID.\n             */\n            postId: string;\n        };\n        type GetPostResponse = {\n            /**\n             * Post info.\n             */\n            post?: wix_blog_backend.Posts.Post;\n        };\n        type GetTemplateRequest = {\n            /**\n             * Post template id\n             */\n            postTemplateId: string;\n        };\n        type GetTemplateResponse = {\n            /**\n             * Post template\n             */\n            postTemplate?: wix_blog_backend.Posts.Post;\n        };\n        type GetTotalLikesPerMemberRequest = {\n            /**\n             * Member ID.\n             */\n            memberId: string;\n        };\n        type GetTotalLikesPerMemberResponse = {\n            /**\n             * The total number of likes of the member.\n             */\n            total?: number;\n        };\n        type GetTotalPostsOptions = {\n            /**\n             * Language filter.\n             *\n             * 2-letter language code in [ISO 639-1 alpha-2](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) format.\n             */\n            language?: string;\n        };\n        type GetTotalPostsRequest = {\n            /**\n             * Language filter.\n             *\n             * 2-letter language code in [ISO 639-1 alpha-2](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) format.\n             */\n            language?: string;\n        };\n        type GetTotalPostsResponse = {\n            /**\n             * Total amount of published posts.\n             */\n            total?: number;\n        };\n        type GetTotalPublicationsOptions = {\n            /**\n             * Language filter\n             */\n            language?: string;\n        };\n        type GetTotalPublicationsRequest = {\n            /**\n             * Language filter\n             */\n            language?: string;\n        };\n        type GetTotalPublicationsResponse = {\n            /**\n             * Total amount of publications.\n             */\n            total?: number;\n        };\n        type Gradient = {\n            /**\n             * The gradient angle in degrees.\n             */\n            angle?: number;\n            /**\n             * The end color as a hexademical value.\n             */\n            lastColor?: string;\n            /**\n             * The start color as a hexademical value.\n             */\n            startColor?: string;\n        };\n        type HTMLData = {\n            /**\n             * Styling for the HTML node's container.\n             */\n            containerData?: wix_blog_backend.Posts.PluginContainerData;\n            /**\n             * The HTML code for the node.\n             */\n            html?: string;\n            /**\n             * Whether this is an AdSense element. Use `source` instead.\n             */\n            isAdsense?: boolean;\n            /**\n             * The type of HTML code.\n             */\n            source?: string;\n            /**\n             * The URL for the HTML code for the node.\n             */\n            url?: string;\n        };\n        type HTMLDataDataOneOf = {\n            /**\n             * The HTML code for the node.\n             */\n            html?: string;\n            /**\n             * Whether this is an AdSense element. Use `source` instead.\n             */\n            isAdsense?: boolean;\n            /**\n             * The URL for the HTML code for the node.\n             */\n            url?: string;\n        };\n        type HeadingData = {\n            /**\n             * Indentation level from 1-6.\n             */\n            indentation?: number;\n            /**\n             * Heading level from 1-6.\n             */\n            level?: number;\n            /**\n             * Styling for the heading text.\n             */\n            textStyle?: wix_blog_backend.Posts.TextStyle;\n        };\n        type Height = {\n            /**\n             * A custom height value in pixels.\n             */\n            custom?: string;\n        };\n        type Image = {\n            /**\n             * Link details for images that are links.\n             */\n            link?: wix_blog_backend.Posts.Link;\n            /**\n             * Image file details.\n             */\n            media?: wix_blog_backend.Posts.Media;\n        };\n        type ImageData = {\n            /**\n             * Image's alternative text.\n             */\n            altText?: string;\n            /**\n             * Image caption.\n             */\n            caption?: string;\n            /**\n             * Styling for the image's container.\n             */\n            containerData?: wix_blog_backend.Posts.PluginContainerData;\n            /**\n             * Sets whether the image's download button is disabled.\n             */\n            disableDownload?: boolean;\n            /**\n             * Sets whether the image expands to full screen when clicked.\n             */\n            disableExpand?: boolean;\n            /**\n             * Image file details.\n             */\n            image?: wix_blog_backend.Posts.Media;\n            /**\n             * Link details for images that are links.\n             */\n            link?: wix_blog_backend.Posts.Link;\n        };\n        type InitialPostsCopied = {\n            /**\n             * Number of posts copied.\n             */\n            count?: number;\n        };\n        type Item = {\n            /**\n             * Item's alternative text.\n             */\n            altText?: string;\n            /**\n             * An image item.\n             */\n            image?: wix_blog_backend.Posts.Image;\n            /**\n             * Item title.\n             */\n            title?: string;\n            /**\n             * A video item.\n             */\n            video?: wix_blog_backend.Posts.Video;\n        };\n        type ItemDataOneOf = {\n            /**\n             * An image item.\n             */\n            image?: wix_blog_backend.Posts.Image;\n            /**\n             * A video item.\n             */\n            video?: wix_blog_backend.Posts.Video;\n        };\n        type ItemStyle = {\n            /**\n             * Sets how item images are cropped.\n             */\n            crop?: string;\n            /**\n             * Item ratio\n             */\n            ratio?: number;\n            /**\n             * The spacing between items in pixels.\n             */\n            spacing?: number;\n            /**\n             * Desirable dimension for each item in pixels (behvaior changes according to gallery type)\n             */\n            targetSize?: number;\n        };\n        type Layout = {\n            /**\n             * Sets whether horizontal scroll is enabled.\n             */\n            horizontalScroll?: boolean;\n            /**\n             * The number of columns to display on mobile screens.\n             */\n            mobileNumberOfColumns?: number;\n            /**\n             * The number of columns to display on full size screens.\n             */\n            numberOfColumns?: number;\n            /**\n             * Gallery orientation.\n             */\n            orientation?: string;\n            /**\n             * Gallery layout type.\n             */\n            type?: string;\n        };\n        type Link = {\n            /**\n             * The target node's ID. Used for linking to another node in this object.\n             */\n            anchor?: string;\n            /**\n             * A serialized object used for a custom or external link panel.\n             */\n            customData?: string;\n            /**\n             * The HTML `rel` attribute value for the link. This object specifies the relationship between the current document and the linked document.\n             */\n            rel?: wix_blog_backend.Posts.Rel;\n            /**\n             * he HTML `target` attribute value for the link. This property defines where the linked document opens as follows:\n             * `SELF` - Default. Opens the linked document in the same frame as the link.\n             * `BLANK` - Opens the linked document in a new browser tab or window.\n             * `PARENT` - Opens the linked document in the link's parent frame.\n             * `TOP` - Opens the linked document in the full body of the link's browser tab or window.\n             */\n            target?: string;\n            /**\n             * The absolute URL for the linked document.\n             */\n            url?: string;\n        };\n        type LinkData = {\n            /**\n             * Link details.\n             */\n            link?: wix_blog_backend.Posts.Link;\n        };\n        type LinkDataOneOf = {\n            /**\n             * The target node's ID. Used for linking to another node in this object.\n             */\n            anchor?: string;\n            /**\n             * The absolute URL for the linked document.\n             */\n            url?: string;\n        };\n        type LinkPreviewData = {\n            /**\n             * Styling for the link preview's container.\n             */\n            containerData?: wix_blog_backend.Posts.PluginContainerData;\n            /**\n             * Preview description.\n             */\n            description?: string;\n            /**\n             * The preview content as HTML.\n             */\n            html?: string;\n            /**\n             * Link details.\n             */\n            link?: wix_blog_backend.Posts.Link;\n            /**\n             * Preview thumbnail URL.\n             */\n            thumbnailUrl?: string;\n            /**\n             * Preview title.\n             */\n            title?: string;\n        };\n        type ListDemoPostsOptions = {\n            /**\n             * Category filter.\n             *\n             * Pass an array of category IDs to return only posts with any of the provided categories.\n             * If omitted, all posts with or without associated categories are returned.\n             */\n            categoryIds?: Array<string>;\n            /**\n             * Whether to return only featured posts.\n             *\n             * Default: `false`\n             */\n            featured?: boolean;\n            /**\n             * Reserved for internal use.\n             */\n            fieldsToInclude?: Array<string>;\n            /**\n             * List of post fields to be included in the response. By default, any fields not passed are not returned.\n             *\n             * Supported Values:\n             * `\"CONTACT_ID\"`, `\"CONTENT_TEXT\"`, `\"METRICS\"`, `\"SEO\"`, and `\"URL\"`.\n             */\n            fieldsets?: Array<string>;\n            /**\n             * Hashtag filter.\n             *\n             * Pass an array of hashtags to return only posts containing any of the provided hashtags.\n             * If omitted, all posts with or without hashtags are returned.\n             */\n            hashtags?: Array<string>;\n            /**\n             * Language filter.\n             *\n             * 2-letter language code in [ISO 639-1 alpha-2](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) format.\n             */\n            language?: string;\n            /**\n             * Post owner's member ID.\n             */\n            memberId?: string;\n            /**\n             * Pagination options.\n             */\n            paging?: wix_blog_backend.Posts.BlogPaging;\n            /**\n             * Sort order by descending view count, ascending or descending publish date, or default to descending by publish date with pinned posts first.\n             */\n            sort?: string;\n            /**\n             * Tag filter.\n             *\n             * Pass an array of tag IDs to return only posts with any of the provided tags.\n             * If omitted, all posts with or without tags are returned.\n             */\n            tagIds?: Array<string>;\n        };\n        type ListMigratedPostsOptions = {\n            /**\n             * Cursor pointing to page of results\n             */\n            paging?: wix_blog_backend.Posts.BlogCursorPaging;\n        };\n        type ListMigratedPostsRequest = {\n            /**\n             * New blog version instance id\n             */\n            instanceId: string;\n            /**\n             * Cursor pointing to page of results\n             */\n            paging?: wix_blog_backend.Posts.BlogCursorPaging;\n        };\n        type ListMigratedPostsResponse = {\n            /**\n             * Pagination\n             */\n            pagingMetaData?: wix_blog_backend.Posts.CursorMetaData;\n            /**\n             * List of posts\n             */\n            posts?: Array<wix_blog_backend.Posts.Post>;\n            /**\n             * Data of post in old blog by post id\n             */\n            postsMigrationMeta?: Record<string, wix_blog_backend.Posts.PostMigrationMetaData>;\n        };\n        type ListPostsOptions = {\n            /**\n             * List of category IDs to filter for.\n             *\n             * Default: All categories\n             */\n            categoryIds?: Array<string>;\n            /**\n             * Featured filter. Whether to return only featured posts.\n             */\n            featured?: boolean;\n            /**\n             * List of post fields to be included in the response. By default, any fields not passed are not returned.\n             *\n             * Supported Values:\n             * `\"CONTACT_ID\"`, `\"CONTENT_TEXT\"`, `\"METRICS\"`, `\"SEO\"`, and `\"URL\"`.\n             */\n            fieldsets?: Array<string>;\n            /**\n             * List of hashtags to filter for.\n             *\n             * Default: All hashtags\n             */\n            hashtags?: Array<string>;\n            /**\n             * Language filter.\n             *\n             * 2-letter language code in [ISO 639-1 alpha-2](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) format.\n             */\n            language?: string;\n            /**\n             * Member ID to filter for.\n             *\n             * Default: All members\n             */\n            memberId?: string;\n            /**\n             * Pagination options.\n             */\n            paging?: wix_blog_backend.Posts.BlogPaging;\n            /**\n             * Sort order.\n             *\n             * Sort by one of the following:\n             *  - `'VIEW_COUNT'` descending view count\n             *  - `'LIKE_COUNT'` descending like count\n             *  - `'PUBLISHED_DATE_ASC'` ascending published date\n             *  - `'PUBLISHED_DATE_DESC'` descending published date\n             *  - `'TITLE_ASC'` ascending title\n             *  - `'TITLE_DESC'` descending title\n             *\n             *  Default: `'PUBLISHED_DATE_DESC'`\n             */\n            sort?: string;\n            /**\n             * List of tag IDs to filter for.\n             *\n             * Default: All tags\n             */\n            tagIds?: Array<string>;\n        };\n        type ListPostsRequest = {\n            /**\n             * Category filter.\n             *\n             * Pass an array of category IDs to return only posts with any of the provided categories.\n             * If omitted, all posts with or without associated categories are returned.\n             */\n            categoryIds?: Array<string>;\n            /**\n             * Whether to return only featured posts.\n             *\n             * Default: `false`\n             */\n            featured?: boolean;\n            /**\n             * Reserved for internal use.\n             */\n            fieldsToInclude?: Array<string>;\n            /**\n             * List of post fields to be included in the response. By default, any fields not passed are not returned.\n             *\n             * Supported Values:\n             * `\"CONTACT_ID\"`, `\"CONTENT_TEXT\"`, `\"METRICS\"`, `\"SEO\"`, and `\"URL\"`.\n             */\n            fieldsets?: Array<string>;\n            /**\n             * Hashtag filter.\n             *\n             * Pass an array of hashtags to return only posts containing any of the provided hashtags.\n             * If omitted, all posts with or without hashtags are returned.\n             */\n            hashtags?: Array<string>;\n            /**\n             * Language filter.\n             *\n             * 2-letter language code in [ISO 639-1 alpha-2](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) format.\n             */\n            language?: string;\n            /**\n             * Post owner's member ID.\n             */\n            memberId?: string;\n            /**\n             * Pagination options.\n             */\n            paging?: wix_blog_backend.Posts.BlogPaging;\n            /**\n             * Sort order by descending view count, ascending or descending publish date, or default to descending by publish date with pinned posts first.\n             */\n            sort?: string;\n            /**\n             * Tag filter.\n             *\n             * Pass an array of tag IDs to return only posts with any of the provided tags.\n             * If omitted, all posts with or without tags are returned.\n             */\n            tagIds?: Array<string>;\n        };\n        type ListPostsResponse = {\n            /**\n             * Details on the paged set of results returned.\n             */\n            metaData?: wix_blog_backend.Posts.MetaData;\n            /**\n             * List of posts.\n             */\n            posts?: Array<wix_blog_backend.Posts.Post>;\n        };\n        type ListTemplatesOptions = {\n            /**\n             * Filter post templates by given template category ids\n             */\n            categoryIds?: Array<string>;\n            /**\n             * Filter post templates by provided language\n             */\n            language?: string;\n            /**\n             * Returns post template categories when set to TRUE\n             */\n            listTemplateCategories?: boolean;\n            /**\n             * Pagination options.\n             */\n            paging?: wix_blog_backend.Posts.BlogPaging;\n            /**\n             * Sort order by ascending/descending publish date. Default is ascending publish date sort\n             */\n            sort?: string;\n        };\n        type ListTemplatesRequest = {\n            /**\n             * Filter post templates by given template category ids\n             */\n            categoryIds?: Array<string>;\n            /**\n             * Filter post templates by provided language\n             */\n            language?: string;\n            /**\n             * Returns post template categories when set to TRUE\n             */\n            listTemplateCategories?: boolean;\n            /**\n             * Pagination options.\n             */\n            paging?: wix_blog_backend.Posts.BlogPaging;\n            /**\n             * Sort order by ascending/descending publish date. Default is ascending publish date sort\n             */\n            sort?: string;\n        };\n        type ListTemplatesResponse = {\n            /**\n             * Available post templates\n             */\n            postTemplates?: Array<wix_blog_backend.Posts.Post>;\n            /**\n             * Details on the paged set of posts templates returned.\n             */\n            postTemplatesMetaData?: wix_blog_backend.Posts.MetaData;\n            /**\n             * Post template categories. This value is returned empty unless asked explicitly\n             */\n            templateCategories?: Array<wix_blog_backend.Posts.Category>;\n        };\n        type ListValue = {\n            /**\n             * Repeated field of dynamically typed values.\n             */\n            values?: Array<any>;\n        };\n        type MapData = {\n            /**\n             * Styling for the map's container.\n             */\n            containerData?: wix_blog_backend.Posts.PluginContainerData;\n            /**\n             * Map settings.\n             */\n            mapSettings?: wix_blog_backend.Posts.MapSettings;\n        };\n        type MapSettings = {\n            /**\n             * The address to display on the map.\n             */\n            address?: string;\n            /**\n             * Sets whether the map is draggable.\n             */\n            draggable?: boolean;\n            /**\n             * Initial zoom value.\n             */\n            initialZoom?: number;\n            /**\n             * Location latitude.\n             */\n            lat?: number;\n            /**\n             * Location longitude.\n             */\n            lng?: number;\n            /**\n             * Location name.\n             */\n            locationName?: string;\n            /**\n             * Map type. `HYBRID` is a combination of the `ROADMAP` and `SATELLITE` map types.\n             */\n            mapType?: string;\n            /**\n             * Sets whether the location marker is visible.\n             */\n            marker?: boolean;\n            /**\n             * Sets whether street view control is enabled.\n             */\n            streetViewControl?: boolean;\n            /**\n             * Sets whether view mode control is enabled.\n             */\n            viewModeControl?: boolean;\n            /**\n             * Sets whether zoom control is enabled.\n             */\n            zoomControl?: boolean;\n        };\n        type Media = {\n            /**\n             * Media duration in seconds. Only relevant for audio and video files.\n             */\n            duration?: number;\n            /**\n             * Media height in pixels.\n             */\n            height?: number;\n            /**\n             * The source for the media's data.\n             */\n            src?: wix_blog_backend.Posts.FileSource;\n            /**\n             * Media width in pixels.\n             */\n            width?: number;\n        };\n        type MentionData = {\n            /**\n             * Mentioned user's ID.\n             */\n            _id?: string;\n            /**\n             * The mentioned user's name.\n             */\n            name?: string;\n            /**\n             * The version of the user's name that appears after the `@` character in the mention.\n             */\n            slug?: string;\n        };\n        type MetaData = {\n            /**\n             * Number of items returned in this response.\n             */\n            count?: number;\n            /**\n             * Pointer to the next or previous page in the list of results.\n             */\n            cursor?: string;\n            /**\n             * Number of items skipped in the current sort order.\n             */\n            offset?: number;\n            /**\n             * Total number of items that match the query.\n             */\n            total?: number;\n        };\n        type Metadata = {\n            /**\n             * Object ID.\n             */\n            _id?: string;\n            /**\n             * When the object was created.\n             */\n            createdTimestamp?: Date;\n            /**\n             * When the object was most recently updated.\n             */\n            updatedTimestamp?: Date;\n            /**\n             * Schema version.\n             */\n            version?: number;\n        };\n        type Metrics = {\n            /**\n             * Total number of post comments.\n             */\n            comments?: number;\n            /**\n             * Total number of post likes.\n             */\n            likes?: number;\n            /**\n             * Total number of post views.\n             */\n            views?: number;\n        };\n        type ModerationDetails = {\n            /**\n             * Member ID of the person who approved or rejected the post.\n             */\n            moderatedBy?: string;\n            /**\n             * Date and time the post was approved or rejected by a moderator.\n             */\n            moderationDate?: Date;\n            /**\n             * Status indicating whether the submission was approved or rejected by the moderator.\n             *\n             * Supported values: `'APPROVED'`, `'REJECTED'`, `'PENDING'`.\n             */\n            status?: string;\n            /**\n             * Member ID of the person who submitted the post.\n             */\n            submittedBy?: string;\n            /**\n             * Date and time the post was submitted for moderation.\n             */\n            submittedDate?: Date;\n        };\n        type Node = {\n            /**\n             * Node ID.\n             */\n            _id?: string;\n            /**\n             * Data for an app embed node.\n             */\n            appEmbedData?: wix_blog_backend.Posts.AppEmbedData;\n            /**\n             * Data for an audio node.\n             */\n            audioData?: wix_blog_backend.Posts.AudioData;\n            /**\n             * Data for a block quote node.\n             */\n            blockquoteData?: wix_blog_backend.Posts.BlockquoteData;\n            /**\n             * Data for a bulleted list node.\n             */\n            bulletedListData?: wix_blog_backend.Posts.BulletedListData;\n            /**\n             * Data for a button node.\n             */\n            buttonData?: wix_blog_backend.Posts.ButtonData;\n            /**\n             * Data for a code block node.\n             */\n            codeBlockData?: wix_blog_backend.Posts.CodeBlockData;\n            /**\n             * Data for a collapsible list node.\n             */\n            collapsibleListData?: wix_blog_backend.Posts.CollapsibleListData;\n            /**\n             * Data for a divider node.\n             */\n            dividerData?: wix_blog_backend.Posts.DividerData;\n            /**\n             * Data for an oEmbed node.\n             */\n            embedData?: wix_blog_backend.Posts.EmbedData;\n            /**\n             * Data for a custon external node.\n             */\n            externalData?: Object;\n            /**\n             * Data for a file node.\n             */\n            fileData?: wix_blog_backend.Posts.FileData;\n            /**\n             * Data for a gallery node.\n             */\n            galleryData?: wix_blog_backend.Posts.GalleryData;\n            /**\n             * Data for a GIF node.\n             */\n            gifData?: wix_blog_backend.Posts.GIFData;\n            /**\n             * Data for a heading node.\n             */\n            headingData?: wix_blog_backend.Posts.HeadingData;\n            /**\n             * Data for an embedded HTML node.\n             */\n            htmlData?: wix_blog_backend.Posts.HTMLData;\n            /**\n             * Data for an image node.\n             */\n            imageData?: wix_blog_backend.Posts.ImageData;\n            /**\n             * Data for a link preview node.\n             */\n            linkPreviewData?: wix_blog_backend.Posts.LinkPreviewData;\n            /**\n             * Data for a map node.\n             */\n            mapData?: wix_blog_backend.Posts.MapData;\n            /**\n             * A list of child nodes.\n             */\n            nodes?: Array<wix_blog_backend.Posts.Node>;\n            /**\n             * Data for an ordered list node.\n             */\n            orderedListData?: wix_blog_backend.Posts.OrderedListData;\n            /**\n             * Data for a paragraph node.\n             */\n            paragraphData?: wix_blog_backend.Posts.ParagraphData;\n            /**\n             * Data for a poll node.\n             */\n            pollData?: wix_blog_backend.Posts.PollData;\n            /**\n             * Padding and background color styling for the node.\n             */\n            style?: wix_blog_backend.Posts.NodeStyle;\n            /**\n             * Data for a table cell node.\n             */\n            tableCellData?: wix_blog_backend.Posts.TableCellData;\n            /**\n             * Data for a table node.\n             */\n            tableData?: wix_blog_backend.Posts.TableData;\n            /**\n             * Data for a text node. Used to apply decorations to text.\n             */\n            textData?: wix_blog_backend.Posts.TextData;\n            /**\n             * Node type. Use `APP_EMBED` for nodes that embed content from other Wix apps. Use `EMBED` to embed content in [oEmbed](https://oembed.com/) format.\n             */\n            type?: string;\n            /**\n             * Data for a video node.\n             */\n            videoData?: wix_blog_backend.Posts.VideoData;\n        };\n        type NodeDataOneOf = {\n            /**\n             * Data for an app embed node.\n             */\n            appEmbedData?: wix_blog_backend.Posts.AppEmbedData;\n            /**\n             * Data for an audio node.\n             */\n            audioData?: wix_blog_backend.Posts.AudioData;\n            /**\n             * Data for a block quote node.\n             */\n            blockquoteData?: wix_blog_backend.Posts.BlockquoteData;\n            /**\n             * Data for a bulleted list node.\n             */\n            bulletedListData?: wix_blog_backend.Posts.BulletedListData;\n            /**\n             * Data for a button node.\n             */\n            buttonData?: wix_blog_backend.Posts.ButtonData;\n            /**\n             * Data for a code block node.\n             */\n            codeBlockData?: wix_blog_backend.Posts.CodeBlockData;\n            /**\n             * Data for a collapsible list node.\n             */\n            collapsibleListData?: wix_blog_backend.Posts.CollapsibleListData;\n            /**\n             * Data for a divider node.\n             */\n            dividerData?: wix_blog_backend.Posts.DividerData;\n            /**\n             * Data for an oEmbed node.\n             */\n            embedData?: wix_blog_backend.Posts.EmbedData;\n            /**\n             * Data for a custon external node.\n             */\n            externalData?: Object;\n            /**\n             * Data for a file node.\n             */\n            fileData?: wix_blog_backend.Posts.FileData;\n            /**\n             * Data for a gallery node.\n             */\n            galleryData?: wix_blog_backend.Posts.GalleryData;\n            /**\n             * Data for a GIF node.\n             */\n            gifData?: wix_blog_backend.Posts.GIFData;\n            /**\n             * Data for a heading node.\n             */\n            headingData?: wix_blog_backend.Posts.HeadingData;\n            /**\n             * Data for an embedded HTML node.\n             */\n            htmlData?: wix_blog_backend.Posts.HTMLData;\n            /**\n             * Data for an image node.\n             */\n            imageData?: wix_blog_backend.Posts.ImageData;\n            /**\n             * Data for a link preview node.\n             */\n            linkPreviewData?: wix_blog_backend.Posts.LinkPreviewData;\n            /**\n             * Data for a map node.\n             */\n            mapData?: wix_blog_backend.Posts.MapData;\n            /**\n             * Data for an ordered list node.\n             */\n            orderedListData?: wix_blog_backend.Posts.OrderedListData;\n            /**\n             * Data for a paragraph node.\n             */\n            paragraphData?: wix_blog_backend.Posts.ParagraphData;\n            /**\n             * Data for a poll node.\n             */\n            pollData?: wix_blog_backend.Posts.PollData;\n            /**\n             * Data for a table cell node.\n             */\n            tableCellData?: wix_blog_backend.Posts.TableCellData;\n            /**\n             * Data for a table node.\n             */\n            tableData?: wix_blog_backend.Posts.TableData;\n            /**\n             * Data for a text node. Used to apply decorations to text.\n             */\n            textData?: wix_blog_backend.Posts.TextData;\n            /**\n             * Data for a video node.\n             */\n            videoData?: wix_blog_backend.Posts.VideoData;\n        };\n        type NodeStyle = {\n            /**\n             * The background color as a hexadecimal value.\n             */\n            backgroundColor?: string;\n            /**\n             * The bottom padding value in pixels.\n             */\n            paddingBottom?: string;\n            /**\n             * The top padding value in pixels.\n             */\n            paddingTop?: string;\n        };\n        type Oembed = {\n            /**\n             * The name of the author or owner of the resource.\n             */\n            authorName?: string;\n            /**\n             * The URL for the author or owner of the resource.\n             */\n            authorUrl?: string;\n            /**\n             * The height of the resource specified in the `url` property in pixels.\n             */\n            height?: number;\n            /**\n             * HTML for embedding a video player. The HTML should have no padding or margins.\n             */\n            html?: string;\n            /**\n             * The name of the resource provider.\n             */\n            providerName?: string;\n            /**\n             * The URL for the resource provider.\n             */\n            providerUrl?: string;\n            /**\n             * The height of the resource's thumbnail image. If this property is defined, `thumbnailUrl` and `thumbnailWidth`must also be defined.\n             */\n            thumbnailHeight?: string;\n            /**\n             * The URL for a thumbnail image for the resource. If this property is defined, `thumbnailWidth` and `thumbnailHeight` must also be defined.\n             */\n            thumbnailUrl?: string;\n            /**\n             * The width of the resource's thumbnail image. If this property is defined, `thumbnailUrl` and `thumbnailHeight` must also be defined.\n             */\n            thumbnailWidth?: string;\n            /**\n             * Resource title.\n             */\n            title?: string;\n            /**\n             * The resource type.\n             */\n            type?: string;\n            /**\n             * The source URL for the resource.\n             */\n            url?: string;\n            /**\n             * The oEmbed version number.  This value must be `1.0`.\n             */\n            version?: string;\n            /**\n             * The URL for an embedded viedo.\n             */\n            videoUrl?: string;\n            /**\n             * The width of the resource specified in the `url` property in pixels.\n             */\n            width?: number;\n        };\n        type OldBlogMigratedEvent = {\n            /**\n             * Instance id of new version of blog\n             */\n            newBlogInstanceId?: string;\n            /**\n             * Instance id of old version of blog\n             */\n            oldBlogInstanceId?: string;\n        };\n        type Option = {\n            /**\n             * Option ID.\n             */\n            _id?: string;\n            /**\n             * The image displayed with the option.\n             */\n            image?: wix_blog_backend.Posts.Media;\n            /**\n             * Option title.\n             */\n            title?: string;\n        };\n        type OptionDesign = {\n            /**\n             * Border radius in pixels.\n             */\n            borderRadius?: number;\n        };\n        type OptionLayout = {\n            /**\n             * Sets whether to display option images.\n             */\n            enableImage?: boolean;\n        };\n        type OrderedListData = {\n            /**\n             * Indentation level.\n             */\n            indentation?: number;\n        };\n        type PDFSettings = {\n            /**\n             * Sets whether the PDF download button is disabled.\n             */\n            disableDownload?: boolean;\n            /**\n             * Sets whether the PDF print button is disabled.\n             */\n            disablePrint?: boolean;\n            /**\n             * PDF view mode. One of the following:\n             * `NONE` : The PDF isn't displayed.\n             * `FULL` : A full page view of the PDF is displayed.\n             * `MINI` : A mini view of the PDF is displayed.\n             */\n            viewMode?: string;\n        };\n        type Paging = {\n            /**\n             * Number of items to load.\n             */\n            limit?: number;\n            /**\n             * Number of items to skip in the current sort order.\n             */\n            offset?: number;\n        };\n        type PagingMetadataV2 = {\n            /**\n             * Number of items returned in the response.\n             */\n            count?: number;\n            /**\n             * Cursors to navigate through the result pages using `next` and `prev`. Returned if cursor paging is used.\n             */\n            cursors?: wix_blog_backend.Posts.Cursors;\n            /**\n             * Offset that was requested.\n             */\n            offset?: number;\n            /**\n             * Flag that indicates the server failed to calculate the `total` field.\n             */\n            tooManyToCount?: boolean;\n            /**\n             * Total number of items that match the query. Returned if offset paging is used and the `tooManyToCount` flag is not set.\n             */\n            total?: number;\n        };\n        type ParagraphData = {\n            /**\n             * Indentation level from 1-6.\n             */\n            indentation?: number;\n            /**\n             * Styling for the paragraph text.\n             */\n            textStyle?: wix_blog_backend.Posts.TextStyle;\n        };\n        type PeriodPostCount = {\n            /**\n             * Start of time range in ISO 8601 date and time format.\n             */\n            periodStart?: Date;\n            /**\n             * Number of posts published during this month.\n             */\n            postCount?: number;\n        };\n        type PeriodPublicationsCount = {\n            /**\n             * Start of time range in ISO 8601 date and time format.\n             */\n            periodStart?: Date;\n            /**\n             * Number of posts published during this month.\n             */\n            publicationsCount?: number;\n        };\n        type Permissions = {\n            /**\n             * Sets whether one voter can vote multiple times.\n             */\n            allowMultipleVotes?: boolean;\n            /**\n             * Sets who can view the poll results.\n             */\n            view?: string;\n            /**\n             * Sets who can vote.\n             */\n            vote?: string;\n        };\n        type PlatformQuery = {\n            /**\n             * Cursor token pointing to a page of results. Not used in the first request. Following requests use the cursor token and not `filter` or `sort`.\n             */\n            cursorPaging?: wix_blog_backend.Posts.CursorPaging;\n            /**\n             * Filter object in the following format:\n             * `\"filter\" : {\n             * \"fieldName1\": \"value1\",\n             * \"fieldName2\":{\"$operator\":\"value2\"}\n             * }`\n             * Example of operators: `$eq`, `$ne`, `$lt`, `$lte`, `$gt`, `$gte`, `$in`, `$hasSome`, `$hasAll`, `$startsWith`, `$contains`\n             */\n            filter?: Object;\n            /**\n             * Paging options to limit and skip the number of items.\n             */\n            paging?: wix_blog_backend.Posts.Paging;\n            /**\n             * Sort object in the following format:\n             * `[{\"fieldName\":\"sortField1\",\"order\":\"ASC\"},{\"fieldName\":\"sortField2\",\"order\":\"DESC\"}]`\n             */\n            sort?: Array<wix_blog_backend.Posts.Sorting>;\n        };\n        type PlatformQueryPagingMethodOneOf = {\n            /**\n             * Cursor token pointing to a page of results. Not used in the first request. Following requests use the cursor token and not `filter` or `sort`.\n             */\n            cursorPaging?: wix_blog_backend.Posts.CursorPaging;\n            /**\n             * Paging options to limit and skip the number of items.\n             */\n            paging?: wix_blog_backend.Posts.Paging;\n        };\n        type PlaybackOptions = {\n            /**\n             * Sets whether the media will automatically start playing.\n             */\n            autoPlay?: boolean;\n            /**\n             * Sets whether media's will be looped.\n             */\n            playInLoop?: boolean;\n            /**\n             * Sets whether media's controls will be shown.\n             */\n            showControls?: boolean;\n        };\n        type PluginContainerData = {\n            /**\n             * The node's alignment within its container.\n             */\n            alignment?: string;\n            /**\n             * The height of the node when it's displayed.\n             */\n            height?: wix_blog_backend.Posts.Height;\n            /**\n             * Spoiler cover settings for the node.\n             */\n            spoiler?: wix_blog_backend.Posts.Spoiler;\n            /**\n             * Sets whether text should wrap around this node when it's displayed. If `textWrap` is `false`, the node takes up the width of its container.\n             */\n            textWrap?: boolean;\n            /**\n             * The width of the node when it's displayed.\n             */\n            width?: wix_blog_backend.Posts.PluginContainerDataWidth;\n        };\n        type PluginContainerDataWidth = {\n            /**\n             * A custom width value in pixels.\n             */\n            custom?: string;\n            /**\n             * One of the following predefined width options:\n             * `CONTENT`: The width of the container matches the content width.\n             * `SMALL`: Small width.\n             * `ORIGINAL`: The width of the container matches the original asset width.\n             * `FULL_WIDTH`: Full width.\n             */\n            size?: string;\n        };\n        type PluginContainerDataWidthDataOneOf = {\n            /**\n             * A custom width value in pixels.\n             */\n            custom?: string;\n            /**\n             * One of the following predefined width options:\n             * `CONTENT`: The width of the container matches the content width.\n             * `SMALL`: Small width.\n             * `ORIGINAL`: The width of the container matches the original asset width.\n             * `FULL_WIDTH`: Full width.\n             */\n            size?: string;\n        };\n        type Poll = {\n            /**\n             * Poll ID.\n             */\n            _id?: string;\n            /**\n             * Poll creator ID.\n             */\n            creatorId?: string;\n            /**\n             * Main poll image.\n             */\n            image?: wix_blog_backend.Posts.Media;\n            /**\n             * Voting options.\n             */\n            options?: Array<wix_blog_backend.Posts.Option>;\n            /**\n             * The poll's permissions and display settings.\n             */\n            settings?: wix_blog_backend.Posts.PollSettings;\n            /**\n             * Poll title.\n             */\n            title?: string;\n        };\n        type PollData = {\n            /**\n             * Styling for the poll's container.\n             */\n            containerData?: wix_blog_backend.Posts.PluginContainerData;\n            /**\n             * Styling for the poll and voting options.\n             */\n            design?: wix_blog_backend.Posts.Design;\n            /**\n             * Layout settings for the poll and voting options.\n             */\n            layout?: wix_blog_backend.Posts.PollDataLayout;\n            /**\n             * Poll data.\n             */\n            poll?: wix_blog_backend.Posts.Poll;\n        };\n        type PollDataLayout = {\n            /**\n             * Voting otpions layout settings.\n             */\n            options?: wix_blog_backend.Posts.OptionLayout;\n            /**\n             * Poll layout settings.\n             */\n            poll?: wix_blog_backend.Posts.PollLayout;\n        };\n        type PollDesign = {\n            /**\n             * Background styling.\n             */\n            background?: wix_blog_backend.Posts.Background;\n            /**\n             * Border radius in pixels.\n             */\n            borderRadius?: number;\n        };\n        type PollLayout = {\n            /**\n             * The direction of the text displayed in the voting options. Text can be displayed either right-to-left or left-to-right.\n             */\n            direction?: string;\n            /**\n             * Sets whether to display the main poll image.\n             */\n            enableImage?: boolean;\n            /**\n             * The layout for displaying the voting options.\n             */\n            type?: string;\n        };\n        type PollSettings = {\n            /**\n             * Permissions settings for voting.\n             */\n            permissions?: wix_blog_backend.Posts.Permissions;\n            /**\n             * Sets whether voters are displayed in the vote results.\n             */\n            showVoters?: boolean;\n            /**\n             * Sets whether the vote count is displayed.\n             */\n            showVotesCount?: boolean;\n        };\n        type Post = {\n            /**\n             * Post ID.\n             */\n            _id?: string;\n            /**\n             * [Category IDs](https://www.wix.com/velo/reference/wix-blog-backend/category) of the post.\n             */\n            categoryIds?: Array<string>;\n            /**\n             * Whether commenting on the post is enabled.\n             */\n            commentingEnabled?: boolean;\n            /**\n             * Post owner's [contact ID](https://www.wix.com/velo/reference/wix-crm-backend/contacts).\n             */\n            contactId?: string;\n            /**\n             * Reserved for internal use.\n             */\n            content?: string;\n            /**\n             * Reserved for internal use.\n             */\n            contentId?: string;\n            /**\n             * The post's content in plain text.\n             */\n            contentText?: string;\n            /**\n             * Reserved for internal use.\n             */\n            coverMedia?: wix_blog_backend.Posts.CoverMedia;\n            /**\n             * Post excerpt.\n             * Can be selected by a site contributor. By default, it is extracted from the content text's first characters.\n             *\n             * Max: 140 characters\n             */\n            excerpt?: string;\n            /**\n             * Whether the post is marked as featured.\n             */\n            featured?: boolean;\n            /**\n             * Date the post was first published.\n             */\n            firstPublishedDate?: Date;\n            /**\n             * Hashtags in the post.\n             */\n            hashtags?: Array<string>;\n            /**\n             * Image placed at the top of the blog page. Only displays on mobile devices.\n             */\n            heroImage?: string;\n            /**\n             * Reserved for internal use.\n             */\n            internalCategoryIds?: Array<string>;\n            /**\n             * Reserved for internal use.\n             */\n            internalId?: string;\n            /**\n             * Reserved for internal use.\n             */\n            internalRelatedPostIds?: Array<string>;\n            /**\n             * Language the post is written in.\n             *\n             * 2-letter language code in [ISO 639-1 alpha-2](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) format.\n             */\n            language?: string;\n            /**\n             * Date the post was last published.\n             */\n            lastPublishedDate?: Date;\n            /**\n             * Post cover media.\n             */\n            media?: wix_blog_backend.Posts.BlogMedia;\n            /**\n             * Post owner's [member ID](https://www.wix.com/velo/reference/wix-members-backend).\n             */\n            memberId?: string;\n            /**\n             * Estimated reading time.\n             */\n            minutesToRead?: number;\n            /**\n             * Post moderation details.\n             *\n             * Only relevant to posts submitted by [guest writers](https://support.wix.com/en/article/wix-blog-moderating-blog-posts-from-your-guest-writers). Guest writers have the ability to write posts but not publish them. These posts can be rejected or approved for publishing by a blog editor or site owner.\n             */\n            moderationDetails?: wix_blog_backend.Posts.ModerationDetails;\n            /**\n             * Reserved for internal use.\n             */\n            mostRecentContributorId?: string;\n            /**\n             * Whether the post is pinned. If `true`, the post is placed at the top of the post list.\n             */\n            pinned?: boolean;\n            /**\n             * Pricing plan IDs.\n             *\n             * If a post is assigned to a specific pricing plan.\n             */\n            pricingPlanIds?: Array<string>;\n            /**\n             * IDs of posts related to the post.\n             */\n            relatedPostIds?: Array<string>;\n            /**\n             * Post rich content\n             */\n            richContent?: wix_blog_backend.Posts.RichContent;\n            /**\n             * SEO data.\n             */\n            seoData?: wix_blog_backend.Posts.SeoSchema;\n            /**\n             * Part of a post's URL that refers to a specific post.\n             *\n             * For example, `'https:/example.com/posts/my-post-slug'`.\n             */\n            slug?: string;\n            /**\n             * IDs of [tags](https://www.wix.com/velo/reference/wix-blog-backend/tags) the post is tagged with.\n             */\n            tagIds?: Array<string>;\n            /**\n             * Post title.\n             */\n            title?: string;\n            /**\n             * ID of the post's translations when [Wix Multilingual](https://support.wix.com/en/article/wix-multilingual-translating-your-blog) is installed on a site. All translations of a single post will share the same `translationId`.\n             */\n            translationId?: string;\n            /**\n             * Post URL.\n             */\n            url?: string;\n        };\n        type PostCountInfo = {\n            /**\n             * Total number of post comments\n             */\n            comments?: number;\n            /**\n             * Total number of post likes\n             */\n            likes?: number;\n            /**\n             * Total number of post views\n             */\n            views?: number;\n        };\n        type PostCountersUpdated = {\n            /**\n             * Visitor ID if person that liked the post is not logged in\n             */\n            anonymousVisitorId?: string;\n            /**\n             * New counter value.\n             */\n            counter?: number;\n            /**\n             * Member ID of person who triggered the counter update\n             */\n            memberId?: string;\n            /**\n             * ID of the post which counters were updated.\n             */\n            postId?: string;\n            /**\n             * Field of the updated counter.\n             */\n            updatedCounterField?: string;\n        };\n        type PostCountersUpdatedInitiatorOneOf = {\n            /**\n             * Visitor ID if person that liked the post is not logged in\n             */\n            anonymousVisitorId?: string;\n            /**\n             * Member ID of person who triggered the counter update\n             */\n            memberId?: string;\n        };\n        type PostLiked = {\n            /**\n             * Visitor ID of person who liked the post when they are not logged in.\n             */\n            anonymousVisitorId?: string;\n            /**\n             * Member ID of person who liked the post (only returned when the member was logged in when liking the post).\n             */\n            memberId?: string;\n            /**\n             * ID of the liked post.\n             */\n            postId?: string;\n        };\n        type PostLikedInitiatorOneOf = {\n            /**\n             * Visitor ID of person who liked the post when they are not logged in.\n             */\n            anonymousVisitorId?: string;\n            /**\n             * Member ID of person who liked the post (only returned when the member was logged in when liking the post).\n             */\n            memberId?: string;\n        };\n        type PostMigrationMetaData = {\n            /**\n             * Post author in old blog\n             */\n            author?: string;\n            /**\n             * Old blog instance id\n             */\n            instanceId?: string;\n            /**\n             * Post id in old blog\n             */\n            postId?: string;\n            /**\n             * Post slug in old blog\n             */\n            slug?: string;\n        };\n        type PostOwnerChanged = {};\n        type PostUnliked = {\n            /**\n             * Visitor ID of person who unliked the post when they are not logged in.\n             */\n            anonymousVisitorId?: string;\n            /**\n             * Member ID of person who unliked the post (returned when the member was logged in when unliking the post).\n             */\n            memberId?: string;\n            /**\n             * ID of the unliked post.\n             */\n            postId?: string;\n        };\n        type PostUnlikedInitiatorOneOf = {\n            /**\n             * Visitor ID of person who unliked the post when they are not logged in.\n             */\n            anonymousVisitorId?: string;\n            /**\n             * Member ID of person who unliked the post (returned when the member was logged in when unliking the post).\n             */\n            memberId?: string;\n        };\n        type QueryPostCountStatsOptions = {\n            /**\n             * Language filter.\n             *\n             * 2-letter language code in [ISO 639-1 alpha-2](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) format.\n             */\n            language?: string;\n            /**\n             * Number of months to include in response.\n             */\n            months?: number;\n            /**\n             * Sort order.\n             * Use `'ASC'` for ascending order or `'DESC'` for descending order.\n             *\n             * Default: `ASC`\n             */\n            order?: string;\n            /**\n             * Reserved for internal use.\n             */\n            rangeEnd?: Date;\n            /**\n             * Start of time range to return, in ISO 8601 date and time format.\n             */\n            rangeStart?: Date;\n            /**\n             * Time zone to use when calculating the start of the month.\n             *\n             * [UTC timezone offset](https://en.wikipedia.org/wiki/List_of_UTC_offsets) format. For example, New York time zone is `-05`.\n             */\n            timeZone?: string;\n        };\n        type QueryPostCountStatsRequest = {\n            /**\n             * Language filter.\n             *\n             * 2-letter language code in [ISO 639-1 alpha-2](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) format.\n             */\n            language?: string;\n            /**\n             * Number of months to include in response.\n             */\n            months?: number;\n            /**\n             * Order of returned results.\n             *\n             * - `OLDEST`: posts by date in ascending order.\n             * - `NEWEST`: posts by date in descending order.\n             *\n             * Default: `OLDEST`\n             */\n            order?: string;\n            /**\n             * __Deprecated.__ Use `months` instead.\n             * This property will be removed on June 30, 2023.\n             *\n             * Non-inclusive end of time range to return, in ISO 8601 date and time format.\n             */\n            rangeEnd?: Date;\n            /**\n             * Start of time range to return, in ISO 8601 date and time format.\n             */\n            rangeStart?: Date;\n            /**\n             * Time zone to use when calculating the start of the month.\n             *\n             * [UTC timezone offset](https://en.wikipedia.org/wiki/List_of_UTC_offsets) format. For example, New York time zone is `-05`.\n             */\n            timeZone?: string;\n        };\n        type QueryPostCountStatsResponse = {\n            /**\n             * List of posts in specified order.\n             */\n            stats?: Array<wix_blog_backend.Posts.PeriodPostCount>;\n        };\n        type QueryPostsOptions = {};\n        type QueryPostsRequest = {\n            /**\n             * Reserved for internal use.\n             */\n            fieldsToInclude?: Array<string>;\n            /**\n             * List of post fields to be included in the response. By default, any fields not passed are not returned.\n             *\n             * Supported Values:\n             * `\"CONTACT_ID\"`, `\"CONTENT_TEXT\"`, `\"METRICS\"`, `\"SEO\"`, and `\"URL\"`.\n             */\n            fieldsets?: Array<string>;\n            /**\n             * __Deprecated.__ Use `query` instead.\n             * This parameter will be removed on June 30, 2023.\n             *\n             * Filter object.\n             */\n            filter?: Object;\n            /**\n             * __Deprecated.__ Use `query` instead.\n             * This parameter will be removed on June 30, 2023.\n             *\n             * Pagination options.\n             */\n            paging?: wix_blog_backend.Posts.BlogPaging;\n            /**\n             * Query options.\n             */\n            query?: wix_blog_backend.Posts.PlatformQuery;\n            /**\n             * __Deprecated.__ Use `query` instead.\n             * This parameter will be removed on June 30, 2023.\n             *\n             * Sorting options. For a list of sortable fields, see [Field Support for Filtering and Sorting](https://dev.wix.com/api/rest/wix-blog/blog/filter-and-sort).\n             */\n            sort?: Array<wix_blog_backend.Posts.Sorting>;\n        };\n        type QueryPostsResponse = {\n            /**\n             * __Deprecated.__ Use `pagingMetadata` instead.\n             * This property will be removed on June 30, 2023.\n             *\n             * Details on the paged set of results returned.\n             */\n            metaData?: wix_blog_backend.Posts.MetaData;\n            /**\n             * Details on the paged set of results returned.\n             */\n            pagingMetadata?: wix_blog_backend.Posts.PagingMetadataV2;\n            /**\n             * List of posts.\n             */\n            posts?: Array<wix_blog_backend.Posts.Post>;\n        };\n        type QueryPublicationsCountStatsOptions = {\n            /**\n             * Language filter\n             *\n             * 2-letter language code in [ISO 639-1 alpha-2](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) format.\n             */\n            language?: string;\n            /**\n             * Number of months to include in the response.\n             */\n            months?: number;\n            /**\n             * Order of the returned results.\n             */\n            order?: string;\n            /**\n             * Non-inclusive end of time range to return, in ISO 8601 date and time format.\n             */\n            rangeEnd?: Date;\n            /**\n             * Start of time range to return, in ISO 8601 date and time format.\n             */\n            rangeStart?: Date;\n            /**\n             * Timezone of the client.\n             */\n            timeZone?: string;\n        };\n        type QueryPublicationsCountStatsRequest = {\n            /**\n             * Language filter\n             *\n             * 2-letter language code in [ISO 639-1 alpha-2](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) format.\n             */\n            language?: string;\n            /**\n             * Number of months to include in the response.\n             */\n            months?: number;\n            /**\n             * Order of the returned results.\n             */\n            order?: string;\n            /**\n             * Non-inclusive end of time range to return, in ISO 8601 date and time format.\n             */\n            rangeEnd?: Date;\n            /**\n             * Start of time range to return, in ISO 8601 date and time format.\n             */\n            rangeStart?: Date;\n            /**\n             * Timezone of the client.\n             */\n            timeZone?: string;\n        };\n        type QueryPublicationsCountStatsResponse = {\n            /**\n             * Chronologically ordered list of publications.\n             */\n            stats?: Array<wix_blog_backend.Posts.PeriodPublicationsCount>;\n        };\n        type Reactions = {\n            /**\n             * Is post liked by the current user\n             */\n            liked?: boolean;\n        };\n        type Rel = {\n            /**\n             * Indicates to search engine crawlers not to follow the link.\n             */\n            nofollow?: boolean;\n            /**\n             * Indicates that this link protect referral information from being passed to the target website.\n             */\n            noreferrer?: boolean;\n            /**\n             * Indicates to search engine crawlers that the link is a paid placement such as sponsored content or an advertisement.\n             */\n            sponsored?: boolean;\n            /**\n             * Indicates that this link is user-generated content and isn't necessarily trusted or endorsed by the page’s author. For example, a link in a fourm post.\n             */\n            ugc?: boolean;\n        };\n        type RichContent = {\n            /**\n             * Global styling for header, paragraph, block quote, and code block nodes in the object.\n             */\n            documentStyle?: wix_blog_backend.Posts.DocumentStyle;\n            /**\n             * Object metadata.\n             */\n            metadata?: wix_blog_backend.Posts.Metadata;\n            /**\n             * Node objects representing a rich content document.\n             */\n            nodes?: Array<wix_blog_backend.Posts.Node>;\n        };\n        type SendActionEventOptions = {\n            entityId?: string;\n            postCountersUpdated?: wix_blog_backend.Posts.PostCountersUpdated;\n            postLikedAction?: wix_blog_backend.Posts.PostLiked;\n        };\n        type SendActionEventRequest = {\n            entityId?: string;\n            postCountersUpdated?: wix_blog_backend.Posts.PostCountersUpdated;\n            postLikedAction?: wix_blog_backend.Posts.PostLiked;\n        };\n        type SendActionEventRequestActionOneOf = {\n            postCountersUpdated?: wix_blog_backend.Posts.PostCountersUpdated;\n            postLikedAction?: wix_blog_backend.Posts.PostLiked;\n        };\n        type SendActionEventResponse = {};\n        type SeoSchema = {\n            /**\n             * SEO general settings.\n             */\n            settings?: wix_blog_backend.Posts.Settings;\n            /**\n             * SEO tags information.\n             */\n            tags?: Array<wix_blog_backend.Posts.Tag>;\n        };\n        type Settings = {\n            /**\n             * Whether the auto redirects feature creating `301 redirects` on a slug change is enabled.\n             *\n             * Default: enabled\n             */\n            preventAutoRedirect?: boolean;\n        };\n        type Sorting = {\n            /**\n             * Name of the field to sort by.\n             */\n            fieldName?: string;\n            /**\n             * Sort order.\n             */\n            order?: string;\n        };\n        type Spoiler = {\n            /**\n             * The text for the button used to remove the spoiler cover.\n             */\n            buttonText?: string;\n            /**\n             * The description displayed on top of the spoiler cover.\n             */\n            description?: string;\n            /**\n             * Sets whether the spoiler cover is enabled for this node.\n             */\n            enabled?: boolean;\n        };\n        type Styles = {\n            /**\n             * Border attributes.\n             */\n            border?: wix_blog_backend.Posts.Border;\n            /**\n             * Color attributes.\n             */\n            colors?: wix_blog_backend.Posts.Colors;\n        };\n        type TableCellData = {\n            /**\n             * The cell's border colors.\n             */\n            borderColors?: wix_blog_backend.Posts.BorderColors;\n            /**\n             * Styling for the cell's background color and text alignment.\n             */\n            cellStyle?: wix_blog_backend.Posts.CellStyle;\n        };\n        type TableData = {\n            /**\n             * Sets whether the table's first column is a header.\n             */\n            columnHeader?: boolean;\n            /**\n             * Styling for the table's container.\n             */\n            containerData?: wix_blog_backend.Posts.PluginContainerData;\n            /**\n             * The table's dimensions.\n             */\n            dimensions?: wix_blog_backend.Posts.Dimensions;\n            /**\n             * Deprecated: Use `rowHeader` and `columnHeader` instead.\n             */\n            header?: boolean;\n            /**\n             * Sets whether the table's first row is a header.\n             */\n            rowHeader?: boolean;\n        };\n        type Tag = {\n            /**\n             * SEO tag inner content. For example, ` inner content `.\n             */\n            children?: string;\n            /**\n             * Whether the tag is a custom tag.\n             */\n            custom?: boolean;\n            /**\n             * Whether the tag is disabled.\n             */\n            disabled?: boolean;\n            /**\n             * SEO tag meta data. For example, `{height: 300, width: 240}`.\n             */\n            meta?: Object;\n            /**\n             * A `{'key':'value'} pair object where each SEO tag property (`'name'`, `'content'`, `'rel'`, `'href'`) contains a value.\n             * For example: `{'name': 'description', 'content': 'the description itself'}`.\n             */\n            props?: Object;\n            /**\n             * SEO tag type.\n             *\n             * Supported values: `title`, `meta`, `script`, `link`.\n             */\n            type?: string;\n        };\n        type TextData = {\n            /**\n             * The decorations to apply.\n             */\n            decorations?: Array<wix_blog_backend.Posts.Decoration>;\n            /**\n             * The text to apply decorations to.\n             */\n            text?: string;\n        };\n        type TextNodeStyle = {\n            /**\n             * The decorations to apply to the node.\n             */\n            decorations?: Array<wix_blog_backend.Posts.Decoration>;\n            /**\n             * Line height for text in the node.\n             */\n            lineHeight?: string;\n            /**\n             * Padding and background color for the node.\n             */\n            nodeStyle?: wix_blog_backend.Posts.NodeStyle;\n        };\n        type TextStyle = {\n            /**\n             * A CSS `line-height` value for the text as a unitless ratio.\n             */\n            lineHeight?: string;\n            /**\n             * Text alignment. Defaults to `AUTO`.\n             */\n            textAlignment?: string;\n        };\n        type Thumbnails = {\n            /**\n             * Thumbnail alignment.\n             */\n            placement?: string;\n            /**\n             * Spacing between thumbnails in pixels.\n             */\n            spacing?: number;\n        };\n        type Video = {\n            /**\n             * Video file details.\n             */\n            media?: wix_blog_backend.Posts.Media;\n            /**\n             * Video thumbnail file details.\n             */\n            thumbnail?: wix_blog_backend.Posts.Media;\n        };\n        type VideoData = {\n            /**\n             * Styling for the video's container.\n             */\n            containerData?: wix_blog_backend.Posts.PluginContainerData;\n            /**\n             * Sets whether the video's download button is disabled.\n             */\n            disableDownload?: boolean;\n            /**\n             * Video options.\n             */\n            options?: wix_blog_backend.Posts.PlaybackOptions;\n            /**\n             * Video thumbnail details.\n             */\n            thumbnail?: wix_blog_backend.Posts.Media;\n            /**\n             * Video title.\n             */\n            title?: string;\n            /**\n             * Video details.\n             */\n            video?: wix_blog_backend.Posts.Media;\n        };\n        type VideoResolution = {\n            /**\n             * Video format for example, mp4, hls.\n             */\n            format?: string;\n            /**\n             * Video height.\n             */\n            height?: number;\n            /**\n             * Video URL.\n             */\n            url?: string;\n            /**\n             * Video width.\n             */\n            width?: number;\n        };\n        type WixMedia = {\n            /**\n             * Thumbnail or image details.\n             */\n            image?: string;\n            /**\n             * Video details. Optional\n             */\n            videoV2?: string;\n        };\n    }\n    /**\n     * [Read more](https://www.wix.com/corvid/reference/wix-blog-backend.Tags.html#)\n     */\n    interface Tags {\n        /**\n         * Gets a tag by the specified ID.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-blog-backend.Tags.html#getTag)\n         */\n        getTag(tagId: string, options: wix_blog_backend.Tags.GetTagOptions): Promise<wix_blog_backend.Tags.GetTagResponse>;\n        /**\n         * Gets a tag by the specified label.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-blog-backend.Tags.html#getTagByLabel)\n         */\n        getTagByLabel(label: string, options: wix_blog_backend.Tags.GetTagByLabelOptions): Promise<wix_blog_backend.Tags.GetTagByLabelResponse>;\n        /**\n         * Gets a tag by the specified slug.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-blog-backend.Tags.html#getTagBySlug)\n         */\n        getTagBySlug(slug: string, options: wix_blog_backend.Tags.GetTagBySlugOptions): Promise<wix_blog_backend.Tags.GetTagBySlugResponse>;\n        /**\n         * Creates a query to retrieve a list of tags.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-blog-backend.Tags.html#queryTags)\n         */\n        queryTags(): wix_blog_backend.Tags.TagsQueryBuilder;\n    }\n    namespace Tags {\n        type ApplicationError = {\n            code?: string;\n            data?: Object;\n            description?: string;\n        };\n        type BulkActionMetadata = {\n            /**\n             * Number of items that couldn't be processed.\n             */\n            totalFailures?: number;\n            /**\n             * Number of items that were successfully processed.\n             */\n            totalSuccesses?: number;\n            /**\n             * Number of failures without details because detailed failure threshold was exceeded.\n             */\n            undetailedFailures?: number;\n        };\n        type BulkCreateTagsOptions = {\n            /**\n             * List of tag fields to be included if entities are present in the response.\n             * Base fieldset, which is default, will return all core tag properties.\n             * Example: When URL fieldset is selected, returned tag will have a set of base properties and tag url.\n             */\n            fieldsets?: Array<string>;\n            /**\n             * Whether to return the full created tag entities in the response.\n             */\n            returnFullEntity?: boolean;\n        };\n        type BulkCreateTagsRequest = {\n            /**\n             * List of tag fields to be included if entities are present in the response.\n             * Base fieldset, which is default, will return all core tag properties.\n             * Example: When URL fieldset is selected, returned tag will have a set of base properties and tag url.\n             */\n            fieldsets?: Array<string>;\n            /**\n             * Whether to return the full created tag entities in the response.\n             */\n            returnFullEntity?: boolean;\n            /**\n             * Tags to create.\n             */\n            tags: Array<wix_blog_backend.Tags.Tag>;\n        };\n        type BulkCreateTagsResponse = {\n            /**\n             * Bulk action metadata.\n             */\n            bulkActionMetadata?: wix_blog_backend.Tags.BulkActionMetadata;\n            /**\n             * Tags created by bulk action.\n             */\n            results?: Array<wix_blog_backend.Tags.BulkTagResult>;\n        };\n        type BulkTagResult = {\n            /**\n             * Optional created tag.\n             */\n            item?: wix_blog_backend.Tags.Tag;\n            /**\n             * Bulk actions metadata for tag.\n             */\n            itemMetadata?: wix_blog_backend.Tags.ItemMetadata;\n        };\n        type CreateTagOptions = {\n            /**\n             * List of additional tag fields to include in the response. For example, use the `URL` fieldset to retrieve the url field in\n             * the response in addition to the tag's base fields. Base fields don’t include any of the supported fieldset values. By default\n             * only the tag's base fields are returned.\n             */\n            fieldsets?: Array<string>;\n            /**\n             * Tag language.\n             *\n             * 2-letter language code in [ISO 639-1 alpha-2](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) format.\n             */\n            language?: string;\n            /**\n             * Preferred tag slug. For example, `'tag-slug'`.\n             */\n            slug?: string;\n        };\n        type CreateTagRequest = {\n            /**\n             * List of additional tag fields to include in the response. For example, use the `URL` fieldset to retrieve the url field in\n             * the response in addition to the tag's base fields. Base fields don’t include any of the supported fieldset values. By default\n             * only the tag's base fields are returned.\n             */\n            fieldsets?: Array<string>;\n            /**\n             * Tag label. The label for each tag in a blog must be unique.\n             */\n            label: string;\n            /**\n             * Tag language.\n             *\n             * 2-letter language code in [ISO 639-1 alpha-2](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) format.\n             */\n            language?: string;\n            /**\n             * Preferred tag slug. For example, `'tag-slug'`.\n             */\n            slug?: string;\n        };\n        type CreateTagResponse = {\n            /**\n             * Tag info.\n             */\n            tag?: wix_blog_backend.Tags.Tag;\n        };\n        type CursorPaging = {\n            /**\n             * Pointer to the next or previous page in the list of results.\n             *\n             * You can get the relevant cursor token\n             * from the `pagingMetadata` object in the previous call's response.\n             * Not relevant for the first request.\n             */\n            cursor?: string;\n            /**\n             * Number of items to load.\n             */\n            limit?: number;\n        };\n        type Cursors = {\n            /**\n             * Cursor pointing to next page in the list of results.\n             */\n            next?: string;\n            /**\n             * Cursor pointing to previous page in the list of results.\n             */\n            prev?: string;\n        };\n        type DeleteTagRequest = {\n            /**\n             * Tag ID.\n             */\n            tagId: string;\n        };\n        type DeleteTagResponse = {};\n        type GetOrCreateTagOptions = {\n            /**\n             * List of tag fields to be included if entities are present in the response.\n             * Base fieldset, which is default, will return all core tag properties.\n             * Example: When URL fieldset is selected, returned tag will have a set of base properties and tag url.\n             */\n            fieldsets?: Array<string>;\n            /**\n             * Tag language.\n             */\n            language?: string;\n        };\n        type GetOrCreateTagRequest = {\n            /**\n             * List of tag fields to be included if entities are present in the response.\n             * Base fieldset, which is default, will return all core tag properties.\n             * Example: When URL fieldset is selected, returned tag will have a set of base properties and tag url.\n             */\n            fieldsets?: Array<string>;\n            /**\n             * Tag name. Unique per blog.\n             */\n            label: string;\n            /**\n             * Tag language.\n             */\n            language?: string;\n        };\n        type GetOrCreateTagResponse = {\n            /**\n             * Tag info.\n             */\n            tag?: wix_blog_backend.Tags.Tag;\n        };\n        type GetTagByLabelOptions = {\n            /**\n             * List of additional tag fields to be included in the response. By default, any fields not passed are not returned.\n             *\n             * Supported Values:\n             *  `\"URL\"`\n             */\n            fieldsets?: Array<string>;\n            /**\n             * Tag language.\n             *\n             * 2-letter language code in [ISO 639-1 alpha-2](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) format.\n             * If omitted, tags in all languages are returned.\n             */\n            language?: string;\n        };\n        type GetTagByLabelRequest = {\n            /**\n             * __Deprecated.__ Use `fieldsets` instead.\n             * This parameter will be removed on June 30, 2023.\n             *\n             * List of tag fields to be included in the response.\n             */\n            fieldsToInclude?: Array<string>;\n            /**\n             * List of additional tag fields to include in the response. For example, use the `URL` fieldset to retrieve the url field in\n             * the response in addition to the tag's base fields. Base fields don’t include any of the supported fieldset values. By default\n             * only the tag's base fields are returned.\n             */\n            fieldsets?: Array<string>;\n            /**\n             * Tag label.\n             */\n            label: string;\n            /**\n             * Tag language.\n             *\n             * 2-letter language code in [ISO 639-1 alpha-2](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) format.\n             * If omitted, tags in all languages are returned.\n             */\n            language?: string;\n        };\n        type GetTagByLabelResponse = {\n            /**\n             * Tag info.\n             */\n            tag?: wix_blog_backend.Tags.Tag;\n        };\n        type GetTagBySlugOptions = {\n            /**\n             * List of additional tag fields to be included in the response. By default, any fields not passed are not returned.\n             *\n             * Supported Values:\n             *  `\"URL\"`\n             */\n            fieldsets?: Array<string>;\n        };\n        type GetTagBySlugRequest = {\n            /**\n             * __Deprecated.__ Use `fieldsets` instead.\n             * This parameter will be removed on June 30, 2023.\n             *\n             * List of tag fields to be included in the response.\n             */\n            fieldsToInclude?: Array<string>;\n            /**\n             * List of additional tag fields to include in the response. For example, use the `URL` fieldset to retrieve the url field in\n             * the response in addition to the tag's base fields. Base fields don’t include any of the supported fieldset values. By default\n             * only the tag's base fields are returned.\n             */\n            fieldsets?: Array<string>;\n            /**\n             * Slug of the tag to retrieve.\n             */\n            slug: string;\n        };\n        type GetTagBySlugResponse = {\n            /**\n             * Tag info.\n             */\n            tag?: wix_blog_backend.Tags.Tag;\n        };\n        type GetTagOptions = {\n            /**\n             * List of additional tag fields to be included in the response. By default, any fields not passed are not returned.\n             *\n             * Supported Values:\n             *  `\"URL\"`\n             */\n            fieldsets?: Array<string>;\n        };\n        type GetTagRequest = {\n            /**\n             * __Deprecated.__ Use `fieldsets` instead.\n             * This parameter will be removed on June 30, 2023.\n             *\n             * List of tag fields to be included in the response.\n             */\n            fieldsToInclude?: Array<string>;\n            /**\n             * List of additional tag fields to include in the response. For example, use the `URL` fieldset to retrieve the url field in\n             * the response in addition to the tag's base fields. Base fields don’t include any of the supported fieldset values. By default\n             * only the tag's base fields are returned.\n             */\n            fieldsets?: Array<string>;\n            /**\n             * Tag ID.\n             */\n            tagId: string;\n        };\n        type GetTagResponse = {\n            /**\n             * Tag info.\n             */\n            tag?: wix_blog_backend.Tags.Tag;\n        };\n        type InitialTagsCopied = {\n            /**\n             * Number of tags copied.\n             */\n            count?: number;\n        };\n        type ItemMetadata = {\n            /**\n             * Item ID. Should always be available, unless it's impossible (for example, when failing to create an item).\n             */\n            _id?: string;\n            /**\n             * Details about the error in case of failure.\n             */\n            error?: wix_blog_backend.Tags.ApplicationError;\n            /**\n             * Index of the item within the request array. Allows for correlation between request and response items.\n             */\n            originalIndex?: number;\n            /**\n             * Whether the requested action was successful for this item. When `false`, the `error` field is populated.\n             */\n            success?: boolean;\n        };\n        type ListTagsOptions = {\n            /**\n             * Cursor token pointing to a page of results. Not used in the first request. Following requests use the cursor token and not `sort`.\n             */\n            cursorPaging?: wix_blog_backend.Tags.CursorPaging;\n            /**\n             * List of tag fields to be included if entities are present in the response.\n             * Base fieldset, which is default, will return all core tag properties.\n             * Example: When URL fieldset is selected, returned tag will have a set of base properties and tag url.\n             */\n            fieldsets?: Array<string>;\n            /**\n             * Paging options to limit and skip the number of items.\n             */\n            paging?: wix_blog_backend.Tags.Paging;\n            /**\n             * Sorting options. For a list of sortable fields, see [Field Support for Filtering and Sorting](https://dev.wix.com/api/rest/community/blog/filter-and-sort).\n             */\n            sort?: Array<wix_blog_backend.Tags.Sorting>;\n        };\n        type ListTagsRequest = {\n            /**\n             * Cursor token pointing to a page of results. Not used in the first request. Following requests use the cursor token and not `sort`.\n             */\n            cursorPaging?: wix_blog_backend.Tags.CursorPaging;\n            /**\n             * List of tag fields to be included if entities are present in the response.\n             * Base fieldset, which is default, will return all core tag properties.\n             * Example: When URL fieldset is selected, returned tag will have a set of base properties and tag url.\n             */\n            fieldsets?: Array<string>;\n            /**\n             * Paging options to limit and skip the number of items.\n             */\n            paging?: wix_blog_backend.Tags.Paging;\n            /**\n             * Sorting options. For a list of sortable fields, see [Field Support for Filtering and Sorting](https://dev.wix.com/api/rest/community/blog/filter-and-sort).\n             */\n            sort?: Array<wix_blog_backend.Tags.Sorting>;\n        };\n        type ListTagsRequestPagingMethodOneOf = {\n            /**\n             * Cursor token pointing to a page of results. Not used in the first request. Following requests use the cursor token and not `sort`.\n             */\n            cursorPaging?: wix_blog_backend.Tags.CursorPaging;\n            /**\n             * Paging options to limit and skip the number of items.\n             */\n            paging?: wix_blog_backend.Tags.Paging;\n        };\n        type ListTagsResponse = {\n            /**\n             * Details on the paged set of results returned.\n             */\n            metaData?: wix_blog_backend.Tags.MetaData;\n            /**\n             * List of tags.\n             */\n            tags?: Array<wix_blog_backend.Tags.Tag>;\n        };\n        type MetaData = {\n            /**\n             * Number of items returned in this response.\n             */\n            count?: number;\n            /**\n             * Pointer to the next or previous page in the list of results.\n             */\n            cursor?: string;\n            /**\n             * Requested offset.\n             */\n            offset?: number;\n            /**\n             * Total number of items that match the query.\n             */\n            total?: number;\n        };\n        type Paging = {\n            /**\n             * Number of items to load.\n             */\n            limit?: number;\n            /**\n             * Number of items to skip in the current sort order.\n             */\n            offset?: number;\n        };\n        type PagingMetadataV2 = {\n            /**\n             * Number of items returned in the response.\n             */\n            count?: number;\n            /**\n             * Cursors to navigate through the result pages using `next` and `prev`. Returned if cursor paging is used.\n             */\n            cursors?: wix_blog_backend.Tags.Cursors;\n            /**\n             * Offset that was requested.\n             */\n            offset?: number;\n            /**\n             * Flag that indicates the server failed to calculate the `total` field.\n             */\n            tooManyToCount?: boolean;\n            /**\n             * Total number of items that match the query. Returned if offset paging is used and the `tooManyToCount` flag is not set.\n             */\n            total?: number;\n        };\n        type PlatformQuery = {\n            /**\n             * Cursor token pointing to a page of results. Not used in the first request. Following requests use the cursor token and not `filter` or `sort`.\n             */\n            cursorPaging?: wix_blog_backend.Tags.CursorPaging;\n            /**\n             * Filter object in the following format:\n             * `\"filter\" : {\n             * \"fieldName1\": \"value1\",\n             * \"fieldName2\":{\"$operator\":\"value2\"}\n             * }`\n             * Example of operators: `$eq`, `$ne`, `$lt`, `$lte`, `$gt`, `$gte`, `$in`, `$hasSome`, `$hasAll`, `$startsWith`, `$contains`\n             */\n            filter?: Object;\n            /**\n             * Paging options to limit and skip the number of items.\n             */\n            paging?: wix_blog_backend.Tags.Paging;\n            /**\n             * Sort object in the following format:\n             * `[{\"fieldName\":\"sortField1\",\"order\":\"ASC\"},{\"fieldName\":\"sortField2\",\"order\":\"DESC\"}]`\n             */\n            sort?: Array<wix_blog_backend.Tags.Sorting>;\n        };\n        type PlatformQueryPagingMethodOneOf = {\n            /**\n             * Cursor token pointing to a page of results. Not used in the first request. Following requests use the cursor token and not `filter` or `sort`.\n             */\n            cursorPaging?: wix_blog_backend.Tags.CursorPaging;\n            /**\n             * Paging options to limit and skip the number of items.\n             */\n            paging?: wix_blog_backend.Tags.Paging;\n        };\n        type QueryTagsOptions = {};\n        type QueryTagsRequest = {\n            /**\n             * __Deprecated.__ Use `fieldsets` instead.\n             * This parameter will be removed on June 30, 2023.\n             *\n             * List of tag fields to be included in the response.\n             */\n            fieldsToInclude?: Array<string>;\n            /**\n             * List of additional tag fields to include in the response. For example, use the `URL` fieldset to retrieve the url field in\n             * the response in addition to the tag's base fields. Base fields don’t include any of the supported fieldset values. By default\n             * only the tag's base fields are returned.\n             */\n            fieldsets?: Array<string>;\n            /**\n             * __Deprecated.__ Use `query` instead.\n             * This parameter will be removed on June 30, 2023.\n             *\n             * Filter object.\n             * For a detailed list of supported filters, see [Field Support for Filtering and Sorting](https://dev.wix.com/api/rest/community/blog/filter-and-sort).\n             */\n            filter?: Object;\n            /**\n             * __Deprecated.__ Use `query` instead.\n             * This parameter will be removed on June 30, 2023.\n             *\n             * Pagination options.\n             */\n            paging?: wix_blog_backend.Tags.Paging;\n            /**\n             * Query options.\n             */\n            query?: wix_blog_backend.Tags.PlatformQuery;\n            /**\n             * __Deprecated.__ Use `query` instead.\n             * This parameter will be removed on June 30, 2023.\n             *\n             * Sorting options. For a list of sortable fields, see [Field Support for Filtering and Sorting](https://dev.wix.com/api/rest/community/blog/filter-and-sort).\n             */\n            sort?: Array<wix_blog_backend.Tags.Sorting>;\n        };\n        type QueryTagsResponse = {\n            /**\n             * __Deprecated.__ Use `pagingMetadata` instead.\n             * This property will be removed on June 30, 2023.\n             *\n             * Details on the paged set of results returned.\n             */\n            metaData?: wix_blog_backend.Tags.MetaData;\n            /**\n             * Details on the paged set of results returned.\n             */\n            pagingMetadata?: wix_blog_backend.Tags.PagingMetadataV2;\n            /**\n             * List of tags.\n             */\n            tags?: Array<wix_blog_backend.Tags.Tag>;\n        };\n        type Sorting = {\n            /**\n             * Name of the field to sort by.\n             */\n            fieldName?: string;\n            /**\n             * Sort order.\n             */\n            order?: string;\n        };\n        type Tag = {\n            /**\n             * Date the tag was created.\n             */\n            _createdDate?: Date;\n            /**\n             * Tag ID.\n             */\n            _id?: string;\n            /**\n             * Date the tag was last updated.\n             */\n            _updatedDate?: Date;\n            /**\n             * Tag label.\n             *\n             * A blog can't have two tags with the same label.\n             */\n            label?: string;\n            /**\n             * Tag language.\n             *\n             * 2-letter language code in [ISO 639-1 alpha-2](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) format.\n             */\n            language?: string;\n            /**\n             * Number of posts with this tag, including unpublished draft posts.\n             */\n            postCount?: number;\n            /**\n             * Reserved for internal use.\n             */\n            publicationCount?: number;\n            /**\n             * Number of published posts with this tag.\n             */\n            publishedPostCount?: number;\n            /**\n             * Part of a tag's URL that refers to a specific tag.\n             *\n             * For example, `'https:/example.com/tags/{my-tag-slug}'`.\n             */\n            slug?: string;\n            /**\n             * ID of the tag's translations when [Wix Multilingual](https://support.wix.com/en/article/wix-multilingual-translating-your-blog) is installed on a site. All translations of a single tag will share the same `translationId`.\n             */\n            translationId?: string;\n            /**\n             * Tag URL.\n             *\n             * The `url` directs you to a page that lists every post with the specified tag.\n             */\n            url?: string;\n        };\n        type TagsFieldSet = {\n            /**\n             * Includes tag URL when TRUE. Defaults to FALSE.\n             */\n            includeUrl?: boolean;\n        };\n        type UpdateTag = {\n            /**\n             * Date the tag was created.\n             */\n            _createdDate?: Date;\n            /**\n             * Tag ID.\n             */\n            _id?: string;\n            /**\n             * Date the tag was last updated.\n             */\n            _updatedDate?: Date;\n            /**\n             * Tag label.\n             *\n             * A blog can't have two tags with the same label.\n             */\n            label?: string;\n            /**\n             * Tag language.\n             *\n             * 2-letter language code in [ISO 639-1 alpha-2](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) format.\n             */\n            language?: string;\n            /**\n             * Number of posts with this tag, including unpublished draft posts.\n             */\n            postCount?: number;\n            /**\n             * Reserved for internal use.\n             */\n            publicationCount?: number;\n            /**\n             * Number of published posts with this tag.\n             */\n            publishedPostCount?: number;\n            /**\n             * Part of a tag's URL that refers to a specific tag.\n             *\n             * For example, `'https:/example.com/tags/{my-tag-slug}'`.\n             */\n            slug?: string;\n            /**\n             * ID of the tag's translations when [Wix Multilingual](https://support.wix.com/en/article/wix-multilingual-translating-your-blog) is installed on a site. All translations of a single tag will share the same `translationId`.\n             */\n            translationId?: string;\n            /**\n             * Tag URL.\n             *\n             * The `url` directs you to a page that lists every post with the specified tag.\n             */\n            url?: string;\n        };\n        type UpdateTagOptions = {\n            /**\n             * Field mask of fields to update.\n             */\n            fieldMask?: Array<string>;\n            /**\n             * List of tag fields to be included if entities are present in the response.\n             * Base fieldset, which is default, will return all core tag properties.\n             * Example: When URL fieldset is selected, returned tag will have a set of base properties and tag url.\n             */\n            fieldsets?: Array<string>;\n            tag: wix_blog_backend.Tags.UpdateTag;\n        };\n        type UpdateTagRequest = {\n            /**\n             * Field mask of fields to update.\n             */\n            fieldMask?: Array<string>;\n            /**\n             * List of tag fields to be included if entities are present in the response.\n             * Base fieldset, which is default, will return all core tag properties.\n             * Example: When URL fieldset is selected, returned tag will have a set of base properties and tag url.\n             */\n            fieldsets?: Array<string>;\n            /**\n             * Tag info.\n             */\n            tag?: wix_blog_backend.Tags.Tag;\n        };\n        type UpdateTagResponse = {\n            /**\n             * Tag info.\n             */\n            tag?: wix_blog_backend.Tags.Tag;\n        };\n    }\n}\ndeclare namespace wix_blog_backend.Posts {\n    /**\n     * [Read more](https://www.wix.com/corvid/reference/wix-blog-backend.Posts.PostsQueryBuilder.html#)\n     */\n    interface PostsQueryBuilder {\n        /**\n         * Adds a sort to a query, sorting by the specified properties in ascending order.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-blog-backend.Posts.PostsQueryBuilder.html#ascending)\n         */\n        ascending(propertyNames: Array<string>): wix_blog_backend.Posts.PostsQueryBuilder;\n        /**\n         * Adds a sort to a query, sorting by the specified properties in descending order.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-blog-backend.Posts.PostsQueryBuilder.html#descending)\n         */\n        descending(propertyNames: Array<string>): wix_blog_backend.Posts.PostsQueryBuilder;\n        /**\n         * Refines a query to match items where the specified property equals the specified value.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-blog-backend.Posts.PostsQueryBuilder.html#eq)\n         */\n        eq(propertyName: string, value: any): wix_blog_backend.Posts.PostsQueryBuilder;\n        /**\n         * Returns the filtered query results.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-blog-backend.Posts.PostsQueryBuilder.html#find)\n         */\n        find(): Promise<wix_blog_backend.Posts.PostsQueryResult>;\n        /**\n         * Refines a query to match items where the specified property is greater than or equal to the specified value.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-blog-backend.Posts.PostsQueryBuilder.html#ge)\n         */\n        ge(propertyName: string, value: any): wix_blog_backend.Posts.PostsQueryBuilder;\n        /**\n         * Refines a query to match items where the specified property is greater than the specified value.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-blog-backend.Posts.PostsQueryBuilder.html#gt)\n         */\n        gt(propertyName: string, value: any): wix_blog_backend.Posts.PostsQueryBuilder;\n        /**\n         * Refines a query to match items whose specified property contains all of the specified values.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-blog-backend.Posts.PostsQueryBuilder.html#hasAll)\n         */\n        hasAll(propertyName: string, value: Array<any>): wix_blog_backend.Posts.PostsQueryBuilder;\n        /**\n         * Refines a query to match items whose specified property contains any of the specified values.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-blog-backend.Posts.PostsQueryBuilder.html#hasSome)\n         */\n        hasSome(propertyName: string, value: Array<any>): wix_blog_backend.Posts.PostsQueryBuilder;\n        /**\n         * Refines a query to match items where the specified property is less than or equal to the specified value.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-blog-backend.Posts.PostsQueryBuilder.html#le)\n         */\n        le(propertyName: string, value: any): wix_blog_backend.Posts.PostsQueryBuilder;\n        /**\n         * Limits the number of items the query returns.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-blog-backend.Posts.PostsQueryBuilder.html#limit)\n         */\n        limit(limit: number): wix_blog_backend.Posts.PostsQueryBuilder;\n        /**\n         * Refines a query to match items where the specified property is less than the specified value.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-blog-backend.Posts.PostsQueryBuilder.html#lt)\n         */\n        lt(propertyName: string, value: any): wix_blog_backend.Posts.PostsQueryBuilder;\n        /**\n         * Refines a query to match items where the specified property doesn't equal the specified value.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-blog-backend.Posts.PostsQueryBuilder.html#ne)\n         */\n        ne(propertyName: string, value: any): wix_blog_backend.Posts.PostsQueryBuilder;\n        /**\n         * Sets the number of items to skip before returning query results.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-blog-backend.Posts.PostsQueryBuilder.html#skip)\n         */\n        skip(skip: number): wix_blog_backend.Posts.PostsQueryBuilder;\n        /**\n         * Refines a query to match items where the specified property starts with the specified value.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-blog-backend.Posts.PostsQueryBuilder.html#startsWith)\n         */\n        startsWith(propertyName: string, value: string): wix_blog_backend.Posts.PostsQueryBuilder;\n    }\n    /**\n     * [Read more](https://www.wix.com/corvid/reference/wix-blog-backend.Posts.PostsQueryResult.html#)\n     */\n    interface PostsQueryResult {\n        /**\n         * Returns the index of the current page of results.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-blog-backend.Posts.PostsQueryResult.html#currentPage)\n         */\n        currentPage: number;\n        /**\n         * Returns an array of `posts` items that match the query.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-blog-backend.Posts.PostsQueryResult.html#items)\n         */\n        items: Array<wix_blog_backend.Posts.Post>;\n        /**\n         * Returns the number of items in the current page of results.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-blog-backend.Posts.PostsQueryResult.html#length)\n         */\n        length: number;\n        /**\n         * Returns the requested page size.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-blog-backend.Posts.PostsQueryResult.html#pageSize)\n         */\n        pageSize: number;\n        /**\n         * Returns the `PostsQueryBuilder` object used to get the current results.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-blog-backend.Posts.PostsQueryResult.html#query)\n         */\n        query: wix_blog_backend.Posts.PostsQueryBuilder;\n        /**\n         * Returns the total number of items that match the query.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-blog-backend.Posts.PostsQueryResult.html#totalCount)\n         */\n        totalCount: number;\n        /**\n         * Returns the total number of pages the query produced.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-blog-backend.Posts.PostsQueryResult.html#totalPages)\n         */\n        totalPages: number;\n        /**\n         * Indicates whether the query has more results.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-blog-backend.Posts.PostsQueryResult.html#hasNext)\n         */\n        hasNext(): boolean;\n        /**\n         * Indicates whether the query has previous results.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-blog-backend.Posts.PostsQueryResult.html#hasPrev)\n         */\n        hasPrev(): boolean;\n        /**\n         * Retrieves the next page of query results.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-blog-backend.Posts.PostsQueryResult.html#next)\n         */\n        next(): Promise<wix_blog_backend.Posts.PostsQueryResult>;\n        /**\n         * Retrieves the previous page of query results.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-blog-backend.Posts.PostsQueryResult.html#prev)\n         */\n        prev(): Promise<wix_blog_backend.Posts.PostsQueryResult>;\n    }\n}\ndeclare namespace wix_blog_backend.Tags {\n    /**\n     * [Read more](https://www.wix.com/corvid/reference/wix-blog-backend.Tags.TagsQueryBuilder.html#)\n     */\n    interface TagsQueryBuilder {\n        /**\n         * Adds a sort to a query, sorting by the specified properties in ascending order.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-blog-backend.Tags.TagsQueryBuilder.html#ascending)\n         */\n        ascending(propertyNames: Array<string>): wix_blog_backend.Tags.TagsQueryBuilder;\n        /**\n         * Adds a sort to a query, sorting by the specified properties in descending order.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-blog-backend.Tags.TagsQueryBuilder.html#descending)\n         */\n        descending(propertyNames: Array<string>): wix_blog_backend.Tags.TagsQueryBuilder;\n        /**\n         * Refines a query to match items where the specified property equals the specified value.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-blog-backend.Tags.TagsQueryBuilder.html#eq)\n         */\n        eq(propertyName: string, value: any): wix_blog_backend.Tags.TagsQueryBuilder;\n        /**\n         * Returns the filtered query results.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-blog-backend.Tags.TagsQueryBuilder.html#find)\n         */\n        find(): Promise<wix_blog_backend.Tags.TagsQueryResult>;\n        /**\n         * Refines a query to match items where the specified property is greater than or equal to the specified value.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-blog-backend.Tags.TagsQueryBuilder.html#ge)\n         */\n        ge(propertyName: string, value: any): wix_blog_backend.Tags.TagsQueryBuilder;\n        /**\n         * Refines a query to match items where the specified property is greater than the specified value.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-blog-backend.Tags.TagsQueryBuilder.html#gt)\n         */\n        gt(propertyName: string, value: any): wix_blog_backend.Tags.TagsQueryBuilder;\n        /**\n         * Refines a query to match items whose specified property contains any of the specified values.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-blog-backend.Tags.TagsQueryBuilder.html#hasSome)\n         */\n        hasSome(propertyName: string, value: Array<any>): wix_blog_backend.Tags.TagsQueryBuilder;\n        /**\n         * Refines a query to match items where the specified property is less than or equal to the specified value.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-blog-backend.Tags.TagsQueryBuilder.html#le)\n         */\n        le(propertyName: string, value: any): wix_blog_backend.Tags.TagsQueryBuilder;\n        /**\n         * Limits the number of items the query returns.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-blog-backend.Tags.TagsQueryBuilder.html#limit)\n         */\n        limit(limit: number): wix_blog_backend.Tags.TagsQueryBuilder;\n        /**\n         * Refines a query to match items where the specified property is less than the specified value.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-blog-backend.Tags.TagsQueryBuilder.html#lt)\n         */\n        lt(propertyName: string, value: any): wix_blog_backend.Tags.TagsQueryBuilder;\n        /**\n         * Refines a query to match items where the specified property doesn't equal the specified value.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-blog-backend.Tags.TagsQueryBuilder.html#ne)\n         */\n        ne(propertyName: string, value: any): wix_blog_backend.Tags.TagsQueryBuilder;\n        /**\n         * Sets the number of items to skip before returning query results.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-blog-backend.Tags.TagsQueryBuilder.html#skip)\n         */\n        skip(skip: number): wix_blog_backend.Tags.TagsQueryBuilder;\n        /**\n         * Refines a query to match items where the specified property starts with the specified value.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-blog-backend.Tags.TagsQueryBuilder.html#startsWith)\n         */\n        startsWith(propertyName: string, value: string): wix_blog_backend.Tags.TagsQueryBuilder;\n    }\n    /**\n     * [Read more](https://www.wix.com/corvid/reference/wix-blog-backend.Tags.TagsQueryResult.html#)\n     */\n    interface TagsQueryResult {\n        /**\n         * Returns the index of the current page of results.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-blog-backend.Tags.TagsQueryResult.html#currentPage)\n         */\n        currentPage: number;\n        /**\n         * Returns an array of `tags` items that match the query.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-blog-backend.Tags.TagsQueryResult.html#items)\n         */\n        items: Array<wix_blog_backend.Tags.Tag>;\n        /**\n         * Returns the number of items in the current page of results.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-blog-backend.Tags.TagsQueryResult.html#length)\n         */\n        length: number;\n        /**\n         * Returns the requested page size.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-blog-backend.Tags.TagsQueryResult.html#pageSize)\n         */\n        pageSize: number;\n        /**\n         * Returns the `TagsQueryBuilder` object used to get the current results.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-blog-backend.Tags.TagsQueryResult.html#query)\n         */\n        query: wix_blog_backend.Tags.TagsQueryBuilder;\n        /**\n         * Returns the total number of items that match the query.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-blog-backend.Tags.TagsQueryResult.html#totalCount)\n         */\n        totalCount: number;\n        /**\n         * Returns the total number of pages the query produced.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-blog-backend.Tags.TagsQueryResult.html#totalPages)\n         */\n        totalPages: number;\n        /**\n         * Indicates whether the query has more results.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-blog-backend.Tags.TagsQueryResult.html#hasNext)\n         */\n        hasNext(): boolean;\n        /**\n         * Indicates whether the query has previous results.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-blog-backend.Tags.TagsQueryResult.html#hasPrev)\n         */\n        hasPrev(): boolean;\n        /**\n         * Retrieves the next page of query results.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-blog-backend.Tags.TagsQueryResult.html#next)\n         */\n        next(): Promise<wix_blog_backend.Tags.TagsQueryResult>;\n        /**\n         * Retrieves the previous page of query results.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-blog-backend.Tags.TagsQueryResult.html#prev)\n         */\n        prev(): Promise<wix_blog_backend.Tags.TagsQueryResult>;\n    }\n}\ndeclare namespace wix_bookings_backend.Bookings {\n    /**\n     * Contains functionality for refining a Bookings query.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.Bookings.BookingsQueryBuilder.html#)\n     */\n    interface BookingsQueryBuilder {\n        /**\n         * Adds a sort to a query, sorting by the specified properties in ascending order.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.Bookings.BookingsQueryBuilder.html#ascending)\n         */\n        ascending(...propertyName: string[]): wix_bookings_backend.Bookings.BookingsQueryBuilder;\n        /**\n         * Adds a sort to a query or sort, sorting by the specified properties in descending order.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.Bookings.BookingsQueryBuilder.html#descending)\n         */\n        descending(...propertyName: string[]): wix_bookings_backend.Bookings.BookingsQueryBuilder;\n        /**\n         * Refines a query to match items whose specified property value equals the specified value.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.Bookings.BookingsQueryBuilder.html#eq)\n         */\n        eq(propertyName: string, value: any): wix_bookings_backend.Bookings.BookingsQueryBuilder;\n        /**\n         * Returns the bookings that match the query.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.Bookings.BookingsQueryBuilder.html#find)\n         */\n        find(options?: wix_bookings_backend.Bookings.BookingsQueryBuilder.QueryOptions): Promise<wix_bookings_backend.Bookings.BookingsQueryResult>;\n        /**\n         * Refines a query to match items whose specified property value is greater than or equal to the specified value.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.Bookings.BookingsQueryBuilder.html#ge)\n         */\n        ge(propertyName: string, value: string | number | Date): wix_bookings_backend.Bookings.BookingsQueryBuilder;\n        /**\n         * Refines a query to match items whose specified property value is greater than the specified value.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.Bookings.BookingsQueryBuilder.html#gt)\n         */\n        gt(propertyName: string, value: string | number | Date): wix_bookings_backend.Bookings.BookingsQueryBuilder;\n        /**\n         * Refines a query to match items whose specified property contains any of the specified `value` parameters.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.Bookings.BookingsQueryBuilder.html#hasSome)\n         */\n        hasSome(propertyName: string, value: string[]): wix_bookings_backend.Bookings.BookingsQueryBuilder;\n        /**\n         * Refines a query to match items whose specified property value is less than or equal to the specified value.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.Bookings.BookingsQueryBuilder.html#le)\n         */\n        le(propertyName: string, value: string | number | Date): wix_bookings_backend.Bookings.BookingsQueryBuilder;\n        /**\n         * Limits the number of items the query returns.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.Bookings.BookingsQueryBuilder.html#limit)\n         */\n        limit(limit: number): wix_bookings_backend.Bookings.BookingsQueryBuilder;\n        /**\n         * Refines a query to match items whose specified property value is less than the specified value.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.Bookings.BookingsQueryBuilder.html#lt)\n         */\n        lt(propertyName: string, value: string | number | Date): wix_bookings_backend.Bookings.BookingsQueryBuilder;\n        /**\n         * Sets the number of items to skip before returning query results.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.Bookings.BookingsQueryBuilder.html#skip)\n         */\n        skip(skip: number): wix_bookings_backend.Bookings.BookingsQueryBuilder;\n    }\n    namespace BookingsQueryBuilder {\n        /**\n         * Options to use when performing a query.\n         */\n        type QueryOptions = {\n            /**\n             * Prevents permission checks from running for the `find()` operation. Defaults to `false`.\n             */\n            suppressAuth?: boolean;\n        };\n    }\n    /**\n     * The results of a bookings query, containing the retrieved items.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.Bookings.BookingsQueryResult.html#)\n     */\n    interface BookingsQueryResult {\n        /**\n         * Returns the index of the current results page number.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.Bookings.BookingsQueryResult.html#currentPage)\n         */\n        readonly currentPage: number;\n        /**\n         * Returns an array of bookings that match the query.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.Bookings.BookingsQueryResult.html#items)\n         */\n        readonly items: wix_bookings_backend.Booking[];\n        /**\n         * Returns the number of items in the current results page.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.Bookings.BookingsQueryResult.html#length)\n         */\n        readonly length: number;\n        /**\n         * Returns the query page size.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.Bookings.BookingsQueryResult.html#pageSize)\n         */\n        readonly pageSize: number;\n        /**\n         * Returns the BookingsQueryBuilder object used to get the current results.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.Bookings.BookingsQueryResult.html#query)\n         */\n        readonly query: wix_bookings_backend.Bookings.BookingsQueryBuilder;\n        /**\n         * Returns the total number of items that match the query.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.Bookings.BookingsQueryResult.html#totalCount)\n         */\n        readonly totalCount: number;\n        /**\n         * Returns the total number of pages the query produced.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.Bookings.BookingsQueryResult.html#totalPages)\n         */\n        readonly totalPages: number;\n        /**\n         * Indicates if the query has more results.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.Bookings.BookingsQueryResult.html#hasNext)\n         */\n        hasNext(): boolean;\n        /**\n         * Indicates the query has previous results.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.Bookings.BookingsQueryResult.html#hasPrev)\n         */\n        hasPrev(): boolean;\n        /**\n         * Retrieves the next page of query results.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.Bookings.BookingsQueryResult.html#next)\n         */\n        next(): Promise<wix_bookings_backend.Bookings.BookingsQueryResult>;\n        /**\n         * Retrieves the previous page of query results.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.Bookings.BookingsQueryResult.html#prev)\n         */\n        prev(): Promise<wix_bookings_backend.Bookings.BookingsQueryResult>;\n    }\n    /**\n     * Contains functionality for refining a Bookings query.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.Bookings.WixBookingsQueryBuilder.html#)\n     */\n    interface WixBookingsQueryBuilder {\n        /**\n         * Adds a sort to a query, sorting by the specified properties in ascending order.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.Bookings.WixBookingsQueryBuilder.html#ascending)\n         */\n        ascending(...propertyName: string[]): wix_bookings_backend.Bookings.WixBookingsQueryBuilder;\n        /**\n         * Adds a sort to a query or sort, sorting by the specified properties in descending order.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.Bookings.WixBookingsQueryBuilder.html#descending)\n         */\n        descending(...propertyName: string[]): wix_bookings_backend.Bookings.WixBookingsQueryBuilder;\n        /**\n         * Refines a query to match items whose specified property value equals the specified value.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.Bookings.WixBookingsQueryBuilder.html#eq)\n         */\n        eq(propertyName: string, value: any): wix_bookings_backend.Bookings.WixBookingsQueryBuilder;\n        /**\n         * Returns the items that match the query.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.Bookings.WixBookingsQueryBuilder.html#find)\n         */\n        find(options?: wix_bookings_backend.Bookings.WixBookingsQueryBuilder.QueryOptions): Promise<wix_bookings_backend.Bookings.BookingsQueryResult>;\n        /**\n         * Refines a query to match items whose specified property value is greater than or equal to the specified value.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.Bookings.WixBookingsQueryBuilder.html#ge)\n         */\n        ge(propertyName: string, value: string | number | Date): wix_bookings_backend.Bookings.WixBookingsQueryBuilder;\n        /**\n         * Refines a query to match items whose specified property value is greater than the specified value.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.Bookings.WixBookingsQueryBuilder.html#gt)\n         */\n        gt(propertyName: string, value: string | number | Date): wix_bookings_backend.Bookings.WixBookingsQueryBuilder;\n        /**\n         * Refines a query to match items whose specified property contains any of the specified `value` parameters.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.Bookings.WixBookingsQueryBuilder.html#hasSome)\n         */\n        hasSome(propertyName: string, value: string[]): wix_bookings_backend.Bookings.WixBookingsQueryBuilder;\n        /**\n         * Refines a query to match items whose specified property value is less than or equal to the specified value.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.Bookings.WixBookingsQueryBuilder.html#le)\n         */\n        le(propertyName: string, value: string | number | Date): wix_bookings_backend.Bookings.WixBookingsQueryBuilder;\n        /**\n         * Limits the number of items the query returns.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.Bookings.WixBookingsQueryBuilder.html#limit)\n         */\n        limit(limit: number): wix_bookings_backend.Bookings.WixBookingsQueryBuilder;\n        /**\n         * Refines a query to match items whose specified property value is less than the specified value.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.Bookings.WixBookingsQueryBuilder.html#lt)\n         */\n        lt(propertyName: string, value: string | number | Date): wix_bookings_backend.Bookings.WixBookingsQueryBuilder;\n        /**\n         * Sets the number of items to skip before returning query results.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.Bookings.WixBookingsQueryBuilder.html#skip)\n         */\n        skip(skip: number): wix_bookings_backend.Bookings.WixBookingsQueryBuilder;\n    }\n    namespace WixBookingsQueryBuilder {\n        /**\n         * Options to use when performing a query.\n         */\n        type QueryOptions = {\n            /**\n             * Prevents [permission](https://support.wix.com/en/article/about-collection-permissions) checks from running for the operation.\n             */\n            suppressAuth?: boolean;\n        };\n    }\n    /**\n     * The results of a data query, containing the retrieved items.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.Bookings.WixBookingsQueryResult.html#)\n     */\n    interface WixBookingsQueryResult {\n        /**\n         * Returns the index of the current results page number.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.Bookings.WixBookingsQueryResult.html#currentPage)\n         */\n        readonly currentPage: number;\n        /**\n         * Returns the an array of bookings that match the query.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.Bookings.WixBookingsQueryResult.html#items)\n         */\n        readonly items: wix_bookings_backend.Booking[];\n        /**\n         * Returns the number of items in the current results page.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.Bookings.WixBookingsQueryResult.html#length)\n         */\n        readonly length: number;\n        /**\n         * Returns the query page size.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.Bookings.WixBookingsQueryResult.html#pageSize)\n         */\n        readonly pageSize: number;\n        /**\n         * Returns the query used to get the current results.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.Bookings.WixBookingsQueryResult.html#query)\n         */\n        readonly query: wix_bookings_backend.Bookings.WixBookingsQueryBuilder;\n        /**\n         * Returns the total number of items that match the query.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.Bookings.WixBookingsQueryResult.html#totalCount)\n         */\n        readonly totalCount: number;\n        /**\n         * Returns the total number of pages the query produced.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.Bookings.WixBookingsQueryResult.html#totalPages)\n         */\n        readonly totalPages: number;\n        /**\n         * Indicates if the query has more results.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.Bookings.WixBookingsQueryResult.html#hasNext)\n         */\n        hasNext(): boolean;\n        /**\n         * Indicates the query has previous results.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.Bookings.WixBookingsQueryResult.html#hasPrev)\n         */\n        hasPrev(): boolean;\n        /**\n         * Retrieves the next page of query results.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.Bookings.WixBookingsQueryResult.html#next)\n         */\n        next(): Promise<wix_bookings_backend.Bookings.WixBookingsQueryResult>;\n        /**\n         * Retrieves the previous page of query results.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.Bookings.WixBookingsQueryResult.html#prev)\n         */\n        prev(): Promise<wix_bookings_backend.Bookings.WixBookingsQueryResult>;\n    }\n}\ndeclare namespace wix_bookings_backend {\n    /**\n     * The Bookings API provides functionality for updating and managing bookings created in the Wix Bookings app.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.Bookings.html#)\n     */\n    interface Bookings {\n        /**\n         * Cancels an existing booking.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.Bookings.html#cancelBooking)\n         */\n        cancelBooking(bookingId: string, options: wix_bookings_backend.Bookings.CancelBookingOptions): Promise<wix_bookings_backend.Bookings.CancelBookingResult>;\n        /**\n         * Confirms a booking request.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.Bookings.html#confirmBooking)\n         */\n        confirmBooking(bookingId: string, options: wix_bookings_backend.Bookings.ConfirmBookingOptions): Promise<string>;\n        /**\n         * Declines a pending booking request.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.Bookings.html#declineBooking)\n         */\n        declineBooking(bookingId: string, options: wix_bookings_backend.Bookings.DeclineBookingOptions): Promise<wix_bookings_backend.Bookings.DeclineBookingResult>;\n        /**\n         * Creates a query to retrieve a list of bookings.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.Bookings.html#queryBookings)\n         */\n        queryBookings(): wix_bookings_backend.Bookings.BookingsQueryBuilder;\n        /**\n         * Sets the number of people who actually attended the session for the given booking.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.Bookings.html#setAttendance)\n         */\n        setAttendance(bookingId: string, attendanceInfo: wix_bookings_backend.Bookings.AttendanceInfo, options?: wix_bookings_backend.Options): Promise<wix_bookings_backend.Booking>;\n        /**\n         * Marks a booking as fully paid.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.Bookings.html#setBookingAsPaid)\n         */\n        setBookingAsPaid(bookingId: string, options?: wix_bookings_backend.Options): Promise<wix_bookings_backend.Booking>;\n        /**\n         * Updates the customer's information for a booking.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.Bookings.html#updateCustomerInfo)\n         */\n        updateCustomerInfo(bookingId: string, formInfo: wix_bookings_backend.Bookings.FormInfo, options?: wix_bookings_backend.Options): Promise<wix_bookings_backend.Booking>;\n    }\n    namespace Bookings {\n        /**\n         * Contact's full [address](https://www.wix.com/corvid/reference/$w/addressinput/value).\n         */\n        type AddressInfo = {\n            /**\n             * A string containing the full address of this location.\n             */\n            formatted?: string;\n            /**\n             * Main address line, usually street and number, as free text.\n             */\n            addressLine1?: string;\n            /**\n             * Free text providing more detailed address info. Usually contains Apt, Suite, and Floor.\n             */\n            addressLine2?: string;\n            /**\n             * Street name, number, and apartment number.\n             */\n            streetAddress?: wix_bookings_backend.StreetAddressInfo;\n            /**\n             * Coordinates of the physical address.\n             */\n            location?: wix_bookings_backend.AddressLocationInfo;\n            /**\n             * City name.\n             */\n            city?: string;\n            /**\n             * Subdivision. Usually state, region, prefecture or province code, according to [ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-2).\n             */\n            subdivision?: string;\n            /**\n             * Country code in [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) code format.\n             */\n            country?: string;\n            /**\n             * Zip/postal code.\n             */\n            postalCode?: string;\n        };\n        /**\n         * Attendance information for the booking\n         */\n        type AttendanceInfo = {\n            /**\n             * Whether the booked contact attended the session.\n             */\n            attended?: boolean;\n            /**\n             * Number of attendees that attended the session. This can be greater than 1 when the booking is made for a group of people.\n             */\n            numberOfAttendees?: number;\n        };\n        type CancelBookingOptions = {\n            /**\n             * Whether to notify the participants about the booking confirmation, and an optional custom message.\n             */\n            participantNotification?: wix_bookings_backend.ParticipantNotificationInfo;\n            /**\n             * Sets the cancel booking flow behavior.\n             */\n            flowControlSettings?: wix_bookings_backend.Bookings.FlowControlSettingsInfo;\n            /**\n             * When `true`, prevents permission checks from running for the operation. Defaults to `false`.\n             */\n            suppressAuth?: boolean;\n        };\n        type CancelBookingResult = {\n            /**\n             * ID of the canceled booking.\n             */\n            bookingId: string;\n        };\n        type ConfirmBookingOptions = {\n            /**\n             * Whether to notify the participants about the booking confirmation, and an optional custom message.\n             */\n            participantNotification?: wix_bookings_backend.ParticipantNotificationInfo;\n            /**\n             * When `true`, prevents permission checks from running for the operation. Defaults to `false`.\n             */\n            suppressAuth?: boolean;\n        };\n        /**\n         * Contact details of the customer making the booking.\n         */\n        type ContactDetails = {\n            /**\n             * Contact's ID.\n             */\n            contactId?: string;\n            /**\n             * Contact's first name. When populated from a standard booking form, this property corresponds to the **Name** field.\n             */\n            firstName?: string;\n            /**\n             * Contact's last name.\n             */\n            lastName?: string;\n            /**\n             * Contact's email, used to create a new contact or get existing one from the [CRM API](wix-crm/introduction).\n             */\n            email?: string;\n            /**\n             * Contact's phone number.\n             */\n            phone?: string;\n            /**\n             * Contact's time zone.\n             */\n            timeZone?: string;\n            /**\n             * Contact's country in [ISO 3166-1 alpha-2 code](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) format.\n             */\n            countryCode?: string;\n            /**\n             * Contact's full [address](https://www.wix.com/velo/reference/$w/addressinput/value).\n             */\n            address?: wix_bookings_backend.Bookings.OwnerAddress;\n        };\n        type DeclineBookingOptions = {\n            /**\n             * Whether to notify the participants about the booking confirmation, and an optional custom message.\n             */\n            participantNotification?: wix_bookings_backend.ParticipantNotificationInfo;\n            /**\n             * When `true`, prevents permission checks from running for the operation. Defaults to `false`.\n             */\n            suppressAuth?: boolean;\n        };\n        type DeclineBookingResult = {\n            /**\n             * ID of the declined booking.\n             */\n            bookingId: string;\n        };\n        /**\n         * Sets the cancel booking flow behavior.\n         */\n        type FlowControlSettingsInfo = {\n            /**\n             * Whether to ignore the service's cancellation policy.\n             *\n             *\n             *  Requires \"Manage Wix Bookings App\" and \"Manage Bookings' Calendar\" [roles](https://support.wix.com/en/article/roles-permissions-overview#bookings-admin).\n             *\n             */\n            ignoreCancellationPolicy?: boolean;\n        };\n        /**\n         * Updated form info and contact details\n         */\n        type FormInfo = {\n            /**\n             * List of rates and the number of participants for each rate.\n             */\n            paymentSelection?: wix_bookings_backend.PaymentSelectionInfo[];\n            /**\n             * Additional custom fields submitted with the form.\n             */\n            additionalFields?: wix_bookings_backend.CustomFormFieldInfo[];\n            /**\n             * Contact details of the customer making the booking.\n             */\n            contactDetails?: wix_bookings_backend.Bookings.ContactDetails;\n        };\n        /**\n         * Contact full [address](https://www.wix.com/velo/reference/$w/addressinput/value).\n         */\n        type OwnerAddress = {\n            /**\n             * Main address line, usually street and number, as free text.\n             */\n            addressLine1?: string;\n            /**\n             * Street name, number and apartment number.\n             */\n            streetAddress?: wix_bookings_backend.StreetAddressInfo;\n            /**\n             * String containing the full address of this location.\n             */\n            formatted?: string;\n            /**\n             * Free text providing more detailed address info. Usually contains Apt, Suite, and Floor.\n             */\n            addressLine2?: string;\n            /**\n             * Coordinates of the physical address.\n             */\n            location?: wix_bookings_backend.AddressLocationInfo;\n            /**\n             * City name.\n             */\n            city?: string;\n            /**\n             * Subdivision. Usually state, region, prefecture or province code, according to [ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-2).\n             */\n            subdivision?: string;\n            /**\n             * Country code.\n             */\n            country?: string;\n            /**\n             * Zip/postal code.\n             */\n            postalCode?: string;\n        };\n    }\n    /**\n     * Events that are fired by actions related to Wix Bookings.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.Events.html#)\n     */\n    interface Events {\n        /**\n         * An event that fires when a booking is canceled.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.Events.html#onBookingCanceled)\n         */\n        onBookingCanceled(event: wix_bookings_backend.Events.BookingEvent): void;\n        /**\n         * An event that fires when a booking request is confirmed.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.Events.html#onBookingConfirmed)\n         */\n        onBookingConfirmed(event: wix_bookings_backend.Events.BookingEvent): void;\n        /**\n         * An event that fires when a booking request is declined.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.Events.html#onBookingDeclined)\n         */\n        onBookingDeclined(event: wix_bookings_backend.Events.BookingEvent): void;\n        /**\n         * An event that fires when a booking request is created.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.Events.html#onBookingRequestCreated)\n         */\n        onBookingRequestCreated(event: wix_bookings_backend.Events.BookingEvent): void;\n        /**\n         * An event that fires when a booking's schedule is updated.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.Events.html#onBookingScheduleUpdated)\n         */\n        onBookingScheduleUpdated(event: wix_bookings_backend.Events.BookingEvent): void;\n        /**\n         * An event that fires when a booking's details are updated.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.Events.html#onBookingUpdated)\n         */\n        onBookingUpdated(event: wix_bookings_backend.Events.BookingEvent): void;\n    }\n    namespace Events {\n        /**\n         * An object representing a booking event.\n         */\n        type BookingEvent = {\n            /**\n             * Action that triggered the event. Each event has its own set of possible trigger values.\n             */\n            trigger: string;\n            /**\n             * Booking object after the event was triggered.\n             */\n            booking: wix_bookings_backend.Booking;\n            /**\n             * Booking object before the event was triggered.\n             */\n            previousBooking: wix_bookings_backend.Booking;\n        };\n    }\n    /**\n     * The Bookings Resources API provides functionality for creating, managing, and querying resources.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.Resources.html#)\n     */\n    interface Resources {\n        /**\n         * Creates a resource.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.Resources.html#createResource)\n         */\n        createResource(resourceInfo: wix_bookings_backend.Resources.ResourceInfo, scheduleInfo: wix_bookings_backend.Resources.ResourceScheduleInfo[], options?: wix_bookings_backend.Options): Promise<wix_bookings_backend.Resource>;\n        /**\n         * Deletes a resource.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.Resources.html#deleteResource)\n         */\n        deleteResource(resourceId: string, options?: wix_bookings_backend.Options): Promise<string>;\n        /**\n         * Creates a query to retrieve extended resource information.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.Resources.html#queryResourceCatalog)\n         */\n        queryResourceCatalog(): wix_bookings_backend.Resources.ResourceCatalogQueryBuilder;\n        /**\n         * Updates a resource.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.Resources.html#updateResource)\n         */\n        updateResource(id: string, resourceInfo: wix_bookings_backend.Resources.UpdateResourceInfo, options?: wix_bookings_backend.Options): Promise<wix_bookings_backend.Resource>;\n        /**\n         * Updates a resource's schedule.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.Resources.html#updateResourceSchedule)\n         */\n        updateResourceSchedule(resourceId: string, scheduleId: string, scheduleInfo: wix_bookings_backend.Resources.ResourceScheduleInfo, options?: wix_bookings_backend.Options): Promise<wix_bookings_backend.Resources.ResourceSchedule>;\n    }\n    namespace Resources {\n        type LinkedSchedulesInfo = {\n            /**\n             * Schedule ID.\n             */\n            scheduleId: string;\n            /**\n             * Owner ID, of the linked schedule.\n             */\n            scheduleOwnerId: string;\n        };\n        /**\n         * Resource details.\n         */\n        type ResourceInfo = {\n            /**\n             * Resource name.\n             */\n            name: string;\n            /**\n             * Resource email address.\n             */\n            email?: string;\n            /**\n             * Resource phone number.\n             */\n            phone?: string;\n            /**\n             * Resource description.\n             */\n            description?: string;\n            /**\n             * Resource tags. Tags are used to identify, group, and filter the different types of resources. For example, 'staff' or 'room'.\n             */\n            tags?: string[];\n        };\n        /**\n         * ResourceCatalog query results.\n         */\n        type ResourceQueryResults = {\n            /**\n             * Resource.\n             */\n            resource: wix_bookings_backend.Resource;\n            /**\n             * Resource's schedules.\n             */\n            schedules: wix_bookings_backend.Resources.ResourceSchedule[];\n            /**\n             * History of slugified resource names.\n             */\n            slugs: wix_bookings_backend.Resources.Slug[];\n        };\n        type ResourceSchedule = {\n            /**\n             * Schedule ID.\n             */\n            _id: string;\n            /**\n             * ID of the schedule's owner entity. This may be a resource ID or a service ID.\n             */\n            scheduleOwnerId: string;\n            /**\n             * An object describing how to calculate the schedule's availability.\n             * An empty object indicates that the schedule is not available for booking.\n             */\n            availability: wix_bookings_backend.Resources.ResourceScheduleAvailability;\n        };\n        /**\n         * An object describing how to calculate the schedule's availability.\n         */\n        type ResourceScheduleAvailability = {\n            /**\n             * Date and time the schedule starts to be available for booking.\n             */\n            start: Date;\n            /**\n             * Other schedules that impact the availability calculation. Relevant only when there are availability constraints.\n             */\n            linkedSchedules: wix_bookings_backend.LinkedResourceScheduleInfo[];\n        };\n        /**\n         * An object describing how to calculate the schedule's availability.\n         */\n        type ResourceScheduleAvailabilityInfo = {\n            /**\n             * Date and time the schedule starts to be available for booking.\n             */\n            start?: Date;\n            /**\n             * Other schedules that impact the availability calculation. Relevant only when there are availability constraints.\n             */\n            linkedSchedules?: wix_bookings_backend.LinkedResourceScheduleInfo[];\n        };\n        type ResourceScheduleInfo = {\n            /**\n             * An object describing how to calculate the schedule's availability.\n             * An empty object indicates that the schedule is not available for booking.\n             */\n            availability?: wix_bookings_backend.Resources.ResourceScheduleAvailability;\n        };\n        /**\n         * Slugified resource name.\n         */\n        type Slug = {\n            /**\n             * Slugified resource name.\n             */\n            name: string;\n            /**\n             * Date and time the resource name was created.\n             */\n            _createdDate: Date;\n        };\n        /**\n         * Resource details.\n         */\n        type UpdateResourceInfo = {\n            /**\n             * Resource name.\n             */\n            name?: string;\n            /**\n             * Resource email address.\n             */\n            email?: string;\n            /**\n             * Resource phone number.\n             */\n            phone?: string;\n            /**\n             * Resource description.\n             */\n            description?: string;\n            /**\n             * Resource tags. Tags are used to identify, group, and filter the different types of resources. For example, 'staff' or 'room'.\n             */\n            tags?: string[];\n        };\n    }\n    /**\n     * The Sessions API provides functionality for creating, managing, and querying sessions.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.Sessions.html#)\n     */\n    interface Sessions {\n        /**\n         * Creates a session.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.Sessions.html#createSession)\n         */\n        createSession(sessionInfo: wix_bookings_backend.Sessions.SessionInfo, options?: wix_bookings_backend.Options): Promise<wix_bookings_backend.Sessions.Session>;\n        /**\n         * Deletes a session from a schedule.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.Sessions.html#deleteSession)\n         */\n        deleteSession(sessionId: string, options?: wix_bookings_backend.Sessions.DeleteSessionOptions): Promise<string>;\n        /**\n         * Gets a session.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.Sessions.html#getSession)\n         */\n        getSession(sessionId: string, options?: wix_bookings_backend.Options): Promise<wix_bookings_backend.Sessions.Session>;\n        /**\n         * Retrieves a list of the sessions according to the specified filters and paging.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.Sessions.html#querySessions)\n         */\n        querySessions(): wix_bookings_backend.Sessions.SessionQueryBuilder;\n        /**\n         * Updates a session.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.Sessions.html#updateSession)\n         */\n        updateSession(sessionId: string, sessionInfo: wix_bookings_backend.Sessions.UpdateSessionInfo, options?: wix_bookings_backend.Options): Promise<wix_bookings_backend.Sessions.Session>;\n    }\n    namespace Sessions {\n        type DeleteSessionOptions = {\n            /**\n             * Whether to notify participants about the change, and an optional custom message.\n             */\n            participantNotification?: wix_bookings_backend.ParticipantNotificationInfo;\n            /**\n             * When `true`, prevents permission checks from running for the operation. Defaults to `false`.\n             */\n            suppressAuth?: boolean;\n        };\n        type Session = {\n            /**\n             * Session ID.\n             */\n            _id: string;\n            /**\n             * ID of the schedule that the session belongs to.\n             */\n            scheduleId: string;\n            /**\n             * ID of the resource or service that the session's schedule belongs to.\n             */\n            scheduleOwnerId: string;\n            /**\n             * Tags for the session.\n             * The value is inherited from the schedule and can be overridden unless the session is a recurring session.\n             */\n            tags: string[];\n            /**\n             * Additional information about the session.\n             * Notes are not supported for recurring sessions.\n             */\n            notes: string;\n            /**\n             * Session status.\n             *\n             *  One of:\n             *  - `\"CONFIRMED\"` Default value.\n             *  - `\"CANCELLED\"` The session was deleted.\n             *\n             */\n            status: string;\n            /**\n             * ID of the recurring session if this session is an instance of a recurrence. Use this ID to update the recurrence and all of the instances.\n             */\n            recurringSessionId?: string;\n            /**\n             * Session type.\n             *\n             *  One of:\n             *  - `\"EVENT\"` Reserved period of time on the schedule. For example, an appointment, class, course, or blocked time. Events are visible in the Dashboard in the Bookings app's [Booking Calendar](https://support.wix.com/en/article/wix-bookings-about-the-wix-bookings-calendar) page.\n             *  - `\"WORKING_HOURS\"` Placeholder for available time on a resource’s schedule.\n             *\n             */\n            type: string;\n            /**\n             * String representing a recurrence rule (RRULE) for a recurring session, as defined in [iCalendar RFC 5545](https://icalendar.org/iCalendar-RFC-5545/3-3-10-recurrence-rule.html).\n             * If the session is an instance of a recurrence pattern, the `instanceOfRecurrence` property will contain the recurrence rule and this property will be empty.\n             * The RRULE defines a rule for repeating a session.\n             * Supported parameters are:\n             *\n             * |Keyword|Description|Supported values|\n             * |--|--|---|\n             * |`FREQ`|The frequency at which the session is recurs. Required.|`WEEKLY`|\n             * |`INTERVAL`|How often, in terms of `FREQ`, the session recurs. Default is 1. Optional.|\n             * |`UNTIL`|The UTC end date and time of the recurrence. Optional.|\n             * |`BYDAY`|Day of the week when the event should recur. Required.|One of: `MO`, `TU`, `WE`, `TH`, `FR`, `SA`, `SU`|\n             *\n             *\n             *  For example, a session that repeats every second week on a Monday until January 7, 2022 at 8 AM:\n             * `\"FREQ=WEEKLY;INTERVAL=2;BYDAY=MO;UNTIL=20220107T080000Z\"`\n             *\n             *\n             */\n            recurrence?: string;\n            /**\n             * String representing a recurrence rule (RRULE) if the session is an instance of a recurrence pattern.\n             * Empty when the session is not an instance of a recurrence rule, or if the session defines a recurrence pattern, and `recurrence` is not empty.\n             */\n            instanceOfRecurrence?: string;\n            /**\n             * An object specifying the start date and time of the session. If the session is a recurring session, `start` must contain a `localDateTime`.\n             */\n            start: wix_bookings_backend.CalendarDateTime;\n            /**\n             * An object specifying the end date and time of the session. If the session is a recurring session, `end` must contain a `localDateTime`.\n             */\n            end: wix_bookings_backend.CalendarDateTime;\n        };\n        /**\n         * Session.\n         */\n        type SessionInfo = {\n            /**\n             * ID of the schedule that the session belongs to.\n             */\n            scheduleId: string;\n            /**\n             * An object specifying the start date and time of the session. If the session is a recurring session, `start` must contain a `localDateTime`.\n             */\n            start: wix_bookings_backend.CalendarDateTimeInfo;\n            /**\n             * An object specifying the end date and time of the session. If the session is a recurring session, `end` must contain a `localDateTime`.\n             */\n            end: wix_bookings_backend.CalendarDateTimeInfo;\n            /**\n             * Tags for the session.\n             * The value is inherited from the schedule and can be overridden unless the session is a recurring session.\n             */\n            tags?: string[];\n            /**\n             * Additional information about the session.\n             * Notes are not supported for recurring sessions.\n             */\n            notes?: string;\n            /**\n             * Session type.\n             *\n             *  One of:\n             *  - `\"EVENT\"` Reserved period of time on the schedule. For example, an appointment, class, course, or blocked time. Events are visible in the Dashboard in the Bookings app's [Booking Calendar](https://support.wix.com/en/article/wix-bookings-about-the-wix-bookings-calendar) page.\n             *  - `\"WORKING_HOURS\"` Placeholder for available time on a resource’s schedule.\n             *\n             */\n            type?: string;\n            /**\n             * String representing a recurrence rule (RRULE) for a recurring session, as defined in [iCalendar RFC 5545](https://icalendar.org/iCalendar-RFC-5545/3-3-10-recurrence-rule.html).\n             * If the session is an instance of a recurrence pattern, the `instanceOfRecurrence` property will contain the recurrence rule and this property will be empty.\n             * The RRULE defines a rule for repeating a session.\n             * Supported parameters are:\n             *\n             * |Keyword|Description|Supported values|\n             * |--|--|---|\n             * |`FREQ`|The frequency at which the session is recurs. Required.|`WEEKLY`|\n             * |`INTERVAL`|How often, in terms of `FREQ`, the session recurs. Default is 1. Optional.|\n             * |`UNTIL`|The UTC end date and time of the recurrence. Optional.|\n             * |`BYDAY`|Day of the week when the event should recur. Required.|One of: `MO`, `TU`, `WE`, `TH`, `FR`, `SA`, `SU`|\n             *\n             *\n             *  For example, a session that repeats every second week on a Monday until January 7, 2022 at 8 AM:\n             * `\"FREQ=WEEKLY;INTERVAL=2;BYDAY=MO;UNTIL=20220107T080000Z\"`\n             *\n             *\n             */\n            recurrence?: string;\n        };\n        /**\n         * Session.\n         */\n        type UpdateSessionInfo = {\n            /**\n             * An object specifying the start date and time of the session. If the session is a recurring session, `start` must contain a `localDateTime`.\n             */\n            start?: wix_bookings_backend.CalendarDateTimeInfo;\n            /**\n             * An object specifying the start date and time of the session. If the session is a recurring session, `start` must contain a `localDateTime`.\n             */\n            end?: wix_bookings_backend.CalendarDateTimeInfo;\n            /**\n             * Tags for the session.\n             * The value is inherited from the schedule and can be overridden unless the session is a recurring session.\n             */\n            tags?: string[];\n            /**\n             * Additional information about the session.\n             * Notes are not supported for recurring sessions.\n             */\n            notes?: string;\n            /**\n             * Session type.\n             *\n             *  One of:\n             *  - `\"EVENT\"` Reserved period of time on the schedule. For example, an appointment, class, course, or blocked time. Events are visible in the Dashboard in the Bookings app's [Booking Calendar](https://support.wix.com/en/article/wix-bookings-about-the-wix-bookings-calendar) page.\n             *  - `\"WORKING_HOURS\"` Placeholder for available time on a resource’s schedule.\n             *\n             */\n            type?: string;\n            /**\n             * String representing a recurrence rule (RRULE) for a recurring session, as defined in [iCalendar RFC 5545](https://icalendar.org/iCalendar-RFC-5545/3-3-10-recurrence-rule.html).\n             * If the session is an instance of a recurrence pattern, the `instanceOfRecurrence` property will contain the recurrence rule and this property will be empty.\n             * The RRULE defines a rule for repeating a session.\n             * Supported parameters are:\n             *\n             * |Keyword|Description|Supported values|\n             * |--|--|---|\n             * |`FREQ`|The frequency at which the session is recurs. Required.|`WEEKLY`|\n             * |`INTERVAL`|How often, in terms of `FREQ`, the session recurs. Default is 1. Optional.|\n             * |`UNTIL`|The UTC end date and time of the recurrence. Optional.|\n             * |`BYDAY`|Day of the week when the event should recur. Required.|One of: `MO`, `TU`, `WE`, `TH`, `FR`, `SA`, `SU`|\n             *\n             *\n             *  For example, a session that repeats every second week on a Monday until January 7, 2022 at 8 AM:\n             * `\"FREQ=WEEKLY;INTERVAL=2;BYDAY=MO;UNTIL=20220107T080000Z\"`\n             *\n             *\n             */\n            recurrence?: string;\n        };\n    }\n    /**\n     * Contains functionality for refining a Bookings query.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.WixBookingsQueryBuilder.html#)\n     */\n    interface WixBookingsQueryBuilder {\n        /**\n         * Adds a sort to a query, sorting by the specified properties in ascending order.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.WixBookingsQueryBuilder.html#ascending)\n         */\n        ascending(...propertyName: string[]): wix_bookings_backend.WixBookingsQueryBuilder;\n        /**\n         * Returns the number of items that match the query.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.WixBookingsQueryBuilder.html#count)\n         */\n        count(options?: wix_bookings_backend.WixBookingsQueryBuilder.QueryOptions): Promise<number>;\n        /**\n         * Adds a sort to a query or sort, sorting by the specified properties in descending order.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.WixBookingsQueryBuilder.html#descending)\n         */\n        descending(...propertyName: string[]): wix_bookings_backend.WixBookingsQueryBuilder;\n        /**\n         * Refines a query to match items whose specified property value equals the specified value.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.WixBookingsQueryBuilder.html#eq)\n         */\n        eq(propertyName: string, value: any): wix_bookings_backend.WixBookingsQueryBuilder;\n        /**\n         * Returns the items that match the query.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.WixBookingsQueryBuilder.html#find)\n         */\n        find(options?: wix_bookings_backend.WixBookingsQueryBuilder.QueryOptions): Promise<wix_bookings_backend.WixBookingsQueryResult>;\n        /**\n         * Refines a query to match items whose specified property value is greater than or equal to the specified value.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.WixBookingsQueryBuilder.html#ge)\n         */\n        ge(propertyName: string, value: string | number | Date): wix_bookings_backend.WixBookingsQueryBuilder;\n        /**\n         * Refines a query to match items whose specified property value is greater than the specified value.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.WixBookingsQueryBuilder.html#gt)\n         */\n        gt(propertyName: string, value: string | number | Date): wix_bookings_backend.WixBookingsQueryBuilder;\n        /**\n         * Refines a query to match items whose specified property contains any of the specified `value` parameters.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.WixBookingsQueryBuilder.html#hasSome)\n         */\n        hasSome(propertyName: string, value: string[]): wix_bookings_backend.WixBookingsQueryBuilder;\n        /**\n         * Refines a query to match items whose specified property value is less than or equal to the specified value.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.WixBookingsQueryBuilder.html#le)\n         */\n        le(propertyName: string, value: string | number | Date): wix_bookings_backend.WixBookingsQueryBuilder;\n        /**\n         * Limits the number of items the query returns.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.WixBookingsQueryBuilder.html#limit)\n         */\n        limit(limit: number): wix_bookings_backend.WixBookingsQueryBuilder;\n        /**\n         * Refines a query to match items whose specified property value is less than the specified value.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.WixBookingsQueryBuilder.html#lt)\n         */\n        lt(propertyName: string, value: string | number | Date): wix_bookings_backend.WixBookingsQueryBuilder;\n        /**\n         * Sets the number of items to skip before returning query results.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.WixBookingsQueryBuilder.html#skip)\n         */\n        skip(skip: number): wix_bookings_backend.WixBookingsQueryBuilder;\n    }\n    namespace WixBookingsQueryBuilder {\n        /**\n         * Options to use when performing a query.\n         */\n        type QueryOptions = {\n            /**\n             * Prevents [permission](https://support.wix.com/en/article/about-collection-permissions) checks from running for the operation.\n             */\n            suppressAuth?: boolean;\n        };\n    }\n    /**\n     * The results of a data query, containing the retrieved items.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.WixBookingsQueryResult.html#)\n     */\n    interface WixBookingsQueryResult {\n        /**\n         * Returns the index of the current results page number.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.WixBookingsQueryResult.html#currentPage)\n         */\n        readonly currentPage: number;\n        /**\n         * Returns the items that match the query.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.WixBookingsQueryResult.html#items)\n         */\n        readonly items: any[];\n        /**\n         * Returns the number of items in the current results page.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.WixBookingsQueryResult.html#length)\n         */\n        readonly length: number;\n        /**\n         * Returns the query page size.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.WixBookingsQueryResult.html#pageSize)\n         */\n        readonly pageSize: number;\n        /**\n         * Returns the query used to get the current results.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.WixBookingsQueryResult.html#query)\n         */\n        readonly query: wix_bookings_backend.WixBookingsQueryBuilder;\n        /**\n         * Returns the total number of items that match the query.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.WixBookingsQueryResult.html#totalCount)\n         */\n        readonly totalCount: number;\n        /**\n         * Returns the total number of pages the query produced.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.WixBookingsQueryResult.html#totalPages)\n         */\n        readonly totalPages: number;\n        /**\n         * Indicates if the query has more results.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.WixBookingsQueryResult.html#hasNext)\n         */\n        hasNext(): boolean;\n        /**\n         * Indicates the query has previous results.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.WixBookingsQueryResult.html#hasPrev)\n         */\n        hasPrev(): boolean;\n        /**\n         * Retrieves the next page of query results.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.WixBookingsQueryResult.html#next)\n         */\n        next(): Promise<wix_bookings_backend.WixBookingsQueryResult>;\n        /**\n         * Retrieves the previous page of query results.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.WixBookingsQueryResult.html#prev)\n         */\n        prev(): Promise<wix_bookings_backend.WixBookingsQueryResult>;\n    }\n    /**\n     * Custom [address](https://www.wix.com/velo/reference/$w/addressinput/value), used when location_type is `\"OWNER_CUSTOM\"`.\n     */\n    type Address = {\n        /**\n         * String containing the full address of this location.\n         */\n        formatted: string;\n        /**\n         * Main address line, usually street and number, as free text.\n         */\n        addressLine1?: string;\n        /**\n         * Free text providing more detailed address info. Usually contains Apt, Suite, and Floor.\n         */\n        addressLine2: string;\n        /**\n         * Street name, number and apartment number.\n         */\n        streetAddress?: wix_bookings_backend.StreetAddress;\n        /**\n         * Coordinates of the physical address.\n         */\n        location: wix_bookings_backend.AddressLocation;\n        /**\n         * City name.\n         */\n        city: string;\n        /**\n         * Subdivision. Usually state, region, prefecture or province code, according to [ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-2).\n         */\n        subdivision: string;\n        /**\n         * Country code.\n         */\n        country: string;\n        /**\n         * Zip/postal code.\n         */\n        postalCode: string;\n    };\n    /**\n     * coordinates of the physical address.\n     */\n    type AddressCoordinates = {\n        /**\n         * Latitude.\n         */\n        latitude: number;\n        /**\n         * Longitude.\n         */\n        longitude: number;\n    };\n    /**\n     * Coordinates of the physical address.\n     */\n    type AddressLocation = {\n        /**\n         * Address latitude.\n         */\n        latitude: number;\n        /**\n         * Address longitude.\n         */\n        longitude: number;\n    };\n    /**\n     * Coordinates of the physical address.\n     */\n    type AddressLocationInfo = {\n        /**\n         * Address latitude.\n         */\n        latitude?: number;\n        /**\n         * Address longitude.\n         */\n        longitude?: number;\n    };\n    /**\n     * coordinates of the physical address.\n     */\n    type AddressLocation_5466057688 = {\n        /**\n         * Latitude.\n         */\n        latitude?: number;\n        /**\n         * Longitude.\n         */\n        longitude?: number;\n    };\n    /**\n     * Address.\n     */\n    type Address_30702269075 = {\n        /**\n         * country code.\n         */\n        country?: string;\n        /**\n         * subdivision (usually state or region) code according to ISO 3166-2.\n         */\n        subdivision?: string;\n        /**\n         * city name.\n         */\n        city?: string;\n        /**\n         * zip/postal code.\n         */\n        postalCode?: string;\n        /**\n         * A break down of the street to number and street name.\n         */\n        streetAddress?: wix_bookings_backend.StreetAddress_7212524817;\n        /**\n         * A string containing the human-readable address of this location.\n         */\n        formattedAddress?: string;\n        /**\n         * Free text for human-to-human textual orientation aid purposes.\n         */\n        hint?: string;\n        /**\n         * coordinates of the physical address.\n         */\n        geocode?: wix_bookings_backend.AddressLocation_5466057688;\n    };\n    /**\n     * Attendance information.\n     */\n    type Attendance = {\n        /**\n         * Whether the booked contact attended the session.\n         */\n        attendanceStatus: boolean;\n        /**\n         * Number of attendees that attended the session. This can be more than 1 if `formInfo.paymentSelection.numberOfParticipants` for the booking is greater than 1.\n         */\n        numberOfAttendees: number;\n    };\n    /**\n     * Attendance information.\n     */\n    type AttendanceInfo = {\n        /**\n         * Whether the booked contact attended the session.\n         */\n        attendanceStatus: boolean;\n        /**\n         * Number of attendees that attended the session. This can be greater than 1 when the booking is made for a group of people.\n         */\n        numberOfAttendees: number;\n    };\n    /**\n     * The final price, currency, down payment, and amount received.\n     */\n    type Balance = {\n        /**\n         * Required payment amount, currency, and any down payment required.\n         */\n        finalPrice: wix_bookings_backend.Price;\n        /**\n         * Current total amount paid.\n         */\n        amountReceived: string;\n    };\n    /**\n     * An object describing the entity that was booked.\n     */\n    type BookedEntity = {\n        /**\n         * Price options offered to book this session at the time of booking.\n         */\n        rate: wix_bookings_backend.Rate;\n        /**\n         * Location of the session.\n         */\n        location: wix_bookings_backend.Location;\n        /**\n         * List of tags for the booking.\n         */\n        tags: string[];\n        /**\n         * ID of the booked schedule.\n         */\n        scheduleId: string;\n        /**\n         * Session title at the time of booking.\n         */\n        title: string;\n        /**\n         * Start and end time of the booked sessions.\n         */\n        singleSession?: wix_bookings_backend.SingleSession;\n        /**\n         * First start and last end time of the booked sessions.\n         */\n        setOfSessions?: wix_bookings_backend.SetOfSessions;\n        /**\n         * ID of the booked service.\n         */\n        serviceId: string;\n        /**\n         * Online conference information.\n         */\n        onlineConference?: wix_bookings_backend.OnlineConference;\n    };\n    type BookedResource = {\n        /**\n         * Booked resource ID.\n         */\n        _id: string;\n        /**\n         * Resource's name at the time of booking.\n         */\n        name: string;\n        /**\n         * Resource's email at the time of booking.\n         */\n        email: string;\n    };\n    type Booking = {\n        /**\n         * Booking ID.\n         */\n        _id: string;\n        /**\n         * An object describing the entity that was booked.\n         */\n        bookedEntity: wix_bookings_backend.BookedEntity;\n        /**\n         * List of booked resources. Currently, only one is supported. The booked resource would be the staff-member giving the session.\n         */\n        bookedResources: wix_bookings_backend.BookedResource[];\n        /**\n         * Form information submitted when booking. FormInfo contains contact details, participants, and other form fields, set up for the service.\n         */\n        formInfo?: wix_bookings_backend.Form;\n        /**\n         * Payment Details.\n         */\n        paymentDetails?: wix_bookings_backend.PaymentDetails;\n        /**\n         * Booking status.\n         *\n         *  One of:\n         *  - `\"PENDING_CHECKOUT\"` The booking is waiting to be checked out.\n         *  - `\"CONFIRMED\"` The booking has beed approved by the owner.\n         *  - `\"CANCELED\"` The booking has been canceled.\n         *  - `\"PENDING\"` The booking has been created.\n         *  - `\"PENDING_APPROVAL\"` The booking is waiting for the owner to approve or decline.\n         *  - `\"DECLINED\"` The booking was declined by the owner.\n         *\n         */\n        status: string;\n        /**\n         * Attendance information.\n         */\n        attendanceInfo: wix_bookings_backend.AttendanceInfo;\n        /**\n         * An object describing the platform and application that made the booking.\n         */\n        bookingSource: wix_bookings_backend.BookingSource;\n        /**\n         * External ID provided by the client app on creation.\n         */\n        externalUserId?: string;\n        /**\n         * Date and time the booking was created.\n         */\n        _createdDate: Date;\n    };\n    /**\n     * An object describing the platform and application that made the booking.\n     */\n    type BookingSource = {\n        /**\n         * Platform from which a booking was created\n         *\n         *  One of:\n         *  - `\"WEB\"` Desktop browser.\n         *  - `\"MOBILE_APP\"` Mobile application.\n         *\n         */\n        platform: string;\n        /**\n         * Actor that created this booking.\n         *\n         * One of:\n         *  - `\"BUSINESS\"`\n         *  - `\"CUSTOMER\"`\n         *\n         */\n        actor: string;\n        /**\n         * Wix site ID of the application that created this booking.\n         */\n        appDefId: string;\n        /**\n         * Name of the application that created this booking, as saved in Wix-dev-center at the time of booking.\n         */\n        appName: string;\n    };\n    /**\n     * An object describing the business location.\n     */\n    type BusinessLocation = {\n        /**\n         * ID of the location.\n         */\n        _id: string;\n        /**\n         * Display name of the location.\n         */\n        name: string;\n        /**\n         * Free text describing the location.\n         */\n        description: string;\n        /**\n         * Status of the location. Default is `\"ACTIVE\"`.\n         * One of:\n         *  + `\"ACTIVE\"`\n         *  + `\"IN_ACTIVE\"`\n         */\n        status: string;\n        /**\n         * Type of the location.\n         * One of:\n         *  + `\"UNKNOWN\"`\n         *  + `\"BRANCH\"`\n         *  + `\"OFFICES\"`\n         *  + `\"RECEPTION\"`\n         *  + `\"HEADQUARTERS\"`\n         */\n        locationType: string;\n        /**\n         * Fax number.\n         */\n        fax: string;\n        /**\n         * Time zone.\n         */\n        timeZone: string;\n        /**\n         * Email address.\n         */\n        email: string;\n        /**\n         * Phone number.\n         */\n        phone: string;\n        /**\n         * Address.\n         */\n        address: wix_bookings_backend.Address;\n        /**\n         * Location revision, represents the number of changes to the location.\n         */\n        revision: string;\n        /**\n         * Whether the location is archived.\n         * Archived locations can't be updated.\n         */\n        archived: boolean;\n        /**\n         * Whether this is the default location.\n         * There can only be one default location per site. Changes to the default location are made on the **Site Properties** page of the dashboard.\n         * The default location can't be deleted.\n         */\n        default: boolean;\n    };\n    /**\n     * Represents the time periods that this location is open for business. Holds a collection of TimePeriod instances.\n     */\n    type BusinessSchedule = {\n        /**\n         * Times that this location is open. Each period represents a range of hours when the location is.\n         * open during the week. Limited to 100 time periods.\n         */\n        periods: wix_bookings_backend.TimePeriod[];\n        /**\n         * Exceptions to the business's regular hours.\n         */\n        specialHourPeriod: wix_bookings_backend.SpecialHourPeriod[];\n    };\n    /**\n     * Represents the time periods that this location is open for business. Holds a collection of TimePeriod instances.\n     */\n    type BusinessSchedule_46474402208 = {\n        /**\n         * Times that this location is open. Each period represents a range of hours when the location is\n         * open during the week. Limited to 100 time periods.\n         */\n        periods?: wix_bookings_backend.TimePeriod_38785543152[];\n        /**\n         * Exceptions to the business's regular hours.\n         */\n        specialHourPeriod?: wix_bookings_backend.SpecialHourPeriod_8149530360[];\n    };\n    /**\n     * An object specifying the start date and time of the session. If the session is a recurring session, `start` must contain a `localDateTime`.\n     */\n    type CalendarDateTime = {\n        /**\n         * UTC date-time in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601#Coordinated_Universal_Time_(UTC)) format. If a timezone offset is specified, the time is converted to UTC. For example, if you specify  `new Date('2021-01-06T16:00:00.000-07:00')`, the stored value will be `\"2021-01-06T23:00:00.000Z\"`.\n         * Required if `localDateTime` is not specified.\n         * If `localDateTime` is specified, `timestamp` is calculated as `localDateTime`, using the business's timezone.\n         */\n        timestamp: Date;\n        /**\n         * An object containing the local date and time for the business's timezone.\n         */\n        localDateTime: wix_bookings_backend.LocalDateTime;\n    };\n    /**\n     * An object specifying the start date and time of the session. If the session is a recurring session, `start` must contain a `localDateTime`.\n     */\n    type CalendarDateTimeInfo = {\n        /**\n         * UTC date-time in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601#Coordinated_Universal_Time_(UTC)) format. If a timezone offset is specified, the time is converted to UTC. For example, if you specify  `new Date('2021-01-06T16:00:00.000-07:00')`, the stored value will be `\"2021-01-06T23:00:00.000Z\"`.\n         * Required if `localDateTime` is not specified.\n         * If `localDateTime` is specified, `timestamp` is calculated as `localDateTime`, using the business's timezone.\n         */\n        timestamp?: Date;\n        /**\n         * An object containing the local date and time for the business's timezone.\n         */\n        localDateTime?: wix_bookings_backend.LocalDateTimeInfo;\n    };\n    /**\n     * Contact details of the customer making the booking.\n     */\n    type ContactDetails = {\n        /**\n         * Contact's ID.\n         */\n        contactId: string;\n        /**\n         * Contact's first name. When populated from a standard booking form, this property corresponds to the **Name** field.\n         */\n        firstName: string;\n        /**\n         * Contact's last name.\n         */\n        lastName: string;\n        /**\n         * Contact's email, used to create a new contact or get existing one from teh [CRM API](wix-crm/introduction).\n         */\n        email: string;\n        /**\n         * Contact's phone number.\n         */\n        phone: string;\n        /**\n         * Contact's time zone.\n         */\n        timeZone: string;\n        /**\n         * Contact's country in [ISO 3166-1 alpha-2 code](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) format.\n         */\n        countryCode: string;\n        /**\n         * Custom [address](https://www.wix.com/velo/reference/$w/addressinput/value), used when location_type is `\"OWNER_CUSTOM\"`.\n         */\n        address: wix_bookings_backend.Address;\n    };\n    /**\n     * The contact details of the customer making the booking.\n     */\n    type ContactDetailsInfo = {\n        /**\n         * Contact's ID.\n         */\n        contactId?: string;\n        /**\n         * Contact's first name.\n         */\n        firstName?: string;\n        /**\n         * Contact's last name.\n         */\n        lastName?: string;\n        /**\n         * Contact's email, used to create a new contact or get an existing one from the [CRM API](wix-crm/introduction).\n         */\n        email?: string;\n        /**\n         * Contact's phone number.\n         */\n        phone?: string;\n        /**\n         * Contact's full [address](https://www.wix.com/corvid/reference/$w/addressinput/value).\n         */\n        address?: wix_bookings_backend.Bookings.AddressInfo;\n        /**\n         * Contact's time zone.\n         */\n        timeZone?: string;\n        /**\n         * Contact's country in [ISO 3166-1 alpha-2 code](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) format.\n         */\n        countryCode?: string;\n    };\n    /**\n     * Coupon details, if a coupon was used to pay for the booking.\n     */\n    type CouponDetails = {\n        /**\n         * Coupon name.\n         */\n        couponName: string;\n        /**\n         * Coupon code.\n         */\n        couponCode: string;\n        /**\n         * Coupon discount amount.\n         */\n        couponDiscount: string;\n        /**\n         * Coupon ID.\n         */\n        couponId: string;\n    };\n    type CustomFormField = {\n        /**\n         * ID of the form field as defined in the form.\n         */\n        _id: string;\n        /**\n         * Value that was submitted for this field.\n         */\n        value: string;\n        /**\n         * Form field's label at the time of submission.\n         */\n        label: string;\n        /**\n         *\n         * One of:\n         *  - `\"SHORT_TEXT\"`\n         *  - `\"LONG_TEXT\"`\n         *  - `\"CHECK_BOX\"`\n         *\n         */\n        valueType: string;\n    };\n    type CustomFormFieldInfo = {\n        /**\n         * ID of the form field as defined in the form.\n         */\n        _id?: string;\n        /**\n         * Value that was submitted for this field.\n         */\n        value?: string;\n        /**\n         *\n         * One of:\n         *  - `\"SHORT_TEXT\"`\n         *  - `\"LONG_TEXT\"`\n         *  - `\"CHECK_BOX\"`\n         *\n         */\n        valueType?: string;\n    };\n    /**\n     * Form information submitted when booking. FormInfo contains contact details, participants, and other form fields, set up for the service.\n     */\n    type Form = {\n        /**\n         * Contact details of the customer making the booking.\n         */\n        contactDetails?: wix_bookings_backend.ContactDetails;\n        /**\n         * List of rates and the number of participants for each rate.\n         */\n        paymentSelection: wix_bookings_backend.PaymentSelection[];\n        /**\n         * Additional custom fields submitted with the form.\n         */\n        additionalFields?: wix_bookings_backend.CustomFormField[];\n    };\n    /**\n     * Updated form info and contact details.\n     */\n    type FormInfo = {\n        /**\n         * Contact details of the user making the booking.\n         */\n        contactDetails?: wix_bookings_backend.ContactDetailsInfo;\n        /**\n         * A list of rates and the number of participants for each rate.\n         */\n        paymentSelection: wix_bookings_backend.PaymentSelectionInfo[];\n        /**\n         * Additional custom fields submitted with the form.\n         */\n        additionalFields?: wix_bookings_backend.CustomFormFieldInfo[];\n    };\n    type FormInfo_CustomFormField = {\n        /**\n         * ID of the form field as defined in the form.\n         */\n        _id?: string;\n        /**\n         * Value that was submitted for this field.\n         */\n        value?: string;\n        /**\n         * One of:\n         *  + `\"SHORT_TEXT\"`\n         *  + `\"LONG_TEXT\"`\n         *  + `\"CHECK_BOX\"`\n         */\n        valueType?: string;\n    };\n    type Form_CustomFormField = {\n        /**\n         * ID of the form field as defined in the form.\n         */\n        _id: string;\n        /**\n         * Value that was submitted for this field.\n         */\n        value: string;\n        /**\n         * Form field's label at the time of submission.\n         */\n        label: string;\n        /**\n         * One of:\n         *  + `\"SHORT_TEXT\"`\n         *  + `\"LONG_TEXT\"`\n         *  + `\"CHECK_BOX\"`\n         */\n        valueType: string;\n    };\n    type IsAvailableResult_6686246600 = {\n        /**\n         * Whether the requested entity is available for booking for the specified party size.\n         */\n        available: boolean;\n        /**\n         * Number of spots available to be booked, not including the number of participants in the availability request.\n         */\n        capacity: number;\n        /**\n         * Current number of booked participants.\n         */\n        totalParticipants: number;\n    };\n    type LinkedResourceScheduleInfo = {\n        /**\n         * Schedule ID.\n         */\n        scheduleId?: string;\n    };\n    /**\n     * An object containing the local date and time for the business's timezone.\n     */\n    type LocalDateTime = {\n        /**\n         * Year. 4-digit format.\n         */\n        year: number;\n        /**\n         * Month number, from 1-12.\n         */\n        monthOfYear: number;\n        /**\n         * Day of the month, from 1-31.\n         */\n        dayOfMonth: number;\n        /**\n         * Hour of the day in 24-hour format, from 0-23.\n         */\n        hourOfDay: number;\n        /**\n         * Minute, from 0-59.\n         */\n        minutesOfHour: number;\n    };\n    /**\n     * An object containing the local date and time for the business's timezone.\n     */\n    type LocalDateTimeInfo = {\n        /**\n         * Year. 4-digit format.\n         */\n        year?: number;\n        /**\n         * Month number, from 1-12.\n         */\n        monthOfYear?: number;\n        /**\n         * Day of the month, from 1-31.\n         */\n        dayOfMonth?: number;\n        /**\n         * Hour of the day in 24-hour format, from 0-23.\n         */\n        hourOfDay?: number;\n        /**\n         * Minute, from 0-59.\n         */\n        minutesOfHour?: number;\n    };\n    /**\n     * The location of the session.\n     */\n    type Location = {\n        /**\n         * Location type.\n         *\n         *  One of:\n         *  - `\"OWNER_BUSINESS\"` The business address as set in the site’s general settings.\n         *  - `\"OWNER_CUSTOM\"` The address as set when creating the service.\n         *  - `\"CUSTOM\"` The address set for the individual session.\n         *\n         */\n        locationType: string;\n        /**\n         * An object describing the business location.\n         * Valid when `locationType` is `\"OWNER_BUSINESS\"`. Defaults to the business's default location.\n         */\n        businessLocation: wix_bookings_backend.BusinessLocation;\n        /**\n         * Custom [address](https://www.wix.com/velo/reference/$w/addressinput/value), used when location_type is `\"OWNER_CUSTOM\"`.\n         */\n        customAddress: wix_bookings_backend.Address;\n    };\n    /**\n     * Geographic location of the session as free-form text. Optional.\n     */\n    type Location_103381755471 = {\n        /**\n         * Location type.\n         * One of:\n         *  + `\"OWNER_BUSINESS\"` The business address as set by the owner in the site’s general settings.\n         *  + `\"OWNER_CUSTOM\"` The address as set by owner when creating the service.\n         *  + `\"CUSTOM\"` The address as set for the individual session.\n         */\n        locationType?: string;\n        /**\n         * Free text address used when location_type is `OWNER_CUSTOM`.\n         */\n        address?: string;\n        /**\n         * Currently not supported.\n         *  Valid when locationType is `\"OWNER_BUSINESS\"` and defaults to the default business location.\n         *  When used, businessLocation._id is required.\n         *  Supported read only fields: name, description, timezone, email, phone, address.\n         */\n        businessLocation?: wix_bookings_backend.Location_99881894064;\n    };\n    /**\n     * Not supported yet.\n     */\n    type Location_99881894064 = {\n        /**\n         * Display name of the location.\n         */\n        name?: string;\n        /**\n         * Free text to better describe the location.\n         */\n        description?: string;\n        /**\n         * Status of the location. Active by default.\n         * One of:\n         *  + `\"ACTIVE\"`\n         *  + `\"IN_ACTIVE\"`\n         */\n        status?: string;\n        /**\n         * Type of the location.\n         * One of:\n         *  + `\"UNKNOWN\"`\n         *  + `\"BRANCH\"`\n         *  + `\"OFFICES\"`\n         *  + `\"RECEPTION\"`\n         *  + `\"HEADQUARTERS\"`\n         */\n        locationType?: string;\n        /**\n         * Fax number.\n         */\n        fax?: string;\n        /**\n         * Time zone.\n         */\n        timeZone?: string;\n        /**\n         * Email address.\n         */\n        email?: string;\n        /**\n         * Phone number.\n         */\n        phone?: string;\n        /**\n         * Address.\n         */\n        address?: wix_bookings_backend.Address_30702269075;\n        /**\n         * Represents the time periods that this location is open for business. Holds a collection of TimePeriod instances.\n         * TimePeriod indicates when the location is open. Each period represents a range of hours when the location is open during the week. Limited to 100 time periods.\n         */\n        businessSchedule?: wix_bookings_backend.BusinessSchedule_46474402208;\n        /**\n         * Location revision, represent the number of changes on the location.\n         */\n        revision?: string;\n    };\n    /**\n     * Online conference information.\n     */\n    type OnlineConference = {\n        /**\n         * Participant url.\n         */\n        guestUrl: string;\n        /**\n         * Online conference provider identifier.\n         */\n        providerId: string;\n        /**\n         * Online conference password.\n         */\n        password: string;\n        /**\n         * Online conference description.\n         */\n        description: string;\n    };\n    /**\n     * Authorization options.\n     */\n    type Options = {\n        /**\n         * When `true`, prevents permission checks from running for the operation. Defaults to `false`.\n         */\n        suppressAuth?: boolean;\n    };\n    /**\n     * Plan details.\n     */\n    type PaidPlan = {\n        /**\n         * Order ID when the Pricing Plan was purchased.\n         */\n        orderId: string;\n        /**\n         * Benefit ID.\n         */\n        benefitId: string;\n        /**\n         * ID of the pricing plan.\n         */\n        planId: string;\n    };\n    /**\n     * Pricing plan details, if a pricing plan was used to pay for the booking.\n     */\n    type PaidPlanDetails = {\n        /**\n         * Plan details.\n         */\n        plan: wix_bookings_backend.PaidPlan;\n        /**\n         * Plan name.\n         */\n        planName: string;\n        /**\n         * Transaction ID created in the Pricing Plans service when the member redeemed a benefit to pay for this booking.\n         */\n        transactionId: string;\n    };\n    /**\n     * Describes the selected paid plan to use for this booking.\n     */\n    type PaidPlan_11584964510 = {\n        /**\n         * Order ID when the Pricing Plan was purchased.\n         */\n        orderId?: string;\n        /**\n         * Benefit ID.\n         */\n        benefitId?: string;\n        /**\n         * ID of the pricing plan.\n         */\n        planId?: string;\n    };\n    /**\n     * Whether to notify the participants about the booking confirmation, and an optional custom message.\n     */\n    type ParticipantNotificationInfo = {\n        /**\n         * Whether to notify participants about the change.\n         */\n        notifyParticipants?: boolean;\n        /**\n         * Custom message to send to the participants.\n         */\n        message?: string;\n    };\n    /**\n     * Payment Details.\n     */\n    type PaymentDetails = {\n        /**\n         * Checkout ID.\n         */\n        _id: string;\n        /**\n         * Final price, currency, down payment, and amount received.\n         */\n        balance: wix_bookings_backend.Balance;\n        /**\n         * Coupon details, if a coupon was used to pay for the booking.\n         */\n        couponDetails: wix_bookings_backend.CouponDetails;\n        /**\n         * Checkout current state.\n         *\n         *  One of:\n         *  - `\"COMPLETE\"` Amount paid in full.\n         *  - `\"PENDING_CASHIER\"` An online payment is in progress and awaiting a response.\n         *  - `\"REJECTED\"` The checkout request was rejected by the online payment process.\n         *  - `\"READY\"` All online checkout requirements were met. For example, when the service uses pay in person, or a partial or down payment was paid online.\n         *  - `\"CANCELED\"`  Checkout canceled.\n         *  - `\"REFUNDED\"` When using Pricing Plans, if the booking was canceled, it will be automatically refunded.\n         *  - `\"PENDING_MERCHANT\"` An online payment was made, but the owner has not set up the necessary details.\n         *  - `\"WIX_PAY_FAILURE\"` Online payment failure.\n         *  - `\"PENDING_MARK_AS_PAID\"` Offline transaction. The transaction will be complete when explicitly marked as paid.\n         *  - `\"PENDING_BUYER\"`  The transaction started, but is waiting for confirmation on the buyer's side. This can be due to credit or fraud checking on the provider's side, a long bank transfer, or similar processes.\n         *\n         */\n        state: string;\n        /**\n         * In case of wix-pay service, holds all payment history for a booking.\n         */\n        wixPayMultipleDetails: wix_bookings_backend.WixPayDetails[];\n        /**\n         * Pricing plan details, if a pricing plan was used to pay for the booking.\n         */\n        pricingPlanDetails: wix_bookings_backend.PaidPlanDetails;\n    };\n    type PaymentSelection = {\n        /**\n         * Label corresponding to the booking rate. Default is free/custom.\n         */\n        rateLabel: string;\n        /**\n         * Number of participants for this rate.\n         */\n        numberOfParticipants: number;\n    };\n    type PaymentSelectionInfo = {\n        /**\n         * Label corresponding to the booking rate. Default is free/custom.\n         */\n        rateLabel?: string;\n        /**\n         * Number of participants for this rate.\n         */\n        numberOfParticipants?: number;\n    };\n    /**\n     * `key` of type string, `value` of type object\n     */\n    type Price = {\n        /**\n         * Required payment amount.\n         */\n        amount: string;\n        /**\n         * Currency in which the amount is quoted.\n         */\n        currency: string;\n        /**\n         * Amount of a down payment or deposit as part of the transaction.\n         */\n        downPayAmount: string;\n    };\n    /**\n     * `key` of type string, `value` of type object.\n     */\n    type Price_7237915081 = {\n        /**\n         * Required payment amount.\n         */\n        amount?: string;\n        /**\n         * Currency in which the amount is quoted.\n         */\n        currency?: string;\n        /**\n         * Amount of a down payment or deposit as part of the transaction.\n         */\n        downPayAmount?: string;\n    };\n    /**\n     * Plan details.\n     */\n    type PricingPlan = {\n        /**\n         * Order ID when the Pricing Plan was purchased.\n         */\n        orderId: string;\n        /**\n         * Benefit ID.\n         */\n        benefitId: string;\n        /**\n         * ID of the pricing plan.\n         */\n        planId: string;\n    };\n    /**\n     * Pricing plan details, if a pricing plan was used to pay for the booking.\n     */\n    type PricingPlanDetails = {\n        /**\n         * Plan details.\n         */\n        plan: wix_bookings_backend.PricingPlan;\n        /**\n         * Plan name.\n         */\n        planName: string;\n        /**\n         * Transaction ID created in the Pricing Plans service when the member redeemed a benefit to pay for this booking.\n         */\n        transactionId: string;\n    };\n    /**\n     * Price options offered to book this session at the time of booking.\n     */\n    type Rate = {\n        /**\n         * Set of key-value pairs.Mapping between a named price option, for example, adult or child prices, and the price, currency, and down payment amount.\n         */\n        labeledPriceOptions: any;\n        /**\n         * Textual price information used when **Price Per Session** is set to **Custom Price** in the app's service details page.\n         */\n        priceText: string;\n    };\n    /**\n     * The price options offered to participate this session. Optional. The default value is the schedule rate.\n     */\n    type Rate_13652876269 = {\n        /**\n         * Set of key-value pairs.Mapping between a named price option and the price, currency and down payment amount.\n         */\n        labeledPriceOptions?: any;\n        /**\n         * Textual price information used when Price Per Session is set to Custom Price in the app's service details page.\n         */\n        priceText?: string;\n    };\n    type RescheduleRequest_6918542709 = {\n        /**\n         * Whether to notify the participants about the booking confirmation, and an optional custom message.\n         */\n        participantNotification?: wix_bookings_backend.ParticipantNotificationInfo;\n        /**\n         * Sets the reschedule flow behavior, some behaviors required permissions.\n         */\n        ignoreReschedulePolicy?: wix_bookings_backend.RescheduleRequest_FlowControlSettings_1362659582;\n    };\n    /**\n     * Sets the reschedule flow behavior, some behaviors required permissions.\n     */\n    type RescheduleRequest_FlowControlSettings_1362659582 = {\n        /**\n         * when defined as true, skips the service defined reschedule policy.\n         *  required BOOKINGS.IGNORE_BOOKING_POLICY permission.\n         */\n        ignoreReschedulePolicy?: boolean;\n    };\n    /**\n     * Resource details.\n     */\n    type Resource = {\n        /**\n         * Resource ID.\n         */\n        _id: string;\n        /**\n         * Resource name.\n         */\n        name: string;\n        /**\n         * Resource email address.\n         */\n        email?: string;\n        /**\n         * Resource phone number.\n         */\n        phone?: string;\n        /**\n         * Resource description.\n         */\n        description?: string;\n        /**\n         * Resource tags. Tags are used to identify, group, and filter the different types of resources. For example, 'staff' or 'room'.\n         */\n        tags?: string[];\n        /**\n         * List of IDs of schedules owned by this resource.\n         */\n        scheduleIds: string[];\n        /**\n         * Resource status.\n         *\n         *  One of:\n         *  - `\"CREATED\"` Default status.\n         *  - `\"DELETED\"` The resource was deleted.\n         *  - `\"UPDATED\"` The resource was updated.\n         *\n         */\n        status: string;\n    };\n    /**\n     * First start and last end time of the booked sessions.\n     */\n    type SetOfSessions = {\n        /**\n         * Start time of the first session.\n         */\n        firstSessionStart: Date;\n        /**\n         * End time of the last session.\n         */\n        lastSessionEnd: Date;\n    };\n    /**\n     * Start and end time of the booked sessions.\n     */\n    type SingleSession = {\n        sessionId: string;\n        /**\n         * Start time of the session.\n         */\n        start: Date;\n        /**\n         * End time of the session.\n         */\n        end: Date;\n    };\n    /**\n     * Set of time periods when a location's operational hours differ from its normal business hours.\n     */\n    type SpecialHourPeriod = {\n        /**\n         * Date and Time in 24hr [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) Coordinated universal time (UTC).\n         */\n        startDate: string;\n        /**\n         * Date and Time in 24hr [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) Coordinated universal time (UTC).\n         */\n        endDate: string;\n        /**\n         * Whether the business is closed during this period.\n         */\n        isClosed: boolean;\n        /**\n         * Comment.\n         */\n        comment: string;\n    };\n    /**\n     * Set of time periods when a location's operational hours differ from its normal business hours.\n     */\n    type SpecialHourPeriod_8149530360 = {\n        /**\n         * Date and Time in 24hr iso-8601 Coordinated universal time (UTC).\n         */\n        startDate?: string;\n        /**\n         * Date and Time in 24hr iso-8601 Coordinated universal time (UTC).\n         */\n        endDate?: string;\n        /**\n         * Whether the business is closed during this period.\n         */\n        isClosed?: boolean;\n        /**\n         * Comment text.\n         */\n        comment?: string;\n    };\n    /**\n     * Street name, number and apartment number.\n     */\n    type StreetAddress = {\n        /**\n         * Street number.\n         */\n        number: string;\n        /**\n         * Street name.\n         */\n        name: string;\n        /**\n         * Apartment number.\n         */\n        apt: string;\n    };\n    /**\n     * Street name, number and apartment number.\n     */\n    type StreetAddressInfo = {\n        /**\n         * Street number.\n         */\n        number?: string;\n        /**\n         * Street name.\n         */\n        name?: string;\n        /**\n         * Apartment number.\n         */\n        apt?: string;\n    };\n    /**\n     * A break down of the street to number and street name.\n     */\n    type StreetAddress_7212524817 = {\n        /**\n         * street number.\n         */\n        number?: string;\n        /**\n         * street name.\n         */\n        name?: string;\n        /**\n         * apartment number.\n         */\n        apt?: string;\n    };\n    /**\n     * Street name, number and apartment number.\n     */\n    type StreetContactAddress_NOT = {\n        /**\n         * Street number.\n         */\n        number: string;\n        /**\n         * Street name.\n         */\n        name: string;\n        /**\n         * Apartment number.\n         */\n        apt: string;\n    };\n    type Subdivision = {\n        /**\n         * Subdivision code. Usually state, region, prefecture or province code, according to [ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-2).\n         */\n        code: string;\n        /**\n         * Subdivision full name.\n         */\n        name: string;\n    };\n    /**\n     * A span of time that the business is open.\n     */\n    type TimePeriod = {\n        /**\n         * Day of the week this period starts on.\n         * One of:\n         *  + `\"MONDAY\"`\n         *  + `\"TUESDAY\"`\n         *  + `\"WEDNESDAY\"`\n         *  + `\"THURSDAY\"`\n         *  + `\"FRIDAY\"`\n         *  + `\"SATURDAY\"`\n         *  + `\"SUNDAY\"`\n         */\n        openDay: string;\n        /**\n         * Time in 24hr [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) extended format (hh:mm). Valid values are 00:00-24:00, where 24:00 represents\n         * midnight at the end of the specified day field.\n         */\n        openTime: string;\n        /**\n         * Day of the week this period ends on.\n         * One of:\n         *  + `\"MONDAY\"`\n         *  + `\"TUESDAY\"`\n         *  + `\"WEDNESDAY\"`\n         *  + `\"THURSDAY\"`\n         *  + `\"FRIDAY\"`\n         *  + `\"SATURDAY\"`\n         *  + `\"SUNDAY\"`\n         */\n        closeDay: string;\n        /**\n         * Time in 24hr [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) extended format (hh:mm). Valid values are 00:00-24:00, where 24:00 represents\n         * midnight at the end of the specified day field.\n         */\n        closeTime: string;\n    };\n    /**\n     * A span of time that the business is open.\n     */\n    type TimePeriod_38785543152 = {\n        /**\n         * Day of the week this period starts on.\n         * One of:\n         *  + `\"MONDAY\"`\n         *  + `\"TUESDAY\"`\n         *  + `\"WEDNESDAY\"`\n         *  + `\"THURSDAY\"`\n         *  + `\"FRIDAY\"`\n         *  + `\"SATURDAY\"`\n         *  + `\"SUNDAY\"`\n         */\n        openDay?: string;\n        /**\n         * Time in 24hr [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) extended format (hh:mm). Valid values are 00:00-24:00, where 24:00 represents\n         * midnight at the end of the specified day field.\n         */\n        openTime?: string;\n        /**\n         * Day of the week this period ends on.\n         * One of:\n         *  + `\"MONDAY\"`\n         *  + `\"TUESDAY\"`\n         *  + `\"WEDNESDAY\"`\n         *  + `\"THURSDAY\"`\n         *  + `\"FRIDAY\"`\n         *  + `\"SATURDAY\"`\n         *  + `\"SUNDAY\"`\n         */\n        closeDay?: string;\n        /**\n         * Time in 24hr [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) extended format (hh:mm). Valid values are 00:00-24:00, where 24:00 represents\n         * midnight at the end of the specified day field.\n         */\n        closeTime?: string;\n    };\n    type WixPayDetails = {\n        /**\n         * Wix Pay payment transaction ID.\n         */\n        txId: string;\n        /**\n         * Wix Pay payment order ID.\n         */\n        orderId: string;\n        /**\n         * Order amount sent to the Wix Pay system.\n         */\n        orderAmount: string;\n        /**\n         * Transaction status\n         *\n         *  One of:\n         *  - `\"CREATED\"`  The transaction has been started.\n         *  - `\"PENDING_MERCHANT\"` An online payment was made, but the owner has not set up the necessary details.\n         *  - `\"COMPLETE\"`  The current part of the payment was completed.\n         *  - `\"FAILED\"`  The Wix online payment system is unavailable or failed processing.\n         *  - `\"DECLINED\"` The payment was declined.\n         *  - `\"PENDING_MARK_AS_PAID\"` Offline transaction. The transaction will be complete when explicitly marked as paid.\n         *  - `\"CANCELED\"` The transaction was canceled.\n         *\n         */\n        orderStatus: string;\n        /**\n         * Date and time that the order was approved.\n         */\n        orderApprovalTime: Date;\n        /**\n         * Payment vendor name. The company processing the payment, such as Pay Pal or a credit card company. `inPerson` is used for cash payments.\n         */\n        paymentVendorName: string;\n    };\n}\ndeclare namespace wix_bookings_backend.Resources {\n    /**\n     * Contains functionality for refining a resource catalog query.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.Resources.ResourceCatalogQueryBuilder.html#)\n     */\n    interface ResourceCatalogQueryBuilder {\n        /**\n         * Refines a query to match items whose specified property value equals the specified value.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.Resources.ResourceCatalogQueryBuilder.html#eq)\n         */\n        eq(propertyName: string, value: string): wix_bookings_backend.Resources.ResourceCatalogQueryBuilder;\n        /**\n         * Returns the resource catalog items that match the query.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.Resources.ResourceCatalogQueryBuilder.html#find)\n         */\n        find(options?: wix_bookings_backend.Resources.ResourceCatalogQueryBuilder.QueryOptions): Promise<wix_bookings_backend.Resources.ResourceCatalogQueryResult>;\n        /**\n         * Refines a query to match items whose specified property contains any of the specified `value` parameters.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.Resources.ResourceCatalogQueryBuilder.html#hasSome)\n         */\n        hasSome(propertyName: string, value: string[]): wix_bookings_backend.Resources.ResourceCatalogQueryBuilder;\n        /**\n         * Limits the number of items the query returns.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.Resources.ResourceCatalogQueryBuilder.html#limit)\n         */\n        limit(limit: number): wix_bookings_backend.Resources.ResourceCatalogQueryBuilder;\n        /**\n         * Sets the number of items to skip before returning query results.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.Resources.ResourceCatalogQueryBuilder.html#skip)\n         */\n        skip(skip: number): wix_bookings_backend.Resources.ResourceCatalogQueryBuilder;\n    }\n    namespace ResourceCatalogQueryBuilder {\n        /**\n         * Options to use when performing a query.\n         */\n        type QueryOptions = {\n            /**\n             * When `true`, prevents permission checks from running for the operation. Defaults to `false`.\n             */\n            suppressAuth?: boolean;\n        };\n    }\n    /**\n     * The results of a resource catalog query, containing the retrieved items.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.Resources.ResourceCatalogQueryResult.html#)\n     */\n    interface ResourceCatalogQueryResult {\n        /**\n         * Returns the index of the current results page number.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.Resources.ResourceCatalogQueryResult.html#currentPage)\n         */\n        readonly currentPage: number;\n        /**\n         * Returns an array of resources, slugs, and schedules that match the query.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.Resources.ResourceCatalogQueryResult.html#items)\n         */\n        readonly items: wix_bookings_backend.Resources.ResourceQueryResults[];\n        /**\n         * Returns the number of items in the current results page.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.Resources.ResourceCatalogQueryResult.html#length)\n         */\n        readonly length: number;\n        /**\n         * Returns the query page size.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.Resources.ResourceCatalogQueryResult.html#pageSize)\n         */\n        readonly pageSize: number;\n        /**\n         * Returns the ResourceCatalogQueryBuilder object used to get the current results.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.Resources.ResourceCatalogQueryResult.html#query)\n         */\n        readonly query: wix_bookings_backend.Resources.ResourceCatalogQueryBuilder;\n        /**\n         * Returns the total number of items that match the query.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.Resources.ResourceCatalogQueryResult.html#totalCount)\n         */\n        readonly totalCount: number;\n        /**\n         * Returns the total number of pages the query produced.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.Resources.ResourceCatalogQueryResult.html#totalPages)\n         */\n        readonly totalPages: number;\n        /**\n         * Indicates if the query has more results.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.Resources.ResourceCatalogQueryResult.html#hasNext)\n         */\n        hasNext(): boolean;\n        /**\n         * Indicates the query has previous results.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.Resources.ResourceCatalogQueryResult.html#hasPrev)\n         */\n        hasPrev(): boolean;\n        /**\n         * Retrieves the next page of query results.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.Resources.ResourceCatalogQueryResult.html#next)\n         */\n        next(): Promise<wix_bookings_backend.Resources.ResourceCatalogQueryResult>;\n        /**\n         * Retrieves the previous page of query results.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.Resources.ResourceCatalogQueryResult.html#prev)\n         */\n        prev(): Promise<wix_bookings_backend.Resources.ResourceCatalogQueryResult>;\n    }\n}\ndeclare namespace wix_bookings_backend.Sessions {\n    /**\n     * Contains functionality for refining a session query.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.Sessions.SessionQueryBuilder.html#)\n     */\n    interface SessionQueryBuilder {\n        /**\n         * Refines a query to match items whose specified property value equals the specified value.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.Sessions.SessionQueryBuilder.html#eq)\n         */\n        eq(propertyName: string, value: any): wix_bookings_backend.Sessions.SessionQueryBuilder;\n        /**\n         * Returns the bookings that match the query.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.Sessions.SessionQueryBuilder.html#find)\n         */\n        find(options?: wix_bookings_backend.Sessions.SessionQueryBuilder.QueryOptions): Promise<wix_bookings_backend.Sessions.SessionQueryResult>;\n        /**\n         * Refines a query to match items whose specified property value is greater than or equal to the specified value.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.Sessions.SessionQueryBuilder.html#ge)\n         */\n        ge(propertyName: string, value: Date): wix_bookings_backend.Sessions.SessionQueryBuilder;\n        /**\n         * Refines a query to match items whose specified property contains any of the specified `value` parameters.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.Sessions.SessionQueryBuilder.html#hasSome)\n         */\n        hasSome(propertyName: string, value: string[]): wix_bookings_backend.Sessions.SessionQueryBuilder;\n        /**\n         * Limits the number of items the query returns.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.Sessions.SessionQueryBuilder.html#limit)\n         */\n        limit(limit: number): wix_bookings_backend.Sessions.SessionQueryBuilder;\n        /**\n         * Refines a query to match items whose specified property value is less than the specified value.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.Sessions.SessionQueryBuilder.html#lt)\n         */\n        lt(propertyName: string, value: Date): wix_bookings_backend.Sessions.SessionQueryBuilder;\n        /**\n         * Refines a query to match items whose specified property value does not equal the specified value.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.Sessions.SessionQueryBuilder.html#ne)\n         */\n        ne(propertyName: string, value: any): wix_bookings_backend.Sessions.SessionQueryBuilder;\n        /**\n         * Sets the number of items to skip before returning query results.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.Sessions.SessionQueryBuilder.html#skip)\n         */\n        skip(skip: number): wix_bookings_backend.Sessions.SessionQueryBuilder;\n    }\n    namespace SessionQueryBuilder {\n        /**\n         * Options to use when performing a query.\n         */\n        type QueryOptions = {\n            /**\n             * When `true`, prevents permission checks from running for the `find()` operation. Defaults to `false`.\n             */\n            suppressAuth?: boolean;\n        };\n    }\n    /**\n     * The results of a session query, containing the retrieved items.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.Sessions.SessionQueryResult.html#)\n     */\n    interface SessionQueryResult {\n        /**\n         * Returns the index of the current results page number.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.Sessions.SessionQueryResult.html#currentPage)\n         */\n        readonly currentPage: number;\n        /**\n         * Returns an array of sessions that match the query.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.Sessions.SessionQueryResult.html#items)\n         */\n        readonly items: wix_bookings_backend.Sessions.Session[];\n        /**\n         * Returns the query page size.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.Sessions.SessionQueryResult.html#pageSize)\n         */\n        readonly pageSize: number;\n        /**\n         * Returns the `SessionQueryBuilder` object used to get the current results.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.Sessions.SessionQueryResult.html#query)\n         */\n        readonly query: wix_bookings_backend.Sessions.SessionQueryBuilder;\n        /**\n         * Returns the total number of items that match the query.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.Sessions.SessionQueryResult.html#totalCount)\n         */\n        readonly totalCount: number;\n        /**\n         * Returns the total number of pages the query produced.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.Sessions.SessionQueryResult.html#totalPages)\n         */\n        readonly totalPages: number;\n        /**\n         * Indicates if the query has more results.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.Sessions.SessionQueryResult.html#hasNext)\n         */\n        hasNext(): boolean;\n        /**\n         * Indicates the query has previous results.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.Sessions.SessionQueryResult.html#hasPrev)\n         */\n        hasPrev(): boolean;\n        /**\n         * Retrieves the next page of query results.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.Sessions.SessionQueryResult.html#next)\n         */\n        next(): Promise<wix_bookings_backend.Sessions.SessionQueryResult>;\n        /**\n         * Retrieves the previous page of query results.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-bookings-backend.Sessions.SessionQueryResult.html#prev)\n         */\n        prev(): Promise<wix_bookings_backend.Sessions.SessionQueryResult>;\n    }\n}\ndeclare namespace wix_captcha_backend {\n    /**\n     * An object representing a CAPTCHA authorization error message.\n     */\n    type ErrorReport = {\n        /**\n         * Error message.\n         */\n        error: string;\n    };\n    /**\n     * An object representing a CAPTCHA authorization success message.\n     */\n    type SuccessReport = {\n        /**\n         * Value is `true` when authorization is successful.\n         */\n        success: boolean;\n    };\n}\ndeclare namespace wix_chat_backend {\n    /**\n     * Events that are fired by actions relating to chat messages.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-chat-backend.Events.html#)\n     */\n    interface Events {\n        /**\n         * An event that fires when a chat message is sent to or from the business.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-chat-backend.Events.html#onMessage)\n         */\n        onMessage(event: wix_chat_backend.Events.SendMessageEvent): void;\n    }\n    namespace Events {\n        /**\n         * The content of a chat message.\n         */\n        type MessagePayload = {\n            /**\n             * Text of the chat message.\n             */\n            text: string;\n        };\n        /**\n         * An object representing a chat message that was sent.\n         */\n        type SendMessageEvent = {\n            /**\n             * ID of the channel on which the message was sent.\n             */\n            channelId: string;\n            /**\n             * Direction of the message.\n             * One of the following:\n             *\n             *  + `\"VisitorToBusiness\"`: From a site visitor to the business.\n             *  + `\"BusinessToVisitor\"`: From the business to a site visitor.\n             */\n            direction: string;\n            /**\n             * Type of message. Currently only `TEXT` is supported.\n             */\n            type: string;\n            /**\n             * First 250 characters of the chat message. Currently only text is included in the summary.\n             */\n            summary: string;\n            /**\n             * The sender's member ID. For a message sent from the site's business, the site owner's member ID.\n             */\n            participantId: string;\n            /**\n             * Date and time the message was sent.\n             */\n            createdAt: Date;\n            /**\n             * Content of the message.\n             * Currently only content of type text is included in the `payload`.\n             */\n            payload: wix_chat_backend.Events.MessagePayload;\n            /**\n             * An object representing additional contextual message information included in a chat message. The site visitor does not see the metadata.\n             */\n            metadata?: any;\n        };\n    }\n    /**\n     * An object representing a chat message to be sent.\n     */\n    type MessageInfo = {\n        /**\n         * The content of the message.\n         */\n        messageText: string;\n        /**\n         * The ID of the channel to send the message to. Currently only IDs of business channels are supported.\n         */\n        channelId: string;\n        /**\n         * An object representing additional contextual message information included in a chat message. The site visitor does not see the metadata.\n         */\n        metadata?: any;\n        /**\n         * Indicates whether the message is sent from the visitor to the business. If `sendAsVisitor` is `true`, the message is sent from the site visitor to the business. If `sendAsVisitor` is `undefined` or `false`, the message is sent from the business to the site visitor. The default is `undefined`.\n         */\n        sendAsVisitor?: boolean;\n    };\n}\ndeclare namespace wix_crm_backend.Contacts {\n    /**\n     * Contains functionality for refining a contacts query.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-crm-backend.Contacts.ContactsQueryBuilder.html#)\n     */\n    interface ContactsQueryBuilder {\n        /**\n         * Adds an `and` condition to the query.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-crm-backend.Contacts.ContactsQueryBuilder.html#and)\n         */\n        and(query: wix_crm_backend.Contacts.ContactsQueryBuilder): wix_crm_backend.Contacts.ContactsQueryBuilder;\n        /**\n         * Adds a sort to a query, sorting by the specified properties in ascending order.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-crm-backend.Contacts.ContactsQueryBuilder.html#ascending)\n         */\n        ascending(...propertyName: string[]): wix_crm_backend.Contacts.ContactsQueryBuilder;\n        /**\n         * Refines a query to match items whose specified property value is within a specified range.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-crm-backend.Contacts.ContactsQueryBuilder.html#between)\n         */\n        between(propertyName: string, rangeStart: Date, rangeEnd: Date): wix_crm_backend.Contacts.ContactsQueryBuilder;\n        /**\n         * Adds a sort to a query, sorting by the specified properties in descending order.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-crm-backend.Contacts.ContactsQueryBuilder.html#descending)\n         */\n        descending(...propertyName: string[]): wix_crm_backend.Contacts.ContactsQueryBuilder;\n        /**\n         * Refines a query to match items whose specified property value equals the specified value.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-crm-backend.Contacts.ContactsQueryBuilder.html#eq)\n         */\n        eq(propertyName: string, value: any): wix_crm_backend.Contacts.ContactsQueryBuilder;\n        /**\n         * Returns the items that match the query.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-crm-backend.Contacts.ContactsQueryBuilder.html#find)\n         */\n        find(options?: wix_crm_backend.Contacts.AuthOptions): Promise<wix_crm_backend.Contacts.ContactsQueryResult>;\n        /**\n         * Refines a query to match items whose specified property value is greater than or equal to the specified value.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-crm-backend.Contacts.ContactsQueryBuilder.html#ge)\n         */\n        ge(propertyName: string, value: Date): wix_crm_backend.Contacts.ContactsQueryBuilder;\n        /**\n         * Refines a query to match items whose specified property value is greater than the specified value.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-crm-backend.Contacts.ContactsQueryBuilder.html#gt)\n         */\n        gt(propertyName: string, value: Date): wix_crm_backend.Contacts.ContactsQueryBuilder;\n        /**\n         * Refines a query to match items whose specified property value contains all of the specified values.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-crm-backend.Contacts.ContactsQueryBuilder.html#hasAll)\n         */\n        hasAll(propertyName: string, values: string[]): wix_crm_backend.Contacts.ContactsQueryBuilder;\n        /**\n         * Refines a query to match items whose specified property value contains any of the specified values.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-crm-backend.Contacts.ContactsQueryBuilder.html#hasSome)\n         */\n        hasSome(propertyName: string, values: string[]): wix_crm_backend.Contacts.ContactsQueryBuilder;\n        /**\n         * Refines a query to match items whose specified property value is less than or equal to the specified value.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-crm-backend.Contacts.ContactsQueryBuilder.html#le)\n         */\n        le(propertyName: string, value: Date): wix_crm_backend.Contacts.ContactsQueryBuilder;\n        /**\n         * Limits the number of items the query returns.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-crm-backend.Contacts.ContactsQueryBuilder.html#limit)\n         */\n        limit(limit: string): wix_crm_backend.Contacts.ContactsQueryBuilder;\n        /**\n         * Refines a query to match items whose specified property value is less than the specified value.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-crm-backend.Contacts.ContactsQueryBuilder.html#lt)\n         */\n        lt(propertyName: string, value: Date): wix_crm_backend.Contacts.ContactsQueryBuilder;\n        /**\n         * Refines a query to match items whose specified property value does not equal the specified value.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-crm-backend.Contacts.ContactsQueryBuilder.html#ne)\n         */\n        ne(propertyName: string, value: any): wix_crm_backend.Contacts.ContactsQueryBuilder;\n        /**\n         * Adds an `not` condition to the query.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-crm-backend.Contacts.ContactsQueryBuilder.html#not)\n         */\n        not(query: wix_crm_backend.Contacts.ContactsQueryBuilder): wix_crm_backend.Contacts.ContactsQueryBuilder;\n        /**\n         * Adds an `or` condition to the query.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-crm-backend.Contacts.ContactsQueryBuilder.html#or)\n         */\n        or(query: wix_crm_backend.Contacts.ContactsQueryBuilder): wix_crm_backend.Contacts.ContactsQueryBuilder;\n        /**\n         * Sets the number of items to skip before returning query results.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-crm-backend.Contacts.ContactsQueryBuilder.html#skip)\n         */\n        skip(skip: string): wix_crm_backend.Contacts.ContactsQueryBuilder;\n        /**\n         * Refines a query to match items whose specified property value starts with a specified string.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-crm-backend.Contacts.ContactsQueryBuilder.html#startsWith)\n         */\n        startsWith(propertyName: string, value: string): wix_crm_backend.Contacts.ContactsQueryBuilder;\n    }\n    /**\n     * The results of a contacts query, containing the retrieved items.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-crm-backend.Contacts.ContactsQueryResult.html#)\n     */\n    interface ContactsQueryResult {\n        /**\n         * Returns the items that match the query.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-crm-backend.Contacts.ContactsQueryResult.html#items)\n         */\n        readonly items: wix_crm_backend.Contacts.Contact[];\n        /**\n         * Returns the number of items in the current results page.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-crm-backend.Contacts.ContactsQueryResult.html#length)\n         */\n        readonly length: number;\n        /**\n         * Returns the query page size.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-crm-backend.Contacts.ContactsQueryResult.html#pageSize)\n         */\n        readonly pageSize: number;\n        /**\n         * Returns the `ContactsQueryBuilder` object used to get the current results.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-crm-backend.Contacts.ContactsQueryResult.html#query)\n         */\n        readonly query: wix_crm_backend.Contacts.ContactsQueryBuilder;\n        /**\n         * Indicates if the query has more results.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-crm-backend.Contacts.ContactsQueryResult.html#hasNext)\n         */\n        hasNext(): boolean;\n        /**\n         * Indicates if the query has previous results.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-crm-backend.Contacts.ContactsQueryResult.html#hasPrev)\n         */\n        hasPrev(): boolean;\n        /**\n         * Retrieves the next page of query results.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-crm-backend.Contacts.ContactsQueryResult.html#next)\n         */\n        next(): Promise<wix_crm_backend.Contacts.ContactsQueryResult>;\n        /**\n         * Retrieves the previous page of query results.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-crm-backend.Contacts.ContactsQueryResult.html#prev)\n         */\n        prev(): Promise<wix_crm_backend.Contacts.ContactsQueryResult>;\n    }\n    /**\n     * Contains functionality for refining an extended fields query.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-crm-backend.Contacts.ExtendedFieldsQueryBuilder.html#)\n     */\n    interface ExtendedFieldsQueryBuilder {\n        /**\n         * Adds a sort to a query, sorting by the specified properties in ascending order.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-crm-backend.Contacts.ExtendedFieldsQueryBuilder.html#ascending)\n         */\n        ascending(...propertyName: string[]): wix_crm_backend.Contacts.ExtendedFieldsQueryBuilder;\n        /**\n         * Adds a sort to a query, sorting by the specified properties in descending order.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-crm-backend.Contacts.ExtendedFieldsQueryBuilder.html#descending)\n         */\n        descending(...propertyName: string[]): wix_crm_backend.Contacts.ExtendedFieldsQueryBuilder;\n        /**\n         * Returns the items that match the query.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-crm-backend.Contacts.ExtendedFieldsQueryBuilder.html#find)\n         */\n        find(options?: wix_crm_backend.Contacts.AuthOptions): Promise<wix_crm_backend.Contacts.ExtendedFieldsQueryResult>;\n        /**\n         * Limits the number of items the query returns.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-crm-backend.Contacts.ExtendedFieldsQueryBuilder.html#limit)\n         */\n        limit(limit: string): wix_crm_backend.Contacts.ExtendedFieldsQueryBuilder;\n        /**\n         * Sets the number of items to skip before returning query results.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-crm-backend.Contacts.ExtendedFieldsQueryBuilder.html#skip)\n         */\n        skip(skip: string): wix_crm_backend.Contacts.ExtendedFieldsQueryBuilder;\n    }\n    /**\n     * The results of a contacts query, containing the retrieved items.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-crm-backend.Contacts.ExtendedFieldsQueryResult.html#)\n     */\n    interface ExtendedFieldsQueryResult {\n        /**\n         * Returns the items that match the query.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-crm-backend.Contacts.ExtendedFieldsQueryResult.html#items)\n         */\n        readonly items: wix_crm_backend.Contacts.ExtendedField[];\n        /**\n         * Returns the number of items in the current results page.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-crm-backend.Contacts.ExtendedFieldsQueryResult.html#length)\n         */\n        readonly length: number;\n        /**\n         * Returns the query page size.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-crm-backend.Contacts.ExtendedFieldsQueryResult.html#pageSize)\n         */\n        readonly pageSize: number;\n        /**\n         * Returns the `ExtendedFieldsQueryBuilder` object used to get the current results.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-crm-backend.Contacts.ExtendedFieldsQueryResult.html#query)\n         */\n        readonly query: wix_crm_backend.Contacts.ExtendedFieldsQueryBuilder;\n        /**\n         * Indicates if the query has more results.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-crm-backend.Contacts.ExtendedFieldsQueryResult.html#hasNext)\n         */\n        hasNext(): boolean;\n        /**\n         * Indicates if the query has previous results.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-crm-backend.Contacts.ExtendedFieldsQueryResult.html#hasPrev)\n         */\n        hasPrev(): boolean;\n        /**\n         * Retrieves the next page of query results.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-crm-backend.Contacts.ExtendedFieldsQueryResult.html#next)\n         */\n        next(): Promise<wix_crm_backend.Contacts.ExtendedFieldsQueryResult>;\n        /**\n         * Retrieves the previous page of query results.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-crm-backend.Contacts.ExtendedFieldsQueryResult.html#prev)\n         */\n        prev(): Promise<wix_crm_backend.Contacts.ExtendedFieldsQueryResult>;\n    }\n    /**\n     * Contains functionality for refining a labels query.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-crm-backend.Contacts.LabelsQueryBuilder.html#)\n     */\n    interface LabelsQueryBuilder {\n        /**\n         * Adds a sort to a query, sorting by the specified properties in ascending order.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-crm-backend.Contacts.LabelsQueryBuilder.html#ascending)\n         */\n        ascending(...propertyName: string[]): wix_crm_backend.Contacts.LabelsQueryBuilder;\n        /**\n         * Adds a sort to a query, sorting by the specified properties in descending order.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-crm-backend.Contacts.LabelsQueryBuilder.html#descending)\n         */\n        descending(...propertyName: string[]): wix_crm_backend.Contacts.LabelsQueryBuilder;\n        /**\n         * Returns the items that match the query.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-crm-backend.Contacts.LabelsQueryBuilder.html#find)\n         */\n        find(options?: wix_crm_backend.Contacts.AuthOptions): Promise<wix_crm_backend.Contacts.LabelsQueryResult>;\n        /**\n         * Limits the number of items the query returns.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-crm-backend.Contacts.LabelsQueryBuilder.html#limit)\n         */\n        limit(limit: string): wix_crm_backend.Contacts.LabelsQueryBuilder;\n        /**\n         * Sets the number of items to skip before returning query results.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-crm-backend.Contacts.LabelsQueryBuilder.html#skip)\n         */\n        skip(skip: string): wix_crm_backend.Contacts.LabelsQueryBuilder;\n    }\n    /**\n     * The results of a contacts query, containing the retrieved items.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-crm-backend.Contacts.LabelsQueryResult.html#)\n     */\n    interface LabelsQueryResult {\n        /**\n         * Returns the items that match the query.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-crm-backend.Contacts.LabelsQueryResult.html#items)\n         */\n        readonly items: wix_crm_backend.Contacts.Label[];\n        /**\n         * Returns the number of items in the current results page.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-crm-backend.Contacts.LabelsQueryResult.html#length)\n         */\n        readonly length: number;\n        /**\n         * Returns the query page size.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-crm-backend.Contacts.LabelsQueryResult.html#pageSize)\n         */\n        readonly pageSize: number;\n        /**\n         * Returns the `LabelsQueryBuilder` object used to get the current results.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-crm-backend.Contacts.LabelsQueryResult.html#query)\n         */\n        readonly query: wix_crm_backend.Contacts.LabelsQueryBuilder;\n        /**\n         * Indicates if the query has more results.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-crm-backend.Contacts.LabelsQueryResult.html#hasNext)\n         */\n        hasNext(): boolean;\n        /**\n         * Indicates if the query has previous results.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-crm-backend.Contacts.LabelsQueryResult.html#hasPrev)\n         */\n        hasPrev(): boolean;\n        /**\n         * Retrieves the next page of query results.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-crm-backend.Contacts.LabelsQueryResult.html#next)\n         */\n        next(): Promise<wix_crm_backend.Contacts.LabelsQueryResult>;\n        /**\n         * Retrieves the previous page of query results.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-crm-backend.Contacts.LabelsQueryResult.html#prev)\n         */\n        prev(): Promise<wix_crm_backend.Contacts.LabelsQueryResult>;\n    }\n}\ndeclare namespace wix_crm_backend {\n    /**\n     * The Contacts API is used to manage a site's contacts.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-crm-backend.Contacts.html#)\n     */\n    interface Contacts {\n        /**\n         * Appends an existing contact or creates a contact if it doesn't exist.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-crm-backend.Contacts.html#appendOrCreateContact)\n         */\n        appendOrCreateContact(contactInfo: wix_crm_backend.Contacts.ContactInfo): Promise<wix_crm_backend.Contacts.ContactIdentification>;\n        /**\n         * Creates a new contact.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-crm-backend.Contacts.html#createContact)\n         */\n        createContact(contactInfo: wix_crm_backend.Contacts.ContactInfo, options?: wix_crm_backend.Contacts.Options): Promise<wix_crm_backend.Contacts.Contact>;\n        /**\n         * Deletes a contact who is not a site member or contributor.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-crm-backend.Contacts.html#deleteContact)\n         */\n        deleteContact(contactId: string, options?: wix_crm_backend.Contacts.AuthOptions): Promise<void>;\n        /**\n         * Deletes an extended field.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-crm-backend.Contacts.html#deleteExtendedField)\n         */\n        deleteExtendedField(key: string, options?: wix_crm_backend.Contacts.AuthOptions): Promise<void>;\n        /**\n         * Deletes a label from the site and removes it from contacts it applies to.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-crm-backend.Contacts.html#deleteLabel)\n         */\n        deleteLabel(key: string, options?: wix_crm_backend.Contacts.AuthOptions): Promise<void>;\n        /**\n         * Retrieves a custom field with a given name, or creates one if it doesn't exist.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-crm-backend.Contacts.html#findOrCreateExtendedField)\n         */\n        findOrCreateExtendedField(extendedFieldInfo: wix_crm_backend.Contacts.ExtendedFieldInfo, options?: wix_crm_backend.Contacts.AuthOptions): Promise<wix_crm_backend.Contacts.FoundOrCreatedExtendedField>;\n        /**\n         * Retrieves a label with a given name, or creates one if it doesn't exist.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-crm-backend.Contacts.html#findOrCreateLabel)\n         */\n        findOrCreateLabel(displayName: string, options?: wix_crm_backend.Contacts.AuthOptions): Promise<wix_crm_backend.Contacts.FoundOrCreatedLabel>;\n        /**\n         * Retrieves a contact.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-crm-backend.Contacts.html#getContact)\n         */\n        getContact(contactId: string, options?: wix_crm_backend.Contacts.AuthOptions): Promise<wix_crm_backend.Contacts.Contact>;\n        /**\n         * Retrieves an extended field.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-crm-backend.Contacts.html#getExtendedField)\n         */\n        getExtendedField(key: string, options?: wix_crm_backend.Contacts.AuthOptions): Promise<wix_crm_backend.Contacts.ExtendedField>;\n        /**\n         * Retrieves a label.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-crm-backend.Contacts.html#getLabel)\n         */\n        getLabel(key: string, options?: wix_crm_backend.Contacts.AuthOptions): Promise<wix_crm_backend.Contacts.Label>;\n        /**\n         * Adds labels to a contact.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-crm-backend.Contacts.html#labelContact)\n         */\n        labelContact(contactId: string, labelKeys: string[], options?: wix_crm_backend.Contacts.AuthOptions): Promise<wix_crm_backend.Contacts.Contact>;\n        /**\n         * Creates a query to retrieve a list of contacts.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-crm-backend.Contacts.html#queryContacts)\n         */\n        queryContacts(): wix_crm_backend.Contacts.ContactsQueryBuilder;\n        /**\n         * Creates a query to retrieve a list of extended fields.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-crm-backend.Contacts.html#queryExtendedFields)\n         */\n        queryExtendedFields(): wix_crm_backend.Contacts.ExtendedFieldsQueryBuilder;\n        /**\n         * Creates a query to retrieve a list of labels.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-crm-backend.Contacts.html#queryLabels)\n         */\n        queryLabels(): wix_crm_backend.Contacts.LabelsQueryBuilder;\n        /**\n         *  Renames an extended field.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-crm-backend.Contacts.html#renameExtendedField)\n         */\n        renameExtendedField(key: string, displayName: string, options?: wix_crm_backend.Contacts.AuthOptions): Promise<wix_crm_backend.Contacts.ExtendedField>;\n        /**\n         *  Renames a label.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-crm-backend.Contacts.html#renameLabel)\n         */\n        renameLabel(key: string, displayName: string, options?: wix_crm_backend.Contacts.AuthOptions): Promise<wix_crm_backend.Contacts.Label>;\n        /**\n         * Removes labels from a contact.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-crm-backend.Contacts.html#unlabelContact)\n         */\n        unlabelContact(contactId: string, labelKeys: string[], options?: wix_crm_backend.Contacts.AuthOptions): Promise<wix_crm_backend.Contacts.Contact>;\n        /**\n         * Updates a contact's properties.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-crm-backend.Contacts.html#updateContact)\n         */\n        updateContact(identifiers: wix_crm_backend.Contacts.Identifiers, contactInfo: wix_crm_backend.Contacts.ContactInfo, options?: wix_crm_backend.Contacts.Options): Promise<wix_crm_backend.Contacts.Contact>;\n    }\n    namespace Contacts {\n        type Address = {\n            /**\n             * Street address ID.\n             */\n            _id: string;\n            /**\n             *\n             *\n             *\n             * Address type.\n             * `\"UNTAGGED\"` is shown as \"Other\" in the Contact List.\n             *\n             * One of:\n             *\n             * - `\"UNTAGGED\"`\n             * - `\"HOME\"`\n             * - `\"WORK\"`\n             * - `\"BILLING\"`\n             * - `\"SHIPPING\"`\n             *\n             */\n            tag: string;\n            /**\n             * Street address.\n             */\n            address: wix_crm_backend.Contacts.AddressDetails;\n        };\n        /**\n         * Street address.\n         */\n        type AddressDetails = {\n            /**\n             * Main address line, usually street and number, as free text.\n             */\n            addressLine1?: string;\n            /**\n             * Street address object, with number and name in separate fields.\n             */\n            streetAddress?: wix_crm_backend.Contacts.StreetAddressInfo;\n            /**\n             * Human-readable address string.\n             *  If not provided, the value is generated from the available address data.\n             */\n            formatted?: string;\n            /**\n             * Free text providing more detailed address information,\n             *  such as apartment, suite, or floor.\n             */\n            addressLine2?: string;\n            /**\n             * Coordinates of the physical address.\n             */\n            location?: wix_crm_backend.Contacts.AddressLocation;\n            /**\n             * City name.\n             */\n            city?: string;\n            /**\n             * Code for a subdivision (such as state, prefecture, or province) in an\n             *  [ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-2) format.\n             */\n            subdivision?: string;\n            /**\n             * 2-letter country code in an\n             *  [ISO-3166 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) format.\n             */\n            country?: string;\n            /**\n             * Postal or zip code.\n             */\n            postalCode?: string;\n        };\n        type AddressInfo = {\n            /**\n             *\n             *\n             *\n             * Address type.\n             * `\"UNTAGGED\"` is shown as \"Other\" in the Contact List.\n             *\n             * One of:\n             *\n             * - `\"UNTAGGED\"`\n             * - `\"HOME\"`\n             * - `\"WORK\"`\n             * - `\"BILLING\"`\n             * - `\"SHIPPING\"`\n             *\n             */\n            tag: string;\n            /**\n             * Street address.\n             */\n            address: wix_crm_backend.Contacts.AddressDetails;\n        };\n        /**\n         * Coordinates of the physical address.\n         */\n        type AddressLocation = {\n            /**\n             * Address's latitude.\n             */\n            latitude?: number;\n            /**\n             * Address's longitude.\n             */\n            longitude?: number;\n        };\n        /**\n         * Authorization options.\n         */\n        type AuthOptions = {\n            /**\n             * When `true`, prevents permission checks from running for the operation. Defaults to `false`.\n             */\n            suppressAuth?: boolean;\n        };\n        /**\n         * Contact.\n         */\n        type Contact = {\n            /**\n             * Contact ID.\n             */\n            _id: string;\n            /**\n             * Revision number, which increments by 1 each time the contact is updated.\n             *  To prevent conflicting changes,\n             *  the existing `revision` must be used when updating a contact.\n             */\n            revision: number;\n            /**\n             * Details about the contact's source.\n             */\n            source: wix_crm_backend.Contacts.Source;\n            /**\n             * Date and time the contact was created.\n             */\n            _createdDate: Date;\n            /**\n             * Date and time the contact was last updated.\n             */\n            _updatedDate: Date;\n            /**\n             * Details about the contact's last action in the site.\n             */\n            lastActivity: wix_crm_backend.Contacts.LastActivity;\n            /**\n             * Contact's primary phone and email.\n             */\n            primaryInfo?: wix_crm_backend.Contacts.PrimaryInfo;\n            /**\n             * Contact's details.\n             */\n            info: wix_crm_backend.Contacts.Info;\n        };\n        type ContactIdentification = {\n            /**\n             * ID of the contact that was found or created.\n             */\n            contactId: string;\n            /**\n             * Identity type of the returned contact.\n             *\n             *\n             *\n             *\n             * One of:\n             *\n             * - `\"CONTACT\"`: The returned contact ID belongs to a new or existing contact.\n             * - `\"MEMBER\"`: The returned contact ID belongs to the currently logged-in site member.\n             * - `\"NOT_AUTHENTICATED_MEMBER\"`: The returned contact ID belongs to a site member who is not currently logged in.\n             *\n             */\n            identityType: string;\n        };\n        /**\n         * Contact's information.\n         */\n        type ContactInfo = {\n            /**\n             * Contact's first and last name.\n             */\n            name?: wix_crm_backend.Contacts.Name;\n            /**\n             * Contact's company name.\n             */\n            company?: string;\n            /**\n             * Contact's job title.\n             *  Corresponds to the **Position** field in the Dashboard.\n             */\n            jobTitle?: string;\n            /**\n             * Contact's locale, formatted as an\n             *  [IETF BCP 47 language tag](https://tools.ietf.org/html/rfc5646).\n             *  Typically, this is a lowercase 2-letter language code,\n             *  followed by a hyphen,\n             *  followed by an uppercase 2-letter country code.\n             *\n             *  For example, German from Germany is formatted as `de-DE`,\n             *  and U.S. English is formatted as `en-US`.\n             */\n            locale?: string;\n            /**\n             * Contact's birthdate, formatted as `\"YYYY-MM-DD\"`.\n             *\n             *  Example: `\"2020-03-15\"` for March 15, 2020.\n             */\n            birthdate?: string;\n            /**\n             * **Deprecated.** Use `profilePicture` instead.\n             */\n            picture?: wix_crm_backend.Contacts.Picture;\n            /**\n             * List of up to 50 email addresses.\n             */\n            emails?: wix_crm_backend.Contacts.EmailInfo[];\n            /**\n             * List of up to 50 phone numbers.\n             */\n            phones?: wix_crm_backend.Contacts.PhoneInfo[];\n            /**\n             * List of up to 50 addresses.\n             */\n            addresses?: wix_crm_backend.Contacts.AddressInfo[];\n            /**\n             * List of contact label keys.\n             * [Contact labels](https://support.wix.com/en/article/adding-labels-to-contacts-in-your-contact-list)\n             * help categorize contacts.\n             *\n             *\n             *\n             *\n             * Label keys must exist to be added to the contact.\n             * Contact labels can be created or retrieved with\n             * [`findOrCreateLabel()`](wix-crm-backend/contacts/findorcreatelabel)\n             * or\n             * [`queryLabels()`](wix-crm-backend/contacts/queryLabels).\n             *\n             */\n            labelKeys?: string[];\n            /**\n             * Set of key-value pairs.\n             *\n             *\n             *\n             * Contact's\n             * [extended fields](wix-crm-backend/contacts/introduction#about-extended-fields),\n             * which allow you to store additional information about your contacts.\n             *\n             * To view or create extended fields, use\n             * [`findOrCreateExtendedField()`](wix-crm-backend/contacts/findorcreateextendedfield),\n             * [`getExtendedField()`](wix-crm-backend/contacts/getextendedfield), or\n             * [`queryExtendedFields()`](wix-crm-backend/contacts/queryextendedfields).\n             *\n             */\n            extendedFields?: any;\n            /**\n             * Contact's profile picture URL.\n             */\n            profilePicture?: string;\n        };\n        /**\n         * Contact's profile picture.\n         */\n        type ContactPicture = {\n            /**\n             * Image source. Can be either a Media Manager URL or external URL.\n             */\n            image: string;\n            /**\n             * Indicates whether the image is retrieved from Wix Media\n             * or an external provider.\n             *\n             *\n             *\n             *\n             * One of:\n             *\n             * - `\"EXTERNAL\"`: The image is retrieved from an external provider.\n             * - `\"WIX_MEDIA\"`: The image is retrieved from Wix Media.\n             *\n             */\n            imageProvider: string;\n        };\n        type Email = {\n            /**\n             * Email ID.\n             */\n            _id: string;\n            /**\n             * Email type.\n             *\n             *\n             *\n             *\n             * `\"UNTAGGED\"` is shown as \"Other\" in the Contact List.\n             *\n             * One of:\n             *\n             * - `\"UNTAGGED\"`\n             * - `\"MAIN\"`\n             * - `\"HOME\"`\n             * - `\"WORK\"`\n             *\n             */\n            tag: string;\n            /**\n             * Email address.\n             */\n            email: string;\n            /**\n             * Indicates whether this is the contact's primary email address.\n             *  When changing `primary` to `true` for an email,\n             *  the contact's other emails become `false`.\n             */\n            primary: boolean;\n        };\n        type EmailInfo = {\n            /**\n             * Email type.\n             *\n             *\n             *\n             *\n             * `\"UNTAGGED\"` is shown as \"Other\" in the Contact List.\n             *\n             * One of:\n             *\n             * - `\"UNTAGGED\"`\n             * - `\"MAIN\"`\n             * - `\"HOME\"`\n             * - `\"WORK\"`\n             *\n             */\n            tag?: string;\n            /**\n             * Email address.\n             */\n            email?: string;\n            /**\n             * Indicates whether this is the contact's primary email address.\n             *  When changing `primary` to `true` for an email,\n             *  the contact's other emails become `false`.\n             */\n            primary?: boolean;\n        };\n        /**\n         * Extended field that was found or created.\n         */\n        type ExtendedField = {\n            /**\n             * Extended field key.\n             *\n             * When accessing contact data,\n             * extended field data is available at `extendedFields[key]`.\n             * For example, if the key is \"custom.notes\",\n             * the value can be accessed at `extendedFields[\"custom.notes\"]`.\n             *\n             * `key` is generated when the extended field is created\n             * and cannot be modified, even if `displayName` changes.\n             */\n            key: string;\n            /**\n             * Extended field display name shown in the Contact List.\n             */\n            displayName: string;\n            /**\n             * Type of data the field holds.\n             *\n             *\n             *\n             *\n             * One of:\n             *\n             * - `\"TEXT\"`: Accepts strings.\n             * - `\"URL\"`: Accepts web addresses. Prepends `https://` if no protocol is included.\n             * - `\"DATE\"`: Accepts dates formatted as `\"YYYY-MM-DD\"`.\n             * - `\"NUMBER\"`: Accepts floats.\n             *\n             */\n            dataType: string;\n            /**\n             *\n             *\n             *\n             * Indicates whether the extended field is a\n             * [system field or custom field](wix-crm-backend/contacts/introduction#about-extended-fields).\n             *\n             * One of:\n             *\n             * - `\"SYSTEM\"`: The field is a system field managed by Wix. System fields cannot be modified by 3rd-party apps or site contributors.\n             * - `\"USER_DEFINED\"`: The field is a custom field and can be modified by 3rd-party apps or site contributors.\n             *\n             */\n            fieldType: string;\n            /**\n             * Date and time the field was created.\n             */\n            _createdDate: Date;\n            /**\n             * Date and time the field was last updated.\n             */\n            _updatedDate: Date;\n            /**\n             *\n             *\n             *\n             * Extended field [namespace](wix-crm-backend/contacts/introduction#the-namespace-and-key-properties-in-labels-and-extended-fields).\n             *\n             *\n             * Extended fields created by site contributors or 3rd-party apps\n             * are automatically assigned to the `custom` namespace.\n             */\n            namespace: string;\n            /**\n             * Field description, if the field is a system field.\n             */\n            description: string;\n        };\n        /**\n         * Custom field to find or create.\n         */\n        type ExtendedFieldInfo = {\n            /**\n             * Display name to find or create.\n             *\n             *  If an existing custom field is an exact match\n             *  for the specified `displayName`,\n             *  the existing field is returned.\n             *  If not, a new field is created and returned.\n             */\n            displayName: string;\n            /**\n             * Type of data the field holds.\n             * Ignored if an existing field is an exact match\n             * for the specified display name.\n             *\n             *\n             *\n             *\n             * One of:\n             *\n             * - `\"TEXT\"`: Accepts strings.\n             * - `\"URL\"`: Accepts web addresses. Prepends `https://` if no protocol is included.\n             * - `\"DATE\"`: Accepts dates formatted as `\"YYYY-MM-DD\"`.\n             * - `\"NUMBER\"`: Accepts floats.\n             *\n             */\n            dataType?: string;\n        };\n        /**\n         * List of extended fields.\n         */\n        type ExtendedFieldList = {\n            /**\n             * List of extended fields.\n             */\n            items: wix_crm_backend.Contacts.ExtendedField[];\n            /**\n             * Metadata for the page of results.\n             */\n            pagingMetadata: wix_crm_backend.Contacts.PagingMetadata;\n        };\n        /**\n         * Extended field that was found or created.\n         */\n        type FoundOrCreatedExtendedField = {\n            /**\n             * Extended field that was found or created.\n             */\n            extendedField: wix_crm_backend.Contacts.ExtendedField;\n            /**\n             * Indicates whether the extended field was just created or already existed.\n             *\n             *  If the field was just created, returns `true`.\n             *  If it already existed, returns `false`.\n             */\n            newExtendedField: boolean;\n        };\n        /**\n         * Label that was found or created.\n         */\n        type FoundOrCreatedLabel = {\n            /**\n             * Label that was found or created.\n             */\n            label: wix_crm_backend.Contacts.Label;\n            /**\n             * Indicates whether the label was just created or already existed.\n             *\n             *  If the label was just created, returns `true`.\n             *  If it already existed, returns `false`.\n             */\n            newLabel: boolean;\n        };\n        type Identifiers = {\n            /**\n             * ID of the contact to update.\n             */\n            contactId: string;\n            /**\n             * Revision number.\n             *  When updating, include the existing `revision`\n             *  to prevent conflicting updates.\n             */\n            revision: number;\n        };\n        /**\n         * Contact's details.\n         */\n        type Info = {\n            /**\n             * Contact's first and last name.\n             */\n            name?: wix_crm_backend.Contacts.Name;\n            /**\n             * Contact's company name.\n             */\n            company?: string;\n            /**\n             * Contact's job title.\n             *  Corresponds to the **Position** field in the Dashboard.\n             */\n            jobTitle?: string;\n            /**\n             * Contact's locale, formatted as an\n             *  [IETF BCP 47 language tag](https://tools.ietf.org/html/rfc5646).\n             *  Typically, this is a lowercase 2-letter language code,\n             *  followed by a hyphen,\n             *  followed by an uppercase 2-letter country code.\n             *\n             *  For example, German from Germany is formatted as `de-DE`,\n             *  and U.S. English is formatted as `en-US`.\n             */\n            locale?: string;\n            /**\n             * Contact's birthdate, formatted as `\"YYYY-MM-DD\"`.\n             *\n             *  Example: `\"2020-03-15\"` for March 15, 2020.\n             */\n            birthdate?: string;\n            /**\n             * **Deprecated.** Use `profilePicture` instead.\n             */\n            picture: wix_crm_backend.Contacts.Picture;\n            /**\n             * List of up to 50 email addresses.\n             */\n            emails?: wix_crm_backend.Contacts.Email[];\n            /**\n             * List of up to 50 phone numbers.\n             */\n            phones?: wix_crm_backend.Contacts.Phone[];\n            /**\n             * List of up to 50 addresses.\n             */\n            addresses?: wix_crm_backend.Contacts.Address[];\n            /**\n             * List of contact label keys.\n             * [Contact labels](https://support.wix.com/en/article/adding-labels-to-contacts-in-your-contact-list)\n             * help categorize contacts.\n             *\n             *\n             *\n             *\n             * Label keys must exist to be added to the contact.\n             * Contact labels can be created or retrieved with\n             * [`findOrCreateLabel()`](wix-crm-backend/contacts/findorcreatelabel)\n             * or\n             * [`queryLabels()`](wix-crm-backend/contacts/queryLabels).\n             *\n             */\n            labelKeys?: string[];\n            /**\n             * Set of key-value pairs.\n             *\n             *\n             *\n             * Contact's\n             * [extended fields](wix-crm-backend/contacts/introduction#about-extended-fields),\n             * which allow you to store additional information about your contacts.\n             *\n             * To view or create extended fields, use\n             * [`findOrCreateExtendedField()`](wix-crm-backend/contacts/findorcreateextendedfield),\n             * [`getExtendedField()`](wix-crm-backend/contacts/getextendedfield), or\n             * [`queryExtendedFields()`](wix-crm-backend/contacts/queryextendedfields).\n             *\n             */\n            extendedFields: any;\n            /**\n             * Contact's profile picture URL.\n             */\n            profilePicture?: string;\n        };\n        /**\n         * Label that was found or created.\n         */\n        type Label = {\n            /**\n             * Label key.\n             *\n             * `key` is generated when the label is created\n             * and cannot be modified, even if `displayName` changes.\n             */\n            key: string;\n            /**\n             * Label display name shown in the Dashboard.\n             */\n            displayName: string;\n            /**\n             * Label type.\n             *\n             *\n             *\n             *\n             * One of:\n             *\n             * - `\"SYSTEM\"`: The label is a predefined system label for the Contact List.\n             * - `\"USER_DEFINED\"`: The label was created by a site contributor or app.\n             * - `\"WIX_APP_DEFINED\"`: The label was created by a Wix app.\n             *\n             */\n            labelType: string;\n            /**\n             * Date and time the label was created.\n             */\n            _createdDate: Date;\n            /**\n             * Date and time the label was last updated.\n             */\n            _updatedDate: Date;\n            /**\n             *\n             *\n             *\n             * Label [namespace](wix-crm-backend/contacts/introduction#the-namespace-and-key-properties-in-labels-and-extended-fields).\n             *\n             *\n             * Labels created by site contributors or 3rd-party apps\n             * are automatically assigned to the `custom` namespace.\n             */\n            namespace: string;\n        };\n        /**\n         * List of labels.\n         */\n        type LabelList = {\n            /**\n             * List of labels.\n             */\n            items: wix_crm_backend.Contacts.Label[];\n            /**\n             * Metadata for the page of results.\n             */\n            pagingMetadata: wix_crm_backend.Contacts.PagingMetadata;\n        };\n        /**\n         * Details about the contact's last action in the site.\n         */\n        type LastActivity = {\n            /**\n             * Date and time of the last action.\n             */\n            activityDate: Date;\n            /**\n             * Contact's last action in the site.\n             *\n             *\n             *\n             *\n             * Some possible values:\n             * `\"GENERAL\"`, `\"CONTACT_CREATED\"`, `\"MEMBER_LOGIN\"`, `\"MEMBER_REGISTER\"`,\n             * `\"MEMBER_STATUS_CHANGED\"`, `\"FORM_SUBMITTED\"`, `\"INBOX_FORM_SUBMITTED\"`,\n             * `\"INBOX_PAYMENT_REQUEST_PAID\"`, `\"INBOX_MESSAGE_TO_CUSTOMER\"`,\n             * `\"INBOX_MESSAGE_FROM_CUSTOMER\"`, `\"NEWSLETTER_SUBSCRIPTION_FORM_SUBMITTED\"`,\n             * `\"NEWSLETTER_SUBSCRIPTION_UNSUBSCRIBE\"`, `\"ECOM_PURCHASE\"`,\n             * `\"ECOM_CART_ABANDON\"`, `\"ECOM_CHECKOUT_BUYER\"`, `\"BOOKINGS_APPOINTMENT\"`,\n             * `\"HOTELS_RESERVATION\"`, `\"HOTELS_PURCHASE\"`, `\"HOTELS_CONFIRMATION\"`,\n             * `\"HOTELS_CANCEL\"`, `\"VIDEO_PURCHASE\"`, `\"VIDEO_RENT\"`,\n             * `\"CASHIER_BUTTON_PURCHASE\"`, `\"ARENA_NEW_LEAD\"`, `\"EVENTS_RSVP\"`,\n             * `\"INVOICE_PAY\"`, `\"INVOICE_OVERDUE\"`, `\"PRICE_QUOTE_ACCEPT\"`,\n             * `\"PRICE_QUOTE_EXPIRE\"`, `\"RESTAURANTS_ORDER\"`, `\"RESTAURANTS_RESERVATION\"`,\n             * `\"SHOUTOUT_OPEN\"`, `\"SHOUTOUT_CLICK\"`, `\"CONTACT_MERGED\"`.\n             *\n             */\n            activityType: string;\n        };\n        /**\n         * Paging options.\n         */\n        type ListOptions = {\n            /**\n             * Number of items to return.\n             *\n             *  Defaults to `100`.\n             */\n            limit?: number;\n            /**\n             * Number of items to skip in the current sort order.\n             *\n             *  Defaults to `0`.\n             */\n            skip?: number;\n            /**\n             * Sorting options.\n             */\n            sort?: wix_crm_backend.Contacts.SortingOptions;\n            /**\n             * When `true`, prevents permission checks from running for the operation. Defaults to `false`.\n             */\n            suppressAuth?: boolean;\n        };\n        /**\n         * Contact's first and last name.\n         */\n        type Name = {\n            /**\n             * Contact's first name.\n             */\n            first?: string;\n            /**\n             * Contact's last name.\n             */\n            last?: string;\n        };\n        /**\n         * Contact creation options.\n         */\n        type Options = {\n            /**\n             * Controls whether the call will succeed\n             * if the new contact information contains an email already used by another contact.\n             *\n             * If set to `true`,\n             * the call will succeed even if an email address is used by another contact.\n             * If set to `false`,\n             * the call will fail if an email address is used by another contact.\n             *\n             * Defaults to `false`.\n             */\n            allowDuplicates?: boolean;\n            /**\n             * When `true`, prevents permission checks from running for the operation. Defaults to `false`.\n             */\n            suppressAuth?: boolean;\n        };\n        /**\n         * Metadata for the page of results.\n         */\n        type PagingMetadata = {\n            /**\n             * Number of items returned.\n             */\n            length: number;\n            /**\n             * Number of items that matched the query.\n             */\n            totalCount: number;\n            /**\n             * Indicates if `total` calculation timed out before the response was sent.\n             *  Typically this happens if there is a large set of results.\n             */\n            tooManyToCount: boolean;\n        };\n        type Phone = {\n            /**\n             * Phone ID.\n             */\n            _id: string;\n            /**\n             * Phone type.\n             *\n             *\n             *\n             *\n             * `\"UNTAGGED\"` is shown as \"Other\" in the Contact List.\n             *\n             * One of:\n             *\n             * - `\"UNTAGGED\"`\n             * - `\"MAIN\"`\n             * - `\"HOME\"`\n             * - `\"MOBILE\"`\n             * - `\"WORK\"`\n             * - `\"FAX\"`\n             *\n             */\n            tag: string;\n            /**\n             * [ISO-3166 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) country code.\n             */\n            countryCode?: string;\n            /**\n             * Phone number.\n             */\n            phone: string;\n            /**\n             * [ITU E.164-formatted](https://www.itu.int/rec/T-REC-E.164/)\n             *  phone number.\n             *  Automatically generated using `phone` and `countryCode`,\n             *  as long as both of those values are valid.\n             */\n            e164Phone?: string;\n            /**\n             * Whether this is the contact's primary phone number.\n             *  When changing `primary` to `true` for a phone,\n             *  the contact's other phones become `false`.\n             */\n            primary: boolean;\n        };\n        type PhoneInfo = {\n            /**\n             * Phone type.\n             *\n             *\n             *\n             *\n             * `\"UNTAGGED\"` is shown as \"Other\" in the Contact List.\n             *\n             * One of:\n             *\n             * - `\"UNTAGGED\"`\n             * - `\"MAIN\"`\n             * - `\"HOME\"`\n             * - `\"MOBILE\"`\n             * - `\"WORK\"`\n             * - `\"FAX\"`\n             *\n             */\n            tag?: string;\n            /**\n             * [ISO-3166 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) country code.\n             */\n            countryCode?: string;\n            /**\n             * Phone number.\n             */\n            phone?: string;\n            /**\n             * Whether this is the contact's primary phone number.\n             *  When changing `primary` to `true` for a phone,\n             *  the contact's other phones become `false`.\n             */\n            primary?: boolean;\n        };\n        /**\n         * todo\n         */\n        type Picture = {\n            /**\n             * **Deprecated.** Use `profilePicture` instead.\n             */\n            image?: string;\n            /**\n             * **Deprecated.**\n             */\n            imageProvider?: string;\n        };\n        /**\n         * Contact's primary phone and email.\n         */\n        type PrimaryInfo = {\n            /**\n             * Primary email address.\n             *\n             *\n             *\n             *\n             * This property reflects the email address in `contactInfo.emails`\n             * where `primary` is `true`.\n             *\n             */\n            email?: string;\n            /**\n             * Primary phone number.\n             *\n             *\n             *\n             *\n             * This property reflects the phone number in `contactInfo.phones`\n             * where `primary` is `true`.\n             *\n             */\n            phone?: string;\n        };\n        /**\n         * The `options` parameter is an optional parameter that can be used when calling the query [`find()`](#find) function.\n         */\n        type QueryOptions = {\n            /**\n             * Plain text search for an exact match, up to 100 characters.\n             *\n             * Searchable fields:\n             *\n             * - `info.name.first`\n             * - `info.name.last`\n             * - `info.emails.email`\n             * - `info.phones.phone`\n             */\n            search?: string;\n            /**\n             * When `true`, prevents permission checks from running for the operation.\n             *\n             * Defaults to `false`.\n             */\n            suppressAuth?: boolean;\n        };\n        /**\n         * Sorting options.\n         */\n        type SortingOptions = {\n            /**\n             * Name of the field to sort by.\n             */\n            fieldName?: string;\n            /**\n             * Sort order.\n             *\n             *\n             *\n             *\n             * One of:\n             *\n             * - `\"ASC\"`: Ascending order\n             * - `\"DESC\"`: Descending order\n             *\n             * Defaults to `\"ASC\"`.\n             *\n             */\n            order?: string;\n        };\n        /**\n         * Details about the contact's source.\n         */\n        type Source = {\n            /**\n             * Source type.\n             *\n             *\n             * Some possible values:\n             * `\"OTHER\"`, `\"ADMIN\"`, `\"WIX_APP\"`, `\"IMPORT\"`, `\"THIRD_PARTY\"`,\n             * `\"WIX_BOOKINGS\"`, `\"WIX_CHAT\"`, `\"WIX_EMAIL_MARKETING\"`, `\"WIX_EVENTS\"`,\n             * `\"WIX_FORMS\"`, `\"WIX_GROUPS\"`, `\"WIX_HOTELS\"`, `\"WIX_MARKET_PLACE\"`,\n             * `\"WIX_MUSIC\"`, `\"WIX_RESTAURANTS\"`, `\"WIX_SITE_MEMBERS\"`, `\"WIX_STORES\"`.\n             *\n             */\n            sourceType: string;\n            /**\n             * App ID, if the contact was created by an app.\n             */\n            appId: string;\n        };\n        /**\n         * Street address object, with number and name in separate fields.\n         */\n        type StreetAddress = {\n            /**\n             * Street number.\n             */\n            number: string;\n            /**\n             * Street name.\n             */\n            name: string;\n        };\n        /**\n         * Street address object, with number and name in separate fields.\n         */\n        type StreetAddressInfo = {\n            /**\n             * Street number.\n             */\n            number?: string;\n            /**\n             * Street name.\n             */\n            name?: string;\n        };\n    }\n    /**\n     * Code that has been replaced with newer, forward-compatible functions.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-crm-backend.Deprecated.html#)\n     */\n    interface Deprecated {\n    }\n    /**\n     * Events that are fired by actions relating to site contacts.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-crm-backend.Events.html#)\n     */\n    interface Events {\n        /**\n         * An event that triggers when a new workflow card is created.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-crm-backend.Events.html#onCardCreated)\n         */\n        onCardCreated(event: wix_crm_backend.Events.CardCreatedEvent): void;\n        /**\n         * An event that triggers when a workflow card is moved.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-crm-backend.Events.html#onCardMoved)\n         */\n        onCardMoved(event: wix_crm_backend.Events.CardMovedEvent): void;\n        /**\n         * An event that triggers when a workflow card is moved.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-crm-backend.Events.html#onCardRestored)\n         */\n        onCardRestored(event: wix_crm_backend.Events.CardRestoredEvent): void;\n        /**\n         * An event that triggers when a new contact is created.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-crm-backend.Events.html#onContactCreated)\n         */\n        onContactCreated(event: wix_crm_backend.Events.ContactCreatedEvent): void;\n        /**\n         * An event that triggers when a contact is deleted.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-crm-backend.Events.html#onContactDeleted)\n         */\n        onContactDeleted(event: wix_crm_backend.Events.ContactDeletedEvent): void;\n        /**\n         * An event that triggers when one or more source contacts are merged into a target contact.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-crm-backend.Events.html#onContactMerged)\n         */\n        onContactMerged(event: wix_crm_backend.Events.ContactMergedEvent): void;\n        /**\n         * An event that triggers when a contact is updated.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-crm-backend.Events.html#onContactUpdated)\n         */\n        onContactUpdated(event: wix_crm_backend.Events.ContactUpdatedEvent): void;\n        /**\n         * An event that triggers when a site visitor submits a Wix Form.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-crm-backend.Events.html#onFormSubmit)\n         */\n        onFormSubmit(event: wix_crm_backend.Events.FormSubmitEvent): void;\n    }\n    namespace Events {\n        /**\n         * An object representing a created card.\n         */\n        type CardCreatedEvent = {\n            /**\n             * ID of the card's workflow.\n             */\n            workflowId: string;\n            /**\n             * Name of the card's workflow.\n             */\n            workflowName: string;\n            /**\n             * ID of the card's phase.\n             */\n            phaseId: string;\n            /**\n             * Name of the card's phase.\n             */\n            phaseName: string;\n            /**\n             * The card that was created.\n             */\n            card: wix_crm_backend.Workflows.Card;\n        };\n        /**\n         * An object representing a moved card.\n         */\n        type CardMovedEvent = {\n            /**\n             * ID of the card's workflow.\n             */\n            workflowId: string;\n            /**\n             * Name of the card's workflow.\n             */\n            workflowName: string;\n            /**\n             * ID of the card's new phase.\n             */\n            newPhaseId: string;\n            /**\n             * Name of the card's new phase.\n             */\n            newPhaseName: string;\n            /**\n             * ID of the card's old phase.\n             */\n            previousPhaseId: string;\n            /**\n             * Name of the card's old phase.\n             */\n            previousPhaseName: string;\n            /**\n             * The card that was moved.\n             */\n            card: wix_crm_backend.Workflows.Card;\n        };\n        /**\n         * An object representing a moved card.\n         */\n        type CardRestoredEvent = {\n            /**\n             * ID of the workflow the card was restored to.\n             */\n            workflowId: string;\n            /**\n             * Name of the workflow the card was restored to.\n             */\n            workflowName: string;\n            /**\n             * ID of the phase the card was restored to.\n             */\n            phaseId: string;\n            /**\n             * Name of the phase the card was restored to.\n             */\n            phaseName: string;\n            /**\n             * The card that was restored.\n             */\n            card: wix_crm_backend.Workflows.Card;\n        };\n        type ContactCreatedEvent = {\n            /**\n             * Event metadata.\n             */\n            metadata: wix_crm_backend.Events.EventMetadata;\n            /**\n             * Created contact.\n             */\n            entity: wix_crm_backend.Contacts.Contact;\n        };\n        type ContactDeletedEvent = {\n            /**\n             * Event metadata.\n             */\n            metadata: wix_crm_backend.Events.UpdateAndDeleteMetadata;\n        };\n        type ContactMergedData = {\n            /**\n             * IDs of the source contacts.\n             */\n            sourceContactIds: string[];\n            /**\n             * ID of the target contact.\n             */\n            targetContactId: string;\n            /**\n             * Updated target contact.\n             */\n            targetContact: wix_crm_backend.Contacts.Contact;\n        };\n        type ContactMergedEvent = {\n            /**\n             * Event metadata.\n             */\n            metadata: wix_crm_backend.Events.EventMetadata;\n            /**\n             * Information about the source and target contacts.\n             */\n            data: wix_crm_backend.Events.ContactMergedData;\n        };\n        type ContactUpdatedEvent = {\n            /**\n             * Event metadata.\n             */\n            metadata: wix_crm_backend.Events.UpdateAndDeleteMetadata;\n            /**\n             * Updated contact.\n             */\n            entity: wix_crm_backend.Contacts.Contact;\n        };\n        /**\n         * Event metadata.\n         */\n        type EventMetadata = {\n            /**\n             * Event ID.\n             */\n            id: string;\n            /**\n             * Contact ID associated with the event.\n             */\n            entityId: string;\n            /**\n             * Event timestamp.\n             */\n            eventTime: string;\n            /**\n             * Whether the event was triggered as a result of a privacy regulation application\n             * (for example, [GDPR](https://support.wix.com/en/article/gdpr-frequently-asked-questions)).\n             * For advanced users.\n             */\n            triggeredByAnonymizeRequest?: boolean;\n        };\n        /**\n         * An object representing an attachment to a Wix Form.\n         */\n        type FormAttachment = {\n            /**\n             * Name of the attachment.\n             */\n            name: string;\n            /**\n             * Type of attachment.\n             * One of:\n             *\n             * + `\"UNDEFINED\"`\n             * + `\"DOCUMENT\"`\n             * + `\"IMAGE\"`\n             * + `\"VIDEO\"`\n             */\n            type: string;\n            /**\n             * URL of the attachment.\n             */\n            url: string;\n        };\n        /**\n         * An object representing a Wix Form field.\n         */\n        type FormField = {\n            /**\n             * Name of the field.\n             */\n            fieldName: string;\n            /**\n             * Value of the field.\n             */\n            fieldValue: string;\n        };\n        /**\n         * An object representing a Wix Form.\n         */\n        type FormSubmitEvent = {\n            /**\n             * Contact ID of the site visitor submitting the Wix Form.\n             */\n            contactId: string;\n            /**\n             * Name of the Wix Form.\n             */\n            formName: string;\n            /**\n             * Date and time that the Wix Form was submitted.\n             */\n            submissionTime: Date;\n            /**\n             * Data submitted in the Wix Form. The object contains key:value pairs where the key is the field name and the value is the contents of the field.\n             */\n            submissionData: wix_crm_backend.Events.FormField[];\n            /**\n             * The Wix Form's attachments.\n             */\n            attachments: wix_crm_backend.Events.FormAttachment[];\n        };\n        /**\n         * Event metadata.\n         */\n        type UpdateAndDeleteMetadata = {\n            /**\n             * Event ID.\n             */\n            id: string;\n            /**\n             * Contact ID associated with the event.\n             */\n            entityId: string;\n            /**\n             * Event timestamp.\n             */\n            eventTime: string;\n            /**\n             * If present and set to `\"merge\"`,\n             * indicates the event was triggered by a merge.\n             *\n             * See [`onContactMerged()`](#onContactMerged) for information on handling\n             * merge events.\n             */\n            originatedFrom?: string;\n            /**\n             * Whether the event was triggered as a result of a privacy regulation application\n             * (for example, [GDPR](https://support.wix.com/en/article/gdpr-frequently-asked-questions)).\n             * For advanced users.\n             */\n            triggeredByAnonymizeRequest?: boolean;\n        };\n    }\n    /**\n     * The Notifications API is used to send notifications to the site owner and contributors.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-crm-backend.Notifications.html#)\n     */\n    interface Notifications {\n        /**\n         * Sends a notification.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-crm-backend.Notifications.html#notify)\n         */\n        notify(body: string, channels: string[], options?: wix_crm_backend.Notifications.NotificationOptions): Promise<void>;\n    }\n    namespace Notifications {\n        /**\n         * An object containing information about where to navigate when a notification is clicked.\n         */\n        type ActionTarget = {\n            /**\n             * URL to navigate to when the `actionTitle` text is clicked.\n             */\n            url?: string;\n        };\n        /**\n         * An object representing notification options.\n         */\n        type NotificationOptions = {\n            /**\n             * Notification title. Only displayed on mobile and browser notifications. Max length: 512 characters.\n             */\n            title?: string;\n            /**\n             * Call to action text to be clicked on. When clicked, navigates to the `actionTarget` URL. Max length: 512 characters.\n             */\n            actionTitle?: string;\n            /**\n             * Where to navigate to when the `actionTitle` text is clicked.\n             */\n            actionTarget?: wix_crm_backend.Notifications.ActionTarget;\n            /**\n             * Contributor that will receive the notifications, based on their assigned roles.\n             *  One of:\n             *\n             *  + `\"All_Contributors\"`: All site contributors, including the site owner.\n             *  + `\"Owner\"`: Only the site owner.\n             */\n            recipients?: wix_crm_backend.Notifications.SiteContributors;\n        };\n        /**\n         * An object containing information about which contributors will receive a notification.\n         */\n        type SiteContributors = {\n            /**\n             * Roles to receive the notification.\n             * One of:\n             *\n             * + `\"All_Contributors\"`: All site contributors (default).\n             * + `\"Owner\"`: Only the site owner.\n             */\n            role?: string;\n        };\n    }\n    /**\n     * The Tasks API is used to manage a site's tasks.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-crm-backend.Tasks.html#)\n     */\n    interface Tasks {\n        /**\n         * Sets a task as completed.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-crm-backend.Tasks.html#completeTask)\n         */\n        completeTask(taskId: string): Promise<string>;\n        /**\n         * Creates a new task.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-crm-backend.Tasks.html#createTask)\n         */\n        createTask(taskInfo: wix_crm_backend.Tasks.TaskInfo): Promise<string>;\n        /**\n         * Gets a task by ID.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-crm-backend.Tasks.html#getTask)\n         */\n        getTask(taskId: string): Promise<wix_crm_backend.Tasks.Task>;\n        /**\n         * Removes an existing task.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-crm-backend.Tasks.html#removeTask)\n         */\n        removeTask(taskId: string): Promise<string>;\n        /**\n         * Resets a task as not completed.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-crm-backend.Tasks.html#resetTask)\n         */\n        resetTask(taskId: string): Promise<string>;\n        /**\n         * Updates the specified fields of an existing task.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-crm-backend.Tasks.html#updateTaskFields)\n         */\n        updateTaskFields(taskId: string, taskInfo: wix_crm_backend.Tasks.TaskInfo): Promise<string>;\n    }\n    namespace Tasks {\n        /**\n         * An object representing a task.\n         */\n        type Task = {\n            /**\n             * Unique task identifier.\n             */\n            _id: string;\n            /**\n             * Task title.\n             */\n            title: string;\n            /**\n             * Date the task is due.\n             */\n            dueDate: Date;\n            /**\n             * Unique identifier of the site contact\n             *  that this task is linked to.\n             */\n            contactId: string;\n            /**\n             * Indicates whether the task has been\n             *  completed.\n             */\n            isCompleted: boolean;\n            /**\n             * Running task version number. Each time an\n             *  action is performed on a task its version number is incremented.\n             */\n            version: number;\n            /**\n             * Type of the task's creator. `\"USER\"`\n             *  if the task was created using the site's dashboard. `\"APP\"` if the task was\n             *  created using the [`createTask()`](#createTask) function or if it was created\n             *  by an app installed on the site.\n             */\n            creatorType: string;\n            /**\n             * When `creatorType` is `\"USER\"`, the unique\n             *  identifier of the user that created the task in the dashboard. Otherwise, `userId` is not\n             *  present.\n             */\n            userId?: string;\n            /**\n             * When `creatorType` is `\"APP\"`, the unique\n             *  identifier of the application that created the task. Otherwise, `applicationId` is not\n             *  present.\n             */\n            applicationId?: string;\n        };\n        /**\n         * An object representing information for creating or updating a task.\n         */\n        type TaskInfo = {\n            /**\n             * Task title.\n             */\n            title?: string;\n            /**\n             * Date the task is due.\n             */\n            dueDate?: Date;\n            /**\n             * Unique identifier of the site contact\n             *  that this task is linked to.\n             */\n            contactId?: string;\n        };\n    }\n    /**\n     * The Triggered Emails API is used to send triggered emails to your site's contacts and members.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-crm-backend.TriggeredEmails.html#)\n     */\n    interface TriggeredEmails {\n        /**\n         * Sends a triggered email to a contact, unless that contact is marked as unsubscribed..\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-crm-backend.TriggeredEmails.html#emailContact)\n         */\n        emailContact(emailId: string, contactId: string, options?: wix_crm_backend.TriggeredEmails.TriggeredEmailOptions): Promise<void>;\n        /**\n         * Sends a triggered email to a site member.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-crm-backend.TriggeredEmails.html#emailMember)\n         */\n        emailMember(emailId: string, memberId: string, options?: wix_crm_backend.TriggeredEmails.TriggeredEmailOptions): Promise<void>;\n    }\n    namespace TriggeredEmails {\n        type TriggeredEmailOptions = {\n            /**\n             * An object with `key:value` pairs. Each\n             *  `key` is a variable in the email template created in Triggered Emails, and its\n             *  corresponding `value` is the value to insert into the template in place of the\n             *  variable. The values must be strings.\n             *\n             * Example: `{ firstName: 'John', lastName: 'Doe' }`\n             */\n            variables: any;\n        };\n    }\n    /**\n     * The Workflows API is used to manage your site's\n     * [workflows](https://support.wix.com/en/article/about-workflows).\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-crm-backend.Workflows.html#)\n     */\n    interface Workflows {\n        /**\n         * Archives a workflow card.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-crm-backend.Workflows.html#archiveCard)\n         */\n        archiveCard(cardId: string): Promise<void>;\n        /**\n         * Creates a new workflow card.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-crm-backend.Workflows.html#createCard)\n         */\n        createCard(workflowId: string, phaseId: string, card: wix_crm_backend.Workflows.Card, position?: number): Promise<string>;\n        /**\n         * Creates a new workflow phase.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-crm-backend.Workflows.html#createPhase)\n         */\n        createPhase(workflowId: string, phase: wix_crm_backend.Workflows.Phase, position?: number): Promise<string>;\n        /**\n         * Creates a new workflow.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-crm-backend.Workflows.html#createWorkflow)\n         */\n        createWorkflow(workflowInfo: wix_crm_backend.Workflows.WorkflowInfo): Promise<string>;\n        /**\n         * Deletes a workflow card by ID.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-crm-backend.Workflows.html#deleteCard)\n         */\n        deleteCard(cardId: string): Promise<void>;\n        /**\n         * Deletes a workflow phase by ID.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-crm-backend.Workflows.html#deletePhase)\n         */\n        deletePhase(phaseId: string): Promise<void>;\n        /**\n         * Deletes a workflow by ID.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-crm-backend.Workflows.html#deleteWorkflow)\n         */\n        deleteWorkflow(workflowId: string): Promise<void>;\n        /**\n         * Gets a workflow card by ID.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-crm-backend.Workflows.html#getCard)\n         */\n        getCard(cardId: string): Promise<wix_crm_backend.Workflows.Card>;\n        /**\n         * Gets a phase info by ID.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-crm-backend.Workflows.html#getPhaseInfo)\n         */\n        getPhaseInfo(phaseId: string): Promise<wix_crm_backend.Workflows.Phase>;\n        /**\n         * Gets a workflow info by ID.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-crm-backend.Workflows.html#getWorkflowInfo)\n         */\n        getWorkflowInfo(workflowId: string): Promise<wix_crm_backend.Workflows.WorkflowInfo>;\n        /**\n         * Gets a list of a workflow's cards.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-crm-backend.Workflows.html#listCards)\n         */\n        listCards(workflowId: string, options?: wix_crm_backend.Workflows.ListCardOptions): Promise<wix_crm_backend.Workflows.CardList>;\n        /**\n         * Gets a list of a workflow's phases.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-crm-backend.Workflows.html#listPhasesInfo)\n         */\n        listPhasesInfo(workflowId: string, options?: wix_crm_backend.Workflows.ListOptions): Promise<wix_crm_backend.Workflows.PhaseList>;\n        /**\n         * Gets a list of the site's workflows info.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-crm-backend.Workflows.html#listWorkflowsInfo)\n         */\n        listWorkflowsInfo(options?: wix_crm_backend.Workflows.ListOptions): Promise<wix_crm_backend.Workflows.WorkflowList>;\n        /**\n         * Moves a card to a new position within a workflow.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-crm-backend.Workflows.html#moveCard)\n         */\n        moveCard(cardId: string, options: wix_crm_backend.Workflows.MoveCardOptions): Promise<void>;\n        /**\n         * Moves a phase to a new position with a workflow.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-crm-backend.Workflows.html#movePhase)\n         */\n        movePhase(phaseId: string, options: wix_crm_backend.Workflows.MovePhaseOptions): Promise<void>;\n        /**\n         * Restores an archived workflow card.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-crm-backend.Workflows.html#restoreCard)\n         */\n        restoreCard(cardId: string, options: wix_crm_backend.Workflows.MoveCardOptions): Promise<void>;\n        /**\n         * Updates an existing workflow card.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-crm-backend.Workflows.html#updateCardFields)\n         */\n        updateCardFields(cardId: string, card: wix_crm_backend.Workflows.Card): Promise<void>;\n        /**\n         * Updates an existing workflow phase.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-crm-backend.Workflows.html#updatePhaseFields)\n         */\n        updatePhaseFields(phaseId: string, phase: wix_crm_backend.Workflows.Phase): Promise<void>;\n        /**\n         * Updates an existing workflow.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-crm-backend.Workflows.html#updateWorkflowFields)\n         */\n        updateWorkflowFields(workflowId: string, workflowInfo: wix_crm_backend.Workflows.WorkflowInfo): Promise<void>;\n    }\n    namespace Workflows {\n        /**\n         * An object containing card information.\n         */\n        type Card = {\n            /**\n             * Unique card identifier.\n             */\n            id: string;\n            /**\n             * Name of the card.\n             */\n            name?: string;\n            /**\n             * Source that created the card.\n             *\n             *  Some possible values:\n             *\n             *  + `\"Contacts\"`\n             *  + `\"Corvid\"`\n             *  + `\"Inbox\"`\n             *  + `\"Invoices\"`\n             *  + `\"Marketplace\"`\n             *  + `\"Price Quotes\"`\n             *  + `\"Wix Forms\"`\n             */\n            source: string;\n            /**\n             * ID of the contact associated with the card.\n             */\n            contactId: string;\n            /**\n             * Date the card was created.\n             */\n            createdDate: Date;\n            /**\n             * Date the card was last updated.\n             */\n            updatedDate: Date;\n            /**\n             * ID of the phase which contains the card.\n             */\n            phaseId: string;\n        };\n        /**\n         * An object containing a list of cards and pagination info.\n         */\n        type CardList = {\n            /**\n             * List of cards matching the list options.\n             */\n            items: wix_crm_backend.Workflows.Card[];\n            /**\n             * Number of items in the current results page.\n             */\n            length: number;\n            /**\n             * Total number of cards in the specified workflow and phase.\n             */\n            totalCount: number;\n            /**\n             * Number of items returned per page with the current list options.\n             */\n            pageSize: number;\n            /**\n             * Total number of results pages.\n             */\n            totalPages: number;\n            /**\n             * Index of the current page. Indices are zero-based.\n             */\n            currentPage: number;\n        };\n        /**\n         * An object contains ListCards request data.\n         */\n        type ListCardOptions = {\n            /**\n             * ID of phase to retrieve cards from. If omitted, will retrieve cards from all phases. Not to be used with `fetchOnlyArchived`.\n             */\n            phaseId?: string;\n            /**\n             * Whether to retrieve only archived cards. Not to be used with `phaseId`.\n             */\n            fetchOnlyArchived?: boolean;\n            /**\n             * Maximum number of cards to retrieve. Defaults to `50`.\n             */\n            limit?: number;\n            /**\n             * Number of cards to skip before the retrieved items. Defaults to `0`.\n             */\n            skip?: number;\n            /**\n             * Ordering options.\n             */\n            order?: wix_crm_backend.Workflows.OrderOptions;\n        };\n        /**\n         * An object containing options used when requesting a list of workflows or phases.\n         */\n        type ListOptions = {\n            /**\n             * Maximum number of items to retrieve. Defaults to `50` for phases and `100` for workflows.\n             */\n            limit?: number;\n            /**\n             * Number of items to skip before the retrieved items. Defaults to `0`.\n             */\n            skip?: number;\n            /**\n             * Ordering options.\n             */\n            order?: wix_crm_backend.Workflows.OrderOptions;\n        };\n        /**\n         * An object containing information used when moving a card.\n         */\n        type MoveCardOptions = {\n            /**\n             * ID of the phase to move the card to. If omitted, the card remains in the same phase.\n             */\n            newPhaseId?: string;\n            /**\n             * Position within the phase to move the card to. If omitted, the card is moved to the top of the phase.\n             */\n            newPosition?: number;\n        };\n        /**\n         * An object containing information used when moving a phase.\n         */\n        type MovePhaseOptions = {\n            /**\n             * ID of the workflow to move the phase to.\n             */\n            workflowId: string;\n            /**\n             * Position within the workflow to move the phase to.\n             */\n            newPosition: number;\n        };\n        /**\n         * An object containing sort order options.\n         */\n        type OrderOptions = {\n            /**\n             * Field to sort on.\n             */\n            field: string;\n            /**\n             * Order of sort. Either `\"asc\"` or `\"desc\"` (defaults to `\"asc\"`).\n             */\n            sort: string;\n        };\n        /**\n         * An object containing phase information.\n         */\n        type Phase = {\n            /**\n             * Unique phase identifier.\n             */\n            id: string;\n            /**\n             * Name of the phase.\n             */\n            name: string;\n        };\n        /**\n         * An object containing a list of phases and pagination info.\n         */\n        type PhaseList = {\n            /**\n             * List of phases matching the list options.\n             */\n            items: wix_crm_backend.Workflows.Phase[];\n            /**\n             * Number of items in the current results page.\n             */\n            length: number;\n            /**\n             * Total number of phases in the specified workflow.\n             */\n            totalCount: number;\n            /**\n             * Number of items returned per page with the current list options.\n             */\n            pageSize: number;\n            /**\n             * Total number of results pages.\n             */\n            totalPages: number;\n            /**\n             * Index of the current page. Indices are zero-based.\n             */\n            currentPage: number;\n        };\n        /**\n         * An object representing a workflow.\n         */\n        type Workflow = {\n            /**\n             * Workflow information.\n             */\n            workflowInfo: wix_crm_backend.Workflows.WorkflowInfo;\n            /**\n             * ID of the win phase.\n             */\n            winPhaseId: string;\n        };\n        /**\n         * An object containing information about a workflow.\n         */\n        type WorkflowInfo = {\n            /**\n             * Unique workflow identifier.\n             */\n            id: string;\n            /**\n             * Name of the workflow.\n             */\n            name: string;\n            /**\n             * Workflow description.\n             */\n            description?: string;\n            /**\n             * Date the workflow was created.\n             */\n            createdDate?: Date;\n        };\n        /**\n         * An object containing a list of workflows and pagination info.\n         */\n        type WorkflowList = {\n            /**\n             * List of workflows matching the list options.\n             */\n            items: wix_crm_backend.Workflows.WorkflowInfo[];\n            /**\n             * Number of items in the current results page.\n             */\n            length: number;\n            /**\n             * Total number of workflows in the site.\n             */\n            totalCount: number;\n            /**\n             * Number of items returned per page with the current list options.\n             */\n            pageSize: number;\n            /**\n             * Total number of results pages.\n             */\n            totalPages: number;\n            /**\n             * Index of the current page. Indices are zero-based.\n             */\n            currentPage: number;\n        };\n    }\n    /**\n     * An object that contains information about a site contact.\n     */\n    type ContactInfo = {\n        /**\n         * Contact's first name.\n         */\n        firstName?: string;\n        /**\n         * Contact's last name.\n         */\n        lastName?: string;\n        /**\n         * Contact's image source.\n         */\n        picture?: string;\n        /**\n         * List of contact's email addresses. When\n         *  creating a contact, if no phone number is\n         *  provided, at least one email address must be provided.\n         */\n        emails?: string[];\n        /**\n         * Email address the contact who is also\n         *  a member uses to log into the system.\n         */\n        loginEmail?: string;\n        /**\n         * List of contact's phone numbers. When\n         *  creating a contact, if no email is\n         *  provided, at least one phone number must be provided.\n         */\n        phones?: string[];\n        /**\n         * List of contact's labels. [Labels](https://support.wix.com/en/article/creating-contact-labels)\n         *  are used to organize contacts. When setting the `labels` property, you can\n         *  only list labels that already exist in your site's [Contacts List](https://support.wix.com/en/article/accessing-your-contact-list).\n         */\n        labels?: string[];\n        /**\n         * Any\n         *  number of custom fields. [Custom fields](https://support.wix.com/en/article/adding-custom-fields-to-contacts)\n         *  are used to store additional information about your site's contacts. When\n         *  setting a custom field, use key:value pairs, where the key matches the display names\n         *  in your site's [Contacts List](https://support.wix.com/en/article/accessing-your-contact-list).\n         *  You can only set values for custom fields that already exist in the Contacts\n         *  application.\n         */\n        customFields?: string | number | Date;\n    };\n    /**\n     * An object that contains contact deletion options.\n     */\n    type DeleteOptions = {\n        /**\n         * Whether to perform the deletion when the contact is also a member. Defaults to `false`.\n         */\n        deleteMembers: boolean;\n    };\n}\ndeclare namespace wix_data {\n    /**\n     * Hooks that can be added to wix-data operations.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-data.Hooks.html#)\n     */\n    interface Hooks {\n        /**\n         * A hook that is triggered after a `count()` operation.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-data.Hooks.html#afterCount)\n         */\n        afterCount(count: number, context: wix_data.Hooks.HookContext): Promise<number> & number;\n        /**\n         * A hook that is triggered after a `get()` operation.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-data.Hooks.html#afterGet)\n         */\n        afterGet(item: any, context: wix_data.Hooks.HookContext): Promise<any> & any;\n        /**\n         * A hook that is triggered after an `insert()` operation.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-data.Hooks.html#afterInsert)\n         */\n        afterInsert(item: any, context: wix_data.Hooks.HookContext): Promise<any> & any;\n        /**\n         * A hook that is triggered after a `find` operation, for each of the items in the query results.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-data.Hooks.html#afterQuery)\n         */\n        afterQuery(item: any, context: wix_data.Hooks.HookContext): Promise<any> & any;\n        /**\n         * A hook that is triggered after a `remove()` operation.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-data.Hooks.html#afterRemove)\n         */\n        afterRemove(item: any, context: wix_data.Hooks.HookContext): Promise<any> & any;\n        /**\n         * A hook that is triggered after an `update()` operation.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-data.Hooks.html#afterUpdate)\n         */\n        afterUpdate(item: any, context: wix_data.Hooks.UpdateHookContext): Promise<any> & any;\n        /**\n         * A hook that is triggered before a `count()` operation.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-data.Hooks.html#beforeCount)\n         */\n        beforeCount(query: wix_data.WixDataQuery, context: wix_data.Hooks.HookContext): Promise<wix_data.WixDataQuery> & wix_data.WixDataQuery;\n        /**\n         * A hook that is triggered before a `get()` operation.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-data.Hooks.html#beforeGet)\n         */\n        beforeGet(itemId: string, context: wix_data.Hooks.HookContext): Promise<string> & string;\n        /**\n         * A hook that is triggered before an `insert()` operation.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-data.Hooks.html#beforeInsert)\n         */\n        beforeInsert(item: any, context: wix_data.Hooks.HookContext): Promise<any> & any;\n        /**\n         * A hook that is triggered before a `find()` operation.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-data.Hooks.html#beforeQuery)\n         */\n        beforeQuery(query: wix_data.WixDataQuery, context: wix_data.Hooks.HookContext): Promise<wix_data.WixDataQuery> & wix_data.WixDataQuery;\n        /**\n         * A hook that is called before a `remove()` operation.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-data.Hooks.html#beforeRemove)\n         */\n        beforeRemove(itemId: string, context: wix_data.Hooks.UpdateHookContext): Promise<string> & string;\n        /**\n         * A hook that is triggered before an `update()` operation.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-data.Hooks.html#beforeUpdate)\n         */\n        beforeUpdate(item: any, context: wix_data.Hooks.UpdateHookContext): Promise<any> & any;\n        /**\n         * A hook that is triggered on any error or rejected Promise from any of the wix-data operations.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-data.Hooks.html#onFailure)\n         */\n        onFailure(error: Error, context: wix_data.Hooks.HookContext): Promise<any>;\n    }\n    namespace Hooks {\n        /**\n         * An object that contains contextual information about the hook being called.\n         */\n        type HookContext = {\n            /**\n             * The ID of the collection the hook affects.\n             */\n            collectionName: string;\n            /**\n             * The current site user ID. If no user is logged in to the site it may be null.\n             */\n            userId: string;\n            /**\n             * The permissions role of the current user. Possibilities are: `anonymous`, `siteMember`, and `siteOwner`.\n             */\n            userRole: string;\n        };\n        /**\n         * An object that contains contextual information when calling the `beforeUpdate()`, `beforeRemove()`, or `afterUpdate()` hooks.\n         */\n        type UpdateHookContext = {\n            /**\n             * The ID of the collection the hook affects.\n             */\n            collectionName: string;\n            /**\n             * The current site user ID. If no user is logged in to the site it may be null.\n             */\n            userId: string;\n            /**\n             * The permissions role of the current user. Possibilities are: `anonymous`, `siteMember`, and `siteOwner`.\n             */\n            userRole: string;\n            /**\n             * The item stored in the database collection before an update or delete operation.\n             */\n            currentItem: any;\n        };\n    }\n    /**\n     * Provides functionality for performing aggregations on collection data.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-data.WixDataAggregate.html#)\n     */\n    interface WixDataAggregate {\n        /**\n         * Adds a sort to an aggregation, sorting by the items or groups by the specified properties in ascending order.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-data.WixDataAggregate.html#ascending)\n         */\n        ascending(...propertyName: string[]): wix_data.WixDataAggregate;\n        /**\n         * Refines a `WixDataAggregate` to only contain the average value from each aggregation group.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-data.WixDataAggregate.html#avg)\n         */\n        avg(propertyName: string, projectedName?: string): wix_data.WixDataAggregate;\n        /**\n         * Refines a `WixDataAggregate` to contain the item count of each group in the aggregation.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-data.WixDataAggregate.html#count)\n         */\n        count(): wix_data.WixDataAggregate;\n        /**\n         * Adds a sort to an aggregation, sorting by the items or groups by the specified properties in descending order.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-data.WixDataAggregate.html#descending)\n         */\n        descending(...propertyName: string[]): wix_data.WixDataAggregate;\n        /**\n         * Filters out items from being used in an aggregation.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-data.WixDataAggregate.html#filter)\n         */\n        filter(filter: wix_data.WixDataFilter): wix_data.WixDataAggregate;\n        /**\n         * Groups items together in an aggregation.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-data.WixDataAggregate.html#group)\n         */\n        group(...propertyName: string[]): wix_data.WixDataAggregate;\n        /**\n         * Filters out groups from being returned from an aggregation.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-data.WixDataAggregate.html#having)\n         */\n        having(filter: wix_data.WixDataFilter): wix_data.WixDataAggregate;\n        /**\n         * Limits the number of items or groups the aggregation returns.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-data.WixDataAggregate.html#limit)\n         */\n        limit(limit: number): wix_data.WixDataAggregate;\n        /**\n         * Refines a `WixDataAggregate` to only contain the maximum value from each aggregation group.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-data.WixDataAggregate.html#max)\n         */\n        max(propertyName: string, projectedName?: string): wix_data.WixDataAggregate;\n        /**\n         * Refines a `WixDataAggregate` to only contain the minimum value from each aggregation group.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-data.WixDataAggregate.html#min)\n         */\n        min(propertyName: string, projectedName?: string): wix_data.WixDataAggregate;\n        /**\n         * Runs the aggregation and returns the results.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-data.WixDataAggregate.html#run)\n         */\n        run(options?: wix_data.WixDataAggregate.RunOptions): Promise<wix_data.WixDataAggregateResult>;\n        /**\n         * Sets the number of items or groups to skip before returning aggregation results.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-data.WixDataAggregate.html#skip)\n         */\n        skip(skip: number): wix_data.WixDataAggregate;\n        /**\n         * Refines a `WixDataAggregate` to contain the sum from each aggregation group.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-data.WixDataAggregate.html#sum)\n         */\n        sum(propertyName: string, projectedName?: string): wix_data.WixDataAggregate;\n    }\n    namespace WixDataAggregate {\n        /**\n         * Options to use when running an aggregation.\n         */\n        type RunOptions = {\n            /**\n             * When `true`, prevents permission checks from running for the `run()` operation. Defaults to `false`.\n             */\n            suppressAuth?: boolean;\n            /**\n             * When `true`, reads data from the primary database instance.\n             * This decreases performance but ensures data retrieved is up to date even immediately after an update.\n             * See [Wix Data and Eventual Consistency](https://www.wix.com/velo/reference/wix-data/introduction#wix-data_introduction_wix-data-and-eventual-consistency) for more information.\n             *\n             * Default: `false`\n             */\n            consistentRead?: boolean;\n        };\n    }\n    /**\n     * The results of an aggregation, containing the aggregated values.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-data.WixDataAggregateResult.html#)\n     */\n    interface WixDataAggregateResult {\n        /**\n         * Gets the aggregated values.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-data.WixDataAggregateResult.html#items)\n         */\n        readonly items: any[];\n        /**\n         * Returns the number of values in the aggregate results.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-data.WixDataAggregateResult.html#length)\n         */\n        readonly length: number;\n        /**\n         * Indicates if the aggregation has more results.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-data.WixDataAggregateResult.html#hasNext)\n         */\n        hasNext(): boolean;\n        /**\n         * Retrieves the next page of aggregate results.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-data.WixDataAggregateResult.html#next)\n         */\n        next(): Promise<wix_data.WixDataAggregateResult>;\n    }\n    /**\n     * Provides functionality for refining a filter.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-data.WixDataFilter.html#)\n     */\n    interface WixDataFilter {\n        /**\n         * Adds an `and` condition to the query or filter.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-data.WixDataFilter.html#and)\n         */\n        and(query: wix_data.WixDataQuery): wix_data.WixDataQuery;\n        /**\n         * Refines a query or filter to match items whose specified property value is within a specified range.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-data.WixDataFilter.html#between)\n         */\n        between(propertyName: string, rangeStart: string | number | Date, rangeEnd: string | number | Date): wix_data.WixDataQuery;\n        /**\n         * Refines a query or filter to match items whose specified property value contains a specified string.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-data.WixDataFilter.html#contains)\n         */\n        contains(propertyName: string, string: string): wix_data.WixDataQuery;\n        /**\n         * Refines a query or filter to match items whose specified property value ends with a specified string.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-data.WixDataFilter.html#endsWith)\n         */\n        endsWith(propertyName: string, string: string): wix_data.WixDataQuery;\n        /**\n         * Refines a query or filter to match items whose specified property value equals the specified value.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-data.WixDataFilter.html#eq)\n         */\n        eq(propertyName: string, value: any): wix_data.WixDataQuery;\n        /**\n         * Refines a query or filter to match items whose specified property value is greater than or equal to the specified value.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-data.WixDataFilter.html#ge)\n         */\n        ge(propertyName: string, value: string | number | Date): wix_data.WixDataQuery;\n        /**\n         * Refines a query or filter to match items whose specified property value is greater than the specified value.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-data.WixDataFilter.html#gt)\n         */\n        gt(propertyName: string, value: string | number | Date): wix_data.WixDataQuery;\n        /**\n         * Refines a query or filter to match items whose specified property values equals all of the specified `value` parameters.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-data.WixDataFilter.html#hasAll)\n         */\n        hasAll(propertyName: string, value: string | number | Date | any[]): wix_data.WixDataQuery;\n        /**\n         * Refines a query or filter to match items whose specified property value equals any of the specified `value` parameters.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-data.WixDataFilter.html#hasSome)\n         */\n        hasSome(propertyName: string, value: string | number | Date | any[]): wix_data.WixDataQuery;\n        /**\n         * Refines a query or filter to match items whose specified property does not exist or does not have any value.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-data.WixDataFilter.html#isEmpty)\n         */\n        isEmpty(propertyName: string): wix_data.WixDataQuery;\n        /**\n         * Refines a query or filter to match items whose specified property has any value.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-data.WixDataFilter.html#isNotEmpty)\n         */\n        isNotEmpty(propertyName: string): wix_data.WixDataQuery;\n        /**\n         * Refines a query or filter to match items whose specified property value is less than or equal to the specified value.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-data.WixDataFilter.html#le)\n         */\n        le(propertyName: string, value: string | number | Date): wix_data.WixDataQuery;\n        /**\n         * Refines a query or filter to match items whose specified property value is less than the specified value.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-data.WixDataFilter.html#lt)\n         */\n        lt(propertyName: string, value: string | number | Date): wix_data.WixDataQuery;\n        /**\n         * Refines a query or filter to match items whose specified property value does not equal the specified value.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-data.WixDataFilter.html#ne)\n         */\n        ne(propertyName: string, value: any): wix_data.WixDataQuery;\n        /**\n         * Adds a `not` condition to the query or filter.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-data.WixDataFilter.html#not)\n         */\n        not(query: wix_data.WixDataQuery): wix_data.WixDataQuery;\n        /**\n         * Adds an `or` condition to the query or filter.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-data.WixDataFilter.html#or)\n         */\n        or(query: wix_data.WixDataQuery): wix_data.WixDataQuery;\n        /**\n         * Refines a query or filter to match items whose specified property value starts with a specified string.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-data.WixDataFilter.html#startsWith)\n         */\n        startsWith(propertyName: string, string: string): wix_data.WixDataQuery;\n    }\n    /**\n     * Contains functionality for refining a data query.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-data.WixDataQuery.html#)\n     */\n    interface WixDataQuery extends wix_data.WixDataFilter {\n        /**\n         * Adds a sort to a query or sort, sorting by the specified properties in ascending order.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-data.WixDataQuery.html#ascending)\n         */\n        ascending(...propertyName: string[]): wix_data.WixDataQuery;\n        /**\n         * Returns the number of items that match the query.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-data.WixDataQuery.html#count)\n         */\n        count(options?: wix_data.WixDataOptions): Promise<number>;\n        /**\n         * Adds a sort to a query or sort, sorting by the specified properties in descending order.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-data.WixDataQuery.html#descending)\n         */\n        descending(...propertyName: string[]): wix_data.WixDataQuery;\n        /**\n         * Returns the distinct values that match the query, without duplicates.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-data.WixDataQuery.html#distinct)\n         */\n        distinct(propertyName: string, options?: wix_data.WixDataOptions): Promise<wix_data.WixDataQueryResult>;\n        /**\n         * Returns the items that match the query.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-data.WixDataQuery.html#find)\n         */\n        find(options?: wix_data.WixDataOptions): Promise<wix_data.WixDataQueryResult>;\n        /**\n         * Includes referenced items for the specified properties in a query's results.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-data.WixDataQuery.html#include)\n         */\n        include(...propertyName: string[]): wix_data.WixDataQuery;\n        /**\n         * Limits the number of items the query returns.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-data.WixDataQuery.html#limit)\n         */\n        limit(limit: number): wix_data.WixDataQuery;\n        /**\n         * Sets the number of items to skip before returning query results.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-data.WixDataQuery.html#skip)\n         */\n        skip(skip: number): wix_data.WixDataQuery;\n    }\n    /**\n     * The results of a data reference query, containing the retrieved items.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-data.WixDataQueryReferencedResult.html#)\n     */\n    interface WixDataQueryReferencedResult {\n        /**\n         * Returns the items that match the reference query.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-data.WixDataQueryReferencedResult.html#items)\n         */\n        readonly items: any[];\n        /**\n         * Returns the total number of items that match the reference query.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-data.WixDataQueryReferencedResult.html#totalCount)\n         */\n        readonly totalCount: number;\n        /**\n         * Indicates if the reference query has more results.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-data.WixDataQueryReferencedResult.html#hasNext)\n         */\n        hasNext(): boolean;\n        /**\n         * Indicates if the reference query has previous results.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-data.WixDataQueryReferencedResult.html#hasPrev)\n         */\n        hasPrev(): boolean;\n        /**\n         * Retrieves the next page of reference query results.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-data.WixDataQueryReferencedResult.html#next)\n         */\n        next(): Promise<wix_data.WixDataQueryReferencedResult>;\n        /**\n         * Retrieves the previous page of reference query results.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-data.WixDataQueryReferencedResult.html#prev)\n         */\n        prev(): Promise<wix_data.WixDataQueryReferencedResult>;\n    }\n    /**\n     * The results of a data query, containing the retrieved items.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-data.WixDataQueryResult.html#)\n     */\n    interface WixDataQueryResult {\n        /**\n         * Returns the index of the current results page number.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-data.WixDataQueryResult.html#currentPage)\n         */\n        readonly currentPage: number;\n        /**\n         * Returns the items that match the query.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-data.WixDataQueryResult.html#items)\n         */\n        readonly items: any[];\n        /**\n         * Returns the number of items in the current results page.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-data.WixDataQueryResult.html#length)\n         */\n        readonly length: number;\n        /**\n         * Returns the query page size.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-data.WixDataQueryResult.html#pageSize)\n         */\n        readonly pageSize: number;\n        /**\n         * Indicates if referenced items have been trimmed from the results.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-data.WixDataQueryResult.html#partialIncludes)\n         */\n        readonly partialIncludes: boolean;\n        /**\n         * Returns the query used to get the current results.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-data.WixDataQueryResult.html#query)\n         */\n        readonly query: wix_data.WixDataQuery;\n        /**\n         * Returns the total number of items that match the query.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-data.WixDataQueryResult.html#totalCount)\n         */\n        readonly totalCount: number;\n        /**\n         * Returns the total number of pages the query produced.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-data.WixDataQueryResult.html#totalPages)\n         */\n        readonly totalPages: number;\n        /**\n         * Indicates if the query has more results.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-data.WixDataQueryResult.html#hasNext)\n         */\n        hasNext(): boolean;\n        /**\n         * Indicates the query has previous results.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-data.WixDataQueryResult.html#hasPrev)\n         */\n        hasPrev(): boolean;\n        /**\n         * Retrieves the next page of query results.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-data.WixDataQueryResult.html#next)\n         */\n        next(): Promise<wix_data.WixDataQueryResult>;\n        /**\n         * Retrieves the previous page of query results.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-data.WixDataQueryResult.html#prev)\n         */\n        prev(): Promise<wix_data.WixDataQueryResult>;\n    }\n    /**\n     * Provides functionality for sorting a query.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-data.WixDataSort.html#)\n     */\n    interface WixDataSort {\n        /**\n         * Adds a sort to a query or sort, sorting by the specified properties in ascending order.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-data.WixDataSort.html#ascending)\n         */\n        ascending(...propertyName: string[]): wix_data.WixDataQuery;\n        /**\n         * Adds a sort to a query or sort, sorting by the specified properties in descending order.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-data.WixDataSort.html#descending)\n         */\n        descending(...propertyName: string[]): wix_data.WixDataQuery;\n    }\n    /**\n     * An object returned by the `bulkRemove()` function.\n     */\n    type WixDataBulkRemoveResult = {\n        /**\n         * The number of removed items.\n         */\n        removed: number;\n        /**\n         * The number of skipped items.\n         */\n        skipped: number;\n        /**\n         * List of IDs of removed items.\n         */\n        removedItemIds: string[];\n        /**\n         * List of errors.\n         */\n        errors: Error[];\n    };\n    /**\n     * An object returned by Wix Data bulk operations.\n     */\n    type WixDataBulkResult = {\n        /**\n         * The number of inserted items.\n         */\n        inserted: number;\n        /**\n         * The number of updated items.\n         */\n        updated: number;\n        /**\n         * The number of skipped items.\n         */\n        skipped: number;\n        /**\n         * List of IDs of inserted items.\n         */\n        insertedItemIds: string[];\n        /**\n         * List of IDs of updated items.\n         */\n        updatedItemIds: string[];\n        /**\n         * List of errors.\n         */\n        errors: Error[];\n    };\n    /**\n     * An object that you pass as the `options` parameter that modifies how an operation is performed.\n     */\n    type WixDataOptions = {\n        /**\n         * Prevents [permission](https://support.wix.com/en/article/about-collection-permissions) checks from running for the operation. Defaults to `false`. Can only be used in backend code.\n         */\n        suppressAuth?: boolean;\n        /**\n         * Prevents [hooks](https://support.wix.com/en/article/wix-code-how-to-use-data-hooks) from running for the operation. Can only be used in backend code.\n         */\n        suppressHooks?: boolean;\n        /**\n         * Optional filters specific to querying [Wix Stores Products Collection Fields](https://support.wix.com/en/article/velo-wix-stores-products-collection-fields).\n         */\n        appOptions?: wix_data.WixStoresProductQuery;\n        /**\n         * When `true`, reads data from the primary database instance.\n         * This decreases performance but ensures data retrieved is up to date even immediately after an update.\n         * See [Wix Data and Eventual Consistency](https://www.wix.com/velo/reference/wix-data/introduction#wix-data_introduction_wix-data-and-eventual-consistency) for more information.\n         *\n         * Default: `false`\n         */\n        consistentRead?: boolean;\n    };\n    /**\n     * An object for controlling the order of returned referenced items.\n     */\n    type WixDataQueryReferencedOptions = {\n        /**\n         * Order of the returned referenced items. Sorted by the date each item was referenced.\n         *\n         * Supported values:\n         * - `'asc'`: Ascending\n         * - `'desc'`: Descending\n         */\n        order?: string;\n        /**\n         * Prevents [permission](https://support.wix.com/en/article/about-collection-permissions) checks from running for the operation. Defaults to `false`. Can only be used in backend code.\n         */\n        suppressAuth?: boolean;\n        /**\n         * When `true`, reads data from the primary database instance.\n         * This decreases performance but ensures data retrieved is up to date even immediately after an update.\n         * See [Wix Data and Eventual Consistency](https://www.wix.com/velo/reference/wix-data/introduction#wix-data_introduction_wix-data-and-eventual-consistency) for more information.\n         *\n         * Default: `false`\n         */\n        consistentRead?: boolean;\n    };\n    /**\n     * An object that you pass as the `options.appOptions` parameter that allows for Wix Stores/Products query specificity.\n     */\n    type WixStoresProductQuery = {\n        /**\n         * Whether to include product variants in the query. Default is `false`.\n         */\n        includeVariants?: boolean;\n        /**\n         * Whether to include [hidden products](https://support.wix.com/en/article/wix-stores-changing-the-visibility-of-a-product) in the query. Default is `false`.\n         */\n        includeHiddenProducts?: boolean;\n    };\n}\ndeclare namespace wix_ecom_backend {\n    /**\n     * [Read more](https://www.wix.com/corvid/reference/wix-ecom-backend.Cart.html#)\n     */\n    interface Cart {\n        /**\n         * Adds catalog line items and/or custom line items to a cart.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-ecom-backend.Cart.html#addToCart)\n         */\n        addToCart(_id: string, options: wix_ecom_backend.Cart.AddToCartOptions): Promise<wix_ecom_backend.Cart.AddToCartResponse>;\n        /**\n         * Creates a new cart.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-ecom-backend.Cart.html#createCart)\n         */\n        createCart(options: wix_ecom_backend.Cart.CreateCartOptions): Promise<wix_ecom_backend.Cart.Cart>;\n        /**\n         * Creates a checkout from the current site visitor’s cart.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-ecom-backend.Cart.html#createCheckout)\n         */\n        createCheckout(_id: string, options: wix_ecom_backend.Cart.CreateCheckoutOptions): Promise<wix_ecom_backend.Cart.CreateCheckoutResponse>;\n        /**\n         * Deletes a cart.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-ecom-backend.Cart.html#deleteCart)\n         */\n        deleteCart(_id: string): Promise<void>;\n        /**\n         * Estimates the subtotal and total for current site visitor’s cart. Totals include tax and are based on the selected carrier service, shipping address, and billing information.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-ecom-backend.Cart.html#estimateTotals)\n         */\n        estimateTotals(_id: string, options: wix_ecom_backend.Cart.EstimateTotalsOptions): Promise<wix_ecom_backend.Cart.EstimateTotalsResponse>;\n        /**\n         * Retrieves a cart.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-ecom-backend.Cart.html#getCart)\n         */\n        getCart(_id: string): Promise<wix_ecom_backend.Cart.Cart>;\n        /**\n         * Removes the coupon from a specified cart.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-ecom-backend.Cart.html#removeCoupon)\n         */\n        removeCoupon(_id: string): Promise<wix_ecom_backend.Cart.RemoveCouponResponse>;\n        /**\n         * Removes line items from the specified cart.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-ecom-backend.Cart.html#removeLineItems)\n         */\n        removeLineItems(_id: string, lineItemIds: Array<string>): Promise<wix_ecom_backend.Cart.RemoveLineItemsResponse>;\n        /**\n         * Updates a specified cart's properties.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-ecom-backend.Cart.html#updateCart)\n         */\n        updateCart(_id: string, options: wix_ecom_backend.Cart.UpdateCartOptions): Promise<wix_ecom_backend.Cart.Cart>;\n        /**\n         * Updates the quantity of one or more line items in a specified cart.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-ecom-backend.Cart.html#updateLineItemsQuantity)\n         */\n        updateLineItemsQuantity(_id: string, lineItems: Array<wix_ecom_backend.Cart.LineItemQuantityUpdate>): Promise<wix_ecom_backend.Cart.UpdateLineItemsQuantityResponse>;\n    }\n    namespace Cart {\n        type ActionEvent = {\n            bodyAsJson?: string;\n        };\n        type AddToCartOptions = {\n            /**\n             * Custom line items.\n             */\n            customLineItems?: Array<wix_ecom_backend.Cart.CustomLineItem>;\n            /**\n             * Catalog line items.\n             */\n            lineItems?: Array<wix_ecom_backend.Cart.LineItem>;\n        };\n        type AddToCartRequest = {\n            /**\n             * Cart ID.\n             */\n            _id: string;\n            /**\n             * Custom line items.\n             */\n            customLineItems?: Array<wix_ecom_backend.Cart.CustomLineItem>;\n            /**\n             * Catalog line items.\n             */\n            lineItems?: Array<wix_ecom_backend.Cart.LineItem>;\n        };\n        type AddToCartResponse = {\n            /**\n             * Updated cart.\n             */\n            cart?: wix_ecom_backend.Cart.Cart;\n        };\n        type AddToCurrentCartRequest = {\n            /**\n             * Custom line items.\n             */\n            customLineItems?: Array<wix_ecom_backend.Cart.CustomLineItem>;\n            /**\n             * Catalog line items.\n             */\n            lineItems?: Array<wix_ecom_backend.Cart.LineItem>;\n        };\n        type AdditionalFee = {\n            /**\n             * Additional fee's unique code (or ID) for future processing\n             */\n            code?: string;\n            /**\n             * Translated additional fee's name\n             */\n            name?: string;\n            /**\n             * Additional fee's price\n             */\n            price?: wix_ecom_backend.Cart.MultiCurrencyPrice;\n            /**\n             * Provider's app id\n             */\n            providerAppId?: string;\n            /**\n             * Tax details\n             */\n            taxDetails?: wix_ecom_backend.Cart.ItemTaxFullDetails;\n        };\n        type Address = {\n            /**\n             * Main address line (usually street name and number).\n             */\n            addressLine1?: string;\n            /**\n             * Free text providing more detailed address info. Usually contains apt, suite, floor.\n             */\n            addressLine2?: string;\n            /**\n             * City name.\n             */\n            city?: string;\n            /**\n             * Two-letter country code in [ISO-3166 alpha-2](https://www.iso.org/obp/ui/#search/code/) format.\n             */\n            country?: string;\n            /**\n             * Postal or zip code.\n             */\n            postalCode?: string;\n            /**\n             * Street address object, with number, name, and apartment number in separate fields.\n             */\n            streetAddress?: wix_ecom_backend.Cart.StreetAddress;\n            /**\n             * Code for a subdivision (such as state, prefecture, or province) in [ISO 3166-2](https://www.iso.org/standard/72483.html) format.\n             */\n            subdivision?: string;\n        };\n        type AddressLocation = {\n            /**\n             * Address latitude.\n             */\n            latitude?: number;\n            /**\n             * Address longitude.\n             */\n            longitude?: number;\n        };\n        type AddressWithContact = {\n            /**\n             * Address.\n             */\n            address?: wix_ecom_backend.Cart.Address;\n            /**\n             * Contact details.\n             */\n            contactDetails?: wix_ecom_backend.Cart.ApiFullAddressContactDetails;\n        };\n        type ApiFullAddressContactDetails = {\n            /**\n             * Company name.\n             */\n            company?: string;\n            /**\n             * First name.\n             */\n            firstName?: string;\n            /**\n             * Last name.\n             */\n            lastName?: string;\n            /**\n             * Phone number.\n             */\n            phone?: string;\n            /**\n             * Tax information (for Brazil only). If ID is provided, `vatId.type` must also be set - UNSPECIFIED is not allowed.\n             */\n            vatId?: wix_ecom_backend.Cart.VatId;\n        };\n        type ApplicationError = {\n            code?: string;\n            data?: Object;\n            description?: string;\n        };\n        type AppliedCoupon = {\n            /**\n             * Coupon code\n             */\n            code?: string;\n            /**\n             * Converted discount value\n             */\n            convertedDiscountValue?: string;\n            /**\n             * Coupon internal ID\n             */\n            couponId?: string;\n            /**\n             * Type (e.g., moneyOff, percentOff)\n             */\n            couponType?: string;\n            /**\n             * Discount value\n             */\n            discountValue?: string;\n            /**\n             * Coupon name\n             */\n            name?: string;\n        };\n        type AppliedDiscount = {\n            /**\n             * Coupon details.\n             */\n            coupon?: wix_ecom_backend.Cart.V1Coupon;\n            /**\n             * Discount rule\n             */\n            discountRule?: wix_ecom_backend.Cart.DiscountRule;\n            /**\n             * Discount type.\n             */\n            discountType?: string;\n            /**\n             * IDs of the line items the discount applies to.\n             */\n            lineItemIds?: Array<string>;\n            /**\n             * Merchant discount.\n             */\n            merchantDiscount?: wix_ecom_backend.Cart.V1MerchantDiscount;\n        };\n        type AppliedDiscountDiscountSourceOneOf = {\n            /**\n             * Coupon details.\n             */\n            coupon?: wix_ecom_backend.Cart.V1Coupon;\n            /**\n             * Discount rule\n             */\n            discountRule?: wix_ecom_backend.Cart.DiscountRule;\n            /**\n             * Merchant discount.\n             */\n            merchantDiscount?: wix_ecom_backend.Cart.V1MerchantDiscount;\n        };\n        type AutoTaxFallbackCalculationDetails = {\n            /**\n             * invalid request (i.e. address), timeout, internal error, license error, and others will be encoded here\n             */\n            error?: wix_ecom_backend.Cart.ApplicationError;\n            /**\n             * Reason for fallback. Supported values:\n             * + `\"AUTO_TAX_FAILED\"`\n             * + `\"AUTO_TAX_DEACTIVATED\"`\n             */\n            fallbackReason?: string;\n        };\n        type BuyerDetails = {\n            /**\n             * Email address\n             */\n            email?: string;\n            /**\n             * Customer's first name\n             */\n            firstName?: string;\n            /**\n             * Customer's last name\n             */\n            lastName?: string;\n            /**\n             * Phone number\n             */\n            phone?: string;\n        };\n        type BuyerInfo = {\n            /**\n             * Contact ID. Auto-created if one does not yet exist. For more information, see the [Contacts API](https://www.wix.com/velo/reference/wix-crm-backend/contacts/introduction).\n             */\n            contactId?: string;\n            /**\n             * Member ID - if the buyer is a site member.\n             */\n            memberId?: string;\n            /**\n             * User ID - if the cart owner is a Wix user.\n             */\n            userId?: string;\n            /**\n             * Visitor ID - if the buyer is **not** a site member.\n             */\n            visitorId?: string;\n        };\n        type BuyerInfoIdOneOf = {\n            /**\n             * Member ID - if the buyer is a site member.\n             */\n            memberId?: string;\n            /**\n             * User ID - if the cart owner is a Wix user.\n             */\n            userId?: string;\n            /**\n             * Visitor ID - if the buyer is **not** a site member.\n             */\n            visitorId?: string;\n        };\n        type CalculatedLineItem = {\n            /**\n             * Line item ID.\n             */\n            lineItemId?: string;\n            /**\n             * Type of selected payment option for current item. Defaults to `\"FULL_PAYMENT_ONLINE\"`.\n             * + `\"FULL_PAYMENT_ONLINE\"` - The entire payment for this item happens as part of the checkout.\n             * + `\"FULL_PAYMENT_OFFLINE\"` - The entire payment for this item happens after the checkout. For example, when using cash, check, or other offline payment methods.\n             * + `\"MEMBERSHIP\"` - Payment for this item is done by charging a membership. When this option is used, `lineItem.price.amount` will be 0.\n             */\n            paymentOption?: string;\n            /**\n             * Price breakdown for this line item.\n             */\n            pricesBreakdown?: wix_ecom_backend.Cart.LineItemPricesData;\n        };\n        type CalculationErrors = {\n            /**\n             * Carrier errors.\n             */\n            carrierErrors?: wix_ecom_backend.Cart.CarrierErrors;\n            /**\n             * Coupon calculation error.\n             */\n            couponCalculationError?: wix_ecom_backend.Cart.Details;\n            /**\n             * Discount Rule calculation error.\n             */\n            discountsCalculationError?: wix_ecom_backend.Cart.Details;\n            /**\n             * General shipping calculation error.\n             */\n            generalShippingCalculationError?: wix_ecom_backend.Cart.Details;\n            /**\n             * Gift card calculation error.\n             */\n            giftCardCalculationError?: wix_ecom_backend.Cart.Details;\n            /**\n             * Membership payment methods calculation errors\n             * For example, will indicate that a line item that must be paid with membership payment doesn't have one or selected memberships are invalid\n             */\n            membershipError?: wix_ecom_backend.Cart.Details;\n            /**\n             * Order validation errors.\n             */\n            orderValidationErrors?: Array<wix_ecom_backend.Cart.ApplicationError>;\n            /**\n             * Tax calculation error.\n             */\n            taxCalculationError?: wix_ecom_backend.Cart.Details;\n        };\n        type CalculationErrorsShippingCalculationErrorOneOf = {\n            /**\n             * Carrier errors.\n             */\n            carrierErrors?: wix_ecom_backend.Cart.CarrierErrors;\n            /**\n             * General shipping calculation error.\n             */\n            generalShippingCalculationError?: wix_ecom_backend.Cart.Details;\n        };\n        type CarrierError = {\n            /**\n             * Carrier ID.\n             */\n            carrierId?: string;\n            /**\n             * Error details.\n             */\n            error?: wix_ecom_backend.Cart.Details;\n        };\n        type CarrierErrors = {\n            /**\n             * Carrier errors.\n             */\n            errors?: Array<wix_ecom_backend.Cart.CarrierError>;\n        };\n        type CarrierServiceOption = {\n            /**\n             * Carrier ID.\n             */\n            carrierId?: string;\n            /**\n             * Shipping options offered by this carrier for this request.\n             */\n            shippingOptions?: Array<wix_ecom_backend.Cart.ShippingOption>;\n        };\n        type Cart = {\n            /**\n             * Date and time the cart was created.\n             */\n            _createdDate?: Date;\n            /**\n             * Cart ID.\n             */\n            _id?: string;\n            /**\n             * Date and time the cart was updated.\n             */\n            _updatedDate?: Date;\n            /**\n             * Cart discounts.\n             */\n            appliedDiscounts?: Array<wix_ecom_backend.Cart.CartDiscount>;\n            /**\n             * Buyer information.\n             */\n            buyerInfo?: wix_ecom_backend.Cart.BuyerInfo;\n            /**\n             * Language for communication with the buyer. Defaults to the site language.\n             * For a site that supports multiple languages, this is the language the buyer selected.\n             */\n            buyerLanguage?: string;\n            /**\n             * [Buyer note](https://support.wix.com/en/article/wix-stores-viewing-buyer-notes) left by the customer.\n             */\n            buyerNote?: string;\n            /**\n             * ID of the checkout related to this cart.\n             */\n            checkoutId?: string;\n            /**\n             * Contact info.\n             */\n            contactInfo?: wix_ecom_backend.Cart.AddressWithContact;\n            /**\n             * All the converted prices are presented in this currency.\n             */\n            conversionCurrency?: string;\n            /**\n             * Currency used for pricing.\n             */\n            currency?: string;\n            /**\n             * Line items.\n             */\n            lineItems?: Array<wix_ecom_backend.Cart.LineItem>;\n            /**\n             * Site language in which original values are shown.\n             */\n            siteLanguage?: string;\n            /**\n             * Whether tax is included in line item prices.\n             */\n            taxIncludedInPrices?: boolean;\n            /**\n             * Weight measurement unit - defaults to site's weight unit. Supported values:\n             * + `\"KG\"`\n             * + `\"LB\"`\n             */\n            weightUnit?: string;\n        };\n        type CartAddress = {\n            /**\n             * Address\n             */\n            address?: wix_ecom_backend.Cart.CommonAddress;\n            /**\n             * Contact details\n             */\n            contactDetails?: wix_ecom_backend.Cart.FullAddressContactDetails;\n        };\n        type CartCompletedEvent = {\n            /**\n             * Coupon applied to this cart\n             */\n            appliedCoupon?: wix_ecom_backend.Cart.AppliedCoupon;\n            /**\n             * Customer's billing address\n             */\n            billingAddress?: wix_ecom_backend.Cart.CartAddress;\n            /**\n             * Customer's Wix ID\n             */\n            buyerInfo?: wix_ecom_backend.Cart.V1BuyerInfo;\n            /**\n             * Message from the customer\n             */\n            buyerNote?: string;\n            cartId?: string;\n            /**\n             * Time the cart was created\n             */\n            completedTime?: Date;\n            /**\n             * Currency used for pricing in this store\n             */\n            currency?: wix_ecom_backend.Cart.Currency;\n            /**\n             * Cart shipping information\n             */\n            shippingInfo?: wix_ecom_backend.Cart.ShippingInfo;\n            /**\n             * Totals for order's line items\n             */\n            totals?: wix_ecom_backend.Cart.Totals;\n            /**\n             * Weight measurement unit - defaults to site's weight unit. Supported values:\n             * + `\"KG\"`\n             * + `\"LB\"`\n             */\n            weightUnit?: string;\n        };\n        type CartDiscount = {\n            /**\n             * Coupon details.\n             */\n            coupon?: wix_ecom_backend.Cart.Coupon;\n            /**\n             * Merchant discount.\n             */\n            merchantDiscount?: wix_ecom_backend.Cart.MerchantDiscount;\n        };\n        type CartDiscountDiscountSourceOneOf = {\n            /**\n             * Coupon details.\n             */\n            coupon?: wix_ecom_backend.Cart.Coupon;\n            /**\n             * Merchant discount.\n             */\n            merchantDiscount?: wix_ecom_backend.Cart.MerchantDiscount;\n        };\n        type CatalogReference = {\n            /**\n             * App ID of the catalog the item comes from. For example, the Wix Stores `appId` is `\"1380b703-ce81-ff05-f115-39571d94dfcd\"`.\n             */\n            appId?: string;\n            /**\n             * ID of the item within its catalog. For example, `productId` for Wix Stores.\n             */\n            catalogItemId?: string;\n            /**\n             * Additional info in key:value form. For example, for a product variant from Wix Stores Catalog, `options` field would hold something like one of the following:\n             * + `{\"Size\": \"M\", \"Color\": \"Red\"}`\n             * + `{\"variantId\": \"\"}`.\n             */\n            options?: Object;\n        };\n        type Color = {\n            /**\n             * HEX or RGB color code for display.\n             */\n            code?: string;\n            /**\n             * Description line color name in site's default language.\n             */\n            original?: string;\n            /**\n             * Description line color name translated into buyer's language. Defaults to `original` when not defined.\n             */\n            translated?: string;\n        };\n        type CommonAddress = {\n            /**\n             * Main address line, usually street and number as free text.\n             */\n            addressLine?: string;\n            /**\n             * Main address line, usually street and number as free text.\n             */\n            addressLine1?: string;\n            /**\n             * Free text providing more detailed address info. Usually contains Apt, Suite, and Floor.\n             */\n            addressLine2?: string;\n            /**\n             * City name.\n             */\n            city?: string;\n            /**\n             * Country code.\n             */\n            country?: string;\n            /**\n             * Zip/postal code.\n             */\n            postalCode?: string;\n            /**\n             * Street name and number.\n             */\n            streetAddress?: wix_ecom_backend.Cart.StreetAddress;\n            /**\n             * Subdivision. Usually a state, region, prefecture, or province code, according to [ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-2).\n             */\n            subdivision?: string;\n        };\n        type CommonAddressStreetOneOf = {\n            /**\n             * Main address line, usually street and number as free text.\n             */\n            addressLine?: string;\n            /**\n             * Street name and number.\n             */\n            streetAddress?: wix_ecom_backend.Cart.StreetAddress;\n        };\n        type Coupon = {\n            /**\n             * Coupon ID.\n             */\n            _id?: string;\n            /**\n             * Coupon code.\n             */\n            code?: string;\n        };\n        type CreateCartOptions = {\n            /**\n             * Cart info.\n             */\n            cartInfo?: wix_ecom_backend.Cart.Cart;\n            /**\n             * The code of an existing coupon to apply to the cart. For more information, see the [Coupons API](https://www.wix.com/velo/reference/wix-marketing-backend/coupons).\n             */\n            couponCode?: string;\n            /**\n             * Custom line items.\n             */\n            customLineItems?: Array<wix_ecom_backend.Cart.CustomLineItem>;\n            /**\n             * Catalog line items.\n             */\n            lineItems?: Array<wix_ecom_backend.Cart.LineItem>;\n            /**\n             * Merchant discounts to apply to specific line items. If no `lineItemIds` are passed, the discount will apply to the whole cart.\n             */\n            merchantDiscounts?: Array<wix_ecom_backend.Cart.MerchantDiscountInput>;\n        };\n        type CreateCartRequest = {\n            /**\n             * Cart info.\n             */\n            cartInfo?: wix_ecom_backend.Cart.Cart;\n            /**\n             * The code of an existing coupon to apply to the cart. For more information, see the [Coupons API](https://www.wix.com/velo/reference/wix-marketing-backend/coupons).\n             */\n            couponCode?: string;\n            /**\n             * Custom line items.\n             */\n            customLineItems?: Array<wix_ecom_backend.Cart.CustomLineItem>;\n            /**\n             * Catalog line items.\n             */\n            lineItems?: Array<wix_ecom_backend.Cart.LineItem>;\n            /**\n             * Merchant discounts to apply to specific line items. If no `lineItemIds` are passed, the discount will apply to the whole cart.\n             */\n            merchantDiscounts?: Array<wix_ecom_backend.Cart.MerchantDiscountInput>;\n        };\n        type CreateCartResponse = {\n            /**\n             * Cart.\n             */\n            cart?: wix_ecom_backend.Cart.Cart;\n        };\n        type CreateCheckoutFromCurrentCartRequest = {\n            /**\n             * Billing address. Used for calculating tax if all the items in the cart are not shippable.\n             */\n            billingAddress?: wix_ecom_backend.Cart.Address;\n            /**\n             * Sales channel type. Supported values:\n             * + `\"AMAZON\"`\n             * + `\"BACKOFFICE_MERCHANT\"`\n             * + `\"EBAY\"`\n             * + `\"OTHER_PLATFORM\"`\n             * + `\"POS\"`\n             * + `\"WEB\"`\n             * + `\"WISH\"`\n             * + `\"WIX_APP_STORE\"`\n             * + `\"WIX_INVOICES\"`\n             */\n            channelType?: string;\n            /**\n             * Mandatory when setting a billing or shipping address if the site visitor isn't logged in.\n             */\n            email?: string;\n            /**\n             * Selected shipping option.\n             */\n            selectedShippingOption?: wix_ecom_backend.Cart.SelectedShippingOption;\n            /**\n             * Shipping address. Used for calculating tax and shipping (when applicable).\n             */\n            shippingAddress?: wix_ecom_backend.Cart.Address;\n        };\n        type CreateCheckoutOptions = {\n            /**\n             * Billing address. Used for calculating tax if all the items in the cart are not shippable.\n             */\n            billingAddress?: wix_ecom_backend.Cart.Address;\n            /**\n             * Sales channel type. Supported values:\n             * + `\"AMAZON\"`\n             * + `\"BACKOFFICE_MERCHANT\"`\n             * + `\"EBAY\"`\n             * + `\"OTHER_PLATFORM\"`\n             * + `\"POS\"`\n             * + `\"WEB\"`\n             * + `\"WISH\"`\n             * + `\"WIX_APP_STORE\"`\n             * + `\"WIX_INVOICES\"`\n             */\n            channelType?: string;\n            /**\n             * Mandatory when setting a billing or shipping address if the site visitor isn't logged in.\n             */\n            email?: string;\n            /**\n             * Selected shipping option.\n             */\n            selectedShippingOption?: wix_ecom_backend.Cart.SelectedShippingOption;\n            /**\n             * Shipping address. Used for calculating tax and shipping (when applicable).\n             */\n            shippingAddress?: wix_ecom_backend.Cart.Address;\n        };\n        type CreateCheckoutRequest = {\n            /**\n             * Cart ID.\n             */\n            _id: string;\n            /**\n             * Billing address. Used for calculating tax if all the items in the cart are not shippable.\n             */\n            billingAddress?: wix_ecom_backend.Cart.Address;\n            /**\n             * Sales channel type. Supported values:\n             * + `\"AMAZON\"`\n             * + `\"BACKOFFICE_MERCHANT\"`\n             * + `\"EBAY\"`\n             * + `\"OTHER_PLATFORM\"`\n             * + `\"POS\"`\n             * + `\"WEB\"`\n             * + `\"WISH\"`\n             * + `\"WIX_APP_STORE\"`\n             * + `\"WIX_INVOICES\"`\n             */\n            channelType?: string;\n            /**\n             * Mandatory when setting a billing or shipping address if the site visitor isn't logged in.\n             */\n            email?: string;\n            /**\n             * Selected shipping option.\n             */\n            selectedShippingOption?: wix_ecom_backend.Cart.SelectedShippingOption;\n            /**\n             * Shipping address. Used for calculating tax and shipping (when applicable).\n             */\n            shippingAddress?: wix_ecom_backend.Cart.Address;\n        };\n        type CreateCheckoutResponse = {\n            /**\n             * The newly created checkout's ID.\n             */\n            checkoutId?: string;\n        };\n        type Currency = {\n            /**\n             * Currency code\n             */\n            code?: string;\n            /**\n             * Currency symbol\n             */\n            symbol?: string;\n        };\n        type CustomLineItem = {\n            /**\n             * Custom line item ID. Defaults to an auto-generated ID.\n             */\n            _id?: string;\n            /**\n             * Custom line item description lines. Used for displaying the cart, checkout and order.\n             */\n            descriptionLines?: Array<wix_ecom_backend.Cart.DescriptionLine>;\n            /**\n             * Custom line item media. Supported formats:\n             * + Link to an image/video from the [Wix Media Manager](https://support.wix.com/en/article/wix-media-about-the-media-manager) - `\"wix:image://v1/3c76e2_c53...4ea4~mv2.jpg#originWidth=1000&originHeight=1000\"`.\n             * + An image from the web - `\"http(s)://\"`.\n             */\n            media?: string;\n            /**\n             * Custom line item name.\n             */\n            name?: string;\n            /**\n             * Custom line item price.\n             */\n            price?: string;\n            /**\n             * Custom line item quantity.\n             */\n            quantity?: number;\n        };\n        type DeleteCartRequest = {\n            /**\n             * ID of the cart to delete.\n             */\n            _id: string;\n        };\n        type DeleteCartResponse = {};\n        type DeleteCurrentCartRequest = {};\n        type DeliveryLogistics = {\n            /**\n             * Expected delivery time, in free text. For example, \"3-5 business days\".\n             */\n            deliveryTime?: string;\n            /**\n             * Instructions for caller, e.g for pickup: \"Please deliver during opening hours, and please don't park in disabled parking spot\".\n             */\n            instructions?: string;\n            /**\n             * Pickup details.\n             */\n            pickupDetails?: wix_ecom_backend.Cart.PickupDetails;\n        };\n        type Description = {\n            /**\n             * Subscription option description.\n             */\n            original?: string;\n            /**\n             * Translated subscription option name.\n             */\n            translated?: string;\n        };\n        type DescriptionLine = {\n            /**\n             * Description line color value.\n             */\n            colorInfo?: wix_ecom_backend.Cart.Color;\n            /**\n             * Description line name.\n             */\n            name?: wix_ecom_backend.Cart.DescriptionLineName;\n            /**\n             * Description line plain text value.\n             */\n            plainText?: wix_ecom_backend.Cart.PlainTextValue;\n        };\n        type DescriptionLineDescriptionLineValueOneOf = {};\n        type DescriptionLineName = {\n            /**\n             * Description line name in site's default language.\n             */\n            original?: string;\n            /**\n             * Description line name translated into buyer's language. Defaults to `original` when not defined.\n             */\n            translated?: string;\n        };\n        type DescriptionLineValueOneOf = {\n            /**\n             * Description line color value.\n             */\n            colorInfo?: wix_ecom_backend.Cart.Color;\n            /**\n             * Description line plain text value.\n             */\n            plainText?: wix_ecom_backend.Cart.PlainTextValue;\n        };\n        type Details = {\n            applicationError?: wix_ecom_backend.Cart.ApplicationError;\n            /**\n             * Deprecated in APIs. Used to enable migration from rendering arbitrary tracing to rest response.\n             */\n            tracing?: Record<string, string>;\n            validationError?: wix_ecom_backend.Cart.ValidationError;\n        };\n        type DetailsKindOneOf = {\n            applicationError?: wix_ecom_backend.Cart.ApplicationError;\n            validationError?: wix_ecom_backend.Cart.ValidationError;\n        };\n        type DiscountRule = {\n            /**\n             * Discount rule ID\n             */\n            _id?: string;\n            /**\n             * Discount value.\n             */\n            amount?: wix_ecom_backend.Cart.MultiCurrencyPrice;\n            /**\n             * Discount rule name\n             */\n            name?: wix_ecom_backend.Cart.DiscountRuleName;\n        };\n        type DiscountRuleName = {\n            /**\n             * Original discount rule name (in site's default language).\n             */\n            original?: string;\n            /**\n             * Discount rule name translated into buyer's language. Defaults to `original` when not defined.\n             */\n            translated?: string;\n        };\n        type DomainEvent = {\n            /**\n             * random GUID so clients can tell if event was already handled\n             */\n            _id?: string;\n            actionEvent?: wix_ecom_backend.Cart.ActionEvent;\n            createdEvent?: wix_ecom_backend.Cart.EntityCreatedEvent;\n            deletedEvent?: wix_ecom_backend.Cart.EntityDeletedEvent;\n            /**\n             * Assumes actions are also always typed to an entity_type\n             * Example: wix.stores.catalog.product, wix.bookings.session, wix.payments.transaction\n             */\n            entityFqdn?: string;\n            /**\n             * Assuming that all messages including Actions have id\n             * Example: The id of the specific order, the id of a specific campaign\n             */\n            entityId?: string;\n            /**\n             * The time of the event. Useful if there was a delay in dipatching\n             */\n            eventTime?: Date;\n            extendedFieldsUpdatedEvent?: wix_ecom_backend.Cart.ExtendedFieldsUpdatedEvent;\n            /**\n             * If present, indicates the action that triggered the event.\n             */\n            originatedFrom?: string;\n            /**\n             * This is top level to ease client code dipatching of messages (switch on entity_fqdn+slug)\n             * This is although the created/updated/deleted notion is duplication of the oneof types\n             * Example: created/updated/deleted/started/completed/email_opened\n             */\n            slug?: string;\n            /**\n             * A field that should be set if this event was triggered by an anonymize request.\n             * For example you must set it to true when sending an event as a result of a GDPR right to be forgotten request.\n             * NOTE: This field is not relevant for `EntityCreatedEvent` but is located here for better ergonomics of consumers.\n             */\n            triggeredByAnonymizeRequest?: boolean;\n            updatedEvent?: wix_ecom_backend.Cart.EntityUpdatedEvent;\n        };\n        type DomainEventBodyOneOf = {\n            actionEvent?: wix_ecom_backend.Cart.ActionEvent;\n            createdEvent?: wix_ecom_backend.Cart.EntityCreatedEvent;\n            deletedEvent?: wix_ecom_backend.Cart.EntityDeletedEvent;\n            extendedFieldsUpdatedEvent?: wix_ecom_backend.Cart.ExtendedFieldsUpdatedEvent;\n            updatedEvent?: wix_ecom_backend.Cart.EntityUpdatedEvent;\n        };\n        type Empty = {};\n        type EntityCreatedEvent = {\n            entityAsJson?: string;\n        };\n        type EntityDeletedEvent = {};\n        type EntityUpdatedEvent = {\n            /**\n             * Since platformized APIs only expose PATCH and not PUT we can't assume that the fields sent from the client are the actual diff.\n             * This means that to generate a list of changed fields (as opposed to sent fields) one needs to traverse both objects.\n             * We don't want to impose this on all developers and so we leave this traversal to the notification recipients which need it.\n             */\n            currentEntityAsJson?: string;\n        };\n        type EstimateCurrentCartTotalsRequest = {\n            /**\n             * Billing address. Used for calculating tax if all the items in the cart are not shippable.\n             */\n            billingAddress?: wix_ecom_backend.Cart.Address;\n            /**\n             * The selected membership payment options and which line items they apply to.\n             */\n            selectedMemberships?: wix_ecom_backend.Cart.SelectedMemberships;\n            /**\n             * Selected shipping option.\n             */\n            selectedShippingOption?: wix_ecom_backend.Cart.SelectedShippingOption;\n            /**\n             * Shipping address. Used for calculating tax and shipping (when applicable).\n             */\n            shippingAddress?: wix_ecom_backend.Cart.Address;\n        };\n        type EstimateTotalsOptions = {\n            /**\n             * Billing address. Used for calculating tax if all the items in the cart are not shippable.\n             */\n            billingAddress?: wix_ecom_backend.Cart.Address;\n            /**\n             * The selected membership payment options and which line items they apply to.\n             */\n            selectedMemberships?: wix_ecom_backend.Cart.SelectedMemberships;\n            /**\n             * Selected shipping option.\n             */\n            selectedShippingOption?: wix_ecom_backend.Cart.SelectedShippingOption;\n            /**\n             * Shipping address. Used for calculating tax and shipping (when applicable).\n             */\n            shippingAddress?: wix_ecom_backend.Cart.Address;\n        };\n        type EstimateTotalsRequest = {\n            /**\n             * Cart ID.\n             */\n            _id: string;\n            /**\n             * Billing address. Used for calculating tax if all the items in the cart are not shippable.\n             */\n            billingAddress?: wix_ecom_backend.Cart.Address;\n            /**\n             * The selected membership payment options and which line items they apply to.\n             */\n            selectedMemberships?: wix_ecom_backend.Cart.SelectedMemberships;\n            /**\n             * Selected shipping option.\n             */\n            selectedShippingOption?: wix_ecom_backend.Cart.SelectedShippingOption;\n            /**\n             * Shipping address. Used for calculating tax and shipping (when applicable).\n             */\n            shippingAddress?: wix_ecom_backend.Cart.Address;\n        };\n        type EstimateTotalsResponse = {\n            /**\n             * Additional fees\n             */\n            additionalFees?: Array<wix_ecom_backend.Cart.AdditionalFee>;\n            /**\n             * Applied discounts.\n             */\n            appliedDiscounts?: Array<wix_ecom_backend.Cart.AppliedDiscount>;\n            /**\n             * Calculated line items.\n             */\n            calculatedLineItems?: Array<wix_ecom_backend.Cart.CalculatedLineItem>;\n            /**\n             * Calculation errors.\n             */\n            calculationErrors?: wix_ecom_backend.Cart.CalculationErrors;\n            /**\n             * Cart.\n             */\n            cart?: wix_ecom_backend.Cart.Cart;\n            /**\n             * Currency used for pricing in this store.\n             */\n            currency?: string;\n            /**\n             * Applied gift card.\n             */\n            giftCard?: wix_ecom_backend.Cart.GiftCard;\n            /**\n             * Information about valid and invalid memberships, and which ones are selected for usage.\n             */\n            membershipOptions?: wix_ecom_backend.Cart.MembershipOptions;\n            /**\n             * Remaining amount for the order to be fully paid.\n             */\n            payLater?: wix_ecom_backend.Cart.PriceSummary;\n            /**\n             * Minimal amount to pay in order to place the order.\n             */\n            payNow?: wix_ecom_backend.Cart.PriceSummary;\n            /**\n             * Price summary.\n             */\n            priceSummary?: wix_ecom_backend.Cart.PriceSummary;\n            /**\n             * Shipping information.\n             */\n            shippingInfo?: wix_ecom_backend.Cart.ShippingInformation;\n            /**\n             * Tax summary.\n             */\n            taxSummary?: wix_ecom_backend.Cart.TaxSummary;\n            /**\n             * Weight measurement unit - defaults to site's weight unit. Supported values:\n             * + `\"KG\"`\n             * + `\"LB\"`\n             */\n            weightUnit?: string;\n        };\n        type ExtendedFieldsUpdatedEvent = {\n            currentEntityAsJson?: string;\n        };\n        type FieldViolation = {\n            data?: Object;\n            description?: string;\n            field?: string;\n            /**\n             * applicable when violated_rule=OTHER\n             */\n            ruleName?: string;\n            /**\n             * Suppoerted values:\n             * - `'DECIMAL_GT'`\n             * - `'DECIMAL_GTE'`\n             * - `'DECIMAL_LT'`\n             * - `'DECIMAL_LTE'`\n             * - `'DECIMAL_MAX_SCALE'`\n             * - `'FORMAT'`\n             * - `'INVALID_ENUM_VALUE'`\n             * - `'MAX'`\n             * - `'MAX_LENGTH'`\n             * - `'MAX_SIZE'`\n             * - `'MIN'`\n             * - `'MIN_LENGTH'`\n             * - `'MIN_SIZE'`\n             * - `'OTHER'`\n             * - `'REQUIRED_FIELD'`\n             * - `'VALIDATION'`\n             */\n            violatedRule?: string;\n        };\n        type FullAddressContactDetails = {\n            /**\n             * Contact's company\n             */\n            company?: string;\n            /**\n             * Email associated with the address\n             */\n            email?: string;\n            /**\n             * Contact first name\n             */\n            firstName?: string;\n            /**\n             * Contact last name\n             */\n            lastName?: string;\n            /**\n             * Contact phone number\n             */\n            phone?: string;\n            /**\n             * tax info (Currently usable only in Brazil)\n             */\n            vatId?: wix_ecom_backend.Cart.VatId;\n        };\n        type GetCartByCheckoutIdRequest = {\n            /**\n             * Checkout ID.\n             */\n            _id: string;\n        };\n        type GetCartByCheckoutIdResponse = {\n            /**\n             * The requested cart.\n             */\n            cart?: wix_ecom_backend.Cart.Cart;\n        };\n        type GetCartRequest = {\n            /**\n             * ID of the cart to retrieve.\n             */\n            _id: string;\n        };\n        type GetCartResponse = {\n            /**\n             * The requested cart.\n             */\n            cart?: wix_ecom_backend.Cart.Cart;\n        };\n        type GetCurrentCartRequest = {};\n        type GetCurrentCartResponse = {\n            /**\n             * Current session's active cart.\n             */\n            cart?: wix_ecom_backend.Cart.Cart;\n        };\n        type GiftCard = {\n            /**\n             * Gift Card ID.\n             */\n            _id?: string;\n            /**\n             * Gift card value.\n             */\n            amount?: wix_ecom_backend.Cart.MultiCurrencyPrice;\n            /**\n             * App ID of the gift card provider.\n             */\n            appId?: string;\n            /**\n             * Gift card obfuscated code.\n             */\n            obfuscatedCode?: string;\n        };\n        type Group = {\n            /**\n             * Item ID (when the coupon scope is limited to just one item).\n             */\n            entityId?: string;\n            /**\n             * Coupon scope's group (e.g., product or collection in Wix Stores). See [valid scope values](https://dev.wix.com/api/rest/coupons/coupons/valid-scope-values).\n             */\n            name?: string;\n        };\n        type InvalidMembership = {\n            /**\n             * Membership details.\n             */\n            membership?: wix_ecom_backend.Cart.Membership;\n            /**\n             * Reason why this membership is invalid and cannot be used.\n             */\n            reason?: string;\n        };\n        type ItemAvailabilityInfo = {\n            /**\n             * Quantity available.\n             */\n            quantityAvailable?: number;\n            /**\n             * Item availability status.\n             */\n            status?: string;\n        };\n        type ItemTaxFullDetails = {\n            /**\n             * If breakdown exists, the sum of rates in the breakdown must equal `tax_rate`.\n             */\n            rateBreakdown?: Array<wix_ecom_backend.Cart.TaxRateBreakdown>;\n            /**\n             * Tax rate %, as a decimal point between 0 and 1.\n             */\n            taxRate?: string;\n            /**\n             * Amount for which tax is calculated.\n             */\n            taxableAmount?: wix_ecom_backend.Cart.MultiCurrencyPrice;\n            /**\n             * Calculated tax, based on `taxable_amount` and `tax_rate`.\n             */\n            totalTax?: wix_ecom_backend.Cart.MultiCurrencyPrice;\n        };\n        type ItemType = {\n            /**\n             * Custom item type.\n             */\n            custom?: string;\n            /**\n             * Preset item type.\n             */\n            preset?: string;\n        };\n        type ItemTypeItemTypeDataOneOf = {\n            /**\n             * Custom item type.\n             */\n            custom?: string;\n            /**\n             * Preset item type.\n             */\n            preset?: string;\n        };\n        type LineItem = {\n            /**\n             * Line item ID.\n             */\n            _id?: string;\n            /**\n             * Item availability details.\n             */\n            availability?: wix_ecom_backend.Cart.ItemAvailabilityInfo;\n            /**\n             * Catalog and item reference. Holds IDs for the item and the catalog it came from, as well as further optional info.\n             */\n            catalogReference?: wix_ecom_backend.Cart.CatalogReference;\n            /**\n             * Line item description lines. Used for displaying the cart, checkout and order.\n             */\n            descriptionLines?: Array<wix_ecom_backend.Cart.DescriptionLine>;\n            /**\n             * Item price **before** catalog-defined discount. Defaults to `price` when not provided.\n             */\n            fullPrice?: wix_ecom_backend.Cart.MultiCurrencyPrice;\n            /**\n             * Line item image details.\n             */\n            image?: string;\n            /**\n             * Item type. Either a preset type or custom.\n             */\n            itemType?: wix_ecom_backend.Cart.ItemType;\n            /**\n             * Type of selected payment option for current item. Defaults to `\"FULL_PAYMENT_ONLINE\"`.\n             * + `\"FULL_PAYMENT_ONLINE\"` - The entire payment for this item happens as part of the checkout.\n             * + `\"FULL_PAYMENT_OFFLINE\"` - The entire payment for this item happens after the checkout. For example, when using cash, check, or other offline payment methods.\n             * + `\"MEMBERSHIP\"` - Payment for this item is done by charging a membership. When this option is used, `lineItem.price.amount` will be 0.\n             */\n            paymentOption?: string;\n            /**\n             * Physical properties of the item. When relevant, contains information such as SKU, item weight, and shippability.\n             */\n            physicalProperties?: wix_ecom_backend.Cart.PhysicalProperties;\n            /**\n             * Item price **after** catalog-defined discount and line item discounts.\n             */\n            price?: wix_ecom_backend.Cart.MultiCurrencyPrice;\n            /**\n             * Item price **before** line item discounts and **after** catalog-defined discount. Defaults to `price` when not provided.\n             */\n            priceBeforeDiscounts?: wix_ecom_backend.Cart.MultiCurrencyPrice;\n            /**\n             * Additional description for the price. For example, when price is 0 but additional details about the actual price are needed - \"Starts at $67\".\n             */\n            priceDescription?: wix_ecom_backend.Cart.PriceDescription;\n            /**\n             * Item name.\n             * + Stores - `product.name`\n             * + Bookings - `service.info.name`\n             * + Events - `ticket.name`\n             */\n            productName?: wix_ecom_backend.Cart.ProductName;\n            /**\n             * Item quantity.\n             */\n            quantity?: number;\n            /**\n             * In cases where `catalogReference.catalogItemId` is NOT the actual catalog item ID, this field will return the true item's ID.\n             * + For example, for Wix Bookings, `catalogReference.catalogItemId` is the booking ID. Therefore this value is set to the service ID.\n             * + in most cases, this field is the name as `catalogReference.catalogItemId`.\n             * + Used in membership validation.\n             */\n            rootCatalogItemId?: string;\n            /**\n             * Service properties. When relevant, this contains information such as date and number of participants.\n             */\n            serviceProperties?: wix_ecom_backend.Cart.ServiceProperties;\n            /**\n             * URL to the item's page on the site.\n             */\n            url?: string;\n        };\n        type LineItemPricesData = {\n            /**\n             * Total price **after** catalog-defined discount and line item discounts.\n             */\n            lineItemPrice?: wix_ecom_backend.Cart.MultiCurrencyPrice;\n            /**\n             * Catalog price after catalog discount and automatic discounts.\n             */\n            price?: wix_ecom_backend.Cart.MultiCurrencyPrice;\n            /**\n             * Item price **before** line item discounts and **after** catalog-defined discount. Defaults to `price` when not provided.\n             */\n            priceBeforeDiscounts?: wix_ecom_backend.Cart.MultiCurrencyPrice;\n            /**\n             * Tax details.\n             */\n            taxDetails?: wix_ecom_backend.Cart.ItemTaxFullDetails;\n            /**\n             * Total discount for all line items.\n             */\n            totalDiscount?: wix_ecom_backend.Cart.MultiCurrencyPrice;\n            /**\n             * Total price after discounts and after tax.\n             */\n            totalPriceAfterTax?: wix_ecom_backend.Cart.MultiCurrencyPrice;\n            /**\n             * Deprecated - please use `total_price_after_tax` minus `tax_details.total_tax` instead.\n             */\n            totalPriceBeforeTax?: wix_ecom_backend.Cart.MultiCurrencyPrice;\n        };\n        type LineItemQuantityUpdate = {\n            /**\n             * Line item ID.\n             */\n            _id?: string;\n            /**\n             * New quantity. Number must 1 or higher.\n             */\n            quantity?: number;\n        };\n        type Membership = {\n            /**\n             * Membership ID.\n             */\n            _id?: string;\n            /**\n             * Additional data about this membership.\n             */\n            additionalData?: Object;\n            /**\n             * ID of the application providing this payment option.\n             */\n            appId?: string;\n            /**\n             * Optional - For a membership that has limited credits, information about credit usage.\n             */\n            credits?: wix_ecom_backend.Cart.MembershipPaymentCredits;\n            /**\n             * Optional - TMembership expiry date.\n             */\n            expirationDate?: Date;\n            /**\n             * Line item IDs which are \"paid\" for by this membership.\n             */\n            lineItemIds?: Array<string>;\n            /**\n             * The name of this membership.\n             */\n            name?: wix_ecom_backend.Cart.MembershipName;\n        };\n        type MembershipName = {\n            /**\n             * The name of this membership\n             */\n            original?: string;\n            /**\n             * Membership name translated into buyer's language. Defaults to `original` when not defined.\n             */\n            translated?: string;\n        };\n        type MembershipOptions = {\n            /**\n             * List of payment options that can be used.\n             */\n            eligibleMemberships?: Array<wix_ecom_backend.Cart.Membership>;\n            /**\n             * List of payment options that are owned by the member, but cannot be used due to reason provided.\n             */\n            invalidMemberships?: Array<wix_ecom_backend.Cart.InvalidMembership>;\n            /**\n             * The selected membership payment options and which line items they apply to.\n             */\n            selectedMemberships?: Array<wix_ecom_backend.Cart.SelectedMembership>;\n        };\n        type MembershipPaymentCredits = {\n            /**\n             * How much credit remained for this membership\n             */\n            remaining?: number;\n            /**\n             * How much credit this membership has in total\n             */\n            total?: number;\n        };\n        type MerchantDiscount = {\n            /**\n             * Discount value.\n             */\n            amount?: wix_ecom_backend.Cart.MultiCurrencyPrice;\n        };\n        type MerchantDiscountInput = {\n            /**\n             * Discount amount.\n             */\n            amount?: string;\n            /**\n             * IDs of the line items the discount applies to.\n             */\n            lineItemIds?: Array<string>;\n        };\n        type MultiCurrencyPrice = {\n            /**\n             * Amount.\n             */\n            amount?: string;\n            /**\n             * Converted amount.\n             */\n            convertedAmount?: string;\n            /**\n             * Amount formatted with currency symbol.\n             */\n            formattedAmount?: string;\n            /**\n             * Converted amount formatted with currency symbol.\n             */\n            formattedConvertedAmount?: string;\n        };\n        type OtherCharge = {\n            /**\n             * Price of added cost.\n             */\n            price?: wix_ecom_backend.Cart.MultiCurrencyPrice;\n            /**\n             * Type of additional cost.\n             */\n            type?: string;\n        };\n        type PhysicalProperties = {\n            /**\n             * Whether this line item is shippable.\n             */\n            shippable?: boolean;\n            /**\n             * Stock-keeping unit. Learn more about [SKUs](https://www.wix.com/encyclopedia/definition/stock-keeping-unit-sku).\n             */\n            sku?: string;\n            /**\n             * Line item weight. Measurement unit is taken from `order.weightUnit`. Supported values:\n             * + `\"KG\"`\n             * + `\"LB\"`\n             */\n            weight?: number;\n        };\n        type PickupDetails = {\n            /**\n             * Pickup address.\n             */\n            address?: wix_ecom_backend.Cart.Address;\n            /**\n             * Whether the pickup address is that of a business - this may effect tax calculation.\n             */\n            businessLocation?: boolean;\n            /**\n             * Pickup method\n             */\n            pickupMethod?: string;\n        };\n        type PlainTextValue = {\n            /**\n             * Description line plain text value in site's default language.\n             */\n            original?: string;\n            /**\n             * Description line plain text value translated into buyer's language. Defaults to `original` when not defined.\n             */\n            translated?: string;\n        };\n        type PriceDescription = {\n            /**\n             * **Required** - Original price description (in site's default language).\n             */\n            original?: string;\n            /**\n             * Product name translated into buyer's language. Defaults to `original` when not defined.\n             */\n            translated?: string;\n        };\n        type PriceSummary = {\n            /**\n             * Total additional fees price.\n             */\n            additionalFees?: wix_ecom_backend.Cart.MultiCurrencyPrice;\n            /**\n             * Total calculated discount value.\n             */\n            discount?: wix_ecom_backend.Cart.MultiCurrencyPrice;\n            /**\n             * Total shipping price, before discounts and before tax.\n             */\n            shipping?: wix_ecom_backend.Cart.MultiCurrencyPrice;\n            /**\n             * Subtotal of all line items, before discounts and before tax.\n             */\n            subtotal?: wix_ecom_backend.Cart.MultiCurrencyPrice;\n            /**\n             * Total tax.\n             */\n            tax?: wix_ecom_backend.Cart.MultiCurrencyPrice;\n            /**\n             * Total price after discounts, gift cards, and tax.\n             */\n            total?: wix_ecom_backend.Cart.MultiCurrencyPrice;\n        };\n        type ProductName = {\n            /**\n             * *Required** - Original product name (in site's default language).\n             */\n            original?: string;\n            /**\n             * Description product name translated into buyer's language. Defaults to `original` when not defined.\n             */\n            translated?: string;\n        };\n        type RemoveCouponFromCurrentCartRequest = {};\n        type RemoveCouponRequest = {\n            /**\n             * Cart ID.\n             */\n            _id: string;\n        };\n        type RemoveCouponResponse = {\n            /**\n             * Updated cart.\n             */\n            cart?: wix_ecom_backend.Cart.Cart;\n        };\n        type RemoveLineItemsFromCurrentCartRequest = {\n            /**\n             * IDs of the line items to remove from the cart.\n             */\n            lineItemIds: Array<string>;\n        };\n        type RemoveLineItemsRequest = {\n            /**\n             * Cart ID.\n             */\n            _id: string;\n            /**\n             * IDs of the line items to remove from the cart.\n             */\n            lineItemIds: Array<string>;\n        };\n        type RemoveLineItemsResponse = {\n            /**\n             * Updated cart.\n             */\n            cart?: wix_ecom_backend.Cart.Cart;\n        };\n        type Scope = {\n            /**\n             * Coupon scope's applied group (e.g., event or ticket in Wix Events)\n             */\n            group?: wix_ecom_backend.Cart.Group;\n            /**\n             * Scope namespace (Wix Stores, Wix Bookings, Wix Events)\n             */\n            namespace?: string;\n        };\n        type SecuredMedia = {\n            /**\n             * Media ID in media manager.\n             */\n            _id?: string;\n            /**\n             * Original file name.\n             */\n            fileName?: string;\n            /**\n             * File type.\n             */\n            fileType?: string;\n        };\n        type SelectedCarrierServiceOption = {\n            /**\n             * This carrier's unique ID\n             */\n            carrierId?: string;\n            /**\n             * Unique identifier of selected option. For example, \"usps_std_overnight\".\n             */\n            code?: string;\n            /**\n             * Shipping costs.\n             */\n            cost?: wix_ecom_backend.Cart.SelectedCarrierServiceOptionPrices;\n            /**\n             * Delivery logistics.\n             */\n            logistics?: wix_ecom_backend.Cart.DeliveryLogistics;\n            /**\n             * Other charges\n             */\n            otherCharges?: Array<wix_ecom_backend.Cart.SelectedCarrierServiceOptionOtherCharge>;\n            /**\n             * Were we able to find the requested shipping option, or otherwise we fallback to the default one (the first)\n             */\n            requestedShippingOption?: boolean;\n            /**\n             * Title of the option, such as USPS Standard Overnight Delivery (in the requested locale).\n             * For example, \"Standard\" or \"First-Class Package International\".\n             */\n            title?: string;\n        };\n        type SelectedCarrierServiceOptionOtherCharge = {\n            /**\n             * Price of added charge.\n             */\n            cost?: wix_ecom_backend.Cart.SelectedCarrierServiceOptionPrices;\n            /**\n             * Details of the charge, such as 'Full Coverage Insurance of up to 80% of value of shipment'.\n             */\n            details?: string;\n            /**\n             * Type of additional cost.\n             */\n            type?: string;\n        };\n        type SelectedCarrierServiceOptionPrices = {\n            /**\n             * Shipping price before discount and before tax.\n             */\n            price?: wix_ecom_backend.Cart.MultiCurrencyPrice;\n            /**\n             * Tax details.\n             */\n            taxDetails?: wix_ecom_backend.Cart.ItemTaxFullDetails;\n            /**\n             * Shipping discount before tax.\n             */\n            totalDiscount?: wix_ecom_backend.Cart.MultiCurrencyPrice;\n            /**\n             * Total shipping price, after discount and after tax.\n             */\n            totalPriceAfterTax?: wix_ecom_backend.Cart.MultiCurrencyPrice;\n            /**\n             * Deprecated - please use `total_price_after_tax` minus `tax_details.total_tax` instead.\n             */\n            totalPriceBeforeTax?: wix_ecom_backend.Cart.MultiCurrencyPrice;\n        };\n        type SelectedMembership = {\n            /**\n             * Membership ID.\n             */\n            _id?: string;\n            /**\n             * ID of the app providing this payment option.\n             */\n            appId?: string;\n            /**\n             * IDs of the line items this membership applies to.\n             */\n            lineItemIds?: Array<string>;\n        };\n        type SelectedMemberships = {\n            /**\n             * Selected memberships.\n             */\n            memberships?: Array<wix_ecom_backend.Cart.SelectedMembership>;\n        };\n        type SelectedShippingOption = {\n            /**\n             * Carrier ID.\n             */\n            carrierId?: string;\n            /**\n             * Selected shipping option code. For example, \"usps_std_overnight\".\n             */\n            code?: string;\n        };\n        type ServiceProperties = {\n            /**\n             * The number of people participating in this service. For example, the number of people attending the class or the number of people per hotel room.\n             */\n            numberOfParticipants?: number;\n            /**\n             * The date and time for which the service is supposed to be provided. For example, the time of the class.\n             */\n            scheduledDate?: Date;\n        };\n        type ShippingInfo = {\n            /**\n             * Pickup details when this object describes pickup\n             */\n            pickupDetails?: wix_ecom_backend.Cart.V1PickupDetails;\n            /**\n             * Shipment details when this object describes shipment\n             */\n            shippingAddress?: wix_ecom_backend.Cart.CartAddress;\n            /**\n             * Selected shipping rule details\n             */\n            shippingRuleDetails?: wix_ecom_backend.Cart.ShippingRuleDetails;\n        };\n        type ShippingInfoDetailsOneOf = {\n            /**\n             * Pickup details when this object describes pickup\n             */\n            pickupDetails?: wix_ecom_backend.Cart.V1PickupDetails;\n            /**\n             * Shipment details when this object describes shipment\n             */\n            shippingAddress?: wix_ecom_backend.Cart.CartAddress;\n        };\n        type ShippingInformation = {\n            /**\n             * All shipping options.\n             */\n            carrierServiceOptions?: Array<wix_ecom_backend.Cart.CarrierServiceOption>;\n            /**\n             * Shipping region.\n             */\n            region?: wix_ecom_backend.Cart.ShippingRegion;\n            /**\n             * Selected shipping option.\n             */\n            selectedCarrierServiceOption?: wix_ecom_backend.Cart.SelectedCarrierServiceOption;\n        };\n        type ShippingOption = {\n            /**\n             * Unique code of provided shipping option like \"usps_std_overnight\".\n             * For legacy calculators this would be the UUID of the option.\n             */\n            code?: string;\n            /**\n             * Sipping price information.\n             */\n            cost?: wix_ecom_backend.Cart.ShippingPrice;\n            /**\n             * Delivery logistics.\n             */\n            logistics?: wix_ecom_backend.Cart.DeliveryLogistics;\n            /**\n             * Title of the option, such as USPS Standard Overnight Delivery (in the requested locale).\n             * For example, \"Standard\" or \"First-Class Package International\".\n             */\n            title?: string;\n        };\n        type ShippingPrice = {\n            /**\n             * Other costs such as insurance, handling & packaging for fragile items, etc.\n             */\n            otherCharges?: Array<wix_ecom_backend.Cart.OtherCharge>;\n            /**\n             * Shipping price.\n             */\n            price?: wix_ecom_backend.Cart.MultiCurrencyPrice;\n        };\n        type ShippingRegion = {\n            /**\n             * Shipping region ID.\n             */\n            _id?: string;\n            /**\n             * Shipping region name.\n             */\n            name?: string;\n        };\n        type ShippingRuleDetails = {\n            /**\n             * Rule title (as provided by the store owner)\n             */\n            deliveryOption?: string;\n            /**\n             * Shipping option delivery time\n             */\n            estimatedDeliveryTime?: string;\n            /**\n             * Selected option ID\n             */\n            optionId?: string;\n            /**\n             * Selected shipping rule ID\n             */\n            ruleId?: string;\n        };\n        type StreetAddress = {\n            /**\n             * Street name.\n             */\n            name?: string;\n            /**\n             * Street number.\n             */\n            number?: string;\n        };\n        type Subdivision = {\n            /**\n             * Short subdivision code.\n             */\n            code?: string;\n            /**\n             * Subdivision full name.\n             */\n            name?: string;\n        };\n        type SubscriptionOptionInfo = {\n            /**\n             * Subscription option description.\n             */\n            description?: wix_ecom_backend.Cart.Description;\n            /**\n             * Subscription option settings.\n             */\n            subscriptionSettings?: wix_ecom_backend.Cart.SubscriptionSettings;\n            /**\n             * Subscription option title.\n             */\n            title?: wix_ecom_backend.Cart.Title;\n        };\n        type SubscriptionSettings = {\n            /**\n             * Whether subscription is renewed automatically at the end of each period.\n             */\n            autoRenewal?: boolean;\n            /**\n             * Number of billing cycles before subscription ends. Ignored if `autoRenewal: true`.\n             */\n            billingCycles?: number;\n            /**\n             * Frequency of recurring payment.\n             */\n            frequency?: string;\n        };\n        type TaxCalculationDetails = {\n            /**\n             * Error details and reason for tax rate fallback.\n             */\n            autoTaxFallbackDetails?: wix_ecom_backend.Cart.AutoTaxFallbackCalculationDetails;\n            /**\n             * Reason the manual calculation was used.\n             */\n            manualRateReason?: string;\n            /**\n             * Rate calculation type. Supported values:\n             * + `\"AUTO_RATE\"`\n             * + `\"FALLBACK_RATE\"`\n             * + `\"MANUAL_RATE\"`\n             * + `\"NO_TAX_COLLECTED\"`\n             */\n            rateType?: string;\n        };\n        type TaxCalculationDetailsCalculationDetailsOneOf = {\n            /**\n             * Details of the fallback rate calculation.\n             */\n            autoTaxFallbackDetails?: wix_ecom_backend.Cart.AutoTaxFallbackCalculationDetails;\n            /**\n             * Reason the manual calculation was used.\n             */\n            manualRateReason?: string;\n        };\n        type TaxRateBreakdown = {\n            /**\n             * Type of tax against which the calculation was performed.\n             */\n            name?: string;\n            /**\n             * Rate at which this tax detail was calculated.\n             */\n            rate?: string;\n            /**\n             * Amount of tax for this tax detail.\n             */\n            tax?: wix_ecom_backend.Cart.MultiCurrencyPrice;\n        };\n        type TaxSummary = {\n            /**\n             * Tax calculator that was active when the order was created.\n             */\n            calculationDetails?: wix_ecom_backend.Cart.TaxCalculationDetails;\n            /**\n             * Amount for which tax is calculated, added from line items.\n             */\n            taxableAmount?: wix_ecom_backend.Cart.MultiCurrencyPrice;\n            /**\n             * Calculated tax, added from line items.\n             */\n            totalTax?: wix_ecom_backend.Cart.MultiCurrencyPrice;\n        };\n        type Title = {\n            /**\n             * Subscription option name.\n             */\n            original?: string;\n            /**\n             * Translated subscription option name.\n             */\n            translated?: string;\n        };\n        type Totals = {\n            /**\n             * Total calculated discount value, according to order.discount\n             */\n            discount?: number;\n            /**\n             * Total line items quantity\n             */\n            quantity?: number;\n            /**\n             * Total shipping price, including tax\n             */\n            shipping?: number;\n            /**\n             * Subtotal of all line items, before tax\n             */\n            subtotal?: number;\n            /**\n             * Total tax\n             */\n            tax?: number;\n            /**\n             * Total price\n             */\n            total?: number;\n            /**\n             * Total items weight\n             */\n            weight?: number;\n        };\n        type UpdateCartInfo = {\n            /**\n             * Date and time the cart was created.\n             */\n            _createdDate?: Date;\n            /**\n             * ID of the cart to be updated.\n             */\n            _id?: string;\n            /**\n             * Date and time the cart was updated.\n             */\n            _updatedDate?: Date;\n            /**\n             * Cart discounts.\n             */\n            appliedDiscounts?: Array<wix_ecom_backend.Cart.CartDiscount>;\n            /**\n             * Buyer information.\n             */\n            buyerInfo?: wix_ecom_backend.Cart.BuyerInfo;\n            /**\n             * Language for communication with the buyer. Defaults to the site language.\n             * For a site that supports multiple languages, this is the language the buyer selected.\n             */\n            buyerLanguage?: string;\n            /**\n             * [Buyer note](https://support.wix.com/en/article/wix-stores-viewing-buyer-notes) left by the customer.\n             */\n            buyerNote?: string;\n            /**\n             * ID of the checkout related to this cart.\n             */\n            checkoutId?: string;\n            /**\n             * Contact info.\n             */\n            contactInfo?: wix_ecom_backend.Cart.AddressWithContact;\n            /**\n             * All the converted prices are presented in this currency.\n             */\n            conversionCurrency?: string;\n            /**\n             * Currency used for pricing.\n             */\n            currency?: string;\n            /**\n             * Line items.\n             */\n            lineItems?: Array<wix_ecom_backend.Cart.LineItem>;\n            /**\n             * Site language in which original values are shown.\n             */\n            siteLanguage?: string;\n            /**\n             * Whether tax is included in line item prices.\n             */\n            taxIncludedInPrices?: boolean;\n            /**\n             * Weight measurement unit - defaults to site's weight unit. Supported values:\n             * + `\"KG\"`\n             * + `\"LB\"`\n             */\n            weightUnit?: string;\n        };\n        type UpdateCartOptions = {\n            /**\n             * The information for the cart being updated.\n             */\n            cartInfo: wix_ecom_backend.Cart.UpdateCartInfo;\n            /**\n             * The code of an existing coupon to apply to the cart. For more information, see the [Coupons API](https://www.wix.com/velo/reference/wix-marketing-backend/coupons).\n             */\n            couponCode?: string;\n            /**\n             * Custom line items.\n             */\n            customLineItems?: Array<wix_ecom_backend.Cart.CustomLineItem>;\n            /**\n             * Catalog line items.\n             */\n            lineItems?: Array<wix_ecom_backend.Cart.LineItem>;\n            /**\n             * Merchant discounts to apply to specific line items. If no `lineItemIds` are passed, the discount will be applied to the whole cart.\n             */\n            merchantDiscounts?: Array<wix_ecom_backend.Cart.MerchantDiscountInput>;\n        };\n        type UpdateCartRequest = {\n            /**\n             * Cart info.\n             */\n            cartInfo?: wix_ecom_backend.Cart.Cart;\n            /**\n             * The code of an existing coupon to apply to the cart. For more information, see the [Coupons API](https://www.wix.com/velo/reference/wix-marketing-backend/coupons).\n             */\n            couponCode?: string;\n            /**\n             * Custom line items.\n             */\n            customLineItems?: Array<wix_ecom_backend.Cart.CustomLineItem>;\n            /**\n             * Catalog line items.\n             */\n            lineItems?: Array<wix_ecom_backend.Cart.LineItem>;\n            /**\n             * Merchant discounts to apply to specific line items. If no `lineItemIds` are passed, the discount will be applied to the whole cart.\n             */\n            merchantDiscounts?: Array<wix_ecom_backend.Cart.MerchantDiscountInput>;\n        };\n        type UpdateCartResponse = {\n            /**\n             * Updated Cart.\n             */\n            cart?: wix_ecom_backend.Cart.Cart;\n        };\n        type UpdateCurrentCartLineItemQuantityRequest = {\n            /**\n             * Line item IDs and their new quantity.\n             */\n            lineItems: Array<wix_ecom_backend.Cart.LineItemQuantityUpdate>;\n        };\n        type UpdateLineItemsQuantityRequest = {\n            /**\n             * Cart ID.\n             */\n            _id: string;\n            /**\n             * Line item IDs and their new quantity.\n             */\n            lineItems: Array<wix_ecom_backend.Cart.LineItemQuantityUpdate>;\n        };\n        type UpdateLineItemsQuantityResponse = {\n            /**\n             * Updated cart.\n             */\n            cart?: wix_ecom_backend.Cart.Cart;\n        };\n        type V1BuyerInfo = {\n            /**\n             * Customer details\n             */\n            _id?: string;\n            /**\n             * Customer's email address\n             */\n            email?: string;\n            /**\n             * Customer's first name\n             */\n            firstName?: string;\n            /**\n             * Customer's relationship to the website\n             */\n            identityType?: string;\n            /**\n             * Customer's last name\n             */\n            lastName?: string;\n            /**\n             * Customer's phone number\n             */\n            phone?: string;\n        };\n        type V1Coupon = {\n            /**\n             * Coupon ID.\n             */\n            _id?: string;\n            /**\n             * Coupon value.\n             */\n            amount?: wix_ecom_backend.Cart.MultiCurrencyPrice;\n            /**\n             * Coupon code.\n             */\n            code?: string;\n            /**\n             * Coupon name.\n             */\n            name?: string;\n        };\n        type V1MerchantDiscount = {\n            /**\n             * Discount value.\n             */\n            amount?: wix_ecom_backend.Cart.MultiCurrencyPrice;\n        };\n        type V1PickupDetails = {\n            /**\n             * Customer details\n             */\n            buyerDetails?: wix_ecom_backend.Cart.BuyerDetails;\n            /**\n             * Pickup address\n             */\n            pickupAddress?: wix_ecom_backend.Cart.CommonAddress;\n            /**\n             * Store owner's pickup instructions\n             */\n            pickupInstructions?: string;\n        };\n        type ValidationError = {\n            fieldViolations?: Array<wix_ecom_backend.Cart.FieldViolation>;\n        };\n        type VatId = {\n            /**\n             * Customer's tax ID\n             */\n            _id?: string;\n            /**\n             * tax type\n             */\n            type?: string;\n        };\n    }\n    /**\n     * [Read more](https://www.wix.com/corvid/reference/wix-ecom-backend.Checkout.html#)\n     */\n    interface Checkout {\n        /**\n         * Creates a checkout.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-ecom-backend.Checkout.html#createCheckout)\n         */\n        createCheckout(options: wix_ecom_backend.Checkout.CreateCheckoutOptions): Promise<wix_ecom_backend.Checkout.Checkout>;\n        /**\n         * Retrieves a checkout.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-ecom-backend.Checkout.html#getCheckout)\n         */\n        getCheckout(_id: string): Promise<wix_ecom_backend.Checkout.Checkout>;\n    }\n    namespace Checkout {\n        type ActionEvent = {\n            bodyAsJson?: string;\n        };\n        type AdditionalFee = {\n            /**\n             * Additional fee's unique code (or ID) for future processing\n             */\n            code?: string;\n            /**\n             * Translated additional fee's name\n             */\n            name?: string;\n            /**\n             * Additional fee's price\n             */\n            price?: wix_ecom_backend.Checkout.MultiCurrencyPrice;\n            /**\n             * Provider's app id\n             */\n            providerAppId?: string;\n            /**\n             * Tax details\n             */\n            taxDetails?: wix_ecom_backend.Checkout.ItemTaxFullDetails;\n        };\n        type Address = {\n            /**\n             * Address line 1 (free text)\n             */\n            addressLine1?: string;\n            /**\n             * address line\n             */\n            addressLine2?: string;\n            /**\n             * City name\n             */\n            city?: string;\n            /**\n             * Company name\n             */\n            company?: string;\n            /**\n             * Country code (2 letters)\n             */\n            country?: string;\n            /**\n             * Email address\n             */\n            email?: string;\n            /**\n             * Addressee name\n             */\n            fullName?: wix_ecom_backend.Checkout.FullName;\n            /**\n             * Phone number\n             */\n            phone?: string;\n            /**\n             * Address line 1 (street)\n             */\n            street?: wix_ecom_backend.Checkout.Street;\n            /**\n             * State or district\n             */\n            subdivision?: string;\n            /**\n             * Tax information (for Brazil only)\n             */\n            vatId?: wix_ecom_backend.Checkout.VatId;\n            /**\n             * ZIP/postal code\n             */\n            zipCode?: string;\n        };\n        type AddressAddressLine1OptionsOneOf = {\n            /**\n             * Address line 1 (free text)\n             */\n            addressLine1?: string;\n            /**\n             * Address line 1 (street)\n             */\n            street?: wix_ecom_backend.Checkout.Street;\n        };\n        type AddressWithContact = {\n            /**\n             * Address.\n             */\n            address?: wix_ecom_backend.Checkout.ApiAddress;\n            /**\n             * Contact details.\n             */\n            contactDetails?: wix_ecom_backend.Checkout.FullAddressContactDetails;\n        };\n        type ApiAddress = {\n            /**\n             * Main address line (usually street name and number).\n             */\n            addressLine1?: string;\n            /**\n             * Free text providing more detailed address info. Usually contains apt, suite, floor.\n             */\n            addressLine2?: string;\n            /**\n             * City name.\n             */\n            city?: string;\n            /**\n             * Two-letter country code in [ISO-3166 alpha-2](https://www.iso.org/obp/ui/#search/code/) format.\n             */\n            country?: string;\n            /**\n             * Postal or zip code.\n             */\n            postalCode?: string;\n            /**\n             * Street address object, with number, name, and apartment number in separate fields.\n             */\n            streetAddress?: wix_ecom_backend.Checkout.StreetAddress;\n            /**\n             * Code for a subdivision (such as state, prefecture, or province) in [ISO 3166-2](https://www.iso.org/standard/72483.html) format.\n             */\n            subdivision?: string;\n        };\n        type ApplicationError = {\n            code?: string;\n            data?: Object;\n            description?: string;\n        };\n        type AppliedCoupon = {\n            /**\n             * Coupon code\n             */\n            code?: string;\n            /**\n             * Coupon ID\n             */\n            couponId?: string;\n            /**\n             * Coupon name\n             */\n            name?: string;\n        };\n        type AppliedDiscount = {\n            /**\n             * Coupon details.\n             */\n            coupon?: wix_ecom_backend.Checkout.Coupon;\n            /**\n             * Discount rule\n             */\n            discountRule?: wix_ecom_backend.Checkout.DiscountRule;\n            /**\n             * Discount type.\n             */\n            discountType?: string;\n            /**\n             * IDs of the line items the discount applies to.\n             */\n            lineItemIds?: Array<string>;\n            /**\n             * Merchant discount.\n             */\n            merchantDiscount?: wix_ecom_backend.Checkout.MerchantDiscount;\n        };\n        type AppliedDiscountDiscountSourceOneOf = {\n            /**\n             * Coupon details.\n             */\n            coupon?: wix_ecom_backend.Checkout.Coupon;\n            /**\n             * Discount rule\n             */\n            discountRule?: wix_ecom_backend.Checkout.DiscountRule;\n            /**\n             * Merchant discount.\n             */\n            merchantDiscount?: wix_ecom_backend.Checkout.MerchantDiscount;\n        };\n        type AutoTaxFallbackCalculationDetails = {\n            /**\n             * invalid request (i.e. address), timeout, internal error, license error, and others will be encoded here\n             */\n            error?: wix_ecom_backend.Checkout.ApplicationError;\n            /**\n             * reason for fallback\n             */\n            fallbackReason?: string;\n        };\n        type BillingInfo = {\n            /**\n             * Full billing address\n             */\n            address?: wix_ecom_backend.Checkout.Address;\n            /**\n             * Deprecated (use paymentProviderTransactionId instead)\n             */\n            externalTransactionId?: string;\n            /**\n             * Payment date\n             */\n            paidDate?: Date;\n            /**\n             * Transaction ID from payment gateway (e.g., Wix Payments)\n             */\n            paymentGatewayTransactionId?: string;\n            /**\n             * Payment method used for this order\n             */\n            paymentMethod?: string;\n            /**\n             * Transaction ID from payment provider (e.g., PayPal, Square, Stripe) transaction ID\n             */\n            paymentProviderTransactionId?: string;\n            /**\n             * Whether order can be refunded by payment provider (manually or automatic)\n             */\n            refundableByPaymentProvider?: boolean;\n        };\n        type BuyerInfo = {\n            /**\n             * Contact ID. Auto-created if one does not yet exist. For more information, see [Contacts API](https://www.wix.com/velo/reference/wix-crm-backend/contacts/introduction).\n             */\n            contactId?: string;\n            /**\n             * Buyer email address.\n             */\n            email?: string;\n            /**\n             * Member ID - If the buyer is a site member.\n             */\n            memberId?: string;\n            /**\n             * + When `true` - checkout doesn't have an owner yet and anyone can access it. The first to access it will be new owner.\n             * + If `false`, the value in `checkout.createdBy` is the owner.\n             */\n            openAccess?: boolean;\n            /**\n             * Visitor ID - if the buyer is **not** a site member.\n             */\n            visitorId?: string;\n        };\n        type BuyerInfoIdOneOf = {\n            /**\n             * Member ID - If the buyer is a site member.\n             */\n            memberId?: string;\n            /**\n             * + When `true` - checkout doesn't have an owner yet and anyone can access it. The first to access it will be new owner.\n             * + If `false`, the value in `checkout.createdBy` is the owner.\n             */\n            openAccess?: boolean;\n            /**\n             * Visitor ID - if the buyer is **not** a site member.\n             */\n            visitorId?: string;\n        };\n        type CalculationErrors = {\n            /**\n             * Carrier errors.\n             */\n            carrierErrors?: wix_ecom_backend.Checkout.CarrierErrors;\n            /**\n             * Coupon calculation error.\n             */\n            couponCalculationError?: wix_ecom_backend.Checkout.Details;\n            /**\n             * Discount Rule calculation error.\n             */\n            discountsCalculationError?: wix_ecom_backend.Checkout.Details;\n            /**\n             * General shipping calculation error.\n             */\n            generalShippingCalculationError?: wix_ecom_backend.Checkout.Details;\n            /**\n             * Gift card calculation error.\n             */\n            giftCardCalculationError?: wix_ecom_backend.Checkout.Details;\n            /**\n             * Membership payment methods calculation errors\n             * For example, will indicate that a line item that must be paid with membership payment doesn't have one or selected memberships are invalid\n             */\n            membershipError?: wix_ecom_backend.Checkout.Details;\n            /**\n             * Order validation errors.\n             */\n            orderValidationErrors?: Array<wix_ecom_backend.Checkout.ApplicationError>;\n            /**\n             * Tax calculation error.\n             */\n            taxCalculationError?: wix_ecom_backend.Checkout.Details;\n        };\n        type CalculationErrorsShippingCalculationErrorOneOf = {\n            /**\n             * Carrier errors.\n             */\n            carrierErrors?: wix_ecom_backend.Checkout.CarrierErrors;\n            /**\n             * General shipping calculation error.\n             */\n            generalShippingCalculationError?: wix_ecom_backend.Checkout.Details;\n        };\n        type CarrierError = {\n            /**\n             * Carrier ID.\n             */\n            carrierId?: string;\n            /**\n             * Error details.\n             */\n            error?: wix_ecom_backend.Checkout.Details;\n        };\n        type CarrierErrors = {\n            /**\n             * Carrier errors.\n             */\n            errors?: Array<wix_ecom_backend.Checkout.CarrierError>;\n        };\n        type CarrierServiceOption = {\n            /**\n             * Carrier ID.\n             */\n            carrierId?: string;\n            /**\n             * Shipping options offered by this carrier for this request.\n             */\n            shippingOptions?: Array<wix_ecom_backend.Checkout.ShippingOption>;\n        };\n        type CatalogReference = {\n            /**\n             * App ID of the catalog the item comes from. For example, the Wix Stores `appId` is `\"1380b703-ce81-ff05-f115-39571d94dfcd\"`.\n             */\n            appId?: string;\n            /**\n             * ID of the item within its catalog. For example, `productId` for Wix Stores.\n             */\n            catalogItemId?: string;\n            /**\n             * Additional info in key:value form. For example, for a product variant from Wix Stores Catalog, `options` field would hold something like one of the following:\n             * + `{\"Size\": \"M\", \"Color\": \"Red\"}`\n             * + `{\"variantId\": \"\"}`.\n             */\n            options?: Object;\n        };\n        type ChannelInfo = {\n            /**\n             * Sales channel that submitted the subscription\n             */\n            type?: string;\n        };\n        type ChargeDetails = {\n            /**\n             * Discount applied for this line item\n             */\n            discount?: number;\n            /**\n             * price of line item (depends on subscription option)\n             */\n            price?: number;\n            /**\n             * Tax applied for this line item\n             */\n            tax?: number;\n            /**\n             * Is tax applied for this line item\n             */\n            taxIncludedInPrice?: boolean;\n            /**\n             * Total price charged to the customer (for this line items) after computation of quantity and discount\n             */\n            totalPrice?: number;\n        };\n        type Checkout = {\n            /**\n             * Date and time the checkout was created.\n             */\n            _createdDate?: Date;\n            /**\n             * Checkout ID.\n             */\n            _id?: string;\n            /**\n             * Date and time the checkout was updated.\n             */\n            _updatedDate?: Date;\n            /**\n             * Additional Fees\n             */\n            additionalFees?: Array<wix_ecom_backend.Checkout.AdditionalFee>;\n            /**\n             * Applied discounts.\n             */\n            appliedDiscounts?: Array<wix_ecom_backend.Checkout.AppliedDiscount>;\n            /**\n             * Billing information.\n             */\n            billingInfo?: wix_ecom_backend.Checkout.AddressWithContact;\n            /**\n             * Buyer information.\n             */\n            buyerInfo?: wix_ecom_backend.Checkout.BuyerInfo;\n            /**\n             * Language for communication with the buyer. Defaults to the site language.\n             * For a site that supports multiple languages, this is the language the buyer selected.\n             */\n            buyerLanguage?: string;\n            /**\n             * [Buyer note](https://support.wix.com/en/article/wix-stores-viewing-buyer-notes) left by the customer.\n             */\n            buyerNote?: string;\n            /**\n             * Errors when calculating totals.\n             */\n            calculationErrors?: wix_ecom_backend.Checkout.CalculationErrors;\n            /**\n             * Cart ID that this checkout was created from. Empty if this checkout wasn't created out of a cart.\n             */\n            cartId?: string;\n            /**\n             * Sales channel that submitted the order. \"WIX_APP_STORE\" refers to the Wix mobile app.\n             */\n            channelType?: string;\n            /**\n             * Whether an order was successfully created from this checkout.\n             * For an order to be successful, it must be successfully paid for (unless the total is 0).\n             */\n            completed?: boolean;\n            /**\n             * All the converted prices are presented in this currency.\n             */\n            conversionCurrency?: string;\n            /**\n             * ID of the checkout's initiator.\n             */\n            createdBy?: wix_ecom_backend.Checkout.CreatedBy;\n            /**\n             * Currency used for pricing in this store.\n             */\n            currency?: string;\n            /**\n             * Custom fields.\n             */\n            customFields?: Array<wix_ecom_backend.Checkout.CustomField>;\n            /**\n             * Applied gift card details.\n             */\n            giftCard?: wix_ecom_backend.Checkout.GiftCard;\n            /**\n             * Line items.\n             */\n            lineItems?: Array<wix_ecom_backend.Checkout.LineItem>;\n            /**\n             * Information about valid and invalid memberships, and which ones are selected for usage\n             */\n            membershipOptions?: wix_ecom_backend.Checkout.MembershipOptions;\n            /**\n             * Remaining amount for the order to be fully paid.\n             */\n            payLater?: wix_ecom_backend.Checkout.PriceSummary;\n            /**\n             * Minimal amount to pay in order to place the order.\n             */\n            payNow?: wix_ecom_backend.Checkout.PriceSummary;\n            /**\n             * Calculated price summary for the checkout.\n             */\n            priceSummary?: wix_ecom_backend.Checkout.PriceSummary;\n            /**\n             * Shipping information.\n             */\n            shippingInfo?: wix_ecom_backend.Checkout.ShippingInfo;\n            /**\n             * Site language in which original values are shown.\n             */\n            siteLanguage?: string;\n            /**\n             * Whether tax is included in line item prices.\n             */\n            taxIncludedInPrice?: boolean;\n            /**\n             * Tax summary.\n             */\n            taxSummary?: wix_ecom_backend.Checkout.TaxSummary;\n            /**\n             * Weight measurement unit - defaults to site's weight unit. Supported values:\n             * + `\"KG\"`\n             * + `\"LB\"`\n             */\n            weightUnit?: string;\n        };\n        type CheckoutMarkedAsCompleted = {\n            checkout?: wix_ecom_backend.Checkout.Checkout;\n        };\n        type Color = {\n            /**\n             * Optional - HEX or RGB color code for display.\n             */\n            code?: string;\n            /**\n             * Optional - Description line color name in site's default language.\n             */\n            original?: string;\n            /**\n             * Optional - Translated description line color name according to buyer language. Defaults to `original` when not provided.\n             */\n            translated?: string;\n        };\n        type CommonVatId = {\n            /**\n             * Customer's tax ID\n             */\n            _id?: string;\n            /**\n             * tax type\n             */\n            type?: string;\n        };\n        type Coupon = {\n            /**\n             * Coupon ID.\n             */\n            _id?: string;\n            /**\n             * Coupon value.\n             */\n            amount?: wix_ecom_backend.Checkout.MultiCurrencyPrice;\n            /**\n             * Coupon code.\n             */\n            code?: string;\n            /**\n             * Coupon name.\n             */\n            name?: string;\n        };\n        type CreateCheckoutOptions = {\n            /**\n             * Sales channel that submitted the order. Supported values:\n             * + `\"WEB\"`, `\"POS\"`, `\"EBAY\"`, `\"AMAZON\"`, `\"WIX_APP_STORE\"`, `\"WIX_INVOICES\"`, `\"BACKOFFICE_MERCHANT\"`, `\"WISH\"`, `\"OTHER_PLATFORM\"`.\n             */\n            channelType?: string;\n            /**\n             * Checkout information.\n             */\n            checkoutInfo?: wix_ecom_backend.Checkout.Checkout;\n            /**\n             * The code of an existing coupon to apply to checkout. For more information, see the [Coupons API](https://www.wix.com/velo/reference/wix-marketing-backend/coupons).\n             */\n            couponCode?: string;\n            /**\n             * Custom line items to be added to checkout.\n             */\n            customLineItems?: Array<wix_ecom_backend.Checkout.CustomLineItem>;\n            /**\n             * Gift card code.\n             */\n            giftCardCode?: string;\n            /**\n             * Line items to be added to checkout.\n             */\n            lineItems?: Array<wix_ecom_backend.Checkout.LineItem>;\n            /**\n             * Merchant discounts to apply to specific line items. If no `lineItemIds` are passed, the discount will be applied to the whole checkout.\n             */\n            merchantDiscounts?: Array<wix_ecom_backend.Checkout.MerchantDiscountInput>;\n        };\n        type CreateCheckoutRequest = {\n            /**\n             * Sales channel that submitted the order. Supported values:\n             * + `\"WEB\"`, `\"POS\"`, `\"EBAY\"`, `\"AMAZON\"`, `\"WIX_APP_STORE\"`, `\"WIX_INVOICES\"`, `\"BACKOFFICE_MERCHANT\"`, `\"WISH\"`, `\"OTHER_PLATFORM\"`.\n             */\n            channelType?: string;\n            /**\n             * Checkout information.\n             */\n            checkoutInfo?: wix_ecom_backend.Checkout.Checkout;\n            /**\n             * The code of an existing coupon to apply to checkout. For more information, see the [Coupons API](https://www.wix.com/velo/reference/wix-marketing-backend/coupons).\n             */\n            couponCode?: string;\n            /**\n             * Custom line items to be added to checkout.\n             */\n            customLineItems?: Array<wix_ecom_backend.Checkout.CustomLineItem>;\n            /**\n             * Gift card code.\n             */\n            giftCardCode?: string;\n            /**\n             * Line items to be added to checkout.\n             */\n            lineItems?: Array<wix_ecom_backend.Checkout.LineItem>;\n            /**\n             * Merchant discounts to apply to specific line items. If no `lineItemIds` are passed, the discount will be applied to the whole checkout.\n             */\n            merchantDiscounts?: Array<wix_ecom_backend.Checkout.MerchantDiscountInput>;\n        };\n        type CreateCheckoutResponse = {\n            /**\n             * Newly created checkout.\n             */\n            checkout?: wix_ecom_backend.Checkout.Checkout;\n        };\n        type CreateOrderAndChargeOptions = {\n            /**\n             * Payment token.\n             */\n            paymentToken?: string;\n            /**\n             * Custom URL params to be added to redirect URLs.\n             */\n            urlParams?: Record<string, string>;\n        };\n        type CreateOrderAndChargeRequest = {\n            /**\n             * Checkout ID.\n             */\n            _id: string;\n            /**\n             * Payment token.\n             */\n            paymentToken?: string;\n            /**\n             * Custom URL params to be added to redirect URLs.\n             */\n            urlParams?: Record<string, string>;\n        };\n        type CreateOrderAndChargeResponse = {\n            /**\n             * ID of newly created order.\n             */\n            orderId?: string;\n            /**\n             * The payment gateway is cashier.\n             * payment_gateway_order_id will be returned given that money was charged.\n             * In some cases, money will not be charged:\n             * If the total price is 0 - For example, could be a free item or a an item with 100% discount\n             * If the total price is not 0, but the payment is covered by alternative payment methods such as gift card\n             */\n            paymentGatewayOrderId?: string;\n            /**\n             * Payment response token.\n             */\n            paymentResponseToken?: string;\n            /**\n             * ID of newly created subscription.\n             */\n            subscriptionId?: string;\n        };\n        type CreateOrderAndChargeResponseIdOneOf = {\n            /**\n             * ID of newly created order.\n             */\n            orderId?: string;\n            /**\n             * ID of newly created subscription.\n             */\n            subscriptionId?: string;\n        };\n        type CreateOrderOptions = {\n            /**\n             * Custom URL params to be added to redirect URLs.\n             */\n            urlParams?: Record<string, string>;\n        };\n        type CreateOrderRequest = {\n            /**\n             * Checkout ID.\n             */\n            _id: string;\n            /**\n             * Custom URL params to be added to redirect URLs.\n             */\n            urlParams?: Record<string, string>;\n        };\n        type CreateOrderResponse = {\n            /**\n             * ID of newly created order (ecom order ID)\n             */\n            orderId?: string;\n            /**\n             * The payment gateway is cashier.\n             * payment_gateway_order_id will be returned given that money needs to be charged.\n             * In some cases, money should not be charged:\n             * If the total price is 0 - For example, could be a free item or a an item with 100% discount\n             * If the total price is not 0, but the payment is covered by alternative payment methods such as gift card\n             */\n            paymentGatewayOrderId?: string;\n            /**\n             * ID of newly created subscription.\n             */\n            subscriptionId?: string;\n        };\n        type CreateOrderResponseIdOneOf = {\n            /**\n             * ID of newly created order (ecom order ID)\n             */\n            orderId?: string;\n            /**\n             * ID of newly created subscription.\n             */\n            subscriptionId?: string;\n        };\n        type CreatedBy = {\n            /**\n             * App ID - when the order was created by an external application or Wix service.\n             */\n            appId?: string;\n            /**\n             * Member ID - when the order was created by a **logged in** site visitor.\n             */\n            memberId?: string;\n            /**\n             * User ID - when the order was created by a Wix user on behalf of a buyer.\n             * For example, via POS (point of service).\n             */\n            userId?: string;\n            /**\n             * Visitor ID - when the order was created by a site visitor that was **not** logged in.\n             */\n            visitorId?: string;\n        };\n        type CreatedByIdOneOf = {\n            /**\n             * App ID - when the order was created by an external application or Wix service.\n             */\n            appId?: string;\n            /**\n             * Member ID - when the order was created by a **logged in** site visitor.\n             */\n            memberId?: string;\n            /**\n             * User ID - when the order was created by a Wix user on behalf of a buyer.\n             * For example, via POS (point of service).\n             */\n            userId?: string;\n            /**\n             * Visitor ID - when the order was created by a site visitor that was **not** logged in.\n             */\n            visitorId?: string;\n        };\n        type CustomField = {\n            /**\n             * Custom field title.\n             */\n            title?: string;\n            /**\n             * Translated custom field title.\n             */\n            translatedTitle?: string;\n            /**\n             * Custom field value.\n             */\n            value?: any;\n        };\n        type CustomLineItem = {\n            /**\n             * Custom line item ID. Defaults to an auto-generated ID.\n             */\n            _id?: string;\n            /**\n             * Custom line item description lines. Used for displaying the cart, checkout and order.\n             */\n            descriptionLines?: Array<wix_ecom_backend.Checkout.DescriptionLine>;\n            /**\n             * Custom line item media.\n             * + Link to an image/video from the [Wix Media Manager](https://support.wix.com/en/article/wix-media-about-the-media-manager) - `\"wix:image://v1/3c76e2_c53...4ea4~mv2.jpg#originWidth=1000&originHeight=1000\"`.\n             * + An image from the web - `\"http(s)://\"`.\n             */\n            media?: string;\n            /**\n             * Custom line item name.\n             */\n            name?: string;\n            /**\n             * Custom line item price.\n             */\n            price?: string;\n            /**\n             * Custom line item quantity.\n             */\n            quantity?: number;\n        };\n        type CustomTextFieldSelection = {\n            /**\n             * Custom text field name\n             */\n            title?: string;\n            /**\n             * Custom text field value\n             */\n            value?: string;\n        };\n        type DeliveryLogistics = {\n            /**\n             * Expected delivery time, in free text. For example, \"3-5 business days\".\n             */\n            deliveryTime?: string;\n            /**\n             * Instructions for caller, e.g for pickup: \"Please deliver during opening hours, and please don't park in disabled parking spot\".\n             */\n            instructions?: string;\n            /**\n             * Pickup details.\n             */\n            pickupDetails?: wix_ecom_backend.Checkout.PickupDetails;\n        };\n        type Description = {\n            /**\n             * Subscription option description.\n             */\n            original?: string;\n            /**\n             * Translated subscription option name.\n             */\n            translated?: string;\n        };\n        type DescriptionLine = {\n            /**\n             * Description line color value.\n             */\n            colorInfo?: wix_ecom_backend.Checkout.Color;\n            /**\n             * Description line name.\n             */\n            name?: wix_ecom_backend.Checkout.DescriptionLineName;\n            /**\n             * Description line plain text value.\n             */\n            plainText?: wix_ecom_backend.Checkout.PlainTextValue;\n        };\n        type DescriptionLineDescriptionLineValueOneOf = {};\n        type DescriptionLineName = {\n            /**\n             * Optional - Description line name in site's default language.\n             */\n            original?: string;\n            /**\n             * Optional - Translated description line item according to buyer language. Defaults to `original` when not provided.\n             */\n            translated?: string;\n        };\n        type DescriptionLineValueOneOf = {\n            /**\n             * Description line color value.\n             */\n            colorInfo?: wix_ecom_backend.Checkout.Color;\n            /**\n             * Description line plain text value.\n             */\n            plainText?: wix_ecom_backend.Checkout.PlainTextValue;\n        };\n        type Details = {\n            applicationError?: wix_ecom_backend.Checkout.ApplicationError;\n            /**\n             * deprecated in API's - to enable migration from rendering arbitrary tracing to rest response\n             */\n            tracing?: Record<string, string>;\n            validationError?: wix_ecom_backend.Checkout.ValidationError;\n        };\n        type DetailsKindOneOf = {\n            applicationError?: wix_ecom_backend.Checkout.ApplicationError;\n            validationError?: wix_ecom_backend.Checkout.ValidationError;\n        };\n        type Discount = {\n            /**\n             * Discount type.\n             */\n            type?: string;\n            /**\n             * Discount value.\n             */\n            value?: number;\n        };\n        type DiscountRule = {\n            /**\n             * Discount rule ID\n             */\n            _id?: string;\n            /**\n             * Discount value.\n             */\n            amount?: wix_ecom_backend.Checkout.MultiCurrencyPrice;\n            /**\n             * Discount rule name\n             */\n            name?: wix_ecom_backend.Checkout.DiscountRuleName;\n        };\n        type DiscountRuleName = {\n            /**\n             * Original discount rule name (in site's default language).\n             */\n            original?: string;\n            /**\n             * Translated discount rule name according to buyer language. Defaults to `original` when not provided.\n             */\n            translated?: string;\n        };\n        type DomainEvent = {\n            /**\n             * random GUID so clients can tell if event was already handled\n             */\n            _id?: string;\n            actionEvent?: wix_ecom_backend.Checkout.ActionEvent;\n            createdEvent?: wix_ecom_backend.Checkout.EntityCreatedEvent;\n            deletedEvent?: wix_ecom_backend.Checkout.EntityDeletedEvent;\n            /**\n             * Assumes actions are also always typed to an entity_type\n             * Example: wix.stores.catalog.product, wix.bookings.session, wix.payments.transaction\n             */\n            entityFqdn?: string;\n            /**\n             * Assuming that all messages including Actions have id\n             * Example: The id of the specific order, the id of a specific campaign\n             */\n            entityId?: string;\n            /**\n             * The time of the event. Useful if there was a delay in dipatching\n             */\n            eventTime?: Date;\n            extendedFieldsUpdatedEvent?: wix_ecom_backend.Checkout.ExtendedFieldsUpdatedEvent;\n            /**\n             * If present, indicates the action that triggered the event.\n             */\n            originatedFrom?: string;\n            /**\n             * This is top level to ease client code dipatching of messages (switch on entity_fqdn+slug)\n             * This is although the created/updated/deleted notion is duplication of the oneof types\n             * Example: created/updated/deleted/started/completed/email_opened\n             */\n            slug?: string;\n            /**\n             * A field that should be set if this event was triggered by an anonymize request.\n             * For example you must set it to true when sending an event as a result of a GDPR right to be forgotten request.\n             * NOTE: This field is not relevant for `EntityCreatedEvent` but is located here for better ergonomics of consumers.\n             */\n            triggeredByAnonymizeRequest?: boolean;\n            updatedEvent?: wix_ecom_backend.Checkout.EntityUpdatedEvent;\n        };\n        type DomainEventBodyOneOf = {\n            actionEvent?: wix_ecom_backend.Checkout.ActionEvent;\n            createdEvent?: wix_ecom_backend.Checkout.EntityCreatedEvent;\n            deletedEvent?: wix_ecom_backend.Checkout.EntityDeletedEvent;\n            extendedFieldsUpdatedEvent?: wix_ecom_backend.Checkout.ExtendedFieldsUpdatedEvent;\n            updatedEvent?: wix_ecom_backend.Checkout.EntityUpdatedEvent;\n        };\n        type Empty = {};\n        type EntityCreatedEvent = {\n            entityAsJson?: string;\n        };\n        type EntityDeletedEvent = {};\n        type EntityUpdatedEvent = {\n            /**\n             * Since platformized APIs only expose PATCH and not PUT we can't assume that the fields sent from the client are the actual diff.\n             * This means that to generate a list of changed fields (as opposed to sent fields) one needs to traverse both objects.\n             * We don't want to impose this on all developers and so we leave this traversal to the notification recipients which need it.\n             */\n            currentEntityAsJson?: string;\n        };\n        type ExtendedFieldsUpdatedEvent = {\n            currentEntityAsJson?: string;\n        };\n        type FieldViolation = {\n            data?: Object;\n            description?: string;\n            field?: string;\n            /**\n             * applicable when violated_rule=OTHER\n             */\n            ruleName?: string;\n            /**\n             * Suppoerted values:\n             * - `'DECIMAL_GT'`\n             * - `'DECIMAL_GTE'`\n             * - `'DECIMAL_LT'`\n             * - `'DECIMAL_LTE'`\n             * - `'DECIMAL_MAX_SCALE'`\n             * - `'FORMAT'`\n             * - `'INVALID_ENUM_VALUE'`\n             * - `'MAX'`\n             * - `'MAX_LENGTH'`\n             * - `'MAX_SIZE'`\n             * - `'MIN'`\n             * - `'MIN_LENGTH'`\n             * - `'MIN_SIZE'`\n             * - `'OTHER'`\n             * - `'REQUIRED_FIELD'`\n             * - `'VALIDATION'`\n             */\n            violatedRule?: string;\n        };\n        type FullAddressContactDetails = {\n            /**\n             * Company name.\n             */\n            company?: string;\n            /**\n             * First name.\n             */\n            firstName?: string;\n            /**\n             * Last name.\n             */\n            lastName?: string;\n            /**\n             * Phone number.\n             */\n            phone?: string;\n            /**\n             * Tax information (for Brazil only). If ID is provided, `vatId.type` must also be set - UNSPECIFIED is not allowed.\n             */\n            vatId?: wix_ecom_backend.Checkout.CommonVatId;\n        };\n        type FullName = {\n            /**\n             * Customer's first name\n             */\n            firstName?: string;\n            /**\n             * Customer's last name\n             */\n            lastName?: string;\n        };\n        type GetCheckoutRequest = {\n            /**\n             * Checkout ID.\n             */\n            _id: string;\n        };\n        type GetCheckoutResponse = {\n            /**\n             * The requested checkout.\n             */\n            checkout?: wix_ecom_backend.Checkout.Checkout;\n        };\n        type GetWixCheckoutURLRequest = {\n            /**\n             * Checkout ID.\n             */\n            _id: string;\n        };\n        type GetWixCheckoutURLResponse = {\n            /**\n             * Checkout URL.\n             */\n            checkoutUrl?: string;\n        };\n        type GetWixCheckoutUrlOptions = {};\n        type GiftCard = {\n            /**\n             * Gift Card ID.\n             */\n            _id?: string;\n            /**\n             * Gift card value.\n             */\n            amount?: wix_ecom_backend.Checkout.MultiCurrencyPrice;\n            /**\n             * App ID of the gift card provider.\n             */\n            appId?: string;\n            /**\n             * Gift card obfuscated code.\n             */\n            obfuscatedCode?: string;\n        };\n        type Group = {\n            /**\n             * Item ID (when the coupon scope is limited to just one item).\n             */\n            entityId?: string;\n            /**\n             * Coupon scope's group (e.g., product or collection in Wix Stores). See [valid scope values](https://dev.wix.com/api/rest/coupons/coupons/valid-scope-values).\n             */\n            name?: string;\n        };\n        type InvalidMembership = {\n            /**\n             * Membership details.\n             */\n            membership?: wix_ecom_backend.Checkout.Membership;\n            /**\n             * Reason why this membership is invalid and cannot be used.\n             */\n            reason?: string;\n        };\n        type ItemAvailabilityInfo = {\n            /**\n             * Quantity available.\n             */\n            quantityAvailable?: number;\n            /**\n             * Item availability status. Supported Values:\n             * + `\"NOT_FOUND\"`: Item does not exist\n             * + `\"NOT_AVAILABLE\"`: Item not in stock\n             * + `\"PARTIALLY_AVAILABLE\"`: Available quantity is less than requested\n             */\n            status?: string;\n        };\n        type ItemTaxFullDetails = {\n            /**\n             * If breakdown exists, the sum of rates in the breakdown must equal `tax_rate`.\n             */\n            rateBreakdown?: Array<wix_ecom_backend.Checkout.TaxRateBreakdown>;\n            /**\n             * Tax rate %, as a decimal point between 0 and 1.\n             */\n            taxRate?: string;\n            /**\n             * Amount for which tax is calculated.\n             */\n            taxableAmount?: wix_ecom_backend.Checkout.MultiCurrencyPrice;\n            /**\n             * Calculated tax, based on `taxable_amount` and `tax_rate`.\n             */\n            totalTax?: wix_ecom_backend.Checkout.MultiCurrencyPrice;\n        };\n        type ItemType = {\n            /**\n             * Custom item type.\n             */\n            custom?: string;\n            /**\n             * Preset item type.\n             */\n            preset?: string;\n        };\n        type ItemTypeItemTypeDataOneOf = {\n            /**\n             * Custom item type.\n             */\n            custom?: string;\n            /**\n             * Preset item type.\n             */\n            preset?: string;\n        };\n        type LineItem = {\n            /**\n             * Line item ID.\n             */\n            _id?: string;\n            /**\n             * Item availability details.\n             */\n            availability?: wix_ecom_backend.Checkout.ItemAvailabilityInfo;\n            /**\n             * Catalog and item reference. Holds IDs for the item and the catalog it came from, as well as further optional info.\n             */\n            catalogReference?: wix_ecom_backend.Checkout.CatalogReference;\n            /**\n             * Partial payment for the given item to be paid upfront during the checkout. Eligible for catalog items with type `DEPOSIT_ONLINE` only.\n             */\n            depositAmount?: wix_ecom_backend.Checkout.MultiCurrencyPrice;\n            /**\n             * Line item description lines. Used for displaying the cart, checkout and order.\n             */\n            descriptionLines?: Array<wix_ecom_backend.Checkout.DescriptionLine>;\n            /**\n             * Discount for this line item's entire quantity.\n             */\n            discount?: wix_ecom_backend.Checkout.MultiCurrencyPrice;\n            /**\n             * Item price **before** catalog-defined discount. Defaults to `price` when not provided.\n             */\n            fullPrice?: wix_ecom_backend.Checkout.MultiCurrencyPrice;\n            /**\n             * Item type. Either a preset type or custom.\n             */\n            itemType?: wix_ecom_backend.Checkout.ItemType;\n            /**\n             * Total price **after** catalog-defined discount and line item discounts.\n             */\n            lineItemPrice?: wix_ecom_backend.Checkout.MultiCurrencyPrice;\n            /**\n             * Line item image details.\n             */\n            media?: string;\n            /**\n             * Type of selected payment option for current item. Defaults to `\"FULL_PAYMENT_ONLINE\"`.\n             * + `\"FULL_PAYMENT_ONLINE\"`: The entire payment for this item happens as part of the checkout.\n             * + `\"FULL_PAYMENT_OFFLINE\"`: The entire payment for this item happens after the checkout. For example, when using cash, check, or other offline payment methods.\n             * + `\"MEMBERSHIP\"`: Payment for this item is done by charging a membership. When this option is used, `lineItem.price.amount` is 0.\n             * + `\"DEPOSIT_ONLINE\"`: Partial payment for the given item to be paid upfront during the checkout. Amount to be paid is defined by deposit_amount field.\n             */\n            paymentOption?: string;\n            /**\n             * Physical properties of the item. When relevant, contains information such as SKU, item weight, and shippability.\n             */\n            physicalProperties?: wix_ecom_backend.Checkout.PhysicalProperties;\n            /**\n             * Item price **after** catalog-defined discount and line item discounts.\n             */\n            price?: wix_ecom_backend.Checkout.MultiCurrencyPrice;\n            /**\n             * Item price **before** line item discounts and **after** catalog-defined discount. Defaults to `price` when not provided.\n             */\n            priceBeforeDiscounts?: wix_ecom_backend.Checkout.MultiCurrencyPrice;\n            /**\n             * Additional description for the price. For example, when price is 0 but additional details about the actual price are needed - \"Starts at $67\".\n             */\n            priceDescription?: wix_ecom_backend.Checkout.PriceDescription;\n            /**\n             * Item name.\n             * + Stores - `product.name`\n             * + Bookings - `service.info.name`\n             * + Events - `ticket.name`\n             */\n            productName?: wix_ecom_backend.Checkout.ProductName;\n            /**\n             * Item quantity.\n             */\n            quantity?: number;\n            /**\n             * In cases where `catalogReference.catalogItemId` is NOT the actual catalog item ID, this field will return the true item's ID.\n             * + For example, for Wix Bookings, `catalogReference.catalogItemId` is the booking ID. Therefore this value is set to the service ID.\n             * + In most cases, this field has the same value as `catalogReference.catalogItemId`.\n             * + Used in membership validation.\n             */\n            rootCatalogItemId?: string;\n            /**\n             * Service properties. When relevant, this contains information such as date and number of participants.\n             */\n            serviceProperties?: wix_ecom_backend.Checkout.ServiceProperties;\n            /**\n             * Tax details for this line item.\n             */\n            taxDetails?: wix_ecom_backend.Checkout.ItemTaxFullDetails;\n            /**\n             * Total price after all discounts and tax.\n             */\n            totalPriceAfterTax?: wix_ecom_backend.Checkout.MultiCurrencyPrice;\n            /**\n             * Deprecated - please use `total_price_after_tax` minus `tax_details.total_tax` instead.\n             */\n            totalPriceBeforeTax?: wix_ecom_backend.Checkout.MultiCurrencyPrice;\n            /**\n             * URL to the item's page on the site.\n             */\n            url?: string;\n        };\n        type MarkCheckoutAsCompletedRequest = {\n            /**\n             * Checkout ID.\n             */\n            _id: string;\n        };\n        type MarkCheckoutAsCompletedResponse = {};\n        type MediaItem = {\n            /**\n             * Media ID (for media items previously saved in Wix Media)\n             */\n            _id?: string;\n            /**\n             * Alternative text for presentation when media cannot be displayed\n             */\n            altText?: string;\n            /**\n             * Media external URL\n             */\n            externalImageUrl?: string;\n            /**\n             * Media item height\n             */\n            height?: number;\n            /**\n             * Media type\n             */\n            mediaType?: string;\n            /**\n             * Media URL\n             */\n            url?: string;\n            /**\n             * Media item width\n             */\n            width?: number;\n        };\n        type Membership = {\n            /**\n             * Membership ID.\n             */\n            _id?: string;\n            /**\n             * Additional data about this membership.\n             */\n            additionalData?: Object;\n            /**\n             * ID of the application providing this payment option.\n             */\n            appId?: string;\n            /**\n             * Optional - For a membership that has limited credits, information about credit usage.\n             */\n            credits?: wix_ecom_backend.Checkout.MembershipPaymentCredits;\n            /**\n             * Optional - TMembership expiry date.\n             */\n            expirationDate?: Date;\n            /**\n             * Line item IDs which are \"paid for\" by this membership.\n             */\n            lineItemIds?: Array<string>;\n            /**\n             * The name of this membership.\n             */\n            name?: wix_ecom_backend.Checkout.MembershipName;\n        };\n        type MembershipName = {\n            /**\n             * The name of this membership\n             */\n            original?: string;\n            /**\n             * Optional - Translated name of this membership. Defaults to `original` when not provided.\n             */\n            translated?: string;\n        };\n        type MembershipOptions = {\n            /**\n             * List of payment options that can be used\n             */\n            eligibleMemberships?: Array<wix_ecom_backend.Checkout.Membership>;\n            /**\n             * List of payment options that are owned by the member, but cannot be used due to reason provided\n             */\n            invalidMemberships?: Array<wix_ecom_backend.Checkout.InvalidMembership>;\n            /**\n             * The selected payment options and which line items they apply to\n             */\n            selectedMemberships?: wix_ecom_backend.Checkout.SelectedMemberships;\n        };\n        type MembershipPaymentCredits = {\n            /**\n             * How much credit remained for this membership\n             */\n            remaining?: number;\n            /**\n             * How much credit this membership has in total\n             */\n            total?: number;\n        };\n        type MerchantDiscount = {\n            /**\n             * Discount value.\n             */\n            amount?: wix_ecom_backend.Checkout.MultiCurrencyPrice;\n        };\n        type MerchantDiscountInput = {\n            /**\n             * Discount amount.\n             */\n            amount?: string;\n            /**\n             * IDs of the line items the discount applies to.\n             */\n            lineItemIds?: Array<string>;\n        };\n        type MultiCurrencyPrice = {\n            /**\n             * Amount.\n             */\n            amount?: string;\n            /**\n             * Converted amount.\n             */\n            convertedAmount?: string;\n            /**\n             * Amount formatted with currency symbol.\n             */\n            formattedAmount?: string;\n            /**\n             * Converted amount formatted with currency symbol.\n             */\n            formattedConvertedAmount?: string;\n        };\n        type OptionSelection = {\n            /**\n             * Option name\n             */\n            option?: string;\n            /**\n             * Selected choice for this option\n             */\n            selection?: string;\n        };\n        type OrderCreated = {\n            /**\n             * Order archive status\n             */\n            archived?: boolean;\n            /**\n             * Customer information\n             */\n            buyerInfo?: wix_ecom_backend.Checkout.V2BuyerInfo;\n            /**\n             * Currency used for pricing in this store\n             */\n            currency?: string;\n            /**\n             * Order creation date\n             */\n            dateCreated?: Date;\n            /**\n             * Order fulfillment status\n             */\n            fulfillmentStatus?: string;\n            /**\n             * ID displayed in the owner's store (auto generated)\n             */\n            number?: string;\n            /**\n             * Order ID (auto generated upon order creation)\n             */\n            orderId?: string;\n            /**\n             * Order payment status\n             */\n            paymentStatus?: string;\n            /**\n             * Whether the order was read by the store owner\n             */\n            read?: boolean;\n            /**\n             * Totals for order's line items\n             */\n            totals?: wix_ecom_backend.Checkout.Totals;\n            /**\n             * Weight measurement unit used in this store. Supported values:\n             * + `\"KG\"`\n             * + `\"LB\"`\n             */\n            weightUnit?: string;\n        };\n        type OrdersExperiments = {\n            epCommitTax?: boolean;\n            moveBuyerOrderConfirmationEmailToEp?: boolean;\n            moveMerchantEmailToEp?: boolean;\n            producedByEpBridge?: boolean;\n        };\n        type OtherCharge = {\n            /**\n             * Price of added cost.\n             */\n            price?: wix_ecom_backend.Checkout.MultiCurrencyPrice;\n            /**\n             * Type of additional cost.\n             */\n            type?: string;\n        };\n        type PhysicalProperties = {\n            /**\n             * Whether this line item is shippable.\n             */\n            shippable?: boolean;\n            /**\n             * Stock-keeping unit. Learn more about [SKUs](https://www.wix.com/encyclopedia/definition/stock-keeping-unit-sku).\n             */\n            sku?: string;\n            /**\n             * Line item weight. Measurement unit (`\"KG\"` or `\"LB\"`) is taken from `order.weightUnit`.\n             */\n            weight?: number;\n        };\n        type PickupAddress = {\n            /**\n             * Address\n             */\n            addressLine?: string;\n            /**\n             * City\n             */\n            city?: string;\n            /**\n             * Country code (2 letters)\n             */\n            country?: string;\n            /**\n             * State/District\n             */\n            subdivision?: string;\n            /**\n             * ZIP/postal code\n             */\n            zipCode?: string;\n        };\n        type PickupDetails = {\n            /**\n             * Pickup address.\n             */\n            address?: wix_ecom_backend.Checkout.ApiAddress;\n            /**\n             * Whether the pickup address is that of a business - this may effect tax calculation.\n             */\n            businessLocation?: boolean;\n            /**\n             * Pickup method\n             */\n            pickupMethod?: string;\n        };\n        type PlainTextValue = {\n            /**\n             * Optional - Description line plain text value in site's default language.\n             */\n            original?: string;\n            /**\n             * Optional - Translated description line plain text value according to buyer language. Defaults to `original` when not provided.\n             */\n            translated?: string;\n        };\n        type PriceDescription = {\n            /**\n             * Required** - Original price description (in site's default language).\n             */\n            original?: string;\n            /**\n             * Optional - Translated product name according to buyer language. Defaults to `original` when not provided.\n             */\n            translated?: string;\n        };\n        type PriceSummary = {\n            /**\n             * Total additional fees price.\n             */\n            additionalFees?: wix_ecom_backend.Checkout.MultiCurrencyPrice;\n            /**\n             * Total calculated discount value.\n             */\n            discount?: wix_ecom_backend.Checkout.MultiCurrencyPrice;\n            /**\n             * Total shipping price, before discounts and before tax.\n             */\n            shipping?: wix_ecom_backend.Checkout.MultiCurrencyPrice;\n            /**\n             * Subtotal of all line items, before discounts and before tax.\n             */\n            subtotal?: wix_ecom_backend.Checkout.MultiCurrencyPrice;\n            /**\n             * Total tax.\n             */\n            tax?: wix_ecom_backend.Checkout.MultiCurrencyPrice;\n            /**\n             * Total price after discounts, gift cards, and tax.\n             */\n            total?: wix_ecom_backend.Checkout.MultiCurrencyPrice;\n        };\n        type ProductDetails = {\n            /**\n             * Line item fulfillerId from stores fulfillers. No value means self fulfilled\n             */\n            fulfillerId?: string;\n            /**\n             * Line item type (may be extended)\n             */\n            lineItemType?: string;\n            /**\n             * Line item primary media for preview\n             */\n            mediaItem?: wix_ecom_backend.Checkout.MediaItem;\n            /**\n             * Line item name\n             */\n            name?: string;\n            /**\n             * Line item notes\n             */\n            notes?: string;\n            /**\n             * Line item product ID (optional for POS orders)\n             */\n            productId?: string;\n            /**\n             * Line item SKU\n             */\n            sku?: string;\n            /**\n             * Tax group id\n             */\n            taxGroupId?: string;\n            /**\n             * Line item name translated to buyer's language\n             */\n            translatedName?: string;\n            /**\n             * Line item weight\n             */\n            weight?: number;\n        };\n        type ProductName = {\n            /**\n             * Required** - Original item name (in site's default language).\n             */\n            original?: string;\n            /**\n             * Optional - Translated item name according to buyer language. Defaults to `original` when not provided.\n             */\n            translated?: string;\n        };\n        type RemoveCouponRequest = {\n            /**\n             * Checkout ID.\n             */\n            _id: string;\n        };\n        type RemoveCouponResponse = {\n            /**\n             * Updated checkout after removal of coupon.\n             */\n            checkout?: wix_ecom_backend.Checkout.Checkout;\n        };\n        type RemoveGiftCardRequest = {\n            /**\n             * Checkout ID.\n             */\n            _id: string;\n        };\n        type RemoveGiftCardResponse = {\n            /**\n             * Updated checkout after removal of gift card.\n             */\n            checkout?: wix_ecom_backend.Checkout.Checkout;\n        };\n        type RemoveLineItemsRequest = {\n            /**\n             * Checkout ID.\n             */\n            _id: string;\n            /**\n             * IDs of the line items to be removed.\n             */\n            lineItemIds: Array<string>;\n        };\n        type RemoveLineItemsResponse = {\n            /**\n             * Updated checkout after removal of line items.\n             */\n            checkout?: wix_ecom_backend.Checkout.Checkout;\n        };\n        type Scope = {\n            /**\n             * Coupon scope's applied group (e.g., event or ticket in Wix Events)\n             */\n            group?: wix_ecom_backend.Checkout.Group;\n            /**\n             * Scope namespace (Wix Stores, Wix Bookings, Wix Events)\n             */\n            namespace?: string;\n        };\n        type SecuredMedia = {\n            /**\n             * Media ID in media manager.\n             */\n            _id?: string;\n            /**\n             * Original file name.\n             */\n            fileName?: string;\n            /**\n             * File type.\n             */\n            fileType?: string;\n        };\n        type SelectedCarrierServiceOption = {\n            /**\n             * This carrier's unique ID\n             */\n            carrierId?: string;\n            /**\n             * Unique identifier of selected option. For example, \"usps_std_overnight\".\n             */\n            code?: string;\n            /**\n             * Shipping costs.\n             */\n            cost?: wix_ecom_backend.Checkout.SelectedCarrierServiceOptionPrices;\n            /**\n             * Delivery logistics.\n             */\n            logistics?: wix_ecom_backend.Checkout.DeliveryLogistics;\n            /**\n             * Other charges\n             */\n            otherCharges?: Array<wix_ecom_backend.Checkout.SelectedCarrierServiceOptionOtherCharge>;\n            /**\n             * Were we able to find the requested shipping option, or otherwise we fallback to the default one (the first)\n             */\n            requestedShippingOption?: boolean;\n            /**\n             * Title of the option, such as USPS Standard Overnight Delivery (in the requested locale).\n             * For example, \"Standard\" or \"First-Class Package International\".\n             */\n            title?: string;\n        };\n        type SelectedCarrierServiceOptionOtherCharge = {\n            /**\n             * Price of added charge.\n             */\n            cost?: wix_ecom_backend.Checkout.SelectedCarrierServiceOptionPrices;\n            /**\n             * Details of the charge, such as 'Full Coverage Insurance of up to 80% of value of shipment'.\n             */\n            details?: string;\n            /**\n             * Type of additional cost.\n             */\n            type?: string;\n        };\n        type SelectedCarrierServiceOptionPrices = {\n            /**\n             * Shipping price before discount and before tax.\n             */\n            price?: wix_ecom_backend.Checkout.MultiCurrencyPrice;\n            /**\n             * Tax details.\n             */\n            taxDetails?: wix_ecom_backend.Checkout.ItemTaxFullDetails;\n            /**\n             * Shipping discount before tax.\n             */\n            totalDiscount?: wix_ecom_backend.Checkout.MultiCurrencyPrice;\n            /**\n             * Total shipping price, after discount and after tax.\n             */\n            totalPriceAfterTax?: wix_ecom_backend.Checkout.MultiCurrencyPrice;\n            /**\n             * Deprecated - please use `total_price_after_tax` minus `tax_details.total_tax` instead.\n             */\n            totalPriceBeforeTax?: wix_ecom_backend.Checkout.MultiCurrencyPrice;\n        };\n        type SelectedMembership = {\n            /**\n             * Membership ID.\n             */\n            _id?: string;\n            /**\n             * ID of the app providing this payment option.\n             */\n            appId?: string;\n            /**\n             * IDs of the line items this membership applies to.\n             */\n            lineItemIds?: Array<string>;\n        };\n        type SelectedMemberships = {\n            /**\n             * Selected memberships.\n             */\n            memberships?: Array<wix_ecom_backend.Checkout.SelectedMembership>;\n        };\n        type ServiceProperties = {\n            /**\n             * Optional - The number of people participating in this service. For example, the number of people attending the class or the number of people per hotel room.\n             */\n            numberOfParticipants?: number;\n            /**\n             * Optional - The date and time for which the service is supposed to be provided. For example, the time of the class.\n             */\n            scheduledDate?: Date;\n        };\n        type ShipmentDetails = {\n            /**\n             * Shipping destination address\n             */\n            address?: wix_ecom_backend.Checkout.Address;\n            /**\n             * Discount applied for shipping\n             */\n            discount?: number;\n            /**\n             * Tax applied for shipping\n             */\n            tax?: number;\n            /**\n             * Whether tax is included in the price\n             */\n            taxIncludedInPrice?: boolean;\n        };\n        type ShippingInfo = {\n            /**\n             * All carrier options for this shipping rule.\n             */\n            carrierServiceOptions?: Array<wix_ecom_backend.Checkout.CarrierServiceOption>;\n            /**\n             * Shipping region.\n             */\n            region?: wix_ecom_backend.Checkout.ShippingRegion;\n            /**\n             * Selected option out of the options allowed for the region (see `region` field).\n             * The region field is chosen based on the address provided.\n             */\n            selectedCarrierServiceOption?: wix_ecom_backend.Checkout.SelectedCarrierServiceOption;\n            /**\n             * Shipping address and contact details.\n             */\n            shippingDestination?: wix_ecom_backend.Checkout.AddressWithContact;\n        };\n        type ShippingOption = {\n            /**\n             * Unique code of provided shipping option like \"usps_std_overnight\".\n             * For legacy calculators this would be the UUID of the option.\n             */\n            code?: string;\n            /**\n             * Sipping price information.\n             */\n            cost?: wix_ecom_backend.Checkout.ShippingPrice;\n            /**\n             * Delivery logistics.\n             */\n            logistics?: wix_ecom_backend.Checkout.DeliveryLogistics;\n            /**\n             * Title of the option, such as USPS Standard Overnight Delivery (in the requested locale).\n             * For example, \"Standard\" or \"First-Class Package International\".\n             */\n            title?: string;\n        };\n        type ShippingPrice = {\n            /**\n             * Other costs such as insurance, handling & packaging for fragile items, etc.\n             */\n            otherCharges?: Array<wix_ecom_backend.Checkout.OtherCharge>;\n            /**\n             * Shipping price.\n             */\n            price?: wix_ecom_backend.Checkout.MultiCurrencyPrice;\n        };\n        type ShippingRegion = {\n            /**\n             * Shipping region ID.\n             */\n            _id?: string;\n            /**\n             * Shipping region name.\n             */\n            name?: string;\n        };\n        type StoreSettings = {\n            /**\n             * The language to be used when communicating with the buyer\n             * For a site that support multiple languages, this would be the language the buyer selected\n             * Otherwise this would be the site language\n             */\n            buyerLanguage?: string;\n            /**\n             * Currency used for pricing in this store\n             */\n            currency?: string;\n            /**\n             * Weight measurement unit used in this store. Supported values:\n             * + `\"KG\"`\n             * + `\"LB\"`\n             */\n            weightUnit?: string;\n        };\n        type Street = {\n            /**\n             * Street name\n             */\n            name?: string;\n            /**\n             * Street number\n             */\n            number?: string;\n        };\n        type StreetAddress = {\n            /**\n             * Street name.\n             */\n            name?: string;\n            /**\n             * Street number.\n             */\n            number?: string;\n        };\n        type Subscription = {\n            /**\n             * Subscription id (auto-generated upon subscription creation)\n             */\n            _id?: string;\n            /**\n             * Coupon that was applied to subscription\n             */\n            appliedCoupon?: wix_ecom_backend.Checkout.V1AppliedCoupon;\n            /**\n             * Full billing address\n             */\n            billingAddress?: wix_ecom_backend.Checkout.Address;\n            /**\n             * information about first subscription payment\n             */\n            billingInfo?: wix_ecom_backend.Checkout.V1BillingInfo;\n            /**\n             * member or contact\n             */\n            buyerInfo?: wix_ecom_backend.Checkout.V1BuyerInfo;\n            /**\n             * Message from the customer (e.g., customization request)\n             */\n            buyerNote?: string;\n            /**\n             * The id of the cart this order was created from\n             */\n            cartId?: string;\n            /**\n             * Sales channel that submitted this subscription\n             */\n            channelInfo?: wix_ecom_backend.Checkout.ChannelInfo;\n            /**\n             * The id of the checkout this subscriptions was created from\n             */\n            checkoutId?: string;\n            /**\n             * Custom field\n             */\n            customField?: wix_ecom_backend.Checkout.V1CustomField;\n            /**\n             * Subscription creation date\n             */\n            dateCreated?: Date;\n            /**\n             * id of subscription in external system\n             */\n            externalId?: string;\n            /**\n             * Line items ordered\n             */\n            lineItems?: Array<wix_ecom_backend.Checkout.V1LineItem>;\n            /**\n             * Delivery information\n             */\n            shippingInfo?: wix_ecom_backend.Checkout.V1ShippingInfo;\n            /**\n             * site settings at the moment when subscription created\n             */\n            storeSettings?: wix_ecom_backend.Checkout.StoreSettings;\n            /**\n             * Information about subscription option from which subscription was created\n             */\n            subscriptionOptionInfo?: wix_ecom_backend.Checkout.V1SubscriptionOptionInfo;\n            /**\n             * defines when subscriber will be charged: for frequency=MONTH, billingCycles=6, interval=2 payment will be done every 2 month during one year\n             */\n            subscriptionSettings?: wix_ecom_backend.Checkout.V1SubscriptionSettings;\n            /**\n             * Totals for subscription's line items\n             */\n            totals?: wix_ecom_backend.Checkout.V1Totals;\n        };\n        type SubscriptionCreated = {\n            subscription?: wix_ecom_backend.Checkout.Subscription;\n        };\n        type SubscriptionInfo = {\n            /**\n             * Subscription ID.\n             */\n            _id?: string;\n            /**\n             * Current cycle number. For example, if the subscription is in the 3rd month of a 4-month subscription, the value will be `3`.\n             */\n            cycleNumber?: number;\n            /**\n             * Subscription options info.\n             */\n            subscriptionOptionInfo?: wix_ecom_backend.Checkout.V2SubscriptionOptionInfo;\n            /**\n             * Subscription settings.\n             */\n            subscriptionSettings?: wix_ecom_backend.Checkout.V1SubscriptionSettings;\n        };\n        type SubscriptionOptionInfo = {\n            /**\n             * Subscription option description.\n             */\n            description?: wix_ecom_backend.Checkout.Description;\n            /**\n             * Subscription option settings.\n             */\n            subscriptionSettings?: wix_ecom_backend.Checkout.SubscriptionSettings;\n            /**\n             * Subscription option title.\n             */\n            title?: wix_ecom_backend.Checkout.Title;\n        };\n        type SubscriptionSettings = {\n            /**\n             * Whether subscription is renewed automatically at the end of each period.\n             */\n            autoRenewal?: boolean;\n            /**\n             * Number of billing cycles before subscription ends. Ignored if `autoRenewal: true`.\n             */\n            billingCycles?: number;\n            /**\n             * Frequency of recurring payment.\n             */\n            frequency?: string;\n        };\n        type TaxCalculationDetails = {\n            /**\n             * Details of the fallback rate calculation.\n             */\n            autoTaxFallbackDetails?: wix_ecom_backend.Checkout.AutoTaxFallbackCalculationDetails;\n            /**\n             * Reason the manual calculation was used.\n             */\n            manualRateReason?: string;\n            /**\n             * Rate calculation type.\n             */\n            rateType?: string;\n        };\n        type TaxCalculationDetailsCalculationDetailsOneOf = {\n            /**\n             * Details of the fallback rate calculation.\n             */\n            autoTaxFallbackDetails?: wix_ecom_backend.Checkout.AutoTaxFallbackCalculationDetails;\n            /**\n             * Reason the manual calculation was used.\n             */\n            manualRateReason?: string;\n        };\n        type TaxRateBreakdown = {\n            /**\n             * Type of tax against which the calculation was performed.\n             */\n            name?: string;\n            /**\n             * Rate at which this tax detail was calculated.\n             */\n            rate?: string;\n            /**\n             * Amount of tax for this tax detail.\n             */\n            tax?: wix_ecom_backend.Checkout.MultiCurrencyPrice;\n        };\n        type TaxSummary = {\n            /**\n             * Tax calculator that was active when the order was created.\n             */\n            calculationDetails?: wix_ecom_backend.Checkout.TaxCalculationDetails;\n            /**\n             * Amount for which tax is calculated, added from line items.\n             */\n            taxableAmount?: wix_ecom_backend.Checkout.MultiCurrencyPrice;\n            /**\n             * Calculated tax, added from line items.\n             */\n            totalTax?: wix_ecom_backend.Checkout.MultiCurrencyPrice;\n        };\n        type Title = {\n            /**\n             * Subscription option name.\n             */\n            original?: string;\n            /**\n             * Translated subscription option name.\n             */\n            translated?: string;\n        };\n        type Totals = {\n            /**\n             * Total calculated discount value.\n             */\n            discount?: string;\n            /**\n             * Total calculated gift card value.\n             */\n            giftCard?: string;\n            /**\n             * Total number of line items.\n             */\n            quantity?: number;\n            /**\n             * Total refund.\n             */\n            refund?: string;\n            /**\n             * Total shipping price, before tax.\n             */\n            shipping?: string;\n            /**\n             * Subtotal of all the line items, before tax.\n             */\n            subtotal?: string;\n            /**\n             * Total tax.\n             */\n            tax?: string;\n            /**\n             * Total price charged.\n             */\n            total?: string;\n            /**\n             * Total items weight.\n             */\n            weight?: string;\n        };\n        type UpdateCheckout = {\n            /**\n             * Date and time the checkout was created.\n             */\n            _createdDate?: Date;\n            /**\n             * Checkout ID.\n             */\n            _id?: string;\n            /**\n             * Date and time the checkout was updated.\n             */\n            _updatedDate?: Date;\n            /**\n             * Additional Fees\n             */\n            additionalFees?: Array<wix_ecom_backend.Checkout.AdditionalFee>;\n            /**\n             * Applied discounts.\n             */\n            appliedDiscounts?: Array<wix_ecom_backend.Checkout.AppliedDiscount>;\n            /**\n             * Billing information.\n             */\n            billingInfo?: wix_ecom_backend.Checkout.AddressWithContact;\n            /**\n             * Buyer information.\n             */\n            buyerInfo?: wix_ecom_backend.Checkout.BuyerInfo;\n            /**\n             * Language for communication with the buyer. Defaults to the site language.\n             * For a site that supports multiple languages, this is the language the buyer selected.\n             */\n            buyerLanguage?: string;\n            /**\n             * [Buyer note](https://support.wix.com/en/article/wix-stores-viewing-buyer-notes) left by the customer.\n             */\n            buyerNote?: string;\n            /**\n             * Errors when calculating totals.\n             */\n            calculationErrors?: wix_ecom_backend.Checkout.CalculationErrors;\n            /**\n             * Cart ID that this checkout was created from. Empty if this checkout wasn't created out of a cart.\n             */\n            cartId?: string;\n            /**\n             * Sales channel that submitted the order. \"WIX_APP_STORE\" refers to the Wix mobile app.\n             */\n            channelType?: string;\n            /**\n             * Whether an order was successfully created from this checkout.\n             * For an order to be successful, it must be successfully paid for (unless the total is 0).\n             */\n            completed?: boolean;\n            /**\n             * All the converted prices are presented in this currency.\n             */\n            conversionCurrency?: string;\n            /**\n             * ID of the checkout's initiator.\n             */\n            createdBy?: wix_ecom_backend.Checkout.CreatedBy;\n            /**\n             * Currency used for pricing in this store.\n             */\n            currency?: string;\n            /**\n             * Custom fields.\n             */\n            customFields?: Array<wix_ecom_backend.Checkout.CustomField>;\n            /**\n             * Applied gift card details.\n             */\n            giftCard?: wix_ecom_backend.Checkout.GiftCard;\n            /**\n             * Line items.\n             */\n            lineItems?: Array<wix_ecom_backend.Checkout.LineItem>;\n            /**\n             * Information about valid and invalid memberships, and which ones are selected for usage\n             */\n            membershipOptions?: wix_ecom_backend.Checkout.MembershipOptions;\n            /**\n             * Remaining amount for the order to be fully paid.\n             */\n            payLater?: wix_ecom_backend.Checkout.PriceSummary;\n            /**\n             * Minimal amount to pay in order to place the order.\n             */\n            payNow?: wix_ecom_backend.Checkout.PriceSummary;\n            /**\n             * Calculated price summary for the checkout.\n             */\n            priceSummary?: wix_ecom_backend.Checkout.PriceSummary;\n            /**\n             * Shipping information.\n             */\n            shippingInfo?: wix_ecom_backend.Checkout.ShippingInfo;\n            /**\n             * Site language in which original values are shown.\n             */\n            siteLanguage?: string;\n            /**\n             * Whether tax is included in line item prices.\n             */\n            taxIncludedInPrice?: boolean;\n            /**\n             * Tax summary.\n             */\n            taxSummary?: wix_ecom_backend.Checkout.TaxSummary;\n            /**\n             * Weight measurement unit - defaults to site's weight unit. Supported values:\n             * + `\"KG\"`\n             * + `\"LB\"`\n             */\n            weightUnit?: string;\n        };\n        type UpdateCheckoutOptions = {\n            /**\n             * The code of an existing coupon to apply to checkout. For more information, see the [Coupons API](https://www.wix.com/velo/reference/wix-marketing-backend/coupons).\n             */\n            couponCode?: string;\n            /**\n             * Gift card code.\n             */\n            giftCardCode?: string;\n            /**\n             * Merchant discounts to apply to specific line items. If no `lineItemIds` are passed, the discount will be applied to the whole checkout.\n             */\n            merchantDiscounts?: Array<wix_ecom_backend.Checkout.MerchantDiscountInput>;\n        };\n        type UpdateCheckoutRequest = {\n            /**\n             * Checkout information.\n             */\n            checkout: wix_ecom_backend.Checkout.Checkout;\n            /**\n             * The code of an existing coupon to apply to checkout. For more information, see the [Coupons API](https://www.wix.com/velo/reference/wix-marketing-backend/coupons).\n             */\n            couponCode?: string;\n            /**\n             * Gift card code.\n             */\n            giftCardCode?: string;\n            /**\n             * Merchant discounts to apply to specific line items. If no `lineItemIds` are passed, the discount will be applied to the whole checkout.\n             */\n            merchantDiscounts?: Array<wix_ecom_backend.Checkout.MerchantDiscountInput>;\n        };\n        type UpdateCheckoutResponse = {\n            /**\n             * Updated checkout.\n             */\n            checkout?: wix_ecom_backend.Checkout.Checkout;\n        };\n        type UpdatedCheckoutMessage = {\n            /**\n             * Previous checkout.\n             */\n            oldCheckout?: wix_ecom_backend.Checkout.Checkout;\n            /**\n             * Updated checkout.\n             */\n            updatedCheckout?: wix_ecom_backend.Checkout.Checkout;\n        };\n        type V1AppliedCoupon = {\n            /**\n             * Coupon code\n             */\n            code?: string;\n            /**\n             * Coupon ID\n             */\n            couponId?: string;\n            /**\n             * Coupon name\n             */\n            name?: string;\n        };\n        type V1BillingInfo = {\n            /**\n             * Order ID from payment gateway (e.g., Wix Payments)\n             */\n            paymentGatewayOrderId?: string;\n            /**\n             * Transaction ID from payment gateway (e.g., Wix Payments)\n             */\n            paymentGatewayTransactionId?: string;\n            /**\n             * Payment method used for this order\n             */\n            paymentMethod?: string;\n        };\n        type V1BuyerInfo = {\n            /**\n             * Wix customer ID\n             */\n            _id?: string;\n            /**\n             * Customer type\n             */\n            identityType?: string;\n        };\n        type V1CustomField = {\n            /**\n             * Title for the custom field\n             */\n            title?: string;\n            /**\n             * The title translated according to the buyer language\n             */\n            translatedTitle?: string;\n            /**\n             * Free text that the customer entered in the custom field during the checkout process\n             */\n            value?: string;\n        };\n        type V1LineItem = {\n            /**\n             * Charges details\n             */\n            chargeDetails?: wix_ecom_backend.Checkout.ChargeDetails;\n            /**\n             * Line item custom text field selections\n             */\n            customTextFields?: Array<wix_ecom_backend.Checkout.CustomTextFieldSelection>;\n            /**\n             * Line item ID (auto-generated)\n             */\n            index?: number;\n            /**\n             * Line item options ordered\n             */\n            options?: Array<wix_ecom_backend.Checkout.OptionSelection>;\n            /**\n             * Product details\n             */\n            productDetails?: wix_ecom_backend.Checkout.ProductDetails;\n            /**\n             * Line item quantity\n             */\n            quantity?: number;\n            /**\n             * Line item variantId (from Stores Catalog)\n             */\n            variantId?: string;\n        };\n        type V1PickupDetails = {\n            /**\n             * Pickup address\n             */\n            address?: wix_ecom_backend.Checkout.PickupAddress;\n            /**\n             * Store owner's pickup instructions\n             */\n            pickupInstructions?: string;\n        };\n        type V1ShippingInfo = {\n            /**\n             * Delivery option name\n             */\n            deliveryOption?: string;\n            /**\n             * Delivery option delivery time\n             */\n            estimatedDeliveryTime?: string;\n            /**\n             * Pickup details (when this object describes pickup)\n             */\n            pickupDetails?: wix_ecom_backend.Checkout.V1PickupDetails;\n            /**\n             * Shipment details (when this object describes shipment)\n             */\n            shipmentDetails?: wix_ecom_backend.Checkout.ShipmentDetails;\n        };\n        type V1ShippingInfoDetailsOneOf = {\n            /**\n             * Pickup details (when this object describes pickup)\n             */\n            pickupDetails?: wix_ecom_backend.Checkout.V1PickupDetails;\n            /**\n             * Shipment details (when this object describes shipment)\n             */\n            shipmentDetails?: wix_ecom_backend.Checkout.ShipmentDetails;\n        };\n        type V1SubscriptionOptionInfo = {\n            _id?: string;\n            description?: string;\n            discount?: wix_ecom_backend.Checkout.Discount;\n            title?: string;\n        };\n        type V1SubscriptionSettings = {\n            /**\n             * Whether subscription is renewed automatically at the end of each period.\n             */\n            autoRenewal?: boolean;\n            /**\n             * Number of billing cycles before subscription ends. Ignored if `autoRenewal: true`.\n             */\n            billingCycles?: number;\n            /**\n             * Frequency of recurring payment.\n             */\n            frequency?: string;\n        };\n        type V1Totals = {\n            /**\n             * Total calculated discount value\n             */\n            discount?: number;\n            /**\n             * Total line items quantity\n             */\n            quantity?: number;\n            /**\n             * Total shipping price, including tax\n             */\n            shipping?: number;\n            /**\n             * Subtotal of all line items, before tax\n             */\n            subtotal?: number;\n            /**\n             * Total tax\n             */\n            tax?: number;\n            /**\n             * Total price\n             */\n            total?: number;\n            /**\n             * Total weight\n             */\n            weight?: number;\n        };\n        type V2BuyerInfo = {\n            /**\n             * Wix customer ID\n             */\n            _id?: string;\n            /**\n             * Customer's email address\n             */\n            email?: string;\n            /**\n             * Customer's first name\n             */\n            firstName?: string;\n            /**\n             * Customer type\n             */\n            identityType?: string;\n            /**\n             * Customer's last name\n             */\n            lastName?: string;\n            /**\n             * Customer's phone number\n             */\n            phone?: string;\n            /**\n             * Deprecated (use identityType instead)\n             */\n            type?: string;\n        };\n        type V2SubscriptionOptionInfo = {\n            /**\n             * Subscription option description.\n             */\n            description?: string;\n            /**\n             * Subscription option title.\n             */\n            title?: string;\n        };\n        type ValidationError = {\n            fieldViolations?: Array<wix_ecom_backend.Checkout.FieldViolation>;\n        };\n        type VatId = {\n            /**\n             * Customer's tax ID\n             */\n            number?: string;\n            /**\n             * tax type\n             */\n            type?: string;\n        };\n    }\n    /**\n     * [Read more](https://www.wix.com/corvid/reference/wix-ecom-backend.CurrentCart.html#)\n     */\n    interface CurrentCart {\n        /**\n         * Adds line items to the current site visitor's cart. Both catalog line items and custom line items are supported.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-ecom-backend.CurrentCart.html#addToCurrentCart)\n         */\n        addToCurrentCart(options: wix_ecom_backend.CurrentCart.AddToCurrentCartOptions): Promise<wix_ecom_backend.CurrentCart.AddToCartResponse>;\n        /**\n         * Creates a checkout from the current cart.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-ecom-backend.CurrentCart.html#createCheckoutFromCurrentCart)\n         */\n        createCheckoutFromCurrentCart(options: wix_ecom_backend.CurrentCart.CreateCheckoutFromCurrentCartOptions): Promise<wix_ecom_backend.CurrentCart.CreateCheckoutResponse>;\n        /**\n         * Deletes the current site visitor's cart.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-ecom-backend.CurrentCart.html#deleteCurrentCart)\n         */\n        deleteCurrentCart(): Promise<void>;\n        /**\n         * Estimates the current cart's price totals (including tax), based on a selected carrier service, shipping address, and billing information.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-ecom-backend.CurrentCart.html#estimateCurrentCartTotals)\n         */\n        estimateCurrentCartTotals(options: wix_ecom_backend.CurrentCart.EstimateCurrentCartTotalsOptions): Promise<wix_ecom_backend.CurrentCart.EstimateTotalsResponse>;\n        /**\n         * Retrieves the current site visitor's cart.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-ecom-backend.CurrentCart.html#getCurrentCart)\n         */\n        getCurrentCart(): Promise<wix_ecom_backend.CurrentCart.Cart>;\n        /**\n         * Removes the coupon from the current site visitor's cart.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-ecom-backend.CurrentCart.html#removeCouponFromCurrentCart)\n         */\n        removeCouponFromCurrentCart(): Promise<wix_ecom_backend.CurrentCart.RemoveCouponResponse>;\n        /**\n         * Removes line items from the current site visitor's cart.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-ecom-backend.CurrentCart.html#removeLineItemsFromCurrentCart)\n         */\n        removeLineItemsFromCurrentCart(lineItemIds: Array<string>): Promise<wix_ecom_backend.CurrentCart.RemoveLineItemsResponse>;\n        /**\n         * Updates the current site visitor's cart.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-ecom-backend.CurrentCart.html#updateCurrentCart)\n         */\n        updateCurrentCart(options: wix_ecom_backend.CurrentCart.UpdateCurrentCartOptions): Promise<wix_ecom_backend.CurrentCart.Cart>;\n        /**\n         * Updates the quantity of one or more line items in the current site visitor's cart.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-ecom-backend.CurrentCart.html#updateCurrentCartLineItemQuantity)\n         */\n        updateCurrentCartLineItemQuantity(lineItems: Array<wix_ecom_backend.CurrentCart.LineItemQuantityUpdate>): Promise<wix_ecom_backend.CurrentCart.UpdateLineItemsQuantityResponse>;\n    }\n    namespace CurrentCart {\n        type ActionEvent = {\n            bodyAsJson?: string;\n        };\n        type AddToCartRequest = {\n            /**\n             * Cart ID.\n             */\n            _id: string;\n            /**\n             * Custom line items.\n             */\n            customLineItems?: Array<wix_ecom_backend.CurrentCart.CustomLineItem>;\n            /**\n             * Catalog line items.\n             */\n            lineItems?: Array<wix_ecom_backend.CurrentCart.LineItem>;\n        };\n        type AddToCartResponse = {\n            /**\n             * Updated cart.\n             */\n            cart?: wix_ecom_backend.CurrentCart.Cart;\n        };\n        type AddToCurrentCartOptions = {\n            /**\n             * Custom line items.\n             */\n            customLineItems?: Array<wix_ecom_backend.CurrentCart.CustomLineItem>;\n            /**\n             * Catalog line items.\n             */\n            lineItems?: Array<wix_ecom_backend.CurrentCart.LineItem>;\n        };\n        type AddToCurrentCartRequest = {\n            /**\n             * Custom line items.\n             */\n            customLineItems?: Array<wix_ecom_backend.CurrentCart.CustomLineItem>;\n            /**\n             * Catalog line items.\n             */\n            lineItems?: Array<wix_ecom_backend.CurrentCart.LineItem>;\n        };\n        type AdditionalFee = {\n            /**\n             * Additional fee's unique code (or ID) for future processing\n             */\n            code?: string;\n            /**\n             * Translated additional fee's name\n             */\n            name?: string;\n            /**\n             * Additional fee's price\n             */\n            price?: wix_ecom_backend.CurrentCart.MultiCurrencyPrice;\n            /**\n             * Provider's app id\n             */\n            providerAppId?: string;\n            /**\n             * Tax details\n             */\n            taxDetails?: wix_ecom_backend.CurrentCart.ItemTaxFullDetails;\n        };\n        type Address = {\n            /**\n             * Main address line (usually street name and number).\n             */\n            addressLine1?: string;\n            /**\n             * Free text providing more detailed address info. Usually contains apt, suite, floor.\n             */\n            addressLine2?: string;\n            /**\n             * City name.\n             */\n            city?: string;\n            /**\n             * Two-letter country code in [ISO-3166 alpha-2](https://www.iso.org/obp/ui/#search/code/) format.\n             */\n            country?: string;\n            /**\n             * Postal or zip code.\n             */\n            postalCode?: string;\n            /**\n             * Street address object, with number, name, and apartment number in separate fields.\n             */\n            streetAddress?: wix_ecom_backend.CurrentCart.StreetAddress;\n            /**\n             * Code for a subdivision (such as state, prefecture, or province) in [ISO 3166-2](https://www.iso.org/standard/72483.html) format.\n             */\n            subdivision?: string;\n        };\n        type AddressLocation = {\n            /**\n             * Address latitude.\n             */\n            latitude?: number;\n            /**\n             * Address longitude.\n             */\n            longitude?: number;\n        };\n        type AddressWithContact = {\n            /**\n             * Address.\n             */\n            address?: wix_ecom_backend.CurrentCart.Address;\n            /**\n             * Contact details.\n             */\n            contactDetails?: wix_ecom_backend.CurrentCart.ApiFullAddressContactDetails;\n        };\n        type ApiFullAddressContactDetails = {\n            /**\n             * Company name.\n             */\n            company?: string;\n            /**\n             * First name.\n             */\n            firstName?: string;\n            /**\n             * Last name.\n             */\n            lastName?: string;\n            /**\n             * Phone number.\n             */\n            phone?: string;\n            /**\n             * Tax information (for Brazil only). If ID is provided, `vatId.type` must also be set - UNSPECIFIED is not allowed.\n             */\n            vatId?: wix_ecom_backend.CurrentCart.VatId;\n        };\n        type ApplicationError = {\n            code?: string;\n            data?: Object;\n            description?: string;\n        };\n        type AppliedCoupon = {\n            /**\n             * Coupon code\n             */\n            code?: string;\n            /**\n             * Converted discount value\n             */\n            convertedDiscountValue?: string;\n            /**\n             * Coupon internal ID\n             */\n            couponId?: string;\n            /**\n             * Type (e.g., moneyOff, percentOff)\n             */\n            couponType?: string;\n            /**\n             * Discount value\n             */\n            discountValue?: string;\n            /**\n             * Coupon name\n             */\n            name?: string;\n        };\n        type AppliedDiscount = {\n            /**\n             * Coupon details.\n             */\n            coupon?: wix_ecom_backend.CurrentCart.V1Coupon;\n            /**\n             * Discount rule\n             */\n            discountRule?: wix_ecom_backend.CurrentCart.DiscountRule;\n            /**\n             * Discount type.\n             */\n            discountType?: string;\n            /**\n             * IDs of the line items the discount applies to.\n             */\n            lineItemIds?: Array<string>;\n            /**\n             * Merchant discount.\n             */\n            merchantDiscount?: wix_ecom_backend.CurrentCart.V1MerchantDiscount;\n        };\n        type AppliedDiscountDiscountSourceOneOf = {\n            /**\n             * Coupon details.\n             */\n            coupon?: wix_ecom_backend.CurrentCart.V1Coupon;\n            /**\n             * Discount rule\n             */\n            discountRule?: wix_ecom_backend.CurrentCart.DiscountRule;\n            /**\n             * Merchant discount.\n             */\n            merchantDiscount?: wix_ecom_backend.CurrentCart.V1MerchantDiscount;\n        };\n        type AutoTaxFallbackCalculationDetails = {\n            /**\n             * invalid request (i.e. address), timeout, internal error, license error, and others will be encoded here\n             */\n            error?: wix_ecom_backend.CurrentCart.ApplicationError;\n            /**\n             * Reason for fallback. Supported values:\n             * + `\"AUTO_TAX_FAILED\"`\n             * + `\"AUTO_TAX_DEACTIVATED\"`\n             */\n            fallbackReason?: string;\n        };\n        type BuyerDetails = {\n            /**\n             * Email address\n             */\n            email?: string;\n            /**\n             * Customer's first name\n             */\n            firstName?: string;\n            /**\n             * Customer's last name\n             */\n            lastName?: string;\n            /**\n             * Phone number\n             */\n            phone?: string;\n        };\n        type BuyerInfo = {\n            /**\n             * Contact ID. Auto-created if one does not yet exist. For more information, see the [Contacts API](https://www.wix.com/velo/reference/wix-crm-backend/contacts/introduction).\n             */\n            contactId?: string;\n            /**\n             * Member ID - if the buyer is a site member.\n             */\n            memberId?: string;\n            /**\n             * User ID - if the cart owner is a Wix user.\n             */\n            userId?: string;\n            /**\n             * Visitor ID - if the buyer is **not** a site member.\n             */\n            visitorId?: string;\n        };\n        type BuyerInfoIdOneOf = {\n            /**\n             * Member ID - if the buyer is a site member.\n             */\n            memberId?: string;\n            /**\n             * User ID - if the cart owner is a Wix user.\n             */\n            userId?: string;\n            /**\n             * Visitor ID - if the buyer is **not** a site member.\n             */\n            visitorId?: string;\n        };\n        type CalculatedLineItem = {\n            /**\n             * Line item ID.\n             */\n            lineItemId?: string;\n            /**\n             * Type of selected payment option for current item. Defaults to `\"FULL_PAYMENT_ONLINE\"`.\n             * + `\"FULL_PAYMENT_ONLINE\"` - The entire payment for this item happens as part of the checkout.\n             * + `\"FULL_PAYMENT_OFFLINE\"` - The entire payment for this item happens after the checkout. For example, when using cash, check, or other offline payment methods.\n             * + `\"MEMBERSHIP\"` - Payment for this item is done by charging a membership. When this option is used, `lineItem.price.amount` will be 0.\n             */\n            paymentOption?: string;\n            /**\n             * Price breakdown for this line item.\n             */\n            pricesBreakdown?: wix_ecom_backend.CurrentCart.LineItemPricesData;\n        };\n        type CalculationErrors = {\n            /**\n             * Carrier errors.\n             */\n            carrierErrors?: wix_ecom_backend.CurrentCart.CarrierErrors;\n            /**\n             * Coupon calculation error.\n             */\n            couponCalculationError?: wix_ecom_backend.CurrentCart.Details;\n            /**\n             * Discount Rule calculation error.\n             */\n            discountsCalculationError?: wix_ecom_backend.CurrentCart.Details;\n            /**\n             * General shipping calculation error.\n             */\n            generalShippingCalculationError?: wix_ecom_backend.CurrentCart.Details;\n            /**\n             * Gift card calculation error.\n             */\n            giftCardCalculationError?: wix_ecom_backend.CurrentCart.Details;\n            /**\n             * Membership payment methods calculation errors\n             * For example, will indicate that a line item that must be paid with membership payment doesn't have one or selected memberships are invalid\n             */\n            membershipError?: wix_ecom_backend.CurrentCart.Details;\n            /**\n             * Order validation errors.\n             */\n            orderValidationErrors?: Array<wix_ecom_backend.CurrentCart.ApplicationError>;\n            /**\n             * Tax calculation error.\n             */\n            taxCalculationError?: wix_ecom_backend.CurrentCart.Details;\n        };\n        type CalculationErrorsShippingCalculationErrorOneOf = {\n            /**\n             * Carrier errors.\n             */\n            carrierErrors?: wix_ecom_backend.CurrentCart.CarrierErrors;\n            /**\n             * General shipping calculation error.\n             */\n            generalShippingCalculationError?: wix_ecom_backend.CurrentCart.Details;\n        };\n        type CarrierError = {\n            /**\n             * Carrier ID.\n             */\n            carrierId?: string;\n            /**\n             * Error details.\n             */\n            error?: wix_ecom_backend.CurrentCart.Details;\n        };\n        type CarrierErrors = {\n            /**\n             * Carrier errors.\n             */\n            errors?: Array<wix_ecom_backend.CurrentCart.CarrierError>;\n        };\n        type CarrierServiceOption = {\n            /**\n             * Carrier ID.\n             */\n            carrierId?: string;\n            /**\n             * Shipping options offered by this carrier for this request.\n             */\n            shippingOptions?: Array<wix_ecom_backend.CurrentCart.ShippingOption>;\n        };\n        type Cart = {\n            /**\n             * Date and time the cart was created.\n             */\n            _createdDate?: Date;\n            /**\n             * Cart ID.\n             */\n            _id?: string;\n            /**\n             * Date and time the cart was updated.\n             */\n            _updatedDate?: Date;\n            /**\n             * Cart discounts.\n             */\n            appliedDiscounts?: Array<wix_ecom_backend.CurrentCart.CartDiscount>;\n            /**\n             * Buyer information.\n             */\n            buyerInfo?: wix_ecom_backend.CurrentCart.BuyerInfo;\n            /**\n             * Language for communication with the buyer. Defaults to the site language.\n             * For a site that supports multiple languages, this is the language the buyer selected.\n             */\n            buyerLanguage?: string;\n            /**\n             * [Buyer note](https://support.wix.com/en/article/wix-stores-viewing-buyer-notes) left by the customer.\n             */\n            buyerNote?: string;\n            /**\n             * ID of the checkout related to this cart.\n             */\n            checkoutId?: string;\n            /**\n             * Contact info.\n             */\n            contactInfo?: wix_ecom_backend.CurrentCart.AddressWithContact;\n            /**\n             * All the converted prices are presented in this currency.\n             */\n            conversionCurrency?: string;\n            /**\n             * Currency used for pricing.\n             */\n            currency?: string;\n            /**\n             * Line items.\n             */\n            lineItems?: Array<wix_ecom_backend.CurrentCart.LineItem>;\n            /**\n             * Site language in which original values are shown.\n             */\n            siteLanguage?: string;\n            /**\n             * Whether tax is included in line item prices.\n             */\n            taxIncludedInPrices?: boolean;\n            /**\n             * Weight measurement unit - defaults to site's weight unit. Supported values:\n             * + `\"KG\"`\n             * + `\"LB\"`\n             */\n            weightUnit?: string;\n        };\n        type CartAddress = {\n            /**\n             * Address\n             */\n            address?: wix_ecom_backend.CurrentCart.CommonAddress;\n            /**\n             * Contact details\n             */\n            contactDetails?: wix_ecom_backend.CurrentCart.FullAddressContactDetails;\n        };\n        type CartCompletedEvent = {\n            /**\n             * Coupon applied to this cart\n             */\n            appliedCoupon?: wix_ecom_backend.CurrentCart.AppliedCoupon;\n            /**\n             * Customer's billing address\n             */\n            billingAddress?: wix_ecom_backend.CurrentCart.CartAddress;\n            /**\n             * Customer's Wix ID\n             */\n            buyerInfo?: wix_ecom_backend.CurrentCart.V1BuyerInfo;\n            /**\n             * Message from the customer\n             */\n            buyerNote?: string;\n            cartId?: string;\n            /**\n             * Time the cart was created\n             */\n            completedTime?: Date;\n            /**\n             * Currency used for pricing in this store\n             */\n            currency?: wix_ecom_backend.CurrentCart.Currency;\n            /**\n             * Cart shipping information\n             */\n            shippingInfo?: wix_ecom_backend.CurrentCart.ShippingInfo;\n            /**\n             * Totals for order's line items\n             */\n            totals?: wix_ecom_backend.CurrentCart.Totals;\n            /**\n             * Weight measurement unit - defaults to site's weight unit. Supported values:\n             * + `\"KG\"`\n             * + `\"LB\"`\n             */\n            weightUnit?: string;\n        };\n        type CartDiscount = {\n            /**\n             * Coupon details.\n             */\n            coupon?: wix_ecom_backend.CurrentCart.Coupon;\n            /**\n             * Merchant discount.\n             */\n            merchantDiscount?: wix_ecom_backend.CurrentCart.MerchantDiscount;\n        };\n        type CartDiscountDiscountSourceOneOf = {\n            /**\n             * Coupon details.\n             */\n            coupon?: wix_ecom_backend.CurrentCart.Coupon;\n            /**\n             * Merchant discount.\n             */\n            merchantDiscount?: wix_ecom_backend.CurrentCart.MerchantDiscount;\n        };\n        type CatalogReference = {\n            /**\n             * App ID of the catalog the item comes from. For example, the Wix Stores `appId` is `\"1380b703-ce81-ff05-f115-39571d94dfcd\"`.\n             */\n            appId?: string;\n            /**\n             * ID of the item within its catalog. For example, `productId` for Wix Stores.\n             */\n            catalogItemId?: string;\n            /**\n             * Additional info in key:value form. For example, for a product variant from Wix Stores Catalog, `options` field would hold something like one of the following:\n             * + `{\"Size\": \"M\", \"Color\": \"Red\"}`\n             * + `{\"variantId\": \"\"}`.\n             */\n            options?: Object;\n        };\n        type Color = {\n            /**\n             * HEX or RGB color code for display.\n             */\n            code?: string;\n            /**\n             * Description line color name in site's default language.\n             */\n            original?: string;\n            /**\n             * Description line color name translated into buyer's language. Defaults to `original` when not defined.\n             */\n            translated?: string;\n        };\n        type CommonAddress = {\n            /**\n             * Main address line, usually street and number as free text.\n             */\n            addressLine?: string;\n            /**\n             * Main address line, usually street and number as free text.\n             */\n            addressLine1?: string;\n            /**\n             * Free text providing more detailed address info. Usually contains Apt, Suite, and Floor.\n             */\n            addressLine2?: string;\n            /**\n             * City name.\n             */\n            city?: string;\n            /**\n             * Country code.\n             */\n            country?: string;\n            /**\n             * Zip/postal code.\n             */\n            postalCode?: string;\n            /**\n             * Street name and number.\n             */\n            streetAddress?: wix_ecom_backend.CurrentCart.StreetAddress;\n            /**\n             * Subdivision. Usually a state, region, prefecture, or province code, according to [ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-2).\n             */\n            subdivision?: string;\n        };\n        type CommonAddressStreetOneOf = {\n            /**\n             * Main address line, usually street and number as free text.\n             */\n            addressLine?: string;\n            /**\n             * Street name and number.\n             */\n            streetAddress?: wix_ecom_backend.CurrentCart.StreetAddress;\n        };\n        type Coupon = {\n            /**\n             * Coupon ID.\n             */\n            _id?: string;\n            /**\n             * Coupon code.\n             */\n            code?: string;\n        };\n        type CreateCartRequest = {\n            /**\n             * Cart info.\n             */\n            cartInfo?: wix_ecom_backend.CurrentCart.Cart;\n            /**\n             * The code of an existing coupon to apply to the cart. For more information, see the [Coupons API](https://www.wix.com/velo/reference/wix-marketing-backend/coupons).\n             */\n            couponCode?: string;\n            /**\n             * Custom line items.\n             */\n            customLineItems?: Array<wix_ecom_backend.CurrentCart.CustomLineItem>;\n            /**\n             * Catalog line items.\n             */\n            lineItems?: Array<wix_ecom_backend.CurrentCart.LineItem>;\n            /**\n             * Merchant discounts to apply to specific line items. If no `lineItemIds` are passed, the discount will apply to the whole cart.\n             */\n            merchantDiscounts?: Array<wix_ecom_backend.CurrentCart.MerchantDiscountInput>;\n        };\n        type CreateCartResponse = {\n            /**\n             * Cart.\n             */\n            cart?: wix_ecom_backend.CurrentCart.Cart;\n        };\n        type CreateCheckoutFromCurrentCartOptions = {\n            /**\n             * Billing address. Used for calculating tax if all the items in the cart are not shippable.\n             */\n            billingAddress?: wix_ecom_backend.CurrentCart.Address;\n            /**\n             * Sales channel type. Supported values:\n             * + `\"AMAZON\"`\n             * + `\"BACKOFFICE_MERCHANT\"`\n             * + `\"EBAY\"`\n             * + `\"OTHER_PLATFORM\"`\n             * + `\"POS\"`\n             * + `\"WEB\"`\n             * + `\"WISH\"`\n             * + `\"WIX_APP_STORE\"`\n             * + `\"WIX_INVOICES\"`\n             */\n            channelType?: string;\n            /**\n             * Mandatory when setting a billing or shipping address if the site visitor isn't logged in.\n             */\n            email?: string;\n            /**\n             * Selected shipping option.\n             */\n            selectedShippingOption?: wix_ecom_backend.CurrentCart.SelectedShippingOption;\n            /**\n             * Shipping address. Used for calculating tax and shipping (when applicable).\n             */\n            shippingAddress?: wix_ecom_backend.CurrentCart.Address;\n        };\n        type CreateCheckoutFromCurrentCartRequest = {\n            /**\n             * Billing address. Used for calculating tax if all the items in the cart are not shippable.\n             */\n            billingAddress?: wix_ecom_backend.CurrentCart.Address;\n            /**\n             * Sales channel type. Supported values:\n             * + `\"AMAZON\"`\n             * + `\"BACKOFFICE_MERCHANT\"`\n             * + `\"EBAY\"`\n             * + `\"OTHER_PLATFORM\"`\n             * + `\"POS\"`\n             * + `\"WEB\"`\n             * + `\"WISH\"`\n             * + `\"WIX_APP_STORE\"`\n             * + `\"WIX_INVOICES\"`\n             */\n            channelType?: string;\n            /**\n             * Mandatory when setting a billing or shipping address if the site visitor isn't logged in.\n             */\n            email?: string;\n            /**\n             * Selected shipping option.\n             */\n            selectedShippingOption?: wix_ecom_backend.CurrentCart.SelectedShippingOption;\n            /**\n             * Shipping address. Used for calculating tax and shipping (when applicable).\n             */\n            shippingAddress?: wix_ecom_backend.CurrentCart.Address;\n        };\n        type CreateCheckoutRequest = {\n            /**\n             * Cart ID.\n             */\n            _id: string;\n            /**\n             * Billing address. Used for calculating tax if all the items in the cart are not shippable.\n             */\n            billingAddress?: wix_ecom_backend.CurrentCart.Address;\n            /**\n             * Sales channel type. Supported values:\n             * + `\"AMAZON\"`\n             * + `\"BACKOFFICE_MERCHANT\"`\n             * + `\"EBAY\"`\n             * + `\"OTHER_PLATFORM\"`\n             * + `\"POS\"`\n             * + `\"WEB\"`\n             * + `\"WISH\"`\n             * + `\"WIX_APP_STORE\"`\n             * + `\"WIX_INVOICES\"`\n             */\n            channelType?: string;\n            /**\n             * Mandatory when setting a billing or shipping address if the site visitor isn't logged in.\n             */\n            email?: string;\n            /**\n             * Selected shipping option.\n             */\n            selectedShippingOption?: wix_ecom_backend.CurrentCart.SelectedShippingOption;\n            /**\n             * Shipping address. Used for calculating tax and shipping (when applicable).\n             */\n            shippingAddress?: wix_ecom_backend.CurrentCart.Address;\n        };\n        type CreateCheckoutResponse = {\n            /**\n             * The newly created checkout's ID.\n             */\n            checkoutId?: string;\n        };\n        type Currency = {\n            /**\n             * Currency code\n             */\n            code?: string;\n            /**\n             * Currency symbol\n             */\n            symbol?: string;\n        };\n        type CustomLineItem = {\n            /**\n             * Custom line item ID. Defaults to an auto-generated ID.\n             */\n            _id?: string;\n            /**\n             * Custom line item description lines. Used for displaying the cart, checkout and order.\n             */\n            descriptionLines?: Array<wix_ecom_backend.CurrentCart.DescriptionLine>;\n            /**\n             * Custom line item media. Supported formats:\n             * + Link to an image/video from the [Wix Media Manager](https://support.wix.com/en/article/wix-media-about-the-media-manager) - `\"wix:image://v1/3c76e2_c53...4ea4~mv2.jpg#originWidth=1000&originHeight=1000\"`.\n             * + An image from the web - `\"http(s)://\"`.\n             */\n            media?: string;\n            /**\n             * Custom line item name.\n             */\n            name?: string;\n            /**\n             * Custom line item price.\n             */\n            price?: string;\n            /**\n             * Custom line item quantity.\n             */\n            quantity?: number;\n        };\n        type DeleteCartRequest = {\n            /**\n             * ID of the cart to delete.\n             */\n            _id: string;\n        };\n        type DeleteCartResponse = {};\n        type DeleteCurrentCartRequest = {};\n        type DeliveryLogistics = {\n            /**\n             * Expected delivery time, in free text. For example, \"3-5 business days\".\n             */\n            deliveryTime?: string;\n            /**\n             * Instructions for caller, e.g for pickup: \"Please deliver during opening hours, and please don't park in disabled parking spot\".\n             */\n            instructions?: string;\n            /**\n             * Pickup details.\n             */\n            pickupDetails?: wix_ecom_backend.CurrentCart.PickupDetails;\n        };\n        type Description = {\n            /**\n             * Subscription option description.\n             */\n            original?: string;\n            /**\n             * Translated subscription option name.\n             */\n            translated?: string;\n        };\n        type DescriptionLine = {\n            /**\n             * Description line color value.\n             */\n            colorInfo?: wix_ecom_backend.CurrentCart.Color;\n            /**\n             * Description line name.\n             */\n            name?: wix_ecom_backend.CurrentCart.DescriptionLineName;\n            /**\n             * Description line plain text value.\n             */\n            plainText?: wix_ecom_backend.CurrentCart.PlainTextValue;\n        };\n        type DescriptionLineDescriptionLineValueOneOf = {};\n        type DescriptionLineName = {\n            /**\n             * Description line name in site's default language.\n             */\n            original?: string;\n            /**\n             * Description line name translated into buyer's language. Defaults to `original` when not defined.\n             */\n            translated?: string;\n        };\n        type DescriptionLineValueOneOf = {\n            /**\n             * Description line color value.\n             */\n            colorInfo?: wix_ecom_backend.CurrentCart.Color;\n            /**\n             * Description line plain text value.\n             */\n            plainText?: wix_ecom_backend.CurrentCart.PlainTextValue;\n        };\n        type Details = {\n            applicationError?: wix_ecom_backend.CurrentCart.ApplicationError;\n            /**\n             * Deprecated in APIs. Used to enable migration from rendering arbitrary tracing to rest response.\n             */\n            tracing?: Record<string, string>;\n            validationError?: wix_ecom_backend.CurrentCart.ValidationError;\n        };\n        type DetailsKindOneOf = {\n            applicationError?: wix_ecom_backend.CurrentCart.ApplicationError;\n            validationError?: wix_ecom_backend.CurrentCart.ValidationError;\n        };\n        type DiscountRule = {\n            /**\n             * Discount rule ID\n             */\n            _id?: string;\n            /**\n             * Discount value.\n             */\n            amount?: wix_ecom_backend.CurrentCart.MultiCurrencyPrice;\n            /**\n             * Discount rule name\n             */\n            name?: wix_ecom_backend.CurrentCart.DiscountRuleName;\n        };\n        type DiscountRuleName = {\n            /**\n             * Original discount rule name (in site's default language).\n             */\n            original?: string;\n            /**\n             * Discount rule name translated into buyer's language. Defaults to `original` when not defined.\n             */\n            translated?: string;\n        };\n        type DomainEvent = {\n            /**\n             * random GUID so clients can tell if event was already handled\n             */\n            _id?: string;\n            actionEvent?: wix_ecom_backend.CurrentCart.ActionEvent;\n            createdEvent?: wix_ecom_backend.CurrentCart.EntityCreatedEvent;\n            deletedEvent?: wix_ecom_backend.CurrentCart.EntityDeletedEvent;\n            /**\n             * Assumes actions are also always typed to an entity_type\n             * Example: wix.stores.catalog.product, wix.bookings.session, wix.payments.transaction\n             */\n            entityFqdn?: string;\n            /**\n             * Assuming that all messages including Actions have id\n             * Example: The id of the specific order, the id of a specific campaign\n             */\n            entityId?: string;\n            /**\n             * The time of the event. Useful if there was a delay in dipatching\n             */\n            eventTime?: Date;\n            extendedFieldsUpdatedEvent?: wix_ecom_backend.CurrentCart.ExtendedFieldsUpdatedEvent;\n            /**\n             * If present, indicates the action that triggered the event.\n             */\n            originatedFrom?: string;\n            /**\n             * This is top level to ease client code dipatching of messages (switch on entity_fqdn+slug)\n             * This is although the created/updated/deleted notion is duplication of the oneof types\n             * Example: created/updated/deleted/started/completed/email_opened\n             */\n            slug?: string;\n            /**\n             * A field that should be set if this event was triggered by an anonymize request.\n             * For example you must set it to true when sending an event as a result of a GDPR right to be forgotten request.\n             * NOTE: This field is not relevant for `EntityCreatedEvent` but is located here for better ergonomics of consumers.\n             */\n            triggeredByAnonymizeRequest?: boolean;\n            updatedEvent?: wix_ecom_backend.CurrentCart.EntityUpdatedEvent;\n        };\n        type DomainEventBodyOneOf = {\n            actionEvent?: wix_ecom_backend.CurrentCart.ActionEvent;\n            createdEvent?: wix_ecom_backend.CurrentCart.EntityCreatedEvent;\n            deletedEvent?: wix_ecom_backend.CurrentCart.EntityDeletedEvent;\n            extendedFieldsUpdatedEvent?: wix_ecom_backend.CurrentCart.ExtendedFieldsUpdatedEvent;\n            updatedEvent?: wix_ecom_backend.CurrentCart.EntityUpdatedEvent;\n        };\n        type Empty = {};\n        type EntityCreatedEvent = {\n            entityAsJson?: string;\n        };\n        type EntityDeletedEvent = {};\n        type EntityUpdatedEvent = {\n            /**\n             * Since platformized APIs only expose PATCH and not PUT we can't assume that the fields sent from the client are the actual diff.\n             * This means that to generate a list of changed fields (as opposed to sent fields) one needs to traverse both objects.\n             * We don't want to impose this on all developers and so we leave this traversal to the notification recipients which need it.\n             */\n            currentEntityAsJson?: string;\n        };\n        type EstimateCurrentCartTotalsOptions = {\n            /**\n             * Billing address. Used for calculating tax if all the items in the cart are not shippable.\n             */\n            billingAddress?: wix_ecom_backend.CurrentCart.Address;\n            /**\n             * The selected membership payment options and which line items they apply to.\n             */\n            selectedMemberships?: wix_ecom_backend.CurrentCart.SelectedMemberships;\n            /**\n             * Selected shipping option.\n             */\n            selectedShippingOption?: wix_ecom_backend.CurrentCart.SelectedShippingOption;\n            /**\n             * Shipping address. Used for calculating tax and shipping (when applicable).\n             */\n            shippingAddress?: wix_ecom_backend.CurrentCart.Address;\n        };\n        type EstimateCurrentCartTotalsRequest = {\n            /**\n             * Billing address. Used for calculating tax if all the items in the cart are not shippable.\n             */\n            billingAddress?: wix_ecom_backend.CurrentCart.Address;\n            /**\n             * The selected membership payment options and which line items they apply to.\n             */\n            selectedMemberships?: wix_ecom_backend.CurrentCart.SelectedMemberships;\n            /**\n             * Selected shipping option.\n             */\n            selectedShippingOption?: wix_ecom_backend.CurrentCart.SelectedShippingOption;\n            /**\n             * Shipping address. Used for calculating tax and shipping (when applicable).\n             */\n            shippingAddress?: wix_ecom_backend.CurrentCart.Address;\n        };\n        type EstimateTotalsRequest = {\n            /**\n             * Cart ID.\n             */\n            _id: string;\n            /**\n             * Billing address. Used for calculating tax if all the items in the cart are not shippable.\n             */\n            billingAddress?: wix_ecom_backend.CurrentCart.Address;\n            /**\n             * The selected membership payment options and which line items they apply to.\n             */\n            selectedMemberships?: wix_ecom_backend.CurrentCart.SelectedMemberships;\n            /**\n             * Selected shipping option.\n             */\n            selectedShippingOption?: wix_ecom_backend.CurrentCart.SelectedShippingOption;\n            /**\n             * Shipping address. Used for calculating tax and shipping (when applicable).\n             */\n            shippingAddress?: wix_ecom_backend.CurrentCart.Address;\n        };\n        type EstimateTotalsResponse = {\n            /**\n             * Additional fees\n             */\n            additionalFees?: Array<wix_ecom_backend.CurrentCart.AdditionalFee>;\n            /**\n             * Applied discounts.\n             */\n            appliedDiscounts?: Array<wix_ecom_backend.CurrentCart.AppliedDiscount>;\n            /**\n             * Calculated line items.\n             */\n            calculatedLineItems?: Array<wix_ecom_backend.CurrentCart.CalculatedLineItem>;\n            /**\n             * Calculation errors.\n             */\n            calculationErrors?: wix_ecom_backend.CurrentCart.CalculationErrors;\n            /**\n             * Cart.\n             */\n            cart?: wix_ecom_backend.CurrentCart.Cart;\n            /**\n             * Currency used for pricing in this store.\n             */\n            currency?: string;\n            /**\n             * Applied gift card.\n             */\n            giftCard?: wix_ecom_backend.CurrentCart.GiftCard;\n            /**\n             * Information about valid and invalid memberships, and which ones are selected for usage.\n             */\n            membershipOptions?: wix_ecom_backend.CurrentCart.MembershipOptions;\n            /**\n             * Remaining amount for the order to be fully paid.\n             */\n            payLater?: wix_ecom_backend.CurrentCart.PriceSummary;\n            /**\n             * Minimal amount to pay in order to place the order.\n             */\n            payNow?: wix_ecom_backend.CurrentCart.PriceSummary;\n            /**\n             * Price summary.\n             */\n            priceSummary?: wix_ecom_backend.CurrentCart.PriceSummary;\n            /**\n             * Shipping information.\n             */\n            shippingInfo?: wix_ecom_backend.CurrentCart.ShippingInformation;\n            /**\n             * Tax summary.\n             */\n            taxSummary?: wix_ecom_backend.CurrentCart.TaxSummary;\n            /**\n             * Weight measurement unit - defaults to site's weight unit. Supported values:\n             * + `\"KG\"`\n             * + `\"LB\"`\n             */\n            weightUnit?: string;\n        };\n        type ExtendedFieldsUpdatedEvent = {\n            currentEntityAsJson?: string;\n        };\n        type FieldViolation = {\n            data?: Object;\n            description?: string;\n            field?: string;\n            /**\n             * applicable when violated_rule=OTHER\n             */\n            ruleName?: string;\n            /**\n             * Suppoerted values:\n             * - `'DECIMAL_GT'`\n             * - `'DECIMAL_GTE'`\n             * - `'DECIMAL_LT'`\n             * - `'DECIMAL_LTE'`\n             * - `'DECIMAL_MAX_SCALE'`\n             * - `'FORMAT'`\n             * - `'INVALID_ENUM_VALUE'`\n             * - `'MAX'`\n             * - `'MAX_LENGTH'`\n             * - `'MAX_SIZE'`\n             * - `'MIN'`\n             * - `'MIN_LENGTH'`\n             * - `'MIN_SIZE'`\n             * - `'OTHER'`\n             * - `'REQUIRED_FIELD'`\n             * - `'VALIDATION'`\n             */\n            violatedRule?: string;\n        };\n        type FullAddressContactDetails = {\n            /**\n             * Contact's company\n             */\n            company?: string;\n            /**\n             * Email associated with the address\n             */\n            email?: string;\n            /**\n             * Contact first name\n             */\n            firstName?: string;\n            /**\n             * Contact last name\n             */\n            lastName?: string;\n            /**\n             * Contact phone number\n             */\n            phone?: string;\n            /**\n             * tax info (Currently usable only in Brazil)\n             */\n            vatId?: wix_ecom_backend.CurrentCart.VatId;\n        };\n        type GetCartByCheckoutIdRequest = {\n            /**\n             * Checkout ID.\n             */\n            _id: string;\n        };\n        type GetCartByCheckoutIdResponse = {\n            /**\n             * The requested cart.\n             */\n            cart?: wix_ecom_backend.CurrentCart.Cart;\n        };\n        type GetCartRequest = {\n            /**\n             * ID of the cart to retrieve.\n             */\n            _id: string;\n        };\n        type GetCartResponse = {\n            /**\n             * The requested cart.\n             */\n            cart?: wix_ecom_backend.CurrentCart.Cart;\n        };\n        type GetCurrentCartRequest = {};\n        type GetCurrentCartResponse = {\n            /**\n             * Current session's active cart.\n             */\n            cart?: wix_ecom_backend.CurrentCart.Cart;\n        };\n        type GiftCard = {\n            /**\n             * Gift Card ID.\n             */\n            _id?: string;\n            /**\n             * Gift card value.\n             */\n            amount?: wix_ecom_backend.CurrentCart.MultiCurrencyPrice;\n            /**\n             * App ID of the gift card provider.\n             */\n            appId?: string;\n            /**\n             * Gift card obfuscated code.\n             */\n            obfuscatedCode?: string;\n        };\n        type Group = {\n            /**\n             * Item ID (when the coupon scope is limited to just one item).\n             */\n            entityId?: string;\n            /**\n             * Coupon scope's group (e.g., product or collection in Wix Stores). See [valid scope values](https://dev.wix.com/api/rest/coupons/coupons/valid-scope-values).\n             */\n            name?: string;\n        };\n        type InvalidMembership = {\n            /**\n             * Membership details.\n             */\n            membership?: wix_ecom_backend.CurrentCart.Membership;\n            /**\n             * Reason why this membership is invalid and cannot be used.\n             */\n            reason?: string;\n        };\n        type ItemAvailabilityInfo = {\n            /**\n             * Quantity available.\n             */\n            quantityAvailable?: number;\n            /**\n             * Item availability status.\n             */\n            status?: string;\n        };\n        type ItemTaxFullDetails = {\n            /**\n             * If breakdown exists, the sum of rates in the breakdown must equal `tax_rate`.\n             */\n            rateBreakdown?: Array<wix_ecom_backend.CurrentCart.TaxRateBreakdown>;\n            /**\n             * Tax rate %, as a decimal point between 0 and 1.\n             */\n            taxRate?: string;\n            /**\n             * Amount for which tax is calculated.\n             */\n            taxableAmount?: wix_ecom_backend.CurrentCart.MultiCurrencyPrice;\n            /**\n             * Calculated tax, based on `taxable_amount` and `tax_rate`.\n             */\n            totalTax?: wix_ecom_backend.CurrentCart.MultiCurrencyPrice;\n        };\n        type ItemType = {\n            /**\n             * Custom item type.\n             */\n            custom?: string;\n            /**\n             * Preset item type.\n             */\n            preset?: string;\n        };\n        type ItemTypeItemTypeDataOneOf = {\n            /**\n             * Custom item type.\n             */\n            custom?: string;\n            /**\n             * Preset item type.\n             */\n            preset?: string;\n        };\n        type LineItem = {\n            /**\n             * Line item ID.\n             */\n            _id?: string;\n            /**\n             * Item availability details.\n             */\n            availability?: wix_ecom_backend.CurrentCart.ItemAvailabilityInfo;\n            /**\n             * Catalog and item reference. Holds IDs for the item and the catalog it came from, as well as further optional info.\n             */\n            catalogReference?: wix_ecom_backend.CurrentCart.CatalogReference;\n            /**\n             * Line item description lines. Used for displaying the cart, checkout and order.\n             */\n            descriptionLines?: Array<wix_ecom_backend.CurrentCart.DescriptionLine>;\n            /**\n             * Item price **before** catalog-defined discount. Defaults to `price` when not provided.\n             */\n            fullPrice?: wix_ecom_backend.CurrentCart.MultiCurrencyPrice;\n            /**\n             * Line item image details.\n             */\n            image?: string;\n            /**\n             * Item type. Either a preset type or custom.\n             */\n            itemType?: wix_ecom_backend.CurrentCart.ItemType;\n            /**\n             * Type of selected payment option for current item. Defaults to `\"FULL_PAYMENT_ONLINE\"`.\n             * + `\"FULL_PAYMENT_ONLINE\"` - The entire payment for this item happens as part of the checkout.\n             * + `\"FULL_PAYMENT_OFFLINE\"` - The entire payment for this item happens after the checkout. For example, when using cash, check, or other offline payment methods.\n             * + `\"MEMBERSHIP\"` - Payment for this item is done by charging a membership. When this option is used, `lineItem.price.amount` will be 0.\n             */\n            paymentOption?: string;\n            /**\n             * Physical properties of the item. When relevant, contains information such as SKU, item weight, and shippability.\n             */\n            physicalProperties?: wix_ecom_backend.CurrentCart.PhysicalProperties;\n            /**\n             * Item price **after** catalog-defined discount and line item discounts.\n             */\n            price?: wix_ecom_backend.CurrentCart.MultiCurrencyPrice;\n            /**\n             * Item price **before** line item discounts and **after** catalog-defined discount. Defaults to `price` when not provided.\n             */\n            priceBeforeDiscounts?: wix_ecom_backend.CurrentCart.MultiCurrencyPrice;\n            /**\n             * Additional description for the price. For example, when price is 0 but additional details about the actual price are needed - \"Starts at $67\".\n             */\n            priceDescription?: wix_ecom_backend.CurrentCart.PriceDescription;\n            /**\n             * Item name.\n             * + Stores - `product.name`\n             * + Bookings - `service.info.name`\n             * + Events - `ticket.name`\n             */\n            productName?: wix_ecom_backend.CurrentCart.ProductName;\n            /**\n             * Item quantity.\n             */\n            quantity?: number;\n            /**\n             * In cases where `catalogReference.catalogItemId` is NOT the actual catalog item ID, this field will return the true item's ID.\n             * + For example, for Wix Bookings, `catalogReference.catalogItemId` is the booking ID. Therefore this value is set to the service ID.\n             * + in most cases, this field is the name as `catalogReference.catalogItemId`.\n             * + Used in membership validation.\n             */\n            rootCatalogItemId?: string;\n            /**\n             * Service properties. When relevant, this contains information such as date and number of participants.\n             */\n            serviceProperties?: wix_ecom_backend.CurrentCart.ServiceProperties;\n            /**\n             * URL to the item's page on the site.\n             */\n            url?: string;\n        };\n        type LineItemPricesData = {\n            /**\n             * Total price **after** catalog-defined discount and line item discounts.\n             */\n            lineItemPrice?: wix_ecom_backend.CurrentCart.MultiCurrencyPrice;\n            /**\n             * Catalog price after catalog discount and automatic discounts.\n             */\n            price?: wix_ecom_backend.CurrentCart.MultiCurrencyPrice;\n            /**\n             * Item price **before** line item discounts and **after** catalog-defined discount. Defaults to `price` when not provided.\n             */\n            priceBeforeDiscounts?: wix_ecom_backend.CurrentCart.MultiCurrencyPrice;\n            /**\n             * Tax details.\n             */\n            taxDetails?: wix_ecom_backend.CurrentCart.ItemTaxFullDetails;\n            /**\n             * Total discount for all line items.\n             */\n            totalDiscount?: wix_ecom_backend.CurrentCart.MultiCurrencyPrice;\n            /**\n             * Total price after discounts and after tax.\n             */\n            totalPriceAfterTax?: wix_ecom_backend.CurrentCart.MultiCurrencyPrice;\n            /**\n             * Deprecated - please use `total_price_after_tax` minus `tax_details.total_tax` instead.\n             */\n            totalPriceBeforeTax?: wix_ecom_backend.CurrentCart.MultiCurrencyPrice;\n        };\n        type LineItemQuantityUpdate = {\n            /**\n             * Line item ID.\n             */\n            _id?: string;\n            /**\n             * New quantity. Number must 1 or higher.\n             */\n            quantity?: number;\n        };\n        type Membership = {\n            /**\n             * Membership ID.\n             */\n            _id?: string;\n            /**\n             * Additional data about this membership.\n             */\n            additionalData?: Object;\n            /**\n             * ID of the application providing this payment option.\n             */\n            appId?: string;\n            /**\n             * Optional - For a membership that has limited credits, information about credit usage.\n             */\n            credits?: wix_ecom_backend.CurrentCart.MembershipPaymentCredits;\n            /**\n             * Optional - TMembership expiry date.\n             */\n            expirationDate?: Date;\n            /**\n             * Line item IDs which are \"paid\" for by this membership.\n             */\n            lineItemIds?: Array<string>;\n            /**\n             * The name of this membership.\n             */\n            name?: wix_ecom_backend.CurrentCart.MembershipName;\n        };\n        type MembershipName = {\n            /**\n             * The name of this membership\n             */\n            original?: string;\n            /**\n             * Membership name translated into buyer's language. Defaults to `original` when not defined.\n             */\n            translated?: string;\n        };\n        type MembershipOptions = {\n            /**\n             * List of payment options that can be used.\n             */\n            eligibleMemberships?: Array<wix_ecom_backend.CurrentCart.Membership>;\n            /**\n             * List of payment options that are owned by the member, but cannot be used due to reason provided.\n             */\n            invalidMemberships?: Array<wix_ecom_backend.CurrentCart.InvalidMembership>;\n            /**\n             * The selected membership payment options and which line items they apply to.\n             */\n            selectedMemberships?: Array<wix_ecom_backend.CurrentCart.SelectedMembership>;\n        };\n        type MembershipPaymentCredits = {\n            /**\n             * How much credit remained for this membership\n             */\n            remaining?: number;\n            /**\n             * How much credit this membership has in total\n             */\n            total?: number;\n        };\n        type MerchantDiscount = {\n            /**\n             * Discount value.\n             */\n            amount?: wix_ecom_backend.CurrentCart.MultiCurrencyPrice;\n        };\n        type MerchantDiscountInput = {\n            /**\n             * Discount amount.\n             */\n            amount?: string;\n            /**\n             * IDs of the line items the discount applies to.\n             */\n            lineItemIds?: Array<string>;\n        };\n        type MultiCurrencyPrice = {\n            /**\n             * Amount.\n             */\n            amount?: string;\n            /**\n             * Converted amount.\n             */\n            convertedAmount?: string;\n            /**\n             * Amount formatted with currency symbol.\n             */\n            formattedAmount?: string;\n            /**\n             * Converted amount formatted with currency symbol.\n             */\n            formattedConvertedAmount?: string;\n        };\n        type OtherCharge = {\n            /**\n             * Price of added cost.\n             */\n            price?: wix_ecom_backend.CurrentCart.MultiCurrencyPrice;\n            /**\n             * Type of additional cost.\n             */\n            type?: string;\n        };\n        type PhysicalProperties = {\n            /**\n             * Whether this line item is shippable.\n             */\n            shippable?: boolean;\n            /**\n             * Stock-keeping unit. Learn more about [SKUs](https://www.wix.com/encyclopedia/definition/stock-keeping-unit-sku).\n             */\n            sku?: string;\n            /**\n             * Line item weight. Measurement unit is taken from `order.weightUnit`. Supported values:\n             * + `\"KG\"`\n             * + `\"LB\"`\n             */\n            weight?: number;\n        };\n        type PickupDetails = {\n            /**\n             * Pickup address.\n             */\n            address?: wix_ecom_backend.CurrentCart.Address;\n            /**\n             * Whether the pickup address is that of a business - this may effect tax calculation.\n             */\n            businessLocation?: boolean;\n            /**\n             * Pickup method\n             */\n            pickupMethod?: string;\n        };\n        type PlainTextValue = {\n            /**\n             * Description line plain text value in site's default language.\n             */\n            original?: string;\n            /**\n             * Description line plain text value translated into buyer's language. Defaults to `original` when not defined.\n             */\n            translated?: string;\n        };\n        type PriceDescription = {\n            /**\n             * **Required** - Original price description (in site's default language).\n             */\n            original?: string;\n            /**\n             * Product name translated into buyer's language. Defaults to `original` when not defined.\n             */\n            translated?: string;\n        };\n        type PriceSummary = {\n            /**\n             * Total additional fees price.\n             */\n            additionalFees?: wix_ecom_backend.CurrentCart.MultiCurrencyPrice;\n            /**\n             * Total calculated discount value.\n             */\n            discount?: wix_ecom_backend.CurrentCart.MultiCurrencyPrice;\n            /**\n             * Total shipping price, before discounts and before tax.\n             */\n            shipping?: wix_ecom_backend.CurrentCart.MultiCurrencyPrice;\n            /**\n             * Subtotal of all line items, before discounts and before tax.\n             */\n            subtotal?: wix_ecom_backend.CurrentCart.MultiCurrencyPrice;\n            /**\n             * Total tax.\n             */\n            tax?: wix_ecom_backend.CurrentCart.MultiCurrencyPrice;\n            /**\n             * Total price after discounts, gift cards, and tax.\n             */\n            total?: wix_ecom_backend.CurrentCart.MultiCurrencyPrice;\n        };\n        type ProductName = {\n            /**\n             * *Required** - Original product name (in site's default language).\n             */\n            original?: string;\n            /**\n             * Description product name translated into buyer's language. Defaults to `original` when not defined.\n             */\n            translated?: string;\n        };\n        type RemoveCouponFromCurrentCartRequest = {};\n        type RemoveCouponRequest = {\n            /**\n             * Cart ID.\n             */\n            _id: string;\n        };\n        type RemoveCouponResponse = {\n            /**\n             * Updated cart.\n             */\n            cart?: wix_ecom_backend.CurrentCart.Cart;\n        };\n        type RemoveLineItemsFromCurrentCartRequest = {\n            /**\n             * IDs of the line items to remove from the cart.\n             */\n            lineItemIds: Array<string>;\n        };\n        type RemoveLineItemsRequest = {\n            /**\n             * Cart ID.\n             */\n            _id: string;\n            /**\n             * IDs of the line items to remove from the cart.\n             */\n            lineItemIds: Array<string>;\n        };\n        type RemoveLineItemsResponse = {\n            /**\n             * Updated cart.\n             */\n            cart?: wix_ecom_backend.CurrentCart.Cart;\n        };\n        type Scope = {\n            /**\n             * Coupon scope's applied group (e.g., event or ticket in Wix Events)\n             */\n            group?: wix_ecom_backend.CurrentCart.Group;\n            /**\n             * Scope namespace (Wix Stores, Wix Bookings, Wix Events)\n             */\n            namespace?: string;\n        };\n        type SecuredMedia = {\n            /**\n             * Media ID in media manager.\n             */\n            _id?: string;\n            /**\n             * Original file name.\n             */\n            fileName?: string;\n            /**\n             * File type.\n             */\n            fileType?: string;\n        };\n        type SelectedCarrierServiceOption = {\n            /**\n             * This carrier's unique ID\n             */\n            carrierId?: string;\n            /**\n             * Unique identifier of selected option. For example, \"usps_std_overnight\".\n             */\n            code?: string;\n            /**\n             * Shipping costs.\n             */\n            cost?: wix_ecom_backend.CurrentCart.SelectedCarrierServiceOptionPrices;\n            /**\n             * Delivery logistics.\n             */\n            logistics?: wix_ecom_backend.CurrentCart.DeliveryLogistics;\n            /**\n             * Other charges\n             */\n            otherCharges?: Array<wix_ecom_backend.CurrentCart.SelectedCarrierServiceOptionOtherCharge>;\n            /**\n             * Were we able to find the requested shipping option, or otherwise we fallback to the default one (the first)\n             */\n            requestedShippingOption?: boolean;\n            /**\n             * Title of the option, such as USPS Standard Overnight Delivery (in the requested locale).\n             * For example, \"Standard\" or \"First-Class Package International\".\n             */\n            title?: string;\n        };\n        type SelectedCarrierServiceOptionOtherCharge = {\n            /**\n             * Price of added charge.\n             */\n            cost?: wix_ecom_backend.CurrentCart.SelectedCarrierServiceOptionPrices;\n            /**\n             * Details of the charge, such as 'Full Coverage Insurance of up to 80% of value of shipment'.\n             */\n            details?: string;\n            /**\n             * Type of additional cost.\n             */\n            type?: string;\n        };\n        type SelectedCarrierServiceOptionPrices = {\n            /**\n             * Shipping price before discount and before tax.\n             */\n            price?: wix_ecom_backend.CurrentCart.MultiCurrencyPrice;\n            /**\n             * Tax details.\n             */\n            taxDetails?: wix_ecom_backend.CurrentCart.ItemTaxFullDetails;\n            /**\n             * Shipping discount before tax.\n             */\n            totalDiscount?: wix_ecom_backend.CurrentCart.MultiCurrencyPrice;\n            /**\n             * Total shipping price, after discount and after tax.\n             */\n            totalPriceAfterTax?: wix_ecom_backend.CurrentCart.MultiCurrencyPrice;\n            /**\n             * Deprecated - please use `total_price_after_tax` minus `tax_details.total_tax` instead.\n             */\n            totalPriceBeforeTax?: wix_ecom_backend.CurrentCart.MultiCurrencyPrice;\n        };\n        type SelectedMembership = {\n            /**\n             * Membership ID.\n             */\n            _id?: string;\n            /**\n             * ID of the app providing this payment option.\n             */\n            appId?: string;\n            /**\n             * IDs of the line items this membership applies to.\n             */\n            lineItemIds?: Array<string>;\n        };\n        type SelectedMemberships = {\n            /**\n             * Selected memberships.\n             */\n            memberships?: Array<wix_ecom_backend.CurrentCart.SelectedMembership>;\n        };\n        type SelectedShippingOption = {\n            /**\n             * Carrier ID.\n             */\n            carrierId?: string;\n            /**\n             * Selected shipping option code. For example, \"usps_std_overnight\".\n             */\n            code?: string;\n        };\n        type ServiceProperties = {\n            /**\n             * The number of people participating in this service. For example, the number of people attending the class or the number of people per hotel room.\n             */\n            numberOfParticipants?: number;\n            /**\n             * The date and time for which the service is supposed to be provided. For example, the time of the class.\n             */\n            scheduledDate?: Date;\n        };\n        type ShippingInfo = {\n            /**\n             * Pickup details when this object describes pickup\n             */\n            pickupDetails?: wix_ecom_backend.CurrentCart.V1PickupDetails;\n            /**\n             * Shipment details when this object describes shipment\n             */\n            shippingAddress?: wix_ecom_backend.CurrentCart.CartAddress;\n            /**\n             * Selected shipping rule details\n             */\n            shippingRuleDetails?: wix_ecom_backend.CurrentCart.ShippingRuleDetails;\n        };\n        type ShippingInfoDetailsOneOf = {\n            /**\n             * Pickup details when this object describes pickup\n             */\n            pickupDetails?: wix_ecom_backend.CurrentCart.V1PickupDetails;\n            /**\n             * Shipment details when this object describes shipment\n             */\n            shippingAddress?: wix_ecom_backend.CurrentCart.CartAddress;\n        };\n        type ShippingInformation = {\n            /**\n             * All shipping options.\n             */\n            carrierServiceOptions?: Array<wix_ecom_backend.CurrentCart.CarrierServiceOption>;\n            /**\n             * Shipping region.\n             */\n            region?: wix_ecom_backend.CurrentCart.ShippingRegion;\n            /**\n             * Selected shipping option.\n             */\n            selectedCarrierServiceOption?: wix_ecom_backend.CurrentCart.SelectedCarrierServiceOption;\n        };\n        type ShippingOption = {\n            /**\n             * Unique code of provided shipping option like \"usps_std_overnight\".\n             * For legacy calculators this would be the UUID of the option.\n             */\n            code?: string;\n            /**\n             * Sipping price information.\n             */\n            cost?: wix_ecom_backend.CurrentCart.ShippingPrice;\n            /**\n             * Delivery logistics.\n             */\n            logistics?: wix_ecom_backend.CurrentCart.DeliveryLogistics;\n            /**\n             * Title of the option, such as USPS Standard Overnight Delivery (in the requested locale).\n             * For example, \"Standard\" or \"First-Class Package International\".\n             */\n            title?: string;\n        };\n        type ShippingPrice = {\n            /**\n             * Other costs such as insurance, handling & packaging for fragile items, etc.\n             */\n            otherCharges?: Array<wix_ecom_backend.CurrentCart.OtherCharge>;\n            /**\n             * Shipping price.\n             */\n            price?: wix_ecom_backend.CurrentCart.MultiCurrencyPrice;\n        };\n        type ShippingRegion = {\n            /**\n             * Shipping region ID.\n             */\n            _id?: string;\n            /**\n             * Shipping region name.\n             */\n            name?: string;\n        };\n        type ShippingRuleDetails = {\n            /**\n             * Rule title (as provided by the store owner)\n             */\n            deliveryOption?: string;\n            /**\n             * Shipping option delivery time\n             */\n            estimatedDeliveryTime?: string;\n            /**\n             * Selected option ID\n             */\n            optionId?: string;\n            /**\n             * Selected shipping rule ID\n             */\n            ruleId?: string;\n        };\n        type StreetAddress = {\n            /**\n             * Street name.\n             */\n            name?: string;\n            /**\n             * Street number.\n             */\n            number?: string;\n        };\n        type Subdivision = {\n            /**\n             * Short subdivision code.\n             */\n            code?: string;\n            /**\n             * Subdivision full name.\n             */\n            name?: string;\n        };\n        type SubscriptionOptionInfo = {\n            /**\n             * Subscription option description.\n             */\n            description?: wix_ecom_backend.CurrentCart.Description;\n            /**\n             * Subscription option settings.\n             */\n            subscriptionSettings?: wix_ecom_backend.CurrentCart.SubscriptionSettings;\n            /**\n             * Subscription option title.\n             */\n            title?: wix_ecom_backend.CurrentCart.Title;\n        };\n        type SubscriptionSettings = {\n            /**\n             * Whether subscription is renewed automatically at the end of each period.\n             */\n            autoRenewal?: boolean;\n            /**\n             * Number of billing cycles before subscription ends. Ignored if `autoRenewal: true`.\n             */\n            billingCycles?: number;\n            /**\n             * Frequency of recurring payment.\n             */\n            frequency?: string;\n        };\n        type TaxCalculationDetails = {\n            /**\n             * Error details and reason for tax rate fallback.\n             */\n            autoTaxFallbackDetails?: wix_ecom_backend.CurrentCart.AutoTaxFallbackCalculationDetails;\n            /**\n             * Reason the manual calculation was used.\n             */\n            manualRateReason?: string;\n            /**\n             * Rate calculation type. Supported values:\n             * + `\"AUTO_RATE\"`\n             * + `\"FALLBACK_RATE\"`\n             * + `\"MANUAL_RATE\"`\n             * + `\"NO_TAX_COLLECTED\"`\n             */\n            rateType?: string;\n        };\n        type TaxCalculationDetailsCalculationDetailsOneOf = {\n            /**\n             * Details of the fallback rate calculation.\n             */\n            autoTaxFallbackDetails?: wix_ecom_backend.CurrentCart.AutoTaxFallbackCalculationDetails;\n            /**\n             * Reason the manual calculation was used.\n             */\n            manualRateReason?: string;\n        };\n        type TaxRateBreakdown = {\n            /**\n             * Type of tax against which the calculation was performed.\n             */\n            name?: string;\n            /**\n             * Rate at which this tax detail was calculated.\n             */\n            rate?: string;\n            /**\n             * Amount of tax for this tax detail.\n             */\n            tax?: wix_ecom_backend.CurrentCart.MultiCurrencyPrice;\n        };\n        type TaxSummary = {\n            /**\n             * Tax calculator that was active when the order was created.\n             */\n            calculationDetails?: wix_ecom_backend.CurrentCart.TaxCalculationDetails;\n            /**\n             * Amount for which tax is calculated, added from line items.\n             */\n            taxableAmount?: wix_ecom_backend.CurrentCart.MultiCurrencyPrice;\n            /**\n             * Calculated tax, added from line items.\n             */\n            totalTax?: wix_ecom_backend.CurrentCart.MultiCurrencyPrice;\n        };\n        type Title = {\n            /**\n             * Subscription option name.\n             */\n            original?: string;\n            /**\n             * Translated subscription option name.\n             */\n            translated?: string;\n        };\n        type Totals = {\n            /**\n             * Total calculated discount value, according to order.discount\n             */\n            discount?: number;\n            /**\n             * Total line items quantity\n             */\n            quantity?: number;\n            /**\n             * Total shipping price, including tax\n             */\n            shipping?: number;\n            /**\n             * Subtotal of all line items, before tax\n             */\n            subtotal?: number;\n            /**\n             * Total tax\n             */\n            tax?: number;\n            /**\n             * Total price\n             */\n            total?: number;\n            /**\n             * Total items weight\n             */\n            weight?: number;\n        };\n        type UpdateCartRequest = {\n            /**\n             * Cart info.\n             */\n            cartInfo?: wix_ecom_backend.CurrentCart.Cart;\n            /**\n             * The code of an existing coupon to apply to the cart. For more information, see the [Coupons API](https://www.wix.com/velo/reference/wix-marketing-backend/coupons).\n             */\n            couponCode?: string;\n            /**\n             * Custom line items.\n             */\n            customLineItems?: Array<wix_ecom_backend.CurrentCart.CustomLineItem>;\n            /**\n             * Catalog line items.\n             */\n            lineItems?: Array<wix_ecom_backend.CurrentCart.LineItem>;\n            /**\n             * Merchant discounts to apply to specific line items. If no `lineItemIds` are passed, the discount will be applied to the whole cart.\n             */\n            merchantDiscounts?: Array<wix_ecom_backend.CurrentCart.MerchantDiscountInput>;\n        };\n        type UpdateCartResponse = {\n            /**\n             * Updated Cart.\n             */\n            cart?: wix_ecom_backend.CurrentCart.Cart;\n        };\n        type UpdateCurrentCartLineItemQuantityRequest = {\n            /**\n             * Line item IDs and their new quantity.\n             */\n            lineItems: Array<wix_ecom_backend.CurrentCart.LineItemQuantityUpdate>;\n        };\n        type UpdateCurrentCartOptions = {\n            /**\n             * Cart info.\n             */\n            cartInfo?: wix_ecom_backend.CurrentCart.Cart;\n            /**\n             * The code of an existing coupon to apply to the cart. For more information, see the [Coupons API](https://www.wix.com/velo/reference/wix-marketing-backend/coupons).\n             */\n            couponCode?: string;\n            /**\n             * Custom line items.\n             */\n            customLineItems?: Array<wix_ecom_backend.CurrentCart.CustomLineItem>;\n            /**\n             * Catalog line items.\n             */\n            lineItems?: Array<wix_ecom_backend.CurrentCart.LineItem>;\n            /**\n             * Merchant discounts to apply to specific line items. If no `lineItemIds` are passed, the discount will be applied to the whole cart.\n             */\n            merchantDiscounts?: Array<wix_ecom_backend.CurrentCart.MerchantDiscountInput>;\n        };\n        type UpdateLineItemsQuantityRequest = {\n            /**\n             * Cart ID.\n             */\n            _id: string;\n            /**\n             * Line item IDs and their new quantity.\n             */\n            lineItems: Array<wix_ecom_backend.CurrentCart.LineItemQuantityUpdate>;\n        };\n        type UpdateLineItemsQuantityResponse = {\n            /**\n             * Updated cart.\n             */\n            cart?: wix_ecom_backend.CurrentCart.Cart;\n        };\n        type V1BuyerInfo = {\n            /**\n             * Customer details\n             */\n            _id?: string;\n            /**\n             * Customer's email address\n             */\n            email?: string;\n            /**\n             * Customer's first name\n             */\n            firstName?: string;\n            /**\n             * Customer's relationship to the website\n             */\n            identityType?: string;\n            /**\n             * Customer's last name\n             */\n            lastName?: string;\n            /**\n             * Customer's phone number\n             */\n            phone?: string;\n        };\n        type V1Coupon = {\n            /**\n             * Coupon ID.\n             */\n            _id?: string;\n            /**\n             * Coupon value.\n             */\n            amount?: wix_ecom_backend.CurrentCart.MultiCurrencyPrice;\n            /**\n             * Coupon code.\n             */\n            code?: string;\n            /**\n             * Coupon name.\n             */\n            name?: string;\n        };\n        type V1MerchantDiscount = {\n            /**\n             * Discount value.\n             */\n            amount?: wix_ecom_backend.CurrentCart.MultiCurrencyPrice;\n        };\n        type V1PickupDetails = {\n            /**\n             * Customer details\n             */\n            buyerDetails?: wix_ecom_backend.CurrentCart.BuyerDetails;\n            /**\n             * Pickup address\n             */\n            pickupAddress?: wix_ecom_backend.CurrentCart.CommonAddress;\n            /**\n             * Store owner's pickup instructions\n             */\n            pickupInstructions?: string;\n        };\n        type ValidationError = {\n            fieldViolations?: Array<wix_ecom_backend.CurrentCart.FieldViolation>;\n        };\n        type VatId = {\n            /**\n             * Customer's tax ID\n             */\n            _id?: string;\n            /**\n             * tax type\n             */\n            type?: string;\n        };\n    }\n    /**\n     * [Read more](https://www.wix.com/corvid/reference/wix-ecom-backend.Events.html#)\n     */\n    interface Events {\n        /**\n         * An event that triggers when a new cart is created.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-ecom-backend.Events.html#onCartCreated)\n         */\n        onCartCreated(event: wix_ecom_backend.Events.ecomV1CartCartCreated): void;\n        /**\n         * An event that triggers when a cart is deleted.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-ecom-backend.Events.html#onCartDeleted)\n         */\n        onCartDeleted(event: wix_ecom_backend.Events.ecomV1CartCartDeleted): void;\n        /**\n         * An event that triggers when a cart is updated.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-ecom-backend.Events.html#onCartUpdated)\n         */\n        onCartUpdated(event: wix_ecom_backend.Events.ecomV1CartCartUpdated): void;\n        /**\n         * An event that triggers when an order is approved.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-ecom-backend.Events.html#onOrderApproved)\n         */\n        onOrderApproved(event: wix_ecom_backend.Events.ecomV1OrderOrderApprovedEvent): void;\n    }\n    namespace Events {\n        type ecomDiscountsV1DiscountRuleActionEvent = {\n            bodyAsJson?: string;\n        };\n        type ecomDiscountsV1DiscountRuleActiveTimeInfo = {\n            /**\n             * Discount rule active end time.\n             */\n            end?: Date;\n            /**\n             * Discount rule active start time.\n             */\n            start?: Date;\n        };\n        type ecomDiscountsV1DiscountRuleAnd = {\n            /**\n             * Array of triggers. Currently chaining up to 2 triggers is supported.\n             */\n            triggers?: Array<wix_ecom_backend.Events.ecomDiscountsV1DiscountRuleDiscountTrigger>;\n        };\n        type ecomDiscountsV1DiscountRuleAppliedDiscount = {\n            /**\n             * Applied discount rule.\n             */\n            appliedDiscountRule?: wix_ecom_backend.Events.ecomDiscountsV1DiscountRuleAppliedDiscountRule;\n            /**\n             * Discount type.\n             */\n            discountType?: string;\n            /**\n             * IDs of line items the discount applies to.\n             */\n            lineItemIds?: Array<string>;\n        };\n        type ecomDiscountsV1DiscountRuleAppliedDiscountRule = {\n            /**\n             * Discount rule ID.\n             */\n            _id?: string;\n            /**\n             * Total discount amount from all line items the discount applied to.\n             */\n            amount?: wix_ecom_backend.Events.ecomDiscountsV1DiscountRuleMultiCurrencyPrice;\n            /**\n             * Discount rule type.\n             */\n            discountRuleType?: string;\n            /**\n             * Discount rule name.\n             */\n            name?: wix_ecom_backend.Events.ecomDiscountsV1DiscountRuleDiscountRuleName;\n        };\n        type ecomDiscountsV1DiscountRuleBackendEventMetadata = {\n            entityId: string;\n            eventTime: string;\n            id: string;\n            triggeredByAnonymizeRequest: boolean;\n        };\n        type ecomDiscountsV1DiscountRuleCatalogItemFilter = {\n            /**\n             * Catalog App ID. For example, the Wix Stores `appId`, or the 3rd-party `appId`.\n             */\n            catalogAppId?: string;\n            /**\n             * ID of the item within its Wix or 3rd-party catalog. For example, `productId` for Wix Stores.\n             */\n            catalogItemIds?: Array<string>;\n        };\n        type ecomDiscountsV1DiscountRuleCatalogReference = {\n            /**\n             * ID of the catalog app. For example, the Wix Stores `appId`, or the 3rd-party `appId`.\n             */\n            appId?: string;\n            /**\n             * ID of the item within its Wix or 3rd-party catalog. For example, `productId` for Wix Stores or `eventId` for Wix Events.\n             */\n            catalogItemId?: string;\n            /**\n             * Additional info in key:value form. For example, `{\"options\":{\"Size\": \"M\", \"Color\": \"Red\"}}` or `{\"variantId\": \"\"}`.\n             */\n            options?: Object;\n        };\n        type ecomDiscountsV1DiscountRuleCreateDiscountRuleRequest = {\n            /**\n             * Discount rule info.\n             */\n            discountRule: wix_ecom_backend.Events.ecomDiscountsV1DiscountRuleDiscountRule;\n        };\n        type ecomDiscountsV1DiscountRuleCreateDiscountRuleResponse = {\n            /**\n             * Discount rule.\n             */\n            discountRule?: wix_ecom_backend.Events.ecomDiscountsV1DiscountRuleDiscountRule;\n        };\n        type ecomDiscountsV1DiscountRuleCursorPaging = {\n            /**\n             * Pointer to the next or previous page in the list of results.\n             */\n            cursor?: string;\n            /**\n             * Number of items to load.\n             */\n            limit?: number;\n        };\n        type ecomDiscountsV1DiscountRuleCursors = {\n            /**\n             * Cursor pointing to next page in the list of results.\n             */\n            next?: string;\n            /**\n             * Cursor pointing to previous page in the list of results.\n             */\n            prev?: string;\n        };\n        type ecomDiscountsV1DiscountRuleCustom = {\n            /**\n             * Trigger ID.\n             */\n            _id?: string;\n            /**\n             * App ID of the trigger creator.\n             */\n            appId?: string;\n            /**\n             * Optional - additional data in key:value form.\n             * + This data will be passed to the Custom Triggers Service SPI.\n             * + For example, for a weather trigger that would be eligible if temperature is above 30 degrees, params would be: `{ \"minTemp\": 30 }`.\n             */\n            params?: Object;\n        };\n        type ecomDiscountsV1DiscountRuleCustomFilter = {\n            /**\n             * Custom filter app ID.\n             */\n            appId?: string;\n            /**\n             * Custom-filter related data in key:value form.\n             * For example, an array of collectionIDs: `{ [\"collectionId\": \"12345\"], [\"collectionId\": \"67890\"] }`.\n             */\n            params?: Object;\n        };\n        type ecomDiscountsV1DiscountRuleDeleteDiscountRuleRequest = {\n            /**\n             * ID of the discount rule to delete.\n             */\n            discountRuleId: string;\n        };\n        type ecomDiscountsV1DiscountRuleDeleteDiscountRuleResponse = {};\n        type ecomDiscountsV1DiscountRuleDiscount = {\n            /**\n             * Discount type.\n             */\n            discountType?: string;\n            /**\n             * Amount to be discounted from original price.\n             */\n            fixedAmount?: string;\n            /**\n             * Fixed price. Line item will be fixed to this price.\n             */\n            fixedPrice?: string;\n            /**\n             * Percentage to be discounted from original price.\n             */\n            percentage?: number;\n            /**\n             * Data related to `SPECIFIC_ITEMS` target type.\n             */\n            specificItemsInfo?: wix_ecom_backend.Events.ecomDiscountsV1DiscountRuleSpecificItemsInfo;\n            /**\n             * Type of the target this discount is applied to.\n             */\n            targetType?: string;\n        };\n        type ecomDiscountsV1DiscountRuleDiscountDiscountOneOf = {\n            /**\n             * Amount to be discounted from original price.\n             */\n            fixedAmount?: string;\n            /**\n             * Fixed price. Line item will be fixed to this price.\n             */\n            fixedPrice?: string;\n            /**\n             * Percentage to be discounted from original price.\n             */\n            percentage?: number;\n        };\n        type ecomDiscountsV1DiscountRuleDiscountRule = {\n            /**\n             * Date and time the discount rule was created.\n             */\n            _createdDate?: Date;\n            /**\n             * Discount rule ID.\n             */\n            _id?: string;\n            /**\n             * Date and time the discount rule was last updated.\n             */\n            _updatedDate?: Date;\n            /**\n             * Whether the discount rule is active.\n             */\n            active?: boolean;\n            /**\n             * Time frame when the discount rule is active.\n             */\n            activeTimeInfo?: wix_ecom_backend.Events.ecomDiscountsV1DiscountRuleActiveTimeInfo;\n            /**\n             * Description of a set of discounts that can be performed, if the trigger/s is met.\n             * Currently only a single discount is supported.\n             */\n            discounts?: wix_ecom_backend.Events.ecomDiscountsV1DiscountRuleDiscounts;\n            /**\n             * Discount rule name.\n             */\n            name?: string;\n            /**\n             * calculated string which describe the discount rule   //WHAT CAN BE THE MAXIMAL VAL?\n             */\n            offer?: string;\n            /**\n             * Revision number, which increments by 1 each time the discount rule is updated.\n             * To prevent conflicting changes, the existing `revision` must be used when updating a discount rule.\n             */\n            revision?: string;\n            /**\n             * Discount rule status.\n             */\n            status?: string;\n            /**\n             * Discount rule trigger. Description of a set of conditions that must be fulfilled to perform pre-defined discounts (see `discounts` field).\n             * Not providing a trigger means the discount rule will always be applied (if possible).\n             */\n            trigger?: wix_ecom_backend.Events.ecomDiscountsV1DiscountRuleDiscountTrigger;\n            /**\n             * Number of times the discount rule was used.\n             */\n            usageCount?: number;\n        };\n        type ecomDiscountsV1DiscountRuleDiscountRuleCreated = {\n            entity: wix_ecom_backend.Events.ecomDiscountsV1DiscountRuleDiscountRule;\n            metadata: wix_ecom_backend.Events.ecomDiscountsV1DiscountRuleBackendEventMetadata;\n        };\n        type ecomDiscountsV1DiscountRuleDiscountRuleDeleted = {\n            metadata: wix_ecom_backend.Events.ecomDiscountsV1DiscountRuleBackendEventMetadata;\n        };\n        type ecomDiscountsV1DiscountRuleDiscountRuleName = {\n            /**\n             * Original discount rule name (in site's default language).\n             */\n            original?: string;\n            /**\n             * Translated discount rule name according to buyer language. Defaults to `original` when not provided.\n             */\n            translated?: string;\n        };\n        type ecomDiscountsV1DiscountRuleDiscountRuleUpdated = {\n            entity: wix_ecom_backend.Events.ecomDiscountsV1DiscountRuleDiscountRule;\n            metadata: wix_ecom_backend.Events.ecomDiscountsV1DiscountRuleBackendEventMetadata;\n        };\n        type ecomDiscountsV1DiscountRuleDiscountTrigger = {\n            /**\n             * Chain multiple triggers with AND operator.\n             */\n            and?: wix_ecom_backend.Events.ecomDiscountsV1DiscountRuleAnd;\n            /**\n             * Custom trigger.\n             */\n            custom?: wix_ecom_backend.Events.ecomDiscountsV1DiscountRuleCustom;\n            /**\n             * Item quantity trigger.\n             */\n            itemQuantityRange?: wix_ecom_backend.Events.ecomDiscountsV1DiscountRuleItemQuantityRange;\n            /**\n             * Subtotal trigger\n             */\n            subtotalRange?: wix_ecom_backend.Events.ecomDiscountsV1DiscountRuleSubtotalRange;\n            /**\n             * Trigger Type\n             */\n            triggerType?: string;\n        };\n        type ecomDiscountsV1DiscountRuleDiscountTriggerTriggerOneOf = {\n            /**\n             * Chain multiple triggers with AND operator.\n             */\n            and?: wix_ecom_backend.Events.ecomDiscountsV1DiscountRuleAnd;\n            /**\n             * Custom trigger.\n             */\n            custom?: wix_ecom_backend.Events.ecomDiscountsV1DiscountRuleCustom;\n            /**\n             * Item quantity trigger.\n             */\n            itemQuantityRange?: wix_ecom_backend.Events.ecomDiscountsV1DiscountRuleItemQuantityRange;\n            /**\n             * Subtotal trigger\n             */\n            subtotalRange?: wix_ecom_backend.Events.ecomDiscountsV1DiscountRuleSubtotalRange;\n        };\n        type ecomDiscountsV1DiscountRuleDiscounts = {\n            /**\n             * Discounts.\n             */\n            values?: Array<wix_ecom_backend.Events.ecomDiscountsV1DiscountRuleDiscount>;\n        };\n        type ecomDiscountsV1DiscountRuleDomainEvent = {\n            /**\n             * random GUID so clients can tell if event was already handled\n             */\n            _id?: string;\n            actionEvent?: wix_ecom_backend.Events.ecomDiscountsV1DiscountRuleActionEvent;\n            createdEvent?: wix_ecom_backend.Events.ecomDiscountsV1DiscountRuleEntityCreatedEvent;\n            deletedEvent?: wix_ecom_backend.Events.ecomDiscountsV1DiscountRuleEntityDeletedEvent;\n            /**\n             * Assumes actions are also always typed to an entity_type\n             * Example: wix.stores.catalog.product, wix.bookings.session, wix.payments.transaction\n             */\n            entityFqdn?: string;\n            /**\n             * Assuming that all messages including Actions have id\n             * Example: The id of the specific order, the id of a specific campaign\n             */\n            entityId?: string;\n            /**\n             * The time of the event. Useful if there was a delay in dipatching\n             */\n            eventTime?: Date;\n            extendedFieldsUpdatedEvent?: wix_ecom_backend.Events.ecomDiscountsV1DiscountRuleExtendedFieldsUpdatedEvent;\n            /**\n             * If present, indicates the action that triggered the event.\n             */\n            originatedFrom?: string;\n            /**\n             * This is top level to ease client code dipatching of messages (switch on entity_fqdn+slug)\n             * This is although the created/updated/deleted notion is duplication of the oneof types\n             * Example: created/updated/deleted/started/completed/email_opened\n             */\n            slug?: string;\n            /**\n             * A field that should be set if this event was triggered by an anonymize request.\n             * For example you must set it to true when sending an event as a result of a GDPR right to be forgotten request.\n             * NOTE: This field is not relevant for `EntityCreatedEvent` but is located here for better ergonomics of consumers.\n             */\n            triggeredByAnonymizeRequest?: boolean;\n            updatedEvent?: wix_ecom_backend.Events.ecomDiscountsV1DiscountRuleEntityUpdatedEvent;\n        };\n        type ecomDiscountsV1DiscountRuleDomainEventBodyOneOf = {\n            actionEvent?: wix_ecom_backend.Events.ecomDiscountsV1DiscountRuleActionEvent;\n            createdEvent?: wix_ecom_backend.Events.ecomDiscountsV1DiscountRuleEntityCreatedEvent;\n            deletedEvent?: wix_ecom_backend.Events.ecomDiscountsV1DiscountRuleEntityDeletedEvent;\n            extendedFieldsUpdatedEvent?: wix_ecom_backend.Events.ecomDiscountsV1DiscountRuleExtendedFieldsUpdatedEvent;\n            updatedEvent?: wix_ecom_backend.Events.ecomDiscountsV1DiscountRuleEntityUpdatedEvent;\n        };\n        type ecomDiscountsV1DiscountRuleEmpty = {};\n        type ecomDiscountsV1DiscountRuleEntityCreatedEvent = {\n            entityAsJson?: string;\n        };\n        type ecomDiscountsV1DiscountRuleEntityDeletedEvent = {};\n        type ecomDiscountsV1DiscountRuleEntityUpdatedEvent = {\n            /**\n             * Since platformized APIs only expose PATCH and not PUT we can't assume that the fields sent from the client are the actual diff.\n             * This means that to generate a list of changed fields (as opposed to sent fields) one needs to traverse both objects.\n             * We don't want to impose this on all developers and so we leave this traversal to the notification recipients which need it.\n             */\n            currentEntityAsJson?: string;\n        };\n        type ecomDiscountsV1DiscountRuleExtendedFieldsUpdatedEvent = {\n            currentEntityAsJson?: string;\n        };\n        type ecomDiscountsV1DiscountRuleGetAppliedDiscountsRequest = {\n            /**\n             * Line items for which to check for discount rules.\n             */\n            lineItems?: Array<wix_ecom_backend.Events.ecomDiscountsV1DiscountRuleLineItem>;\n        };\n        type ecomDiscountsV1DiscountRuleGetAppliedDiscountsResponse = {\n            /**\n             * All eligible discounts.\n             */\n            appliedDiscounts?: Array<wix_ecom_backend.Events.ecomDiscountsV1DiscountRuleAppliedDiscount>;\n        };\n        type ecomDiscountsV1DiscountRuleGetDiscountRuleRequest = {\n            /**\n             * ID of the discount rule to retrieve.\n             */\n            discountRuleId: string;\n        };\n        type ecomDiscountsV1DiscountRuleGetDiscountRuleResponse = {\n            /**\n             * The requested discount rule.\n             */\n            discountRule?: wix_ecom_backend.Events.ecomDiscountsV1DiscountRuleDiscountRule;\n        };\n        type ecomDiscountsV1DiscountRuleItemQuantityRange = {\n            /**\n             * Quantity range - from (inclusive).\n             */\n            from?: number;\n            /**\n             * All associated scopes for `SPECIFIC_ITEMS` target type.\n             */\n            scopes?: Array<wix_ecom_backend.Events.ecomDiscountsV1DiscountRuleScope>;\n            /**\n             * Quantity range - to (inclusive).\n             */\n            to?: number;\n        };\n        type ecomDiscountsV1DiscountRuleLineItem = {\n            /**\n             * Line item ID.\n             */\n            _id?: string;\n            /**\n             * Optional - Catalog and item reference info. See [Catalog SPI](https://bo.wix.com/wix-docs/rest/ecommerce/catalog-spi/introduction) for more details.\n             * Empty in the case of a custom line item.\n             */\n            catalogReference?: wix_ecom_backend.Events.ecomDiscountsV1DiscountRuleCatalogReference;\n            /**\n             * Price.\n             */\n            price?: string;\n            /**\n             * Quantity.\n             */\n            quantity?: number;\n        };\n        type ecomDiscountsV1DiscountRuleMultiCurrencyPrice = {\n            /**\n             * Amount.\n             */\n            amount?: string;\n            /**\n             * Converted amount.\n             */\n            convertedAmount?: string;\n            /**\n             * Amount formatted with currency symbol.\n             */\n            formattedAmount?: string;\n            /**\n             * Converted amount formatted with currency symbol.\n             */\n            formattedConvertedAmount?: string;\n        };\n        type ecomDiscountsV1DiscountRulePlatformPaging = {\n            /**\n             * Number of items to load.\n             */\n            limit?: number;\n            /**\n             * Number of items to skip in the current sort order.\n             */\n            offset?: number;\n        };\n        type ecomDiscountsV1DiscountRulePlatformPagingMetadata = {\n            /**\n             * The number of items returned in this response.\n             */\n            count?: number;\n            /**\n             * Cursors to navigate through result pages. Returned if cursor paging was used.\n             */\n            cursors?: wix_ecom_backend.Events.ecomDiscountsV1DiscountRuleCursors;\n            /**\n             * The offset which was requested. Returned if offset paging was used.\n             */\n            offset?: number;\n            /**\n             * The total number of items that match the query. Returned if offset paging was used.\n             */\n            total?: number;\n        };\n        type ecomDiscountsV1DiscountRulePlatformQuery = {\n            /**\n             * Cursor pointing to page of results. Cannot be used together with `paging`. `cursorPaging.cursor` can not be used together with `filter` or `sort`.\n             */\n            cursorPaging?: wix_ecom_backend.Events.ecomDiscountsV1DiscountRuleCursorPaging;\n            /**\n             * Filter object.\n             */\n            filter?: Object;\n            /**\n             * Pointer to page of results using offset. Cannot be used together with `cursorPaging`.\n             */\n            paging?: wix_ecom_backend.Events.ecomDiscountsV1DiscountRulePlatformPaging;\n            /**\n             * Sorting options. For example, `[{\"fieldName\":\"sortField1\"},{\"fieldName\":\"sortField2\",\"direction\":\"DESC\"}]`.\n             */\n            sort?: Array<wix_ecom_backend.Events.ecomDiscountsV1DiscountRuleSorting>;\n        };\n        type ecomDiscountsV1DiscountRulePlatformQueryPagingMethodOneOf = {\n            /**\n             * Cursor pointing to page of results. Cannot be used together with `paging`. `cursorPaging.cursor` can not be used together with `filter` or `sort`.\n             */\n            cursorPaging?: wix_ecom_backend.Events.ecomDiscountsV1DiscountRuleCursorPaging;\n            /**\n             * Pointer to page of results using offset. Cannot be used together with `cursorPaging`.\n             */\n            paging?: wix_ecom_backend.Events.ecomDiscountsV1DiscountRulePlatformPaging;\n        };\n        type ecomDiscountsV1DiscountRuleQueryDiscountRulesRequest = {\n            /**\n             * Query options.\n             */\n            query: wix_ecom_backend.Events.ecomDiscountsV1DiscountRulePlatformQuery;\n        };\n        type ecomDiscountsV1DiscountRuleQueryDiscountRulesResponse = {\n            /**\n             * List of discount rules.\n             */\n            discountRules?: Array<wix_ecom_backend.Events.ecomDiscountsV1DiscountRuleDiscountRule>;\n            /**\n             * Details on the paged set of results returned.\n             */\n            pagingMetadata?: wix_ecom_backend.Events.ecomDiscountsV1DiscountRulePlatformPagingMetadata;\n        };\n        type ecomDiscountsV1DiscountRuleScope = {\n            /**\n             * Scope ID.\n             */\n            _id?: string;\n            /**\n             * Catalog item filter. Must be passed with `type.\"CATALOG_ITEM\"`.\n             */\n            catalogItemFilter?: wix_ecom_backend.Events.ecomDiscountsV1DiscountRuleCatalogItemFilter;\n            /**\n             * Custom filter. Must be passed with `type.\"CATALOG_ITEM\"`.\n             */\n            customFilter?: wix_ecom_backend.Events.ecomDiscountsV1DiscountRuleCustomFilter;\n            /**\n             * Scope type.\n             */\n            type?: string;\n        };\n        type ecomDiscountsV1DiscountRuleScopeScopeItemsOneOf = {\n            /**\n             * Catalog item filter. Must be passed with `type.\"CATALOG_ITEM\"`.\n             */\n            catalogItemFilter?: wix_ecom_backend.Events.ecomDiscountsV1DiscountRuleCatalogItemFilter;\n            /**\n             * Custom filter. Must be passed with `type.\"CATALOG_ITEM\"`.\n             */\n            customFilter?: wix_ecom_backend.Events.ecomDiscountsV1DiscountRuleCustomFilter;\n        };\n        type ecomDiscountsV1DiscountRuleSorting = {\n            /**\n             * Name of the field to sort by.\n             */\n            fieldName?: string;\n            /**\n             * Sort order.\n             */\n            order?: string;\n        };\n        type ecomDiscountsV1DiscountRuleSpecificItemsInfo = {\n            /**\n             * All associated scopes for `SPECIFIC_ITEMS` target type.\n             */\n            scopes?: Array<wix_ecom_backend.Events.ecomDiscountsV1DiscountRuleScope>;\n        };\n        type ecomDiscountsV1DiscountRuleSubtotalRange = {\n            /**\n             * Price range - from (inclusive).\n             */\n            from?: string;\n            /**\n             * All associated scopes for `SPECIFIC_ITEMS` target type.\n             * The trigger will be eligible if the line item is contained in one of the scopes.\n             */\n            scopes?: Array<wix_ecom_backend.Events.ecomDiscountsV1DiscountRuleScope>;\n            /**\n             * Price range - to (inclusive).\n             */\n            to?: string;\n        };\n        type ecomDiscountsV1DiscountRuleUpdateDiscountRuleRequest = {\n            /**\n             * Discount rule info.\n             */\n            discountRule: wix_ecom_backend.Events.ecomDiscountsV1DiscountRuleDiscountRule;\n        };\n        type ecomDiscountsV1DiscountRuleUpdateDiscountRuleResponse = {\n            /**\n             * Updated discount rule.\n             */\n            discountRule?: wix_ecom_backend.Events.ecomDiscountsV1DiscountRuleDiscountRule;\n        };\n        type ecomV1CartActionEvent = {\n            bodyAsJson?: string;\n        };\n        type ecomV1CartAddToCartRequest = {\n            /**\n             * Cart ID.\n             */\n            _id: string;\n            /**\n             * Custom line items.\n             */\n            customLineItems?: Array<wix_ecom_backend.Events.ecomV1CartCustomLineItem>;\n            /**\n             * Catalog line items.\n             */\n            lineItems?: Array<wix_ecom_backend.Events.ecomV1CartLineItem>;\n        };\n        type ecomV1CartAddToCartResponse = {\n            /**\n             * Updated cart.\n             */\n            cart?: wix_ecom_backend.Events.ecomV1CartCart;\n        };\n        type ecomV1CartAddToCurrentCartRequest = {\n            /**\n             * Custom line items.\n             */\n            customLineItems?: Array<wix_ecom_backend.Events.ecomV1CartCustomLineItem>;\n            /**\n             * Catalog line items.\n             */\n            lineItems?: Array<wix_ecom_backend.Events.ecomV1CartLineItem>;\n        };\n        type ecomV1CartAdditionalFee = {\n            /**\n             * Additional fee's unique code (or ID) for future processing\n             */\n            code?: string;\n            /**\n             * Translated additional fee's name\n             */\n            name?: string;\n            /**\n             * Additional fee's price\n             */\n            price?: wix_ecom_backend.Events.ecomV1CartMultiCurrencyPrice;\n            /**\n             * Provider's app id\n             */\n            providerAppId?: string;\n            /**\n             * Tax details\n             */\n            taxDetails?: wix_ecom_backend.Events.ecomV1CartItemTaxFullDetails;\n        };\n        type ecomV1CartAddress = {\n            /**\n             * Main address line (usually street name and number).\n             */\n            addressLine1?: string;\n            /**\n             * Free text providing more detailed address info. Usually contains apt, suite, floor.\n             */\n            addressLine2?: string;\n            /**\n             * City name.\n             */\n            city?: string;\n            /**\n             * Two-letter country code in [ISO-3166 alpha-2](https://www.iso.org/obp/ui/#search/code/) format.\n             */\n            country?: string;\n            /**\n             * Postal or zip code.\n             */\n            postalCode?: string;\n            /**\n             * Street address object, with number, name, and apartment number in separate fields.\n             */\n            streetAddress?: wix_ecom_backend.Events.ecomV1CartStreetAddress;\n            /**\n             * Code for a subdivision (such as state, prefecture, or province) in [ISO 3166-2](https://www.iso.org/standard/72483.html) format.\n             */\n            subdivision?: string;\n        };\n        type ecomV1CartAddressLocation = {\n            /**\n             * Address latitude.\n             */\n            latitude?: number;\n            /**\n             * Address longitude.\n             */\n            longitude?: number;\n        };\n        type ecomV1CartAddressWithContact = {\n            /**\n             * Address.\n             */\n            address?: wix_ecom_backend.Events.ecomV1CartAddress;\n            /**\n             * Contact details.\n             */\n            contactDetails?: wix_ecom_backend.Events.ecomV1CartApiFullAddressContactDetails;\n        };\n        type ecomV1CartApiFullAddressContactDetails = {\n            /**\n             * Company name.\n             */\n            company?: string;\n            /**\n             * First name.\n             */\n            firstName?: string;\n            /**\n             * Last name.\n             */\n            lastName?: string;\n            /**\n             * Phone number.\n             */\n            phone?: string;\n            /**\n             * Tax information (for Brazil only). If ID is provided, `vatId.type` must also be set - UNSPECIFIED is not allowed.\n             */\n            vatId?: wix_ecom_backend.Events.ecomV1CartVatId;\n        };\n        type ecomV1CartApplicationError = {\n            code?: string;\n            data?: Object;\n            description?: string;\n        };\n        type ecomV1CartAppliedCoupon = {\n            /**\n             * Coupon code\n             */\n            code?: string;\n            /**\n             * Converted discount value\n             */\n            convertedDiscountValue?: string;\n            /**\n             * Coupon internal ID\n             */\n            couponId?: string;\n            /**\n             * Type (e.g., moneyOff, percentOff)\n             */\n            couponType?: string;\n            /**\n             * Discount value\n             */\n            discountValue?: string;\n            /**\n             * Coupon name\n             */\n            name?: string;\n        };\n        type ecomV1CartAppliedDiscount = {\n            /**\n             * Coupon details.\n             */\n            coupon?: wix_ecom_backend.Events.ecomV1CartV1Coupon;\n            /**\n             * Discount rule\n             */\n            discountRule?: wix_ecom_backend.Events.ecomV1CartDiscountRule;\n            /**\n             * Discount type.\n             */\n            discountType?: string;\n            /**\n             * IDs of line items the discount applies to.\n             */\n            lineItemIds?: Array<string>;\n            /**\n             * Merchant discount.\n             */\n            merchantDiscount?: wix_ecom_backend.Events.ecomV1CartV1MerchantDiscount;\n        };\n        type ecomV1CartAppliedDiscountDiscountSourceOneOf = {\n            /**\n             * Coupon details.\n             */\n            coupon?: wix_ecom_backend.Events.ecomV1CartV1Coupon;\n            /**\n             * Discount rule\n             */\n            discountRule?: wix_ecom_backend.Events.ecomV1CartDiscountRule;\n            /**\n             * Merchant discount.\n             */\n            merchantDiscount?: wix_ecom_backend.Events.ecomV1CartV1MerchantDiscount;\n        };\n        type ecomV1CartAutoTaxFallbackCalculationDetails = {\n            /**\n             * invalid request (i.e. address), timeout, internal error, license error, and others will be encoded here\n             */\n            error?: wix_ecom_backend.Events.ecomV1CartApplicationError;\n            /**\n             * reason for fallback\n             */\n            fallbackReason?: string;\n        };\n        type ecomV1CartBackendEventMetadata = {\n            entityId: string;\n            eventTime: string;\n            id: string;\n            triggeredByAnonymizeRequest: boolean;\n        };\n        type ecomV1CartBuyerDetails = {\n            /**\n             * Email address\n             */\n            email?: string;\n            /**\n             * Customer's first name\n             */\n            firstName?: string;\n            /**\n             * Customer's last name\n             */\n            lastName?: string;\n            /**\n             * Phone number\n             */\n            phone?: string;\n        };\n        type ecomV1CartBuyerInfo = {\n            /**\n             * Contact ID. Auto-created if one does not yet exist. For more information, see [Contacts API](https://dev.wix.com/api/rest/contacts/contacts/introduction).\n             */\n            contactId?: string;\n            /**\n             * Member ID - if the buyer is a site member.\n             */\n            memberId?: string;\n            /**\n             * User ID - if the cart owner is a Wix user.\n             */\n            userId?: string;\n            /**\n             * Visitor ID - if the buyer is **not** a site member.\n             */\n            visitorId?: string;\n        };\n        type ecomV1CartBuyerInfoIdOneOf = {\n            /**\n             * Member ID - if the buyer is a site member.\n             */\n            memberId?: string;\n            /**\n             * User ID - if the cart owner is a Wix user.\n             */\n            userId?: string;\n            /**\n             * Visitor ID - if the buyer is **not** a site member.\n             */\n            visitorId?: string;\n        };\n        type ecomV1CartCalculatedLineItem = {\n            /**\n             * Line item ID.\n             */\n            lineItemId?: string;\n            /**\n             * Type of selected payment option for current item. Supported values:\n             * + `\"FULL_PAYMENT_ONLINE\"` - The entire payment for this item will happen as part of the checkout\n             * + `\"FULL_PAYMENT_OFFLINE\"` - The entire payment for this item will happen after the checkout\n             * + `\"MEMBERSHIP\"` - This item cannot be paid via monetary payment options, only via non monetary option such membership. When this option is used, price must be set to 0\n             * + `\"DEPOSIT_ONLINE\"` -  Partial payment of the given item will happen as part of the checkout. Amount to be paid is defined by deposit_amount field.\n             */\n            paymentOption?: string;\n            /**\n             * Price breakdown for this line item.\n             */\n            pricesBreakdown?: wix_ecom_backend.Events.ecomV1CartLineItemPricesData;\n        };\n        type ecomV1CartCalculationErrors = {\n            /**\n             * Carrier errors.\n             */\n            carrierErrors?: wix_ecom_backend.Events.ecomV1CartCarrierErrors;\n            /**\n             * Coupon calculation error.\n             */\n            couponCalculationError?: wix_ecom_backend.Events.ecomV1CartDetails;\n            /**\n             * Discount Rule calculation error.\n             */\n            discountsCalculationError?: wix_ecom_backend.Events.ecomV1CartDetails;\n            /**\n             * General shipping calculation error.\n             */\n            generalShippingCalculationError?: wix_ecom_backend.Events.ecomV1CartDetails;\n            /**\n             * Gift card calculation error.\n             */\n            giftCardCalculationError?: wix_ecom_backend.Events.ecomV1CartDetails;\n            /**\n             * Membership payment methods calculation errors\n             * For example, will indicate that a line item that must be paid with membership payment doesn't have one or selected memberships are invalid\n             */\n            membershipError?: wix_ecom_backend.Events.ecomV1CartDetails;\n            /**\n             * Order validation errors.\n             */\n            orderValidationErrors?: Array<wix_ecom_backend.Events.ecomV1CartApplicationError>;\n            /**\n             * Tax calculation error.\n             */\n            taxCalculationError?: wix_ecom_backend.Events.ecomV1CartDetails;\n        };\n        type ecomV1CartCalculationErrorsShippingCalculationErrorOneOf = {\n            /**\n             * Carrier errors.\n             */\n            carrierErrors?: wix_ecom_backend.Events.ecomV1CartCarrierErrors;\n            /**\n             * General shipping calculation error.\n             */\n            generalShippingCalculationError?: wix_ecom_backend.Events.ecomV1CartDetails;\n        };\n        type ecomV1CartCarrierError = {\n            /**\n             * Carrier ID.\n             */\n            carrierId?: string;\n            /**\n             * Error details.\n             */\n            error?: wix_ecom_backend.Events.ecomV1CartDetails;\n        };\n        type ecomV1CartCarrierErrors = {\n            /**\n             * Carrier errors.\n             */\n            errors?: Array<wix_ecom_backend.Events.ecomV1CartCarrierError>;\n        };\n        type ecomV1CartCarrierServiceOption = {\n            /**\n             * Carrier ID.\n             */\n            carrierId?: string;\n            /**\n             * Shipping options offered by this carrier for this request.\n             */\n            shippingOptions?: Array<wix_ecom_backend.Events.ecomV1CartShippingOption>;\n        };\n        type ecomV1CartCart = {\n            /**\n             * Date and time the cart was created.\n             */\n            _createdDate?: Date;\n            /**\n             * Cart ID.\n             */\n            _id?: string;\n            /**\n             * Date and time the cart was updated.\n             */\n            _updatedDate?: Date;\n            /**\n             * Cart discounts.\n             */\n            appliedDiscounts?: Array<wix_ecom_backend.Events.ecomV1CartCartDiscount>;\n            /**\n             * Buyer information.\n             */\n            buyerInfo?: wix_ecom_backend.Events.ecomV1CartBuyerInfo;\n            /**\n             * Language for communication with the buyer. Defaults to the site language.\n             * For a site that supports multiple languages, this is the language the buyer selected.\n             */\n            buyerLanguage?: string;\n            /**\n             * [Buyer note](https://support.wix.com/en/article/wix-stores-viewing-buyer-notes) left by the customer.\n             */\n            buyerNote?: string;\n            /**\n             * ID of the checkout related to this cart.\n             */\n            checkoutId?: string;\n            /**\n             * Contact info.\n             */\n            contactInfo?: wix_ecom_backend.Events.ecomV1CartAddressWithContact;\n            /**\n             * All the converted prices are presented in this currency.\n             */\n            conversionCurrency?: string;\n            /**\n             * Currency used for pricing.\n             */\n            currency?: string;\n            /**\n             * Line items.\n             */\n            lineItems?: Array<wix_ecom_backend.Events.ecomV1CartLineItem>;\n            /**\n             * Site language in which original values are shown.\n             */\n            siteLanguage?: string;\n            /**\n             * Whether tax is included in line item prices.\n             */\n            taxIncludedInPrices?: boolean;\n            /**\n             * Weight measurement unit - defaults to site's weight unit.\n             */\n            weightUnit?: string;\n        };\n        type ecomV1CartCartAddress = {\n            /**\n             * Address\n             */\n            address?: wix_ecom_backend.Events.ecomV1CartCommonAddress;\n            /**\n             * Contact details\n             */\n            contactDetails?: wix_ecom_backend.Events.ecomV1CartFullAddressContactDetails;\n        };\n        type ecomV1CartCartCompletedEvent = {\n            /**\n             * Coupon applied to this cart\n             */\n            appliedCoupon?: wix_ecom_backend.Events.ecomV1CartAppliedCoupon;\n            /**\n             * Customer's billing address\n             */\n            billingAddress?: wix_ecom_backend.Events.ecomV1CartCartAddress;\n            /**\n             * Customer's Wix ID\n             */\n            buyerInfo?: wix_ecom_backend.Events.ecomV1CartV1BuyerInfo;\n            /**\n             * Message from the customer\n             */\n            buyerNote?: string;\n            cartId?: string;\n            /**\n             * Time the cart was created\n             */\n            completedTime?: Date;\n            /**\n             * Currency used for pricing in this store\n             */\n            currency?: wix_ecom_backend.Events.ecomV1CartCurrency;\n            /**\n             * Cart shipping information\n             */\n            shippingInfo?: wix_ecom_backend.Events.ecomV1CartShippingInfo;\n            /**\n             * Totals for order's line items\n             */\n            totals?: wix_ecom_backend.Events.ecomV1CartTotals;\n            /**\n             * Weight unit used in this store\n             */\n            weightUnit?: string;\n        };\n        type ecomV1CartCartCreated = {\n            entity: wix_ecom_backend.Events.ecomV1CartCart;\n            metadata: wix_ecom_backend.Events.ecomV1CartBackendEventMetadata;\n        };\n        type ecomV1CartCartDeleted = {\n            metadata: wix_ecom_backend.Events.ecomV1CartBackendEventMetadata;\n        };\n        type ecomV1CartCartDiscount = {\n            /**\n             * Coupon details.\n             */\n            coupon?: wix_ecom_backend.Events.ecomV1CartCoupon;\n            /**\n             * Merchant discount.\n             */\n            merchantDiscount?: wix_ecom_backend.Events.ecomV1CartMerchantDiscount;\n        };\n        type ecomV1CartCartDiscountDiscountSourceOneOf = {\n            /**\n             * Coupon details.\n             */\n            coupon?: wix_ecom_backend.Events.ecomV1CartCoupon;\n            /**\n             * Merchant discount.\n             */\n            merchantDiscount?: wix_ecom_backend.Events.ecomV1CartMerchantDiscount;\n        };\n        type ecomV1CartCartUpdated = {\n            entity: wix_ecom_backend.Events.ecomV1CartCart;\n            metadata: wix_ecom_backend.Events.ecomV1CartBackendEventMetadata;\n        };\n        type ecomV1CartCatalogReference = {\n            /**\n             * ID of the catalog app. For example, the Wix Stores `appId`, or the 3rd-party `appId`.\n             */\n            appId?: string;\n            /**\n             * ID of the item within its Wix or 3rd-party catalog. For example, `productId` for Wix Stores or `eventId` for Wix Events.\n             */\n            catalogItemId?: string;\n            /**\n             * Additional info in key:value form. For example, `{\"options\":{\"Size\": \"M\", \"Color\": \"Red\"}}` or `{\"variantId\": \"\"}`.\n             */\n            options?: Object;\n        };\n        type ecomV1CartColor = {\n            /**\n             * Optional - HEX or RGB color code for display.\n             */\n            code?: string;\n            /**\n             * Optional - Description line color name in site's default language.\n             */\n            original?: string;\n            /**\n             * Optional - Translated description line color name according to buyer language. Defaults to `original` when not provided.\n             */\n            translated?: string;\n        };\n        type ecomV1CartCommonAddress = {\n            /**\n             * Main address line, usually street and number as free text.\n             */\n            addressLine?: string;\n            /**\n             * Main address line, usually street and number as free text.\n             */\n            addressLine1?: string;\n            /**\n             * Free text providing more detailed address info. Usually contains Apt, Suite, and Floor.\n             */\n            addressLine2?: string;\n            /**\n             * City name.\n             */\n            city?: string;\n            /**\n             * Country code.\n             */\n            country?: string;\n            /**\n             * Zip/postal code.\n             */\n            postalCode?: string;\n            /**\n             * Street name and number.\n             */\n            streetAddress?: wix_ecom_backend.Events.ecomV1CartStreetAddress;\n            /**\n             * Subdivision. Usually a state, region, prefecture, or province code, according to [ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-2).\n             */\n            subdivision?: string;\n        };\n        type ecomV1CartCommonAddressStreetOneOf = {\n            /**\n             * Main address line, usually street and number as free text.\n             */\n            addressLine?: string;\n            /**\n             * Street name and number.\n             */\n            streetAddress?: wix_ecom_backend.Events.ecomV1CartStreetAddress;\n        };\n        type ecomV1CartCoupon = {\n            /**\n             * Coupon ID.\n             */\n            _id?: string;\n            /**\n             * Coupon code.\n             */\n            code?: string;\n        };\n        type ecomV1CartCreateCartRequest = {\n            /**\n             * Cart info.\n             */\n            cartInfo?: wix_ecom_backend.Events.ecomV1CartCart;\n            /**\n             * Code of an existing coupon to apply to cart. For more information, see [Coupons API](https://dev.wix.com/api/rest/wix-coupons/coupons/introduction).\n             */\n            couponCode?: string;\n            /**\n             * Custom line items.\n             */\n            customLineItems?: Array<wix_ecom_backend.Events.ecomV1CartCustomLineItem>;\n            /**\n             * Catalog line items.\n             */\n            lineItems?: Array<wix_ecom_backend.Events.ecomV1CartLineItem>;\n            /**\n             * Merchant discounts to apply to specific line items. If no `lineItemIds` are passed, the discount will be applied to the whole cart.\n             */\n            merchantDiscounts?: Array<wix_ecom_backend.Events.ecomV1CartMerchantDiscountInput>;\n        };\n        type ecomV1CartCreateCartResponse = {\n            /**\n             * Cart.\n             */\n            cart?: wix_ecom_backend.Events.ecomV1CartCart;\n        };\n        type ecomV1CartCreateCheckoutFromCurrentCartRequest = {\n            /**\n             * Billing address. Used for calculating tax if all the items in the cart are not shippable.\n             */\n            billingAddress?: wix_ecom_backend.Events.ecomV1CartAddress;\n            /**\n             * Sales channel type.\n             */\n            channelType?: string;\n            /**\n             * Mandatory when setting billing or shipping address and user is not logged in.\n             */\n            email?: string;\n            /**\n             * Selected shipping option.\n             */\n            selectedShippingOption?: wix_ecom_backend.Events.ecomV1CartSelectedShippingOption;\n            /**\n             * Shipping address. Used for calculating tax and shipping (when applicable).\n             */\n            shippingAddress?: wix_ecom_backend.Events.ecomV1CartAddress;\n        };\n        type ecomV1CartCreateCheckoutRequest = {\n            /**\n             * Cart ID.\n             */\n            _id: string;\n            /**\n             * Billing address. Used for calculating tax if all the items in the cart are not shippable.\n             */\n            billingAddress?: wix_ecom_backend.Events.ecomV1CartAddress;\n            /**\n             * Sales channel type.\n             */\n            channelType?: string;\n            /**\n             * Mandatory when setting a billing or shipping address if the site visitor isn't logged in.\n             */\n            email?: string;\n            /**\n             * Selected shipping option.\n             */\n            selectedShippingOption?: wix_ecom_backend.Events.ecomV1CartSelectedShippingOption;\n            /**\n             * Shipping address. Used for calculating tax and shipping (when applicable).\n             */\n            shippingAddress?: wix_ecom_backend.Events.ecomV1CartAddress;\n        };\n        type ecomV1CartCreateCheckoutResponse = {\n            /**\n             * The newly created checkout's ID.\n             */\n            checkoutId?: string;\n        };\n        type ecomV1CartCurrency = {\n            /**\n             * Currency code\n             */\n            code?: string;\n            /**\n             * Currency symbol\n             */\n            symbol?: string;\n        };\n        type ecomV1CartCustomLineItem = {\n            /**\n             * Custom line item ID. Defaults to an auto-generated ID.\n             */\n            _id?: string;\n            /**\n             * Custom line item description lines. Used for display purposes for the cart, checkout and order.\n             */\n            descriptionLines?: Array<wix_ecom_backend.Events.ecomV1CartDescriptionLine>;\n            /**\n             * Custom line item's media.\n             */\n            media?: string;\n            /**\n             * Custom line item name.\n             */\n            name?: string;\n            /**\n             * Custom line item price.\n             */\n            price?: string;\n            /**\n             * Custom line item quantity.\n             */\n            quantity?: number;\n        };\n        type ecomV1CartDeleteCartRequest = {\n            /**\n             * ID of the cart to delete.\n             */\n            _id: string;\n        };\n        type ecomV1CartDeleteCartResponse = {};\n        type ecomV1CartDeleteCurrentCartRequest = {};\n        type ecomV1CartDeliveryLogistics = {\n            /**\n             * Expected delivery time, in free text. For example, \"3-5 business days\".\n             */\n            deliveryTime?: string;\n            /**\n             * Instructions for caller, e.g for pickup: \"Please deliver during opening hours, and please don't park in disabled parking spot\".\n             */\n            instructions?: string;\n            /**\n             * Pickup details.\n             */\n            pickupDetails?: wix_ecom_backend.Events.ecomV1CartPickupDetails;\n        };\n        type ecomV1CartDescription = {\n            /**\n             * Subscription option description.\n             */\n            original?: string;\n            /**\n             * Translated subscription option name.\n             */\n            translated?: string;\n        };\n        type ecomV1CartDescriptionLine = {\n            /**\n             * Description line color value.\n             */\n            colorInfo?: wix_ecom_backend.Events.ecomV1CartColor;\n            /**\n             * Description line name.\n             */\n            name?: wix_ecom_backend.Events.ecomV1CartDescriptionLineName;\n            /**\n             * Description line plain text value.\n             */\n            plainText?: wix_ecom_backend.Events.ecomV1CartPlainTextValue;\n        };\n        type ecomV1CartDescriptionLineDescriptionLineValueOneOf = {};\n        type ecomV1CartDescriptionLineName = {\n            /**\n             * Optional - Description line name in site's default language.\n             */\n            original?: string;\n            /**\n             * Optional - Translated description line item according to buyer language. Defaults to `original` when not provided.\n             */\n            translated?: string;\n        };\n        type ecomV1CartDescriptionLineValueOneOf = {\n            /**\n             * Description line color value.\n             */\n            colorInfo?: wix_ecom_backend.Events.ecomV1CartColor;\n            /**\n             * Description line plain text value.\n             */\n            plainText?: wix_ecom_backend.Events.ecomV1CartPlainTextValue;\n        };\n        type ecomV1CartDetails = {\n            applicationError?: wix_ecom_backend.Events.ecomV1CartApplicationError;\n            /**\n             * deprecated in API's - to enable migration from rendering arbitrary tracing to rest response\n             */\n            tracing?: Record<string, string>;\n            validationError?: wix_ecom_backend.Events.ecomV1CartValidationError;\n        };\n        type ecomV1CartDetailsKindOneOf = {\n            applicationError?: wix_ecom_backend.Events.ecomV1CartApplicationError;\n            validationError?: wix_ecom_backend.Events.ecomV1CartValidationError;\n        };\n        type ecomV1CartDiscountRule = {\n            /**\n             * Discount rule ID\n             */\n            _id?: string;\n            /**\n             * Discount value.\n             */\n            amount?: wix_ecom_backend.Events.ecomV1CartMultiCurrencyPrice;\n            /**\n             * Discount rule name\n             */\n            name?: wix_ecom_backend.Events.ecomV1CartDiscountRuleName;\n        };\n        type ecomV1CartDiscountRuleName = {\n            /**\n             * Original discount rule name (in site's default language).\n             */\n            original?: string;\n            /**\n             * Translated discount rule name according to buyer language. Defaults to `original` when not provided.\n             */\n            translated?: string;\n        };\n        type ecomV1CartDomainEvent = {\n            /**\n             * random GUID so clients can tell if event was already handled\n             */\n            _id?: string;\n            actionEvent?: wix_ecom_backend.Events.ecomV1CartActionEvent;\n            createdEvent?: wix_ecom_backend.Events.ecomV1CartEntityCreatedEvent;\n            deletedEvent?: wix_ecom_backend.Events.ecomV1CartEntityDeletedEvent;\n            /**\n             * Assumes actions are also always typed to an entity_type\n             * Example: wix.stores.catalog.product, wix.bookings.session, wix.payments.transaction\n             */\n            entityFqdn?: string;\n            /**\n             * Assuming that all messages including Actions have id\n             * Example: The id of the specific order, the id of a specific campaign\n             */\n            entityId?: string;\n            /**\n             * The time of the event. Useful if there was a delay in dipatching\n             */\n            eventTime?: Date;\n            extendedFieldsUpdatedEvent?: wix_ecom_backend.Events.ecomV1CartExtendedFieldsUpdatedEvent;\n            /**\n             * If present, indicates the action that triggered the event.\n             */\n            originatedFrom?: string;\n            /**\n             * This is top level to ease client code dipatching of messages (switch on entity_fqdn+slug)\n             * This is although the created/updated/deleted notion is duplication of the oneof types\n             * Example: created/updated/deleted/started/completed/email_opened\n             */\n            slug?: string;\n            /**\n             * A field that should be set if this event was triggered by an anonymize request.\n             * For example you must set it to true when sending an event as a result of a GDPR right to be forgotten request.\n             * NOTE: This field is not relevant for `EntityCreatedEvent` but is located here for better ergonomics of consumers.\n             */\n            triggeredByAnonymizeRequest?: boolean;\n            updatedEvent?: wix_ecom_backend.Events.ecomV1CartEntityUpdatedEvent;\n        };\n        type ecomV1CartDomainEventBodyOneOf = {\n            actionEvent?: wix_ecom_backend.Events.ecomV1CartActionEvent;\n            createdEvent?: wix_ecom_backend.Events.ecomV1CartEntityCreatedEvent;\n            deletedEvent?: wix_ecom_backend.Events.ecomV1CartEntityDeletedEvent;\n            extendedFieldsUpdatedEvent?: wix_ecom_backend.Events.ecomV1CartExtendedFieldsUpdatedEvent;\n            updatedEvent?: wix_ecom_backend.Events.ecomV1CartEntityUpdatedEvent;\n        };\n        type ecomV1CartEmpty = {};\n        type ecomV1CartEntityCreatedEvent = {\n            entityAsJson?: string;\n        };\n        type ecomV1CartEntityDeletedEvent = {};\n        type ecomV1CartEntityUpdatedEvent = {\n            /**\n             * Since platformized APIs only expose PATCH and not PUT we can't assume that the fields sent from the client are the actual diff.\n             * This means that to generate a list of changed fields (as opposed to sent fields) one needs to traverse both objects.\n             * We don't want to impose this on all developers and so we leave this traversal to the notification recipients which need it.\n             */\n            currentEntityAsJson?: string;\n        };\n        type ecomV1CartEstimateCurrentCartTotalsRequest = {\n            /**\n             * Billing address. Used for calculating tax if all the items in the cart are not shippable.\n             */\n            billingAddress?: wix_ecom_backend.Events.ecomV1CartAddress;\n            /**\n             * The selected membership payment options and which line items they apply to.\n             */\n            selectedMemberships?: wix_ecom_backend.Events.ecomV1CartSelectedMemberships;\n            /**\n             * Selected shipping option.\n             */\n            selectedShippingOption?: wix_ecom_backend.Events.ecomV1CartSelectedShippingOption;\n            /**\n             * Shipping address. Used for calculating tax and shipping (when applicable).\n             */\n            shippingAddress?: wix_ecom_backend.Events.ecomV1CartAddress;\n        };\n        type ecomV1CartEstimateTotalsRequest = {\n            /**\n             * Cart ID.\n             */\n            _id: string;\n            /**\n             * Billing address. Used for calculating tax if all the items in the cart are not shippable.\n             */\n            billingAddress?: wix_ecom_backend.Events.ecomV1CartAddress;\n            /**\n             * The selected membership payment options and which line items they apply to.\n             */\n            selectedMemberships?: wix_ecom_backend.Events.ecomV1CartSelectedMemberships;\n            /**\n             * Selected shipping option.\n             */\n            selectedShippingOption?: wix_ecom_backend.Events.ecomV1CartSelectedShippingOption;\n            /**\n             * Shipping address. Used for calculating tax and shipping (when applicable).\n             */\n            shippingAddress?: wix_ecom_backend.Events.ecomV1CartAddress;\n        };\n        type ecomV1CartEstimateTotalsResponse = {\n            /**\n             * Additional fees\n             */\n            additionalFees?: Array<wix_ecom_backend.Events.ecomV1CartAdditionalFee>;\n            /**\n             * Applied discounts.\n             */\n            appliedDiscounts?: Array<wix_ecom_backend.Events.ecomV1CartAppliedDiscount>;\n            /**\n             * Calculated line items.\n             */\n            calculatedLineItems?: Array<wix_ecom_backend.Events.ecomV1CartCalculatedLineItem>;\n            /**\n             * Calculation errors.\n             */\n            calculationErrors?: wix_ecom_backend.Events.ecomV1CartCalculationErrors;\n            /**\n             * Cart.\n             */\n            cart?: wix_ecom_backend.Events.ecomV1CartCart;\n            /**\n             * Currency used for pricing in this store.\n             */\n            currency?: string;\n            /**\n             * Applied gift card.\n             */\n            giftCard?: wix_ecom_backend.Events.ecomV1CartGiftCard;\n            /**\n             * Information about valid and invalid memberships, and which ones are selected for usage.\n             */\n            membershipOptions?: wix_ecom_backend.Events.ecomV1CartMembershipOptions;\n            /**\n             * Remaining amount for the order to be fully paid.\n             */\n            payLater?: wix_ecom_backend.Events.ecomV1CartPriceSummary;\n            /**\n             * Minimal amount to pay in order to place the order.\n             */\n            payNow?: wix_ecom_backend.Events.ecomV1CartPriceSummary;\n            /**\n             * Price summary.\n             */\n            priceSummary?: wix_ecom_backend.Events.ecomV1CartPriceSummary;\n            /**\n             * Shipping information.\n             */\n            shippingInfo?: wix_ecom_backend.Events.ecomV1CartShippingInformation;\n            /**\n             * Tax summary.\n             */\n            taxSummary?: wix_ecom_backend.Events.ecomV1CartTaxSummary;\n            /**\n             * Weight measurement unit - defaults to site's weight unit.\n             */\n            weightUnit?: string;\n        };\n        type ecomV1CartExtendedFieldsUpdatedEvent = {\n            currentEntityAsJson?: string;\n        };\n        type ecomV1CartFieldViolation = {\n            data?: Object;\n            description?: string;\n            field?: string;\n            /**\n             * applicable when violated_rule=OTHER\n             */\n            ruleName?: string;\n            /**\n             * Suppoerted values:\n             * - `'DECIMAL_GT'`\n             * - `'DECIMAL_GTE'`\n             * - `'DECIMAL_LT'`\n             * - `'DECIMAL_LTE'`\n             * - `'DECIMAL_MAX_SCALE'`\n             * - `'FORMAT'`\n             * - `'INVALID_ENUM_VALUE'`\n             * - `'MAX'`\n             * - `'MAX_LENGTH'`\n             * - `'MAX_SIZE'`\n             * - `'MIN'`\n             * - `'MIN_LENGTH'`\n             * - `'MIN_SIZE'`\n             * - `'OTHER'`\n             * - `'REQUIRED_FIELD'`\n             * - `'VALIDATION'`\n             */\n            violatedRule?: string;\n        };\n        type ecomV1CartFullAddressContactDetails = {\n            /**\n             * Contact's company\n             */\n            company?: string;\n            /**\n             * Email associated with the address\n             */\n            email?: string;\n            /**\n             * Contact first name\n             */\n            firstName?: string;\n            /**\n             * Contact last name\n             */\n            lastName?: string;\n            /**\n             * Contact phone number\n             */\n            phone?: string;\n            /**\n             * tax info (Currently usable only in Brazil)\n             */\n            vatId?: wix_ecom_backend.Events.ecomV1CartVatId;\n        };\n        type ecomV1CartGetCartByCheckoutIdRequest = {\n            /**\n             * Checkout ID.\n             */\n            _id: string;\n        };\n        type ecomV1CartGetCartByCheckoutIdResponse = {\n            /**\n             * The requested cart.\n             */\n            cart?: wix_ecom_backend.Events.ecomV1CartCart;\n        };\n        type ecomV1CartGetCartRequest = {\n            /**\n             * Cart ID.\n             */\n            _id: string;\n        };\n        type ecomV1CartGetCartResponse = {\n            /**\n             * The requested cart.\n             */\n            cart?: wix_ecom_backend.Events.ecomV1CartCart;\n        };\n        type ecomV1CartGetCurrentCartRequest = {};\n        type ecomV1CartGetCurrentCartResponse = {\n            /**\n             * Current session's active cart.\n             */\n            cart?: wix_ecom_backend.Events.ecomV1CartCart;\n        };\n        type ecomV1CartGiftCard = {\n            /**\n             * Gift Card ID.\n             */\n            _id?: string;\n            /**\n             * Gift card value.\n             */\n            amount?: wix_ecom_backend.Events.ecomV1CartMultiCurrencyPrice;\n            /**\n             * App ID of the gift card provider.\n             */\n            appId?: string;\n            /**\n             * Gift card obfuscated code.\n             */\n            obfuscatedCode?: string;\n        };\n        type ecomV1CartGroup = {\n            /**\n             * Item ID (when the coupon scope is limited to just one item).\n             */\n            entityId?: string;\n            /**\n             * Coupon scope's group (e.g., product or collection in Wix Stores). See [valid scope values](https://dev.wix.com/api/rest/coupons/coupons/valid-scope-values).\n             */\n            name?: string;\n        };\n        type ecomV1CartInvalidMembership = {\n            /**\n             * Membership details.\n             */\n            membership?: wix_ecom_backend.Events.ecomV1CartMembership;\n            /**\n             * Reason why this membership is invalid and cannot be used.\n             */\n            reason?: string;\n        };\n        type ecomV1CartItemAvailabilityInfo = {\n            /**\n             * Quantity available.\n             */\n            quantityAvailable?: number;\n            /**\n             * Item availability status. Supported Values:\n             * + `\"NOT_FOUND\"`: Item does not exist\n             * + `\"NOT_AVAILABLE\"`: Item not in stock\n             * + `\"PARTIALLY_AVAILABLE\"`: Available quantity is less than requested\n             */\n            status?: string;\n        };\n        type ecomV1CartItemTaxFullDetails = {\n            /**\n             * If breakdown exists, the sum of rates in the breakdown must equal `tax_rate`.\n             */\n            rateBreakdown?: Array<wix_ecom_backend.Events.ecomV1CartTaxRateBreakdown>;\n            /**\n             * Tax rate %, as a decimal point between 0 and 1.\n             */\n            taxRate?: string;\n            /**\n             * Amount for which tax is calculated.\n             */\n            taxableAmount?: wix_ecom_backend.Events.ecomV1CartMultiCurrencyPrice;\n            /**\n             * Calculated tax, based on `taxable_amount` and `tax_rate`.\n             */\n            totalTax?: wix_ecom_backend.Events.ecomV1CartMultiCurrencyPrice;\n        };\n        type ecomV1CartItemType = {\n            /**\n             * Custom item type.\n             */\n            custom?: string;\n            /**\n             * Preset item type.\n             */\n            preset?: string;\n        };\n        type ecomV1CartItemTypeItemTypeDataOneOf = {\n            /**\n             * Custom item type.\n             */\n            custom?: string;\n            /**\n             * Preset item type.\n             */\n            preset?: string;\n        };\n        type ecomV1CartLineItem = {\n            /**\n             * Line item ID.\n             */\n            _id?: string;\n            /**\n             * Item availability details.\n             */\n            availability?: wix_ecom_backend.Events.ecomV1CartItemAvailabilityInfo;\n            /**\n             * Catalog and item reference info. See [Catalog SPI](https://bo.wix.com/wix-docs/rest/ecommerce/catalog-spi/introduction) for more details.\n             * Empty in the case of a custom line item.\n             */\n            catalogReference?: wix_ecom_backend.Events.ecomV1CartCatalogReference;\n            /**\n             * Line item description lines. Used for display purposes for the cart, checkout and order.\n             */\n            descriptionLines?: Array<wix_ecom_backend.Events.ecomV1CartDescriptionLine>;\n            /**\n             * Item price **before** catalog-defined discount. Defaults to `price` when not provided.\n             */\n            fullPrice?: wix_ecom_backend.Events.ecomV1CartMultiCurrencyPrice;\n            /**\n             * Line item image details.\n             */\n            image?: string;\n            /**\n             * Item type. Either a preset type or custom.\n             */\n            itemType?: wix_ecom_backend.Events.ecomV1CartItemType;\n            /**\n             * Type of selected payment option for current item. Defaults to `FULL_PAYMENT_ONLINE`.\n             * + `FULL_PAYMENT_ONLINE` - The entire payment for this item happens as part of the checkout.\n             * + `FULL_PAYMENT_OFFLINE` - The entire payment for this item happens after the checkout. For example, when using cash, check, or other offline payment methods.\n             * + `MEMBERSHIP` - Payment for this item is done by charging a membership. When this option is used, `lineItem.price.amount` is 0.\n             */\n            paymentOption?: string;\n            /**\n             * Physical properties of the item. When relevant, contains information such as SKU, item weight, and shippability.\n             */\n            physicalProperties?: wix_ecom_backend.Events.ecomV1CartPhysicalProperties;\n            /**\n             * Item price **after** catalog-defined discount and line item discounts.\n             */\n            price?: wix_ecom_backend.Events.ecomV1CartMultiCurrencyPrice;\n            /**\n             * Item price **before** line item discounts and **after** catalog-defined discount. Defaults to `price` when not provided.\n             */\n            priceBeforeDiscounts?: wix_ecom_backend.Events.ecomV1CartMultiCurrencyPrice;\n            /**\n             * Additional description for the price. For example, when price is 0 but additional details about the actual price are needed - \"Starts at $67\".\n             */\n            priceDescription?: wix_ecom_backend.Events.ecomV1CartPriceDescription;\n            /**\n             * Item name.\n             * + Stores - `product.name`\n             * + Bookings - `service.info.name`\n             * + Events - `ticket.name`\n             */\n            productName?: wix_ecom_backend.Events.ecomV1CartProductName;\n            /**\n             * Item quantity.\n             */\n            quantity?: number;\n            /**\n             * In cases where `catalogReference.catalogItemId` is NOT the actual catalog item ID, this field will return the true item's ID.\n             * + For example, for Wix Bookings, `catalogReference.catalogItemId` is the booking ID. Therefore this value is set to the service ID.\n             * + in most cases, this field is the name as `catalogReference.catalogItemId`.\n             * + Used in membership validation.\n             */\n            rootCatalogItemId?: string;\n            /**\n             * Service properties. When relevant, this contains information such as date and number of participants.\n             */\n            serviceProperties?: wix_ecom_backend.Events.ecomV1CartServiceProperties;\n            /**\n             * URL to the item's page on the site.\n             */\n            url?: string;\n        };\n        type ecomV1CartLineItemPricesData = {\n            /**\n             * Total price **after** catalog-defined discount and line item discounts.\n             */\n            lineItemPrice?: wix_ecom_backend.Events.ecomV1CartMultiCurrencyPrice;\n            /**\n             * Catalog price after catalog discount and automatic discounts.\n             */\n            price?: wix_ecom_backend.Events.ecomV1CartMultiCurrencyPrice;\n            /**\n             * Item price **before** line item discounts and **after** catalog-defined discount. Defaults to `price` when not provided.\n             */\n            priceBeforeDiscounts?: wix_ecom_backend.Events.ecomV1CartMultiCurrencyPrice;\n            /**\n             * Tax details.\n             */\n            taxDetails?: wix_ecom_backend.Events.ecomV1CartItemTaxFullDetails;\n            /**\n             * Total discount for all line items.\n             */\n            totalDiscount?: wix_ecom_backend.Events.ecomV1CartMultiCurrencyPrice;\n            /**\n             * Total price after discounts and after tax.\n             */\n            totalPriceAfterTax?: wix_ecom_backend.Events.ecomV1CartMultiCurrencyPrice;\n            /**\n             * Deprecated - please use `total_price_after_tax` minus `tax_details.total_tax` instead.\n             */\n            totalPriceBeforeTax?: wix_ecom_backend.Events.ecomV1CartMultiCurrencyPrice;\n        };\n        type ecomV1CartLineItemQuantityUpdate = {\n            /**\n             * Line item ID.\n             */\n            _id?: string;\n            /**\n             * New quantity. Number must 1 or higher.\n             */\n            quantity?: number;\n        };\n        type ecomV1CartMembership = {\n            /**\n             * Membership ID.\n             */\n            _id?: string;\n            /**\n             * Additional data about this membership.\n             */\n            additionalData?: Object;\n            /**\n             * ID of the application providing this payment option.\n             */\n            appId?: string;\n            /**\n             * Optional - For a membership that has limited credits, information about credit usage.\n             */\n            credits?: wix_ecom_backend.Events.ecomV1CartMembershipPaymentCredits;\n            /**\n             * Optional - TMembership expiry date.\n             */\n            expirationDate?: Date;\n            /**\n             * Line item IDs which are \"paid\" for by this membership.\n             */\n            lineItemIds?: Array<string>;\n            /**\n             * The name of this membership.\n             */\n            name?: wix_ecom_backend.Events.ecomV1CartMembershipName;\n        };\n        type ecomV1CartMembershipName = {\n            /**\n             * The name of this membership\n             */\n            original?: string;\n            /**\n             * Optional - Translated name of this membership. Defaults to `original` when not provided.\n             */\n            translated?: string;\n        };\n        type ecomV1CartMembershipOptions = {\n            /**\n             * List of payment options that can be used.\n             */\n            eligibleMemberships?: Array<wix_ecom_backend.Events.ecomV1CartMembership>;\n            /**\n             * List of payment options that are owned by the member, but cannot be used due to reason provided.\n             */\n            invalidMemberships?: Array<wix_ecom_backend.Events.ecomV1CartInvalidMembership>;\n            /**\n             * The selected membership payment options and which line items they apply to.\n             */\n            selectedMemberships?: Array<wix_ecom_backend.Events.ecomV1CartSelectedMembership>;\n        };\n        type ecomV1CartMembershipPaymentCredits = {\n            /**\n             * How much credit remained for this membership\n             */\n            remaining?: number;\n            /**\n             * How much credit this membership has in total\n             */\n            total?: number;\n        };\n        type ecomV1CartMerchantDiscount = {\n            /**\n             * Discount value.\n             */\n            amount?: wix_ecom_backend.Events.ecomV1CartMultiCurrencyPrice;\n        };\n        type ecomV1CartMerchantDiscountInput = {\n            /**\n             * Discount amount.\n             */\n            amount?: string;\n            /**\n             * IDs of line items the discount applies to.\n             */\n            lineItemIds?: Array<string>;\n        };\n        type ecomV1CartMultiCurrencyPrice = {\n            /**\n             * Amount.\n             */\n            amount?: string;\n            /**\n             * Converted amount.\n             */\n            convertedAmount?: string;\n            /**\n             * Amount formatted with currency symbol.\n             */\n            formattedAmount?: string;\n            /**\n             * Converted amount formatted with currency symbol.\n             */\n            formattedConvertedAmount?: string;\n        };\n        type ecomV1CartOtherCharge = {\n            /**\n             * Price of added cost.\n             */\n            price?: wix_ecom_backend.Events.ecomV1CartMultiCurrencyPrice;\n            /**\n             * Type of additional cost.\n             */\n            type?: string;\n        };\n        type ecomV1CartPhysicalProperties = {\n            /**\n             * Whether this line item is shippable.\n             */\n            shippable?: boolean;\n            /**\n             * Stock-keeping unit. Learn more about [SKUs](https://www.wix.com/encyclopedia/definition/stock-keeping-unit-sku).\n             */\n            sku?: string;\n            /**\n             * Line item weight. Measurement unit (KG or LB) is taken from `order.weightUnit`.\n             */\n            weight?: number;\n        };\n        type ecomV1CartPickupDetails = {\n            /**\n             * Pickup address.\n             */\n            address?: wix_ecom_backend.Events.ecomV1CartAddress;\n            /**\n             * Whether the pickup address is that of a business - this may effect tax calculation.\n             */\n            businessLocation?: boolean;\n            /**\n             * Pickup method\n             */\n            pickupMethod?: string;\n        };\n        type ecomV1CartPlainTextValue = {\n            /**\n             * Optional - Description line plain text value in site's default language.\n             */\n            original?: string;\n            /**\n             * Optional - Translated description line plain text value according to buyer language. Defaults to `original` when not provided.\n             */\n            translated?: string;\n        };\n        type ecomV1CartPriceDescription = {\n            /**\n             * Required** - Original price description (in site's default language).\n             */\n            original?: string;\n            /**\n             * Optional - Translated product name according to buyer language. Defaults to `original` when not provided.\n             */\n            translated?: string;\n        };\n        type ecomV1CartPriceSummary = {\n            /**\n             * Total additional fees price.\n             */\n            additionalFees?: wix_ecom_backend.Events.ecomV1CartMultiCurrencyPrice;\n            /**\n             * Total calculated discount value.\n             */\n            discount?: wix_ecom_backend.Events.ecomV1CartMultiCurrencyPrice;\n            /**\n             * Total shipping price, before discounts and before tax.\n             */\n            shipping?: wix_ecom_backend.Events.ecomV1CartMultiCurrencyPrice;\n            /**\n             * Subtotal of all line items, before discounts and before tax.\n             */\n            subtotal?: wix_ecom_backend.Events.ecomV1CartMultiCurrencyPrice;\n            /**\n             * Total tax.\n             */\n            tax?: wix_ecom_backend.Events.ecomV1CartMultiCurrencyPrice;\n            /**\n             * Total price after discounts, gift cards, and tax.\n             */\n            total?: wix_ecom_backend.Events.ecomV1CartMultiCurrencyPrice;\n        };\n        type ecomV1CartProductName = {\n            /**\n             * Required** - Original item name (in site's default language).\n             */\n            original?: string;\n            /**\n             * Optional - Translated item name according to buyer language. Defaults to `original` when not provided.\n             */\n            translated?: string;\n        };\n        type ecomV1CartRemoveCouponFromCurrentCartRequest = {};\n        type ecomV1CartRemoveCouponRequest = {\n            /**\n             * Cart ID.\n             */\n            _id: string;\n        };\n        type ecomV1CartRemoveCouponResponse = {\n            /**\n             * Updated cart.\n             */\n            cart?: wix_ecom_backend.Events.ecomV1CartCart;\n        };\n        type ecomV1CartRemoveLineItemsFromCurrentCartRequest = {\n            /**\n             * Line item IDs to remove from cart.\n             */\n            lineItemIds: Array<string>;\n        };\n        type ecomV1CartRemoveLineItemsRequest = {\n            /**\n             * Cart ID.\n             */\n            _id: string;\n            /**\n             * Line item IDs to remove from cart.\n             */\n            lineItemIds: Array<string>;\n        };\n        type ecomV1CartRemoveLineItemsResponse = {\n            /**\n             * Updated cart.\n             */\n            cart?: wix_ecom_backend.Events.ecomV1CartCart;\n        };\n        type ecomV1CartScope = {\n            /**\n             * Coupon scope's applied group (e.g., event or ticket in Wix Events)\n             */\n            group?: wix_ecom_backend.Events.ecomV1CartGroup;\n            /**\n             * Scope namespace (Wix Stores, Wix Bookings, Wix Events)\n             */\n            namespace?: string;\n        };\n        type ecomV1CartSecuredMedia = {\n            /**\n             * Media ID in media manager.\n             */\n            _id?: string;\n            /**\n             * Original file name.\n             */\n            fileName?: string;\n            /**\n             * File type.\n             */\n            fileType?: string;\n        };\n        type ecomV1CartSelectedCarrierServiceOption = {\n            /**\n             * This carrier's unique ID\n             */\n            carrierId?: string;\n            /**\n             * Unique identifier of selected option. For example, \"usps_std_overnight\".\n             */\n            code?: string;\n            /**\n             * Shipping costs.\n             */\n            cost?: wix_ecom_backend.Events.ecomV1CartSelectedCarrierServiceOptionPrices;\n            /**\n             * Delivery logistics.\n             */\n            logistics?: wix_ecom_backend.Events.ecomV1CartDeliveryLogistics;\n            /**\n             * Other charges\n             */\n            otherCharges?: Array<wix_ecom_backend.Events.ecomV1CartSelectedCarrierServiceOptionOtherCharge>;\n            /**\n             * Were we able to find the requested shipping option, or otherwise we fallback to the default one (the first)\n             */\n            requestedShippingOption?: boolean;\n            /**\n             * Title of the option, such as USPS Standard Overnight Delivery (in the requested locale).\n             * For example, \"Standard\" or \"First-Class Package International\".\n             */\n            title?: string;\n        };\n        type ecomV1CartSelectedCarrierServiceOptionOtherCharge = {\n            /**\n             * Price of added charge.\n             */\n            cost?: wix_ecom_backend.Events.ecomV1CartSelectedCarrierServiceOptionPrices;\n            /**\n             * Details of the charge, such as 'Full Coverage Insurance of up to 80% of value of shipment'.\n             */\n            details?: string;\n            /**\n             * Type of additional cost.\n             */\n            type?: string;\n        };\n        type ecomV1CartSelectedCarrierServiceOptionPrices = {\n            /**\n             * Shipping price before discount and before tax.\n             */\n            price?: wix_ecom_backend.Events.ecomV1CartMultiCurrencyPrice;\n            /**\n             * Tax details.\n             */\n            taxDetails?: wix_ecom_backend.Events.ecomV1CartItemTaxFullDetails;\n            /**\n             * Shipping discount before tax.\n             */\n            totalDiscount?: wix_ecom_backend.Events.ecomV1CartMultiCurrencyPrice;\n            /**\n             * Total shipping price, after discount and after tax.\n             */\n            totalPriceAfterTax?: wix_ecom_backend.Events.ecomV1CartMultiCurrencyPrice;\n            /**\n             * Deprecated - please use `total_price_after_tax` minus `tax_details.total_tax` instead.\n             */\n            totalPriceBeforeTax?: wix_ecom_backend.Events.ecomV1CartMultiCurrencyPrice;\n        };\n        type ecomV1CartSelectedMembership = {\n            /**\n             * Membership ID.\n             */\n            _id?: string;\n            /**\n             * ID of the app providing this payment option.\n             */\n            appId?: string;\n            /**\n             * IDs of the line items this membership applies to.\n             */\n            lineItemIds?: Array<string>;\n        };\n        type ecomV1CartSelectedMemberships = {\n            /**\n             * Selected memberships.\n             */\n            memberships?: Array<wix_ecom_backend.Events.ecomV1CartSelectedMembership>;\n        };\n        type ecomV1CartSelectedShippingOption = {\n            /**\n             * Carrier ID.\n             */\n            carrierId?: string;\n            /**\n             * Selected shipping option code. For example, \"usps_std_overnight\".\n             */\n            code?: string;\n        };\n        type ecomV1CartServiceProperties = {\n            /**\n             * Optional - The number of people participating in this service. For example, the number of people attending the class or the number of people per hotel room.\n             */\n            numberOfParticipants?: number;\n            /**\n             * Optional - The date and time for which the service is supposed to be provided. For example, the time of the class.\n             */\n            scheduledDate?: Date;\n        };\n        type ecomV1CartShippingInfo = {\n            /**\n             * Pickup details when this object describes pickup\n             */\n            pickupDetails?: wix_ecom_backend.Events.ecomV1CartV1PickupDetails;\n            /**\n             * Shipment details when this object describes shipment\n             */\n            shippingAddress?: wix_ecom_backend.Events.ecomV1CartCartAddress;\n            /**\n             * Selected shipping rule details\n             */\n            shippingRuleDetails?: wix_ecom_backend.Events.ecomV1CartShippingRuleDetails;\n        };\n        type ecomV1CartShippingInfoDetailsOneOf = {\n            /**\n             * Pickup details when this object describes pickup\n             */\n            pickupDetails?: wix_ecom_backend.Events.ecomV1CartV1PickupDetails;\n            /**\n             * Shipment details when this object describes shipment\n             */\n            shippingAddress?: wix_ecom_backend.Events.ecomV1CartCartAddress;\n        };\n        type ecomV1CartShippingInformation = {\n            /**\n             * All shipping options.\n             */\n            carrierServiceOptions?: Array<wix_ecom_backend.Events.ecomV1CartCarrierServiceOption>;\n            /**\n             * Shipping region.\n             */\n            region?: wix_ecom_backend.Events.ecomV1CartShippingRegion;\n            /**\n             * Selected shipping option.\n             */\n            selectedCarrierServiceOption?: wix_ecom_backend.Events.ecomV1CartSelectedCarrierServiceOption;\n        };\n        type ecomV1CartShippingOption = {\n            /**\n             * Unique code of provided shipping option like \"usps_std_overnight\".\n             * For legacy calculators this would be the UUID of the option.\n             */\n            code?: string;\n            /**\n             * Sipping price information.\n             */\n            cost?: wix_ecom_backend.Events.ecomV1CartShippingPrice;\n            /**\n             * Delivery logistics.\n             */\n            logistics?: wix_ecom_backend.Events.ecomV1CartDeliveryLogistics;\n            /**\n             * Title of the option, such as USPS Standard Overnight Delivery (in the requested locale).\n             * For example, \"Standard\" or \"First-Class Package International\".\n             */\n            title?: string;\n        };\n        type ecomV1CartShippingPrice = {\n            /**\n             * Other costs such as insurance, handling & packaging for fragile items, etc.\n             */\n            otherCharges?: Array<wix_ecom_backend.Events.ecomV1CartOtherCharge>;\n            /**\n             * Shipping price.\n             */\n            price?: wix_ecom_backend.Events.ecomV1CartMultiCurrencyPrice;\n        };\n        type ecomV1CartShippingRegion = {\n            /**\n             * Shipping region ID.\n             */\n            _id?: string;\n            /**\n             * Shipping region name.\n             */\n            name?: string;\n        };\n        type ecomV1CartShippingRuleDetails = {\n            /**\n             * Rule title (as provided by the store owner)\n             */\n            deliveryOption?: string;\n            /**\n             * Shipping option delivery time\n             */\n            estimatedDeliveryTime?: string;\n            /**\n             * Selected option ID\n             */\n            optionId?: string;\n            /**\n             * Selected shipping rule ID\n             */\n            ruleId?: string;\n        };\n        type ecomV1CartStreetAddress = {\n            /**\n             * Street name.\n             */\n            name?: string;\n            /**\n             * Street number.\n             */\n            number?: string;\n        };\n        type ecomV1CartSubdivision = {\n            /**\n             * Short subdivision code.\n             */\n            code?: string;\n            /**\n             * Subdivision full name.\n             */\n            name?: string;\n        };\n        type ecomV1CartSubscriptionOptionInfo = {\n            /**\n             * Subscription option description.\n             */\n            description?: wix_ecom_backend.Events.ecomV1CartDescription;\n            /**\n             * Subscription option settings.\n             */\n            subscriptionSettings?: wix_ecom_backend.Events.ecomV1CartSubscriptionSettings;\n            /**\n             * Subscription option title.\n             */\n            title?: wix_ecom_backend.Events.ecomV1CartTitle;\n        };\n        type ecomV1CartSubscriptionSettings = {\n            /**\n             * Whether subscription is renewed automatically at the end of each period.\n             */\n            autoRenewal?: boolean;\n            /**\n             * Number of billing cycles before subscription ends. Ignored if `autoRenewal: true`.\n             */\n            billingCycles?: number;\n            /**\n             * Frequency of recurring payment.\n             */\n            frequency?: string;\n        };\n        type ecomV1CartTaxCalculationDetails = {\n            /**\n             * Details of the fallback rate calculation.\n             */\n            autoTaxFallbackDetails?: wix_ecom_backend.Events.ecomV1CartAutoTaxFallbackCalculationDetails;\n            /**\n             * Reason the manual calculation was used.\n             */\n            manualRateReason?: string;\n            /**\n             * Rate calculation type.\n             */\n            rateType?: string;\n        };\n        type ecomV1CartTaxCalculationDetailsCalculationDetailsOneOf = {\n            /**\n             * Details of the fallback rate calculation.\n             */\n            autoTaxFallbackDetails?: wix_ecom_backend.Events.ecomV1CartAutoTaxFallbackCalculationDetails;\n            /**\n             * Reason the manual calculation was used.\n             */\n            manualRateReason?: string;\n        };\n        type ecomV1CartTaxRateBreakdown = {\n            /**\n             * Type of tax against which the calculation was performed.\n             */\n            name?: string;\n            /**\n             * Rate at which this tax detail was calculated.\n             */\n            rate?: string;\n            /**\n             * Amount of tax for this tax detail.\n             */\n            tax?: wix_ecom_backend.Events.ecomV1CartMultiCurrencyPrice;\n        };\n        type ecomV1CartTaxSummary = {\n            /**\n             * Tax calculator that was active when the order was created.\n             */\n            calculationDetails?: wix_ecom_backend.Events.ecomV1CartTaxCalculationDetails;\n            /**\n             * Amount for which tax is calculated, added from line items.\n             */\n            taxableAmount?: wix_ecom_backend.Events.ecomV1CartMultiCurrencyPrice;\n            /**\n             * Calculated tax, added from line items.\n             */\n            totalTax?: wix_ecom_backend.Events.ecomV1CartMultiCurrencyPrice;\n        };\n        type ecomV1CartTitle = {\n            /**\n             * Subscription option name.\n             */\n            original?: string;\n            /**\n             * Translated subscription option name.\n             */\n            translated?: string;\n        };\n        type ecomV1CartTotals = {\n            /**\n             * Total calculated discount value, according to order.discount\n             */\n            discount?: number;\n            /**\n             * Total line items quantity\n             */\n            quantity?: number;\n            /**\n             * Total shipping price, including tax\n             */\n            shipping?: number;\n            /**\n             * Subtotal of all line items, before tax\n             */\n            subtotal?: number;\n            /**\n             * Total tax\n             */\n            tax?: number;\n            /**\n             * Total price\n             */\n            total?: number;\n            /**\n             * Total items weight\n             */\n            weight?: number;\n        };\n        type ecomV1CartUpdateCartRequest = {\n            /**\n             * Cart info.\n             */\n            cartInfo?: wix_ecom_backend.Events.ecomV1CartCart;\n            /**\n             * Coupon code. For more information, see [Coupons API](https://dev.wix.com/api/rest/wix-coupons/coupons/introduction).\n             */\n            couponCode?: string;\n            /**\n             * Custom line items.\n             */\n            customLineItems?: Array<wix_ecom_backend.Events.ecomV1CartCustomLineItem>;\n            /**\n             * Catalog line items.\n             */\n            lineItems?: Array<wix_ecom_backend.Events.ecomV1CartLineItem>;\n            /**\n             * Merchant discounts to apply to specific line items. If no `lineItemIds` are passed, the discount will be applied to the whole cart.\n             */\n            merchantDiscounts?: Array<wix_ecom_backend.Events.ecomV1CartMerchantDiscountInput>;\n        };\n        type ecomV1CartUpdateCartResponse = {\n            /**\n             * Updated Cart.\n             */\n            cart?: wix_ecom_backend.Events.ecomV1CartCart;\n        };\n        type ecomV1CartUpdateCurrentCartLineItemQuantityRequest = {\n            /**\n             * Line item IDs and their new quantity.\n             */\n            lineItems: Array<wix_ecom_backend.Events.ecomV1CartLineItemQuantityUpdate>;\n        };\n        type ecomV1CartUpdateLineItemsQuantityRequest = {\n            /**\n             * Cart ID.\n             */\n            _id: string;\n            /**\n             * Line item IDs and their new quantity.\n             */\n            lineItems: Array<wix_ecom_backend.Events.ecomV1CartLineItemQuantityUpdate>;\n        };\n        type ecomV1CartUpdateLineItemsQuantityResponse = {\n            /**\n             * Updated cart.\n             */\n            cart?: wix_ecom_backend.Events.ecomV1CartCart;\n        };\n        type ecomV1CartV1BuyerInfo = {\n            /**\n             * Customer details\n             */\n            _id?: string;\n            /**\n             * Customer's email address\n             */\n            email?: string;\n            /**\n             * Customer's first name\n             */\n            firstName?: string;\n            /**\n             * Customer's relationship to the website\n             */\n            identityType?: string;\n            /**\n             * Customer's last name\n             */\n            lastName?: string;\n            /**\n             * Customer's phone number\n             */\n            phone?: string;\n        };\n        type ecomV1CartV1Coupon = {\n            /**\n             * Coupon ID.\n             */\n            _id?: string;\n            /**\n             * Coupon value.\n             */\n            amount?: wix_ecom_backend.Events.ecomV1CartMultiCurrencyPrice;\n            /**\n             * Coupon code.\n             */\n            code?: string;\n            /**\n             * Coupon name.\n             */\n            name?: string;\n        };\n        type ecomV1CartV1MerchantDiscount = {\n            /**\n             * Discount value.\n             */\n            amount?: wix_ecom_backend.Events.ecomV1CartMultiCurrencyPrice;\n        };\n        type ecomV1CartV1PickupDetails = {\n            /**\n             * Customer details\n             */\n            buyerDetails?: wix_ecom_backend.Events.ecomV1CartBuyerDetails;\n            /**\n             * Pickup address\n             */\n            pickupAddress?: wix_ecom_backend.Events.ecomV1CartCommonAddress;\n            /**\n             * Store owner's pickup instructions\n             */\n            pickupInstructions?: string;\n        };\n        type ecomV1CartValidationError = {\n            fieldViolations?: Array<wix_ecom_backend.Events.ecomV1CartFieldViolation>;\n        };\n        type ecomV1CartVatId = {\n            /**\n             * Customer's tax ID\n             */\n            _id?: string;\n            /**\n             * tax type\n             */\n            type?: string;\n        };\n        type ecomV1CheckoutActionEvent = {\n            bodyAsJson?: string;\n        };\n        type ecomV1CheckoutAdditionalFee = {\n            /**\n             * Additional fee's unique code (or ID) for future processing\n             */\n            code?: string;\n            /**\n             * Translated additional fee's name\n             */\n            name?: string;\n            /**\n             * Additional fee's price\n             */\n            price?: wix_ecom_backend.Events.ecomV1CheckoutMultiCurrencyPrice;\n            /**\n             * Provider's app id\n             */\n            providerAppId?: string;\n            /**\n             * Tax details\n             */\n            taxDetails?: wix_ecom_backend.Events.ecomV1CheckoutItemTaxFullDetails;\n        };\n        type ecomV1CheckoutAddress = {\n            /**\n             * Address line 1 (free text)\n             */\n            addressLine1?: string;\n            /**\n             * address line\n             */\n            addressLine2?: string;\n            /**\n             * City name\n             */\n            city?: string;\n            /**\n             * Company name\n             */\n            company?: string;\n            /**\n             * Country code (2 letters)\n             */\n            country?: string;\n            /**\n             * Email address\n             */\n            email?: string;\n            /**\n             * Addressee name\n             */\n            fullName?: wix_ecom_backend.Events.ecomV1CheckoutFullName;\n            /**\n             * Phone number\n             */\n            phone?: string;\n            /**\n             * Address line 1 (street)\n             */\n            street?: wix_ecom_backend.Events.ecomV1CheckoutStreet;\n            /**\n             * State or district\n             */\n            subdivision?: string;\n            /**\n             * Tax information (for Brazil only)\n             */\n            vatId?: wix_ecom_backend.Events.ecomV1CheckoutVatId;\n            /**\n             * ZIP/postal code\n             */\n            zipCode?: string;\n        };\n        type ecomV1CheckoutAddressAddressLine1OptionsOneOf = {\n            /**\n             * Address line 1 (free text)\n             */\n            addressLine1?: string;\n            /**\n             * Address line 1 (street)\n             */\n            street?: wix_ecom_backend.Events.ecomV1CheckoutStreet;\n        };\n        type ecomV1CheckoutAddressWithContact = {\n            /**\n             * Address.\n             */\n            address?: wix_ecom_backend.Events.ecomV1CheckoutApiAddress;\n            /**\n             * Contact details.\n             */\n            contactDetails?: wix_ecom_backend.Events.ecomV1CheckoutFullAddressContactDetails;\n        };\n        type ecomV1CheckoutApiAddress = {\n            /**\n             * Main address line (usually street name and number).\n             */\n            addressLine?: string;\n            /**\n             * Free text providing more detailed address info. Usually contains apt, suite, floor.\n             */\n            addressLine2?: string;\n            /**\n             * City name.\n             */\n            city?: string;\n            /**\n             * Two-letter country code in [ISO-3166 alpha-2](https://www.iso.org/obp/ui/#search/code/) format.\n             */\n            country?: string;\n            /**\n             * Country's full name.\n             */\n            countryFullname?: string;\n            /**\n             * Postal or zip code.\n             */\n            postalCode?: string;\n            /**\n             * Street address object, with number, name, and apartment number in separate fields.\n             */\n            streetAddress?: wix_ecom_backend.Events.ecomV1CheckoutStreetAddress;\n            /**\n             * Code for a subdivision (such as state, prefecture, or province) in [ISO 3166-2](https://www.iso.org/standard/72483.html) format.\n             */\n            subdivision?: string;\n            /**\n             * Subdivision full-name.\n             */\n            subdivisionFullname?: string;\n        };\n        type ecomV1CheckoutApplicationError = {\n            code?: string;\n            data?: Object;\n            description?: string;\n        };\n        type ecomV1CheckoutAppliedCoupon = {\n            /**\n             * Coupon code\n             */\n            code?: string;\n            /**\n             * Coupon ID\n             */\n            couponId?: string;\n            /**\n             * Coupon name\n             */\n            name?: string;\n        };\n        type ecomV1CheckoutAppliedDiscount = {\n            /**\n             * Coupon details.\n             */\n            coupon?: wix_ecom_backend.Events.ecomV1CheckoutCoupon;\n            /**\n             * Discount rule\n             */\n            discountRule?: wix_ecom_backend.Events.ecomV1CheckoutDiscountRule;\n            /**\n             * Discount type.\n             */\n            discountType?: string;\n            /**\n             * IDs of line items the discount applies to.\n             */\n            lineItemIds?: Array<string>;\n            /**\n             * Merchant discount.\n             */\n            merchantDiscount?: wix_ecom_backend.Events.ecomV1CheckoutMerchantDiscount;\n        };\n        type ecomV1CheckoutAppliedDiscountDiscountSourceOneOf = {\n            /**\n             * Coupon details.\n             */\n            coupon?: wix_ecom_backend.Events.ecomV1CheckoutCoupon;\n            /**\n             * Discount rule\n             */\n            discountRule?: wix_ecom_backend.Events.ecomV1CheckoutDiscountRule;\n            /**\n             * Merchant discount.\n             */\n            merchantDiscount?: wix_ecom_backend.Events.ecomV1CheckoutMerchantDiscount;\n        };\n        type ecomV1CheckoutAutoTaxFallbackCalculationDetails = {\n            /**\n             * invalid request (i.e. address), timeout, internal error, license error, and others will be encoded here\n             */\n            error?: wix_ecom_backend.Events.ecomV1CheckoutApplicationError;\n            /**\n             * reason for fallback\n             */\n            fallbackReason?: string;\n        };\n        type ecomV1CheckoutBackendEventMetadata = {\n            entityId: string;\n            eventTime: string;\n            id: string;\n            triggeredByAnonymizeRequest: boolean;\n        };\n        type ecomV1CheckoutBillingInfo = {\n            /**\n             * Full billing address\n             */\n            address?: wix_ecom_backend.Events.ecomV1CheckoutAddress;\n            /**\n             * Deprecated (use paymentProviderTransactionId instead)\n             */\n            externalTransactionId?: string;\n            /**\n             * Payment date\n             */\n            paidDate?: Date;\n            /**\n             * Transaction ID from payment gateway (e.g., Wix Payments)\n             */\n            paymentGatewayTransactionId?: string;\n            /**\n             * Payment method used for this order\n             */\n            paymentMethod?: string;\n            /**\n             * Transaction ID from payment provider (e.g., PayPal, Square, Stripe) transaction ID\n             */\n            paymentProviderTransactionId?: string;\n            /**\n             * Whether order can be refunded by payment provider (manually or automatic)\n             */\n            refundableByPaymentProvider?: boolean;\n        };\n        type ecomV1CheckoutBuyerInfo = {\n            /**\n             * Contact ID. Auto-created if one does not yet exist. For more information, see [Contacts API](https://dev.wix.com/api/rest/contacts/contacts/introduction).\n             */\n            contactId?: string;\n            /**\n             * Buyer email address.\n             */\n            email?: string;\n            /**\n             * Member ID (if site visitor is a site member).\n             */\n            memberId?: string;\n            /**\n             * + When `true` - checkout doesn't have an owner yet and anyone can access it. The first to access it will be new owner.\n             * + If `false`, the value in `checkout.createdBy` is the owner.\n             */\n            openAccess?: boolean;\n            /**\n             * Visitor ID (if site visitor is **not** a member).\n             */\n            visitorId?: string;\n        };\n        type ecomV1CheckoutBuyerInfoIdOneOf = {\n            /**\n             * Member ID (if site visitor is a site member).\n             */\n            memberId?: string;\n            /**\n             * + When `true` - checkout doesn't have an owner yet and anyone can access it. The first to access it will be new owner.\n             * + If `false`, the value in `checkout.createdBy` is the owner.\n             */\n            openAccess?: boolean;\n            /**\n             * Visitor ID (if site visitor is **not** a member).\n             */\n            visitorId?: string;\n        };\n        type ecomV1CheckoutCalculationErrors = {\n            /**\n             * Carrier errors.\n             */\n            carrierErrors?: wix_ecom_backend.Events.ecomV1CheckoutCarrierErrors;\n            /**\n             * Coupon calculation error.\n             */\n            couponCalculationError?: wix_ecom_backend.Events.ecomV1CheckoutDetails;\n            /**\n             * Discount Rule calculation error.\n             */\n            discountsCalculationError?: wix_ecom_backend.Events.ecomV1CheckoutDetails;\n            /**\n             * General shipping calculation error.\n             */\n            generalShippingCalculationError?: wix_ecom_backend.Events.ecomV1CheckoutDetails;\n            /**\n             * Gift card calculation error.\n             */\n            giftCardCalculationError?: wix_ecom_backend.Events.ecomV1CheckoutDetails;\n            /**\n             * Membership payment methods calculation errors\n             * For example, will indicate that a line item that must be paid with membership payment doesn't have one or selected memberships are invalid\n             */\n            membershipError?: wix_ecom_backend.Events.ecomV1CheckoutDetails;\n            /**\n             * Order validation errors.\n             */\n            orderValidationErrors?: Array<wix_ecom_backend.Events.ecomV1CheckoutApplicationError>;\n            /**\n             * Tax calculation error.\n             */\n            taxCalculationError?: wix_ecom_backend.Events.ecomV1CheckoutDetails;\n        };\n        type ecomV1CheckoutCalculationErrorsShippingCalculationErrorOneOf = {\n            /**\n             * Carrier errors.\n             */\n            carrierErrors?: wix_ecom_backend.Events.ecomV1CheckoutCarrierErrors;\n            /**\n             * General shipping calculation error.\n             */\n            generalShippingCalculationError?: wix_ecom_backend.Events.ecomV1CheckoutDetails;\n        };\n        type ecomV1CheckoutCarrierError = {\n            /**\n             * Carrier ID.\n             */\n            carrierId?: string;\n            /**\n             * Error details.\n             */\n            error?: wix_ecom_backend.Events.ecomV1CheckoutDetails;\n        };\n        type ecomV1CheckoutCarrierErrors = {\n            /**\n             * Carrier errors.\n             */\n            errors?: Array<wix_ecom_backend.Events.ecomV1CheckoutCarrierError>;\n        };\n        type ecomV1CheckoutCarrierServiceOption = {\n            /**\n             * Carrier ID.\n             */\n            carrierId?: string;\n            /**\n             * Shipping options offered by this carrier for this request.\n             */\n            shippingOptions?: Array<wix_ecom_backend.Events.ecomV1CheckoutShippingOption>;\n        };\n        type ecomV1CheckoutCatalogReference = {\n            /**\n             * ID of the catalog app. For example, the Wix Stores `appId`, or the 3rd-party `appId`.\n             */\n            appId?: string;\n            /**\n             * ID of the item within its Wix or 3rd-party catalog. For example, `productId` for Wix Stores or `eventId` for Wix Events.\n             */\n            catalogItemId?: string;\n            /**\n             * Additional info in key:value form. For example, `{\"options\":{\"Size\": \"M\", \"Color\": \"Red\"}}` or `{\"variantId\": \"\"}`.\n             */\n            options?: Object;\n        };\n        type ecomV1CheckoutChannelInfo = {\n            /**\n             * Sales channel that submitted the subscription\n             */\n            type?: string;\n        };\n        type ecomV1CheckoutChargeDetails = {\n            /**\n             * Discount applied for this line item\n             */\n            discount?: number;\n            /**\n             * price of line item (depends on subscription option)\n             */\n            price?: number;\n            /**\n             * Tax applied for this line item\n             */\n            tax?: number;\n            /**\n             * Is tax applied for this line item\n             */\n            taxIncludedInPrice?: boolean;\n            /**\n             * Total price charged to the customer (for this line items) after computation of quantity and discount\n             */\n            totalPrice?: number;\n        };\n        type ecomV1CheckoutCheckout = {\n            /**\n             * Date and time the checkout was created.\n             */\n            _createdDate?: Date;\n            /**\n             * Checkout ID.\n             */\n            _id?: string;\n            /**\n             * Date and time the checkout was updated.\n             */\n            _updatedDate?: Date;\n            /**\n             * Additional Fees\n             */\n            additionalFees?: Array<wix_ecom_backend.Events.ecomV1CheckoutAdditionalFee>;\n            /**\n             * Applied discounts.\n             */\n            appliedDiscounts?: Array<wix_ecom_backend.Events.ecomV1CheckoutAppliedDiscount>;\n            /**\n             * Billing information.\n             */\n            billingInfo?: wix_ecom_backend.Events.ecomV1CheckoutAddressWithContact;\n            /**\n             * Buyer information.\n             */\n            buyerInfo?: wix_ecom_backend.Events.ecomV1CheckoutBuyerInfo;\n            /**\n             * Language for communication with the buyer. Defaults to the site language.\n             * For a site that supports multiple languages, this is the language the buyer selected.\n             */\n            buyerLanguage?: string;\n            /**\n             * [Buyer note](https://support.wix.com/en/article/wix-stores-viewing-buyer-notes) left by the customer.\n             */\n            buyerNote?: string;\n            /**\n             * Errors when calculating totals.\n             */\n            calculationErrors?: wix_ecom_backend.Events.ecomV1CheckoutCalculationErrors;\n            /**\n             * Sales channel that submitted the order. \"WIX_APP_STORE\" refers to the Wix mobile app.\n             */\n            channelType?: string;\n            /**\n             * Whether an order was successfully created from this checkout.\n             * For an order to be successful, it must be successfully paid for (unless the total is 0).\n             */\n            completed?: boolean;\n            /**\n             * All the converted prices are presented in this currency.\n             */\n            conversionCurrency?: string;\n            /**\n             * ID of the checkout's initiator.\n             */\n            createdBy?: wix_ecom_backend.Events.ecomV1CheckoutCreatedBy;\n            /**\n             * Currency used for pricing in this store.\n             */\n            currency?: string;\n            /**\n             * Custom fields.\n             */\n            customFields?: Array<wix_ecom_backend.Events.ecomV1CheckoutCustomField>;\n            /**\n             * Applied gift card details.\n             */\n            giftCard?: wix_ecom_backend.Events.ecomV1CheckoutGiftCard;\n            /**\n             * Line items.\n             */\n            lineItems?: Array<wix_ecom_backend.Events.ecomV1CheckoutLineItem>;\n            /**\n             * Information about valid and invalid memberships, and which ones are selected for usage\n             */\n            membershipOptions?: wix_ecom_backend.Events.ecomV1CheckoutMembershipOptions;\n            /**\n             * Remaining amount for the order to be fully paid.\n             */\n            payLater?: wix_ecom_backend.Events.ecomV1CheckoutPriceSummary;\n            /**\n             * Minimal amount to pay in order to place the order.\n             */\n            payNow?: wix_ecom_backend.Events.ecomV1CheckoutPriceSummary;\n            /**\n             * Calculated price summary for the checkout.\n             */\n            priceSummary?: wix_ecom_backend.Events.ecomV1CheckoutPriceSummary;\n            /**\n             * Shipping information.\n             */\n            shippingInfo?: wix_ecom_backend.Events.ecomV1CheckoutShippingInfo;\n            /**\n             * Site language in which original values are shown.\n             */\n            siteLanguage?: string;\n            /**\n             * Whether tax is included in line item prices.\n             */\n            taxIncludedInPrice?: boolean;\n            /**\n             * Tax summary.\n             */\n            taxSummary?: wix_ecom_backend.Events.ecomV1CheckoutTaxSummary;\n            /**\n             * Weight measurement unit - defaults to site's weight unit.\n             */\n            weightUnit?: string;\n        };\n        type ecomV1CheckoutCheckoutCompleted = {\n            data: wix_ecom_backend.Events.ecomV1CheckoutCheckoutMarkedAsCompleted;\n            metadata: wix_ecom_backend.Events.ecomV1CheckoutBackendEventMetadata;\n        };\n        type ecomV1CheckoutCheckoutCreated = {\n            entity: wix_ecom_backend.Events.ecomV1CheckoutCheckout;\n            metadata: wix_ecom_backend.Events.ecomV1CheckoutBackendEventMetadata;\n        };\n        type ecomV1CheckoutCheckoutMarkedAsCompleted = {\n            checkout?: wix_ecom_backend.Events.ecomV1CheckoutCheckout;\n        };\n        type ecomV1CheckoutCheckoutUpdated = {\n            entity: wix_ecom_backend.Events.ecomV1CheckoutCheckout;\n            metadata: wix_ecom_backend.Events.ecomV1CheckoutBackendEventMetadata;\n        };\n        type ecomV1CheckoutColor = {\n            /**\n             * Optional - HEX or RGB color code for display.\n             */\n            code?: string;\n            /**\n             * Optional - Description line color name in site's default language.\n             */\n            original?: string;\n            /**\n             * Optional - Translated description line color name according to buyer language. Defaults to `original` when not provided.\n             */\n            translated?: string;\n        };\n        type ecomV1CheckoutCommonVatId = {\n            /**\n             * Customer's tax ID\n             */\n            _id?: string;\n            /**\n             * tax type\n             */\n            type?: string;\n        };\n        type ecomV1CheckoutCoupon = {\n            /**\n             * Coupon ID.\n             */\n            _id?: string;\n            /**\n             * Coupon value.\n             */\n            amount?: wix_ecom_backend.Events.ecomV1CheckoutMultiCurrencyPrice;\n            /**\n             * Coupon code.\n             */\n            code?: string;\n            /**\n             * Coupon name.\n             */\n            name?: string;\n        };\n        type ecomV1CheckoutCreateCheckoutRequest = {\n            /**\n             * Sales channel that submitted the order.\n             */\n            channelType?: string;\n            /**\n             * Checkout information.\n             */\n            checkoutInfo?: wix_ecom_backend.Events.ecomV1CheckoutCheckout;\n            /**\n             * Coupon code.\n             */\n            couponCode?: string;\n            /**\n             * Custom line items to be added to checkout.\n             */\n            customLineItems?: Array<wix_ecom_backend.Events.ecomV1CheckoutCustomLineItem>;\n            /**\n             * Gift card code.\n             */\n            giftCardCode?: string;\n            /**\n             * Line items to be added to checkout.\n             */\n            lineItems?: Array<wix_ecom_backend.Events.ecomV1CheckoutLineItem>;\n            /**\n             * Merchant discounts to apply to specific line items. If no `lineItemIds` are passed, the discount will be applied to the whole checkout.\n             */\n            merchantDiscounts?: Array<wix_ecom_backend.Events.ecomV1CheckoutMerchantDiscountInput>;\n        };\n        type ecomV1CheckoutCreateCheckoutResponse = {\n            /**\n             * Newly created checkout.\n             */\n            checkout?: wix_ecom_backend.Events.ecomV1CheckoutCheckout;\n        };\n        type ecomV1CheckoutCreateOrderAndChargeRequest = {\n            /**\n             * Checkout ID.\n             */\n            _id: string;\n            /**\n             * Payment token.\n             */\n            paymentToken?: string;\n            /**\n             * Custom URL params to be added to redirect URLs.\n             */\n            urlParams?: Record<string, string>;\n        };\n        type ecomV1CheckoutCreateOrderAndChargeResponse = {\n            /**\n             * ID of newly created order.\n             */\n            orderId?: string;\n            /**\n             * The payment gateway is cashier.\n             * payment_gateway_order_id will be returned given that money was charged.\n             * In some cases, money will not be charged:\n             * If the total price is 0 - For example, could be a free item or a an item with 100% discount\n             * If the total price is not 0, but the payment is covered by alternative payment methods such as gift card\n             */\n            paymentGatewayOrderId?: string;\n            /**\n             * Payment response token.\n             */\n            paymentResponseToken?: string;\n            /**\n             * ID of newly created subscription.\n             */\n            subscriptionId?: string;\n        };\n        type ecomV1CheckoutCreateOrderAndChargeResponseIdOneOf = {\n            /**\n             * ID of newly created order.\n             */\n            orderId?: string;\n            /**\n             * ID of newly created subscription.\n             */\n            subscriptionId?: string;\n        };\n        type ecomV1CheckoutCreateOrderRequest = {\n            /**\n             * Checkout ID.\n             */\n            _id: string;\n            /**\n             * Custom URL params to be added to redirect URLs.\n             */\n            urlParams?: Record<string, string>;\n        };\n        type ecomV1CheckoutCreateOrderResponse = {\n            /**\n             * ID of newly created order (ecom order ID)\n             */\n            orderId?: string;\n            /**\n             * The payment gateway is cashier.\n             * payment_gateway_order_id will be returned given that money needs to be charged.\n             * In some cases, money should not be charged:\n             * If the total price is 0 - For example, could be a free item or a an item with 100% discount\n             * If the total price is not 0, but the payment is covered by alternative payment methods such as gift card\n             */\n            paymentGatewayOrderId?: string;\n            /**\n             * ID of newly created subscription.\n             */\n            subscriptionId?: string;\n        };\n        type ecomV1CheckoutCreateOrderResponseIdOneOf = {\n            /**\n             * ID of newly created order (ecom order ID)\n             */\n            orderId?: string;\n            /**\n             * ID of newly created subscription.\n             */\n            subscriptionId?: string;\n        };\n        type ecomV1CheckoutCreatedBy = {\n            /**\n             * App ID - when the order was created by an external application or Wix service.\n             */\n            appId?: string;\n            /**\n             * Member ID - when the order was created by a **logged in** site visitor.\n             */\n            memberId?: string;\n            /**\n             * User ID - when the order was created by a Wix user on behalf of a buyer.\n             * For example, via POS (point of service).\n             */\n            userId?: string;\n            /**\n             * Visitor ID - when the order was created by a site visitor that was **not** logged in.\n             */\n            visitorId?: string;\n        };\n        type ecomV1CheckoutCreatedByIdOneOf = {\n            /**\n             * App ID - when the order was created by an external application or Wix service.\n             */\n            appId?: string;\n            /**\n             * Member ID - when the order was created by a **logged in** site visitor.\n             */\n            memberId?: string;\n            /**\n             * User ID - when the order was created by a Wix user on behalf of a buyer.\n             * For example, via POS (point of service).\n             */\n            userId?: string;\n            /**\n             * Visitor ID - when the order was created by a site visitor that was **not** logged in.\n             */\n            visitorId?: string;\n        };\n        type ecomV1CheckoutCustomField = {\n            /**\n             * Custom field title.\n             */\n            title?: string;\n            /**\n             * Translated custom field title.\n             */\n            translatedTitle?: string;\n            /**\n             * Custom field value.\n             */\n            value?: any;\n        };\n        type ecomV1CheckoutCustomLineItem = {\n            /**\n             * Custom line item ID. Defaults to an auto-generated ID.\n             */\n            _id?: string;\n            /**\n             * Custom line item description lines. Used for display purposes for the cart, checkout and order.\n             */\n            descriptionLines?: Array<wix_ecom_backend.Events.ecomV1CheckoutDescriptionLine>;\n            /**\n             * Custom line item's media.\n             */\n            media?: string;\n            /**\n             * Custom line item name.\n             */\n            name?: string;\n            /**\n             * Custom line item price.\n             */\n            price?: string;\n            /**\n             * Custom line item quantity.\n             */\n            quantity?: number;\n        };\n        type ecomV1CheckoutCustomTextFieldSelection = {\n            /**\n             * Custom text field name\n             */\n            title?: string;\n            /**\n             * Custom text field value\n             */\n            value?: string;\n        };\n        type ecomV1CheckoutDeliveryLogistics = {\n            /**\n             * Expected delivery time, in free text. For example, \"3-5 business days\".\n             */\n            deliveryTime?: string;\n            /**\n             * Instructions for caller, e.g for pickup: \"Please deliver during opening hours, and please don't park in disabled parking spot\".\n             */\n            instructions?: string;\n            /**\n             * Pickup details.\n             */\n            pickupDetails?: wix_ecom_backend.Events.ecomV1CheckoutPickupDetails;\n        };\n        type ecomV1CheckoutDescription = {\n            /**\n             * Subscription option description.\n             */\n            original?: string;\n            /**\n             * Translated subscription option name.\n             */\n            translated?: string;\n        };\n        type ecomV1CheckoutDescriptionLine = {\n            /**\n             * Description line color value.\n             */\n            colorInfo?: wix_ecom_backend.Events.ecomV1CheckoutColor;\n            /**\n             * Description line name.\n             */\n            name?: wix_ecom_backend.Events.ecomV1CheckoutDescriptionLineName;\n            /**\n             * Description line plain text value.\n             */\n            plainText?: wix_ecom_backend.Events.ecomV1CheckoutPlainTextValue;\n        };\n        type ecomV1CheckoutDescriptionLineDescriptionLineValueOneOf = {};\n        type ecomV1CheckoutDescriptionLineName = {\n            /**\n             * Optional - Description line name in site's default language.\n             */\n            original?: string;\n            /**\n             * Optional - Translated description line item according to buyer language. Defaults to `original` when not provided.\n             */\n            translated?: string;\n        };\n        type ecomV1CheckoutDescriptionLineValueOneOf = {\n            /**\n             * Description line color value.\n             */\n            colorInfo?: wix_ecom_backend.Events.ecomV1CheckoutColor;\n            /**\n             * Description line plain text value.\n             */\n            plainText?: wix_ecom_backend.Events.ecomV1CheckoutPlainTextValue;\n        };\n        type ecomV1CheckoutDetails = {\n            applicationError?: wix_ecom_backend.Events.ecomV1CheckoutApplicationError;\n            /**\n             * deprecated in API's - to enable migration from rendering arbitrary tracing to rest response\n             */\n            tracing?: Record<string, string>;\n            validationError?: wix_ecom_backend.Events.ecomV1CheckoutValidationError;\n        };\n        type ecomV1CheckoutDetailsKindOneOf = {\n            applicationError?: wix_ecom_backend.Events.ecomV1CheckoutApplicationError;\n            validationError?: wix_ecom_backend.Events.ecomV1CheckoutValidationError;\n        };\n        type ecomV1CheckoutDiscount = {\n            /**\n             * Discount type.\n             */\n            type?: string;\n            /**\n             * Discount value.\n             */\n            value?: number;\n        };\n        type ecomV1CheckoutDiscountRule = {\n            /**\n             * Discount rule ID\n             */\n            _id?: string;\n            /**\n             * Discount value.\n             */\n            amount?: wix_ecom_backend.Events.ecomV1CheckoutMultiCurrencyPrice;\n            /**\n             * Discount rule name\n             */\n            name?: wix_ecom_backend.Events.ecomV1CheckoutDiscountRuleName;\n        };\n        type ecomV1CheckoutDiscountRuleName = {\n            /**\n             * Original discount rule name (in site's default language).\n             */\n            original?: string;\n            /**\n             * Translated discount rule name according to buyer language. Defaults to `original` when not provided.\n             */\n            translated?: string;\n        };\n        type ecomV1CheckoutDomainEvent = {\n            /**\n             * random GUID so clients can tell if event was already handled\n             */\n            _id?: string;\n            actionEvent?: wix_ecom_backend.Events.ecomV1CheckoutActionEvent;\n            createdEvent?: wix_ecom_backend.Events.ecomV1CheckoutEntityCreatedEvent;\n            deletedEvent?: wix_ecom_backend.Events.ecomV1CheckoutEntityDeletedEvent;\n            /**\n             * Assumes actions are also always typed to an entity_type\n             * Example: wix.stores.catalog.product, wix.bookings.session, wix.payments.transaction\n             */\n            entityFqdn?: string;\n            /**\n             * Assuming that all messages including Actions have id\n             * Example: The id of the specific order, the id of a specific campaign\n             */\n            entityId?: string;\n            /**\n             * The time of the event. Useful if there was a delay in dipatching\n             */\n            eventTime?: Date;\n            extendedFieldsUpdatedEvent?: wix_ecom_backend.Events.ecomV1CheckoutExtendedFieldsUpdatedEvent;\n            /**\n             * If present, indicates the action that triggered the event.\n             */\n            originatedFrom?: string;\n            /**\n             * This is top level to ease client code dipatching of messages (switch on entity_fqdn+slug)\n             * This is although the created/updated/deleted notion is duplication of the oneof types\n             * Example: created/updated/deleted/started/completed/email_opened\n             */\n            slug?: string;\n            /**\n             * A field that should be set if this event was triggered by an anonymize request.\n             * For example you must set it to true when sending an event as a result of a GDPR right to be forgotten request.\n             * NOTE: This field is not relevant for `EntityCreatedEvent` but is located here for better ergonomics of consumers.\n             */\n            triggeredByAnonymizeRequest?: boolean;\n            updatedEvent?: wix_ecom_backend.Events.ecomV1CheckoutEntityUpdatedEvent;\n        };\n        type ecomV1CheckoutDomainEventBodyOneOf = {\n            actionEvent?: wix_ecom_backend.Events.ecomV1CheckoutActionEvent;\n            createdEvent?: wix_ecom_backend.Events.ecomV1CheckoutEntityCreatedEvent;\n            deletedEvent?: wix_ecom_backend.Events.ecomV1CheckoutEntityDeletedEvent;\n            extendedFieldsUpdatedEvent?: wix_ecom_backend.Events.ecomV1CheckoutExtendedFieldsUpdatedEvent;\n            updatedEvent?: wix_ecom_backend.Events.ecomV1CheckoutEntityUpdatedEvent;\n        };\n        type ecomV1CheckoutEmpty = {};\n        type ecomV1CheckoutEntityCreatedEvent = {\n            entityAsJson?: string;\n        };\n        type ecomV1CheckoutEntityDeletedEvent = {};\n        type ecomV1CheckoutEntityUpdatedEvent = {\n            /**\n             * Since platformized APIs only expose PATCH and not PUT we can't assume that the fields sent from the client are the actual diff.\n             * This means that to generate a list of changed fields (as opposed to sent fields) one needs to traverse both objects.\n             * We don't want to impose this on all developers and so we leave this traversal to the notification recipients which need it.\n             */\n            currentEntityAsJson?: string;\n        };\n        type ecomV1CheckoutExtendedFieldsUpdatedEvent = {\n            currentEntityAsJson?: string;\n        };\n        type ecomV1CheckoutFieldViolation = {\n            data?: Object;\n            description?: string;\n            field?: string;\n            /**\n             * applicable when violated_rule=OTHER\n             */\n            ruleName?: string;\n            /**\n             * Suppoerted values:\n             * - `'DECIMAL_GT'`\n             * - `'DECIMAL_GTE'`\n             * - `'DECIMAL_LT'`\n             * - `'DECIMAL_LTE'`\n             * - `'DECIMAL_MAX_SCALE'`\n             * - `'FORMAT'`\n             * - `'INVALID_ENUM_VALUE'`\n             * - `'MAX'`\n             * - `'MAX_LENGTH'`\n             * - `'MAX_SIZE'`\n             * - `'MIN'`\n             * - `'MIN_LENGTH'`\n             * - `'MIN_SIZE'`\n             * - `'OTHER'`\n             * - `'REQUIRED_FIELD'`\n             * - `'VALIDATION'`\n             */\n            violatedRule?: string;\n        };\n        type ecomV1CheckoutFullAddressContactDetails = {\n            /**\n             * Company name.\n             */\n            company?: string;\n            /**\n             * First name.\n             */\n            firstName?: string;\n            /**\n             * Last name.\n             */\n            lastName?: string;\n            /**\n             * Phone number.\n             */\n            phone?: string;\n            /**\n             * Tax information (for Brazil only). If ID is provided, `vatId.type` must also be set - UNSPECIFIED is not allowed.\n             */\n            vatId?: wix_ecom_backend.Events.ecomV1CheckoutCommonVatId;\n        };\n        type ecomV1CheckoutFullName = {\n            /**\n             * Customer's first name\n             */\n            firstName?: string;\n            /**\n             * Customer's last name\n             */\n            lastName?: string;\n        };\n        type ecomV1CheckoutGetCheckoutRequest = {\n            /**\n             * Checkout ID.\n             */\n            _id: string;\n        };\n        type ecomV1CheckoutGetCheckoutResponse = {\n            /**\n             * The requested checkout.\n             */\n            checkout?: wix_ecom_backend.Events.ecomV1CheckoutCheckout;\n        };\n        type ecomV1CheckoutGetWixCheckoutUrlRequest = {\n            /**\n             * Checkout ID.\n             */\n            _id: string;\n        };\n        type ecomV1CheckoutGetWixCheckoutUrlResponse = {\n            /**\n             * Checkout URL.\n             */\n            checkoutUrl?: string;\n        };\n        type ecomV1CheckoutGiftCard = {\n            /**\n             * Gift Card ID.\n             */\n            _id?: string;\n            /**\n             * Gift card value.\n             */\n            amount?: wix_ecom_backend.Events.ecomV1CheckoutMultiCurrencyPrice;\n            /**\n             * App ID of the gift card provider.\n             */\n            appId?: string;\n            /**\n             * Gift card obfuscated code.\n             */\n            obfuscatedCode?: string;\n        };\n        type ecomV1CheckoutGroup = {\n            /**\n             * Item ID (when the coupon scope is limited to just one item).\n             */\n            entityId?: string;\n            /**\n             * Coupon scope's group (e.g., product or collection in Wix Stores). See [valid scope values](https://dev.wix.com/api/rest/coupons/coupons/valid-scope-values).\n             */\n            name?: string;\n        };\n        type ecomV1CheckoutInvalidMembership = {\n            /**\n             * Membership details.\n             */\n            membership?: wix_ecom_backend.Events.ecomV1CheckoutMembership;\n            /**\n             * Reason why this membership is invalid and cannot be used.\n             */\n            reason?: string;\n        };\n        type ecomV1CheckoutItemAvailabilityInfo = {\n            /**\n             * Quantity available.\n             */\n            quantityAvailable?: number;\n            /**\n             * Item availability status. Supported Values:\n             * + `\"NOT_FOUND\"`: Item does not exist\n             * + `\"NOT_AVAILABLE\"`: Item not in stock\n             * + `\"PARTIALLY_AVAILABLE\"`: Available quantity is less than requested\n             */\n            status?: string;\n        };\n        type ecomV1CheckoutItemTaxFullDetails = {\n            /**\n             * If breakdown exists, the sum of rates in the breakdown must equal `tax_rate`.\n             */\n            rateBreakdown?: Array<wix_ecom_backend.Events.ecomV1CheckoutTaxRateBreakdown>;\n            /**\n             * Tax rate %, as a decimal point between 0 and 1.\n             */\n            taxRate?: string;\n            /**\n             * Amount for which tax is calculated.\n             */\n            taxableAmount?: wix_ecom_backend.Events.ecomV1CheckoutMultiCurrencyPrice;\n            /**\n             * Calculated tax, based on `taxable_amount` and `tax_rate`.\n             */\n            totalTax?: wix_ecom_backend.Events.ecomV1CheckoutMultiCurrencyPrice;\n        };\n        type ecomV1CheckoutItemType = {\n            /**\n             * Custom item type.\n             */\n            custom?: string;\n            /**\n             * Preset item type.\n             */\n            preset?: string;\n        };\n        type ecomV1CheckoutItemTypeItemTypeDataOneOf = {\n            /**\n             * Custom item type.\n             */\n            custom?: string;\n            /**\n             * Preset item type.\n             */\n            preset?: string;\n        };\n        type ecomV1CheckoutLineItem = {\n            /**\n             * Line item ID.\n             */\n            _id?: string;\n            /**\n             * Item availability details.\n             */\n            availability?: wix_ecom_backend.Events.ecomV1CheckoutItemAvailabilityInfo;\n            /**\n             * Catalog and item reference info. See [Catalog SPI](https://bo.wix.com/wix-docs/rest/ecommerce/catalog-spi/introduction) for more details.\n             * Empty in the case of a custom line item.\n             */\n            catalogReference?: wix_ecom_backend.Events.ecomV1CheckoutCatalogReference;\n            /**\n             * Partial payment for the given item to be paid upfront during the checkout. Eligible for catalog items with type `DEPOSIT_ONLINE` only.\n             */\n            depositAmount?: wix_ecom_backend.Events.ecomV1CheckoutMultiCurrencyPrice;\n            /**\n             * Line item description lines. Used for display purposes for the cart, checkout and order.\n             */\n            descriptionLines?: Array<wix_ecom_backend.Events.ecomV1CheckoutDescriptionLine>;\n            /**\n             * Discount for this line item's entire quantity.\n             */\n            discount?: wix_ecom_backend.Events.ecomV1CheckoutMultiCurrencyPrice;\n            /**\n             * Item price **before** catalog-defined discount. Defaults to `price` when not provided.\n             */\n            fullPrice?: wix_ecom_backend.Events.ecomV1CheckoutMultiCurrencyPrice;\n            /**\n             * Item type. Either a preset type or custom.\n             */\n            itemType?: wix_ecom_backend.Events.ecomV1CheckoutItemType;\n            /**\n             * Total price **after** catalog-defined discount and line item discounts.\n             */\n            lineItemPrice?: wix_ecom_backend.Events.ecomV1CheckoutMultiCurrencyPrice;\n            /**\n             * Line item image details.\n             */\n            media?: string;\n            /**\n             * Type of selected payment option for current item. Defaults to `FULL_PAYMENT_ONLINE`.\n             * + `FULL_PAYMENT_ONLINE` - The entire payment for this item happens as part of the checkout.\n             * + `FULL_PAYMENT_OFFLINE` - The entire payment for this item happens after the checkout. For example, when using cash, check, or other offline payment methods.\n             * + `MEMBERSHIP` - Payment for this item is done by charging a membership. When this option is used, `lineItem.price.amount` is 0.\n             * + `DEPOSIT_ONLINE` -  Partial payment for the given item to be paid upfront during the checkout. Amount to be paid is defined by deposit_amount field.\n             */\n            paymentOption?: string;\n            /**\n             * Physical properties of the item. When relevant, contains information such as SKU, item weight, and shippability.\n             */\n            physicalProperties?: wix_ecom_backend.Events.ecomV1CheckoutPhysicalProperties;\n            /**\n             * Item price **after** catalog-defined discount and line item discounts.\n             */\n            price?: wix_ecom_backend.Events.ecomV1CheckoutMultiCurrencyPrice;\n            /**\n             * Item price **before** line item discounts and **after** catalog-defined discount. Defaults to `price` when not provided.\n             */\n            priceBeforeDiscounts?: wix_ecom_backend.Events.ecomV1CheckoutMultiCurrencyPrice;\n            /**\n             * Additional description for the price. For example, when price is 0 but additional details about the actual price are needed - \"Starts at $67\".\n             */\n            priceDescription?: wix_ecom_backend.Events.ecomV1CheckoutPriceDescription;\n            /**\n             * Item name.\n             * + Stores - `product.name`\n             * + Bookings - `service.info.name`\n             * + Events - `ticket.name`\n             */\n            productName?: wix_ecom_backend.Events.ecomV1CheckoutProductName;\n            /**\n             * Item quantity.\n             */\n            quantity?: number;\n            /**\n             * In cases where `catalogReference.catalogItemId` is NOT the actual catalog item ID, this field will return the true item's ID.\n             * + For example, for Wix Bookings, `catalogReference.catalogItemId` is the booking ID. Therefore this value is set to the service ID.\n             * + In most cases, this field has the same value as `catalogReference.catalogItemId`.\n             * + Used in membership validation.\n             */\n            rootCatalogItemId?: string;\n            /**\n             * Service properties. When relevant, this contains information such as date and number of participants.\n             */\n            serviceProperties?: wix_ecom_backend.Events.ecomV1CheckoutServiceProperties;\n            /**\n             * Tax details for this line item.\n             */\n            taxDetails?: wix_ecom_backend.Events.ecomV1CheckoutItemTaxFullDetails;\n            /**\n             * Total price after all discounts and tax.\n             */\n            totalPriceAfterTax?: wix_ecom_backend.Events.ecomV1CheckoutMultiCurrencyPrice;\n            /**\n             * Total price after all discounts, before tax.\n             */\n            totalPriceBeforeTax?: wix_ecom_backend.Events.ecomV1CheckoutMultiCurrencyPrice;\n            /**\n             * URL to the item's page on the site.\n             */\n            url?: string;\n        };\n        type ecomV1CheckoutMarkCheckoutAsCompletedRequest = {\n            /**\n             * Checkout ID.\n             */\n            _id: string;\n        };\n        type ecomV1CheckoutMarkCheckoutAsCompletedResponse = {};\n        type ecomV1CheckoutMediaItem = {\n            /**\n             * Media ID (for media items previously saved in Wix Media)\n             */\n            _id?: string;\n            /**\n             * Alternative text for presentation when media cannot be displayed\n             */\n            altText?: string;\n            /**\n             * Media external URL\n             */\n            externalImageUrl?: string;\n            /**\n             * Media item height\n             */\n            height?: number;\n            /**\n             * Media type\n             */\n            mediaType?: string;\n            /**\n             * Media URL\n             */\n            url?: string;\n            /**\n             * Media item width\n             */\n            width?: number;\n        };\n        type ecomV1CheckoutMembership = {\n            /**\n             * Membership ID.\n             */\n            _id?: string;\n            /**\n             * Additional data about this membership.\n             */\n            additionalData?: Object;\n            /**\n             * ID of the application providing this payment option.\n             */\n            appId?: string;\n            /**\n             * Optional - For a membership that has limited credits, information about credit usage.\n             */\n            credits?: wix_ecom_backend.Events.ecomV1CheckoutMembershipPaymentCredits;\n            /**\n             * Optional - TMembership expiry date.\n             */\n            expirationDate?: Date;\n            /**\n             * Line item IDs which are \"paid\" for by this membership.\n             */\n            lineItemIds?: Array<string>;\n            /**\n             * The name of this membership.\n             */\n            name?: wix_ecom_backend.Events.ecomV1CheckoutMembershipName;\n        };\n        type ecomV1CheckoutMembershipName = {\n            /**\n             * The name of this membership\n             */\n            original?: string;\n            /**\n             * Optional - Translated name of this membership. Defaults to `original` when not provided.\n             */\n            translated?: string;\n        };\n        type ecomV1CheckoutMembershipOptions = {\n            /**\n             * List of payment options that can be used\n             */\n            eligibleMemberships?: Array<wix_ecom_backend.Events.ecomV1CheckoutMembership>;\n            /**\n             * List of payment options that are owned by the member, but cannot be used due to reason provided\n             */\n            invalidMemberships?: Array<wix_ecom_backend.Events.ecomV1CheckoutInvalidMembership>;\n            /**\n             * The selected payment options and which line items they apply to\n             */\n            selectedMemberships?: wix_ecom_backend.Events.ecomV1CheckoutSelectedMemberships;\n        };\n        type ecomV1CheckoutMembershipPaymentCredits = {\n            /**\n             * How much credit remained for this membership\n             */\n            remaining?: number;\n            /**\n             * How much credit this membership has in total\n             */\n            total?: number;\n        };\n        type ecomV1CheckoutMerchantDiscount = {\n            /**\n             * Discount value.\n             */\n            amount?: wix_ecom_backend.Events.ecomV1CheckoutMultiCurrencyPrice;\n        };\n        type ecomV1CheckoutMerchantDiscountInput = {\n            /**\n             * Discount amount.\n             */\n            amount?: string;\n            /**\n             * IDs of line items the discount applies to.\n             */\n            lineItemIds?: Array<string>;\n        };\n        type ecomV1CheckoutMultiCurrencyPrice = {\n            /**\n             * Amount.\n             */\n            amount?: string;\n            /**\n             * Converted amount.\n             */\n            convertedAmount?: string;\n            /**\n             * Amount formatted with currency symbol.\n             */\n            formattedAmount?: string;\n            /**\n             * Converted amount formatted with currency symbol.\n             */\n            formattedConvertedAmount?: string;\n        };\n        type ecomV1CheckoutOptionSelection = {\n            /**\n             * Option name\n             */\n            option?: string;\n            /**\n             * Selected choice for this option\n             */\n            selection?: string;\n        };\n        type ecomV1CheckoutOrderCreated = {\n            /**\n             * Order archive status\n             */\n            archived?: boolean;\n            /**\n             * Customer information\n             */\n            buyerInfo?: wix_ecom_backend.Events.ecomV1CheckoutV2BuyerInfo;\n            /**\n             * Currency used for pricing in this store\n             */\n            currency?: string;\n            /**\n             * Order creation date\n             */\n            dateCreated?: Date;\n            /**\n             * Order fulfillment status\n             */\n            fulfillmentStatus?: string;\n            /**\n             * ID displayed in the owner's store (auto generated)\n             */\n            number?: string;\n            /**\n             * Order ID (auto generated upon order creation)\n             */\n            orderId?: string;\n            /**\n             * Order payment status\n             */\n            paymentStatus?: string;\n            /**\n             * Whether the order was read by the store owner\n             */\n            read?: boolean;\n            /**\n             * Totals for order's line items\n             */\n            totals?: wix_ecom_backend.Events.ecomV1CheckoutTotals;\n            /**\n             * Weight unit used in this store\n             */\n            weightUnit?: string;\n        };\n        type ecomV1CheckoutOrdersExperiments = {\n            epCommitTax?: boolean;\n            moveBuyerOrderConfirmationEmailToEp?: boolean;\n            moveMerchantEmailToEp?: boolean;\n            producedByEpBridge?: boolean;\n        };\n        type ecomV1CheckoutOtherCharge = {\n            /**\n             * Price of added cost.\n             */\n            price?: wix_ecom_backend.Events.ecomV1CheckoutMultiCurrencyPrice;\n            /**\n             * Type of additional cost.\n             */\n            type?: string;\n        };\n        type ecomV1CheckoutPhysicalProperties = {\n            /**\n             * Whether this line item is shippable.\n             */\n            shippable?: boolean;\n            /**\n             * Stock-keeping unit. Learn more about [SKUs](https://www.wix.com/encyclopedia/definition/stock-keeping-unit-sku).\n             */\n            sku?: string;\n            /**\n             * Line item weight. Measurement unit (KG or LB) is taken from `order.weightUnit`.\n             */\n            weight?: number;\n        };\n        type ecomV1CheckoutPickupAddress = {\n            /**\n             * Address\n             */\n            addressLine?: string;\n            /**\n             * City\n             */\n            city?: string;\n            /**\n             * Country code (2 letters)\n             */\n            country?: string;\n            /**\n             * State/District\n             */\n            subdivision?: string;\n            /**\n             * ZIP/postal code\n             */\n            zipCode?: string;\n        };\n        type ecomV1CheckoutPickupDetails = {\n            /**\n             * Pickup address.\n             */\n            address?: wix_ecom_backend.Events.ecomV1CheckoutApiAddress;\n            /**\n             * Whether the pickup address is that of a business - this may effect tax calculation.\n             */\n            businessLocation?: boolean;\n            /**\n             * Pickup method\n             */\n            pickupMethod?: string;\n        };\n        type ecomV1CheckoutPlainTextValue = {\n            /**\n             * Optional - Description line plain text value in site's default language.\n             */\n            original?: string;\n            /**\n             * Optional - Translated description line plain text value according to buyer language. Defaults to `original` when not provided.\n             */\n            translated?: string;\n        };\n        type ecomV1CheckoutPriceDescription = {\n            /**\n             * Required** - Original price description (in site's default language).\n             */\n            original?: string;\n            /**\n             * Optional - Translated product name according to buyer language. Defaults to `original` when not provided.\n             */\n            translated?: string;\n        };\n        type ecomV1CheckoutPriceSummary = {\n            /**\n             * Total additional fees price.\n             */\n            additionalFees?: wix_ecom_backend.Events.ecomV1CheckoutMultiCurrencyPrice;\n            /**\n             * Total calculated discount value.\n             */\n            discount?: wix_ecom_backend.Events.ecomV1CheckoutMultiCurrencyPrice;\n            /**\n             * Total shipping price, before discounts and before tax.\n             */\n            shipping?: wix_ecom_backend.Events.ecomV1CheckoutMultiCurrencyPrice;\n            /**\n             * Subtotal of all line items, before discounts and before tax.\n             */\n            subtotal?: wix_ecom_backend.Events.ecomV1CheckoutMultiCurrencyPrice;\n            /**\n             * Total tax.\n             */\n            tax?: wix_ecom_backend.Events.ecomV1CheckoutMultiCurrencyPrice;\n            /**\n             * Total price after discounts, gift cards, and tax.\n             */\n            total?: wix_ecom_backend.Events.ecomV1CheckoutMultiCurrencyPrice;\n        };\n        type ecomV1CheckoutProductDetails = {\n            /**\n             * Line item fulfillerId from stores fulfillers. No value means self fulfilled\n             */\n            fulfillerId?: string;\n            /**\n             * Line item type (may be extended)\n             */\n            lineItemType?: string;\n            /**\n             * Line item primary media for preview\n             */\n            mediaItem?: wix_ecom_backend.Events.ecomV1CheckoutMediaItem;\n            /**\n             * Line item name\n             */\n            name?: string;\n            /**\n             * Line item notes\n             */\n            notes?: string;\n            /**\n             * Line item product ID (optional for POS orders)\n             */\n            productId?: string;\n            /**\n             * Line item SKU\n             */\n            sku?: string;\n            /**\n             * Tax group id\n             */\n            taxGroupId?: string;\n            /**\n             * Line item name translated to buyer's language\n             */\n            translatedName?: string;\n            /**\n             * Line item weight\n             */\n            weight?: number;\n        };\n        type ecomV1CheckoutProductName = {\n            /**\n             * Required** - Original product name (in site's default language).\n             */\n            original?: string;\n            /**\n             * Optional - Translated product name according to buyer language. Defaults to `original` when not provided.\n             */\n            translated?: string;\n        };\n        type ecomV1CheckoutRemoveCouponRequest = {\n            /**\n             * Checkout ID.\n             */\n            _id: string;\n        };\n        type ecomV1CheckoutRemoveCouponResponse = {\n            /**\n             * Updated checkout after removal of coupon.\n             */\n            checkout?: wix_ecom_backend.Events.ecomV1CheckoutCheckout;\n        };\n        type ecomV1CheckoutRemoveGiftCardRequest = {\n            /**\n             * Checkout ID.\n             */\n            _id: string;\n        };\n        type ecomV1CheckoutRemoveGiftCardResponse = {\n            /**\n             * Updated checkout after removal of gift card.\n             */\n            checkout?: wix_ecom_backend.Events.ecomV1CheckoutCheckout;\n        };\n        type ecomV1CheckoutRemoveLineItemsRequest = {\n            /**\n             * Checkout ID.\n             */\n            _id: string;\n            /**\n             * IDs of line items to be removed.\n             */\n            lineItemIds: Array<string>;\n        };\n        type ecomV1CheckoutRemoveLineItemsResponse = {\n            /**\n             * Updated checkout after removal of line items.\n             */\n            checkout?: wix_ecom_backend.Events.ecomV1CheckoutCheckout;\n        };\n        type ecomV1CheckoutScope = {\n            /**\n             * Coupon scope's applied group (e.g., event or ticket in Wix Events)\n             */\n            group?: wix_ecom_backend.Events.ecomV1CheckoutGroup;\n            /**\n             * Scope namespace (Wix Stores, Wix Bookings, Wix Events)\n             */\n            namespace?: string;\n        };\n        type ecomV1CheckoutSecuredMedia = {\n            /**\n             * Media ID in media manager.\n             */\n            _id?: string;\n            /**\n             * Original file name.\n             */\n            fileName?: string;\n            /**\n             * File type.\n             */\n            fileType?: string;\n        };\n        type ecomV1CheckoutSelectedCarrierServiceOption = {\n            /**\n             * This carrier's unique ID\n             */\n            carrierId?: string;\n            /**\n             * Unique identifier of selected option. For example, \"usps_std_overnight\".\n             */\n            code?: string;\n            /**\n             * Shipping costs.\n             */\n            cost?: wix_ecom_backend.Events.ecomV1CheckoutSelectedCarrierServiceOptionPrices;\n            /**\n             * Delivery logistics.\n             */\n            logistics?: wix_ecom_backend.Events.ecomV1CheckoutDeliveryLogistics;\n            /**\n             * Other charges\n             */\n            otherCharges?: Array<wix_ecom_backend.Events.ecomV1CheckoutSelectedCarrierServiceOptionOtherCharge>;\n            /**\n             * Were we able to find the requested shipping option, or otherwise we fallback to the default one (the first)\n             */\n            requestedShippingOption?: boolean;\n            /**\n             * Title of the option, such as USPS Standard Overnight Delivery (in the requested locale).\n             * For example, \"Standard\" or \"First-Class Package International\".\n             */\n            title?: string;\n        };\n        type ecomV1CheckoutSelectedCarrierServiceOptionOtherCharge = {\n            /**\n             * Price of added charge.\n             */\n            cost?: wix_ecom_backend.Events.ecomV1CheckoutSelectedCarrierServiceOptionPrices;\n            /**\n             * Details of the charge, such as 'Full Coverage Insurance of up to 80% of value of shipment'.\n             */\n            details?: string;\n            /**\n             * Type of additional cost.\n             */\n            type?: string;\n        };\n        type ecomV1CheckoutSelectedCarrierServiceOptionPrices = {\n            /**\n             * Shipping price before discount and before tax.\n             */\n            price?: wix_ecom_backend.Events.ecomV1CheckoutMultiCurrencyPrice;\n            /**\n             * Tax details.\n             */\n            taxDetails?: wix_ecom_backend.Events.ecomV1CheckoutItemTaxFullDetails;\n            /**\n             * Shipping discount before tax.\n             */\n            totalDiscount?: wix_ecom_backend.Events.ecomV1CheckoutMultiCurrencyPrice;\n            /**\n             * Total shipping price, after discount and after tax.\n             */\n            totalPriceAfterTax?: wix_ecom_backend.Events.ecomV1CheckoutMultiCurrencyPrice;\n            /**\n             * Totals shipping price after discount and before tax.\n             */\n            totalPriceBeforeTax?: wix_ecom_backend.Events.ecomV1CheckoutMultiCurrencyPrice;\n        };\n        type ecomV1CheckoutSelectedMembership = {\n            /**\n             * Membership ID.\n             */\n            _id?: string;\n            /**\n             * ID of the app providing this payment option.\n             */\n            appId?: string;\n            /**\n             * IDs of the line items this membership applies to.\n             */\n            lineItemIds?: Array<string>;\n        };\n        type ecomV1CheckoutSelectedMemberships = {\n            /**\n             * Selected memberships.\n             */\n            memberships?: Array<wix_ecom_backend.Events.ecomV1CheckoutSelectedMembership>;\n        };\n        type ecomV1CheckoutServiceProperties = {\n            /**\n             * Optional - The number of people participating in this service. For example, the number of people attending the class or the number of people per hotel room.\n             */\n            numberOfParticipants?: number;\n            /**\n             * Optional - The date and time for which the service is supposed to be provided. For example, the time of the class.\n             */\n            scheduledDate?: Date;\n        };\n        type ecomV1CheckoutShipmentDetails = {\n            /**\n             * Shipping destination address\n             */\n            address?: wix_ecom_backend.Events.ecomV1CheckoutAddress;\n            /**\n             * Discount applied for shipping\n             */\n            discount?: number;\n            /**\n             * Tax applied for shipping\n             */\n            tax?: number;\n            /**\n             * Whether tax is included in the price\n             */\n            taxIncludedInPrice?: boolean;\n        };\n        type ecomV1CheckoutShippingInfo = {\n            /**\n             * All carrier options for this shipping rule.\n             */\n            carrierServiceOptions?: Array<wix_ecom_backend.Events.ecomV1CheckoutCarrierServiceOption>;\n            /**\n             * Shipping region.\n             */\n            region?: wix_ecom_backend.Events.ecomV1CheckoutShippingRegion;\n            /**\n             * Selected option out of the options allowed for the region (see `region` field).\n             * The region field is chosen based on the address provided.\n             */\n            selectedCarrierServiceOption?: wix_ecom_backend.Events.ecomV1CheckoutSelectedCarrierServiceOption;\n            /**\n             * Shipping address and contact details.\n             */\n            shippingDestination?: wix_ecom_backend.Events.ecomV1CheckoutAddressWithContact;\n        };\n        type ecomV1CheckoutShippingOption = {\n            /**\n             * Unique code of provided shipping option like \"usps_std_overnight\".\n             * For legacy calculators this would be the UUID of the option.\n             */\n            code?: string;\n            /**\n             * Sipping price information.\n             */\n            cost?: wix_ecom_backend.Events.ecomV1CheckoutShippingPrice;\n            /**\n             * Delivery logistics.\n             */\n            logistics?: wix_ecom_backend.Events.ecomV1CheckoutDeliveryLogistics;\n            /**\n             * Title of the option, such as USPS Standard Overnight Delivery (in the requested locale).\n             * For example, \"Standard\" or \"First-Class Package International\".\n             */\n            title?: string;\n        };\n        type ecomV1CheckoutShippingPrice = {\n            /**\n             * Other costs such as insurance, handling & packaging for fragile items, etc.\n             */\n            otherCharges?: Array<wix_ecom_backend.Events.ecomV1CheckoutOtherCharge>;\n            /**\n             * Shipping price.\n             */\n            price?: wix_ecom_backend.Events.ecomV1CheckoutMultiCurrencyPrice;\n        };\n        type ecomV1CheckoutShippingRegion = {\n            /**\n             * Shipping region ID.\n             */\n            _id?: string;\n            /**\n             * Shipping region name.\n             */\n            name?: string;\n        };\n        type ecomV1CheckoutStoreSettings = {\n            /**\n             * The language to be used when communicating with the buyer\n             * For a site that support multiple languages, this would be the language the buyer selected\n             * Otherwise this would be the site language\n             */\n            buyerLanguage?: string;\n            /**\n             * Currency used for pricing in this store\n             */\n            currency?: string;\n            /**\n             * Weight unit used in this store\n             */\n            weightUnit?: string;\n        };\n        type ecomV1CheckoutStreet = {\n            /**\n             * Street name\n             */\n            name?: string;\n            /**\n             * Street number\n             */\n            number?: string;\n        };\n        type ecomV1CheckoutStreetAddress = {\n            /**\n             * Street name.\n             */\n            name?: string;\n            /**\n             * Street number.\n             */\n            number?: string;\n        };\n        type ecomV1CheckoutSubscription = {\n            /**\n             * Subscription id (auto-generated upon subscription creation)\n             */\n            _id?: string;\n            /**\n             * Coupon that was applied to subscription\n             */\n            appliedCoupon?: wix_ecom_backend.Events.ecomV1CheckoutV1AppliedCoupon;\n            /**\n             * Full billing address\n             */\n            billingAddress?: wix_ecom_backend.Events.ecomV1CheckoutAddress;\n            /**\n             * information about first subscription payment\n             */\n            billingInfo?: wix_ecom_backend.Events.ecomV1CheckoutV1BillingInfo;\n            /**\n             * member or contact\n             */\n            buyerInfo?: wix_ecom_backend.Events.ecomV1CheckoutV1BuyerInfo;\n            /**\n             * Message from the customer (e.g., customization request)\n             */\n            buyerNote?: string;\n            /**\n             * The id of the cart this order was created from\n             */\n            cartId?: string;\n            /**\n             * Sales channel that submitted this subscription\n             */\n            channelInfo?: wix_ecom_backend.Events.ecomV1CheckoutChannelInfo;\n            /**\n             * The id of the checkout this subscriptions was created from\n             */\n            checkoutId?: string;\n            /**\n             * Custom field\n             */\n            customField?: wix_ecom_backend.Events.ecomV1CheckoutV1CustomField;\n            /**\n             * Subscription creation date\n             */\n            dateCreated?: Date;\n            /**\n             * id of subscription in external system\n             */\n            externalId?: string;\n            /**\n             * Line items ordered\n             */\n            lineItems?: Array<wix_ecom_backend.Events.ecomV1CheckoutV1LineItem>;\n            /**\n             * Delivery information\n             */\n            shippingInfo?: wix_ecom_backend.Events.ecomV1CheckoutV1ShippingInfo;\n            /**\n             * site settings at the moment when subscription created\n             */\n            storeSettings?: wix_ecom_backend.Events.ecomV1CheckoutStoreSettings;\n            /**\n             * Information about subscription option from which subscription was created\n             */\n            subscriptionOptionInfo?: wix_ecom_backend.Events.ecomV1CheckoutV1SubscriptionOptionInfo;\n            /**\n             * defines when subscriber will be charged: for frequency=MONTH, billingCycles=6, interval=2 payment will be done every 2 month during one year\n             */\n            subscriptionSettings?: wix_ecom_backend.Events.ecomV1CheckoutV1SubscriptionSettings;\n            /**\n             * Totals for subscription's line items\n             */\n            totals?: wix_ecom_backend.Events.ecomV1CheckoutV1Totals;\n        };\n        type ecomV1CheckoutSubscriptionCreated = {\n            subscription?: wix_ecom_backend.Events.ecomV1CheckoutSubscription;\n        };\n        type ecomV1CheckoutSubscriptionInfo = {\n            /**\n             * Subscription ID.\n             */\n            _id?: string;\n            /**\n             * Current cycle number. For example, if the subscription is in the 3rd month of a 4-month subscription, the value will be `3`.\n             */\n            cycleNumber?: number;\n            /**\n             * Subscription options info.\n             */\n            subscriptionOptionInfo?: wix_ecom_backend.Events.ecomV1CheckoutV2SubscriptionOptionInfo;\n            /**\n             * Subscription settings.\n             */\n            subscriptionSettings?: wix_ecom_backend.Events.ecomV1CheckoutV1SubscriptionSettings;\n        };\n        type ecomV1CheckoutSubscriptionOptionInfo = {\n            /**\n             * Subscription option description.\n             */\n            description?: wix_ecom_backend.Events.ecomV1CheckoutDescription;\n            /**\n             * Subscription option settings.\n             */\n            subscriptionSettings?: wix_ecom_backend.Events.ecomV1CheckoutSubscriptionSettings;\n            /**\n             * Subscription option title.\n             */\n            title?: wix_ecom_backend.Events.ecomV1CheckoutTitle;\n        };\n        type ecomV1CheckoutSubscriptionSettings = {\n            /**\n             * Whether subscription is renewed automatically at the end of each period.\n             */\n            autoRenewal?: boolean;\n            /**\n             * Number of billing cycles before subscription ends. Ignored if `autoRenewal: true`.\n             */\n            billingCycles?: number;\n            /**\n             * Frequency of recurring payment.\n             */\n            frequency?: string;\n        };\n        type ecomV1CheckoutTaxCalculationDetails = {\n            /**\n             * Details of the fallback rate calculation.\n             */\n            autoTaxFallbackDetails?: wix_ecom_backend.Events.ecomV1CheckoutAutoTaxFallbackCalculationDetails;\n            /**\n             * Reason the manual calculation was used.\n             */\n            manualRateReason?: string;\n            /**\n             * Rate calculation type.\n             */\n            rateType?: string;\n        };\n        type ecomV1CheckoutTaxCalculationDetailsCalculationDetailsOneOf = {\n            /**\n             * Details of the fallback rate calculation.\n             */\n            autoTaxFallbackDetails?: wix_ecom_backend.Events.ecomV1CheckoutAutoTaxFallbackCalculationDetails;\n            /**\n             * Reason the manual calculation was used.\n             */\n            manualRateReason?: string;\n        };\n        type ecomV1CheckoutTaxRateBreakdown = {\n            /**\n             * Type of tax against which the calculation was performed.\n             */\n            name?: string;\n            /**\n             * Rate at which this tax detail was calculated.\n             */\n            rate?: string;\n            /**\n             * Amount of tax for this tax detail.\n             */\n            tax?: wix_ecom_backend.Events.ecomV1CheckoutMultiCurrencyPrice;\n        };\n        type ecomV1CheckoutTaxSummary = {\n            /**\n             * Tax calculator that was active when the order was created.\n             */\n            calculationDetails?: wix_ecom_backend.Events.ecomV1CheckoutTaxCalculationDetails;\n            /**\n             * Amount for which tax is calculated, added from line items.\n             */\n            taxableAmount?: wix_ecom_backend.Events.ecomV1CheckoutMultiCurrencyPrice;\n            /**\n             * Calculated tax, added from line items.\n             */\n            totalTax?: wix_ecom_backend.Events.ecomV1CheckoutMultiCurrencyPrice;\n        };\n        type ecomV1CheckoutTitle = {\n            /**\n             * Subscription option name.\n             */\n            original?: string;\n            /**\n             * Translated subscription option name.\n             */\n            translated?: string;\n        };\n        type ecomV1CheckoutTotals = {\n            /**\n             * Total calculated discount value.\n             */\n            discount?: string;\n            /**\n             * Total calculated gift card value.\n             */\n            giftCard?: string;\n            /**\n             * Total number of line items.\n             */\n            quantity?: number;\n            /**\n             * Total refund.\n             */\n            refund?: string;\n            /**\n             * Total shipping price, before tax.\n             */\n            shipping?: string;\n            /**\n             * Subtotal of all the line items, before tax.\n             */\n            subtotal?: string;\n            /**\n             * Total tax.\n             */\n            tax?: string;\n            /**\n             * Total price charged.\n             */\n            total?: string;\n            /**\n             * Total items weight.\n             */\n            weight?: string;\n        };\n        type ecomV1CheckoutUpdateCheckoutRequest = {\n            /**\n             * Checkout information.\n             */\n            checkout: wix_ecom_backend.Events.ecomV1CheckoutCheckout;\n            /**\n             * Coupon code.\n             */\n            couponCode?: string;\n            /**\n             * Gift card code.\n             */\n            giftCardCode?: string;\n            /**\n             * Merchant discounts to apply to specific line items. If no `lineItemIds` are passed, the discount will be applied to the whole checkout.\n             */\n            merchantDiscounts?: Array<wix_ecom_backend.Events.ecomV1CheckoutMerchantDiscountInput>;\n        };\n        type ecomV1CheckoutUpdateCheckoutResponse = {\n            /**\n             * Updated checkout.\n             */\n            checkout?: wix_ecom_backend.Events.ecomV1CheckoutCheckout;\n        };\n        type ecomV1CheckoutUpdatedCheckoutMessage = {\n            /**\n             * Previous checkout.\n             */\n            oldCheckout?: wix_ecom_backend.Events.ecomV1CheckoutCheckout;\n            /**\n             * Updated checkout.\n             */\n            updatedCheckout?: wix_ecom_backend.Events.ecomV1CheckoutCheckout;\n        };\n        type ecomV1CheckoutV1AppliedCoupon = {\n            /**\n             * Coupon code\n             */\n            code?: string;\n            /**\n             * Coupon ID\n             */\n            couponId?: string;\n            /**\n             * Coupon name\n             */\n            name?: string;\n        };\n        type ecomV1CheckoutV1BillingInfo = {\n            /**\n             * Order ID from payment gateway (e.g., Wix Payments)\n             */\n            paymentGatewayOrderId?: string;\n            /**\n             * Transaction ID from payment gateway (e.g., Wix Payments)\n             */\n            paymentGatewayTransactionId?: string;\n            /**\n             * Payment method used for this order\n             */\n            paymentMethod?: string;\n        };\n        type ecomV1CheckoutV1BuyerInfo = {\n            /**\n             * Wix customer ID\n             */\n            _id?: string;\n            /**\n             * Customer type\n             */\n            identityType?: string;\n        };\n        type ecomV1CheckoutV1CustomField = {\n            /**\n             * Title for the custom field\n             */\n            title?: string;\n            /**\n             * The title translated according to the buyer language\n             */\n            translatedTitle?: string;\n            /**\n             * Free text that the customer entered in the custom field during the checkout process\n             */\n            value?: string;\n        };\n        type ecomV1CheckoutV1LineItem = {\n            /**\n             * Charges details\n             */\n            chargeDetails?: wix_ecom_backend.Events.ecomV1CheckoutChargeDetails;\n            /**\n             * Line item custom text field selections\n             */\n            customTextFields?: Array<wix_ecom_backend.Events.ecomV1CheckoutCustomTextFieldSelection>;\n            /**\n             * Line item ID (auto-generated)\n             */\n            index?: number;\n            /**\n             * Line item options ordered\n             */\n            options?: Array<wix_ecom_backend.Events.ecomV1CheckoutOptionSelection>;\n            /**\n             * Product details\n             */\n            productDetails?: wix_ecom_backend.Events.ecomV1CheckoutProductDetails;\n            /**\n             * Line item quantity\n             */\n            quantity?: number;\n            /**\n             * Line item variantId (from Stores Catalog)\n             */\n            variantId?: string;\n        };\n        type ecomV1CheckoutV1PickupDetails = {\n            /**\n             * Pickup address\n             */\n            address?: wix_ecom_backend.Events.ecomV1CheckoutPickupAddress;\n            /**\n             * Store owner's pickup instructions\n             */\n            pickupInstructions?: string;\n        };\n        type ecomV1CheckoutV1ShippingInfo = {\n            /**\n             * Delivery option name\n             */\n            deliveryOption?: string;\n            /**\n             * Delivery option delivery time\n             */\n            estimatedDeliveryTime?: string;\n            /**\n             * Pickup details (when this object describes pickup)\n             */\n            pickupDetails?: wix_ecom_backend.Events.ecomV1CheckoutV1PickupDetails;\n            /**\n             * Shipment details (when this object describes shipment)\n             */\n            shipmentDetails?: wix_ecom_backend.Events.ecomV1CheckoutShipmentDetails;\n        };\n        type ecomV1CheckoutV1ShippingInfoDetailsOneOf = {\n            /**\n             * Pickup details (when this object describes pickup)\n             */\n            pickupDetails?: wix_ecom_backend.Events.ecomV1CheckoutV1PickupDetails;\n            /**\n             * Shipment details (when this object describes shipment)\n             */\n            shipmentDetails?: wix_ecom_backend.Events.ecomV1CheckoutShipmentDetails;\n        };\n        type ecomV1CheckoutV1SubscriptionOptionInfo = {\n            _id?: string;\n            description?: string;\n            discount?: wix_ecom_backend.Events.ecomV1CheckoutDiscount;\n            title?: string;\n        };\n        type ecomV1CheckoutV1SubscriptionSettings = {\n            /**\n             * Whether subscription is renewed automatically at the end of each period.\n             */\n            autoRenewal?: boolean;\n            /**\n             * Number of billing cycles before subscription ends. Ignored if `autoRenewal: true`.\n             */\n            billingCycles?: number;\n            /**\n             * Frequency of recurring payment.\n             */\n            frequency?: string;\n        };\n        type ecomV1CheckoutV1Totals = {\n            /**\n             * Total calculated discount value\n             */\n            discount?: number;\n            /**\n             * Total line items quantity\n             */\n            quantity?: number;\n            /**\n             * Total shipping price, including tax\n             */\n            shipping?: number;\n            /**\n             * Subtotal of all line items, before tax\n             */\n            subtotal?: number;\n            /**\n             * Total tax\n             */\n            tax?: number;\n            /**\n             * Total price\n             */\n            total?: number;\n            /**\n             * Total weight\n             */\n            weight?: number;\n        };\n        type ecomV1CheckoutV2BuyerInfo = {\n            /**\n             * Wix customer ID\n             */\n            _id?: string;\n            /**\n             * Customer's email address\n             */\n            email?: string;\n            /**\n             * Customer's first name\n             */\n            firstName?: string;\n            /**\n             * Customer type\n             */\n            identityType?: string;\n            /**\n             * Customer's last name\n             */\n            lastName?: string;\n            /**\n             * Customer's phone number\n             */\n            phone?: string;\n            /**\n             * Deprecated (use identityType instead)\n             */\n            type?: string;\n        };\n        type ecomV1CheckoutV2SubscriptionOptionInfo = {\n            /**\n             * Subscription option description.\n             */\n            description?: string;\n            /**\n             * Subscription option title.\n             */\n            title?: string;\n        };\n        type ecomV1CheckoutValidationError = {\n            fieldViolations?: Array<wix_ecom_backend.Events.ecomV1CheckoutFieldViolation>;\n        };\n        type ecomV1CheckoutVatId = {\n            /**\n             * Customer's tax ID\n             */\n            number?: string;\n            /**\n             * tax type\n             */\n            type?: string;\n        };\n        type ecomV1FulfillmentsBackendEventMetadata = {\n            entityId: string;\n            eventTime: string;\n            id: string;\n            triggeredByAnonymizeRequest: boolean;\n        };\n        type ecomV1FulfillmentsBuyerInfo = {\n            /**\n             * Wix customer ID\n             */\n            _id?: string;\n            /**\n             * Customer's email address\n             */\n            email?: string;\n            /**\n             * Customer's first name\n             */\n            firstName?: string;\n            /**\n             * Customer type\n             */\n            identityType?: string;\n            /**\n             * Customer's last name\n             */\n            lastName?: string;\n            /**\n             * Customer's phone number\n             */\n            phone?: string;\n            /**\n             * Deprecated (use identityType instead)\n             */\n            type?: string;\n        };\n        type ecomV1FulfillmentsCreateFulfillmentRequest = {\n            /**\n             * Fulfillment info.\n             */\n            fulfillment: wix_ecom_backend.Events.ecomV1FulfillmentsFulfillment;\n            /**\n             * Order ID.\n             */\n            orderId: string;\n        };\n        type ecomV1FulfillmentsCreateFulfillmentResponse = {\n            /**\n             * ID of created fulfillment.\n             */\n            fulfillmentId?: string;\n            /**\n             * Order ID and the orders' fulfillments.\n             */\n            orderWithFulfillments?: wix_ecom_backend.Events.ecomV1FulfillmentsOrderWithFulfillments;\n        };\n        type ecomV1FulfillmentsDeleteFulfillmentRequest = {\n            /**\n             * IDs of fulfillments to delete.\n             */\n            fulfillmentId: string;\n            /**\n             * Order ID.\n             */\n            orderId: string;\n        };\n        type ecomV1FulfillmentsDeleteFulfillmentResponse = {\n            /**\n             * Order ID and the orders' associated fulfillments after deletion.\n             */\n            orderWithFulfillments?: wix_ecom_backend.Events.ecomV1FulfillmentsOrderWithFulfillments;\n        };\n        type ecomV1FulfillmentsFulfillment = {\n            /**\n             * Fulfillment creation date and time.\n             */\n            _createdDate?: Date;\n            /**\n             * Fulfillment ID.\n             */\n            _id?: string;\n            /**\n             * Line items being fulfilled.\n             */\n            lineItems?: Array<wix_ecom_backend.Events.ecomV1FulfillmentsFulfillmentLineItem>;\n            /**\n             * Fulfillment tracking info.\n             */\n            trackingInfo?: wix_ecom_backend.Events.ecomV1FulfillmentsFulfillmentTrackingInfo;\n        };\n        type ecomV1FulfillmentsFulfillmentCreated = {\n            /**\n             * Buyer information.\n             */\n            buyerInfo?: wix_ecom_backend.Events.ecomV1FulfillmentsBuyerInfo;\n            /**\n             * Fulfillment creation date and time.\n             */\n            dateCreated?: Date;\n            /**\n             * ID of the newly created fulfillment.\n             */\n            fulfillmentId?: string;\n            /**\n             * Order fulfillment status.\n             */\n            fulfillmentStatus?: string;\n            /**\n             * Order ID (auto generated upon order creation).\n             */\n            orderId?: string;\n            /**\n             * Fulfillment tracking information.\n             */\n            trackingInfo?: wix_ecom_backend.Events.ecomV1FulfillmentsV2FulfillmentTrackingInfo;\n        };\n        type ecomV1FulfillmentsFulfillmentDeleted = {\n            /**\n             * ID of the deleted fulfillment.\n             */\n            fulfillmentId?: string;\n            /**\n             * Order fulfillment status.\n             */\n            fulfillmentStatus?: string;\n            /**\n             * Order ID (auto generated upon order creation).\n             */\n            orderId?: string;\n        };\n        type ecomV1FulfillmentsFulfillmentLineItem = {\n            /**\n             * Line item ID (mirrors the ID of the order line item).\n             */\n            _id?: string;\n            /**\n             * Line item quantity.\n             * * On creation, if this parameter isn't passed, the new fulfillment will automatically include all items of this line item that have not already been linked to a fulfillment.\n             * * If the order does not have the requested quantity of line items available to add to this fulfillment, the fulfillment will not be created and an error will be returned.\n             * * This property will always have a value when returned.\n             */\n            quantity?: number;\n        };\n        type ecomV1FulfillmentsFulfillmentTrackingInfo = {\n            /**\n             * Shipping provider. Using the following shipping providers will allow for auto-filling the tracking link:\n             * * `fedex`\n             * * `ups`\n             * * `usps`\n             * * `dhl`\n             * * `canadaPost`\n             */\n            shippingProvider?: string;\n            /**\n             * Tracking link - auto-filled if using a predefined shipping provider, otherwise provided on creation.\n             */\n            trackingLink?: string;\n            /**\n             * Tracking number.\n             */\n            trackingNumber?: string;\n        };\n        type ecomV1FulfillmentsFulfillmentUpdated = {\n            /**\n             * ID of the updated fulfillment.\n             */\n            fulfillmentId?: string;\n            /**\n             * Order ID (auto generated upon order creation).\n             */\n            orderId?: string;\n            /**\n             * Fulfillment tracking information.\n             */\n            trackingInfo?: wix_ecom_backend.Events.ecomV1FulfillmentsV2FulfillmentTrackingInfo;\n        };\n        type ecomV1FulfillmentsFulfillmentsUpdated = {\n            entity: wix_ecom_backend.Events.ecomV1FulfillmentsOrderWithFulfillments;\n            metadata: wix_ecom_backend.Events.ecomV1FulfillmentsBackendEventMetadata;\n        };\n        type ecomV1FulfillmentsIndexingMessage = {\n            _id?: string;\n            opType?: number;\n            requiredVersions?: Array<string>;\n        };\n        type ecomV1FulfillmentsListFulfillmentsForMultipleOrdersRequest = {\n            /**\n             * Order IDs for which to retrieve fulfillments.\n             */\n            orderIds: Array<string>;\n        };\n        type ecomV1FulfillmentsListFulfillmentsForMultipleOrdersResponse = {\n            /**\n             * List of order IDs and their associated fulfillments.\n             */\n            ordersWithFulfillments?: Array<wix_ecom_backend.Events.ecomV1FulfillmentsOrderWithFulfillments>;\n        };\n        type ecomV1FulfillmentsListFulfillmentsForSingleOrderRequest = {\n            /**\n             * Order ID for which to retrieve fulfillments.\n             */\n            orderId: string;\n        };\n        type ecomV1FulfillmentsListFulfillmentsForSingleOrderResponse = {\n            /**\n             * List of fulfillments associated with the order.\n             */\n            orderWithFulfillments?: wix_ecom_backend.Events.ecomV1FulfillmentsOrderWithFulfillments;\n        };\n        type ecomV1FulfillmentsOrderWithFulfillments = {\n            /**\n             * Fulfillments associated with the order.\n             */\n            fulfillments?: Array<wix_ecom_backend.Events.ecomV1FulfillmentsFulfillment>;\n            /**\n             * Order ID.\n             */\n            orderId?: string;\n        };\n        type ecomV1FulfillmentsSnapshotMessage = {\n            _id?: string;\n            opType?: number;\n        };\n        type ecomV1FulfillmentsUpdateFulfillmentRequest = {\n            /**\n             * Set of fields to update. Fields that aren't included in `fieldMask.paths` are ignored.\n             */\n            fieldMask?: Array<string>;\n            /**\n             * Fulfillment info to update.\n             */\n            fulfillment?: wix_ecom_backend.Events.ecomV1FulfillmentsFulfillment;\n            /**\n             * Order ID.\n             */\n            orderId: string;\n        };\n        type ecomV1FulfillmentsUpdateFulfillmentResponse = {\n            /**\n             * Order ID and the orders' associated fulfillments after update.\n             */\n            orderWithFulfillments?: wix_ecom_backend.Events.ecomV1FulfillmentsOrderWithFulfillments;\n        };\n        type ecomV1FulfillmentsV2FulfillmentTrackingInfo = {\n            /**\n             * Shipping provider. Using the following shipping providers will allow for autofilling the tracking link:\n             * * `fedex`\n             * * `ups`\n             * * `usps`\n             * * `dhl`\n             * * `canadaPost`\n             */\n            shippingProvider?: string;\n            /**\n             * Tracking link - autofilled if using a predefined shipping provider, otherwise provided on creation.\n             */\n            trackingLink?: string;\n            /**\n             * Tracking number.\n             */\n            trackingNumber?: string;\n        };\n        type ecomV1OrderActionEvent = {\n            bodyAsJson?: string;\n        };\n        type ecomV1OrderActivity = {\n            /**\n             * Activity creation date and time.\n             */\n            _createdDate?: Date;\n            /**\n             * Activity ID.\n             */\n            _id?: string;\n            /**\n             * Activity author's email.\n             */\n            authorEmail?: string;\n            /**\n             * Custom activity details (optional). `activity.type` must be `CUSTOM_ACTIVITY`.\n             */\n            customActivity?: wix_ecom_backend.Events.ecomV1OrderCustomActivity;\n            /**\n             * Merchant comment details (optional). `activity.type` must be `MERCHANT_COMMENT`.\n             */\n            merchantComment?: wix_ecom_backend.Events.ecomV1OrderMerchantComment;\n            /**\n             * Additional info about order refunded activity (optional). `activity.type` must be `ORDER_REFUNDED`.\n             */\n            orderRefunded?: wix_ecom_backend.Events.ecomV1OrderOrderRefunded;\n            /**\n             * Activity type.\n             */\n            type?: string;\n        };\n        type ecomV1OrderActivityContentOneOf = {\n            /**\n             * Custom activity details (optional). `activity.type` must be `CUSTOM_ACTIVITY`.\n             */\n            customActivity?: wix_ecom_backend.Events.ecomV1OrderCustomActivity;\n            /**\n             * Merchant comment details (optional). `activity.type` must be `MERCHANT_COMMENT`.\n             */\n            merchantComment?: wix_ecom_backend.Events.ecomV1OrderMerchantComment;\n            /**\n             * Additional info about order refunded activity (optional). `activity.type` must be `ORDER_REFUNDED`.\n             */\n            orderRefunded?: wix_ecom_backend.Events.ecomV1OrderOrderRefunded;\n        };\n        type ecomV1OrderAddActivityRequest = {\n            /**\n             * Order ID.\n             */\n            _id: string;\n            /**\n             * Activity info.\n             */\n            activity: wix_ecom_backend.Events.ecomV1OrderPublicActivity;\n        };\n        type ecomV1OrderAddActivityResponse = {\n            /**\n             * ID of the added activity.\n             * Use this ID to either [update](https://bo.wix.com/wix-docs/rest/ecommerce/orders/update-activity) or [delete](https://bo.wix.com/wix-docs/rest/ecommerce/orders/delete-activity) the activity.\n             */\n            activityId?: string;\n            /**\n             * Updated order.\n             */\n            order?: wix_ecom_backend.Events.ecomV1OrderOrder;\n        };\n        type ecomV1OrderAddInternalActivityRequest = {\n            /**\n             * Order ID.\n             */\n            _id: string;\n            /**\n             * Activity info.\n             */\n            activity: wix_ecom_backend.Events.ecomV1OrderInternalActivity;\n        };\n        type ecomV1OrderAddInternalActivityResponse = {\n            /**\n             * ID of the added internal activity.\n             * Use this ID to either [update](https://bo.wix.com/wix-docs/rest/ecommerce/orders/update-activity) or [delete](https://bo.wix.com/wix-docs/rest/ecommerce/orders/delete-activity) the activity.\n             */\n            activityId?: string;\n            /**\n             * Updated order.\n             */\n            order?: wix_ecom_backend.Events.ecomV1OrderOrder;\n        };\n        type ecomV1OrderAdditionalFee = {\n            /**\n             * Additional fee's unique code for future processing.\n             */\n            code?: string;\n            /**\n             * Name of additional fee.\n             */\n            name?: string;\n            /**\n             * Additional fee's price.\n             */\n            price?: wix_ecom_backend.Events.ecomV1OrderPrice;\n            /**\n             * SPI implementer's `appId`.\n             */\n            providerAppId?: string;\n            /**\n             * Tax details.\n             */\n            taxDetails?: wix_ecom_backend.Events.ecomV1OrderItemTaxFullDetails;\n        };\n        type ecomV1OrderAddress = {\n            /**\n             * Main address line (usually street name and number).\n             */\n            addressLine1?: string;\n            /**\n             * Free text providing more detailed address info. Usually contains apt, suite, floor.\n             */\n            addressLine2?: string;\n            /**\n             * City name.\n             */\n            city?: string;\n            /**\n             * Two-letter country code in [ISO-3166 alpha-2](https://www.iso.org/obp/ui/#search/code/) format.\n             */\n            country?: string;\n            /**\n             * Postal or zip code.\n             */\n            postalCode?: string;\n            /**\n             * Street address object, with number, name, and apartment number in separate fields.\n             */\n            streetAddress?: wix_ecom_backend.Events.ecomV1OrderStreetAddress;\n            /**\n             * Code for a subdivision (such as state, prefecture, or province) in [ISO 3166-2](https://www.iso.org/standard/72483.html) format.\n             */\n            subdivision?: string;\n        };\n        type ecomV1OrderAddressWithContact = {\n            /**\n             * Address.\n             */\n            address?: wix_ecom_backend.Events.ecomV1OrderAddress;\n            /**\n             * Contact details.\n             */\n            contactDetails?: wix_ecom_backend.Events.ecomV1OrderFullAddressContactDetails;\n        };\n        type ecomV1OrderAggregateOrdersRequest = {\n            /**\n             * This is an object defining aggregation itself\n             */\n            aggregation: Object;\n            /**\n             * Filter applied to original data\n             */\n            filter?: Object;\n        };\n        type ecomV1OrderAggregateOrdersResponse = {\n            aggregates?: Object;\n        };\n        type ecomV1OrderApiAddress = {\n            /**\n             * Address line 1 (free text)\n             */\n            addressLine1?: string;\n            /**\n             * address line\n             */\n            addressLine2?: string;\n            /**\n             * City name\n             */\n            city?: string;\n            /**\n             * Company name\n             */\n            company?: string;\n            /**\n             * Country code (2 letters)\n             */\n            country?: string;\n            /**\n             * Email address\n             */\n            email?: string;\n            /**\n             * Addressee name\n             */\n            fullName?: wix_ecom_backend.Events.ecomV1OrderFullName;\n            /**\n             * Phone number\n             */\n            phone?: string;\n            /**\n             * Address line 1 (street)\n             */\n            street?: wix_ecom_backend.Events.ecomV1OrderStreet;\n            /**\n             * State or district\n             */\n            subdivision?: string;\n            /**\n             * Tax information (for Brazil only)\n             */\n            vatId?: wix_ecom_backend.Events.ecomV1OrderApiVatId;\n            /**\n             * ZIP/postal code\n             */\n            zipCode?: string;\n        };\n        type ecomV1OrderApiAddressAddressLine1OptionsOneOf = {\n            /**\n             * Address line 1 (free text)\n             */\n            addressLine1?: string;\n            /**\n             * Address line 1 (street)\n             */\n            street?: wix_ecom_backend.Events.ecomV1OrderStreet;\n        };\n        type ecomV1OrderApiVatId = {\n            /**\n             * Customer's tax ID\n             */\n            number?: string;\n            /**\n             * tax type\n             */\n            type?: string;\n        };\n        type ecomV1OrderApplicationError = {\n            code?: string;\n            data?: Object;\n            description?: string;\n        };\n        type ecomV1OrderAppliedCoupon = {\n            /**\n             * Coupon code\n             */\n            code?: string;\n            /**\n             * Coupon ID\n             */\n            couponId?: string;\n            /**\n             * Coupon name\n             */\n            name?: string;\n        };\n        type ecomV1OrderAppliedDiscount = {\n            /**\n             * Applied coupon info.\n             */\n            coupon?: wix_ecom_backend.Events.ecomV1OrderCoupon;\n            /**\n             * Automatic Discount\n             */\n            discountRule?: wix_ecom_backend.Events.ecomV1OrderDiscountRule;\n            /**\n             * Discount type.\n             * * `\"GLOBAL\"` - discount applies to entire order.\n             * * `\"SPECIFIC-ITEMS\"` - discount applies to specific items.\n             * * `\"SHIPPING\"` - discount applies to shipping. For example, free shipping.\n             */\n            discountType?: string;\n            /**\n             * IDs of line items discount applies to.\n             */\n            lineItemIds?: Array<string>;\n            /**\n             * Merchant discount.\n             */\n            merchantDiscount?: wix_ecom_backend.Events.ecomV1OrderMerchantDiscount;\n        };\n        type ecomV1OrderAppliedDiscountDiscountSourceOneOf = {\n            /**\n             * Applied coupon info.\n             */\n            coupon?: wix_ecom_backend.Events.ecomV1OrderCoupon;\n            /**\n             * Automatic Discount\n             */\n            discountRule?: wix_ecom_backend.Events.ecomV1OrderDiscountRule;\n            /**\n             * Merchant discount.\n             */\n            merchantDiscount?: wix_ecom_backend.Events.ecomV1OrderMerchantDiscount;\n        };\n        type ecomV1OrderArchiveOrderRequest = {\n            /**\n             * Order ID.\n             */\n            _id: string;\n        };\n        type ecomV1OrderArchiveOrderResponse = {\n            /**\n             * Archived order.\n             */\n            order?: wix_ecom_backend.Events.ecomV1OrderOrder;\n        };\n        type ecomV1OrderBackendEventMetadata = {\n            entityId: string;\n            eventTime: string;\n            id: string;\n            triggeredByAnonymizeRequest: boolean;\n        };\n        type ecomV1OrderBalance = {\n            /**\n             * Balance amount, can be negative. Negative value signifies amount to be refunded\n             * and can happen due to possible overcharge or modified manual order.\n             */\n            amount?: string;\n            /**\n             * Amount formatted with currency symbol.\n             */\n            formattedAmount?: string;\n        };\n        type ecomV1OrderBalanceSummary = {\n            balance?: wix_ecom_backend.Events.ecomV1OrderBalance;\n        };\n        type ecomV1OrderBillingInfo = {\n            /**\n             * Full billing address\n             */\n            address?: wix_ecom_backend.Events.ecomV1OrderApiAddress;\n            /**\n             * Deprecated (use paymentProviderTransactionId instead)\n             */\n            externalTransactionId?: string;\n            /**\n             * Payment date\n             */\n            paidDate?: Date;\n            /**\n             * Transaction ID from payment gateway (e.g., Wix Payments)\n             */\n            paymentGatewayTransactionId?: string;\n            /**\n             * Payment method used for this order\n             */\n            paymentMethod?: string;\n            /**\n             * Transaction ID from payment provider (e.g., PayPal, Square, Stripe) transaction ID\n             */\n            paymentProviderTransactionId?: string;\n            /**\n             * Whether order can be refunded by payment provider (manually or automatic)\n             */\n            refundableByPaymentProvider?: boolean;\n        };\n        type ecomV1OrderBulkActionMetadata = {\n            /**\n             * Number of items that couldn't be processed.\n             */\n            totalFailures?: number;\n            /**\n             * Number of items that were successfully processed.\n             */\n            totalSuccesses?: number;\n            /**\n             * Number of failures without details because detailed failure threshold was exceeded.\n             */\n            undetailedFailures?: number;\n        };\n        type ecomV1OrderBulkArchiveOrdersByFilterRequest = {\n            /**\n             * Filter object. Learn more about supported filters [here](https://bo.wix.com/wix-docs/rest/ecommerce/orders/filter-and-sort).\n             */\n            filter: Object;\n        };\n        type ecomV1OrderBulkArchiveOrdersByFilterResponse = {\n            /**\n             * Bulk action metadata.\n             */\n            bulkActionMetadata?: wix_ecom_backend.Events.ecomV1OrderBulkActionMetadata;\n            /**\n             * Items updated by bulk action.\n             */\n            results?: Array<wix_ecom_backend.Events.ecomV1OrderBulkOrderResult>;\n        };\n        type ecomV1OrderBulkArchiveOrdersRequest = {\n            /**\n             * IDs of orders to archive.\n             */\n            ids: Array<string>;\n            /**\n             * Whether to return the full updated order entities in the response.\n             */\n            returnFullEntity?: boolean;\n        };\n        type ecomV1OrderBulkArchiveOrdersResponse = {\n            /**\n             * Bulk action metadata.\n             */\n            bulkActionMetadata?: wix_ecom_backend.Events.ecomV1OrderBulkActionMetadata;\n            /**\n             * Items updated by bulk action.\n             */\n            results?: Array<wix_ecom_backend.Events.ecomV1OrderBulkOrderResult>;\n        };\n        type ecomV1OrderBulkMarkAsFulfilledByFilterRequest = {\n            /**\n             * Filter object. Learn more about supported filters [here](https://bo.wix.com/wix-docs/rest/ecommerce/orders/filter-and-sort).\n             */\n            filter: Object;\n        };\n        type ecomV1OrderBulkMarkAsFulfilledByFilterResponse = {\n            /**\n             * Bulk action metadata.\n             */\n            bulkActionMetadata?: wix_ecom_backend.Events.ecomV1OrderBulkActionMetadata;\n            /**\n             * Items updated by bulk action.\n             */\n            results?: Array<wix_ecom_backend.Events.ecomV1OrderBulkOrderResult>;\n        };\n        type ecomV1OrderBulkMarkAsFulfilledRequest = {\n            /**\n             * IDs of orders to be marked as fulfilled.\n             */\n            ids: Array<string>;\n            /**\n             * Whether to return the full updated order entities in the response.\n             */\n            returnFullEntity?: boolean;\n        };\n        type ecomV1OrderBulkMarkAsFulfilledResponse = {\n            /**\n             * Bulk action metadata.\n             */\n            bulkActionMetadata?: wix_ecom_backend.Events.ecomV1OrderBulkActionMetadata;\n            /**\n             * Items updated by bulk action.\n             */\n            results?: Array<wix_ecom_backend.Events.ecomV1OrderBulkOrderResult>;\n        };\n        type ecomV1OrderBulkMarkAsUnfulfilledByFilterRequest = {\n            /**\n             * Filter object. Learn more about supported filters [here](https://bo.wix.com/wix-docs/rest/ecommerce/orders/filter-and-sort).\n             */\n            filter: Object;\n        };\n        type ecomV1OrderBulkMarkAsUnfulfilledByFilterResponse = {\n            /**\n             * Bulk action metadata.\n             */\n            bulkActionMetadata?: wix_ecom_backend.Events.ecomV1OrderBulkActionMetadata;\n            /**\n             * Items updated by bulk action.\n             */\n            results?: Array<wix_ecom_backend.Events.ecomV1OrderBulkOrderResult>;\n        };\n        type ecomV1OrderBulkMarkAsUnfulfilledRequest = {\n            /**\n             * IDs of orders to be marked as not fulfilled.\n             */\n            ids: Array<string>;\n            /**\n             * Whether to return the full updated order entities in the response.\n             */\n            returnFullEntity?: boolean;\n        };\n        type ecomV1OrderBulkMarkAsUnfulfilledResponse = {\n            /**\n             * Bulk action metadata.\n             */\n            bulkActionMetadata?: wix_ecom_backend.Events.ecomV1OrderBulkActionMetadata;\n            /**\n             * Items updated by bulk action.\n             */\n            results?: Array<wix_ecom_backend.Events.ecomV1OrderBulkOrderResult>;\n        };\n        type ecomV1OrderBulkMarkOrdersAsPaidRequest = {\n            /**\n             * IDs of orders to mark as paid.\n             */\n            ids: Array<string>;\n        };\n        type ecomV1OrderBulkMarkOrdersAsPaidResponse = {\n            /**\n             * Bulk action metadata.\n             */\n            bulkActionMetadata?: wix_ecom_backend.Events.ecomV1OrderBulkActionMetadata;\n            /**\n             * Items updated by the bulk action.\n             * The Order entity within the results optimistically changes its payment status to paid, however this process is async.\n             */\n            results?: Array<wix_ecom_backend.Events.ecomV1OrderBulkOrderResult>;\n        };\n        type ecomV1OrderBulkOrderResult = {\n            /**\n             * Updated item. Optional - returned only if requested with `return_full_entity` set to `true`.\n             */\n            item?: wix_ecom_backend.Events.ecomV1OrderOrder;\n            /**\n             * Item metadata.\n             */\n            itemMetadata?: wix_ecom_backend.Events.ecomV1OrderItemMetadata;\n        };\n        type ecomV1OrderBulkUnArchiveOrdersByFilterRequest = {\n            /**\n             * Filter object. Learn more about supported filters [here](https://bo.wix.com/wix-docs/rest/ecommerce/orders/filter-and-sort).\n             */\n            filter: Object;\n        };\n        type ecomV1OrderBulkUnArchiveOrdersByFilterResponse = {\n            /**\n             * Bulk action metadata.\n             */\n            bulkActionMetadata?: wix_ecom_backend.Events.ecomV1OrderBulkActionMetadata;\n            /**\n             * Items updated by bulk action.\n             */\n            results?: Array<wix_ecom_backend.Events.ecomV1OrderBulkOrderResult>;\n        };\n        type ecomV1OrderBulkUnArchiveOrdersRequest = {\n            /**\n             * IDs or orders to unarchive.\n             */\n            ids: Array<string>;\n            /**\n             * Whether to return the full updated order entities in the response.\n             */\n            returnFullEntity?: boolean;\n        };\n        type ecomV1OrderBulkUnArchiveOrdersResponse = {\n            /**\n             * Bulk action metadata.\n             */\n            bulkActionMetadata?: wix_ecom_backend.Events.ecomV1OrderBulkActionMetadata;\n            /**\n             * Items updated by bulk action.\n             */\n            results?: Array<wix_ecom_backend.Events.ecomV1OrderBulkOrderResult>;\n        };\n        type ecomV1OrderBuyerInfo = {\n            /**\n             * Contact ID. Auto-created if one does not yet exist. For more information, see [Contacts API](https://dev.wix.com/api/rest/contacts/contacts/introduction).\n             */\n            contactId?: string;\n            /**\n             * Buyer email address.\n             */\n            email?: string;\n            /**\n             * Member ID (if site visitor is a site member).\n             */\n            memberId?: string;\n            /**\n             * Visitor ID (if site visitor is not a member).\n             */\n            visitorId?: string;\n        };\n        type ecomV1OrderBuyerInfoIdOneOf = {\n            /**\n             * Member ID (if site visitor is a site member).\n             */\n            memberId?: string;\n            /**\n             * Visitor ID (if site visitor is not a member).\n             */\n            visitorId?: string;\n        };\n        type ecomV1OrderBuyerInfoUpdate = {\n            /**\n             * Contact ID.\n             */\n            contactId?: string;\n            /**\n             * Email associated with the buyer.\n             */\n            email?: string;\n        };\n        type ecomV1OrderCancel = {};\n        type ecomV1OrderCancelOrderRequest = {\n            /**\n             * Order ID.\n             */\n            _id: string;\n            /**\n             * Custom note to be added to the email (optional).\n             */\n            customMessage?: string;\n            /**\n             * Whether to restock all items in the order.\n             */\n            restockAllItems?: boolean;\n            /**\n             * Whether to send an order canceled email to the buyer.\n             */\n            sendOrderCanceledEmail?: boolean;\n        };\n        type ecomV1OrderCancelOrderResponse = {\n            /**\n             * Canceled order.\n             */\n            order?: wix_ecom_backend.Events.ecomV1OrderOrder;\n        };\n        type ecomV1OrderCatalogReference = {\n            /**\n             * ID of the catalog app. For example, the Wix Stores `appId`, or the 3rd-party `appId`.\n             */\n            appId?: string;\n            /**\n             * ID of the item within its Wix or 3rd-party catalog. For example, `productId` for Wix Stores or `eventId` for Wix Events.\n             */\n            catalogItemId?: string;\n            /**\n             * Additional info in key:value form. For example, `{\"options\":{\"Size\": \"M\", \"Color\": \"Red\"}}` or `{\"variantId\": \"\"}`.\n             */\n            options?: Object;\n        };\n        type ecomV1OrderChannelInfo = {\n            /**\n             * Reference to an order ID from an external system.\n             */\n            externalOrderId?: string;\n            /**\n             * URL to the order in the external system.\n             */\n            externalOrderUrl?: string;\n            /**\n             * Sales channel that submitted the order.\n             */\n            type?: string;\n        };\n        type ecomV1OrderColor = {\n            /**\n             * Optional - HEX or RGB color code for display.\n             */\n            code?: string;\n            /**\n             * Optional - Description line color name in site's default language.\n             */\n            original?: string;\n            /**\n             * Optional - Translated description line color name according to buyer language. Defaults to `original` when not provided.\n             */\n            translated?: string;\n        };\n        type ecomV1OrderComplete = {};\n        type ecomV1OrderContinueSideEffectsFlowInLegacyData = {\n            orderId?: string;\n            ordersExperiments?: wix_ecom_backend.Events.ecomV1OrderOrdersExperiments;\n            storeId?: string;\n        };\n        type ecomV1OrderCoupon = {\n            /**\n             * Coupon ID.\n             */\n            _id?: string;\n            /**\n             * Coupon value.\n             */\n            amount?: wix_ecom_backend.Events.ecomV1OrderPrice;\n            /**\n             * Coupon code.\n             */\n            code?: string;\n            /**\n             * Coupon name.\n             */\n            name?: string;\n        };\n        type ecomV1OrderCreateOrderRequest = {\n            /**\n             * Order info.\n             */\n            order: wix_ecom_backend.Events.ecomV1OrderOrder;\n        };\n        type ecomV1OrderCreateOrderResponse = {\n            /**\n             * Newly created order.\n             */\n            order?: wix_ecom_backend.Events.ecomV1OrderOrder;\n        };\n        type ecomV1OrderCreatePaymentGatewayOrderRequest = {\n            /**\n             * eCom Order ID\n             */\n            ecomOrderId: string;\n        };\n        type ecomV1OrderCreatePaymentGatewayOrderResponse = {\n            /**\n             * ID of the order created in the payment gateway\n             */\n            paymentGatewayOrderId?: string;\n        };\n        type ecomV1OrderCreatedBy = {\n            /**\n             * App ID - when the order was created by an external application.\n             */\n            appId?: string;\n            /**\n             * Member ID - when the order was created by a **logged in** site visitor.\n             */\n            memberId?: string;\n            /**\n             * User ID - when the order was created by a Wix user on behalf of a buyer.\n             * For example, via POS (point of service).\n             */\n            userId?: string;\n            /**\n             * Visitor ID - when the order was created by a site visitor that was **not** logged in.\n             */\n            visitorId?: string;\n        };\n        type ecomV1OrderCreatedByStringOneOf = {\n            /**\n             * App ID - when the order was created by an external application.\n             */\n            appId?: string;\n            /**\n             * Member ID - when the order was created by a **logged in** site visitor.\n             */\n            memberId?: string;\n            /**\n             * User ID - when the order was created by a Wix user on behalf of a buyer.\n             * For example, via POS (point of service).\n             */\n            userId?: string;\n            /**\n             * Visitor ID - when the order was created by a site visitor that was **not** logged in.\n             */\n            visitorId?: string;\n        };\n        type ecomV1OrderCursorPaging = {\n            /**\n             * Pointer to the next or previous page in the list of results.\n             */\n            cursor?: string;\n            /**\n             * Number of items to load.\n             */\n            limit?: number;\n        };\n        type ecomV1OrderCursors = {\n            /**\n             * Cursor pointing to next page in the list of results.\n             */\n            next?: string;\n            /**\n             * Cursor pointing to previous page in the list of results.\n             */\n            prev?: string;\n        };\n        type ecomV1OrderCustomActivity = {\n            /**\n             * Additional data in key-value form. For example, `{ \"Ticket number\": \"123456\" }`.\n             */\n            additionalData?: Record<string, string>;\n            /**\n             * ID of the app that created the custom activity.\n             */\n            appId?: string;\n            /**\n             * Custom activity type. For example, `\"Ticket number set\"`.\n             */\n            type?: string;\n        };\n        type ecomV1OrderCustomField = {\n            /**\n             * Custom field title.\n             */\n            title?: string;\n            /**\n             * Translated custom field title.\n             */\n            translatedTitle?: string;\n            /**\n             * Custom field value.\n             */\n            value?: any;\n        };\n        type ecomV1OrderDecrementData = {\n            /**\n             * Line item quantity being decremented.\n             */\n            decrementBy?: number;\n            /**\n             * ID of the line item being decremented.\n             */\n            lineItemId?: string;\n            /**\n             * Whether to restock the line item (triggers inventory update).\n             */\n            restock?: boolean;\n        };\n        type ecomV1OrderDecrementItemsQuantityRequest = {\n            /**\n             * Order ID\n             */\n            _id: string;\n            /**\n             * Which items to decrement, and how much to decrement from each one\n             */\n            decrementData: Array<wix_ecom_backend.Events.ecomV1OrderDecrementData>;\n        };\n        type ecomV1OrderDecrementItemsQuantityResponse = {\n            /**\n             * Updated order data\n             */\n            order?: wix_ecom_backend.Events.ecomV1OrderOrder;\n        };\n        type ecomV1OrderDeleteActivityRequest = {\n            /**\n             * Order ID.\n             */\n            _id: string;\n            /**\n             * ID of the activity to delete.\n             */\n            activityId: string;\n        };\n        type ecomV1OrderDeleteActivityResponse = {\n            /**\n             * Updated order.\n             */\n            order?: wix_ecom_backend.Events.ecomV1OrderOrder;\n        };\n        type ecomV1OrderDeliveryLogistics = {\n            /**\n             * Latest expected delivery date.\n             */\n            deliverByDate?: Date;\n            /**\n             * Expected delivery time in free text. For example, `\"3-5 business days\"`.\n             */\n            deliveryTime?: string;\n            /**\n             * Instructions for carrier. For example, `\"Please knock on the door. If unanswered, please call contact number. Thanks.\"`.\n             */\n            instructions?: string;\n            /**\n             * Pickup details.\n             */\n            pickupDetails?: wix_ecom_backend.Events.ecomV1OrderPickupDetails;\n            /**\n             * Shipping address and contact details.\n             */\n            shippingDestination?: wix_ecom_backend.Events.ecomV1OrderAddressWithContact;\n        };\n        type ecomV1OrderDeliveryLogisticsAddressOneOf = {\n            /**\n             * Pickup details.\n             */\n            pickupDetails?: wix_ecom_backend.Events.ecomV1OrderPickupDetails;\n            /**\n             * Shipping address and contact details.\n             */\n            shippingDestination?: wix_ecom_backend.Events.ecomV1OrderAddressWithContact;\n        };\n        type ecomV1OrderDescriptionLine = {\n            /**\n             * Description line color value.\n             */\n            colorInfo?: wix_ecom_backend.Events.ecomV1OrderColor;\n            /**\n             * Description line name.\n             */\n            name?: wix_ecom_backend.Events.ecomV1OrderDescriptionLineName;\n            /**\n             * Description line plain text value.\n             */\n            plainText?: wix_ecom_backend.Events.ecomV1OrderPlainTextValue;\n        };\n        type ecomV1OrderDescriptionLineDescriptionLineValueOneOf = {};\n        type ecomV1OrderDescriptionLineName = {\n            /**\n             * Optional - Description line name in site's default language.\n             */\n            original?: string;\n            /**\n             * Optional - Translated description line item according to buyer language. Defaults to `original` when not provided.\n             */\n            translated?: string;\n        };\n        type ecomV1OrderDescriptionLineValueOneOf = {\n            /**\n             * Description line color value.\n             */\n            colorInfo?: wix_ecom_backend.Events.ecomV1OrderColor;\n            /**\n             * Description line plain text value.\n             */\n            plainText?: wix_ecom_backend.Events.ecomV1OrderPlainTextValue;\n        };\n        type ecomV1OrderDiffmatokyPayload = {\n            compareChannel?: string;\n            entityId?: string;\n            errorInformation?: wix_ecom_backend.Events.ecomV1OrderErrorInformation;\n            left?: string;\n            right?: string;\n            tags?: Array<string>;\n        };\n        type ecomV1OrderDigitalFile = {\n            /**\n             * Link expiration time and date.\n             */\n            expirationDate?: Date;\n            /**\n             * ID of the secure file in media.\n             */\n            fileId?: string;\n            /**\n             * Link will exist after the digital links have been generated on the order.\n             */\n            link?: string;\n        };\n        type ecomV1OrderDiscountRule = {\n            /**\n             * Discount rule ID\n             */\n            _id?: string;\n            /**\n             * Discount value.\n             */\n            amount?: wix_ecom_backend.Events.ecomV1OrderPrice;\n            /**\n             * Discount rule name\n             */\n            name?: wix_ecom_backend.Events.ecomV1OrderDiscountRuleName;\n        };\n        type ecomV1OrderDiscountRuleName = {\n            /**\n             * Original discount rule name (in site's default language).\n             */\n            original?: string;\n            /**\n             * Translated discount rule name according to buyer language. Defaults to `original` when not provided.\n             */\n            translated?: string;\n        };\n        type ecomV1OrderDomainEvent = {\n            /**\n             * random GUID so clients can tell if event was already handled\n             */\n            _id?: string;\n            actionEvent?: wix_ecom_backend.Events.ecomV1OrderActionEvent;\n            createdEvent?: wix_ecom_backend.Events.ecomV1OrderEntityCreatedEvent;\n            deletedEvent?: wix_ecom_backend.Events.ecomV1OrderEntityDeletedEvent;\n            /**\n             * Assumes actions are also always typed to an entity_type\n             * Example: wix.stores.catalog.product, wix.bookings.session, wix.payments.transaction\n             */\n            entityFqdn?: string;\n            /**\n             * Assuming that all messages including Actions have id\n             * Example: The id of the specific order, the id of a specific campaign\n             */\n            entityId?: string;\n            /**\n             * The time of the event. Useful if there was a delay in dipatching\n             */\n            eventTime?: Date;\n            extendedFieldsUpdatedEvent?: wix_ecom_backend.Events.ecomV1OrderExtendedFieldsUpdatedEvent;\n            /**\n             * If present, indicates the action that triggered the event.\n             */\n            originatedFrom?: string;\n            /**\n             * This is top level to ease client code dipatching of messages (switch on entity_fqdn+slug)\n             * This is although the created/updated/deleted notion is duplication of the oneof types\n             * Example: created/updated/deleted/started/completed/email_opened\n             */\n            slug?: string;\n            /**\n             * A field that should be set if this event was triggered by an anonymize request.\n             * For example you must set it to true when sending an event as a result of a GDPR right to be forgotten request.\n             * NOTE: This field is not relevant for `EntityCreatedEvent` but is located here for better ergonomics of consumers.\n             */\n            triggeredByAnonymizeRequest?: boolean;\n            updatedEvent?: wix_ecom_backend.Events.ecomV1OrderEntityUpdatedEvent;\n        };\n        type ecomV1OrderDomainEventBodyOneOf = {\n            actionEvent?: wix_ecom_backend.Events.ecomV1OrderActionEvent;\n            createdEvent?: wix_ecom_backend.Events.ecomV1OrderEntityCreatedEvent;\n            deletedEvent?: wix_ecom_backend.Events.ecomV1OrderEntityDeletedEvent;\n            extendedFieldsUpdatedEvent?: wix_ecom_backend.Events.ecomV1OrderExtendedFieldsUpdatedEvent;\n            updatedEvent?: wix_ecom_backend.Events.ecomV1OrderEntityUpdatedEvent;\n        };\n        type ecomV1OrderDownloadLinkSent = {};\n        type ecomV1OrderEmailEdited = {};\n        type ecomV1OrderEmpty = {};\n        type ecomV1OrderEntityCreatedEvent = {\n            entityAsJson?: string;\n        };\n        type ecomV1OrderEntityDeletedEvent = {};\n        type ecomV1OrderEntityUpdatedEvent = {\n            /**\n             * Since platformized APIs only expose PATCH and not PUT we can't assume that the fields sent from the client are the actual diff.\n             * This means that to generate a list of changed fields (as opposed to sent fields) one needs to traverse both objects.\n             * We don't want to impose this on all developers and so we leave this traversal to the notification recipients which need it.\n             */\n            currentEntityAsJson?: string;\n        };\n        type ecomV1OrderErrorInformation = {\n            stackTrace?: string;\n        };\n        type ecomV1OrderExtendedFieldsUpdatedEvent = {\n            currentEntityAsJson?: string;\n        };\n        type ecomV1OrderFulfillerEmailSent = {};\n        type ecomV1OrderFulfillmentStatusUpdated = {\n            /**\n             * the action that caused this update\n             */\n            action?: string;\n            /**\n             * the new status (after the update)\n             */\n            newFulfillmentStatus?: string;\n            /**\n             * The order that was updated\n             */\n            order?: wix_ecom_backend.Events.ecomV1OrderOrder;\n            /**\n             * The previous status (before the update)\n             */\n            previousFulfillmentStatus?: string;\n        };\n        type ecomV1OrderFullAddressContactDetails = {\n            /**\n             * Company name.\n             */\n            company?: string;\n            /**\n             * First name.\n             */\n            firstName?: string;\n            /**\n             * Last name.\n             */\n            lastName?: string;\n            /**\n             * Phone number.\n             */\n            phone?: string;\n            /**\n             * Tax information (for Brazil only). If ID is provided, `vatId.type` must also be set - UNSPECIFIED is not allowed.\n             */\n            vatId?: wix_ecom_backend.Events.ecomV1OrderVatId;\n        };\n        type ecomV1OrderFullName = {\n            /**\n             * Customer's first name\n             */\n            firstName?: string;\n            /**\n             * Customer's last name\n             */\n            lastName?: string;\n        };\n        type ecomV1OrderGetOrderRequest = {\n            /**\n             * ID of the order to retrieve.\n             */\n            _id: string;\n        };\n        type ecomV1OrderGetOrderResponse = {\n            /**\n             * The requested order.\n             */\n            order?: wix_ecom_backend.Events.ecomV1OrderOrder;\n        };\n        type ecomV1OrderGetPaymentCollectabilityStatusRequest = {\n            /**\n             * Ecom order ID.\n             */\n            ecomOrderId: string;\n        };\n        type ecomV1OrderGetPaymentCollectabilityStatusResponse = {\n            /**\n             * Collectable order amount\n             */\n            amount?: wix_ecom_backend.Events.ecomV1OrderPrice;\n            /**\n             * Payment collectability status\n             */\n            status?: string;\n        };\n        type ecomV1OrderGetShipmentsRequest = {\n            _id: string;\n        };\n        type ecomV1OrderGetShipmentsResponse = {\n            shipmentIds?: Array<string>;\n        };\n        type ecomV1OrderIndexingMessage = {\n            _id?: string;\n            opType?: number;\n            requiredVersions?: Array<string>;\n        };\n        type ecomV1OrderInternalActivity = {\n            /**\n             * Internal activity creation date and time.\n             */\n            _createdDate?: Date;\n            /**\n             * Internal activity ID.\n             */\n            _id?: string;\n            /**\n             * Internal activity author's email.\n             */\n            authorEmail?: string;\n            /**\n             * Download link was sent (relevant for orders with digital line items).\n             */\n            downloadLinkSent?: wix_ecom_backend.Events.ecomV1OrderDownloadLinkSent;\n            /**\n             * Order email was updated.\n             */\n            emailEdited?: wix_ecom_backend.Events.ecomV1OrderEmailEdited;\n            /**\n             * Email sent to fulfiller.\n             */\n            fulfillerEmailSent?: wix_ecom_backend.Events.ecomV1OrderFulfillerEmailSent;\n            /**\n             * Invoice was added to order.\n             */\n            invoiceAdded?: wix_ecom_backend.Events.ecomV1OrderInvoiceAdded;\n            /**\n             * Invoice sent to customer via email.\n             */\n            invoiceSent?: wix_ecom_backend.Events.ecomV1OrderInvoiceSent;\n            /**\n             * New exchange order created.\n             */\n            newExchangeOrderCreated?: wix_ecom_backend.Events.ecomV1OrderNewExchangeOrderCreated;\n            /**\n             * Order canceled.\n             */\n            orderCanceled?: wix_ecom_backend.Events.ecomV1OrderOrderCanceled;\n            /**\n             * Order created as a result of items exchange.\n             */\n            orderCreatedFromExchange?: wix_ecom_backend.Events.ecomV1OrderOrderCreatedFromExchange;\n            /**\n             * Order shipping status set as fulfilled.\n             */\n            orderFulfilled?: wix_ecom_backend.Events.ecomV1OrderOrderFulfilled;\n            /**\n             * Order shipping status set as not fulfilled.\n             */\n            orderNotFulfilled?: wix_ecom_backend.Events.ecomV1OrderOrderNotFulfilled;\n            /**\n             * Order paid. Either by the store owner (for offline orders), or when an online transaction was confirmed.\n             */\n            orderPaid?: wix_ecom_backend.Events.ecomV1OrderOrderPaid;\n            /**\n             * Order partially paid. During the checkout for orders with deposit items.\n             */\n            orderPartiallyPaid?: wix_ecom_backend.Events.ecomV1OrderOrderPartiallyPaid;\n            /**\n             * Order placed.\n             */\n            orderPlaced?: wix_ecom_backend.Events.ecomV1OrderOrderPlaced;\n            /**\n             * Order refunded.\n             */\n            orderRefunded?: wix_ecom_backend.Events.ecomV1OrderOrderRefunded;\n            /**\n             * Email notification for pickup sent.\n             */\n            pickupReadyEmailSent?: wix_ecom_backend.Events.ecomV1OrderPickupReadyEmailSent;\n            /**\n             * Shipping address was updated.\n             */\n            shippingAddressEdited?: wix_ecom_backend.Events.ecomV1OrderShippingAddressEdited;\n            /**\n             * An email confirmation of order shipment was sent.\n             */\n            shippingConfirmationEmailSent?: wix_ecom_backend.Events.ecomV1OrderShippingConfirmationEmailSent;\n            /**\n             * Shipping tracking link added to order.\n             */\n            trackingLinkAdded?: wix_ecom_backend.Events.ecomV1OrderTrackingLinkAdded;\n            /**\n             * Shipping tracking number added to order.\n             */\n            trackingNumberAdded?: wix_ecom_backend.Events.ecomV1OrderTrackingNumberAdded;\n            /**\n             * Shipping tracking number was edited.\n             */\n            trackingNumberEdited?: wix_ecom_backend.Events.ecomV1OrderTrackingNumberEdited;\n        };\n        type ecomV1OrderInternalActivityContentOneOf = {\n            /**\n             * Download link was sent (relevant for orders with digital line items).\n             */\n            downloadLinkSent?: wix_ecom_backend.Events.ecomV1OrderDownloadLinkSent;\n            /**\n             * Order email was updated.\n             */\n            emailEdited?: wix_ecom_backend.Events.ecomV1OrderEmailEdited;\n            /**\n             * Email sent to fulfiller.\n             */\n            fulfillerEmailSent?: wix_ecom_backend.Events.ecomV1OrderFulfillerEmailSent;\n            /**\n             * Invoice was added to order.\n             */\n            invoiceAdded?: wix_ecom_backend.Events.ecomV1OrderInvoiceAdded;\n            /**\n             * Invoice sent to customer via email.\n             */\n            invoiceSent?: wix_ecom_backend.Events.ecomV1OrderInvoiceSent;\n            /**\n             * New exchange order created.\n             */\n            newExchangeOrderCreated?: wix_ecom_backend.Events.ecomV1OrderNewExchangeOrderCreated;\n            /**\n             * Order canceled.\n             */\n            orderCanceled?: wix_ecom_backend.Events.ecomV1OrderOrderCanceled;\n            /**\n             * Order created as a result of items exchange.\n             */\n            orderCreatedFromExchange?: wix_ecom_backend.Events.ecomV1OrderOrderCreatedFromExchange;\n            /**\n             * Order shipping status set as fulfilled.\n             */\n            orderFulfilled?: wix_ecom_backend.Events.ecomV1OrderOrderFulfilled;\n            /**\n             * Order shipping status set as not fulfilled.\n             */\n            orderNotFulfilled?: wix_ecom_backend.Events.ecomV1OrderOrderNotFulfilled;\n            /**\n             * Order paid. Either by the store owner (for offline orders), or when an online transaction was confirmed.\n             */\n            orderPaid?: wix_ecom_backend.Events.ecomV1OrderOrderPaid;\n            /**\n             * Order partially paid. During the checkout for orders with deposit items.\n             */\n            orderPartiallyPaid?: wix_ecom_backend.Events.ecomV1OrderOrderPartiallyPaid;\n            /**\n             * Order placed.\n             */\n            orderPlaced?: wix_ecom_backend.Events.ecomV1OrderOrderPlaced;\n            /**\n             * Order refunded.\n             */\n            orderRefunded?: wix_ecom_backend.Events.ecomV1OrderOrderRefunded;\n            /**\n             * Email notification for pickup sent.\n             */\n            pickupReadyEmailSent?: wix_ecom_backend.Events.ecomV1OrderPickupReadyEmailSent;\n            /**\n             * Shipping address was updated.\n             */\n            shippingAddressEdited?: wix_ecom_backend.Events.ecomV1OrderShippingAddressEdited;\n            /**\n             * An email confirmation of order shipment was sent.\n             */\n            shippingConfirmationEmailSent?: wix_ecom_backend.Events.ecomV1OrderShippingConfirmationEmailSent;\n            /**\n             * Shipping tracking link added to order.\n             */\n            trackingLinkAdded?: wix_ecom_backend.Events.ecomV1OrderTrackingLinkAdded;\n            /**\n             * Shipping tracking number added to order.\n             */\n            trackingNumberAdded?: wix_ecom_backend.Events.ecomV1OrderTrackingNumberAdded;\n            /**\n             * Shipping tracking number was edited.\n             */\n            trackingNumberEdited?: wix_ecom_backend.Events.ecomV1OrderTrackingNumberEdited;\n        };\n        type ecomV1OrderInvoiceAdded = {};\n        type ecomV1OrderInvoiceSent = {};\n        type ecomV1OrderItemMetadata = {\n            /**\n             * Item ID. Should always be available, unless it's impossible (for example, when failing to create an item).\n             */\n            _id?: string;\n            /**\n             * Details about the error in case of failure.\n             */\n            error?: wix_ecom_backend.Events.ecomV1OrderApplicationError;\n            /**\n             * Index of the item within the request array. Allows for correlation between request and response items.\n             */\n            originalIndex?: number;\n            /**\n             * Whether the requested action was successful for this item. When `false`, the `error` field is populated.\n             */\n            success?: boolean;\n        };\n        type ecomV1OrderItemTaxFullDetails = {\n            /**\n             * Tax rate percentage, as a decimal numeral between 0 and 1. For example, `\"0.13\"`.\n             */\n            taxRate?: string;\n            /**\n             * Taxable amount of this line item.\n             */\n            taxableAmount?: wix_ecom_backend.Events.ecomV1OrderPrice;\n            /**\n             * The calculated tax, based on the `taxableAmount` and `taxRate`.\n             */\n            totalTax?: wix_ecom_backend.Events.ecomV1OrderPrice;\n        };\n        type ecomV1OrderItemType = {\n            /**\n             * Custom item type.\n             */\n            custom?: string;\n            /**\n             * Preset item type.\n             */\n            preset?: string;\n        };\n        type ecomV1OrderItemTypeItemTypeDataOneOf = {\n            /**\n             * Custom item type.\n             */\n            custom?: string;\n            /**\n             * Preset item type.\n             */\n            preset?: string;\n        };\n        type ecomV1OrderLineItemExchangeData = {\n            /**\n             * ID of the exchanged line item.\n             */\n            lineItemId?: string;\n            /**\n             * Line item quantity being exchanged.\n             */\n            quantity?: number;\n        };\n        type ecomV1OrderLineItemUpdate = {\n            /**\n             * Description lines' info.\n             * If description line already exists for this name, it will be replaced.\n             */\n            descriptionLines?: Array<wix_ecom_backend.Events.ecomV1OrderDescriptionLine>;\n            /**\n             * Line item ID.\n             */\n            lineItemId?: string;\n        };\n        type ecomV1OrderMarkAsFulfilledRequest = {\n            /**\n             * Order ID.\n             */\n            _id: string;\n        };\n        type ecomV1OrderMarkAsFulfilledResponse = {\n            /**\n             * Updated order.\n             */\n            order?: wix_ecom_backend.Events.ecomV1OrderOrder;\n        };\n        type ecomV1OrderMarkAsUnfulfilledRequest = {\n            /**\n             * Order ID.\n             */\n            _id: string;\n        };\n        type ecomV1OrderMarkAsUnfulfilledResponse = {\n            /**\n             * Updated order.\n             */\n            order?: wix_ecom_backend.Events.ecomV1OrderOrder;\n        };\n        type ecomV1OrderMarkOrderAsPaidRequest = {\n            /**\n             * Order ID.\n             */\n            _id: string;\n        };\n        type ecomV1OrderMarkOrderAsPaidResponse = {\n            /**\n             * Updated order.\n             */\n            order?: wix_ecom_backend.Events.ecomV1OrderOrder;\n        };\n        type ecomV1OrderMarkOrderAsSeenByHumanRequest = {\n            /**\n             * Order ID.\n             */\n            _id: string;\n        };\n        type ecomV1OrderMarkOrderAsSeenByHumanResponse = {\n            /**\n             * Updated order.\n             */\n            order?: wix_ecom_backend.Events.ecomV1OrderOrder;\n        };\n        type ecomV1OrderMerchantComment = {\n            /**\n             * Merchant comment message.\n             */\n            message?: string;\n        };\n        type ecomV1OrderMerchantDiscount = {\n            /**\n             * Discount amount.\n             */\n            amount?: wix_ecom_backend.Events.ecomV1OrderPrice;\n            /**\n             * Discount description as free text (optional).\n             */\n            description?: string;\n            /**\n             * Pre-defined discount reason (optional).\n             * * `\"ITEMS_EXCHANGE\"` - exchange balance acquired as a result of items exchange.\n             */\n            discountReason?: string;\n        };\n        type ecomV1OrderMerchantDiscountMerchantDiscountReasonOneOf = {\n            /**\n             * Discount description as free text (optional).\n             */\n            description?: string;\n            /**\n             * Pre-defined discount reason (optional).\n             * * `\"ITEMS_EXCHANGE\"` - exchange balance acquired as a result of items exchange.\n             */\n            discountReason?: string;\n        };\n        type ecomV1OrderNewExchangeOrderCreated = {\n            /**\n             * ID of the new order created as a result of an exchange of items.\n             */\n            exchangeOrderId?: string;\n            /**\n             * IDs of the items that were exchanged.\n             */\n            lineItems?: Array<wix_ecom_backend.Events.ecomV1OrderLineItemExchangeData>;\n        };\n        type ecomV1OrderOrder = {\n            /**\n             * Date and time the order was created.\n             */\n            _createdDate?: Date;\n            /**\n             * Order ID.\n             */\n            _id?: string;\n            /**\n             * Date and time of order's latest update.\n             */\n            _updatedDate?: Date;\n            /**\n             * Order activities.\n             */\n            activities?: Array<wix_ecom_backend.Events.ecomV1OrderActivity>;\n            /**\n             * Additional fees applied to the order.\n             */\n            additionalFees?: Array<wix_ecom_backend.Events.ecomV1OrderAdditionalFee>;\n            /**\n             * Applied discounts.\n             */\n            appliedDiscounts?: Array<wix_ecom_backend.Events.ecomV1OrderAppliedDiscount>;\n            /**\n             * Whether order is archived.\n             */\n            archived?: boolean;\n            /**\n             * Order attribution source.\n             */\n            attributionSource?: string;\n            /**\n             * Billing address and contact details.\n             */\n            billingInfo?: wix_ecom_backend.Events.ecomV1OrderAddressWithContact;\n            /**\n             * Buyer information.\n             */\n            buyerInfo?: wix_ecom_backend.Events.ecomV1OrderBuyerInfo;\n            /**\n             * Language for communication with the buyer. Defaults to the site language.\n             * For a site that supports multiple languages, this is the language the buyer selected.\n             */\n            buyerLanguage?: string;\n            /**\n             * [Buyer note](https://support.wix.com/en/article/wix-stores-viewing-buyer-notes) left by the customer.\n             */\n            buyerNote?: string;\n            /**\n             * Information about the sales channel that submitted this order.\n             */\n            channelInfo?: wix_ecom_backend.Events.ecomV1OrderChannelInfo;\n            /**\n             * Checkout ID.\n             */\n            checkoutId?: string;\n            /**\n             * ID of the order's initiator.\n             */\n            createdBy?: wix_ecom_backend.Events.ecomV1OrderCreatedBy;\n            /**\n             * Currency used for pricing in this store.\n             */\n            currency?: string;\n            /**\n             * Custom fields.\n             */\n            customFields?: Array<wix_ecom_backend.Events.ecomV1OrderCustomField>;\n            /**\n             * Order fulfillment status.\n             */\n            fulfillmentStatus?: string;\n            /**\n             * Order line items.\n             */\n            lineItems?: Array<wix_ecom_backend.Events.ecomV1OrderOrderLineItem>;\n            /**\n             * Order number displayed in the site owner's business manager (auto-generated).\n             */\n            number?: string;\n            /**\n             * Order payment status.\n             * + `NOT_PAID` - This can be an order made online, but not yet paid. In such cases `order.status` will be `INITIALIZED`.\n             * + This status also applies when an offline order needs to be manually marked as paid. In such cases `order.status` will be `APPROVED`.\n             * + `PAID` - All payments associated with this order are paid. For online payments: [`payment.regularPaymentDetails.status: APPROVED`](https://bo.wix.com/wix-docs/rest/ecommerce/order-payments/order-transactions-object). For gift cards: [`payment.giftCardPaymentDetails.voided: false`](https://bo.wix.com/wix-docs/rest/ecommerce/order-payments/order-transactions-object).\n             * + `PARTIALLY_REFUNDED` - Order was refunded, but refund amount is less than order total price.\n             * + `FULLY_REFUNDED` - Order fully refunded. Refund amount equals total price.\n             * + `PENDING` - Payments received but not yet confirmed by the payment provider.\n             * + `PARTIALLY_PAID` -  At least one payment was received and approved, covering less than total price amount.\n             */\n            paymentStatus?: string;\n            /**\n             * Order price summary.\n             */\n            priceSummary?: wix_ecom_backend.Events.ecomV1OrderPriceSummary;\n            /**\n             * Whether a human has seen the order. Set when an order is clicked on in the Business Manager.\n             */\n            seenByAHuman?: boolean;\n            /**\n             * Shipping info and selected shipping option details.\n             */\n            shippingInfo?: wix_ecom_backend.Events.ecomV1OrderShippingInformation;\n            /**\n             * Site language in which original values are shown.\n             */\n            siteLanguage?: string;\n            /**\n             * Order status.\n             * + `INITIALIZED` - Order was created, but not yet approved or declined.\n             * + `APPROVED` - Order was approved. This happens when either the online payment succeeded or the order is an offline order.\n             * + Once an order is approved, many side effects are triggered. For example, holding of stock in the inventory and sending of notification emails.\n             * + `CANCELED` - Order was canceled by the user.\n             */\n            status?: string;\n            /**\n             * Whether tax is included in line item prices.\n             */\n            taxIncludedInPrices?: boolean;\n            /**\n             * Tax summary.\n             */\n            taxSummary?: wix_ecom_backend.Events.ecomV1OrderTaxSummary;\n            /**\n             * Weight measurement unit - defaults to site's weight unit.\n             */\n            weightUnit?: string;\n        };\n        type ecomV1OrderOrderApproved = {\n            /**\n             * The order that was updated\n             */\n            order?: wix_ecom_backend.Events.ecomV1OrderOrder;\n        };\n        type ecomV1OrderOrderApprovedEvent = {\n            data: wix_ecom_backend.Events.ecomV1OrderOrderApproved;\n            metadata: wix_ecom_backend.Events.ecomV1OrderBackendEventMetadata;\n        };\n        type ecomV1OrderOrderCanceled = {};\n        type ecomV1OrderOrderCanceledEventOrderCanceled = {\n            /**\n             * Personal note added to the email\n             */\n            customMessage?: string;\n            /**\n             * The order that was cancelled\n             */\n            order?: wix_ecom_backend.Events.ecomV1OrderOrder;\n            /**\n             * Should restock all items on that order\n             */\n            restockAllItems?: boolean;\n            /**\n             * Should send a confirmation mail to the customer\n             */\n            sendOrderCanceledEmail?: boolean;\n        };\n        type ecomV1OrderOrderCreated = {\n            /**\n             * Order archive status\n             */\n            archived?: boolean;\n            /**\n             * Customer information\n             */\n            buyerInfo?: wix_ecom_backend.Events.ecomV1OrderV2BuyerInfo;\n            /**\n             * Currency used for pricing in this store\n             */\n            currency?: string;\n            /**\n             * Order creation date\n             */\n            dateCreated?: Date;\n            /**\n             * Order fulfillment status\n             */\n            fulfillmentStatus?: string;\n            /**\n             * ID displayed in the owner's store (auto generated)\n             */\n            number?: string;\n            /**\n             * Order ID (auto generated upon order creation)\n             */\n            orderId?: string;\n            /**\n             * Order payment status\n             */\n            paymentStatus?: string;\n            /**\n             * Whether the order was read by the store owner\n             */\n            read?: boolean;\n            /**\n             * Totals for order's line items\n             */\n            totals?: wix_ecom_backend.Events.ecomV1OrderTotals;\n            /**\n             * Weight unit used in this store\n             */\n            weightUnit?: string;\n        };\n        type ecomV1OrderOrderCreatedFromExchange = {\n            /**\n             * ID of the original order for which the exchange happened.\n             */\n            originalOrderId?: string;\n        };\n        type ecomV1OrderOrderFulfilled = {};\n        type ecomV1OrderOrderItemsRestocked = {\n            /**\n             * The order which items were restocked\n             */\n            order?: wix_ecom_backend.Events.ecomV1OrderOrder;\n            /**\n             * Restocked items and quantities\n             */\n            restockItems?: Array<wix_ecom_backend.Events.ecomV1OrderRestockItem>;\n        };\n        type ecomV1OrderOrderLineItem = {\n            /**\n             * Line item ID.\n             */\n            _id?: string;\n            /**\n             * References to the line item's origin catalog.\n             * See [Catalog SPI](https://bo.wix.com/wix-docs/rest/ecommerce/catalog-spi/introduction) for more details.\n             * This field is empty in the case of a custom line item.\n             */\n            catalogReference?: wix_ecom_backend.Events.ecomV1OrderCatalogReference;\n            /**\n             * Item's price amount to be charged during checkout, relevant for items with payment option DEPOSIT_ONLINE\n             */\n            depositAmount?: wix_ecom_backend.Events.ecomV1OrderPrice;\n            /**\n             * Line item description lines. Used for display purposes for the cart, checkout and order.\n             */\n            descriptionLines?: Array<wix_ecom_backend.Events.ecomV1OrderDescriptionLine>;\n            /**\n             * Fulfiller ID. Field is empty when the line item is self-fulfilled.\n             * To get fulfillment information, pass this order's ID to [List Fulfillments For Single Order](https://bo.wix.com/wix-docs/rest/ecommerce/order-fulfillments/list-fulfillments-for-single-order).\n             */\n            fulfillerId?: string;\n            /**\n             * Line item image.\n             */\n            image?: string;\n            /**\n             * Item type. Either a preset type or custom.\n             */\n            itemType?: wix_ecom_backend.Events.ecomV1OrderItemType;\n            /**\n             * Type of selected payment option for current item. Defaults to `FULL_PAYMENT_ONLINE`.\n             * + `FULL_PAYMENT_ONLINE` - The entire payment for this item happens as part of the checkout.\n             * + `FULL_PAYMENT_OFFLINE` - The entire payment for this item happens after the checkout. For example, when using cash, check, or other offline payment methods.\n             * + `MEMBERSHIP` - Payment for this item is done by charging a membership. When this option is used, `lineItem.price.amount` is 0.\n             * + `DEPOSIT_ONLINE` - Partial payment for the given item to be paid upfront during the checkout. Eligible for catalog items with type `DEPOSIT_ONLINE` only.\n             */\n            paymentOption?: string;\n            /**\n             * Physical properties of the item. When relevant, contains information such as SKU and item weight.\n             */\n            physicalProperties?: wix_ecom_backend.Events.ecomV1OrderPhysicalProperties;\n            /**\n             * Line item price after line item discounts for display purposes.\n             */\n            price?: wix_ecom_backend.Events.ecomV1OrderPrice;\n            /**\n             * Line item price before line item discounts for display purposes. Defaults to `price` when not provided.\n             */\n            priceBeforeDiscounts?: wix_ecom_backend.Events.ecomV1OrderPrice;\n            /**\n             * Additional description for the price. For example, when price is 0 but additional details about the actual price are needed - \"Starts at $67\".\n             */\n            priceDescription?: wix_ecom_backend.Events.ecomV1OrderPriceDescription;\n            /**\n             * Item name.\n             * + Stores - `product.name`\n             * + Bookings - `service.info.name`\n             * + Events - `ticket.name`\n             */\n            productName?: wix_ecom_backend.Events.ecomV1OrderProductName;\n            /**\n             * Line item quantity.\n             */\n            quantity?: number;\n            /**\n             * quantity of inventory requested to be returned. Whether to restock or ignore the request is up the vertical.\n             */\n            restockQuantity?: number;\n            /**\n             * Subscription info.\n             */\n            subscriptionInfo?: wix_ecom_backend.Events.ecomV1OrderSubscriptionInfo;\n            /**\n             * Tax details for this line item.\n             */\n            taxDetails?: wix_ecom_backend.Events.ecomV1OrderItemTaxFullDetails;\n            /**\n             * Total discount for this line item's entire quantity.\n             */\n            totalDiscount?: wix_ecom_backend.Events.ecomV1OrderPrice;\n            /**\n             * Total price after all discounts and tax.\n             */\n            totalPriceAfterTax?: wix_ecom_backend.Events.ecomV1OrderPrice;\n            /**\n             * Deprecated - please use `total_price_after_tax` minus `tax_details.total_tax` instead.\n             */\n            totalPriceBeforeTax?: wix_ecom_backend.Events.ecomV1OrderPrice;\n        };\n        type ecomV1OrderOrderNotFulfilled = {};\n        type ecomV1OrderOrderPaid = {};\n        type ecomV1OrderOrderPartiallyPaid = {};\n        type ecomV1OrderOrderPlaced = {};\n        type ecomV1OrderOrderRefunded = {\n            /**\n             * Refund amount.\n             */\n            amount?: wix_ecom_backend.Events.ecomV1OrderPrice;\n            /**\n             * Whether order was refunded manually. For example, via payment provider or using cash.\n             */\n            manual?: boolean;\n            /**\n             * Reason for refund.\n             */\n            reason?: string;\n        };\n        type ecomV1OrderOrdersExperiments = {\n            epCommitTax?: boolean;\n            moveBuyerOrderConfirmationEmailToEp?: boolean;\n            moveMerchantEmailToEp?: boolean;\n            producedByEpBridge?: boolean;\n        };\n        type ecomV1OrderPaymentStatusUpdated = {\n            /**\n             * The order that was updated\n             */\n            order?: wix_ecom_backend.Events.ecomV1OrderOrder;\n            /**\n             * The previous status (before the update)\n             */\n            previousPaymentStatus?: string;\n        };\n        type ecomV1OrderPhysicalProperties = {\n            /**\n             * Whether this line item is shippable.\n             */\n            shippable?: boolean;\n            /**\n             * Stock-keeping unit. Learn more about [SKUs](https://www.wix.com/encyclopedia/definition/stock-keeping-unit-sku).\n             */\n            sku?: string;\n            /**\n             * Line item weight. Measurement unit (KG or LB) is taken from `order.weightUnit`.\n             */\n            weight?: number;\n        };\n        type ecomV1OrderPickupAddress = {\n            /**\n             * Main address line (usually street name and number).\n             */\n            addressLine1?: string;\n            /**\n             * Free text providing more detailed address info. Usually contains apt, suite, floor.\n             */\n            addressLine2?: string;\n            /**\n             * City name.\n             */\n            city?: string;\n            /**\n             * Two-letter country code in [ISO-3166 alpha-2](https://www.iso.org/obp/ui/#search/code/) format.\n             */\n            country?: string;\n            /**\n             * Postal or zip code.\n             */\n            postalCode?: string;\n            /**\n             * Street address object, with number, name, and apartment number in separate fields.\n             */\n            streetAddress?: wix_ecom_backend.Events.ecomV1OrderStreetAddress;\n            /**\n             * Code for a subdivision (such as state, prefecture, or province) in [ISO 3166-2](https://www.iso.org/standard/72483.html) format.\n             */\n            subdivision?: string;\n        };\n        type ecomV1OrderPickupDetails = {\n            /**\n             * Pickup address.\n             */\n            address?: wix_ecom_backend.Events.ecomV1OrderPickupAddress;\n            /**\n             * Pickup method\n             */\n            pickupMethod?: string;\n        };\n        type ecomV1OrderPickupReadyEmailSent = {};\n        type ecomV1OrderPlainTextValue = {\n            /**\n             * Optional - Description line plain text value in site's default language.\n             */\n            original?: string;\n            /**\n             * Optional - Translated description line plain text value according to buyer language. Defaults to `original` when not provided.\n             */\n            translated?: string;\n        };\n        type ecomV1OrderPlatformPaging = {\n            /**\n             * Number of items to load.\n             */\n            limit?: number;\n            /**\n             * Number of items to skip in the current sort order.\n             */\n            offset?: number;\n        };\n        type ecomV1OrderPlatformPagingMetadata = {\n            /**\n             * The number of items returned in this response.\n             */\n            count?: number;\n            /**\n             * Cursors to navigate through result pages. Returned if cursor paging was used.\n             */\n            cursors?: wix_ecom_backend.Events.ecomV1OrderCursors;\n            /**\n             * The offset which was requested. Returned if offset paging was used.\n             */\n            offset?: number;\n            /**\n             * The total number of items that match the query. Returned if offset paging was used.\n             */\n            total?: number;\n        };\n        type ecomV1OrderPlatformQuery = {\n            /**\n             * Cursor pointing to page of results. Cannot be used together with `paging`. `cursorPaging.cursor` can not be used together with `filter` or `sort`.\n             */\n            cursorPaging?: wix_ecom_backend.Events.ecomV1OrderCursorPaging;\n            /**\n             * Filter object.\n             */\n            filter?: Object;\n            /**\n             * Pointer to page of results using offset. Cannot be used together with `cursorPaging`.\n             */\n            paging?: wix_ecom_backend.Events.ecomV1OrderPlatformPaging;\n            /**\n             * Sorting options. For example, `[{\"fieldName\":\"sortField1\"},{\"fieldName\":\"sortField2\",\"direction\":\"DESC\"}]`.\n             */\n            sort?: Array<wix_ecom_backend.Events.ecomV1OrderSorting>;\n        };\n        type ecomV1OrderPlatformQueryPagingMethodOneOf = {\n            /**\n             * Cursor pointing to page of results. Cannot be used together with `paging`. `cursorPaging.cursor` can not be used together with `filter` or `sort`.\n             */\n            cursorPaging?: wix_ecom_backend.Events.ecomV1OrderCursorPaging;\n            /**\n             * Pointer to page of results using offset. Cannot be used together with `cursorPaging`.\n             */\n            paging?: wix_ecom_backend.Events.ecomV1OrderPlatformPaging;\n        };\n        type ecomV1OrderPreparePaymentCollectionRequest = {\n            /**\n             * Amount to collect\n             */\n            amount: wix_ecom_backend.Events.ecomV1OrderPrice;\n            /**\n             * Ecom order ID.\n             */\n            ecomOrderId: string;\n        };\n        type ecomV1OrderPreparePaymentCollectionResponse = {\n            /**\n             * Payment gateway order id which is associated with given payment\n             */\n            paymentGatewayOrderId?: string;\n        };\n        type ecomV1OrderPreviewBuyerConfirmationEmailRequest = {};\n        type ecomV1OrderPreviewBuyerConfirmationEmailResponse = {\n            emailPreview?: string;\n        };\n        type ecomV1OrderPreviewBuyerPaymentsReceivedEmailRequest = {};\n        type ecomV1OrderPreviewBuyerPaymentsReceivedEmailResponse = {\n            emailPreview?: string;\n        };\n        type ecomV1OrderPreviewBuyerPickupConfirmationEmailRequest = {};\n        type ecomV1OrderPreviewBuyerPickupConfirmationEmailResponse = {\n            emailPreview?: string;\n        };\n        type ecomV1OrderPreviewCancelEmailRequest = {\n            /**\n             * Personal note added to the email (optional)\n             */\n            customMessage?: string;\n            orderId: string;\n        };\n        type ecomV1OrderPreviewCancelEmailResponse = {\n            emailPreview?: string;\n        };\n        type ecomV1OrderPreviewCancelRefundEmailRequest = {\n            /**\n             * Personal note added to the email (optional)\n             */\n            customMessage?: string;\n            orderId: string;\n            /**\n             * Refund amount\n             */\n            refundAmount?: wix_ecom_backend.Events.ecomV1OrderPrice;\n        };\n        type ecomV1OrderPreviewCancelRefundEmailResponse = {\n            emailPreview?: string;\n        };\n        type ecomV1OrderPreviewEmailByTypeRequest = {\n            /**\n             * Suppoerted values:\n             * - `'DOWNLOAD_LINKS'`\n             * - `'ORDER_PLACED'`\n             * - `'ORDER_READY_FOR_PICKUP'`\n             * - `'ORDER_SHIPPED'`\n             */\n            emailType: string;\n        };\n        type ecomV1OrderPreviewEmailByTypeResponse = {\n            emailPreview?: string;\n        };\n        type ecomV1OrderPreviewRefundEmailRequest = {\n            /**\n             * Personal note added to the email (optional)\n             */\n            customMessage?: string;\n            /**\n             * Refund business details\n             */\n            details?: wix_ecom_backend.Events.ecomV1OrderRefundDetails;\n            orderId: string;\n            /**\n             * Refund amount\n             */\n            refundAmount: wix_ecom_backend.Events.ecomV1OrderPrice;\n        };\n        type ecomV1OrderPreviewRefundEmailResponse = {\n            emailPreview?: string;\n        };\n        type ecomV1OrderPreviewResendDownloadLinksEmailRequest = {};\n        type ecomV1OrderPreviewResendDownloadLinksEmailResponse = {\n            emailPreview?: string;\n        };\n        type ecomV1OrderPreviewShippingConfirmationEmailRequest = {};\n        type ecomV1OrderPreviewShippingConfirmationEmailResponse = {\n            emailPreview?: string;\n        };\n        type ecomV1OrderPrice = {\n            /**\n             * Amount.\n             */\n            amount?: string;\n            /**\n             * Amount formatted with currency symbol.\n             */\n            formattedAmount?: string;\n        };\n        type ecomV1OrderPriceDescription = {\n            /**\n             * Required** - Original price description (in site's default language).\n             */\n            original?: string;\n            /**\n             * Optional - Translated product name according to buyer language. Defaults to `original` when not provided.\n             */\n            translated?: string;\n        };\n        type ecomV1OrderPriceSummary = {\n            /**\n             * Total calculated discount value.\n             */\n            discount?: wix_ecom_backend.Events.ecomV1OrderPrice;\n            /**\n             * Total shipping price, before discounts and before tax.\n             */\n            shipping?: wix_ecom_backend.Events.ecomV1OrderPrice;\n            /**\n             * Subtotal of all the line items, before discounts and before tax.\n             */\n            subtotal?: wix_ecom_backend.Events.ecomV1OrderPrice;\n            /**\n             * Total tax on this order.\n             */\n            tax?: wix_ecom_backend.Events.ecomV1OrderPrice;\n            /**\n             * Order’s total price after discounts and tax.\n             */\n            total?: wix_ecom_backend.Events.ecomV1OrderPrice;\n            /**\n             * Total price of additional fees.\n             */\n            totalAdditionalFees?: wix_ecom_backend.Events.ecomV1OrderPrice;\n            /**\n             * Deprecated - use `total` instead.\n             */\n            totalPrice?: wix_ecom_backend.Events.ecomV1OrderPrice;\n        };\n        type ecomV1OrderProductName = {\n            /**\n             * Required** - Original item name (in site's default language).\n             */\n            original?: string;\n            /**\n             * Optional - Translated item name according to buyer language. Defaults to `original` when not provided.\n             */\n            translated?: string;\n        };\n        type ecomV1OrderPublicActivity = {\n            /**\n             * Custom activity details.\n             */\n            customActivity?: wix_ecom_backend.Events.ecomV1OrderCustomActivity;\n            /**\n             * Merchant commment.\n             */\n            merchantComment?: wix_ecom_backend.Events.ecomV1OrderMerchantComment;\n        };\n        type ecomV1OrderPublicActivityContentOneOf = {\n            /**\n             * Custom activity details.\n             */\n            customActivity?: wix_ecom_backend.Events.ecomV1OrderCustomActivity;\n            /**\n             * Merchant commment.\n             */\n            merchantComment?: wix_ecom_backend.Events.ecomV1OrderMerchantComment;\n        };\n        type ecomV1OrderQueryOrderRequest = {\n            /**\n             * Query options.\n             */\n            query?: wix_ecom_backend.Events.ecomV1OrderPlatformQuery;\n        };\n        type ecomV1OrderQueryOrderResponse = {\n            /**\n             * Details on the paged set of results returned.\n             */\n            metadata?: wix_ecom_backend.Events.ecomV1OrderPlatformPagingMetadata;\n            /**\n             * List of orders.\n             */\n            orders?: Array<wix_ecom_backend.Events.ecomV1OrderOrder>;\n        };\n        type ecomV1OrderRefundDetails = {\n            /**\n             * Refunded line items and quantities.\n             */\n            items?: Array<wix_ecom_backend.Events.ecomV1OrderRefundItem>;\n            /**\n             * Reason for refund, given by user (optional).\n             */\n            reason?: string;\n            /**\n             * Whether shipping rate is also refunded.\n             */\n            shippingIncluded?: boolean;\n        };\n        type ecomV1OrderRefundItem = {\n            /**\n             * ID of the line item being refunded.\n             */\n            lineItemId?: string;\n            /**\n             * Line item quantity being refunded.\n             */\n            quantity?: number;\n        };\n        type ecomV1OrderReschedule = {\n            executeAt?: Date;\n            payload?: string;\n        };\n        type ecomV1OrderRestockItem = {\n            /**\n             * ID of the line item being restocked.\n             */\n            lineItemId?: string;\n            /**\n             * Line item quantity being restocked.\n             */\n            quantity?: number;\n        };\n        type ecomV1OrderSendBuyerConfirmationEmailRequest = {\n            orderId: string;\n        };\n        type ecomV1OrderSendBuyerConfirmationEmailResponse = {};\n        type ecomV1OrderSendBuyerPaymentsReceivedEmailRequest = {\n            orderId: string;\n        };\n        type ecomV1OrderSendBuyerPaymentsReceivedEmailResponse = {};\n        type ecomV1OrderSendBuyerPickupConfirmationEmailRequest = {\n            orderId: string;\n        };\n        type ecomV1OrderSendBuyerPickupConfirmationEmailResponse = {};\n        type ecomV1OrderSendBuyerShippingConfirmationEmailRequest = {\n            orderId: string;\n        };\n        type ecomV1OrderSendBuyerShippingConfirmationEmailResponse = {};\n        type ecomV1OrderSendCancelRefundEmailRequest = {\n            /**\n             * Personal note added to the email (optional)\n             */\n            customMessage?: string;\n            /**\n             * The ID of order that is canceled/refunded\n             */\n            orderId: string;\n            /**\n             * Refund amount\n             */\n            refundAmount: wix_ecom_backend.Events.ecomV1OrderPrice;\n        };\n        type ecomV1OrderSendCancelRefundEmailResponse = {};\n        type ecomV1OrderSendMerchantOrderReceivedNotificationRequest = {\n            orderId: string;\n        };\n        type ecomV1OrderSendMerchantOrderReceivedNotificationResponse = {};\n        type ecomV1OrderSendOrderPaymentReceivedEmail = {\n            orderId?: string;\n            storeId?: string;\n        };\n        type ecomV1OrderShippingAddressEdited = {};\n        type ecomV1OrderShippingConfirmationEmailSent = {};\n        type ecomV1OrderShippingInformation = {\n            /**\n             * App Def Id of external provider which was a source of shipping info\n             */\n            carrierId?: string;\n            /**\n             * Unique code (or ID) of selected shipping option. For example, `\"usps_std_overnight\"``.\n             */\n            code?: string;\n            /**\n             * Shipping costs.\n             */\n            cost?: wix_ecom_backend.Events.ecomV1OrderShippingPrice;\n            /**\n             * Shipping logistics.\n             */\n            logistics?: wix_ecom_backend.Events.ecomV1OrderDeliveryLogistics;\n            /**\n             * Shipping region.\n             */\n            region?: wix_ecom_backend.Events.ecomV1OrderShippingRegion;\n            /**\n             * Shipping option title.\n             * For example, `\"USPS Standard Overnight Delivery\"`, `\"Standard\"` or `\"First-Class Package International\"`.\n             */\n            title?: string;\n        };\n        type ecomV1OrderShippingPrice = {\n            /**\n             * Shipping discount before tax.\n             */\n            discount?: wix_ecom_backend.Events.ecomV1OrderPrice;\n            /**\n             * Shipping price for display purposes.\n             */\n            price?: wix_ecom_backend.Events.ecomV1OrderPrice;\n            /**\n             * Tax details.\n             */\n            taxDetails?: wix_ecom_backend.Events.ecomV1OrderItemTaxFullDetails;\n            /**\n             * Shipping price after all discounts (if any exist), and after tax.\n             */\n            totalPriceAfterTax?: wix_ecom_backend.Events.ecomV1OrderPrice;\n            /**\n             * Deprecated - please use `total_price_after_tax` minus `tax_details.total_tax` instead.\n             */\n            totalPriceBeforeTax?: wix_ecom_backend.Events.ecomV1OrderPrice;\n        };\n        type ecomV1OrderShippingRegion = {\n            /**\n             * Name of shipping region. For example, `\"Metropolitan London\"`, or `\"Outer Melbourne suburbs\"`.\n             */\n            name?: string;\n        };\n        type ecomV1OrderSnapshotMessage = {\n            _id?: string;\n            opType?: number;\n        };\n        type ecomV1OrderSorting = {\n            /**\n             * Name of the field to sort by.\n             */\n            fieldName?: string;\n            /**\n             * Sort order.\n             */\n            order?: string;\n        };\n        type ecomV1OrderStreet = {\n            /**\n             * Street name\n             */\n            name?: string;\n            /**\n             * Street number\n             */\n            number?: string;\n        };\n        type ecomV1OrderStreetAddress = {\n            /**\n             * Street name.\n             */\n            name?: string;\n            /**\n             * Street number.\n             */\n            number?: string;\n        };\n        type ecomV1OrderSubscriptionInfo = {\n            /**\n             * Subscription ID.\n             */\n            _id?: string;\n            /**\n             * Subscription cycle. For example, if this order is for the 3rd cycle of a subscription, value will be `3`.\n             */\n            cycleNumber?: number;\n            /**\n             * Subscription option description. For example, `\"1kg of selected coffee, once a month\"`.\n             */\n            subscriptionOptionDescription?: string;\n            /**\n             * Subscription option title. For example, `\"Monthly coffee Subscription\"`.\n             */\n            subscriptionOptionTitle?: string;\n            /**\n             * Subscription detailed information.\n             */\n            subscriptionSettings?: wix_ecom_backend.Events.ecomV1OrderSubscriptionSettings;\n        };\n        type ecomV1OrderSubscriptionOptionInfo = {\n            /**\n             * Subscription option description.\n             */\n            description?: string;\n            /**\n             * Subscription option title.\n             */\n            title?: string;\n        };\n        type ecomV1OrderSubscriptionSettings = {\n            /**\n             * Whether subscription is renewed automatically at the end of each period.\n             */\n            autoRenewal?: boolean;\n            /**\n             * Number of billing cycles before subscription ends. Ignored if `autoRenewal: true`.\n             */\n            billingCycles?: number;\n            /**\n             * Frequency of recurring payment.\n             */\n            frequency?: string;\n        };\n        type ecomV1OrderTask = {\n            executeAt?: Date;\n            key?: wix_ecom_backend.Events.ecomV1OrderTaskKey;\n            payload?: string;\n        };\n        type ecomV1OrderTaskAction = {\n            cancel?: wix_ecom_backend.Events.ecomV1OrderCancel;\n            complete?: wix_ecom_backend.Events.ecomV1OrderComplete;\n            reschedule?: wix_ecom_backend.Events.ecomV1OrderReschedule;\n        };\n        type ecomV1OrderTaskActionActionOneOf = {\n            cancel?: wix_ecom_backend.Events.ecomV1OrderCancel;\n            complete?: wix_ecom_backend.Events.ecomV1OrderComplete;\n            reschedule?: wix_ecom_backend.Events.ecomV1OrderReschedule;\n        };\n        type ecomV1OrderTaskKey = {\n            appId?: string;\n            instanceId?: string;\n            subjectId?: string;\n        };\n        type ecomV1OrderTaxSummary = {\n            /**\n             * Total tax.\n             */\n            totalTax?: wix_ecom_backend.Events.ecomV1OrderPrice;\n        };\n        type ecomV1OrderTotals = {\n            /**\n             * Total calculated discount value.\n             */\n            discount?: string;\n            /**\n             * Total calculated gift card value.\n             */\n            giftCard?: string;\n            /**\n             * Total number of line items.\n             */\n            quantity?: number;\n            /**\n             * Total refund.\n             */\n            refund?: string;\n            /**\n             * Total shipping price, before tax.\n             */\n            shipping?: string;\n            /**\n             * Subtotal of all the line items, before tax.\n             */\n            subtotal?: string;\n            /**\n             * Total tax.\n             */\n            tax?: string;\n            /**\n             * Total price charged.\n             */\n            total?: string;\n            /**\n             * Total items weight.\n             */\n            weight?: string;\n        };\n        type ecomV1OrderTrackingLinkAdded = {};\n        type ecomV1OrderTrackingNumberAdded = {};\n        type ecomV1OrderTrackingNumberEdited = {};\n        type ecomV1OrderTransactionsActivity = {\n            /**\n             * Activity item author\n             */\n            author?: string;\n            /**\n             * Comment added to activity item\n             */\n            message?: string;\n            /**\n             * Activity item timestamp\n             */\n            timestamp?: Date;\n            /**\n             * Activity item type\n             */\n            type?: string;\n        };\n        type ecomV1OrderTransactionsAddInvoiceToOrderRequest = {\n            /**\n             * Invoice info.\n             */\n            invoiceInfo: wix_ecom_backend.Events.ecomV1OrderTransactionsInvoiceInfo;\n            /**\n             * Order ID.\n             */\n            orderId: string;\n        };\n        type ecomV1OrderTransactionsAddInvoiceToOrderResponse = {\n            /**\n             * List of order invoices.\n             */\n            orderInvoices?: Array<wix_ecom_backend.Events.ecomV1OrderTransactionsInvoiceInfo>;\n        };\n        type ecomV1OrderTransactionsAddPaymentsRequest = {\n            /**\n             * Order ID.\n             */\n            orderId: string;\n            /**\n             * Payments to be added to order.\n             */\n            payments: Array<wix_ecom_backend.Events.ecomV1OrderTransactionsPayment>;\n        };\n        type ecomV1OrderTransactionsAddPaymentsResponse = {\n            /**\n             * Order ID and its associated transactions.\n             */\n            orderTransactions?: wix_ecom_backend.Events.ecomV1OrderTransactionsOrderTransactions;\n            /**\n             * IDs of added order payments.\n             */\n            paymentsIds?: Array<string>;\n        };\n        type ecomV1OrderTransactionsAddress = {\n            /**\n             * Address line 1 (free text)\n             */\n            addressLine1?: string;\n            /**\n             * address line\n             */\n            addressLine2?: string;\n            /**\n             * City name\n             */\n            city?: string;\n            /**\n             * Company name\n             */\n            company?: string;\n            /**\n             * Country code (2 letters)\n             */\n            country?: string;\n            /**\n             * Email address\n             */\n            email?: string;\n            /**\n             * Addressee name\n             */\n            fullName?: wix_ecom_backend.Events.ecomV1OrderTransactionsFullName;\n            /**\n             * Phone number\n             */\n            phone?: string;\n            /**\n             * Address line 1 (street)\n             */\n            street?: wix_ecom_backend.Events.ecomV1OrderTransactionsStreet;\n            /**\n             * State or district\n             */\n            subdivision?: string;\n            /**\n             * Tax information (for Brazil only)\n             */\n            vatId?: wix_ecom_backend.Events.ecomV1OrderTransactionsVatId;\n            /**\n             * ZIP/postal code\n             */\n            zipCode?: string;\n        };\n        type ecomV1OrderTransactionsAddressAddressLine1OptionsOneOf = {\n            /**\n             * Address line 1 (free text)\n             */\n            addressLine1?: string;\n            /**\n             * Address line 1 (street)\n             */\n            street?: wix_ecom_backend.Events.ecomV1OrderTransactionsStreet;\n        };\n        type ecomV1OrderTransactionsApplicationError = {\n            code?: string;\n            data?: Object;\n            description?: string;\n        };\n        type ecomV1OrderTransactionsAppliedCoupon = {\n            /**\n             * Coupon code\n             */\n            code?: string;\n            /**\n             * Coupon ID\n             */\n            couponId?: string;\n            /**\n             * Coupon name\n             */\n            name?: string;\n        };\n        type ecomV1OrderTransactionsBackendEventMetadata = {\n            entityId: string;\n            eventTime: string;\n            id: string;\n            triggeredByAnonymizeRequest: boolean;\n        };\n        type ecomV1OrderTransactionsBillingInfo = {\n            /**\n             * Full billing address\n             */\n            address?: wix_ecom_backend.Events.ecomV1OrderTransactionsAddress;\n            /**\n             * Deprecated (use paymentProviderTransactionId instead)\n             */\n            externalTransactionId?: string;\n            /**\n             * Payment date\n             */\n            paidDate?: Date;\n            /**\n             * Transaction ID from payment gateway (e.g., Wix Payments)\n             */\n            paymentGatewayTransactionId?: string;\n            /**\n             * Payment method used for this order\n             */\n            paymentMethod?: string;\n            /**\n             * Transaction ID from payment provider (e.g., PayPal, Square, Stripe) transaction ID\n             */\n            paymentProviderTransactionId?: string;\n            /**\n             * Whether order can be refunded by payment provider (manually or automatic)\n             */\n            refundableByPaymentProvider?: boolean;\n        };\n        type ecomV1OrderTransactionsBulkActionMetadata = {\n            /**\n             * Number of items that couldn't be processed.\n             */\n            totalFailures?: number;\n            /**\n             * Number of items that were successfully processed.\n             */\n            totalSuccesses?: number;\n            /**\n             * Number of failures without details because detailed failure threshold was exceeded.\n             */\n            undetailedFailures?: number;\n        };\n        type ecomV1OrderTransactionsBulkGenerateInvoicesRequest = {\n            /**\n             * Order IDs.\n             */\n            orderIds: Array<string>;\n        };\n        type ecomV1OrderTransactionsBulkGenerateInvoicesResponse = {\n            bulkActionMetadata?: wix_ecom_backend.Events.ecomV1OrderTransactionsBulkActionMetadata;\n            results?: Array<wix_ecom_backend.Events.ecomV1OrderTransactionsBulkInvoiceResult>;\n        };\n        type ecomV1OrderTransactionsBulkInvoiceResult = {\n            item?: wix_ecom_backend.Events.ecomV1OrderTransactionsInvoiceForOrder;\n            itemMetadata?: wix_ecom_backend.Events.ecomV1OrderTransactionsItemMetadata;\n        };\n        type ecomV1OrderTransactionsBulkPaymentResult = {\n            /**\n             * Updated payment. Returned if `return_full_entity` set to `true`.\n             */\n            item?: wix_ecom_backend.Events.ecomV1OrderTransactionsPayment;\n            /**\n             * Item metadata.\n             */\n            itemMetadata?: wix_ecom_backend.Events.ecomV1OrderTransactionsItemMetadata;\n        };\n        type ecomV1OrderTransactionsBulkUpdatePaymentStatusesRequest = {\n            /**\n             * Order and payment IDs for which to update payment status.\n             */\n            paymentAndOrderIds: Array<wix_ecom_backend.Events.ecomV1OrderTransactionsPaymentAndOrderId>;\n            /**\n             * Whether to return the full payment entity (`results.item`) in the response.\n             */\n            returnFullEntity?: boolean;\n            /**\n             * Payment status.\n             */\n            status?: string;\n        };\n        type ecomV1OrderTransactionsBulkUpdatePaymentStatusesResponse = {\n            /**\n             * Bulk operation metadata.\n             */\n            bulkActionMetadata?: wix_ecom_backend.Events.ecomV1OrderTransactionsBulkActionMetadata;\n            /**\n             * Bulk operation results.\n             */\n            results?: Array<wix_ecom_backend.Events.ecomV1OrderTransactionsBulkPaymentResult>;\n        };\n        type ecomV1OrderTransactionsBuyerDetails = {\n            /**\n             * Email address\n             */\n            email?: string;\n            /**\n             * Addressee name\n             */\n            fullName?: wix_ecom_backend.Events.ecomV1OrderTransactionsFullName;\n            /**\n             * Phone number\n             */\n            phone?: string;\n        };\n        type ecomV1OrderTransactionsBuyerInfo = {\n            /**\n             * Wix customer ID\n             */\n            _id?: string;\n            /**\n             * Customer's email address\n             */\n            email?: string;\n            /**\n             * Customer's first name\n             */\n            firstName?: string;\n            /**\n             * Customer type\n             */\n            identityType?: string;\n            /**\n             * Customer's last name\n             */\n            lastName?: string;\n            /**\n             * Customer's phone number\n             */\n            phone?: string;\n            /**\n             * Deprecated (use identityType instead)\n             */\n            type?: string;\n        };\n        type ecomV1OrderTransactionsCalculateRefundItemRequest = {\n            /**\n             * ID of the line item being refunded\n             */\n            lineItemId?: string;\n            /**\n             * How much of that line item is being refunded\n             */\n            quantity?: number;\n            /**\n             * Should this item be restocked (used for validation purposes)\n             */\n            restock?: boolean;\n        };\n        type ecomV1OrderTransactionsCalculateRefundItemResponse = {\n            /**\n             * Line item ID\n             */\n            lineItemId?: string;\n            /**\n             * The line item's price\n             */\n            lineItemPrice?: number;\n        };\n        type ecomV1OrderTransactionsCalculateRefundRequest = {\n            /**\n             * Order ID\n             */\n            orderId: string;\n            /**\n             * Refunded line items and quantity\n             */\n            refundItems?: Array<wix_ecom_backend.Events.ecomV1OrderTransactionsCalculateRefundItemRequest>;\n            /**\n             * Should include shipping in refund calculation\n             */\n            refundShipping?: boolean;\n        };\n        type ecomV1OrderTransactionsCalculateRefundResponse = {\n            /**\n             * Discount given for this order\n             */\n            discount?: string;\n            /**\n             * The refundable items of that order\n             */\n            items?: Array<wix_ecom_backend.Events.ecomV1OrderTransactionsCalculateRefundItemResponse>;\n            /**\n             * Previous refund given on that order\n             */\n            previouslyRefundedAmount?: string;\n            /**\n             * Total cost of the order (without tax)\n             */\n            subtotal?: string;\n            /**\n             * Tax cost of the order\n             */\n            tax?: string;\n            /**\n             * Total refundable amount\n             */\n            total?: string;\n        };\n        type ecomV1OrderTransactionsChannelInfo = {\n            /**\n             * Reference to an order ID from an external system, as defined in channelInfo (e.g., eBay or Amazon)\n             */\n            externalOrderId?: string;\n            /**\n             * URL to the order in the external system, as defined in channelInfo (e.g., eBay or Amazon)\n             */\n            externalOrderUrl?: string;\n            /**\n             * Sales channel that submitted the order\n             */\n            type?: string;\n        };\n        type ecomV1OrderTransactionsCustomField = {\n            /**\n             * Title for the custom field\n             */\n            title?: string;\n            /**\n             * The title translated according to the buyer language\n             */\n            translatedTitle?: string;\n            /**\n             * Free text that the customer entered in the custom field during the checkout process\n             */\n            value?: string;\n        };\n        type ecomV1OrderTransactionsCustomTextFieldSelection = {\n            /**\n             * Custom text field name\n             */\n            title?: string;\n            /**\n             * Custom text field value\n             */\n            value?: string;\n        };\n        type ecomV1OrderTransactionsDiffmatokyPayload = {\n            compareChannel?: string;\n            entityId?: string;\n            errorInformation?: wix_ecom_backend.Events.ecomV1OrderTransactionsErrorInformation;\n            left?: string;\n            right?: string;\n            tags?: Array<string>;\n        };\n        type ecomV1OrderTransactionsDigitalFile = {\n            /**\n             * id of the secure file in media\n             */\n            fileId?: string;\n        };\n        type ecomV1OrderTransactionsDiscount = {\n            /**\n             * Applied coupon\n             */\n            appliedCoupon?: wix_ecom_backend.Events.ecomV1OrderTransactionsAppliedCoupon;\n            /**\n             * Deprecated (use Totals.discount instead)\n             */\n            value?: string;\n        };\n        type ecomV1OrderTransactionsEnteredBy = {\n            _id?: string;\n            /**\n             * Suppoerted values:\n             * - `'APP'`\n             * - `'CONTACT'`\n             * - `'MEMBER'`\n             * - `'USER'`\n             */\n            identityType?: string;\n        };\n        type ecomV1OrderTransactionsErrorInformation = {\n            stackTrace?: string;\n        };\n        type ecomV1OrderTransactionsFulfillment = {\n            /**\n             * Fulfillment ID (auto generated upon fulfillment creation).\n             */\n            _id?: string;\n            /**\n             * Fulfillment creation date and time.\n             */\n            dateCreated?: Date;\n            /**\n             * Information about the line items in the fulfilled order.\n             */\n            lineItems?: Array<wix_ecom_backend.Events.ecomV1OrderTransactionsFulfillmentLineItem>;\n            /**\n             * Tracking information.\n             */\n            trackingInfo?: wix_ecom_backend.Events.ecomV1OrderTransactionsFulfillmentTrackingInfo;\n        };\n        type ecomV1OrderTransactionsFulfillmentLineItem = {\n            /**\n             * Line item ID (mirrors the line item index of the order).\n             */\n            index?: number;\n            /**\n             * Line item quantity.\n             * On creation, if this parameter isn't passed, the new fulfillment will automatically include all items of this line item that have not already been linked to a fulfillment.\n             * If the order does not have the requested quantity of line items available to add to this fulfillment, the fulfillment will not be created and an error will be returned.\n             * This property will always have a value when returned.\n             */\n            quantity?: number;\n        };\n        type ecomV1OrderTransactionsFulfillmentTrackingInfo = {\n            /**\n             * Shipping provider. Using the following shipping providers will allow for autofilling the tracking link:\n             * * `fedex`\n             * * `ups`\n             * * `usps`\n             * * `dhl`\n             * * `canadaPost`\n             */\n            shippingProvider?: string;\n            /**\n             * Tracking link - autofilled if using a predefined shipping provider, otherwise provided on creation.\n             */\n            trackingLink?: string;\n            /**\n             * Tracking number.\n             */\n            trackingNumber?: string;\n        };\n        type ecomV1OrderTransactionsFullName = {\n            /**\n             * Customer's first name\n             */\n            firstName?: string;\n            /**\n             * Customer's last name\n             */\n            lastName?: string;\n        };\n        type ecomV1OrderTransactionsGenerateInvoiceRequest = {\n            /**\n             * Order ID.\n             */\n            orderId: string;\n        };\n        type ecomV1OrderTransactionsGenerateInvoiceResponse = {\n            /**\n             * Invoice ID.\n             */\n            invoiceId?: string;\n        };\n        type ecomV1OrderTransactionsGetRefundabilityStatusRequest = {\n            /**\n             * Order ID.\n             */\n            orderId: string;\n        };\n        type ecomV1OrderTransactionsGetRefundabilityStatusResponse = {\n            /**\n             * Refundability details.\n             */\n            refundabilities?: Array<wix_ecom_backend.Events.ecomV1OrderTransactionsRefundability>;\n            /**\n             * Whether the order supports refunding per item.\n             */\n            refundablePerItem?: boolean;\n        };\n        type ecomV1OrderTransactionsGiftCard = {\n            /**\n             * giftcard internal ID\n             */\n            _id?: string;\n            /**\n             * giftcard amount\n             */\n            amount?: string;\n            /**\n             * giftcard provider appid\n             */\n            providerId?: string;\n            transactionId?: string;\n        };\n        type ecomV1OrderTransactionsGiftCardPaymentDetails = {\n            /**\n             * ID of the app that created the gift card.\n             */\n            appId?: string;\n            /**\n             * Gift card ID.\n             */\n            giftCardId?: string;\n            /**\n             * Gift card payment ID.\n             */\n            giftCardPaymentId?: string;\n            /**\n             * Whether the gift card is voided.\n             */\n            voided?: boolean;\n        };\n        type ecomV1OrderTransactionsIndexingMessage = {\n            _id?: string;\n            opType?: number;\n            requiredVersions?: Array<string>;\n        };\n        type ecomV1OrderTransactionsInvoiceForOrder = {\n            /**\n             * Invoice ID.\n             */\n            invoiceId?: string;\n            /**\n             * Order ID.\n             */\n            orderId?: string;\n        };\n        type ecomV1OrderTransactionsInvoiceInfo = {\n            /**\n             * Invoice creation date and time.\n             */\n            _createdDate?: Date;\n            /**\n             * Invoice ID.\n             */\n            _id?: string;\n            /**\n             * ID of the app that set the invoice.\n             */\n            appId?: string;\n            /**\n             * Invoice URL.\n             */\n            url?: string;\n        };\n        type ecomV1OrderTransactionsInvoicesForOrder = {\n            /**\n             * Invoices info.\n             */\n            invoicesInfo?: Array<wix_ecom_backend.Events.ecomV1OrderTransactionsInvoiceInfo>;\n            /**\n             * Order ID.\n             */\n            orderId?: string;\n        };\n        type ecomV1OrderTransactionsItemMetadata = {\n            /**\n             * Item ID. Should always be available, unless it's impossible (for example, when failing to create an item).\n             */\n            _id?: string;\n            /**\n             * Details about the error in case of failure.\n             */\n            error?: wix_ecom_backend.Events.ecomV1OrderTransactionsApplicationError;\n            /**\n             * Index of the item within the request array. Allows for correlation between request and response items.\n             */\n            originalIndex?: number;\n            /**\n             * Whether the requested action was successful for this item. When `false`, the `error` field is populated.\n             */\n            success?: boolean;\n        };\n        type ecomV1OrderTransactionsLineItem = {\n            /**\n             * Line item custom text field entry\n             */\n            customTextFields?: Array<wix_ecom_backend.Events.ecomV1OrderTransactionsCustomTextFieldSelection>;\n            /**\n             * Discount applied for this line item\n             */\n            discount?: string;\n            /**\n             * Line item fulfillerId from stores fulfillers. No value equals self fulfilled\n             */\n            fulfillerId?: string;\n            /**\n             * Line item ID (auto-generated, stable within this order only)\n             */\n            index?: number;\n            /**\n             * Line item type (may be extended)\n             */\n            lineItemType?: string;\n            /**\n             * Primary media for preview of the line item\n             */\n            mediaItem?: wix_ecom_backend.Events.ecomV1OrderTransactionsMediaItem;\n            /**\n             * Line item name\n             */\n            name?: string;\n            /**\n             * Line item notes\n             */\n            notes?: string;\n            /**\n             * Line item options ordered\n             */\n            options?: Array<wix_ecom_backend.Events.ecomV1OrderTransactionsOptionSelection>;\n            /**\n             * Deprecated (use priceData instead)\n             */\n            price?: string;\n            /**\n             * Price data\n             */\n            priceData?: wix_ecom_backend.Events.ecomV1OrderTransactionsLineItemPriceData;\n            /**\n             * Line item product ID (optional for POS orders)\n             */\n            productId?: string;\n            /**\n             * Line item quantity\n             */\n            quantity?: number;\n            /**\n             * Line item SKU\n             */\n            sku?: string;\n            /**\n             * Tax applied for this line item\n             */\n            tax?: string;\n            /**\n             * Tax group ID\n             */\n            taxGroupId?: string;\n            /**\n             * Deprecated (use priceData instead)\n             */\n            taxIncludedInPrice?: boolean;\n            /**\n             * Deprecated (use priceData instead)\n             */\n            totalPrice?: string;\n            /**\n             * Product name, translated into the customer's language\n             */\n            translatedName?: string;\n            /**\n             * Line item variantId (from Stores Catalog)\n             */\n            variantId?: string;\n            /**\n             * Line item weight\n             */\n            weight?: string;\n        };\n        type ecomV1OrderTransactionsLineItemPriceData = {\n            /**\n             * Line item price\n             */\n            price?: string;\n            /**\n             * Whether tax is included in the price set for this line item\n             */\n            taxIncludedInPrice?: boolean;\n            /**\n             * Total price charged to the customer (per line item) after computation of quantity and discount\n             */\n            totalPrice?: string;\n        };\n        type ecomV1OrderTransactionsListInvoicesForMultipleOrdersRequest = {\n            /**\n             * Order IDs for which to retrieve invoices.\n             */\n            orderIds: Array<string>;\n        };\n        type ecomV1OrderTransactionsListInvoicesForMultipleOrdersResponse = {\n            /**\n             * List of order IDs and their associated invoices.\n             */\n            invoicesForOrder?: Array<wix_ecom_backend.Events.ecomV1OrderTransactionsInvoicesForOrder>;\n        };\n        type ecomV1OrderTransactionsListInvoicesForSingleOrderRequest = {\n            /**\n             * Order ID.\n             */\n            orderId: string;\n        };\n        type ecomV1OrderTransactionsListInvoicesForSingleOrderResponse = {\n            /**\n             * List of invoices.\n             */\n            invoices?: Array<wix_ecom_backend.Events.ecomV1OrderTransactionsInvoiceInfo>;\n        };\n        type ecomV1OrderTransactionsListTransactionsForMultipleOrdersRequest = {\n            /**\n             * Order IDs for which to retrieve transactions.\n             */\n            orderIds: Array<string>;\n        };\n        type ecomV1OrderTransactionsListTransactionsForMultipleOrdersResponse = {\n            /**\n             * List of order IDs and their associated transactions.\n             */\n            orderTransactions?: Array<wix_ecom_backend.Events.ecomV1OrderTransactionsOrderTransactions>;\n        };\n        type ecomV1OrderTransactionsListTransactionsForSingleOrderRequest = {\n            /**\n             * Order ID.\n             */\n            orderId: string;\n        };\n        type ecomV1OrderTransactionsListTransactionsForSingleOrderResponse = {\n            /**\n             * Order ID and its associated transactions.\n             */\n            orderTransactions?: wix_ecom_backend.Events.ecomV1OrderTransactionsOrderTransactions;\n        };\n        type ecomV1OrderTransactionsMediaItem = {\n            /**\n             * Media ID (for media items previously saved in Wix Media)\n             */\n            _id?: string;\n            /**\n             * Alternative text for presentation when media cannot be displayed\n             */\n            altText?: string;\n            /**\n             * Media external URL\n             */\n            externalImageUrl?: string;\n            /**\n             * Media item height\n             */\n            height?: number;\n            /**\n             * Deprecated\n             */\n            mediaId?: string;\n            /**\n             * Media type\n             */\n            mediaType?: string;\n            /**\n             * Media URL\n             */\n            url?: string;\n            /**\n             * Media item width\n             */\n            width?: number;\n        };\n        type ecomV1OrderTransactionsMembershipName = {\n            /**\n             * The name of this membership\n             */\n            original?: string;\n            /**\n             * Optional - Translated name of this membership. Defaults to `original` when not provided.\n             */\n            translated?: string;\n        };\n        type ecomV1OrderTransactionsMembershipPaymentDetails = {\n            /**\n             * The transaction id under the membership system. Can be used to void it\n             */\n            externalTransactionId?: string;\n            /**\n             * ID of the line item this membership applies to.\n             */\n            lineItemId?: string;\n            /**\n             * The membership id\n             */\n            membershipId?: string;\n            /**\n             * Membership name\n             */\n            name?: wix_ecom_backend.Events.ecomV1OrderTransactionsMembershipName;\n            /**\n             * ID of the application providing this payment option\n             */\n            providerAppId?: string;\n            /**\n             * Payment status\n             */\n            status?: string;\n            /**\n             * Whether the membership is voided.\n             */\n            voided?: boolean;\n        };\n        type ecomV1OrderTransactionsOptionSelection = {\n            /**\n             * Option name\n             */\n            option?: string;\n            /**\n             * Selected choice for this option\n             */\n            selection?: string;\n        };\n        type ecomV1OrderTransactionsOrder = {\n            /**\n             * Order ID (auto-generated upon order creation).\n             */\n            _id?: string;\n            /**\n             * Log of updates related to the order.\n             */\n            activities?: Array<wix_ecom_backend.Events.ecomV1OrderTransactionsActivity>;\n            /**\n             * Whether or not the order was archived.\n             */\n            archived?: boolean;\n            /**\n             * Billing information.\n             */\n            billingInfo?: wix_ecom_backend.Events.ecomV1OrderTransactionsBillingInfo;\n            /**\n             * Buyer information.\n             */\n            buyerInfo?: wix_ecom_backend.Events.ecomV1OrderTransactionsBuyerInfo;\n            /**\n             * Language for communication with the buyer. Defaults to the site language.\n             * For a site that supports multiple languages, this is the language the buyer selected.\n             */\n            buyerLanguage?: string;\n            /**\n             * A note added by the buyer.\n             */\n            buyerNote?: string;\n            /**\n             * Shopping cart ID.\n             */\n            cartId?: string;\n            /**\n             * Information about the sales channel that submitted this order.\n             */\n            channelInfo?: wix_ecom_backend.Events.ecomV1OrderTransactionsChannelInfo;\n            /**\n             * Currency used for pricing in this store.\n             */\n            currency?: string;\n            /**\n             * Custom field information.\n             */\n            customField?: wix_ecom_backend.Events.ecomV1OrderTransactionsCustomField;\n            /**\n             * Order creation date and time.\n             */\n            dateCreated?: Date;\n            /**\n             * Discount information.\n             */\n            discount?: wix_ecom_backend.Events.ecomV1OrderTransactionsDiscount;\n            /**\n             * Identity of the order's initiator.\n             */\n            enteredBy?: wix_ecom_backend.Events.ecomV1OrderTransactionsEnteredBy;\n            /**\n             * Order's current fulfillment status (whether the order received a tracking number or was delivered/picked up).\n             */\n            fulfillmentStatus?: string;\n            /**\n             * Order fulfillment information.\n             */\n            fulfillments?: Array<wix_ecom_backend.Events.ecomV1OrderTransactionsFulfillment>;\n            /**\n             * Invoice information.\n             */\n            invoiceInfo?: wix_ecom_backend.Events.ecomV1OrderTransactionsV2InvoiceInfo;\n            /**\n             * Date and time of latest update.\n             */\n            lastUpdated?: Date;\n            /**\n             * Line items ordered.\n             */\n            lineItems?: Array<wix_ecom_backend.Events.ecomV1OrderTransactionsLineItem>;\n            /**\n             * Order number displayed in the owner's store (auto-generated).\n             */\n            number?: number;\n            /**\n             * Order’s unique numeric ID.\n             * Primarily used for sorting and filtering when crawling all orders.\n             */\n            numericId?: string;\n            /**\n             * Current status of the payment.\n             */\n            paymentStatus?: string;\n            /**\n             * Deprecated.\n             */\n            read?: boolean;\n            /**\n             * Refund information.\n             */\n            refunds?: Array<wix_ecom_backend.Events.ecomV1OrderTransactionsV2Refund>;\n            /**\n             * Shipping information.\n             */\n            shippingInfo?: wix_ecom_backend.Events.ecomV1OrderTransactionsShippingInfo;\n            /**\n             * Subscription information.\n             */\n            subscriptionInfo?: wix_ecom_backend.Events.ecomV1OrderTransactionsSubscriptionInfo;\n            /**\n             * Totals for order's line items.\n             */\n            totals?: wix_ecom_backend.Events.ecomV1OrderTransactionsTotals;\n            /**\n             * Weight unit used in this store.\n             */\n            weightUnit?: string;\n        };\n        type ecomV1OrderTransactionsOrderRefunded = {\n            /**\n             * Refunded order data.\n             */\n            order?: wix_ecom_backend.Events.ecomV1OrderTransactionsOrder;\n            /**\n             * Refund ID.\n             */\n            refundId?: string;\n        };\n        type ecomV1OrderTransactionsOrderTransactions = {\n            /**\n             * Order ID.\n             */\n            orderId?: string;\n            /**\n             * Payments to the merchant.\n             */\n            payments?: Array<wix_ecom_backend.Events.ecomV1OrderTransactionsPayment>;\n            /**\n             * Refunds to the buyer.\n             */\n            refunds?: Array<wix_ecom_backend.Events.ecomV1OrderTransactionsRefund>;\n        };\n        type ecomV1OrderTransactionsOrderTransactionsPayments = {\n            data: wix_ecom_backend.Events.ecomV1OrderTransactionsPaymentsUpdated;\n            metadata: wix_ecom_backend.Events.ecomV1OrderTransactionsBackendEventMetadata;\n        };\n        type ecomV1OrderTransactionsOrderTransactionsRefunded = {\n            data: wix_ecom_backend.Events.ecomV1OrderTransactionsRefundCreated;\n            metadata: wix_ecom_backend.Events.ecomV1OrderTransactionsBackendEventMetadata;\n        };\n        type ecomV1OrderTransactionsPayment = {\n            /**\n             * Payment creation date and time. Defaults to current time when not provided.\n             */\n            _createdDate?: Date;\n            /**\n             * Payment ID (auto-generated upon payment creation).\n             */\n            _id?: string;\n            /**\n             * Payment modification date and time.\n             */\n            _updatedDate?: Date;\n            /**\n             * Payment amount.\n             */\n            amount?: wix_ecom_backend.Events.ecomV1OrderTransactionsPrice;\n            /**\n             * Gift card payment details.\n             */\n            giftcardPaymentDetails?: wix_ecom_backend.Events.ecomV1OrderTransactionsGiftCardPaymentDetails;\n            /**\n             * Whether refunds are explicitly disabled.\n             * True means this payment is not refundable.\n             * False means this payment might be refunded (depending on the payment provider).\n             */\n            refundDisabled?: boolean;\n            /**\n             * Regular payment details.\n             */\n            regularPaymentDetails?: wix_ecom_backend.Events.ecomV1OrderTransactionsRegularPaymentDetails;\n        };\n        type ecomV1OrderTransactionsPaymentAndOrderId = {\n            /**\n             * Order ID.\n             */\n            orderId?: string;\n            /**\n             * Payment ID.\n             */\n            paymentId?: string;\n        };\n        type ecomV1OrderTransactionsPaymentPaymentDetailsOneOf = {\n            /**\n             * Gift card payment details.\n             */\n            giftcardPaymentDetails?: wix_ecom_backend.Events.ecomV1OrderTransactionsGiftCardPaymentDetails;\n            /**\n             * Regular payment details.\n             */\n            regularPaymentDetails?: wix_ecom_backend.Events.ecomV1OrderTransactionsRegularPaymentDetails;\n        };\n        type ecomV1OrderTransactionsPaymentRefund = {\n            /**\n             * Refund amount. Not relevant for membership refunds.\n             */\n            amount?: wix_ecom_backend.Events.ecomV1OrderTransactionsPrice;\n            /**\n             * Whether refund is made externally and manually (on the payment provider's side)\n             * When false (default), the payment gateway will be called in order to make an actual refund, and then the payment will be marked as refunded.\n             * When true, the payment will only be *marked* as refunded, and no actual refund will be performed.\n             */\n            externalRefund?: boolean;\n            /**\n             * Specific payment within the order to refund\n             */\n            paymentId?: string;\n        };\n        type ecomV1OrderTransactionsPaymentsUpdated = {\n            /**\n             * Updated order transactions.\n             */\n            orderTransactions?: wix_ecom_backend.Events.ecomV1OrderTransactionsOrderTransactions;\n            /**\n             * IDs of the updated payments.\n             */\n            paymentIds?: Array<string>;\n        };\n        type ecomV1OrderTransactionsPickupAddress = {\n            /**\n             * Address\n             */\n            addressLine1?: string;\n            /**\n             * City\n             */\n            city?: string;\n            /**\n             * Country code (3 letters)\n             */\n            country?: string;\n            /**\n             * State/District\n             */\n            subdivision?: string;\n            /**\n             * ZIP/postal code\n             */\n            zipCode?: string;\n        };\n        type ecomV1OrderTransactionsPickupDetails = {\n            /**\n             * Deprecated (use billingInfo instead).\n             */\n            buyerDetails?: wix_ecom_backend.Events.ecomV1OrderTransactionsBuyerDetails;\n            /**\n             * Pickup address.\n             */\n            pickupAddress?: wix_ecom_backend.Events.ecomV1OrderTransactionsPickupAddress;\n            /**\n             * Store owner's pickup instructions.\n             */\n            pickupInstructions?: string;\n        };\n        type ecomV1OrderTransactionsPrice = {\n            /**\n             * Amount.\n             */\n            amount?: string;\n            /**\n             * Amount formatted with currency symbol.\n             */\n            formattedAmount?: string;\n        };\n        type ecomV1OrderTransactionsRefund = {\n            /**\n             * Refund creation date and time. Defaults to current time when not provided.\n             */\n            _createdDate?: Date;\n            /**\n             * Refund ID (auto-generated upon refund creation).\n             */\n            _id?: string;\n            /**\n             * Business details.\n             */\n            details?: wix_ecom_backend.Events.ecomV1OrderTransactionsRefundDetails;\n            /**\n             * Transaction refund details.\n             */\n            transactions?: Array<wix_ecom_backend.Events.ecomV1OrderTransactionsRefundTransaction>;\n        };\n        type ecomV1OrderTransactionsRefundCreated = {\n            /**\n             * Personal note added to the email\n             */\n            customMessage?: string;\n            /**\n             * Updated order transactions.\n             */\n            orderTransactions?: wix_ecom_backend.Events.ecomV1OrderTransactionsOrderTransactions;\n            /**\n             * ID of the created refund.\n             */\n            refundId?: string;\n            /**\n             * Refunded line items and quantities that are part of the created refund.\n             */\n            refundItems?: Array<wix_ecom_backend.Events.ecomV1OrderTransactionsRefundItem>;\n            /**\n             * How to restock items as part of this refund.\n             */\n            restockInfo?: wix_ecom_backend.Events.ecomV1OrderTransactionsRestockInfo;\n            /**\n             * Should send a confirmation mail to the customer\n             */\n            sendOrderRefundedEmail?: boolean;\n        };\n        type ecomV1OrderTransactionsRefundDetails = {\n            /**\n             * Refunded line items and quantities.\n             */\n            items?: Array<wix_ecom_backend.Events.ecomV1OrderTransactionsRefundItem>;\n            /**\n             * Reason for refund, given by user (optional).\n             */\n            reason?: string;\n            /**\n             * Whether shipping rate is also refunded.\n             */\n            shippingIncluded?: boolean;\n        };\n        type ecomV1OrderTransactionsRefundItem = {\n            /**\n             * ID of the line item being refunded.\n             */\n            lineItemId?: string;\n            /**\n             * Line item quantity being refunded.\n             */\n            quantity?: number;\n        };\n        type ecomV1OrderTransactionsRefundTransaction = {\n            /**\n             * Refund amount.\n             */\n            amount?: wix_ecom_backend.Events.ecomV1OrderTransactionsPrice;\n            /**\n             * Whether refund was made externally and manually (on the payment provider's side).\n             */\n            externalRefund?: boolean;\n            /**\n             * ID of the payment gateway refund.\n             */\n            gatewayRefundId?: string;\n            /**\n             * ID of the payment associated with this refund.\n             */\n            paymentId?: string;\n            /**\n             * ID of the refund in the payment provider's system.\n             */\n            providerRefundId?: string;\n            /**\n             * Refund status.\n             */\n            refundStatus?: string;\n        };\n        type ecomV1OrderTransactionsRefundability = {\n            /**\n             * Reason why payment is only refundable manually.\n             */\n            manuallyRefundableReason?: string;\n            /**\n             * Reason why payment is not refundable.\n             */\n            nonRefundableReason?: string;\n            /**\n             * Payment ID.\n             */\n            paymentId?: string;\n            /**\n             * Link to payment provider dashboard.\n             */\n            providerLink?: string;\n            /**\n             * Payment refundability status.\n             */\n            refundabilityStatus?: string;\n        };\n        type ecomV1OrderTransactionsRefundabilityAdditionalRefundabilityInfoOneOf = {\n            /**\n             * Reason why payment is only refundable manually.\n             */\n            manuallyRefundableReason?: string;\n            /**\n             * Reason why payment is not refundable.\n             */\n            nonRefundableReason?: string;\n        };\n        type ecomV1OrderTransactionsRegularPaymentDetails = {\n            /**\n             * Transaction ID from payment gateway (e.g., Wix Payments, chargeId), what we used to call payment_gateway_transaction_id\n             */\n            gatewayTransactionId?: string;\n            /**\n             * Whether the payment is/was made offline. For example, when using cash or when marked as paid in the Business Manager.\n             */\n            offlinePayment?: boolean;\n            /**\n             * Payment method. Non-exhaustive list of supported values:\n             * CreditCard, Alipay, AstropayCash, AstropayDBT, AstropayMBT, Bitcoin, BitPay, Cash, ConvenienceStore, EPay, Fake, Giropay, IDeal, InPerson,\n             * Klarna, MercadoPago, Netpay, NordeaSolo, Offline, PagSeguro, PayEasy, PayPal, Paysafecard, Paysafecash, PointOfSale, Poli,\n             * Privat24, Przelewy24, RapidTransfer, Sepa, Skrill, Sofort, Trustly,Neteller, Unionpay, UniPay, Yandex.\n             */\n            paymentMethod?: string;\n            /**\n             * Wix Payment's order id\n             */\n            paymentOrderId?: string;\n            /**\n             * Transaction ID in the payment provider's system (for example, PayPal, Square, Stripe). Does not exist for offline payments.\n             */\n            providerTransactionId?: string;\n            /**\n             * Payment status.\n             */\n            status?: string;\n        };\n        type ecomV1OrderTransactionsRestockInfo = {\n            /**\n             * Restocked line items and quantities, only relevant for `SOME_ITEMS` type.\n             */\n            items?: Array<wix_ecom_backend.Events.ecomV1OrderTransactionsRestockItem>;\n            /**\n             * Restock policy type.\n             */\n            type?: string;\n        };\n        type ecomV1OrderTransactionsRestockItem = {\n            /**\n             * ID of the line item being restocked.\n             */\n            lineItemId?: string;\n            /**\n             * Line item quantity being restocked.\n             */\n            quantity?: number;\n        };\n        type ecomV1OrderTransactionsShipmentDetails = {\n            /**\n             * Shipping destination address.\n             */\n            address?: wix_ecom_backend.Events.ecomV1OrderTransactionsAddress;\n            /**\n             * Discount applied for shipping.\n             */\n            discount?: string;\n            /**\n             * Price data.\n             */\n            priceData?: wix_ecom_backend.Events.ecomV1OrderTransactionsShippingPriceData;\n            /**\n             * Tax applied for shipping.\n             */\n            tax?: string;\n            /**\n             * Deprecated (use fulfillments instead).\n             */\n            trackingInfo?: wix_ecom_backend.Events.ecomV1OrderTransactionsTrackingInfo;\n        };\n        type ecomV1OrderTransactionsShippingInfo = {\n            /**\n             * Unique code of provided shipping option. For example, `\"usps_std_overnight\"`.\n             */\n            code?: string;\n            /**\n             * Latest expected delivery date.\n             */\n            deliverByDate?: Date;\n            /**\n             * Shipping option name.\n             */\n            deliveryOption?: string;\n            /**\n             * Shipping option delivery time.\n             */\n            estimatedDeliveryTime?: string;\n            /**\n             * Pickup details (when this object describes pickup).\n             */\n            pickupDetails?: wix_ecom_backend.Events.ecomV1OrderTransactionsPickupDetails;\n            /**\n             * Shipment details (when this object describes shipment).\n             */\n            shipmentDetails?: wix_ecom_backend.Events.ecomV1OrderTransactionsShipmentDetails;\n            /**\n             * Shipping region.\n             */\n            shippingRegion?: string;\n        };\n        type ecomV1OrderTransactionsShippingInfoDetailsOneOf = {\n            /**\n             * Pickup details (when this object describes pickup).\n             */\n            pickupDetails?: wix_ecom_backend.Events.ecomV1OrderTransactionsPickupDetails;\n            /**\n             * Shipment details (when this object describes shipment).\n             */\n            shipmentDetails?: wix_ecom_backend.Events.ecomV1OrderTransactionsShipmentDetails;\n        };\n        type ecomV1OrderTransactionsShippingPriceData = {\n            /**\n             * Shipping price.\n             */\n            price?: string;\n            /**\n             * Whether tax is included in the price.\n             */\n            taxIncludedInPrice?: boolean;\n        };\n        type ecomV1OrderTransactionsSnapshotMessage = {\n            _id?: string;\n            opType?: number;\n        };\n        type ecomV1OrderTransactionsStreet = {\n            /**\n             * Street name\n             */\n            name?: string;\n            /**\n             * Street number\n             */\n            number?: string;\n        };\n        type ecomV1OrderTransactionsSubscriptionInfo = {\n            /**\n             * Subscription ID.\n             */\n            _id?: string;\n            /**\n             * Current cycle number. For example, if the subscription is in the 3rd month of a 4-month subscription, the value will be `3`.\n             */\n            cycleNumber?: number;\n            /**\n             * Subscription options info.\n             */\n            subscriptionOptionInfo?: wix_ecom_backend.Events.ecomV1OrderTransactionsSubscriptionOptionInfo;\n            /**\n             * Subscription settings.\n             */\n            subscriptionSettings?: wix_ecom_backend.Events.ecomV1OrderTransactionsSubscriptionSettings;\n        };\n        type ecomV1OrderTransactionsSubscriptionOptionInfo = {\n            /**\n             * Subscription option description.\n             */\n            description?: string;\n            /**\n             * Subscription option title.\n             */\n            title?: string;\n        };\n        type ecomV1OrderTransactionsSubscriptionSettings = {\n            /**\n             * Whether subscription is renewed automatically at the end of each period.\n             */\n            autoRenewal?: boolean;\n            /**\n             * Number of billing cycles before subscription ends. Ignored if `autoRenewal: true`.\n             */\n            billingCycles?: number;\n            /**\n             * Frequency of recurring payment.\n             */\n            frequency?: string;\n        };\n        type ecomV1OrderTransactionsTotals = {\n            /**\n             * Total calculated discount value.\n             */\n            discount?: string;\n            /**\n             * Total calculated gift card value.\n             */\n            giftCard?: string;\n            /**\n             * Total number of line items.\n             */\n            quantity?: number;\n            /**\n             * Total refund.\n             */\n            refund?: string;\n            /**\n             * Total shipping price, before tax.\n             */\n            shipping?: string;\n            /**\n             * Subtotal of all the line items, before tax.\n             */\n            subtotal?: string;\n            /**\n             * Total tax.\n             */\n            tax?: string;\n            /**\n             * Total price charged.\n             */\n            total?: string;\n            /**\n             * Total items weight.\n             */\n            weight?: string;\n        };\n        type ecomV1OrderTransactionsTrackingInfo = {\n            /**\n             * Shipping provider\n             */\n            shippingProvider?: string;\n            /**\n             * Tracking link\n             */\n            trackingLink?: string;\n            /**\n             * Tracking number\n             */\n            trackingNumber?: string;\n        };\n        type ecomV1OrderTransactionsTriggerRefundRequest = {\n            /**\n             * Personal note added to the email\n             */\n            customMessage?: string;\n            /**\n             * Business model of a refund\n             */\n            details?: wix_ecom_backend.Events.ecomV1OrderTransactionsRefundDetails;\n            /**\n             * The order this refund related to\n             */\n            orderId: string;\n            /**\n             * Refund operations information\n             * Currently, only *one* payment refund is supported per request\n             */\n            payments: Array<wix_ecom_backend.Events.ecomV1OrderTransactionsPaymentRefund>;\n            /**\n             * How to restock items as part of this refund\n             */\n            restockInfo?: wix_ecom_backend.Events.ecomV1OrderTransactionsRestockInfo;\n            /**\n             * Should send a confirmation mail to the customer\n             */\n            sendOrderRefundedEmail?: boolean;\n        };\n        type ecomV1OrderTransactionsTriggerRefundResponse = {\n            /**\n             * All order's transactions after the refunds were added\n             */\n            orderTransactions?: wix_ecom_backend.Events.ecomV1OrderTransactionsOrderTransactions;\n            /**\n             * Created refund ID\n             */\n            refundId?: string;\n        };\n        type ecomV1OrderTransactionsUpdatePaymentStatusRequest = {\n            /**\n             * Order ID.\n             */\n            orderId: string;\n            /**\n             * Payment ID.\n             */\n            paymentId: string;\n            /**\n             * Payment status.\n             */\n            status?: string;\n        };\n        type ecomV1OrderTransactionsUpdatePaymentStatusResponse = {\n            /**\n             * Order ID and its associated transactions after update.\n             */\n            orderTransactions?: wix_ecom_backend.Events.ecomV1OrderTransactionsOrderTransactions;\n        };\n        type ecomV1OrderTransactionsV2InvoiceInfo = {\n            /**\n             * Invoice ID\n             */\n            _id?: string;\n            /**\n             * Invoice source\n             */\n            source?: string;\n        };\n        type ecomV1OrderTransactionsV2Refund = {\n            /**\n             * Refund ID.\n             */\n            _id?: string;\n            /**\n             * Refund amount.\n             */\n            amount?: string;\n            /**\n             * Refund created timestamp.\n             */\n            dateCreated?: Date;\n            /**\n             * Whether refund was made externally (on the payment provider's side).\n             */\n            externalRefund?: boolean;\n            /**\n             * Payment provider transaction ID. Used to find refund transaction info on the payment provider's side.\n             */\n            paymentProviderTransactionId?: string;\n            /**\n             * Reason for refund, given by user (optional).\n             */\n            reason?: string;\n        };\n        type ecomV1OrderTransactionsVatId = {\n            /**\n             * Customer's tax ID\n             */\n            number?: string;\n            /**\n             * tax type\n             */\n            type?: string;\n        };\n        type ecomV1OrderTriggerSideEffectsFromLegacyData = {\n            orderId?: string;\n            ordersExperiments?: wix_ecom_backend.Events.ecomV1OrderOrdersExperiments;\n            storeId?: string;\n        };\n        type ecomV1OrderUnArchiveOrderRequest = {\n            /**\n             * Order ID.\n             */\n            _id: string;\n        };\n        type ecomV1OrderUnArchiveOrderResponse = {\n            /**\n             * Unarchived order.\n             */\n            order?: wix_ecom_backend.Events.ecomV1OrderOrder;\n        };\n        type ecomV1OrderUpdateActivityRequest = {\n            /**\n             * Order ID.\n             */\n            _id: string;\n            /**\n             * Activity info.\n             */\n            activity: wix_ecom_backend.Events.ecomV1OrderPublicActivity;\n            /**\n             * ID of the activity to update.\n             */\n            activityId: string;\n        };\n        type ecomV1OrderUpdateActivityResponse = {\n            /**\n             * Updated order.\n             */\n            order?: wix_ecom_backend.Events.ecomV1OrderOrder;\n        };\n        type ecomV1OrderUpdateBillingContactDetailsRequest = {\n            /**\n             * Order ID.\n             */\n            _id: string;\n            /**\n             * Contact details.\n             */\n            addressContactDetails?: wix_ecom_backend.Events.ecomV1OrderFullAddressContactDetails;\n        };\n        type ecomV1OrderUpdateBillingContactDetailsResponse = {\n            /**\n             * Updated order.\n             */\n            order?: wix_ecom_backend.Events.ecomV1OrderOrder;\n        };\n        type ecomV1OrderUpdateBuyerInfoRequest = {\n            /**\n             * Order ID.\n             */\n            _id: string;\n            /**\n             * Buyer info.\n             */\n            buyerInfo?: wix_ecom_backend.Events.ecomV1OrderBuyerInfoUpdate;\n        };\n        type ecomV1OrderUpdateBuyerInfoResponse = {\n            /**\n             * Updated order.\n             */\n            order?: wix_ecom_backend.Events.ecomV1OrderOrder;\n        };\n        type ecomV1OrderUpdateLineItemsDescriptionLinesRequest = {\n            /**\n             * Order ID.\n             */\n            _id: string;\n            /**\n             * Line items.\n             */\n            lineItems: Array<wix_ecom_backend.Events.ecomV1OrderLineItemUpdate>;\n        };\n        type ecomV1OrderUpdateLineItemsDescriptionLinesResponse = {\n            /**\n             * Updated order.\n             */\n            order?: wix_ecom_backend.Events.ecomV1OrderOrder;\n        };\n        type ecomV1OrderUpdateOrderShippingAddressRequest = {\n            /**\n             * Order ID.\n             */\n            _id: string;\n            /**\n             * Shipping address and contact details to be updated.\n             */\n            shippingAddress: wix_ecom_backend.Events.ecomV1OrderAddressWithContact;\n        };\n        type ecomV1OrderUpdateOrderShippingAddressResponse = {\n            /**\n             * Updated order.\n             */\n            order?: wix_ecom_backend.Events.ecomV1OrderOrder;\n        };\n        type ecomV1OrderV1SubscriptionSettings = {\n            /**\n             * Whether subscription is renewed automatically at the end of each period.\n             */\n            autoRenewal?: boolean;\n            /**\n             * Number of billing cycles before subscription ends. Ignored if `autoRenewal: true`.\n             */\n            billingCycles?: number;\n            /**\n             * Frequency of recurring payment.\n             */\n            frequency?: string;\n        };\n        type ecomV1OrderV2BuyerInfo = {\n            /**\n             * Wix customer ID\n             */\n            _id?: string;\n            /**\n             * Customer's email address\n             */\n            email?: string;\n            /**\n             * Customer's first name\n             */\n            firstName?: string;\n            /**\n             * Customer type\n             */\n            identityType?: string;\n            /**\n             * Customer's last name\n             */\n            lastName?: string;\n            /**\n             * Customer's phone number\n             */\n            phone?: string;\n            /**\n             * Deprecated (use identityType instead)\n             */\n            type?: string;\n        };\n        type ecomV1OrderV2SubscriptionInfo = {\n            /**\n             * Subscription ID.\n             */\n            _id?: string;\n            /**\n             * Current cycle number. For example, if the subscription is in the 3rd month of a 4-month subscription, the value will be `3`.\n             */\n            cycleNumber?: number;\n            /**\n             * Subscription options info.\n             */\n            subscriptionOptionInfo?: wix_ecom_backend.Events.ecomV1OrderSubscriptionOptionInfo;\n            /**\n             * Subscription settings.\n             */\n            subscriptionSettings?: wix_ecom_backend.Events.ecomV1OrderV1SubscriptionSettings;\n        };\n        type ecomV1OrderVatId = {\n            /**\n             * Customer's tax ID\n             */\n            _id?: string;\n            /**\n             * tax type\n             */\n            type?: string;\n        };\n    }\n    /**\n     * [Read more](https://www.wix.com/corvid/reference/wix-ecom-backend.Orders.html#)\n     */\n    interface Orders {\n        /**\n         * Retrieves an order.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-ecom-backend.Orders.html#getOrder)\n         */\n        getOrder(_id: string): Promise<wix_ecom_backend.Orders.Order>;\n    }\n    namespace Orders {\n        type ActionEvent = {\n            bodyAsJson?: string;\n        };\n        type Activity = {\n            /**\n             * Activity creation date and time.\n             */\n            _createdDate?: Date;\n            /**\n             * Activity ID.\n             */\n            _id?: string;\n            /**\n             * Activity author's email.\n             */\n            authorEmail?: string;\n            /**\n             * Custom activity details (optional). `activity.type` must be `CUSTOM_ACTIVITY`.\n             */\n            customActivity?: wix_ecom_backend.Orders.CustomActivity;\n            /**\n             * Merchant comment details (optional). `activity.type` must be `MERCHANT_COMMENT`.\n             */\n            merchantComment?: wix_ecom_backend.Orders.MerchantComment;\n            /**\n             * Additional info about order refunded activity (optional). `activity.type` must be `ORDER_REFUNDED`.\n             */\n            orderRefunded?: wix_ecom_backend.Orders.OrderRefunded;\n            /**\n             * Activity type.\n             */\n            type?: string;\n        };\n        type ActivityContentOneOf = {\n            /**\n             * Custom activity details (optional). `activity.type` must be `CUSTOM_ACTIVITY`.\n             */\n            customActivity?: wix_ecom_backend.Orders.CustomActivity;\n            /**\n             * Merchant comment details (optional). `activity.type` must be `MERCHANT_COMMENT`.\n             */\n            merchantComment?: wix_ecom_backend.Orders.MerchantComment;\n            /**\n             * Additional info about order refunded activity (optional). `activity.type` must be `ORDER_REFUNDED`.\n             */\n            orderRefunded?: wix_ecom_backend.Orders.OrderRefunded;\n        };\n        type AddActivityRequest = {\n            /**\n             * Order ID.\n             */\n            _id: string;\n            /**\n             * Activity info.\n             */\n            activity: wix_ecom_backend.Orders.PublicActivity;\n        };\n        type AddActivityResponse = {\n            /**\n             * ID of the added activity.\n             * Use this ID to either [update](https://bo.wix.com/wix-docs/rest/ecommerce/orders/update-activity) or [delete](https://bo.wix.com/wix-docs/rest/ecommerce/orders/delete-activity) the activity.\n             */\n            activityId?: string;\n            /**\n             * Updated order.\n             */\n            order?: wix_ecom_backend.Orders.Order;\n        };\n        type AddInternalActivityRequest = {\n            /**\n             * Order ID.\n             */\n            _id: string;\n            /**\n             * Activity info.\n             */\n            activity: wix_ecom_backend.Orders.InternalActivity;\n        };\n        type AddInternalActivityResponse = {\n            /**\n             * ID of the added internal activity.\n             * Use this ID to either [update](https://bo.wix.com/wix-docs/rest/ecommerce/orders/update-activity) or [delete](https://bo.wix.com/wix-docs/rest/ecommerce/orders/delete-activity) the activity.\n             */\n            activityId?: string;\n            /**\n             * Updated order.\n             */\n            order?: wix_ecom_backend.Orders.Order;\n        };\n        type AdditionalFee = {\n            /**\n             * Additional fee's unique code for future processing.\n             */\n            code?: string;\n            /**\n             * Name of additional fee.\n             */\n            name?: string;\n            /**\n             * Additional fee's price.\n             */\n            price?: wix_ecom_backend.Orders.Price;\n            /**\n             * SPI implementer's `appId`.\n             */\n            providerAppId?: string;\n            /**\n             * Tax details.\n             */\n            taxDetails?: wix_ecom_backend.Orders.ItemTaxFullDetails;\n        };\n        type Address = {\n            /**\n             * Main address line (usually street name and number).\n             */\n            addressLine1?: string;\n            /**\n             * Free text providing more detailed address info. Usually contains apt, suite, floor.\n             */\n            addressLine2?: string;\n            /**\n             * City name.\n             */\n            city?: string;\n            /**\n             * Two-letter country code in [ISO-3166 alpha-2](https://www.iso.org/obp/ui/#search/code/) format.\n             */\n            country?: string;\n            /**\n             * Postal or zip code.\n             */\n            postalCode?: string;\n            /**\n             * Street address object, with number, name, and apartment number in separate fields.\n             */\n            streetAddress?: wix_ecom_backend.Orders.StreetAddress;\n            /**\n             * Code for a subdivision (such as state, prefecture, or province) in [ISO 3166-2](https://www.iso.org/standard/72483.html) format.\n             */\n            subdivision?: string;\n        };\n        type AddressWithContact = {\n            /**\n             * Address.\n             */\n            address?: wix_ecom_backend.Orders.Address;\n            /**\n             * Contact details.\n             */\n            contactDetails?: wix_ecom_backend.Orders.FullAddressContactDetails;\n        };\n        type AggregateOrdersOptions = {\n            /**\n             * This is an object defining aggregation itself\n             */\n            aggregation: Object;\n            /**\n             * Filter applied to original data\n             */\n            filter?: Object;\n        };\n        type AggregateOrdersRequest = {\n            /**\n             * This is an object defining aggregation itself\n             */\n            aggregation: Object;\n            /**\n             * Filter applied to original data\n             */\n            filter?: Object;\n        };\n        type AggregateOrdersResponse = {\n            aggregates?: Object;\n        };\n        type ApiAddress = {\n            /**\n             * Address line 1 (free text)\n             */\n            addressLine1?: string;\n            /**\n             * address line\n             */\n            addressLine2?: string;\n            /**\n             * City name\n             */\n            city?: string;\n            /**\n             * Company name\n             */\n            company?: string;\n            /**\n             * Country code (2 letters)\n             */\n            country?: string;\n            /**\n             * Email address\n             */\n            email?: string;\n            /**\n             * Addressee name\n             */\n            fullName?: wix_ecom_backend.Orders.FullName;\n            /**\n             * Phone number\n             */\n            phone?: string;\n            /**\n             * Address line 1 (street)\n             */\n            street?: wix_ecom_backend.Orders.Street;\n            /**\n             * State or district\n             */\n            subdivision?: string;\n            /**\n             * Tax information (for Brazil only)\n             */\n            vatId?: wix_ecom_backend.Orders.ApiVatId;\n            /**\n             * ZIP/postal code\n             */\n            zipCode?: string;\n        };\n        type ApiAddressAddressLine1OptionsOneOf = {\n            /**\n             * Address line 1 (free text)\n             */\n            addressLine1?: string;\n            /**\n             * Address line 1 (street)\n             */\n            street?: wix_ecom_backend.Orders.Street;\n        };\n        type ApiVatId = {\n            /**\n             * Customer's tax ID\n             */\n            number?: string;\n            /**\n             * tax type\n             */\n            type?: string;\n        };\n        type ApplicationError = {\n            code?: string;\n            data?: Object;\n            description?: string;\n        };\n        type AppliedCoupon = {\n            /**\n             * Coupon code\n             */\n            code?: string;\n            /**\n             * Coupon ID\n             */\n            couponId?: string;\n            /**\n             * Coupon name\n             */\n            name?: string;\n        };\n        type AppliedDiscount = {\n            /**\n             * Applied coupon info.\n             */\n            coupon?: wix_ecom_backend.Orders.Coupon;\n            /**\n             * Automatic Discount\n             */\n            discountRule?: wix_ecom_backend.Orders.DiscountRule;\n            /**\n             * Discount type.\n             * * `\"GLOBAL\"` - discount applies to entire order.\n             * * `\"SPECIFIC-ITEMS\"` - discount applies to specific items.\n             * * `\"SHIPPING\"` - discount applies to shipping. For example, free shipping.\n             */\n            discountType?: string;\n            /**\n             * IDs of line items discount applies to.\n             */\n            lineItemIds?: Array<string>;\n            /**\n             * Merchant discount.\n             */\n            merchantDiscount?: wix_ecom_backend.Orders.MerchantDiscount;\n        };\n        type AppliedDiscountDiscountSourceOneOf = {\n            /**\n             * Applied coupon info.\n             */\n            coupon?: wix_ecom_backend.Orders.Coupon;\n            /**\n             * Automatic Discount\n             */\n            discountRule?: wix_ecom_backend.Orders.DiscountRule;\n            /**\n             * Merchant discount.\n             */\n            merchantDiscount?: wix_ecom_backend.Orders.MerchantDiscount;\n        };\n        type ArchiveOrderRequest = {\n            /**\n             * Order ID.\n             */\n            _id: string;\n        };\n        type ArchiveOrderResponse = {\n            /**\n             * Archived order.\n             */\n            order?: wix_ecom_backend.Orders.Order;\n        };\n        type Balance = {\n            /**\n             * Balance amount, can be negative. Negative value signifies amount to be refunded\n             * and can happen due to possible overcharge or modified manual order.\n             */\n            amount?: string;\n            /**\n             * Amount formatted with currency symbol.\n             */\n            formattedAmount?: string;\n        };\n        type BalanceSummary = {\n            balance?: wix_ecom_backend.Orders.Balance;\n        };\n        type BillingInfo = {\n            /**\n             * Full billing address\n             */\n            address?: wix_ecom_backend.Orders.ApiAddress;\n            /**\n             * Deprecated (use paymentProviderTransactionId instead)\n             */\n            externalTransactionId?: string;\n            /**\n             * Payment date\n             */\n            paidDate?: Date;\n            /**\n             * Transaction ID from payment gateway (e.g., Wix Payments)\n             */\n            paymentGatewayTransactionId?: string;\n            /**\n             * Payment method used for this order\n             */\n            paymentMethod?: string;\n            /**\n             * Transaction ID from payment provider (e.g., PayPal, Square, Stripe) transaction ID\n             */\n            paymentProviderTransactionId?: string;\n            /**\n             * Whether order can be refunded by payment provider (manually or automatic)\n             */\n            refundableByPaymentProvider?: boolean;\n        };\n        type BulkActionMetadata = {\n            /**\n             * Number of items that couldn't be processed.\n             */\n            totalFailures?: number;\n            /**\n             * Number of items that were successfully processed.\n             */\n            totalSuccesses?: number;\n            /**\n             * Number of failures without details because detailed failure threshold was exceeded.\n             */\n            undetailedFailures?: number;\n        };\n        type BulkArchiveOrdersByFilterRequest = {\n            /**\n             * Filter object. Learn more about supported filters [here](https://bo.wix.com/wix-docs/rest/ecommerce/orders/filter-and-sort).\n             */\n            filter: Object;\n        };\n        type BulkArchiveOrdersByFilterResponse = {\n            /**\n             * Bulk action metadata.\n             */\n            bulkActionMetadata?: wix_ecom_backend.Orders.BulkActionMetadata;\n            /**\n             * Items updated by bulk action.\n             */\n            results?: Array<wix_ecom_backend.Orders.BulkOrderResult>;\n        };\n        type BulkArchiveOrdersOptions = {\n            /**\n             * Whether to return the full updated order entities in the response.\n             */\n            returnFullEntity?: boolean;\n        };\n        type BulkArchiveOrdersRequest = {\n            /**\n             * IDs of orders to archive.\n             */\n            ids: Array<string>;\n            /**\n             * Whether to return the full updated order entities in the response.\n             */\n            returnFullEntity?: boolean;\n        };\n        type BulkArchiveOrdersResponse = {\n            /**\n             * Bulk action metadata.\n             */\n            bulkActionMetadata?: wix_ecom_backend.Orders.BulkActionMetadata;\n            /**\n             * Items updated by bulk action.\n             */\n            results?: Array<wix_ecom_backend.Orders.BulkOrderResult>;\n        };\n        type BulkMarkAsFulfilledByFilterRequest = {\n            /**\n             * Filter object. Learn more about supported filters [here](https://bo.wix.com/wix-docs/rest/ecommerce/orders/filter-and-sort).\n             */\n            filter: Object;\n        };\n        type BulkMarkAsFulfilledByFilterResponse = {\n            /**\n             * Bulk action metadata.\n             */\n            bulkActionMetadata?: wix_ecom_backend.Orders.BulkActionMetadata;\n            /**\n             * Items updated by bulk action.\n             */\n            results?: Array<wix_ecom_backend.Orders.BulkOrderResult>;\n        };\n        type BulkMarkAsFulfilledOptions = {\n            /**\n             * Whether to return the full updated order entities in the response.\n             */\n            returnFullEntity?: boolean;\n        };\n        type BulkMarkAsFulfilledRequest = {\n            /**\n             * IDs of orders to be marked as fulfilled.\n             */\n            ids: Array<string>;\n            /**\n             * Whether to return the full updated order entities in the response.\n             */\n            returnFullEntity?: boolean;\n        };\n        type BulkMarkAsFulfilledResponse = {\n            /**\n             * Bulk action metadata.\n             */\n            bulkActionMetadata?: wix_ecom_backend.Orders.BulkActionMetadata;\n            /**\n             * Items updated by bulk action.\n             */\n            results?: Array<wix_ecom_backend.Orders.BulkOrderResult>;\n        };\n        type BulkMarkAsUnfulfilledByFilterRequest = {\n            /**\n             * Filter object. Learn more about supported filters [here](https://bo.wix.com/wix-docs/rest/ecommerce/orders/filter-and-sort).\n             */\n            filter: Object;\n        };\n        type BulkMarkAsUnfulfilledByFilterResponse = {\n            /**\n             * Bulk action metadata.\n             */\n            bulkActionMetadata?: wix_ecom_backend.Orders.BulkActionMetadata;\n            /**\n             * Items updated by bulk action.\n             */\n            results?: Array<wix_ecom_backend.Orders.BulkOrderResult>;\n        };\n        type BulkMarkAsUnfulfilledOptions = {\n            /**\n             * Whether to return the full updated order entities in the response.\n             */\n            returnFullEntity?: boolean;\n        };\n        type BulkMarkAsUnfulfilledRequest = {\n            /**\n             * IDs of orders to be marked as not fulfilled.\n             */\n            ids: Array<string>;\n            /**\n             * Whether to return the full updated order entities in the response.\n             */\n            returnFullEntity?: boolean;\n        };\n        type BulkMarkAsUnfulfilledResponse = {\n            /**\n             * Bulk action metadata.\n             */\n            bulkActionMetadata?: wix_ecom_backend.Orders.BulkActionMetadata;\n            /**\n             * Items updated by bulk action.\n             */\n            results?: Array<wix_ecom_backend.Orders.BulkOrderResult>;\n        };\n        type BulkMarkOrdersAsPaidRequest = {\n            /**\n             * IDs of orders to mark as paid.\n             */\n            ids: Array<string>;\n        };\n        type BulkMarkOrdersAsPaidResponse = {\n            /**\n             * Bulk action metadata.\n             */\n            bulkActionMetadata?: wix_ecom_backend.Orders.BulkActionMetadata;\n            /**\n             * Items updated by the bulk action.\n             * The Order entity within the results optimistically changes its payment status to paid, however this process is async.\n             */\n            results?: Array<wix_ecom_backend.Orders.BulkOrderResult>;\n        };\n        type BulkOrderResult = {\n            /**\n             * Updated item. Optional - returned only if requested with `return_full_entity` set to `true`.\n             */\n            item?: wix_ecom_backend.Orders.Order;\n            /**\n             * Item metadata.\n             */\n            itemMetadata?: wix_ecom_backend.Orders.ItemMetadata;\n        };\n        type BulkUnArchiveOrdersByFilterRequest = {\n            /**\n             * Filter object. Learn more about supported filters [here](https://bo.wix.com/wix-docs/rest/ecommerce/orders/filter-and-sort).\n             */\n            filter: Object;\n        };\n        type BulkUnArchiveOrdersByFilterResponse = {\n            /**\n             * Bulk action metadata.\n             */\n            bulkActionMetadata?: wix_ecom_backend.Orders.BulkActionMetadata;\n            /**\n             * Items updated by bulk action.\n             */\n            results?: Array<wix_ecom_backend.Orders.BulkOrderResult>;\n        };\n        type BulkUnArchiveOrdersOptions = {\n            /**\n             * Whether to return the full updated order entities in the response.\n             */\n            returnFullEntity?: boolean;\n        };\n        type BulkUnArchiveOrdersRequest = {\n            /**\n             * IDs or orders to unarchive.\n             */\n            ids: Array<string>;\n            /**\n             * Whether to return the full updated order entities in the response.\n             */\n            returnFullEntity?: boolean;\n        };\n        type BulkUnArchiveOrdersResponse = {\n            /**\n             * Bulk action metadata.\n             */\n            bulkActionMetadata?: wix_ecom_backend.Orders.BulkActionMetadata;\n            /**\n             * Items updated by bulk action.\n             */\n            results?: Array<wix_ecom_backend.Orders.BulkOrderResult>;\n        };\n        type BuyerInfo = {\n            /**\n             * Contact ID. Auto-created if one does not yet exist. For more information, see [Contacts API](https://dev.wix.com/api/rest/contacts/contacts/introduction).\n             */\n            contactId?: string;\n            /**\n             * Buyer email address.\n             */\n            email?: string;\n            /**\n             * Member ID (if site visitor is a site member).\n             */\n            memberId?: string;\n            /**\n             * Visitor ID (if site visitor is not a member).\n             */\n            visitorId?: string;\n        };\n        type BuyerInfoIdOneOf = {\n            /**\n             * Member ID (if site visitor is a site member).\n             */\n            memberId?: string;\n            /**\n             * Visitor ID (if site visitor is not a member).\n             */\n            visitorId?: string;\n        };\n        type BuyerInfoUpdate = {\n            /**\n             * Contact ID.\n             */\n            contactId?: string;\n            /**\n             * Email associated with the buyer.\n             */\n            email?: string;\n        };\n        type Cancel = {};\n        type CancelOrderOptions = {\n            /**\n             * Custom note to be added to the email (optional).\n             */\n            customMessage?: string;\n            /**\n             * Whether to restock all items in the order.\n             */\n            restockAllItems?: boolean;\n            /**\n             * Whether to send an order canceled email to the buyer.\n             */\n            sendOrderCanceledEmail?: boolean;\n        };\n        type CancelOrderRequest = {\n            /**\n             * Order ID.\n             */\n            _id: string;\n            /**\n             * Custom note to be added to the email (optional).\n             */\n            customMessage?: string;\n            /**\n             * Whether to restock all items in the order.\n             */\n            restockAllItems?: boolean;\n            /**\n             * Whether to send an order canceled email to the buyer.\n             */\n            sendOrderCanceledEmail?: boolean;\n        };\n        type CancelOrderResponse = {\n            /**\n             * Canceled order.\n             */\n            order?: wix_ecom_backend.Orders.Order;\n        };\n        type CatalogReference = {\n            /**\n             * App ID of the catalog the item comes from. For example, the Wix Stores `appId` is `\"1380b703-ce81-ff05-f115-39571d94dfcd\"`.\n             */\n            appId?: string;\n            /**\n             * ID of the item within its catalog. For example, `productId` for Wix Stores.\n             */\n            catalogItemId?: string;\n            /**\n             * Additional info in key:value form. For example, for a product variant from Wix Stores Catalog, `options` field would hold something like one of the following:\n             * + `{\"Size\": \"M\", \"Color\": \"Red\"}`\n             * + `{\"variantId\": \"\"}`.\n             */\n            options?: Object;\n        };\n        type ChannelInfo = {\n            /**\n             * Reference to an order ID from an external system.\n             */\n            externalOrderId?: string;\n            /**\n             * URL to the order in the external system.\n             */\n            externalOrderUrl?: string;\n            /**\n             * Sales channel that submitted the order.\n             */\n            type?: string;\n        };\n        type Color = {\n            /**\n             * Optional - HEX or RGB color code for display.\n             */\n            code?: string;\n            /**\n             * Optional - Description line color name in site's default language.\n             */\n            original?: string;\n            /**\n             * Optional - Translated description line color name according to buyer language. Defaults to `original` when not provided.\n             */\n            translated?: string;\n        };\n        type Complete = {};\n        type ContinueSideEffectsFlowInLegacyData = {\n            orderId?: string;\n            ordersExperiments?: wix_ecom_backend.Orders.OrdersExperiments;\n            storeId?: string;\n        };\n        type Coupon = {\n            /**\n             * Coupon ID.\n             */\n            _id?: string;\n            /**\n             * Coupon value.\n             */\n            amount?: wix_ecom_backend.Orders.Price;\n            /**\n             * Coupon code.\n             */\n            code?: string;\n            /**\n             * Coupon name.\n             */\n            name?: string;\n        };\n        type CreateOrderRequest = {\n            /**\n             * Order info.\n             */\n            order: wix_ecom_backend.Orders.Order;\n        };\n        type CreateOrderResponse = {\n            /**\n             * Newly created order.\n             */\n            order?: wix_ecom_backend.Orders.Order;\n        };\n        type CreatePaymentGatewayOrderRequest = {\n            /**\n             * eCom Order ID\n             */\n            ecomOrderId: string;\n        };\n        type CreatePaymentGatewayOrderResponse = {\n            /**\n             * ID of the order created in the payment gateway\n             */\n            paymentGatewayOrderId?: string;\n        };\n        type CreatedBy = {\n            /**\n             * App ID - when the order was created by an external application.\n             */\n            appId?: string;\n            /**\n             * Member ID - when the order was created by a **logged in** site visitor.\n             */\n            memberId?: string;\n            /**\n             * User ID - when the order was created by a Wix user on behalf of a buyer.\n             * For example, via POS (point of service).\n             */\n            userId?: string;\n            /**\n             * Visitor ID - when the order was created by a site visitor that was **not** logged in.\n             */\n            visitorId?: string;\n        };\n        type CreatedByStringOneOf = {\n            /**\n             * App ID - when the order was created by an external application.\n             */\n            appId?: string;\n            /**\n             * Member ID - when the order was created by a **logged in** site visitor.\n             */\n            memberId?: string;\n            /**\n             * User ID - when the order was created by a Wix user on behalf of a buyer.\n             * For example, via POS (point of service).\n             */\n            userId?: string;\n            /**\n             * Visitor ID - when the order was created by a site visitor that was **not** logged in.\n             */\n            visitorId?: string;\n        };\n        type CursorPaging = {\n            /**\n             * Pointer to the next or previous page in the list of results.\n             */\n            cursor?: string;\n            /**\n             * Number of items to load.\n             */\n            limit?: number;\n        };\n        type Cursors = {\n            /**\n             * Cursor pointing to next page in the list of results.\n             */\n            next?: string;\n            /**\n             * Cursor pointing to previous page in the list of results.\n             */\n            prev?: string;\n        };\n        type CustomActivity = {\n            /**\n             * Additional data in key-value form. For example, `{ \"Ticket number\": \"123456\" }`.\n             */\n            additionalData?: Record<string, string>;\n            /**\n             * ID of the app that created the custom activity.\n             */\n            appId?: string;\n            /**\n             * Custom activity type. For example, `\"Ticket number set\"`.\n             */\n            type?: string;\n        };\n        type CustomField = {\n            /**\n             * Custom field title.\n             */\n            title?: string;\n            /**\n             * Translated custom field title.\n             */\n            translatedTitle?: string;\n            /**\n             * Custom field value.\n             */\n            value?: any;\n        };\n        type DecrementData = {\n            /**\n             * Line item quantity being decremented.\n             */\n            decrementBy?: number;\n            /**\n             * ID of the line item being decremented.\n             */\n            lineItemId?: string;\n            /**\n             * Whether to restock the line item (triggers inventory update).\n             */\n            restock?: boolean;\n        };\n        type DecrementItemsQuantityRequest = {\n            /**\n             * Order ID\n             */\n            _id: string;\n            /**\n             * Which items to decrement, and how much to decrement from each one\n             */\n            decrementData: Array<wix_ecom_backend.Orders.DecrementData>;\n        };\n        type DecrementItemsQuantityResponse = {\n            /**\n             * Updated order data\n             */\n            order?: wix_ecom_backend.Orders.Order;\n        };\n        type DeleteActivityIdentifiers = {\n            /**\n             * Order ID.\n             */\n            _id: string;\n            /**\n             * ID of the activity to delete.\n             */\n            activityId: string;\n        };\n        type DeleteActivityRequest = {\n            /**\n             * Order ID.\n             */\n            _id: string;\n            /**\n             * ID of the activity to delete.\n             */\n            activityId: string;\n        };\n        type DeleteActivityResponse = {\n            /**\n             * Updated order.\n             */\n            order?: wix_ecom_backend.Orders.Order;\n        };\n        type DeliveryLogistics = {\n            /**\n             * Latest expected delivery date.\n             */\n            deliverByDate?: Date;\n            /**\n             * Expected delivery time in free text. For example, `\"3-5 business days\"`.\n             */\n            deliveryTime?: string;\n            /**\n             * Instructions for carrier. For example, `\"Please knock on the door. If unanswered, please call contact number. Thanks.\"`.\n             */\n            instructions?: string;\n            /**\n             * Pickup details.\n             */\n            pickupDetails?: wix_ecom_backend.Orders.PickupDetails;\n            /**\n             * Shipping address and contact details.\n             */\n            shippingDestination?: wix_ecom_backend.Orders.AddressWithContact;\n        };\n        type DeliveryLogisticsAddressOneOf = {\n            /**\n             * Pickup details.\n             */\n            pickupDetails?: wix_ecom_backend.Orders.PickupDetails;\n            /**\n             * Shipping address and contact details.\n             */\n            shippingDestination?: wix_ecom_backend.Orders.AddressWithContact;\n        };\n        type DescriptionLine = {\n            /**\n             * Description line color value.\n             */\n            colorInfo?: wix_ecom_backend.Orders.Color;\n            /**\n             * Description line name.\n             */\n            name?: wix_ecom_backend.Orders.DescriptionLineName;\n            /**\n             * Description line plain text value.\n             */\n            plainText?: wix_ecom_backend.Orders.PlainTextValue;\n        };\n        type DescriptionLineDescriptionLineValueOneOf = {};\n        type DescriptionLineName = {\n            /**\n             * Optional - Description line name in site's default language.\n             */\n            original?: string;\n            /**\n             * Optional - Translated description line item according to buyer language. Defaults to `original` when not provided.\n             */\n            translated?: string;\n        };\n        type DescriptionLineValueOneOf = {\n            /**\n             * Description line color value.\n             */\n            colorInfo?: wix_ecom_backend.Orders.Color;\n            /**\n             * Description line plain text value.\n             */\n            plainText?: wix_ecom_backend.Orders.PlainTextValue;\n        };\n        type DiffmatokyPayload = {\n            compareChannel?: string;\n            entityId?: string;\n            errorInformation?: wix_ecom_backend.Orders.ErrorInformation;\n            left?: string;\n            right?: string;\n            tags?: Array<string>;\n        };\n        type DigitalFile = {\n            /**\n             * Link expiration time and date.\n             */\n            expirationDate?: Date;\n            /**\n             * ID of the secure file in media.\n             */\n            fileId?: string;\n            /**\n             * Link will exist after the digital links have been generated on the order.\n             */\n            link?: string;\n        };\n        type DiscountRule = {\n            /**\n             * Discount rule ID\n             */\n            _id?: string;\n            /**\n             * Discount value.\n             */\n            amount?: wix_ecom_backend.Orders.Price;\n            /**\n             * Discount rule name\n             */\n            name?: wix_ecom_backend.Orders.DiscountRuleName;\n        };\n        type DiscountRuleName = {\n            /**\n             * Original discount rule name (in site's default language).\n             */\n            original?: string;\n            /**\n             * Translated discount rule name according to buyer language. Defaults to `original` when not provided.\n             */\n            translated?: string;\n        };\n        type DomainEvent = {\n            /**\n             * random GUID so clients can tell if event was already handled\n             */\n            _id?: string;\n            actionEvent?: wix_ecom_backend.Orders.ActionEvent;\n            createdEvent?: wix_ecom_backend.Orders.EntityCreatedEvent;\n            deletedEvent?: wix_ecom_backend.Orders.EntityDeletedEvent;\n            /**\n             * Assumes actions are also always typed to an entity_type\n             * Example: wix.stores.catalog.product, wix.bookings.session, wix.payments.transaction\n             */\n            entityFqdn?: string;\n            /**\n             * Assuming that all messages including Actions have id\n             * Example: The id of the specific order, the id of a specific campaign\n             */\n            entityId?: string;\n            /**\n             * The time of the event. Useful if there was a delay in dipatching\n             */\n            eventTime?: Date;\n            extendedFieldsUpdatedEvent?: wix_ecom_backend.Orders.ExtendedFieldsUpdatedEvent;\n            /**\n             * If present, indicates the action that triggered the event.\n             */\n            originatedFrom?: string;\n            /**\n             * This is top level to ease client code dipatching of messages (switch on entity_fqdn+slug)\n             * This is although the created/updated/deleted notion is duplication of the oneof types\n             * Example: created/updated/deleted/started/completed/email_opened\n             */\n            slug?: string;\n            /**\n             * A field that should be set if this event was triggered by an anonymize request.\n             * For example you must set it to true when sending an event as a result of a GDPR right to be forgotten request.\n             * NOTE: This field is not relevant for `EntityCreatedEvent` but is located here for better ergonomics of consumers.\n             */\n            triggeredByAnonymizeRequest?: boolean;\n            updatedEvent?: wix_ecom_backend.Orders.EntityUpdatedEvent;\n        };\n        type DomainEventBodyOneOf = {\n            actionEvent?: wix_ecom_backend.Orders.ActionEvent;\n            createdEvent?: wix_ecom_backend.Orders.EntityCreatedEvent;\n            deletedEvent?: wix_ecom_backend.Orders.EntityDeletedEvent;\n            extendedFieldsUpdatedEvent?: wix_ecom_backend.Orders.ExtendedFieldsUpdatedEvent;\n            updatedEvent?: wix_ecom_backend.Orders.EntityUpdatedEvent;\n        };\n        type DownloadLinkSent = {};\n        type EmailEdited = {};\n        type Empty = {};\n        type EntityCreatedEvent = {\n            entityAsJson?: string;\n        };\n        type EntityDeletedEvent = {};\n        type EntityUpdatedEvent = {\n            /**\n             * Since platformized APIs only expose PATCH and not PUT we can't assume that the fields sent from the client are the actual diff.\n             * This means that to generate a list of changed fields (as opposed to sent fields) one needs to traverse both objects.\n             * We don't want to impose this on all developers and so we leave this traversal to the notification recipients which need it.\n             */\n            currentEntityAsJson?: string;\n        };\n        type ErrorInformation = {\n            stackTrace?: string;\n        };\n        type ExtendedFieldsUpdatedEvent = {\n            currentEntityAsJson?: string;\n        };\n        type FulfillerEmailSent = {};\n        type FulfillmentStatusUpdated = {\n            /**\n             * the action that caused this update\n             */\n            action?: string;\n            /**\n             * the new status (after the update)\n             */\n            newFulfillmentStatus?: string;\n            /**\n             * The order that was updated\n             */\n            order?: wix_ecom_backend.Orders.Order;\n            /**\n             * The previous status (before the update)\n             */\n            previousFulfillmentStatus?: string;\n        };\n        type FullAddressContactDetails = {\n            /**\n             * Company name.\n             */\n            company?: string;\n            /**\n             * First name.\n             */\n            firstName?: string;\n            /**\n             * Last name.\n             */\n            lastName?: string;\n            /**\n             * Phone number.\n             */\n            phone?: string;\n            /**\n             * Tax information (for Brazil only). If ID is provided, `vatId.type` must also be set - UNSPECIFIED is not allowed.\n             */\n            vatId?: wix_ecom_backend.Orders.VatId;\n        };\n        type FullName = {\n            /**\n             * Customer's first name\n             */\n            firstName?: string;\n            /**\n             * Customer's last name\n             */\n            lastName?: string;\n        };\n        type GetOrderRequest = {\n            /**\n             * ID of the order to retrieve.\n             */\n            _id: string;\n        };\n        type GetOrderResponse = {\n            /**\n             * The requested order.\n             */\n            order?: wix_ecom_backend.Orders.Order;\n        };\n        type GetPaymentCollectabilityStatusRequest = {\n            /**\n             * Ecom order ID.\n             */\n            ecomOrderId: string;\n        };\n        type GetPaymentCollectabilityStatusResponse = {\n            /**\n             * Collectable order amount\n             */\n            amount?: wix_ecom_backend.Orders.Price;\n            /**\n             * Payment collectability status\n             */\n            status?: string;\n        };\n        type GetShipmentsRequest = {\n            _id: string;\n        };\n        type GetShipmentsResponse = {\n            shipmentIds?: Array<string>;\n        };\n        type IndexingMessage = {\n            _id?: string;\n            opType?: number;\n            requiredVersions?: Array<string>;\n        };\n        type InternalActivity = {\n            /**\n             * Internal activity creation date and time.\n             */\n            _createdDate?: Date;\n            /**\n             * Internal activity ID.\n             */\n            _id?: string;\n            /**\n             * Internal activity author's email.\n             */\n            authorEmail?: string;\n            /**\n             * Download link was sent (relevant for orders with digital line items).\n             */\n            downloadLinkSent?: wix_ecom_backend.Orders.DownloadLinkSent;\n            /**\n             * Order email was updated.\n             */\n            emailEdited?: wix_ecom_backend.Orders.EmailEdited;\n            /**\n             * Email sent to fulfiller.\n             */\n            fulfillerEmailSent?: wix_ecom_backend.Orders.FulfillerEmailSent;\n            /**\n             * Invoice was added to order.\n             */\n            invoiceAdded?: wix_ecom_backend.Orders.InvoiceAdded;\n            /**\n             * Invoice sent to customer via email.\n             */\n            invoiceSent?: wix_ecom_backend.Orders.InvoiceSent;\n            /**\n             * New exchange order created.\n             */\n            newExchangeOrderCreated?: wix_ecom_backend.Orders.NewExchangeOrderCreated;\n            /**\n             * Order canceled.\n             */\n            orderCanceled?: wix_ecom_backend.Orders.OrderCanceled;\n            /**\n             * Order created as a result of items exchange.\n             */\n            orderCreatedFromExchange?: wix_ecom_backend.Orders.OrderCreatedFromExchange;\n            /**\n             * Order shipping status set as fulfilled.\n             */\n            orderFulfilled?: wix_ecom_backend.Orders.OrderFulfilled;\n            /**\n             * Order shipping status set as not fulfilled.\n             */\n            orderNotFulfilled?: wix_ecom_backend.Orders.OrderNotFulfilled;\n            /**\n             * Order paid. Either by the store owner (for offline orders), or when an online transaction was confirmed.\n             */\n            orderPaid?: wix_ecom_backend.Orders.OrderPaid;\n            /**\n             * Order partially paid. During the checkout for orders with deposit items.\n             */\n            orderPartiallyPaid?: wix_ecom_backend.Orders.OrderPartiallyPaid;\n            /**\n             * Order placed.\n             */\n            orderPlaced?: wix_ecom_backend.Orders.OrderPlaced;\n            /**\n             * Order refunded.\n             */\n            orderRefunded?: wix_ecom_backend.Orders.OrderRefunded;\n            /**\n             * Email notification for pickup sent.\n             */\n            pickupReadyEmailSent?: wix_ecom_backend.Orders.PickupReadyEmailSent;\n            /**\n             * Shipping address was updated.\n             */\n            shippingAddressEdited?: wix_ecom_backend.Orders.ShippingAddressEdited;\n            /**\n             * An email confirmation of order shipment was sent.\n             */\n            shippingConfirmationEmailSent?: wix_ecom_backend.Orders.ShippingConfirmationEmailSent;\n            /**\n             * Shipping tracking link added to order.\n             */\n            trackingLinkAdded?: wix_ecom_backend.Orders.TrackingLinkAdded;\n            /**\n             * Shipping tracking number added to order.\n             */\n            trackingNumberAdded?: wix_ecom_backend.Orders.TrackingNumberAdded;\n            /**\n             * Shipping tracking number was edited.\n             */\n            trackingNumberEdited?: wix_ecom_backend.Orders.TrackingNumberEdited;\n        };\n        type InternalActivityContentOneOf = {\n            /**\n             * Download link was sent (relevant for orders with digital line items).\n             */\n            downloadLinkSent?: wix_ecom_backend.Orders.DownloadLinkSent;\n            /**\n             * Order email was updated.\n             */\n            emailEdited?: wix_ecom_backend.Orders.EmailEdited;\n            /**\n             * Email sent to fulfiller.\n             */\n            fulfillerEmailSent?: wix_ecom_backend.Orders.FulfillerEmailSent;\n            /**\n             * Invoice was added to order.\n             */\n            invoiceAdded?: wix_ecom_backend.Orders.InvoiceAdded;\n            /**\n             * Invoice sent to customer via email.\n             */\n            invoiceSent?: wix_ecom_backend.Orders.InvoiceSent;\n            /**\n             * New exchange order created.\n             */\n            newExchangeOrderCreated?: wix_ecom_backend.Orders.NewExchangeOrderCreated;\n            /**\n             * Order canceled.\n             */\n            orderCanceled?: wix_ecom_backend.Orders.OrderCanceled;\n            /**\n             * Order created as a result of items exchange.\n             */\n            orderCreatedFromExchange?: wix_ecom_backend.Orders.OrderCreatedFromExchange;\n            /**\n             * Order shipping status set as fulfilled.\n             */\n            orderFulfilled?: wix_ecom_backend.Orders.OrderFulfilled;\n            /**\n             * Order shipping status set as not fulfilled.\n             */\n            orderNotFulfilled?: wix_ecom_backend.Orders.OrderNotFulfilled;\n            /**\n             * Order paid. Either by the store owner (for offline orders), or when an online transaction was confirmed.\n             */\n            orderPaid?: wix_ecom_backend.Orders.OrderPaid;\n            /**\n             * Order partially paid. During the checkout for orders with deposit items.\n             */\n            orderPartiallyPaid?: wix_ecom_backend.Orders.OrderPartiallyPaid;\n            /**\n             * Order placed.\n             */\n            orderPlaced?: wix_ecom_backend.Orders.OrderPlaced;\n            /**\n             * Order refunded.\n             */\n            orderRefunded?: wix_ecom_backend.Orders.OrderRefunded;\n            /**\n             * Email notification for pickup sent.\n             */\n            pickupReadyEmailSent?: wix_ecom_backend.Orders.PickupReadyEmailSent;\n            /**\n             * Shipping address was updated.\n             */\n            shippingAddressEdited?: wix_ecom_backend.Orders.ShippingAddressEdited;\n            /**\n             * An email confirmation of order shipment was sent.\n             */\n            shippingConfirmationEmailSent?: wix_ecom_backend.Orders.ShippingConfirmationEmailSent;\n            /**\n             * Shipping tracking link added to order.\n             */\n            trackingLinkAdded?: wix_ecom_backend.Orders.TrackingLinkAdded;\n            /**\n             * Shipping tracking number added to order.\n             */\n            trackingNumberAdded?: wix_ecom_backend.Orders.TrackingNumberAdded;\n            /**\n             * Shipping tracking number was edited.\n             */\n            trackingNumberEdited?: wix_ecom_backend.Orders.TrackingNumberEdited;\n        };\n        type InvoiceAdded = {};\n        type InvoiceSent = {};\n        type ItemMetadata = {\n            /**\n             * Item ID. Should always be available, unless it's impossible (for example, when failing to create an item).\n             */\n            _id?: string;\n            /**\n             * Details about the error in case of failure.\n             */\n            error?: wix_ecom_backend.Orders.ApplicationError;\n            /**\n             * Index of the item within the request array. Allows for correlation between request and response items.\n             */\n            originalIndex?: number;\n            /**\n             * Whether the requested action was successful for this item. When `false`, the `error` field is populated.\n             */\n            success?: boolean;\n        };\n        type ItemTaxFullDetails = {\n            /**\n             * Tax rate percentage, as a decimal numeral between 0 and 1. For example, `\"0.13\"`.\n             */\n            taxRate?: string;\n            /**\n             * Taxable amount of this line item.\n             */\n            taxableAmount?: wix_ecom_backend.Orders.Price;\n            /**\n             * The calculated tax, based on the `taxableAmount` and `taxRate`.\n             */\n            totalTax?: wix_ecom_backend.Orders.Price;\n        };\n        type ItemType = {\n            /**\n             * Custom item type.\n             */\n            custom?: string;\n            /**\n             * Preset item type.\n             */\n            preset?: string;\n        };\n        type ItemTypeItemTypeDataOneOf = {\n            /**\n             * Custom item type.\n             */\n            custom?: string;\n            /**\n             * Preset item type.\n             */\n            preset?: string;\n        };\n        type LineItemExchangeData = {\n            /**\n             * ID of the exchanged line item.\n             */\n            lineItemId?: string;\n            /**\n             * Line item quantity being exchanged.\n             */\n            quantity?: number;\n        };\n        type LineItemUpdate = {\n            /**\n             * Description lines' info.\n             * If description line already exists for this name, it will be replaced.\n             */\n            descriptionLines?: Array<wix_ecom_backend.Orders.DescriptionLine>;\n            /**\n             * Line item ID.\n             */\n            lineItemId?: string;\n        };\n        type MarkAsFulfilledRequest = {\n            /**\n             * Order ID.\n             */\n            _id: string;\n        };\n        type MarkAsFulfilledResponse = {\n            /**\n             * Updated order.\n             */\n            order?: wix_ecom_backend.Orders.Order;\n        };\n        type MarkAsUnfulfilledRequest = {\n            /**\n             * Order ID.\n             */\n            _id: string;\n        };\n        type MarkAsUnfulfilledResponse = {\n            /**\n             * Updated order.\n             */\n            order?: wix_ecom_backend.Orders.Order;\n        };\n        type MarkOrderAsPaidRequest = {\n            /**\n             * Order ID.\n             */\n            _id: string;\n        };\n        type MarkOrderAsPaidResponse = {\n            /**\n             * Updated order.\n             */\n            order?: wix_ecom_backend.Orders.Order;\n        };\n        type MarkOrderAsSeenByHumanRequest = {\n            /**\n             * Order ID.\n             */\n            _id: string;\n        };\n        type MarkOrderAsSeenByHumanResponse = {\n            /**\n             * Updated order.\n             */\n            order?: wix_ecom_backend.Orders.Order;\n        };\n        type MerchantComment = {\n            /**\n             * Merchant comment message.\n             */\n            message?: string;\n        };\n        type MerchantDiscount = {\n            /**\n             * Discount amount.\n             */\n            amount?: wix_ecom_backend.Orders.Price;\n            /**\n             * Discount description as free text (optional).\n             */\n            description?: string;\n            /**\n             * Pre-defined discount reason (optional).\n             * * `\"ITEMS_EXCHANGE\"` - exchange balance acquired as a result of items exchange.\n             */\n            discountReason?: string;\n        };\n        type MerchantDiscountMerchantDiscountReasonOneOf = {\n            /**\n             * Discount description as free text (optional).\n             */\n            description?: string;\n            /**\n             * Pre-defined discount reason (optional).\n             * * `\"ITEMS_EXCHANGE\"` - exchange balance acquired as a result of items exchange.\n             */\n            discountReason?: string;\n        };\n        type NewExchangeOrderCreated = {\n            /**\n             * ID of the new order created as a result of an exchange of items.\n             */\n            exchangeOrderId?: string;\n            /**\n             * IDs of the items that were exchanged.\n             */\n            lineItems?: Array<wix_ecom_backend.Orders.LineItemExchangeData>;\n        };\n        type Order = {\n            /**\n             * Date and time the order was created.\n             */\n            _createdDate?: Date;\n            /**\n             * Order ID.\n             */\n            _id?: string;\n            /**\n             * Date and time of order's latest update.\n             */\n            _updatedDate?: Date;\n            /**\n             * Order activities.\n             */\n            activities?: Array<wix_ecom_backend.Orders.Activity>;\n            /**\n             * Additional fees applied to the order.\n             */\n            additionalFees?: Array<wix_ecom_backend.Orders.AdditionalFee>;\n            /**\n             * Applied discounts.\n             */\n            appliedDiscounts?: Array<wix_ecom_backend.Orders.AppliedDiscount>;\n            /**\n             * Whether order is archived.\n             */\n            archived?: boolean;\n            /**\n             * Order attribution source.\n             */\n            attributionSource?: string;\n            /**\n             * Billing address and contact details.\n             */\n            billingInfo?: wix_ecom_backend.Orders.AddressWithContact;\n            /**\n             * Buyer information.\n             */\n            buyerInfo?: wix_ecom_backend.Orders.BuyerInfo;\n            /**\n             * Language for communication with the buyer. Defaults to the site language.\n             * For a site that supports multiple languages, this is the language the buyer selected.\n             */\n            buyerLanguage?: string;\n            /**\n             * [Buyer note](https://support.wix.com/en/article/wix-stores-viewing-buyer-notes) left by the customer.\n             */\n            buyerNote?: string;\n            /**\n             * Information about the sales channel that submitted this order.\n             */\n            channelInfo?: wix_ecom_backend.Orders.ChannelInfo;\n            /**\n             * Checkout ID.\n             */\n            checkoutId?: string;\n            /**\n             * ID of the order's initiator.\n             */\n            createdBy?: wix_ecom_backend.Orders.CreatedBy;\n            /**\n             * Currency used for pricing in this store.\n             */\n            currency?: string;\n            /**\n             * Custom fields.\n             */\n            customFields?: Array<wix_ecom_backend.Orders.CustomField>;\n            /**\n             * Order fulfillment status.\n             */\n            fulfillmentStatus?: string;\n            /**\n             * Order line items.\n             */\n            lineItems?: Array<wix_ecom_backend.Orders.OrderLineItem>;\n            /**\n             * Order number displayed in the site owner's business manager (auto-generated).\n             */\n            number?: string;\n            /**\n             * Order payment status.\n             * + `NOT_PAID` - This can be an order made online, but not yet paid. In such cases `order.status` will be `INITIALIZED`.\n             * + This status also applies when an offline order needs to be manually marked as paid. In such cases `order.status` will be `APPROVED`.\n             * + `PAID` - All payments associated with this order are paid. For online payments: [`payment.regularPaymentDetails.status: APPROVED`](https://bo.wix.com/wix-docs/rest/ecommerce/order-payments/order-transactions-object). For gift cards: [`payment.giftCardPaymentDetails.voided: false`](https://bo.wix.com/wix-docs/rest/ecommerce/order-payments/order-transactions-object).\n             * + `PARTIALLY_REFUNDED` - Order was refunded, but refund amount is less than order total price.\n             * + `FULLY_REFUNDED` - Order fully refunded. Refund amount equals total price.\n             * + `PENDING` - Payments received but not yet confirmed by the payment provider.\n             * + `PARTIALLY_PAID` -  At least one payment was received and approved, covering less than total price amount.\n             */\n            paymentStatus?: string;\n            /**\n             * Order price summary.\n             */\n            priceSummary?: wix_ecom_backend.Orders.PriceSummary;\n            /**\n             * Whether a human has seen the order. Set when an order is clicked on in the Business Manager.\n             */\n            seenByAHuman?: boolean;\n            /**\n             * Shipping info and selected shipping option details.\n             */\n            shippingInfo?: wix_ecom_backend.Orders.ShippingInformation;\n            /**\n             * Site language in which original values are shown.\n             */\n            siteLanguage?: string;\n            /**\n             * Order status.\n             * + `INITIALIZED` - Order was created, but not yet approved or declined.\n             * + `APPROVED` - Order was approved. This happens when either the online payment succeeded or the order is an offline order.\n             * + Once an order is approved, many side effects are triggered. For example, holding of stock in the inventory and sending of notification emails.\n             * + `CANCELED` - Order was canceled by the user.\n             */\n            status?: string;\n            /**\n             * Whether tax is included in line item prices.\n             */\n            taxIncludedInPrices?: boolean;\n            /**\n             * Tax summary.\n             */\n            taxSummary?: wix_ecom_backend.Orders.TaxSummary;\n            /**\n             * Weight measurement unit - defaults to site's weight unit.\n             */\n            weightUnit?: string;\n        };\n        type OrderApproved = {\n            /**\n             * The order that was updated\n             */\n            order?: wix_ecom_backend.Orders.Order;\n        };\n        type OrderCanceled = {};\n        type OrderCanceledEventOrderCanceled = {\n            /**\n             * Personal note added to the email\n             */\n            customMessage?: string;\n            /**\n             * The order that was cancelled\n             */\n            order?: wix_ecom_backend.Orders.Order;\n            /**\n             * Should restock all items on that order\n             */\n            restockAllItems?: boolean;\n            /**\n             * Should send a confirmation mail to the customer\n             */\n            sendOrderCanceledEmail?: boolean;\n        };\n        type OrderCreated = {\n            /**\n             * Order archive status\n             */\n            archived?: boolean;\n            /**\n             * Customer information\n             */\n            buyerInfo?: wix_ecom_backend.Orders.V2BuyerInfo;\n            /**\n             * Currency used for pricing in this store\n             */\n            currency?: string;\n            /**\n             * Order creation date\n             */\n            dateCreated?: Date;\n            /**\n             * Order fulfillment status\n             */\n            fulfillmentStatus?: string;\n            /**\n             * ID displayed in the owner's store (auto generated)\n             */\n            number?: string;\n            /**\n             * Order ID (auto generated upon order creation)\n             */\n            orderId?: string;\n            /**\n             * Order payment status\n             */\n            paymentStatus?: string;\n            /**\n             * Whether the order was read by the store owner\n             */\n            read?: boolean;\n            /**\n             * Totals for order's line items\n             */\n            totals?: wix_ecom_backend.Orders.Totals;\n            /**\n             * Weight unit used in this store\n             */\n            weightUnit?: string;\n        };\n        type OrderCreatedFromExchange = {\n            /**\n             * ID of the original order for which the exchange happened.\n             */\n            originalOrderId?: string;\n        };\n        type OrderFulfilled = {};\n        type OrderItemsRestocked = {\n            /**\n             * The order which items were restocked\n             */\n            order?: wix_ecom_backend.Orders.Order;\n            /**\n             * Restocked items and quantities\n             */\n            restockItems?: Array<wix_ecom_backend.Orders.RestockItem>;\n        };\n        type OrderLineItem = {\n            /**\n             * Line item ID.\n             */\n            _id?: string;\n            /**\n             * Catalog and item reference. Holds IDs for the item and the catalog it came from, as well as further optional info.\n             */\n            catalogReference?: wix_ecom_backend.Orders.CatalogReference;\n            /**\n             * Item's price amount to be charged during checkout, relevant for items with payment option DEPOSIT_ONLINE\n             */\n            depositAmount?: wix_ecom_backend.Orders.Price;\n            /**\n             * Line item description lines. Used for display purposes for the cart, checkout and order.\n             */\n            descriptionLines?: Array<wix_ecom_backend.Orders.DescriptionLine>;\n            /**\n             * Fulfiller ID. Field is empty when the line item is self-fulfilled.\n             * To get fulfillment information, pass this order's ID to [List Fulfillments For Single Order](https://bo.wix.com/wix-docs/rest/ecommerce/order-fulfillments/list-fulfillments-for-single-order).\n             */\n            fulfillerId?: string;\n            /**\n             * Line item image.\n             */\n            image?: string;\n            /**\n             * Item type. Either a preset type or custom.\n             */\n            itemType?: wix_ecom_backend.Orders.ItemType;\n            /**\n             * Type of selected payment option for current item. Defaults to `FULL_PAYMENT_ONLINE`.\n             * + `FULL_PAYMENT_ONLINE` - The entire payment for this item happens as part of the checkout.\n             * + `FULL_PAYMENT_OFFLINE` - The entire payment for this item happens after the checkout. For example, when using cash, check, or other offline payment methods.\n             * + `MEMBERSHIP` - Payment for this item is done by charging a membership. When this option is used, `lineItem.price.amount` is 0.\n             * + `DEPOSIT_ONLINE` - Partial payment for the given item to be paid upfront during the checkout. Eligible for catalog items with type `DEPOSIT_ONLINE` only.\n             */\n            paymentOption?: string;\n            /**\n             * Physical properties of the item. When relevant, contains information such as SKU and item weight.\n             */\n            physicalProperties?: wix_ecom_backend.Orders.PhysicalProperties;\n            /**\n             * Line item price after line item discounts for display purposes.\n             */\n            price?: wix_ecom_backend.Orders.Price;\n            /**\n             * Line item price before line item discounts for display purposes. Defaults to `price` when not provided.\n             */\n            priceBeforeDiscounts?: wix_ecom_backend.Orders.Price;\n            /**\n             * Additional description for the price. For example, when price is 0 but additional details about the actual price are needed - \"Starts at $67\".\n             */\n            priceDescription?: wix_ecom_backend.Orders.PriceDescription;\n            /**\n             * Item name.\n             * + Stores - `product.name`\n             * + Bookings - `service.info.name`\n             * + Events - `ticket.name`\n             */\n            productName?: wix_ecom_backend.Orders.ProductName;\n            /**\n             * Line item quantity.\n             */\n            quantity?: number;\n            /**\n             * quantity of inventory requested to be returned. Whether to restock or ignore the request is up the vertical.\n             */\n            restockQuantity?: number;\n            /**\n             * Subscription info.\n             */\n            subscriptionInfo?: wix_ecom_backend.Orders.SubscriptionInfo;\n            /**\n             * Tax details for this line item.\n             */\n            taxDetails?: wix_ecom_backend.Orders.ItemTaxFullDetails;\n            /**\n             * Total discount for this line item's entire quantity.\n             */\n            totalDiscount?: wix_ecom_backend.Orders.Price;\n            /**\n             * Total price after all discounts and tax.\n             */\n            totalPriceAfterTax?: wix_ecom_backend.Orders.Price;\n            /**\n             * Deprecated - please use `total_price_after_tax` minus `tax_details.total_tax` instead.\n             */\n            totalPriceBeforeTax?: wix_ecom_backend.Orders.Price;\n        };\n        type OrderNotFulfilled = {};\n        type OrderPaid = {};\n        type OrderPartiallyPaid = {};\n        type OrderPlaced = {};\n        type OrderRefunded = {\n            /**\n             * Refund amount.\n             */\n            amount?: wix_ecom_backend.Orders.Price;\n            /**\n             * Whether order was refunded manually. For example, via payment provider or using cash.\n             */\n            manual?: boolean;\n            /**\n             * Reason for refund.\n             */\n            reason?: string;\n        };\n        type OrdersExperiments = {\n            epCommitTax?: boolean;\n            moveBuyerOrderConfirmationEmailToEp?: boolean;\n            moveMerchantEmailToEp?: boolean;\n            producedByEpBridge?: boolean;\n        };\n        type PaymentStatusUpdated = {\n            /**\n             * The order that was updated\n             */\n            order?: wix_ecom_backend.Orders.Order;\n            /**\n             * The previous status (before the update)\n             */\n            previousPaymentStatus?: string;\n        };\n        type PhysicalProperties = {\n            /**\n             * Whether this line item is shippable.\n             */\n            shippable?: boolean;\n            /**\n             * Stock-keeping unit. Learn more about [SKUs](https://www.wix.com/encyclopedia/definition/stock-keeping-unit-sku).\n             */\n            sku?: string;\n            /**\n             * Line item weight. Measurement unit (KG or LB) is taken from `order.weightUnit`.\n             */\n            weight?: number;\n        };\n        type PickupAddress = {\n            /**\n             * Main address line (usually street name and number).\n             */\n            addressLine1?: string;\n            /**\n             * Free text providing more detailed address info. Usually contains apt, suite, floor.\n             */\n            addressLine2?: string;\n            /**\n             * City name.\n             */\n            city?: string;\n            /**\n             * Two-letter country code in [ISO-3166 alpha-2](https://www.iso.org/obp/ui/#search/code/) format.\n             */\n            country?: string;\n            /**\n             * Postal or zip code.\n             */\n            postalCode?: string;\n            /**\n             * Street address object, with number, name, and apartment number in separate fields.\n             */\n            streetAddress?: wix_ecom_backend.Orders.StreetAddress;\n            /**\n             * Code for a subdivision (such as state, prefecture, or province) in [ISO 3166-2](https://www.iso.org/standard/72483.html) format.\n             */\n            subdivision?: string;\n        };\n        type PickupDetails = {\n            /**\n             * Pickup address.\n             */\n            address?: wix_ecom_backend.Orders.PickupAddress;\n            /**\n             * Pickup method\n             */\n            pickupMethod?: string;\n        };\n        type PickupReadyEmailSent = {};\n        type PlainTextValue = {\n            /**\n             * Optional - Description line plain text value in site's default language.\n             */\n            original?: string;\n            /**\n             * Optional - Translated description line plain text value according to buyer language. Defaults to `original` when not provided.\n             */\n            translated?: string;\n        };\n        type PlatformPaging = {\n            /**\n             * Number of items to load.\n             */\n            limit?: number;\n            /**\n             * Number of items to skip in the current sort order.\n             */\n            offset?: number;\n        };\n        type PlatformPagingMetadata = {\n            /**\n             * The number of items returned in this response.\n             */\n            count?: number;\n            /**\n             * Cursors to navigate through result pages. Returned if cursor paging was used.\n             */\n            cursors?: wix_ecom_backend.Orders.Cursors;\n            /**\n             * The offset which was requested. Returned if offset paging was used.\n             */\n            offset?: number;\n            /**\n             * The total number of items that match the query. Returned if offset paging was used.\n             */\n            total?: number;\n        };\n        type PlatformQuery = {\n            /**\n             * Cursor pointing to page of results. Cannot be used together with `paging`. `cursorPaging.cursor` can not be used together with `filter` or `sort`.\n             */\n            cursorPaging?: wix_ecom_backend.Orders.CursorPaging;\n            /**\n             * Filter object.\n             */\n            filter?: Object;\n            /**\n             * Pointer to page of results using offset. Cannot be used together with `cursorPaging`.\n             */\n            paging?: wix_ecom_backend.Orders.PlatformPaging;\n            /**\n             * Sorting options. For example, `[{\"fieldName\":\"sortField1\"},{\"fieldName\":\"sortField2\",\"direction\":\"DESC\"}]`.\n             */\n            sort?: Array<wix_ecom_backend.Orders.Sorting>;\n        };\n        type PlatformQueryPagingMethodOneOf = {\n            /**\n             * Cursor pointing to page of results. Cannot be used together with `paging`. `cursorPaging.cursor` can not be used together with `filter` or `sort`.\n             */\n            cursorPaging?: wix_ecom_backend.Orders.CursorPaging;\n            /**\n             * Pointer to page of results using offset. Cannot be used together with `cursorPaging`.\n             */\n            paging?: wix_ecom_backend.Orders.PlatformPaging;\n        };\n        type PreparePaymentCollectionRequest = {\n            /**\n             * Amount to collect\n             */\n            amount: wix_ecom_backend.Orders.Price;\n            /**\n             * Ecom order ID.\n             */\n            ecomOrderId: string;\n        };\n        type PreparePaymentCollectionResponse = {\n            /**\n             * Payment gateway order id which is associated with given payment\n             */\n            paymentGatewayOrderId?: string;\n        };\n        type PreviewBuyerConfirmationEmailRequest = {};\n        type PreviewBuyerConfirmationEmailResponse = {\n            emailPreview?: string;\n        };\n        type PreviewBuyerPaymentsReceivedEmailRequest = {};\n        type PreviewBuyerPaymentsReceivedEmailResponse = {\n            emailPreview?: string;\n        };\n        type PreviewBuyerPickupConfirmationEmailRequest = {};\n        type PreviewBuyerPickupConfirmationEmailResponse = {\n            emailPreview?: string;\n        };\n        type PreviewCancelEmailOptions = {\n            /**\n             * Personal note added to the email (optional)\n             */\n            customMessage?: string;\n        };\n        type PreviewCancelEmailRequest = {\n            /**\n             * Personal note added to the email (optional)\n             */\n            customMessage?: string;\n            orderId: string;\n        };\n        type PreviewCancelEmailResponse = {\n            emailPreview?: string;\n        };\n        type PreviewCancelRefundEmailOptions = {\n            /**\n             * Personal note added to the email (optional)\n             */\n            customMessage?: string;\n            /**\n             * Refund amount\n             */\n            refundAmount?: wix_ecom_backend.Orders.Price;\n        };\n        type PreviewCancelRefundEmailRequest = {\n            /**\n             * Personal note added to the email (optional)\n             */\n            customMessage?: string;\n            orderId: string;\n            /**\n             * Refund amount\n             */\n            refundAmount?: wix_ecom_backend.Orders.Price;\n        };\n        type PreviewCancelRefundEmailResponse = {\n            emailPreview?: string;\n        };\n        type PreviewEmailByTypeRequest = {\n            /**\n             * Suppoerted values:\n             * - `'DOWNLOAD_LINKS'`\n             * - `'ORDER_PLACED'`\n             * - `'ORDER_READY_FOR_PICKUP'`\n             * - `'ORDER_SHIPPED'`\n             */\n            emailType: string;\n        };\n        type PreviewEmailByTypeResponse = {\n            emailPreview?: string;\n        };\n        type PreviewRefundEmailOptions = {\n            /**\n             * Personal note added to the email (optional)\n             */\n            customMessage?: string;\n            /**\n             * Refund business details\n             */\n            details?: wix_ecom_backend.Orders.RefundDetails;\n            /**\n             * Refund amount\n             */\n            refundAmount: wix_ecom_backend.Orders.Price;\n        };\n        type PreviewRefundEmailRequest = {\n            /**\n             * Personal note added to the email (optional)\n             */\n            customMessage?: string;\n            /**\n             * Refund business details\n             */\n            details?: wix_ecom_backend.Orders.RefundDetails;\n            orderId: string;\n            /**\n             * Refund amount\n             */\n            refundAmount: wix_ecom_backend.Orders.Price;\n        };\n        type PreviewRefundEmailResponse = {\n            emailPreview?: string;\n        };\n        type PreviewResendDownloadLinksEmailRequest = {};\n        type PreviewResendDownloadLinksEmailResponse = {\n            emailPreview?: string;\n        };\n        type PreviewShippingConfirmationEmailRequest = {};\n        type PreviewShippingConfirmationEmailResponse = {\n            emailPreview?: string;\n        };\n        type Price = {\n            /**\n             * Amount.\n             */\n            amount?: string;\n            /**\n             * Amount formatted with currency symbol.\n             */\n            formattedAmount?: string;\n        };\n        type PriceDescription = {\n            /**\n             * Required** - Original price description (in site's default language).\n             */\n            original?: string;\n            /**\n             * Optional - Translated product name according to buyer language. Defaults to `original` when not provided.\n             */\n            translated?: string;\n        };\n        type PriceSummary = {\n            /**\n             * Total calculated discount value.\n             */\n            discount?: wix_ecom_backend.Orders.Price;\n            /**\n             * Total shipping price, before discounts and before tax.\n             */\n            shipping?: wix_ecom_backend.Orders.Price;\n            /**\n             * Subtotal of all the line items, before discounts and before tax.\n             */\n            subtotal?: wix_ecom_backend.Orders.Price;\n            /**\n             * Total tax on this order.\n             */\n            tax?: wix_ecom_backend.Orders.Price;\n            /**\n             * Order’s total price after discounts and tax.\n             */\n            total?: wix_ecom_backend.Orders.Price;\n            /**\n             * Total price of additional fees.\n             */\n            totalAdditionalFees?: wix_ecom_backend.Orders.Price;\n            /**\n             * Deprecated - use `total` instead.\n             */\n            totalPrice?: wix_ecom_backend.Orders.Price;\n        };\n        type ProductName = {\n            /**\n             * Required** - Original item name (in site's default language).\n             */\n            original?: string;\n            /**\n             * Optional - Translated item name according to buyer language. Defaults to `original` when not provided.\n             */\n            translated?: string;\n        };\n        type PublicActivity = {\n            /**\n             * Custom activity details.\n             */\n            customActivity?: wix_ecom_backend.Orders.CustomActivity;\n            /**\n             * Merchant commment.\n             */\n            merchantComment?: wix_ecom_backend.Orders.MerchantComment;\n        };\n        type PublicActivityContentOneOf = {\n            /**\n             * Custom activity details.\n             */\n            customActivity?: wix_ecom_backend.Orders.CustomActivity;\n            /**\n             * Merchant commment.\n             */\n            merchantComment?: wix_ecom_backend.Orders.MerchantComment;\n        };\n        type QueryOrderRequest = {\n            /**\n             * Query options.\n             */\n            query?: wix_ecom_backend.Orders.PlatformQuery;\n        };\n        type QueryOrderResponse = {\n            /**\n             * Details on the paged set of results returned.\n             */\n            metadata?: wix_ecom_backend.Orders.PlatformPagingMetadata;\n            /**\n             * List of orders.\n             */\n            orders?: Array<wix_ecom_backend.Orders.Order>;\n        };\n        type RefundDetails = {\n            /**\n             * Refunded line items and quantities.\n             */\n            items?: Array<wix_ecom_backend.Orders.RefundItem>;\n            /**\n             * Reason for refund, given by user (optional).\n             */\n            reason?: string;\n            /**\n             * Whether shipping rate is also refunded.\n             */\n            shippingIncluded?: boolean;\n        };\n        type RefundItem = {\n            /**\n             * ID of the line item being refunded.\n             */\n            lineItemId?: string;\n            /**\n             * Line item quantity being refunded.\n             */\n            quantity?: number;\n        };\n        type Reschedule = {\n            executeAt?: Date;\n            payload?: string;\n        };\n        type RestockItem = {\n            /**\n             * ID of the line item being restocked.\n             */\n            lineItemId?: string;\n            /**\n             * Line item quantity being restocked.\n             */\n            quantity?: number;\n        };\n        type SendBuyerConfirmationEmailRequest = {\n            orderId: string;\n        };\n        type SendBuyerConfirmationEmailResponse = {};\n        type SendBuyerPaymentsReceivedEmailRequest = {\n            orderId: string;\n        };\n        type SendBuyerPaymentsReceivedEmailResponse = {};\n        type SendBuyerPickupConfirmationEmailRequest = {\n            orderId: string;\n        };\n        type SendBuyerPickupConfirmationEmailResponse = {};\n        type SendBuyerShippingConfirmationEmailRequest = {\n            orderId: string;\n        };\n        type SendBuyerShippingConfirmationEmailResponse = {};\n        type SendCancelRefundEmailOptions = {\n            /**\n             * Personal note added to the email (optional)\n             */\n            customMessage?: string;\n            /**\n             * Refund amount\n             */\n            refundAmount: wix_ecom_backend.Orders.Price;\n        };\n        type SendCancelRefundEmailRequest = {\n            /**\n             * Personal note added to the email (optional)\n             */\n            customMessage?: string;\n            /**\n             * The ID of order that is canceled/refunded\n             */\n            orderId: string;\n            /**\n             * Refund amount\n             */\n            refundAmount: wix_ecom_backend.Orders.Price;\n        };\n        type SendCancelRefundEmailResponse = {};\n        type SendMerchantOrderReceivedNotificationRequest = {\n            orderId: string;\n        };\n        type SendMerchantOrderReceivedNotificationResponse = {};\n        type SendOrderPaymentReceivedEmail = {\n            orderId?: string;\n            storeId?: string;\n        };\n        type ShippingAddressEdited = {};\n        type ShippingConfirmationEmailSent = {};\n        type ShippingInformation = {\n            /**\n             * App Def Id of external provider which was a source of shipping info\n             */\n            carrierId?: string;\n            /**\n             * Unique code (or ID) of selected shipping option. For example, `\"usps_std_overnight\"``.\n             */\n            code?: string;\n            /**\n             * Shipping costs.\n             */\n            cost?: wix_ecom_backend.Orders.ShippingPrice;\n            /**\n             * Shipping logistics.\n             */\n            logistics?: wix_ecom_backend.Orders.DeliveryLogistics;\n            /**\n             * Shipping region.\n             */\n            region?: wix_ecom_backend.Orders.ShippingRegion;\n            /**\n             * Shipping option title.\n             * For example, `\"USPS Standard Overnight Delivery\"`, `\"Standard\"` or `\"First-Class Package International\"`.\n             */\n            title?: string;\n        };\n        type ShippingPrice = {\n            /**\n             * Shipping discount before tax.\n             */\n            discount?: wix_ecom_backend.Orders.Price;\n            /**\n             * Shipping price for display purposes.\n             */\n            price?: wix_ecom_backend.Orders.Price;\n            /**\n             * Tax details.\n             */\n            taxDetails?: wix_ecom_backend.Orders.ItemTaxFullDetails;\n            /**\n             * Shipping price after all discounts (if any exist), and after tax.\n             */\n            totalPriceAfterTax?: wix_ecom_backend.Orders.Price;\n            /**\n             * Deprecated - please use `total_price_after_tax` minus `tax_details.total_tax` instead.\n             */\n            totalPriceBeforeTax?: wix_ecom_backend.Orders.Price;\n        };\n        type ShippingRegion = {\n            /**\n             * Name of shipping region. For example, `\"Metropolitan London\"`, or `\"Outer Melbourne suburbs\"`.\n             */\n            name?: string;\n        };\n        type SnapshotMessage = {\n            _id?: string;\n            opType?: number;\n        };\n        type Sorting = {\n            /**\n             * Name of the field to sort by.\n             */\n            fieldName?: string;\n            /**\n             * Sort order.\n             */\n            order?: string;\n        };\n        type Street = {\n            /**\n             * Street name\n             */\n            name?: string;\n            /**\n             * Street number\n             */\n            number?: string;\n        };\n        type StreetAddress = {\n            /**\n             * Street name.\n             */\n            name?: string;\n            /**\n             * Street number.\n             */\n            number?: string;\n        };\n        type SubscriptionInfo = {\n            /**\n             * Subscription ID.\n             */\n            _id?: string;\n            /**\n             * Subscription cycle. For example, if this order is for the 3rd cycle of a subscription, value will be `3`.\n             */\n            cycleNumber?: number;\n            /**\n             * Subscription option description. For example, `\"1kg of selected coffee, once a month\"`.\n             */\n            subscriptionOptionDescription?: string;\n            /**\n             * Subscription option title. For example, `\"Monthly coffee Subscription\"`.\n             */\n            subscriptionOptionTitle?: string;\n            /**\n             * Subscription detailed information.\n             */\n            subscriptionSettings?: wix_ecom_backend.Orders.SubscriptionSettings;\n        };\n        type SubscriptionOptionInfo = {\n            /**\n             * Subscription option description.\n             */\n            description?: string;\n            /**\n             * Subscription option title.\n             */\n            title?: string;\n        };\n        type SubscriptionSettings = {\n            /**\n             * Whether subscription is renewed automatically at the end of each period.\n             */\n            autoRenewal?: boolean;\n            /**\n             * Number of billing cycles before subscription ends. Ignored if `autoRenewal: true`.\n             */\n            billingCycles?: number;\n            /**\n             * Frequency of recurring payment.\n             */\n            frequency?: string;\n        };\n        type Task = {\n            executeAt?: Date;\n            key?: wix_ecom_backend.Orders.TaskKey;\n            payload?: string;\n        };\n        type TaskAction = {\n            cancel?: wix_ecom_backend.Orders.Cancel;\n            complete?: wix_ecom_backend.Orders.Complete;\n            reschedule?: wix_ecom_backend.Orders.Reschedule;\n        };\n        type TaskActionActionOneOf = {\n            cancel?: wix_ecom_backend.Orders.Cancel;\n            complete?: wix_ecom_backend.Orders.Complete;\n            reschedule?: wix_ecom_backend.Orders.Reschedule;\n        };\n        type TaskKey = {\n            appId?: string;\n            instanceId?: string;\n            subjectId?: string;\n        };\n        type TaxSummary = {\n            /**\n             * Total tax.\n             */\n            totalTax?: wix_ecom_backend.Orders.Price;\n        };\n        type Totals = {\n            /**\n             * Total calculated discount value.\n             */\n            discount?: string;\n            /**\n             * Total calculated gift card value.\n             */\n            giftCard?: string;\n            /**\n             * Total number of line items.\n             */\n            quantity?: number;\n            /**\n             * Total refund.\n             */\n            refund?: string;\n            /**\n             * Total shipping price, before tax.\n             */\n            shipping?: string;\n            /**\n             * Subtotal of all the line items, before tax.\n             */\n            subtotal?: string;\n            /**\n             * Total tax.\n             */\n            tax?: string;\n            /**\n             * Total price charged.\n             */\n            total?: string;\n            /**\n             * Total items weight.\n             */\n            weight?: string;\n        };\n        type TrackingLinkAdded = {};\n        type TrackingNumberAdded = {};\n        type TrackingNumberEdited = {};\n        type TriggerSideEffectsFromLegacyData = {\n            orderId?: string;\n            ordersExperiments?: wix_ecom_backend.Orders.OrdersExperiments;\n            storeId?: string;\n        };\n        type UnArchiveOrderRequest = {\n            /**\n             * Order ID.\n             */\n            _id: string;\n        };\n        type UnArchiveOrderResponse = {\n            /**\n             * Unarchived order.\n             */\n            order?: wix_ecom_backend.Orders.Order;\n        };\n        type UpdateActivityIdentifiers = {\n            /**\n             * Order ID.\n             */\n            _id: string;\n            /**\n             * ID of the activity to update.\n             */\n            activityId: string;\n        };\n        type UpdateActivityRequest = {\n            /**\n             * Order ID.\n             */\n            _id: string;\n            /**\n             * Activity info.\n             */\n            activity: wix_ecom_backend.Orders.PublicActivity;\n            /**\n             * ID of the activity to update.\n             */\n            activityId: string;\n        };\n        type UpdateActivityResponse = {\n            /**\n             * Updated order.\n             */\n            order?: wix_ecom_backend.Orders.Order;\n        };\n        type UpdateBillingContactDetailsOptions = {\n            /**\n             * Contact details.\n             */\n            addressContactDetails?: wix_ecom_backend.Orders.FullAddressContactDetails;\n        };\n        type UpdateBillingContactDetailsRequest = {\n            /**\n             * Order ID.\n             */\n            _id: string;\n            /**\n             * Contact details.\n             */\n            addressContactDetails?: wix_ecom_backend.Orders.FullAddressContactDetails;\n        };\n        type UpdateBillingContactDetailsResponse = {\n            /**\n             * Updated order.\n             */\n            order?: wix_ecom_backend.Orders.Order;\n        };\n        type UpdateBuyerInfoOptions = {\n            /**\n             * Buyer info.\n             */\n            buyerInfo?: wix_ecom_backend.Orders.BuyerInfoUpdate;\n        };\n        type UpdateBuyerInfoRequest = {\n            /**\n             * Order ID.\n             */\n            _id: string;\n            /**\n             * Buyer info.\n             */\n            buyerInfo?: wix_ecom_backend.Orders.BuyerInfoUpdate;\n        };\n        type UpdateBuyerInfoResponse = {\n            /**\n             * Updated order.\n             */\n            order?: wix_ecom_backend.Orders.Order;\n        };\n        type UpdateLineItemsDescriptionLinesRequest = {\n            /**\n             * Order ID.\n             */\n            _id: string;\n            /**\n             * Line items.\n             */\n            lineItems: Array<wix_ecom_backend.Orders.LineItemUpdate>;\n        };\n        type UpdateLineItemsDescriptionLinesResponse = {\n            /**\n             * Updated order.\n             */\n            order?: wix_ecom_backend.Orders.Order;\n        };\n        type UpdateOrderShippingAddressOptions = {\n            /**\n             * Shipping address and contact details to be updated.\n             */\n            shippingAddress: wix_ecom_backend.Orders.AddressWithContact;\n        };\n        type UpdateOrderShippingAddressRequest = {\n            /**\n             * Order ID.\n             */\n            _id: string;\n            /**\n             * Shipping address and contact details to be updated.\n             */\n            shippingAddress: wix_ecom_backend.Orders.AddressWithContact;\n        };\n        type UpdateOrderShippingAddressResponse = {\n            /**\n             * Updated order.\n             */\n            order?: wix_ecom_backend.Orders.Order;\n        };\n        type V1SubscriptionSettings = {\n            /**\n             * Whether subscription is renewed automatically at the end of each period.\n             */\n            autoRenewal?: boolean;\n            /**\n             * Number of billing cycles before subscription ends. Ignored if `autoRenewal: true`.\n             */\n            billingCycles?: number;\n            /**\n             * Frequency of recurring payment.\n             */\n            frequency?: string;\n        };\n        type V2BuyerInfo = {\n            /**\n             * Wix customer ID\n             */\n            _id?: string;\n            /**\n             * Customer's email address\n             */\n            email?: string;\n            /**\n             * Customer's first name\n             */\n            firstName?: string;\n            /**\n             * Customer type\n             */\n            identityType?: string;\n            /**\n             * Customer's last name\n             */\n            lastName?: string;\n            /**\n             * Customer's phone number\n             */\n            phone?: string;\n            /**\n             * Deprecated (use identityType instead)\n             */\n            type?: string;\n        };\n        type V2SubscriptionInfo = {\n            /**\n             * Subscription ID.\n             */\n            _id?: string;\n            /**\n             * Current cycle number. For example, if the subscription is in the 3rd month of a 4-month subscription, the value will be `3`.\n             */\n            cycleNumber?: number;\n            /**\n             * Subscription options info.\n             */\n            subscriptionOptionInfo?: wix_ecom_backend.Orders.SubscriptionOptionInfo;\n            /**\n             * Subscription settings.\n             */\n            subscriptionSettings?: wix_ecom_backend.Orders.V1SubscriptionSettings;\n        };\n        type VatId = {\n            /**\n             * Customer's tax ID\n             */\n            _id?: string;\n            /**\n             * tax type\n             */\n            type?: string;\n        };\n    }\n}\ndeclare namespace wix_events {\n    /**\n     * A registration form for an event.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-events.Form.html#)\n     */\n    interface Form {\n        /**\n         * Gets information about the event's registration form and status.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-events.Form.html#formData)\n         */\n        readonly formData: wix_events.Form.FormData;\n        /**\n         * Validates form fields and values against the registration form as defined in the site Dashboard.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-events.Form.html#validate)\n         */\n        validate(formValues: wix_events.Form.FormValue[]): Promise<wix_events.Form.ValidationResult>;\n        /**\n         * Validates an input form field value against the registration form as defined in the site Dashboard.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-events.Form.html#validateInput)\n         */\n        validateInput(inputName: string, formValues: wix_events.Form.FormValue[]): wix_events.Form.ValidationResult;\n    }\n    namespace Form {\n        /**\n         * An object containing information about a label for a complex input field type.\n         */\n        type AdditionalLabel = {\n            /**\n             * Additional label name.\n             */\n            name: string;\n            /**\n             * Additional label value.\n             */\n            label: string;\n        };\n        /**\n         * An object representing an error that occurred during validation of a registration form's fields.\n         */\n        type FieldValidationError = {\n            /**\n             * Error message.\n             */\n            message: string;\n            /**\n             * List of fields that caused the error when the form does not pass validation.\n             */\n            fields: string[];\n        };\n        /**\n         * An object representing the details needed to create a registration form for an event.\n         */\n        type FormData = {\n            /**\n             * Information about the input fields needed to create a registration form.\n             */\n            formInputs: wix_events.Form.InputItem[];\n            /**\n             * Allowed RSVP statuses for an event.\n             *  One of:\n             *\n             *  + `\"YES_AND_NO\"`: Guests can RSVP for the event with a \"Yes\" or \"No\".\n             *  + `\"YES_ONLY\"`: Guests can only RSVP for the event with a \"Yes\".\n             *  + `\"WAITING\"`: The guest limit has been reached, but there is an open waitlist.\n             */\n            rsvpStatusOptions: string;\n            /**\n             * Event registration status.\n             *  One of:\n             *\n             *  + `\"OPEN_RSVP\"`: Registration is open and guest limit has not been reached.\n             *  + `\"OPEN_RSVP_WAITLIST\"`: Registration is open, guest limit has been reached,\n             *    and additional registering guests are added to the waitlist.\n             *  + `\"OPEN_TICKETS\"`: Registration is open for a ticketed event and there are still\n             *    tickets available.\n             *  + `\"OPEN_EXTERNAL\"`: Registration is open for an event that uses external registration,\n             *     not RSVP or ticketed.\n             *  + `\"CLOSED\"`: Registration is closed because the guest limit has been reached.\n             *  + `\"CLOSED_MANUALLY\"`: Registration was closed manually.\n             */\n            registrationStatus: string;\n            /**\n             * Whether the event is a ticketed event.\n             */\n            isTicketed: boolean;\n        };\n        /**\n         * An object containing information about a form value.\n         */\n        type FormValue = {\n            /**\n             * Form field name.\n             */\n            name: string;\n            /**\n             * Form field value.\n             */\n            value: string;\n        };\n        /**\n         * An object containing information about an input field in a registration form.\n         */\n        type InputItem = {\n            /**\n             * Unique input identifier.\n             */\n            _id: string;\n            /**\n             * Whether the input field's value is an array.\n             */\n            array: boolean;\n            /**\n             * Input field display label.\n             */\n            label: string;\n            /**\n             * Addition field display labels for complex fields.\n             */\n            additionalLabels: wix_events.Form.AdditionalLabel[];\n            /**\n             * List of value options where applicable.\n             */\n            options: string[];\n            /**\n             * Maximum length of the input field's value. A value of `0` indicates no maximum length.\n             */\n            maxLength: number;\n            /**\n             * Input field name.\n             */\n            name: string;\n            /**\n             * Whether the input field is required.\n             */\n            required: boolean;\n            /**\n             * The type of the input field.\n             *  One of:\n             *\n             *  + `\"NAME\"`\n             *  + `\"INPUT\"`\n             *  + `\"RADIO\"`\n             *  + `\"CHECKBOX\"`\n             *  + `\"DROPDOWN\"`\n             *  + `\"GUEST_CONTROL\"`\n             *  + `\"ADDRESS_FULL\"`\n             *  + `\"TEXTAREA\"`\n             *  + `\"DATE\"`\n             */\n            controlType: string;\n        };\n        /**\n         * An object representing the result of a validation.\n         */\n        type ValidationResult = {\n            /**\n             * Indicates that the registration form field(s) are valid.\n             */\n            valid: boolean;\n        };\n        /**\n         * An object representing an error that occurred during validation of an RSVP form's values.\n         */\n        type ValueValidationError = {\n            /**\n             * Error message.\n             */\n            message: string;\n            /**\n             * ID of the input field that failed validation.\n             */\n            inputId: string;\n            /**\n             * Error type.\n             *  One of:\n             *\n             *  + `\"EMPTY_INPUT\"`: A required field is missing its value.\n             *  + `\"INVALID_INPUT_VALUE\"`: The value is not valid for the field type.\n             *  + `\"INPUT_TOO_LONG\"`: The value is too long.\n             *  + `\"INVALID_OPTION\"`: The value does not match one of the defined options for the field.\n             *  + `\"INVALID_STATUS\"`: The status value is not valid.\n             *  + `\"INVALID_NUMBER_OF_GUESTS\"`: The number of guests does not match the number defined for the form.\n             */\n            errorType: string;\n        };\n    }\n    /**\n     * An object containing RSVP functionality.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-events.Rsvp.html#)\n     */\n    interface Rsvp {\n        /**\n         * Creates an RSVP and adds the new guests to an event's guest list.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-events.Rsvp.html#createRsvp)\n         */\n        createRsvp(eventId: string, formValues: wix_events.Rsvp.FormValue[]): Promise<wix_events.Rsvp.RsvpResponse>;\n    }\n    namespace Rsvp {\n        /**\n         * An object representing an error that occurred during an RSVP creation.\n         */\n        type CreationError = {\n            /**\n             * Error message.\n             */\n            message: string;\n            /**\n             * Error type.\n             *  One of:\n             *\n             *  + `\"RSVP_CLOSED\"`: Event registration is closed.\n             *  + `\"GUEST_LIMIT_REACHED\"`: The maximum number of guests has already been reached.\n             *  + `\"MEMBER_ALREADY_REGISTERED\"`: The current registrant is already registered as a guest.\n             *  + `\"WAITING_LIST_UNAVAILABLE\"`: The maximum number of guests has already been reached and\n             *    there is no waitlist.\n             *  + `\"UNKNOWN_ERROR\"`: Unknown error.\n             */\n            errorType: string;\n        };\n        /**\n         * An object containing information about form values.\n         */\n        type FormValue = {\n            /**\n             * Form field name.\n             */\n            name: string;\n            /**\n             * Form field value.\n             */\n            value: string;\n        };\n        /**\n         * An object representing a guest on an event RSVP.\n         */\n        type Guest = {\n            /**\n             * Index of the guest in the RSVP guest list. Indices are zero-based.\n             */\n            index: number;\n            /**\n             * Guest ID, which is unique within the RSVP.\n             */\n            id: number;\n            /**\n             * Full name of the guest.\n             */\n            fullName: string;\n        };\n        /**\n         * An object representing an RSVP input value.\n         */\n        type InputValue = {\n            /**\n             * Name of the input.\n             */\n            inputName: string;\n            /**\n             * Value of the input, when there is just one value.\n             */\n            value: string;\n            /**\n             * Value of the input, when there are multiple values.\n             */\n            values: string[];\n        };\n        /**\n         * An object representing an RSVP form.\n         */\n        type RsvpForm = {\n            /**\n             * Values that were entered in the RSVP form.\n             */\n            inputValues: wix_events.Rsvp.InputValue[];\n        };\n        /**\n         * An object representing a response to creating an RSVP.\n         */\n        type RsvpResponse = {\n            /**\n             * RSVP ID\n             */\n            id: string;\n            /**\n             * Whether the guest's personal information has been removed.\n             */\n            anonymized: boolean;\n            /**\n             * Contact ID of the guest who created the RSVP.\n             */\n            contactId: string;\n            /**\n             * Date when the RSVP was created.\n             */\n            createdDate: Date;\n            /**\n             * Email address to the guest who created the RSVP.\n             */\n            email: string;\n            /**\n             * ID of the event the RSVP is for.\n             */\n            eventId: string;\n            /**\n             * First name of the guest who created the RSVP.\n             */\n            firstName: string;\n            /**\n             * Last name of the guest who created the RSVP.\n             */\n            lastName: string;\n            /**\n             * All of the guests included in the RSVP.\n             */\n            guests: wix_events.RsvpForm.Guest[];\n            /**\n             * A representation of the RSVP form that was created.\n             */\n            rsvpForm: wix_events.RsvpForm.RsvpForm;\n            /**\n             * Member ID of the guest who created the RSVP form if the guest is a site member.\n             */\n            memberId: string;\n            /**\n             * Date when RSVP was last modified.\n             */\n            updatedDate: Date;\n            /**\n             * RSVP status.\n             */\n            status: string;\n            /**\n             * Total number of guests included in the RSVP.\n             */\n            totalGuests: number;\n        };\n    }\n    /**\n     * **Deprecated:** A form for creating an RSVP to an event.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-events.RsvpForm.html#)\n     */\n    interface RsvpForm {\n        /**\n         * **Deprecated:** Gets information about the event's RSVP form and status.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-events.RsvpForm.html#getRsvpData)\n         */\n        getRsvpData(): Promise<wix_events.RsvpForm.RsvpData>;\n        /**\n         * **Deprecated:** Submits an RSVP form and adds the new guests to the event's guest list.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-events.RsvpForm.html#submit)\n         */\n        submit(formValues: wix_events.RsvpForm.FormValue[]): Promise<wix_events.RsvpForm.RsvpResponse>;\n        /**\n         * **Deprecated:** Validates form fields and values against the registration form as defined in the site Dashboard.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-events.RsvpForm.html#validate)\n         */\n        validate(formValues: wix_events.RsvpForm.FormValue[]): Promise<wix_events.RsvpForm.ValidationResult>;\n        /**\n         * **Deprecated:** Validates an input form field value against the registration form as defined in the site Dashboard.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-events.RsvpForm.html#validateInput)\n         */\n        validateInput(inputName: string, formValues: wix_events.RsvpForm.FormValue[]): Promise<wix_events.RsvpForm.ValidationResult>;\n    }\n    namespace RsvpForm {\n        /**\n         * **Deprecated:** An object containing information about a label for a complex input field type.\n         */\n        type AdditionalLabel = {\n            /**\n             * Additional label name.\n             */\n            name: string;\n            /**\n             * Additional label value.\n             */\n            label: string;\n        };\n        /**\n         * **Deprecated:** An object representing an error that occurred during validation of an RSVP form's fields.\n         */\n        type FieldValidationError = {\n            /**\n             * Error message.\n             */\n            message: string;\n            /**\n             * List of fields that caused the error when the form does not pass validation.\n             */\n            fields: string[];\n        };\n        /**\n         * **Deprecated:** An object containing information about form value to submit.\n         */\n        type FormValue = {\n            /**\n             * Form field name.\n             */\n            name: string;\n            /**\n             * Form field value.\n             */\n            value: string;\n        };\n        /**\n         * **Deprecated:** An object representing a guest on an event RSVP.\n         */\n        type Guest = {\n            /**\n             * Index of the guest in the RSVP guest list. Indices are zero-based.\n             */\n            index: number;\n            /**\n             * Guest ID, which is unique within the RSVP.\n             */\n            id: number;\n            /**\n             * Full name of the guest.\n             */\n            fullName: string;\n        };\n        /**\n         * **Deprecated:** An object representing a submitted RSVP form input value.\n         */\n        type InputValue = {\n            /**\n             * Name of the form input.\n             */\n            inputName: string;\n            /**\n             * Value of the form input, when there is just one value.\n             */\n            value: string;\n            /**\n             * Value of the form input, when there are multiple values.\n             */\n            values: string[];\n        };\n        /**\n         * **Deprecated:** An object representing the details needed to create an RSVP form for an event.\n         */\n        type RsvpData = {\n            /**\n             * Information about the input fields needed to create an RSVP form.\n             */\n            rsvpFormInputs: wix_events.RsvpForm.RsvpInputItem[];\n            /**\n             * Allowed RSVP statuses for an event.\n             *  One of:\n             *\n             *  + `\"YES_AND_NO\"`: Guests can RSVP for the event with a \"Yes\" or \"No\".\n             *  + `\"YES_ONLY\"`: Guests can only RSVP for the event with a \"Yes\".\n             *  + `\"WAITING\"`: The guest limit has been reached, but there is an open waitlist.\n             */\n            rsvpStatusOptions: string;\n            /**\n             * Event registration status.\n             *  One of:\n             *\n             *  + `\"OPEN_RSVP\"`: Registration is open and guest limit has not been reached.\n             *  + `\"OPEN_RSVP_WAITLIST\"`: Registration is open, guest limit has been reached,\n             *    and additional registering guests are added to the waitlist.\n             *  + `\"CLOSED\"`: Registration is closed because the guest limit has been reached.\n             *  + `\"CLOSED_MANUALLY\"`: Registration was closed manually.\n             */\n            registrationStatus: string;\n        };\n        /**\n         * **Deprecated:** An object representing a submitted RSVP form.\n         */\n        type RsvpForm = {\n            /**\n             * Values that were entered in the RSVP form.\n             */\n            inputValues: wix_events.RsvpForm.InputValue[];\n        };\n        /**\n         * **Deprecated:** An object containing information about an input field in an RSVP form.\n         */\n        type RsvpInputItem = {\n            /**\n             * Unique input identifier.\n             */\n            _id: string;\n            /**\n             * Whether the input field's value is an array.\n             */\n            array: boolean;\n            /**\n             * Input field display label.\n             */\n            label: string;\n            /**\n             * Addition field display labels for complex fields.\n             */\n            additionalLabels: wix_events.RsvpForm.AdditionalLabel[];\n            /**\n             * List of value options where applicable.\n             */\n            options: string[];\n            /**\n             * Maximum length of the input field's value. A value of `0` indicates no maximum length.\n             */\n            maxLength: number;\n            /**\n             * Input field name.\n             */\n            name: string;\n            /**\n             * Whether the input field is required.\n             */\n            required: boolean;\n            /**\n             * The type of the input field.\n             *  One of:\n             *\n             *  + `\"NAME\"`\n             *  + `\"INPUT\"`\n             *  + `\"RADIO\"`\n             *  + `\"CHECKBOX\"`\n             *  + `\"DROPDOWN\"`\n             *  + `\"GUEST_CONTROL\"`\n             *  + `\"ADDRESS_FULL\"`\n             *  + `\"TEXTAREA\"`\n             *  + `\"DATE\"`\n             */\n            controlType: string;\n        };\n        /**\n         * **Deprecated:** An object representing a response to submitting an RSVP.\n         */\n        type RsvpResponse = {\n            /**\n             * RSVP ID\n             */\n            id: string;\n            /**\n             * Indicates whether the guest's personal information has been deleted or not.\n             */\n            anonymized: boolean;\n            /**\n             * Contact ID of the guest who submitted the RSVP form.\n             */\n            contactId: string;\n            /**\n             * Date when the RSVP was submitted.\n             */\n            createdDate: Date;\n            /**\n             * Email address to the guest who submitted the RSVP form.\n             */\n            email: string;\n            /**\n             * ID of the event the RSVP is for.\n             */\n            eventId: string;\n            /**\n             * First name of the guest who submitted the RSVP form.\n             */\n            firstName: string;\n            /**\n             * Last name of the guest who submitted the RSVP form.\n             */\n            lastName: string;\n            /**\n             * All of the guests included in the RSVP.\n             */\n            guests: wix_events.RsvpForm.Guest[];\n            /**\n             * A representation of the RSVP form that was submitted.\n             */\n            rsvpForm: wix_events.RsvpForm.RsvpForm;\n            /**\n             * Member ID of the guest who submitted the RSVP form if the guest is a site member.\n             */\n            memberId: string;\n            /**\n             * Date when RSVP was last modified.\n             */\n            updatedDate: Date;\n            /**\n             * RSVP status.\n             */\n            status: string;\n            /**\n             * Total number of guests included in the RSVP.\n             */\n            totalGuests: number;\n        };\n        /**\n         * **Deprecated:** An object representing an error that occurred during an RSVP form submission.\n         */\n        type SubmissionError = {\n            /**\n             * Error message.\n             */\n            message: string;\n            /**\n             * Error type.\n             *  One of:\n             *\n             *  + `\"RSVP_CLOSED\"`: Event registration is closed.\n             *  + `\"GUEST_LIMIT_REACHED\"`: The maximum number of guests has already been reached.\n             *  + `\"MEMBER_ALREADY_REGISTERED\"`: The current registrant is already registered as a guest.\n             *  + `\"WAITING_LIST_UNAVAILABLE\"`: The maximum number of guests has already been reached and\n             *    there is no waitlist.\n             *  + `\"UNKNOWN_ERROR\"`: Unknown error.\n             */\n            errorType: string;\n        };\n        /**\n         * **Deprecated:** An object representing the result of a form validation.\n         */\n        type ValidationResult = {\n            /**\n             * Indicates that the RSVP form fields are valid.\n             */\n            valid: boolean;\n        };\n        /**\n         * **Deprecated:** An object representing an error that occurred during validation of an RSVP form's values.\n         */\n        type ValueValidationError = {\n            /**\n             * Error message.\n             */\n            message: string;\n            /**\n             * ID of the input field that failed validation.\n             */\n            inputId: string;\n            /**\n             * Error type.\n             *  One of:\n             *\n             *  + `\"EMPTY_INPUT\"`: A required field is missing its value.\n             *  + `\"INVALID_INPUT_VALUE\"`: The value is not valid for the field type.\n             *  + `\"INPUT_TOO_LONG\"`: The value is too long.\n             *  + `\"INVALID_OPTION\"`: The value does not match one of the defined options for the field.\n             *  + `\"INVALID_STATUS\"`: The status value is not valid.\n             *  + `\"INVALID_NUMBER_OF_GUESTS\"`: The number of guests does not match the number defined for the form.\n             */\n            errorType: string;\n        };\n    }\n    /**\n     * An object containing ticketing functionality.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-events.Tickets.html#)\n     */\n    interface Tickets {\n        /**\n         * Performs a checkout on reserved tickets.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-events.Tickets.html#checkout)\n         */\n        checkout(eventId: string, reservationId: string, checkoutInfo: wix_events.Tickets.CheckoutInfo): Promise<wix_events.Tickets.CheckoutResponse>;\n        /**\n         * Reserves tickets for an event.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-events.Tickets.html#reserve)\n         */\n        reserve(eventId: string, tickets: wix_events.Tickets.TicketSelection[]): Promise<wix_events.Tickets.ReservationResponse>;\n        /**\n         * Updates a ticket order.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-events.Tickets.html#updateOrder)\n         */\n        updateOrder(eventId: string, orderNumber: string, updateInfo: wix_events.Tickets.UpdateInfo): Promise<wix_events.Tickets.UpdateOrderResponse>;\n        /**\n         * Verifies a ticket coupon.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-events.Tickets.html#verifyCoupon)\n         */\n        verifyCoupon(eventId: string, reservationId: string, coupon: string): Promise<wix_events.Tickets.VerifyCouponResponse>;\n    }\n    namespace Tickets {\n        /**\n         * An object containing information about a checkout.\n         */\n        type CheckoutInfo = {\n            /**\n             * Field names and values for a registration form.\n             */\n            formValues: wix_events.Form.FormValue[];\n            /**\n             * Coupon to be used during checkout.\n             */\n            coupon?: string;\n        };\n        /**\n         * An object containing information about a checkout performed using the [`checkout()`](#reserve) function.\n         */\n        type CheckoutResponse = {\n            /**\n             * Ticket reservations.\n             */\n            reservations: wix_events.Tickets.Reservation[];\n            /**\n             * Ticket order.\n             */\n            order: wix_events.Tickets.Order;\n            /**\n             * Time the reservations expire.\n             */\n            expirationTime: Date;\n        };\n        /**\n         * An object representing a discount.\n         */\n        type Discount = {\n            /**\n             * Discount amount.\n             */\n            amount: wix_events.Tickets.Money;\n            /**\n             * Amount after discount.\n             */\n            afterDiscount: wix_events.Tickets.Money;\n            /**\n             * Discount code.\n             */\n            code: string;\n            /**\n             * Discount name.\n             */\n            name: string;\n            /**\n             * ID of the coupon used in the discount.\n             */\n            couponId: string;\n        };\n        /**\n         * An object containing information about a discount error.\n         */\n        type DiscountError = {\n            /**\n             * Error code.\n             *\n             * One of:\n             *\n             * + `\"ERROR_COUPON_DOES_NOT_EXIST\"`\n             * + `\"ERROR_COUPON_IS_DISABLED\"`\n             * + `\"ERROR_COUPON_USAGE_EXCEEDED\"`\n             * + `\"ERROR_COUPON_HAS_EXPIRED\"`\n             */\n            code: string;\n        };\n        /**\n         * An object containing information about discount errors.\n         */\n        type DiscountErrors = {\n            /**\n             * Invoice the coupon is used in.\n             */\n            error: wix_events.Tickets.DiscountError[];\n        };\n        /**\n         * An object representing a fee.\n         */\n        type Fee = {\n            /**\n             * Fee name. Value is `\"WIX_FEE\"`: Wix service fee applied to the item.\n             */\n            name: string;\n            /**\n             * Fee calculation method.\n             *  One of:\n             *\n             *  + `\"FEE_ADDED\"`: Fee is added to the ticket price at checkout.\n             *  + `\"FEE_INCLUDED\"`: Seller absorbs the fee. It is deducted from the ticket price.\n             */\n            type: string;\n            /**\n             * Rate percentage. Possible values are between `\"0.01\"` and `\"100\"`, using up to 2 decimal places.\n             */\n            rate: string;\n            /**\n             * Total amount of fee charges.\n             */\n            amount: wix_events.Tickets.Money;\n        };\n        /**\n         * An object representing a ticket order invoice.\n         */\n        type Invoice = {\n            /**\n             * Invoice items.\n             */\n            items: wix_events.Tickets.InvoiceItem[];\n            /**\n             * Invoice total.\n             */\n            total: wix_events.Tickets.Money;\n            /**\n             * Invoice applied discount.\n             */\n            discount?: wix_events.Tickets.Discount;\n            /**\n             * Invoice tax.\n             */\n            tax?: wix_events.Tickets.Tax;\n            /**\n             * Invoice subtotal amount before discount, tax, and fees.\n             */\n            subTotal: wix_events.Tickets.Money;\n            /**\n             * Invoice total amount after discount, tax, and fees.\n             *  Grand total is calculated in the following manner:\n             *\n             *  1. Total price of all items in the cart.\n             *  2. Discount is subtracted from the cart (if applicable).\n             *  3. Tax is added (if applicable).\n             *  4. Wix service fee is added.\n             */\n            grandTotal: wix_events.Tickets.Money;\n            /**\n             * Invoice applied fee charges.\n             */\n            fees: wix_events.Tickets.Fee[];\n            /**\n             * Total revenue with taxes, excluding fees. Payment provider fees are not deducted.\n             */\n            revenue: wix_events.Tickets.Money;\n        };\n        /**\n         * An object representing a ticket order invoice item.\n         */\n        type InvoiceItem = {\n            /**\n             * Invoice item ID.\n             */\n            id: string;\n            /**\n             * Invoice item quantity.\n             */\n            quantity: number;\n            /**\n             * Invoice item name.\n             */\n            name: string;\n            /**\n             * Invoice item price.\n             */\n            price: wix_events.Tickets.Money;\n            /**\n             * Invoice item total.\n             */\n            total: wix_events.Tickets.Money;\n            /**\n             * Invoice item applied discount.\n             */\n            discount?: wix_events.Tickets.Discount;\n            /**\n             * Invoice item tax.\n             */\n            tax?: wix_events.Tickets.Tax;\n            /**\n             * Invoice item applied fee charges.\n             */\n            fees: wix_events.Tickets.Fee[];\n        };\n        /**\n         * An object representing a monetary amount.\n         */\n        type Money = {\n            /**\n             * Decimal amount.\n             */\n            amount: string;\n            /**\n             * ISO 4217 currency format. For example, \"USD\".\n             */\n            currency: string;\n        };\n        /**\n         * An object containing information about a ticket order.\n         */\n        type Order = {\n            /**\n             * Order number.\n             */\n            orderNumber: string;\n            /**\n             * ID of the reservation used in the order.\n             */\n            reservationId: string;\n            /**\n             * ID of the checkout payment.\n             */\n            paymentId: string;\n            /**\n             * ID of the event the tickets are for.\n             */\n            eventId: string;\n            /**\n             * ID of the contact associated with the order.\n             */\n            contactId: string;\n            /**\n             * ID of the member associated with the order.\n             */\n            memberId: string;\n            /**\n             * Time the order was created.\n             */\n            createdDate: string;\n            /**\n             * First name associated with the order.\n             */\n            firstName: string;\n            /**\n             * Last name associated with the order.\n             */\n            lastName: string;\n            /**\n             * Full name associated with the order.\n             */\n            fullName: string;\n            /**\n             * Email address associated with the order.\n             */\n            email: string;\n            /**\n             * Form values used in the order.\n             */\n            checkoutForm: wix_events.Form.FormValue[];\n            /**\n             * Whether the order is confirmed.\n             */\n            confirmed: boolean;\n            /**\n             * Status of the order.\n             *\n             * One of:\n             *\n             * + `\"INITIATED\"`\n             * + `\"FREE\"`\n             * + `\"PENDING\"`\n             * + `\"PAID\"`\n             * + `\"OFFLINE_PENDING\"`\n             */\n            status: string;\n            /**\n             * Payment method.\n             */\n            paymentMethod: string;\n            /**\n             * Number of tickets in the order.\n             */\n            ticketQuantity: number;\n            /**\n             * Order price.\n             */\n            price: wix_events.Tickets.Money;\n            /**\n             * URL of the tickets PDF.\n             */\n            ticketsPdf: string;\n            /**\n             * Whether the order is archived.\n             */\n            archived: boolean;\n            /**\n             * Indicates whether personal information has been removed.\n             */\n            anonymized: boolean;\n            /**\n             * Order invoice.\n             */\n            invoice: wix_events.Tickets.Invoice;\n            /**\n             * Whether all ticket holders in the order have checked in.\n             */\n            fullyCheckedIn: boolean;\n            /**\n             * Transaction ID.\n             */\n            transactionId: string;\n        };\n        /**\n         * An object representing ticket reservations.\n         */\n        type Reservation = {\n            /**\n             * Ticket quantity.\n             */\n            quantity: number;\n            /**\n             * Reserved ticket.\n             */\n            ticket: wix_events.Tickets.Ticket;\n        };\n        /**\n         * An object containing information about a reservation created using the [`reserve()`](#reserve) function.\n         */\n        type ReservationResponse = {\n            /**\n             * Reservation ID.\n             */\n            id: string;\n            /**\n             * Ticket reservations.\n             */\n            reservations: wix_events.Tickets.Reservation[];\n            /**\n             * Ticket reservations invoice.\n             */\n            invoice: wix_events.Tickets.Invoice;\n            /**\n             * Time the reservations expire.\n             */\n            expirationTime: Date;\n        };\n        /**\n         * An object representing a tax.\n         */\n        type Tax = {\n            /**\n             * Tax type.\n             *  One of:\n             *\n             *  + `\"INCLUDED\"`: Tax is included in the ticket price.\n             *  + `\"ADDED\"`: Tax is added to the order at checkout.\n             */\n            type: string;\n            /**\n             * Tax name.\n             */\n            name: string;\n            /**\n             * Rate percentage. Possible values are between `\"0.01\"` and `\"100\"`, using up to 2 decimal places.\n             */\n            rate: string;\n            /**\n             * Taxable amount.\n             */\n            taxable: wix_events.Tickets.Money;\n            /**\n             * Total tax amount.\n             */\n            amount: wix_events.Tickets.Money;\n        };\n        /**\n         * An object representing a ticket.\n         */\n        type Ticket = {\n            /**\n             * Ticket ID.\n             */\n            _id: number;\n            /**\n             * Ticket price.\n             */\n            price: wix_events.Tickets.Money;\n            /**\n             * Whether the ticket is free.\n             */\n            free: boolean;\n            /**\n             * Ticket name.\n             */\n            name: string;\n            /**\n             * Ticket description.\n             */\n            description: string;\n            /**\n             * Number of tickets that can be checked out together.\n             *  A value of `0` means there is no limit.\n             */\n            limitPerCheckout: number;\n            /**\n             * Order index.\n             */\n            orderIndex: number;\n            /**\n             * Ticket policy rules.\n             */\n            policy: string;\n            /**\n             * ID of the event the ticket is for.\n             */\n            eventId: string;\n        };\n        /**\n         * An object representing an event ticket.\n         */\n        type TicketSelection = {\n            /**\n             * ID of the ticket.\n             */\n            ticketId: string;\n            /**\n             * Ticket quantity.\n             */\n            quantity: number;\n        };\n        /**\n         * An object containing information about an order update.\n         */\n        type UpdateInfo = {\n            /**\n             * Field names and values for a registration form.\n             */\n            formValues: wix_events.Form.FormValue[];\n        };\n        /**\n         * An object containing information about an order updated using the [`updateOrder()`](#updateOrder) function.\n         */\n        type UpdateOrderResponse = {\n            /**\n             * Updated ticket order.\n             */\n            order: wix_events.Tickets.Order;\n        };\n        /**\n         * An object containing information about a coupon being verified using the [`verifyCoupon()`](#verifyCoupon) function.\n         */\n        type VerifyCouponResponse = {\n            /**\n             * Invoice the coupon is used in.\n             */\n            invoice?: wix_events.Tickets.Invoice;\n            /**\n             * Discount errors.\n             */\n            discountErrors?: wix_events.Tickets.DiscountErrors;\n        };\n    }\n}\ndeclare namespace wix_events_backend {\n    /**\n     * Backend events that are fired from Wix events.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-events-backend.Events.html#)\n     */\n    interface Events {\n        /**\n         * A backend event that fires when a Wix event is canceled.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-events-backend.Events.html#onEventCanceled)\n         */\n        onEventCanceled(event: wix_events_backend.Events.CanceledEvent): void;\n        /**\n         * A backend event that fires when a Wix event is created or copied.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-events-backend.Events.html#onEventCreated)\n         */\n        onEventCreated(event: wix_events_backend.Events.CreatedEvent): void;\n        /**\n         * A backend event that fires when a Wix event is deleted.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-events-backend.Events.html#onEventDeleted)\n         */\n        onEventDeleted(event: wix_events_backend.Events.DeletedEvent): void;\n        /**\n         * A backend event that fires when a Wix event ends.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-events-backend.Events.html#onEventEnded)\n         */\n        onEventEnded(event: wix_events_backend.Events.EndedEvent): void;\n        /**\n         * A backend event that fires when a Wix event's reminders are sent.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-events-backend.Events.html#onEventReminder)\n         */\n        onEventReminder(event: wix_events_backend.Events.EventReminder): void;\n        /**\n         * A backend event that fires when a Wix event starts.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-events-backend.Events.html#onEventStarted)\n         */\n        onEventStarted(event: wix_events_backend.Events.StartedEvent): void;\n        /**\n         * A backend event that fires when an existing Wix event is updated.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-events-backend.Events.html#onEventUpdated)\n         */\n        onEventUpdated(event: wix_events_backend.Events.UpdatedEvent): void;\n        /**\n         * A backend event that fires when a ticket order is confirmed.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-events-backend.Events.html#onOrderConfirmed)\n         */\n        onOrderConfirmed(event: wix_events_backend.Events.OrderConfirmedEvent): void;\n        /**\n         * A backend event that fires when a ticket order is deleted.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-events-backend.Events.html#onOrderDeleted)\n         */\n        onOrderDeleted(event: wix_events_backend.Events.OrderDeletedEvent): void;\n        /**\n         * A backend event that fires when a ticket order is initiated.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-events-backend.Events.html#onOrderInitiated)\n         */\n        onOrderInitiated(event: wix_events_backend.Events.OrderInitiatedEvent): void;\n        /**\n         * A backend event that fires when a ticket order is updated.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-events-backend.Events.html#onOrderUpdated)\n         */\n        onOrderUpdated(event: wix_events_backend.Events.OrderUpdatedEvent): void;\n        /**\n         * A backend event that fires when a ticket reservation is created.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-events-backend.Events.html#onReservationCreated)\n         */\n        onReservationCreated(event: wix_events_backend.Events.ReservationCreatedEvent): void;\n        /**\n         * A backend event that fires when a ticket reservation is updated.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-events-backend.Events.html#onReservationUpdated)\n         */\n        onReservationUpdated(event: wix_events_backend.Events.ReservationUpdatedEvent): void;\n        /**\n         * A backend event that fires when a guest registers to a Wix event.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-events-backend.Events.html#onRsvpCreated)\n         */\n        onRsvpCreated(event: wix_events_backend.Events.RsvpCreatedEvent): void;\n        /**\n         * A backend event that fires when an RSVP is deleted.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-events-backend.Events.html#onRsvpDeleted)\n         */\n        onRsvpDeleted(event: wix_events_backend.Events.RsvpDeletedEvent): void;\n        /**\n         * A backend event that fires when an RSVP is updated.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-events-backend.Events.html#onRsvpUpdated)\n         */\n        onRsvpUpdated(event: wix_events_backend.Events.RsvpUpdatedEvent): void;\n        /**\n         * A backend event that fires when a ticket definition is created.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-events-backend.Events.html#onTicketDefinitionCreated)\n         */\n        onTicketDefinitionCreated(event: wix_events_backend.Events.TicketDefinitionCreatedEvent): void;\n        /**\n         * A backend event that fires when a ticket definition is deleted.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-events-backend.Events.html#onTicketDefinitionDeleted)\n         */\n        onTicketDefinitionDeleted(event: wix_events_backend.Events.TicketDefinitionDeletedEvent): void;\n        /**\n         * A backend event that fires when a ticket definition is updated.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-events-backend.Events.html#onTicketDefinitionUpdated)\n         */\n        onTicketDefinitionUpdated(event: wix_events_backend.Events.TicketDefinitionUpdatedEvent): void;\n        /**\n         * A backend event that fires when a Wix event is canceled.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-events-backend.Events.html#onWixEventCanceled)\n         */\n        onWixEventCanceled(event: wix_events_backend.Events.CanceledWixEvent): void;\n    }\n    namespace Events {\n        /**\n         * An object representing a Wix event that was canceled.\n         */\n        type CanceledEvent = {\n            /**\n             * Time the event was canceled.\n             */\n            timestamp: Date;\n            /**\n             * Event ID.\n             */\n            eventId: string;\n            /**\n             * Event title.\n             */\n            title: string;\n        };\n        /**\n         * An object representing a Wix event that was canceled.\n         */\n        type CanceledWixEvent = {\n            /**\n             * Time the event was canceled.\n             */\n            timestamp: Date;\n            /**\n             * Event ID.\n             */\n            eventId: string;\n            /**\n             * Event title.\n             */\n            title: string;\n        };\n        /**\n         * An object representing guest check-in.\n         */\n        type CheckIn = {\n            /**\n             * Time guest was checked-in.\n             */\n            created: Date;\n        };\n        /**\n         * An object representing the Wix event that was created or copied.\n         */\n        type CreatedEvent = {\n            /**\n             * Time the event was created/copied.\n             */\n            timestamp: Date;\n            /**\n             * Event ID.\n             */\n            eventId: string;\n            /**\n             * Event title.\n             */\n            title: string;\n            /**\n             * Event location.\n             */\n            location: wix_events_backend.Events.Location;\n            /**\n             * Event's schedule configuration.\n             */\n            scheduleConfig: wix_events_backend.Events.ScheduleConfiguration;\n            /**\n             * ID of the user who created/copied the event.\n             */\n            userId: string;\n        };\n        /**\n         * An object representing a Wix event that was deleted.\n         */\n        type DeletedEvent = {\n            /**\n             * Time the event was deleted.\n             */\n            timestamp: Date;\n            /**\n             * Event ID.\n             */\n            eventId: string;\n            /**\n             * Event title.\n             */\n            title: string;\n        };\n        /**\n         * An object representing an applied discount.\n         */\n        type Discount = {\n            /**\n             * Discount amount.\n             */\n            amount: wix_events_backend.Events.Money;\n            /**\n             * Amount after discount.\n             */\n            afterDiscount: wix_events_backend.Events.Money;\n            /**\n             * Discount items.\n             */\n            discounts: wix_events_backend.Events.DiscountItem[];\n        };\n        /**\n         * An object representing a coupon discount.\n         */\n        type DiscountCoupon = {\n            /**\n             * Coupon name.\n             */\n            name: string;\n            /**\n             * Coupon code.\n             */\n            code: string;\n            /**\n             * Coupon ID.\n             */\n            couponId: string;\n        };\n        /**\n         * An object representing an applied discount of specific type.\n         */\n        type DiscountItem = {\n            /**\n             * Discount amount.\n             */\n            amount: wix_events_backend.Events.Money;\n            /**\n             * Discount coupon.\n             */\n            coupon?: wix_events_backend.Events.DiscountCoupon;\n            /**\n             * Pricing plan discount.\n             */\n            paidPlan?: wix_events_backend.Events.PricingPlanDiscount;\n        };\n        /**\n         * An object representing the event that has ended.\n         */\n        type EndedEvent = {\n            /**\n             * Time the event ended.\n             */\n            timestamp: Date;\n            /**\n             * The ID of the event.\n             */\n            eventId: string;\n        };\n        /**\n         * An object representing the Wix event that reminders have been sent for.\n         */\n        type EventReminder = {\n            /**\n             * Time the reminder was sent.\n             */\n            timestamp: Date;\n            /**\n             * Event ID.\n             */\n            eventId: string;\n            /**\n             * Event location.\n             */\n            location: wix_events_backend.Events.Location;\n            /**\n             * Event's schedule configuration.\n             */\n            scheduleConfig: wix_events_backend.Events.ScheduleConfiguration;\n            /**\n             * Event title.\n             */\n            title: string;\n            /**\n             * ID of the user who created the event.\n             */\n            userId: string;\n            /**\n             * The time between now and the event start.\n             */\n            startsIn: wix_events_backend.Events.TimeDuration;\n        };\n        /**\n         * An object representing an applied fee.\n         */\n        type Fee = {\n            /**\n             * Fee name. Value is `\"WIX_FEE\"`: Wix service fee applied to the item.\n             */\n            name: string;\n            /**\n             * Fee calculation method.\n             *  One of:\n             *\n             *  + `\"FEE_ADDED\"`: Fee is added to the ticket price at checkout.\n             *  + `\"FEE_INCLUDED\"`: Seller absorbs the fee. It is deducted from the ticket price.\n             */\n            type: string;\n            /**\n             * Rate percentage. Possible values are between `\"0.01\"` and `\"100\"`, using up to 2 decimal places.\n             */\n            rate: string;\n            /**\n             * Total amount of fee charges.\n             */\n            amount: wix_events_backend.Events.Money;\n        };\n        /**\n         * An object representing a submitted guest form.\n         */\n        type FormResponse = {\n            /**\n             * Values that were entered in the guest form.\n             */\n            inputValues: wix_events_backend.Events.InputValue[];\n        };\n        /**\n         * An object representing a guest of a Wix event's RSVP.\n         */\n        type Guest = {\n            /**\n             * Index of the guest in the RSVP guest list. Indices are zero-based.\n             */\n            index: number;\n            /**\n             * Guest ID, which is unique within the RSVP.\n             */\n            id: number;\n            /**\n             * Full name of the guest.\n             */\n            fullName: string;\n        };\n        /**\n         * An object representing a guest form input value.\n         */\n        type InputValue = {\n            /**\n             * Name of the form input.\n             */\n            inputName: string;\n            /**\n             * Value of the form input, when there is just one value.\n             */\n            value: string;\n            /**\n             * Values of the form input, when there are multiple values.\n             */\n            values: string[];\n        };\n        /**\n         * An object representing an order invoice.\n         */\n        type Invoice = {\n            /**\n             * Invoice items.\n             */\n            items: wix_events_backend.Events.InvoiceItem[];\n            /**\n             * Invoice applied discount.\n             */\n            discount?: wix_events_backend.Events.Discount;\n            /**\n             * Invoice applied tax.\n             */\n            tax?: wix_events_backend.Events.Tax;\n            /**\n             * Invoice applied fee charges.\n             */\n            fees: wix_events_backend.Events.Fee[];\n            /**\n             * Invoice total amount before discount, tax, and fees.\n             */\n            subTotal: wix_events_backend.Events.Money;\n            /**\n             * Invoice total amount after discount, tax, and fees.\n             *  Grand total is calculated in the following manner:\n             *\n             *  1. Total price of all items in the cart.\n             *  2. Discount is subtracted from the cart (if applicable).\n             *  3. Tax is added (if applicable).\n             *  4. Wix service fee is added.\n             */\n            grandTotal: wix_events_backend.Events.Money;\n            /**\n             * Total revenue with taxes, excluding fees. Payment provider fees are not deducted.\n             */\n            revenue: wix_events_backend.Events.Money;\n        };\n        /**\n         * An object representing an order invoice item.\n         */\n        type InvoiceItem = {\n            /**\n             * Invoice item ID.\n             */\n            id: string;\n            /**\n             * Invoice item quantity.\n             */\n            quantity: number;\n            /**\n             * Invoice item name.\n             */\n            name: string;\n            /**\n             * Invoice item price.\n             */\n            price: wix_events_backend.Events.Money;\n            /**\n             * Invoice item total.\n             */\n            total: wix_events_backend.Events.Money;\n            /**\n             * Invoice item applied discount.\n             */\n            discount?: wix_events_backend.Events.Discount;\n            /**\n             * Invoice item applied tax.\n             */\n            tax?: wix_events_backend.Events.Tax;\n            /**\n             * Invoice item applied fee charges.\n             */\n            fees: wix_events_backend.Events.Fee[];\n        };\n        /**\n         * An object representing the Wix event location.\n         */\n        type Location = {\n            /**\n             * Location name.  Maximum allowed characters is 50.\n             */\n            name: string;\n            /**\n             * The location's map coordinates.\n             */\n            coordinates: wix_events_backend.Events.MapCoordinates;\n            /**\n             * Single line address representation of the location.\n             */\n            address: string;\n            /**\n             * Type of location.\n             *  One of:\n             *\n             *  + `\"VENUE\"`: Event is hosted in the venue.\n             *  + `\"ONLINE\"`: Event is hosted online.\n             */\n            type: string;\n        };\n        /**\n         * An object representing an event location's coordinates.\n         */\n        type MapCoordinates = {\n            /**\n             * Latitude.\n             */\n            lat: number;\n            /**\n             * Longitude.\n             */\n            lng: number;\n        };\n        /**\n         * An object representing money.\n         */\n        type Money = {\n            /**\n             * Decimal amount.\n             */\n            amount: string;\n            /**\n             * Currency code. Must be a valid [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code (for example, `USD`).\n             */\n            currency: string;\n        };\n        /**\n         * An object representing the confirmed order.\n         */\n        type OrderConfirmedEvent = {\n            /**\n             * Time order was confirmed.\n             */\n            timestamp: Date;\n            /**\n             * Event ID.\n             */\n            eventId: string;\n            /**\n             * Unique order number.\n             */\n            orderNumber: string;\n            /**\n             * Contact ID associated with this order.\n             */\n            contactId?: string;\n            /**\n             * Member ID associated with this order.\n             */\n            memberId?: string;\n            /**\n             * Time order was created.\n             */\n            created: Date;\n            /**\n             * Buyer first name.\n             */\n            firstName: string;\n            /**\n             * Buyer last name.\n             */\n            lastName: string;\n            /**\n             * Buyer email.\n             */\n            email: string;\n            /**\n             * Checkout form response.\n             */\n            checkoutForm: wix_events_backend.Events.FormResponse;\n            /**\n             * Order status.\n             *  One of:\n             *\n             *  + `\"FREE\"`: Order is confirmed, no payment required.\n             *  + `\"PENDING\"`: Order was paid, but the payment provider suspended the payment. Eventually changes to `\"PAID\"`.\n             *  + `\"PAID\"`: Order paid using the payment provider.\n             *  + `\"OFFLINE_PENDING\"`: Order confirmed, but has to be paid offline and status needs to be manually updated to `\"PAID\"`.\n             *  + `\"INITIATED\"`: Order is awaiting payment.\n             */\n            status: string;\n            /**\n             * Payment method used. For example, \"payPal\" or \"creditCard\".\n             */\n            method: string;\n            /**\n             * Order invoice.\n             */\n            invoice: wix_events_backend.Events.Invoice;\n            /**\n             * Tickets generated after payment.\n             */\n            tickets: wix_events_backend.Events.Ticket[];\n        };\n        /**\n         * An object representing the deleted ticket order.\n         */\n        type OrderDeletedEvent = {\n            /**\n             * Time order was deleted.\n             */\n            timestamp: Date;\n            /**\n             * Event ID.\n             */\n            eventId: string;\n            /**\n             * Unique order number.\n             */\n            orderNumber: string;\n            /**\n             * Contact ID associated with this order.\n             */\n            contactId?: string;\n            /**\n             * Member ID associated with this order.\n             */\n            memberId?: string;\n            /**\n             * Whether the order was anonymized by a GDPR delete.\n             */\n            anonymized: boolean;\n            /**\n             * Order type.\n             *  One of:\n             *\n             *  + `\"UNASSIGNED_TICKETS\"`: Buyer form is used for all tickets.\n             *  + `\"ASSIGNED_TICKETS\"`: Each order ticket has its own form.\n             */\n            orderType: string;\n        };\n        /**\n         * An object representing the initiated order.\n         */\n        type OrderInitiatedEvent = {\n            /**\n             * Time order was initiated.\n             */\n            timestamp: Date;\n            /**\n             * Event ID.\n             */\n            eventId: string;\n            /**\n             * Unique order number.\n             */\n            orderNumber: string;\n            /**\n             * Contact ID associated with this order.\n             */\n            contactId?: string;\n            /**\n             * Member ID associated with this order.\n             */\n            memberId?: string;\n            /**\n             * Buyer first name.\n             */\n            firstName: string;\n            /**\n             * Buyer last name.\n             */\n            lastName: string;\n            /**\n             * Buyer email.\n             */\n            email: string;\n            /**\n             * Checkout form response.\n             */\n            checkoutForm: wix_events_backend.Events.FormResponse;\n            /**\n             * Order status.\n             *  One of:\n             *\n             *  + `\"FREE\"`: Order is confirmed, no payment required.\n             *  + `\"PENDING\"`: Order was paid, but the payment provider suspended the payment. Eventually changes to `\"PAID\"`.\n             *  + `\"PAID\"`: Order paid using the payment provider.\n             *  + `\"OFFLINE_PENDING\"`: Order confirmed, but has to be paid offline and status needs to be manually updated to `\"PAID\"`.\n             *  + `\"INITIATED\"`: Order is awaiting payment.\n             */\n            status: string;\n            /**\n             * Order invoice.\n             */\n            invoice: wix_events_backend.Events.Invoice;\n        };\n        /**\n         * An object representing the updated order.\n         */\n        type OrderUpdatedEvent = {\n            /**\n             * Time order was updated.\n             */\n            timestamp: Date;\n            /**\n             * Event ID.\n             */\n            eventId: string;\n            /**\n             * Unique order number.\n             */\n            orderNumber: string;\n            /**\n             * Contact ID associated with this order.\n             */\n            contactId?: string;\n            /**\n             * Member ID associated with this order.\n             */\n            memberId?: string;\n            /**\n             * Time order was created.\n             */\n            created: Date;\n            /**\n             * Buyer first name.\n             */\n            firstName: string;\n            /**\n             * Buyer last name.\n             */\n            lastName: string;\n            /**\n             * Buyer email.\n             */\n            email: string;\n            /**\n             * Checkout form response.\n             */\n            checkoutForm: wix_events_backend.Events.FormResponse;\n            /**\n             * Whether the order is confirmed An order gets confirmed\n             *  when the payment gateway processes the payment and the funds reach the merchant's account.\n             */\n            confirmed: boolean;\n            /**\n             * Order status.\n             *  One of:\n             *\n             *  + `\"FREE\"`: Order is confirmed, no payment required.\n             *  + `\"PENDING\"`: Order was paid, but the payment provider suspended the payment. Eventually changes to `\"PAID\"`.\n             *  + `\"PAID\"`: Order paid using the payment provider.\n             *  + `\"OFFLINE_PENDING\"`: Order confirmed, but has to be paid offline and status needs to be manually updated to `\"PAID\"`.\n             *  + `\"INITIATED\"`: Order is awaiting payment.\n             */\n            status: string;\n            /**\n             * Payment method used. For example, \"payPal\" or \"creditCard\".\n             */\n            method: string;\n            /**\n             * Whether the order is archived.\n             */\n            archived: boolean;\n            /**\n             * Tickets generated after payment.\n             */\n            tickets: wix_events_backend.Events.Ticket[];\n        };\n        /**\n         * An object representing a paid plan discount.\n         */\n        type PaidPlanDiscount = {\n            /**\n             * Paid plan name.\n             */\n            name: string;\n            /**\n             * Percentage applied discount.\n             */\n            percentDiscount?: wix_events_backend.Events.PercentDiscount;\n        };\n        /**\n         * An object representing a fixed rate discount.\n         */\n        type PercentDiscount = {\n            /**\n             * Discount rate percentage. Possible values are between `\"0.01\"` and `\"100\"`, using up to 2 decimal places.\n             */\n            rate: string;\n            /**\n             * Number of discounted items.\n             */\n            quantityDiscounted: number;\n        };\n        /**\n         * An object representing a pricing plan discount.\n         */\n        type PricingPlanDiscount = {\n            /**\n             * Pricing plan name.\n             */\n            name: string;\n            /**\n             * Percentage applied discount.\n             */\n            percentDiscount?: wix_events_backend.Events.PercentDiscount;\n        };\n        /**\n         * An object representing the created ticket reservation.\n         */\n        type ReservationCreatedEvent = {\n            /**\n             * Time tickets were reserved.\n             */\n            timestamp: Date;\n            /**\n             * Event ID.\n             */\n            eventId: string;\n            /**\n             * Reservation ID. Can be used to retrieve an invoice.\n             */\n            reservationId: string;\n            /**\n             * Time reservation expires.\n             */\n            expires: Date;\n            /**\n             * Reservation status.\n             *  One of:\n             *\n             *  + `\"RESERVATION_PENDING\"`: Reservation is pending confirmation. It will expire after expiration due time.\n             *  + `\"RESERVATION_CONFIRMED\"`: Reservation was confirmed and will not expire.\n             *  + `\"RESERVATION_CANCELED\"`: Reservation was canceled because of non payment.\n             *  + `\"RESERVATION_CANCELED_MANUALLY\"`: Reservation was canceled manually by the buyer.\n             */\n            status: string;\n        };\n        /**\n         * An object representing the updated reservation.\n         */\n        type ReservationUpdatedEvent = {\n            /**\n             * Time tickets were reserved.\n             */\n            timestamp: Date;\n            /**\n             * Event ID.\n             */\n            eventId: string;\n            /**\n             * Reservation ID. Can be used to retrieve an invoice.\n             */\n            reservationId: string;\n            /**\n             * Reservation status.\n             *  One of:\n             *\n             *  + `\"RESERVATION_PENDING\"`: Reservation is pending confirmation. It will expire after expiration due time.\n             *  + `\"RESERVATION_CONFIRMED\"`: Reservation was confirmed and will not expire.\n             *  + `\"RESERVATION_CANCELED\"`: Reservation was canceled because of non payment.\n             *  + `\"RESERVATION_CANCELED_MANUALLY\"`: Reservation was canceled manually by the buyer.\n             */\n            status: string;\n        };\n        /**\n         * An object representing the created RSVP.\n         */\n        type RsvpCreatedEvent = {\n            /**\n             * Time the RSVP was created.\n             */\n            timestamp: Date;\n            /**\n             * Event ID.\n             */\n            eventId: string;\n            /**\n             * RSVP ID.\n             */\n            rsvpId: string;\n            /**\n             * Contact ID associated with the RSVP.\n             */\n            contactId: string;\n            /**\n             * Member ID associated with the RSVP.\n             */\n            memberId?: string;\n            /**\n             * RSVP response status.\n             *  One of:\n             *\n             *  + `\"YES\"`: Guest is attending.\n             *  + `\"NO\"`: Guest is not attending.\n             *  + `\"WAITING\"`: Guest added to the wait list.\n             */\n            status: string;\n            /**\n             * Guest first name.\n             */\n            firstName: string;\n            /**\n             * Guest last name.\n             */\n            lastName: string;\n            /**\n             * Guest email address.\n             */\n            email: string;\n            /**\n             * RSVP form response.\n             */\n            rsvpForm: wix_events_backend.Events.FormResponse;\n            /**\n             * List of guests.\n             */\n            guests: wix_events_backend.Events.Guest[];\n        };\n        /**\n         * An object representing the deleted RSVP.\n         */\n        type RsvpDeletedEvent = {\n            /**\n             * Time RSVP was deleted.\n             */\n            timestamp: Date;\n            /**\n             * Event ID.\n             */\n            eventId: string;\n            /**\n             * RSVP ID.\n             */\n            rsvpId: string;\n            /**\n             * Contact ID associated with this RSVP.\n             */\n            contactId: string;\n            /**\n             * Member ID associated with this RSVP.\n             */\n            memberId?: string;\n            /**\n             * Whether the RSVP was anonymized as a result of a GDPR delete.\n             */\n            anonymized: boolean;\n        };\n        /**\n         * An object representing the updated RSVP.\n         */\n        type RsvpUpdatedEvent = {\n            /**\n             * Time the RSVP was updated.\n             */\n            timestamp: Date;\n            /**\n             * Time the RSVP was created.\n             */\n            created: Date;\n            /**\n             * Event ID.\n             */\n            eventId: string;\n            /**\n             * RSVP ID.\n             */\n            rsvpId: string;\n            /**\n             * Contact ID associated with this RSVP.\n             */\n            contactId: string;\n            /**\n             * Member ID associated with this RSVP.\n             */\n            memberId?: string;\n            /**\n             * RSVP response status.\n             *  One of:\n             *\n             *  + `\"YES\"`: Guest is attending.\n             *  + `\"NO\"`: Guest is not attending.\n             *  + `\"WAITING\"`: Guest added to the wait list.\n             */\n            status: string;\n            /**\n             * Guest first name.\n             */\n            firstName: string;\n            /**\n             * Guest last name.\n             */\n            lastName: string;\n            /**\n             * Guest email.\n             */\n            email: string;\n            /**\n             * RSVP form response.\n             */\n            rsvpForm: wix_events_backend.Events.FormResponse;\n            /**\n             * List of guests.\n             */\n            guests: wix_events_backend.Events.Guest[];\n        };\n        /**\n         * An object representing an event's schedule configuration.\n         */\n        type ScheduleConfiguration = {\n            /**\n             * Whether the event's schedule is to be determined later.\n             *\n             *  If an event's time is not yet decided, the TBD message is displayed instead of the\n             *  start date and end date.\n             *\n             *  When `scheduleTbd` is `true`, `startDate`, `endDate`, and `timeZoneId` are not required.\n             */\n            scheduleTbd: boolean;\n            /**\n             * Schedule TBD message.\n             */\n            scheduleTbdMessage?: string;\n            /**\n             * Event start date.\n             */\n            startDate?: Date;\n            /**\n             * Event end date.\n             */\n            endDate?: Date;\n            /**\n             * ID of the time zone for the Wix event in [tz database format](https://en.wikipedia.org/wiki/Tz_database), such as `EST`, or `America/Los_Angeles`. Optional for TBD events.\n             */\n            timeZoneId?: string;\n        };\n        /**\n         * An object representing the event that has started.\n         */\n        type StartedEvent = {\n            /**\n             * Time the event started.\n             */\n            timestamp: Date;\n            /**\n             * Event ID.\n             */\n            eventId: string;\n        };\n        /**\n         * An object representing an applied tax.\n         */\n        type Tax = {\n            /**\n             * Tax type.\n             *  One of:\n             *\n             *  + `\"INCLUDED\"`: Tax is included in the ticket price.\n             *  + `\"ADDED\"`: Tax is added to the order at checkout.\n             */\n            type: string;\n            /**\n             * Tax name.\n             */\n            name: string;\n            /**\n             * Rate percentage. Possible values are between `\"0.01\"` and `\"100\"`, using up to 2 decimal places.\n             */\n            rate: string;\n            /**\n             * Taxable amount.\n             */\n            taxable: wix_events_backend.Events.Money;\n            /**\n             * Total tax amount.\n             */\n            amount: wix_events_backend.Events.Money;\n        };\n        /**\n         * An object representing a generated ticket.\n         */\n        type Ticket = {\n            /**\n             * Unique ticket number.\n             */\n            ticketNumber: string;\n            /**\n             * Ticket definition ID.\n             */\n            ticketDefinitionId: string;\n            /**\n             * Ticket check-in.\n             */\n            checkIn: wix_events_backend.Events.CheckIn;\n            /**\n             * Whether the ticket is archived.\n             */\n            archived: boolean;\n            /**\n             * Whether the ticket is confirmed.\n             */\n            confirmed: boolean;\n            /**\n             * Guest first name.\n             */\n            firstName?: string;\n            /**\n             * Guest last name.\n             */\n            lastName?: string;\n            /**\n             * Guest email address.\n             */\n            email?: string;\n            /**\n             * Contact ID associated with this ticket.\n             */\n            contactId?: string;\n            /**\n             * Member ID associated with this ticket.\n             */\n            memberId?: string;\n            /**\n             * Ticket form response. Only assigned tickets contain a separate form.\n             */\n            form?: wix_events_backend.Events.FormResponse;\n        };\n        /**\n         * An object representing the created ticket definition.\n         */\n        type TicketDefinitionCreatedEvent = {\n            /**\n             * Time ticket definition was created.\n             */\n            timestamp: Date;\n            /**\n             * Event ID.\n             */\n            eventId: string;\n            /**\n             * Ticket definition ID.\n             */\n            ticketDefinitionId: string;\n        };\n        /**\n         * An object representing the deleted ticket definition.\n         */\n        type TicketDefinitionDeletedEvent = {\n            /**\n             * Time ticket definition was deleted.\n             */\n            timestamp: Date;\n            /**\n             * Event ID.\n             */\n            eventId: string;\n            /**\n             * Ticket definition ID.\n             */\n            ticketDefinitionId: string;\n        };\n        /**\n         * An object representing the updated ticket definition.\n         */\n        type TicketDefinitionUpdatedEvent = {\n            /**\n             * Time ticket definition was updated.\n             */\n            timestamp: Date;\n            /**\n             * Event ID.\n             */\n            eventId: string;\n            /**\n             * Ticket definition ID.\n             */\n            ticketDefinitionId: string;\n        };\n        /**\n         * An object representing a time duration.\n         */\n        type TimeDuration = {\n            /**\n             * Number of days in the time duration.\n             */\n            days: number;\n            /**\n             * Number of hours in the time duration.\n             */\n            hours: number;\n            /**\n             * Number of minutes in the time duration.\n             */\n            minutes: number;\n        };\n        /**\n         * An object representing the Wix event that was updated.\n         */\n        type UpdatedEvent = {\n            /**\n             * Time the event was updated.\n             */\n            timestamp: Date;\n            /**\n             * Event ID.\n             */\n            eventId: string;\n            /**\n             * Event title.\n             */\n            title: string;\n            /**\n             * Event location.\n             */\n            location: wix_events_backend.Events.Location;\n            /**\n             * Event's schedule configuration.\n             */\n            scheduleConfig: wix_events_backend.Events.ScheduleConfiguration;\n            /**\n             * Whether the schedule configuration was updated.\n             */\n            scheduleConfigUpdated: boolean;\n        };\n    }\n    /**\n     * The Wix Events API provides functionality for creating, updating, and managing Wix events.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-events-backend.WixEvents.html#)\n     */\n    interface WixEvents {\n        /**\n         * Cancels a Wix event and closes its registration.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-events-backend.WixEvents.html#cancelEvent)\n         */\n        cancelEvent(eventId: string): Promise<wix_events_backend.WixEvents.WixEvent>;\n        /**\n         * Copies a Wix event.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-events-backend.WixEvents.html#copyEvent)\n         */\n        copyEvent(eventId: string): Promise<wix_events_backend.WixEvents.WixEvent>;\n        /**\n         * Creates a Wix event.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-events-backend.WixEvents.html#createEvent)\n         */\n        createEvent(eventInfo: wix_events_backend.WixEvents.WixEventInfo, options: wix_events_backend.WixEvents.WixEventInfoOptions): Promise<wix_events_backend.WixEvents.WixEvent>;\n        /**\n         * Deletes a Wix event.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-events-backend.WixEvents.html#deleteEvent)\n         */\n        deleteEvent(eventId: string): Promise<void>;\n        /**\n         * Retrieves a Wix event by ID.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-events-backend.WixEvents.html#getEvent)\n         */\n        getEvent(eventId: string): Promise<wix_events_backend.WixEvents.WixEvent>;\n        /**\n         * Creates a query to retrieve a list of Wix events.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-events-backend.WixEvents.html#queryEvents)\n         */\n        queryEvents(): wix_events_backend.WixEvents.EventsQueryBuilder;\n        /**\n         * Updates a Wix event.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-events-backend.WixEvents.html#updateEvent)\n         */\n        updateEvent(eventId: string, eventInfo: wix_events_backend.WixEvents.WixEventUpdateInfo, options: wix_events_backend.WixEvents.WixEventInfoOptions): Promise<wix_events_backend.WixEvents.WixEvent>;\n    }\n    namespace WixEvents {\n        /**\n         * An object representing additional labels for form fields.\n         */\n        type AdditionalLabel = {\n            /**\n             * Field name.\n             */\n            name: string;\n            /**\n             * Field label.\n             */\n            label: string;\n        };\n        /**\n         * An object representing a street address for the Wix event.\n         */\n        type Address = {\n            /**\n             * Main address line (usually street and number) as free text. For non-TBD events, either `addressLine1` or `streetAddress` must be entered. Optional for TBD events.\n             */\n            addressLine1?: string;\n            /**\n             * Street address object, with number and name in separate fields.  For non-TBD events, either `addressLine1` or `streetAddress` must be entered. Optional for TBD events.\n             */\n            streetAddress?: wix_events_backend.WixEvents.StreetAddress;\n            /**\n             * Human-readable address string. If not provided, the value is generated from the available address data.  If provided, the value is parsed and used to populate other address properties.\n             */\n            formatted: string;\n            /**\n             * Free text providing more detailed address information, such as apartment, suite, or floor.\n             */\n            addressLine2: string;\n            /**\n             * Coordinates of the physical address.\n             */\n            location: wix_events_backend.WixEvents.AddressLocation;\n            /**\n             * City name.\n             */\n            city: string;\n            /**\n             * Code for a subdivision (such as state, prefecture, or province) in an [ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-2) format.\n             */\n            subdivision: string;\n            /**\n             * 2-letter country code in an [ISO-3166 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) format.\n             */\n            country: string;\n            /**\n             * Postal or zip code.\n             */\n            postalCode: string;\n        };\n        /**\n         * An object for updating a street address.\n         */\n        type AddressInfo = {\n            /**\n             * Main address line (usually street and number) as free text. For non-TBD events, either `addressLine1` or `streetAddress` must be entered. Optional for TBD events.\n             */\n            addressLine1?: string;\n            /**\n             * Street address object, with number and name in separate fields. For non-TBD events, either `addressLine1` or `streetAddress` must be entered. Optional for TBD events.\n             */\n            streetAddress?: wix_events_backend.WixEvents.StreetAddressInfo;\n            /**\n             * Human-readable address string. If not provided, the value is generated from the available address data. If provided, the value is parsed and used to populate other address properties.\n             */\n            formatted?: string;\n            /**\n             * Free text providing more detailed address information, such as apartment, suite, or floor.\n             */\n            addressLine2?: string;\n            /**\n             * Coordinates of the physical address.\n             */\n            location?: wix_events_backend.WixEvents.AddressLocationInfo;\n            /**\n             * City name.\n             */\n            city?: string;\n            /**\n             * Code for a subdivision (such as state, prefecture, or province) in an [ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-2) format.\n             */\n            subdivision?: string;\n            /**\n             * 2-letter country code in an [ISO-3166 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) format.\n             */\n            country?: string;\n            /**\n             * Postal or zip code.\n             */\n            postalCode?: string;\n        };\n        /**\n         * An object representing coordinates of the physical address of the Wix event.\n         */\n        type AddressLocation = {\n            /**\n             * Address's latitude.\n             */\n            latitude: number;\n            /**\n             * Address's longitude.\n             */\n            longitude: number;\n        };\n        /**\n         * An object for updating coordinates of the physical address of the Wix event.\n         */\n        type AddressLocationInfo = {\n            /**\n             * Address's latitude.\n             */\n            latitude?: number;\n            /**\n             * Address's longitude.\n             */\n            longitude?: number;\n        };\n        /**\n         * An object representing the links (URLs) that guests can click to add the Wix event to their calendars.\n         */\n        type CalendarLinks = {\n            /**\n             * A URL that guests can use to add the Wix event to their Google calendars.\n             */\n            google: string;\n            /**\n             * A URL that guests can use to download ICS calendar files in order to add the Wix event to their calendars.\n             */\n            ics: string;\n        };\n        /**\n         * An object representing messages on the form for purchasing tickets.\n         */\n        type CheckoutFormMessages = {\n            /**\n             * Title for the form for purchasing tickets.\n             */\n            title: string;\n            /**\n             * Button label text that directs guests to check out the form when purchasing tickets.\n             */\n            checkoutLabel: string;\n        };\n        /**\n         * An object representing the ID of a Wix event that was deleted.\n         */\n        type DeletedWixEvent = {\n            /**\n             * Deleted event ID.\n             */\n            _id: string;\n        };\n        /**\n         * An object representing the corresponding registration form for the Wix event.\n         */\n        type Form = {\n            /**\n             * A block of fields to group together on the form. For example, you might create a block for first name and last name. These blocks are also called input groups.\n             */\n            InputGroups: wix_events_backend.WixEvents.InputGroup[];\n            /**\n             * Messages you can customize for the form.\n             */\n            messages: wix_events_backend.WixEvents.FormMessages;\n        };\n        /**\n         * An object representing a set of configured form messages.\n         */\n        type FormMessages = {\n            /**\n             * RSVP form messages.\n             */\n            rsvp: wix_events_backend.WixEvents.RsvpFormMessages;\n            /**\n             * Checkout form messages.\n             */\n            checkout: wix_events_backend.WixEvents.CheckoutFormMessages;\n            /**\n             * Messages to display when event registration is closed.\n             */\n            registrationClosed: wix_events_backend.WixEvents.RegistrationClosedMessages;\n        };\n        /**\n         * An object representing the guest list settings for the Wix event.\n         */\n        type GuestListSettings = {\n            /**\n             * Whether guests can see other guests attending the Wix event. Defaults to `true`.\n             */\n            public: boolean;\n        };\n        /**\n         * An object for updating guest list settings for the Wix event.\n         */\n        type GuestListSettingsInfo = {\n            /**\n             * Whether guests can see other guests attending the Wix event. Defaults to `true`.\n             */\n            public?: boolean;\n        };\n        /**\n         * An object representing a field on a form. The field may or may not be included in an `InputGroup` block. Text-type fields can contain one or more values.\n         */\n        type InputField = {\n            /**\n             * Field name.\n             */\n            name: string;\n            /**\n             * Main field label.\n             */\n            label: string;\n            /**\n             * Additional labels for multi-valued fields, such as `ADDRESS` fields.\n             */\n            additionalLabels: wix_events_backend.WixEvents.AdditionalLabel[];\n            /**\n             * Pre-defined text choices for fields, such as the options listed in a dropdown.\n             */\n            options: string[];\n            /**\n             * Whether the field is mandatory.\n             */\n            required: boolean;\n            /**\n             * Maximum number of characters allowed for the `TEXT` fields.\n             */\n            maxLength: number;\n            /**\n             * Type of the field. The type determines the format of the field.\n             *  This property is used to validate the values entered on the form when submitting. Defaults to `\"TEXT\"`.\n             * One of:\n             *  + `\"TEXT\"`\n             *  + `\"NUMBER\"`\n             *  + `\"TEXT_ARRAY\"`\n             *  + `\"DATE_TIME\"`\n             *  + `\"ADDRESS\"`\n             */\n            type: string;\n            /**\n             * The maximum number of values allowed for `TEXT_ARRAY` fields.\n             */\n            maxSize: number;\n        };\n        /**\n         * An object representing a block of fields that tend to be grouped together on a form. The block of fields is also called an input group.\n         */\n        type InputGroup = {\n            /**\n             * The type of the block of fields. Every field in the block must be of the same type.\n             * One of:\n             *  + `\"INPUT\"`\n             *  + `\"TEXTAREA\"`\n             *  + `\"DROPDOWN\"`\n             *  + `\"RADIO\"`\n             *  + `\"CHECKBOX\"`\n             *  + `\"NAME\"`\n             *  + `\"GUEST_CONTROL\"`. This control corresponds to the `Additional Guests` option when customizing the registration form in the Dashboard. The fields for this block include specifying how many guests, adding text for a comment, and whether the guest name is required.\n             *  + `\"ADDRESS_SHORT\"`. This control corresponds to the `Single Line` address option when customizing the registration form in the Dashboard, and the `Address.Location.Address.formatted` property in this API.\n             *  + `\"ADDRESS_FULL\"`. This control corresponds to the `Full Address` address option when customizing the registration form in the Dashboard, and the set of individual address properties (excluding `Address.Location.Address.formatted`) in this API.\n             *  + `\"DATE\"`\n             */\n            type: string;\n            /**\n             * Whether the fields in the input group are mandatory (such as name and email). When `true`, you can change only the label for the fields in the block.\n             */\n            system: boolean;\n            /**\n             * Fields in the block. Also called child input fields.\n             */\n            inputs: wix_events_backend.WixEvents.InputField[];\n            /**\n             * Fields in the input group are sorted by this value in ascending order.\n             */\n            orderIndex: number;\n            /**\n             * Unique ID for the input group.\n             */\n            _id: string;\n        };\n        /**\n         * An object representing a Wix event location.\n         */\n        type Location = {\n            /**\n             * Location name. `name` is required for TBD events (events whose time is yet \"to be determined\").\n             */\n            name: string;\n            /**\n             * Street address for the Wix event.\n             *\n             *  The `address` property contains the full [address](https://www.wix.com/velo/reference/$w/addressinput/value) of the Wix event. The address is derived from the [`formatted`](#formatted) property.\n             *\n             *  The `address` is required for non-TBD events. (TBD events are events whose time is yet \"to be determined.\")\n             */\n            address: wix_events_backend.WixEvents.Address;\n            /**\n             * Location type. Defaults to `\"VENUE\"`.\n             * One of:\n             *  + `\"VENUE\"`. The event is being held at a physical location.\n             *  + `\"ONLINE\"`. The event is being held at a virtual online location, such as with online conferencing.\n             */\n            type: string;\n        };\n        /**\n         * An object for updating a Wix event's location.\n         */\n        type LocationInfo = {\n            /**\n             * Location name. `name` is required for TBD events (events whose time is yet \"to be determined\").\n             */\n            name?: string;\n            /**\n             * Full [address](https://www.wix.com/velo/reference/$w/addressinput/value).\n             *  The `address` is required for non-TBD events. (TBD events are events whose time is yet \"to be determined.\")\n             *  You can specify the `address` for non-TBD events in the following ways:\n             *  + By entering the `address.formatted` property, which the API then uses to populate the other address properties.\n             *  + By entering the individual `address` properties including the `address.addressLine1` property and, if needed, the `address.addressLine2`property. (Do not specify `address.streetAddress`.) The API uses this data to populate the `address.formatted` property.\n             *  + By entering the individual `address` properties including `address.streetAddress`. (Do not specify `address.addressLine1`.) The API uses this data to populate the `address.formatted` property.\n             */\n            address?: wix_events_backend.WixEvents.AddressInfo;\n            /**\n             * Location type. Defaults to `\"VENUE\"`.\n             * One of:\n             *  + `\"VENUE\"`. The event is being held at a physical location.\n             *  + `\"ONLINE\"`. The event is being held at a virtual online location, such as with online conferencing.\n             */\n            type?: string;\n        };\n        /**\n         * An object representing money and its default monetary format.\n         */\n        type Money = {\n            /**\n             * Monetary amount represented as a decimal string with a period as the decimal separator (for example, 3.99).\n             */\n            value: string;\n            /**\n             * Currency code. Must be a valid [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code (for example, `USD`).\n             */\n            currency: string;\n        };\n        /**\n         * An object representing online conferencing details for the Wix event.\n         */\n        type OnlineConferencing = {\n            /**\n             * Whether online conferencing is enabled. Not supported for Wix events that are TBDs (events whose time is not yet determined).\n             *  When enabled, links to join the conference are generated and provided to guests in an email when the guest registers.\n             */\n            enabled: boolean;\n            /**\n             * ID of the online conferencing provider.\n             */\n            providerId: string;\n            /**\n             * Online conference type.  Defaults to `\"MEETING\"`.\n             * One of:\n             *  + `\"MEETING\"`\n             *  + `\"WEBINAR\"`\n             */\n            conferenceType: string;\n            /**\n             * Session details for the Wix event.\n             */\n            session: wix_events_backend.WixEvents.Session;\n        };\n        /**\n         * An object for updating online conferencing settings for a Wix event.\n         */\n        type OnlineConferencingInfo = {\n            /**\n             * Whether online conferencing is enabled. Not supported for Wix events that are TBDs (events whose time is not yet determined).\n             *  When enabled, links to join the conference are generated and provided to guests in an email when the guest registers.\n             */\n            enabled?: boolean;\n            /**\n             * ID of the online conferencing provider.\n             */\n            providerId?: string;\n            /**\n             * Online conference type. Defaults to `\"MEETING\"`.\n             * One of:\n             *  + `\"MEETING\"`\n             *  + `\"WEBINAR\"`\n             */\n            conferenceType?: string;\n        };\n        /**\n         * Options to use when performing a query or query count.\n         */\n        type QueryOptions = {\n            /**\n             * When `true`, prevents permission checks from running for the operation. Defaults to `false`.\n             */\n            suppressAuth?: boolean;\n        };\n        /**\n         * An object representing registration details for the Wix event.\n         */\n        type Registration = {\n            /**\n             * Registration URL if registration for the Wix event managed externally. Guests go to this URL to register.\n             */\n            externalRegistrationUrl: string;\n            /**\n             * Who can register for the Wix event. Defaults to `\"MEMBER\"`.\n             * One of:\n             *  + `\"MEMBER\"`. Only logged-in guests can register.\n             *  + `\"VISITOR_OR_MEMBER\"`. Everyone can register, whether they are logged-in to the site or not.\n             */\n            restrictedTo: string;\n            /**\n             * Initial event type, set when creating the Wix event.\n             * One of:\n             *  + `\"RSVP\"`. The event is created as an RSVP-type event.\n             *  + `\"TICKETS\"`. The event is created as a ticketed-type event.\n             */\n            initialType: string;\n            /**\n             * Read-only type of the Wix event. After initial event creation, the type can change, for example, if event registration is not necessary (`NO_REGISTRATION`) or if event registration is set to be managed externally (`EXTERNAL`).\n             *  + `\"RSVP\"`. The event was initially created as an RSVP-type event.\n             *  + `\"TICKETS\"`. The event was initially created as a ticketed-type event.\n             *  + `\"EXTERNAL\"`. Registration is managed externally, on a different site. Setting the `externalRegistrationUrl` property updates the `type` to this status.\n             *  + `\"NO_REGISTRATION\"`. There is no need to register for this site.  Setting the `registrationDisabled` property updates the `type` to this status.\n             */\n            type: string;\n            /**\n             * Wix event registration status.\n             * One of:\n             *  + `\"CLOSED\"`. The event was closed (for example, if the maximum number of attendees was reached) or cancelled. Guests cannot register.\n             *  + `\"CLOSED_MANUALLY\"`. Event registration was closed manually by the event manager. Guests cannot register.\n             *  + `\"OPEN_RSVP\"`. Guests can register for the RSVP-type Wix event.\n             *  + `\"OPEN_RSVP_WAITLIST\"`. Guests can register for the RSVP-type Wix event, but are waitlisted.\n             *  + `\"OPEN_TICKETS\"`. Guests can register for the ticketed-type Wix event.\n             *  + `\"OPEN_EXTERNAL\"`. Guests can register externally for the Wix event--not using Wix Events.\n             */\n            status: string;\n            /**\n             * Registration details for an RSVP event.\n             */\n            rsvp: wix_events_backend.WixEvents.Rsvp;\n            /**\n             * Registration details for a ticketed event.\n             */\n            tickets: wix_events_backend.WixEvents.Tickets;\n        };\n        /**\n         * An object representing messages to display when Wix event registration is closed.\n         */\n        type RegistrationClosedMessages = {\n            /**\n             * Message displayed when event registration is closed.\n             */\n            message: string;\n            /**\n             * Button label text that directs guests to take other actions, such as a clicking a link to see other Wix events that they can register for.\n             */\n            exploreEventsLabel: string;\n        };\n        /**\n         * An object representing RSVP registration settings for a Wix event.\n         */\n        type Rsvp = {\n            /**\n             * Whether the Wix event accepts `NO` RSVPs in addition to `YES` RSVPs. Defaults to `\"YES_ONLY\"`.\n             * One of:\n             *  + `\"YES_ONLY\"`\n             *  + `\"YES_AND_NO\"`\n             */\n            rsvpStatusOptions: string;\n            /**\n             * Maximum number of guests allowed to register to the Wix event. If a guest adds additional guests to the same RSVP, the additional guests are also included when calculating the `limit`.\n             */\n            limit: number;\n            /**\n             * Whether to open a waitlist when the guest `limit` for the Wix event is reached. Waitlisted guests are assigned a `WAITING` status.\n             */\n            waitlist: boolean;\n        };\n        /**\n         * An object representing RSVP form messages.\n         */\n        type RsvpFormMessages = {\n            /**\n             * Button label text displayed next to where the guest RSVPs `YES`.\n             */\n            rsvpYes: string;\n            /**\n             * Button label text displayed next to where the guest RSVPs `NO`.\n             */\n            rsvpNo: string;\n            /**\n             * Messages to display when the RSVP is `YES`.\n             */\n            yesMessages: wix_events_backend.WixEvents.RsvpFormPositive;\n            /**\n             * Messages to display when the RSVP is `YES`, even if the guest is placed on the waitlist. Wait-listed guests receive the same messages as guests who are not on the waitlist.\n             */\n            waitingMessages: wix_events_backend.WixEvents.RsvpFormPositive;\n            /**\n             * Messages to display when the RSVP is `NO`.\n             */\n            noMessages: wix_events_backend.WixEvents.RsvpFormNegative;\n            /**\n             * Button label text that directs guests to submit the RSVP form.\n             */\n            submitRsvpLabel: string;\n        };\n        /**\n         * An object representing a messages to display when the RSVP is `NO`.\n         */\n        type RsvpFormNegative = {\n            /**\n             * Form title for negative RSVPs.\n             */\n            title: string;\n            /**\n             * Confirmation message title.\n             */\n            confirmationTitle: string;\n            /**\n             * Button label text that suggests guests share the Wix event link with others who might want to attend.\n             */\n            shareLabel: string;\n        };\n        /**\n         * An object representing a messages to display when the RSVP is `YES`.\n         */\n        type RsvpFormPositive = {\n            /**\n             * Form title for positive RSVPs.\n             */\n            title: string;\n            /**\n             * Confirmation message title.\n             */\n            confirmationTitle: string;\n            /**\n             * Confirmation message text.\n             */\n            confirmationMessage: string;\n            /**\n             * Button label text that suggests guests add the Wix event to their calendar using the link.\n             */\n            addToCalendarLabel: string;\n            /**\n             * Button label text that suggests guests share the Wix event link with others who might want to attend.\n             */\n            shareLabel: string;\n        };\n        /**\n         * An object for updating RSVP registration settings for a Wix event.\n         */\n        type RsvpInfo = {\n            /**\n             * Whether the Wix event accepts `NO` rsvps in addition to `YES` rsvps. Defaults to `\"YES_ONLY\"`.\n             * One of:\n             *  + `\"YES_ONLY\"`\n             *  + `\"YES_AND_NO\"`\n             */\n            rsvpStatusOptions?: string;\n            /**\n             * Maximum number of guests allowed to register to the Wix event. If a guest adds additional guests to the same RSVP, the additional guests are also included when calculating the `limit`.\n             */\n            limit?: number;\n            /**\n             * Whether to open a waitlist when the guest `limit` for the Wix event is reached. Waitlisted guests are assigned a `WAITING` status.\n             */\n            waitlist?: boolean;\n        };\n        /**\n         * An object representing RSVP summary data for the Wix event.\n         */\n        type RsvpSummary = {\n            /**\n             * Total number of RSVPs received.\n             */\n            totalRsvps: number;\n            /**\n             * Number of accepted RSVPs.\n             */\n            yesCount: number;\n            /**\n             * Number of rejected RSVPs.\n             */\n            noCount: number;\n            /**\n             * Number of RSVPs in the waitlist.\n             */\n            waitlistCount: number;\n        };\n        /**\n         * An object representing scheduling settings for a Wix event.\n         */\n        type Scheduling = {\n            /**\n             * Whether the event's time is to be determined later. If `true`, the Wix event's schedule is defined as TBD (\"to be determined\").\n             *  Because the Wix event's start and end dates are not yet defined, a message, set in `tbdMessage`, is displayed instead.\n             *  `startDate`, `endDate`, and `timeZoneId` are optional for TBD events.\n             */\n            tbd: boolean;\n            /**\n             * A message to display for events whose `tbd` property is `true`.\n             */\n            tbdMessage: string;\n            /**\n             * Start date and time for the Wix event. Optional for TBD events.\n             */\n            startDate: Date;\n            /**\n             * End date and time for the Wix event.  Optional for TBD events.\n             */\n            endDate: Date;\n            /**\n             * ID of the time zone for the Wix event in [tz database](https://en.wikipedia.org/wiki/Tz_database) format, such as `EST`, or `America/Los_Angeles`. Optional for TBD events.\n             */\n            timeZoneId: string;\n            /**\n             * Whether the time zone is displayed in the formatted schedule.\n             */\n            showTimeZone: boolean;\n            /**\n             * Formatted schedule representation.\n             */\n            formatted: string;\n            /**\n             * Formatted start date of the event (empty for TBD events).\n             */\n            startDateFormatted: string;\n            /**\n             * Formatted start time of the event (empty for TBD events).\n             */\n            startTimeFormatted: string;\n            /**\n             * Whether the end date is hidden in the formatted schedule.\n             */\n            hideEndDate: boolean;\n        };\n        /**\n         * An object for updating scheduling settings for a Wix event.\n         */\n        type SchedulingInfo = {\n            /**\n             * Whether the event's time is to be determined later. If `true`, the Wix event's schedule is defined as TBD (\"to be determined\").\n             *  Because the Wix event's start and end dates are not yet defined, a message, set in `tbdMessage`, is displayed instead.\n             *  `startDate`, `endDate`, and `timeZoneId` are optional for TBD events.\n             */\n            tbd?: boolean;\n            /**\n             * A message to display for events whose `tbd` property is `true`.\n             */\n            tbdMessage?: string;\n            /**\n             * Start date and time for the Wix event. Optional for TBD (\"to be determined\") events.\n             */\n            startDate?: Date;\n            /**\n             * End date and time for the Wix event.  Optional for TBD (\"to be determined\") events.\n             */\n            endDate?: Date;\n            /**\n             * ID of the time zone for the Wix event in [tz database format](https://en.wikipedia.org/wiki/Tz_database), such as `EST`, or `America/Los_Angeles`. Optional for TBD events.\n             */\n            timeZoneId?: string;\n            /**\n             * Whether the time zone is displayed in the formatted schedule.\n             */\n            showTimeZone?: boolean;\n            /**\n             * Whether the end date is hidden in the formatted schedule.\n             */\n            hideEndDate?: boolean;\n        };\n        /**\n         * An object representing a Wix event session, including links and passwords.\n         */\n        type Session = {\n            /**\n             * Link for the event host to use to start the online conference session.\n             */\n            hostLink: string;\n            /**\n             * Link for the guests to use to join the online conference session.\n             */\n            guestLink: string;\n            /**\n             * The password required to join the online conference session (when relevant). Requiring a password is dependent on the online conferencing provider. For example, Zoom provides passwords for its meetings while LiveVideo does not.\n             */\n            password: string;\n        };\n        /**\n         * An object representing the site URL for the Wix event, including its base URL and path.\n         */\n        type SiteUrl = {\n            /**\n             * Base URL.\n             *  + Premium sites: The domain,for example, `https://domain.com`.\n             *  + Free sites: The site URL, for example, `https://user_name.wixsite.com/mysite`.\n             *  > **Note**: The above URL examples are for a published site. When previewing your site, you receive the Editor URL.\n             */\n            baseUrl: string;\n            /**\n             * The path to Wix event page, for example, `/my-events/weekly-meetup-2` for both Premium and free sites.\n             */\n            path: string;\n        };\n        /**\n         * An object representing the Wix event's street address, with number and name in separate fields.\n         */\n        type StreetAddress = {\n            /**\n             * Street number.\n             */\n            number: string;\n            /**\n             * Street name.\n             */\n            name: string;\n        };\n        /**\n         * An object for updating the Wix event's street address, with number and name in separate fields.\n         */\n        type StreetAddressInfo = {\n            /**\n             * Street number.\n             */\n            number?: string;\n            /**\n             * Street name.\n             */\n            name?: string;\n        };\n        /**\n         * An object representing summary data and statistics for Wix event sales, excluding data pertaining to archived orders.\n         */\n        type Summaries = {\n            /**\n             * Summary data for RSVP sales.\n             */\n            rsvp: wix_events_backend.WixEvents.RsvpSummary;\n            /**\n             * Summary data for revenue and tickets sold.\n             */\n            tickets: wix_events_backend.WixEvents.TicketsSummary;\n        };\n        /**\n         * An object for updating tax settings for the Wix event.\n         */\n        type TaxSettingInfo = {\n            /**\n             * When the tax is applied. Defaults to `\"INCLUDED\"`.\n             * One of:\n             *  + `\"INCLUDED\"`. Tax is built-in to the price.\n             *  + `\"ADDED_AT_CHECKOUT\"`. Tax is added when the guest checks out.\n             */\n            type?: string;\n            /**\n             * Tax name.\n             */\n            name?: string;\n            /**\n             * Tax rate, such as `21.55`.\n             */\n            rate?: string;\n        };\n        /**\n         * An object representing tax settings for the Wix event.\n         */\n        type TaxSettings = {\n            /**\n             * When the tax is applied. Defaults to `\"INCLUDED\"`.\n             * One of:\n             *  + `\"INCLUDED\"`. Tax is built-in to the price.\n             *  + `\"ADDED_AT_CHECKOUT\"`. Tax is added when the guest checks out.\n             */\n            type: string;\n            /**\n             * Tax name.\n             */\n            name: string;\n            /**\n             * Tax rate, such as `21.55`.\n             */\n            rate: string;\n        };\n        /**\n         * An object representing ticketing settings for the Wix event.\n         */\n        type Ticketing = {\n            /**\n             * Currency used for event ordering and transactions.\n             */\n            currency: string;\n            /**\n             * When ordering, whether each ticket in the order needs its own order form or if one form covers multiple tickets.\n             */\n            formAssignedPerTicket: boolean;\n            /**\n             * Tax settings.\n             */\n            tax: wix_events_backend.WixEvents.TaxSettings;\n            /**\n             * Price of the lowest-priced ticket.\n             */\n            lowestTicketPrice: wix_events_backend.WixEvents.Money;\n            /**\n             * Price of the lowest-priced ticket.\n             */\n            highestTicketPrice: wix_events_backend.WixEvents.Money;\n            /**\n             * Formatted price of the lowest-priced ticket.\n             */\n            lowestTicketPriceFormatted: string;\n            /**\n             * Formatted price of the highest-priced ticket.\n             */\n            highestTicketPriceFormatted: string;\n        };\n        /**\n         * An object for updating ticketing settings for the Wix event.\n         */\n        type TicketingInfo = {\n            /**\n             * When ordering, whether each ticket in the order needs its own order form or if one form covers multiple tickets.\n             */\n            formAssignedPerTicket?: boolean;\n            /**\n             * Tax settings.\n             */\n            tax?: wix_events_backend.WixEvents.TaxSettingInfo;\n        };\n        /**\n         * An object representing a summary of the Wix event's revenue and tickets sold.\n         */\n        type TicketingSummary = {\n            /**\n             * Total number of tickets sold.\n             */\n            totalTickets: number;\n            /**\n             * Total revenue, including taxes and excluding fees. Payment provider fees are not deducted.\n             */\n            revenue: wix_events_backend.WixEvents.Money;\n            /**\n             * Whether currency cannot be changed. The currency is locked after the first order for the event has been created and is set to the currency of that first order.\n             */\n            currencyLocked: boolean;\n            /**\n             * Total number of orders placed for the Wix event.\n             */\n            totalOrders: number;\n            /**\n             * Total sales balance for confirmed transactions.\n             */\n            totalSales: wix_events_backend.WixEvents.Money;\n        };\n        /**\n         * An object representing tickets settings for the Wix event.\n         */\n        type Tickets = {\n            /**\n             * Currency used for event ordering and transactions.\n             */\n            currency: string;\n            /**\n             * When ordering, whether each ticket in the order needs its own order form or if one form covers multiple tickets.\n             */\n            formAssignedPerTicket: boolean;\n            /**\n             * Tax settings.\n             */\n            tax: wix_events_backend.WixEvents.TaxSettings;\n            /**\n             * Price of the lowest-priced ticket.\n             */\n            lowestTicketPrice: wix_events_backend.WixEvents.Money;\n            /**\n             * Price of the lowest-priced ticket.\n             */\n            highestTicketPrice: wix_events_backend.WixEvents.Money;\n            /**\n             * Formatted price of the lowest-priced ticket.\n             */\n            lowestTicketPriceFormatted: string;\n            /**\n             * Formatted price of the highest-priced ticket.\n             */\n            highestTicketPriceFormatted: string;\n        };\n        /**\n         * An object for updating tickets settings for the Wix event.\n         */\n        type TicketsInfo = {\n            /**\n             * When ordering, whether each ticket in the order needs its own order form or if one form covers multiple tickets.\n             */\n            formAssignedPerTicket?: boolean;\n            /**\n             * Tax settings.\n             */\n            tax?: wix_events_backend.WixEvents.TaxSettingInfo;\n        };\n        /**\n         * An object representing a summary of the Wix event's revenue and tickets sold.\n         */\n        type TicketsSummary = {\n            /**\n             * Total number of tickets sold.\n             */\n            totalTickets: number;\n            /**\n             * Total revenue, including taxes and excluding fees. Payment provider fees are not deducted.\n             */\n            revenue: wix_events_backend.WixEvents.Money;\n            /**\n             * Whether currency cannot be changed. The currency is locked after the first order for the event has been created and is set to the currency of that first order.\n             */\n            currencyLocked: boolean;\n            /**\n             * Total number of orders placed for the Wix event.\n             */\n            totalOrders: number;\n            /**\n             * Total sales balance for confirmed transactions.\n             */\n            totalSales: wix_events_backend.WixEvents.Money;\n        };\n        /**\n         * An object representing a Wix event.\n         */\n        type WixEvent = {\n            /**\n             * Wix event ID.\n             */\n            _id: string;\n            /**\n             * Wix event location details.\n             */\n            location: wix_events_backend.WixEvents.Location;\n            /**\n             * Wix event scheduling details.\n             */\n            scheduling: wix_events_backend.WixEvents.Scheduling;\n            /**\n             * Wix event title.\n             */\n            title: string;\n            /**\n             * Wix event description.\n             */\n            description: string;\n            /**\n             * Rich-text (HTML) content for the \"About Event\" section.\n             */\n            about: string;\n            /**\n             * The location of an image that represents the Wix event. This image is printed on the ticket (PDF format). The image file must be an image file from the Media Manager.\n             *\n             *  The URL format is:\n             *  `wix:image://v1//#originWidth=&originHeight=[&watermark=]`\n             */\n            mainImage: string;\n            /**\n             * URL-friendly version of the Wix event title. Unique across all Wix events in the same site.\n             */\n            slug: string;\n            /**\n             * [ISO 639-1](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) language code of the Wix event. Use to translate content on forms, and so on.\n             */\n            language: string;\n            /**\n             * Date the Wix event was created.\n             */\n            _createdDate: Date;\n            /**\n             * Date the Wix event was updated.\n             */\n            _updatedDate: Date;\n            /**\n             * Wix event status. Defaults to `\"SCHEDULED\"`.\n             * One of:\n             *  + `\"SCHEDULED\"`. The upcoming Wix event is scheduled but has not yet started.\n             *  + `\"STARTED\"`. The Wix event has started and is in progress.\n             *  + `\"ENDED\"`. The Wix event has ended.\n             *  + `\"CANCELED\"`. The Wix event has been canceled.\n             */\n            status: string;\n            /**\n             * Registration details for the Wix event.\n             */\n            registration: wix_events_backend.WixEvents.Registration;\n            /**\n             * \"Add to calendar\" URLs.\n             */\n            calendarLinks: wix_events_backend.WixEvents.CalendarLinks;\n            /**\n             * Event page URL components.\n             */\n            eventUrl: wix_events_backend.WixEvents.SiteUrl;\n            /**\n             * Registration form for the site guest to fill out with their contact details, and other information, as relevant.\n             */\n            form: wix_events_backend.WixEvents.Form;\n            /**\n             * Summaries of Wix event sales.\n             */\n            summary: wix_events_backend.WixEvents.Summaries;\n            /**\n             * Guest list settings for the Wix event.\n             */\n            guestList: wix_events_backend.WixEvents.GuestListSettings;\n            /**\n             * ID of the creator of the Wix event. If the creator is not logged in when creating the event, the `createdBy` property is empty.\n             */\n            createdBy: string;\n            /**\n             * Online conferencing details for the Wix event.\n             */\n            videoConferencing: wix_events_backend.WixEvents.OnlineConferencing;\n            /**\n             * The \"Filter by:\" drop-down option for filtering contacts by this event\n             *  in the Dashboard's [Contact List page](https://www.wix.com/my-account/site-selector/?buttonText=Select%20Site&title=Select%20a%20Site&autoSelectOnSingleSite=true&actionUrl=https:%2F%2Fwww.wix.com%2Fdashboard%2F8f93447d-7521-4aa1-8c64-4d5a4f025d3f%2Fcontacts%2F%3FreferralInfo%3Dsidebar).\n             *  This read-only property is automatically populated to comprise a \"custom\" prefix, the title of the event, and other suffixes added for uniqueness. Note that even if\n             *  the title of an event is updated, the `assignedContactsLabel` does not change.\n             */\n            assignedContactsLabel: string;\n        };\n        /**\n         * An object for creating a Wix event.\n         */\n        type WixEventInfo = {\n            /**\n             * Wix event title.\n             */\n            title?: string;\n            /**\n             * Wix event description.\n             */\n            description?: string;\n            /**\n             * The location of an image that represents the Wix event. This image is printed on the ticket (PDF format). The image file must be an image file from the Media Manager.\n             *\n             *  The URL format is:\n             *  `wix:image://v1//#originWidth=&originHeight=[&watermark=]`\n             */\n            mainImage?: string;\n            /**\n             * Wix event registration settings.\n             */\n            registration?: wix_events_backend.WixEvents.WixEventRegistrationInfo;\n            /**\n             * Wix event guest list settings.\n             */\n            guestList?: wix_events_backend.WixEvents.GuestListSettingsInfo;\n            /**\n             * Rich-text (HTML) content for the \"About Event\" section.\n             */\n            about?: string;\n            /**\n             * Wix event online conferencing settings.\n             */\n            videoConferencing?: wix_events_backend.WixEvents.OnlineConferencingInfo;\n            /**\n             * Wix event location settings.\n             *  `location.address` is required for non-TBD events.\n             *  `location.name` is required for TBD events.\n             *  (TBD events are events whose times are yet \"to be determined.\")\n             */\n            location: wix_events_backend.WixEvents.LocationInfo;\n            /**\n             * Wix event scheduling settings.\n             */\n            scheduling: wix_events_backend.WixEvents.SchedulingInfo;\n        };\n        /**\n         * An object for updating registration options for a Wix event.\n         */\n        type WixEventInfoOptions = {\n            /**\n             * Content language code in [ISO 639-1](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) format.\n             *  Used for translating tickets' PDF labels, registration forms, automatic emails, and so on.\n             *  Supported languages: `ar`, `bg`, `cs`, `da`, `de`, `el`, `en`, `es`, `fi`, `fr`, `he`, `hi`, `hu`, `id`, `it`, `ja`, `ko`, `ms`, `nl`, `no`, `pl`, `pt`, `ro`, `ru`, `sv`, `th`, `tl`, `tr`, `uk`, `zh`.\n             *  Defaults to `en`.\n             */\n            language?: string;\n        };\n        /**\n         * An object for updating registration settings for the Wix event.\n         */\n        type WixEventRegistrationInfo = {\n            /**\n             * Registration URL, if registration for the Wix event is managed externally. Guests go to this URL to register. Setting this property changes the read-only `registration.type` property to `EXTERNAL`.\n             */\n            externalRegistrationUrl?: string;\n            /**\n             * Whether to temporarily suspend (pause) registration. For example, you might want to pause registration temporarily if you need to change venues to allow for more attendees.\n             */\n            registrationPaused?: boolean;\n            /**\n             * Who can register to the Wix event. Defaults to `\"MEMBER\"`.\n             * One of:\n             *  + `\"MEMBER\"`. Only logged-in guests can register.\n             *  + `\"VISITOR_OR_MEMBER\"`. Everyone can register, whether they are logged-in to the site or not.\n             */\n            restrictedTo?: string;\n            /**\n             * Whether to disable registration. For example, you might want to disable registration if you will not have enough supplies on-hand for more attendees. Setting to `true` changes the read-only `registration.type` property to `NO_REGISTRATION`.\n             */\n            registrationDisabled?: boolean;\n            /**\n             * Registration settings for the RSVP Wix event.\n             */\n            rsvp?: wix_events_backend.WixEvents.RsvpInfo;\n            /**\n             * Event type. Only RSVP and TICKETS are allowed when creating an event (`initialType`), however after initial event\n             * creation the `type` can be changed to other values.\n             * One of:\n             *  + `\"RSVP\"`. The Wix event is an RSVP event. It cannot be changed to a ticketed event.\n             *  + `\"TICKETS\"`. The Wix event is a ticketed event. It cannot be changed to an RSVP event.\n             *  + `\"EXTERNAL\"`. If you created a guest list before setting up external registration, the current guest list remains but is likely to be\n             *    incomplete. So when sending out messages to the Wix-managed guest list, not all\n             *    guests will receive them. Messages should be sent from the external registration system\n             *    to the complete guest list.\n             *    You can change the value back at any point if you no longer want the event to be managed externally.\n             *  + `\"NO_REGISTRATION\"`. No registration is necessary for the event.\n             */\n            type?: string;\n            /**\n             * Registration settings for the ticketed Wix event.\n             */\n            tickets?: wix_events_backend.WixEvents.TicketsInfo;\n        };\n        /**\n         * An object for updating a Wix event.\n         */\n        type WixEventUpdateInfo = {\n            /**\n             * Wix event title.\n             */\n            title?: string;\n            /**\n             * Wix event description.\n             */\n            description?: string;\n            /**\n             * Wix event location settings.\n             *  Address is required for non-TBD events.\n             *  Location name is required for TBD events.\n             *  (TBD events are events whose times are yet \"to be determined.\")\n             */\n            location?: wix_events_backend.WixEvents.LocationInfo;\n            /**\n             * Wix event scheduling settings.\n             */\n            scheduling?: wix_events_backend.WixEvents.SchedulingInfo;\n            /**\n             * The location of an image that represents the Wix event. This image is printed on the ticket (PDF format). The image file must be an image file from the Media Manager.\n             *\n             *  The URL format is:\n             *  `wix:image://v1//#originWidth=&originHeight=[&watermark=]`\n             */\n            mainImage?: string;\n            /**\n             * Wix event registration settings.\n             */\n            registration?: wix_events_backend.WixEvents.WixEventRegistrationInfo;\n            /**\n             * Wix event guest list settings.\n             */\n            guestList?: wix_events_backend.WixEvents.GuestListSettingsInfo;\n            /**\n             * Rich-text (HTML) content for the \"About Event\" section.\n             */\n            about?: string;\n            /**\n             * Wix event online conferencing settings.\n             */\n            videoConferencing?: wix_events_backend.WixEvents.OnlineConferencingInfo;\n        };\n    }\n}\ndeclare namespace wix_events_backend.WixEvents {\n    /**\n     * Contains functionality for refining a Wix events query.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-events-backend.WixEvents.EventsQueryBuilder.html#)\n     */\n    interface EventsQueryBuilder {\n        /**\n         * Adds an `and` condition to the query.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-events-backend.WixEvents.EventsQueryBuilder.html#and)\n         */\n        and(query: wix_events_backend.WixEvents.EventsQueryBuilder): wix_events_backend.WixEvents.EventsQueryBuilder;\n        /**\n         * Adds a sort to a query, sorting by the specified properties in ascending order.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-events-backend.WixEvents.EventsQueryBuilder.html#ascending)\n         */\n        ascending(...propertyName: string[]): wix_events_backend.WixEvents.EventsQueryBuilder;\n        /**\n         * Refines a query to match items whose specified property value contains a specified string.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-events-backend.WixEvents.EventsQueryBuilder.html#contains)\n         */\n        contains(propertyName: string, value: string): wix_events_backend.WixEvents.EventsQueryBuilder;\n        /**\n         * Adds a sort to a query, sorting by the specified properties in descending order.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-events-backend.WixEvents.EventsQueryBuilder.html#descending)\n         */\n        descending(...propertyName: string[]): wix_events_backend.WixEvents.EventsQueryBuilder;\n        /**\n         * Refines a query to match items whose specified property value equals the specified value.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-events-backend.WixEvents.EventsQueryBuilder.html#eq)\n         */\n        eq(propertyName: string, value: any): wix_events_backend.WixEvents.EventsQueryBuilder;\n        /**\n         * Returns the items that match the query.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-events-backend.WixEvents.EventsQueryBuilder.html#find)\n         */\n        find(options?: wix_events_backend.WixEvents.QueryOptions): Promise<wix_events_backend.WixEvents.EventsQueryResult>;\n        /**\n         * Refines a query to match items whose specified property value is greater than or equal to the specified value.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-events-backend.WixEvents.EventsQueryBuilder.html#ge)\n         */\n        ge(propertyName: string, value: string | number | Date): wix_events_backend.WixEvents.EventsQueryBuilder;\n        /**\n         * Refines a query to match items whose specified property value is greater than the specified value.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-events-backend.WixEvents.EventsQueryBuilder.html#gt)\n         */\n        gt(propertyName: string, value: string | number | Date): wix_events_backend.WixEvents.EventsQueryBuilder;\n        /**\n         * Refines a query to match items whose specified property value contains any of the specified values.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-events-backend.WixEvents.EventsQueryBuilder.html#hasSome)\n         */\n        hasSome(propertyName: string, values: string[]): wix_events_backend.WixEvents.EventsQueryBuilder;\n        /**\n         * Refines a query to match items whose specified property value is less than or equal to the specified value.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-events-backend.WixEvents.EventsQueryBuilder.html#le)\n         */\n        le(propertyName: string, value: string | number | Date): wix_events_backend.WixEvents.EventsQueryBuilder;\n        /**\n         * Limits the number of items the query returns.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-events-backend.WixEvents.EventsQueryBuilder.html#limit)\n         */\n        limit(limit: string): wix_events_backend.WixEvents.EventsQueryBuilder;\n        /**\n         * Refines a query to match items whose specified property value is less than the specified value.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-events-backend.WixEvents.EventsQueryBuilder.html#lt)\n         */\n        lt(propertyName: string, value: string | number | Date): wix_events_backend.WixEvents.EventsQueryBuilder;\n        /**\n         * Refines a query to match items whose specified property value does not equal the specified value.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-events-backend.WixEvents.EventsQueryBuilder.html#ne)\n         */\n        ne(propertyName: string, value: any): wix_events_backend.WixEvents.EventsQueryBuilder;\n        /**\n         * Adds an `not` condition to the query.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-events-backend.WixEvents.EventsQueryBuilder.html#not)\n         */\n        not(query: wix_events_backend.WixEvents.EventsQueryBuilder): wix_events_backend.WixEvents.EventsQueryBuilder;\n        /**\n         * Adds an `or` condition to the query.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-events-backend.WixEvents.EventsQueryBuilder.html#or)\n         */\n        or(query: wix_events_backend.WixEvents.EventsQueryBuilder): wix_events_backend.WixEvents.EventsQueryBuilder;\n        /**\n         * Sets the number of items to skip before returning query results.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-events-backend.WixEvents.EventsQueryBuilder.html#skip)\n         */\n        skip(skip: string): wix_events_backend.WixEvents.EventsQueryBuilder;\n    }\n    /**\n     * The results of a Wix events query, containing the retrieved items.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-events-backend.WixEvents.EventsQueryResult.html#)\n     */\n    interface EventsQueryResult {\n        /**\n         * Returns the index of the current results page number.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-events-backend.WixEvents.EventsQueryResult.html#currentPage)\n         */\n        readonly currentPage: number;\n        /**\n         * Returns the items that match the query.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-events-backend.WixEvents.EventsQueryResult.html#items)\n         */\n        readonly items: wix_events_backend.WixEvents.WixEvent[];\n        /**\n         * Returns the number of items in the current results page.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-events-backend.WixEvents.EventsQueryResult.html#length)\n         */\n        readonly length: number;\n        /**\n         * Returns the query page size.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-events-backend.WixEvents.EventsQueryResult.html#pageSize)\n         */\n        readonly pageSize: number;\n        /**\n         * Contains functionality for refining a Wix events query.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-events-backend.WixEvents.EventsQueryResult.html#query)\n         */\n        readonly query: wix_events_backend.WixEvents.EventsQueryBuilder;\n        /**\n         * Returns the total number of items that match the query.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-events-backend.WixEvents.EventsQueryResult.html#totalCount)\n         */\n        readonly totalCount: number;\n        /**\n         * Returns the total number of pages the query produced.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-events-backend.WixEvents.EventsQueryResult.html#totalPages)\n         */\n        readonly totalPages: number;\n        /**\n         * Indicates if the query has more results.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-events-backend.WixEvents.EventsQueryResult.html#hasNext)\n         */\n        hasNext(): boolean;\n        /**\n         * Indicates if the query has previous results.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-events-backend.WixEvents.EventsQueryResult.html#hasPrev)\n         */\n        hasPrev(): boolean;\n        /**\n         * Retrieves the next page of query results.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-events-backend.WixEvents.EventsQueryResult.html#next)\n         */\n        next(): Promise<wix_events_backend.WixEvents.EventsQueryResult>;\n        /**\n         * Retrieves the previous page of query results.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-events-backend.WixEvents.EventsQueryResult.html#prev)\n         */\n        prev(): Promise<wix_events_backend.WixEvents.EventsQueryResult>;\n    }\n}\ndeclare namespace wix_fetch {\n    /**\n     * An object returned by the `fetch()` function representing\n     *  an HTTP response to a fetch.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-fetch.WixFetchResponse.html#)\n     */\n    interface WixFetchResponse {\n        /**\n         * Indicates whether the body of the response has been used yet.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-fetch.WixFetchResponse.html#bodyUsed)\n         */\n        readonly bodyUsed: boolean;\n        /**\n         * The response headers.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-fetch.WixFetchResponse.html#headers)\n         */\n        readonly headers: any;\n        /**\n         * Indicates if the request was successful, meaning its `status` is in the range 2xx.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-fetch.WixFetchResponse.html#ok)\n         */\n        readonly ok: boolean;\n        /**\n         * The response [status code](https://en.wikipedia.org/wiki/List_of_HTTP_status_codes).\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-fetch.WixFetchResponse.html#status)\n         */\n        readonly status: number;\n        /**\n         * The response [status message](https://en.wikipedia.org/wiki/List_of_HTTP_status_codes).\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-fetch.WixFetchResponse.html#statusText)\n         */\n        readonly statusText: string;\n        /**\n         * The response URL.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-fetch.WixFetchResponse.html#url)\n         */\n        readonly url: string;\n        /**\n         * Reads the response body as JSON.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-fetch.WixFetchResponse.html#json)\n         */\n        json(): Promise<any>;\n        /**\n         * Reads the response body as a string.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-fetch.WixFetchResponse.html#text)\n         */\n        text(): Promise<string>;\n    }\n    /**\n     * An object used by the `fetch()` function representing an HTTPS request.\n     */\n    type WixFetchRequest = {\n        /**\n         * The [HTTP method](https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods) to use. Defaults to `\"GET\"`.\n         */\n        method?: string;\n        /**\n         * The request headers.\n         */\n        headers?: any;\n        /**\n         * The request body.\n         */\n        body?: string;\n        /**\n         * The [request mode](https://developer.mozilla.org/en-US/docs/Web/API/Request/mode).\n         *\n         * One of:\n         *\n         * + `\"cors\"`\n         * + `\"no-cors\"`\n         * + `\"same-origin\"`\n         */\n        mode?: string;\n        /**\n         * The [request credentials](https://developer.mozilla.org/en-US/docs/Web/API/Request/credentials).\n         *\n         * One of:\n         *\n         * + `\"omit\"`\n         * + `\"include\"`\n         * + `\"same-origin\"`\n         */\n        credentials?: string;\n        /**\n         * The [request cache mode](https://developer.mozilla.org/en-US/docs/Web/API/Request/cache).\n         *\n         * One of:\n         *\n         * + `\"default\"`\n         * + `\"force-cache\"`\n         * + `\"no-cache\"`\n         * + `\"no-store\"`\n         * + `\"only-if-cached\"`\n         * + `\"reload\"`\n         */\n        cache?: string;\n    };\n}\ndeclare namespace $w.WixForms {\n    /**\n     * An event that is fired when a site visitor clicks a submit button on a `WixForms` element but the Wix Form is not successfully submitted to the server.\n     * \t[Read more](https://www.wix.com/corvid/reference/$w.WixForms.WixFormSubmittedErrorEvent.html#)\n     */\n    interface WixFormSubmittedErrorEvent extends $w.Event {\n        /**\n         * Gets the error code for a failed Wix Form submission.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.WixForms.WixFormSubmittedErrorEvent.html#code)\n         */\n        readonly code: string;\n        /**\n         * Gets the error message for a failed Wix Form submission.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.WixForms.WixFormSubmittedErrorEvent.html#message)\n         */\n        readonly message: string;\n    }\n    /**\n     * An event that is fired when a site visitor clicks a submit button on a `WixForms` element and the Wix Form is successfully submitted to the server.\n     * \t[Read more](https://www.wix.com/corvid/reference/$w.WixForms.WixFormSubmittedEvent.html#)\n     */\n    interface WixFormSubmittedEvent extends $w.Event {\n        /**\n         * An object representing a Wix Form field.\n         * \t[Read more](https://www.wix.com/corvid/reference/$w.WixForms.WixFormSubmittedEvent.html#wixFormField)\n         */\n        readonly wixFormField: any;\n    }\n}\ndeclare namespace wix_forum_backend {\n    /**\n     * Events that are fired from a Wix Forum.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-forum-backend.Events.html#)\n     */\n    interface Events {\n        /**\n         * A backend event that fires when a new forum category is created.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-forum-backend.Events.html#onCategoryCreated)\n         */\n        onCategoryCreated(event: wix_forum_backend.Events.CreatedCategory): void;\n        /**\n         * A backend event that fires when a forum category is deleted.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-forum-backend.Events.html#onCategoryDeleted)\n         */\n        onCategoryDeleted(event: wix_forum_backend.Events.DeletedCategory): void;\n        /**\n         * A backend event that fires when a forum category is updated.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-forum-backend.Events.html#onCategoryUpdated)\n         */\n        onCategoryUpdated(event: wix_forum_backend.Events.UpdatedCategory): void;\n        /**\n         * A backend event that fires when a new forum comment is created.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-forum-backend.Events.html#onCommentCreated)\n         */\n        onCommentCreated(event: wix_forum_backend.Events.CreatedComment): void;\n        /**\n         * A backend event that fires when a forum comment is deleted.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-forum-backend.Events.html#onCommentDeleted)\n         */\n        onCommentDeleted(event: wix_forum_backend.Events.DeletedComment): void;\n        /**\n         * A backend event that fires when a forum comment is downvoted.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-forum-backend.Events.html#onCommentDownvoted)\n         */\n        onCommentDownvoted(event: wix_forum_backend.Events.DownvotedComment): void;\n        /**\n         * A backend event that fires when a forum comment is liked.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-forum-backend.Events.html#onCommentLiked)\n         */\n        onCommentLiked(event: wix_forum_backend.Events.LikedComment): void;\n        /**\n         * A backend event that fires when a forum comment is marked as best.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-forum-backend.Events.html#onCommentMarkedAsBest)\n         */\n        onCommentMarkedAsBest(event: wix_forum_backend.Events.MarkedAsBestComment): void;\n        /**\n         * A backend event that fires when a forum comment is reported.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-forum-backend.Events.html#onCommentReported)\n         */\n        onCommentReported(event: wix_forum_backend.Events.ReportedComment): void;\n        /**\n         * A backend event that fires when a forum comment is unliked.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-forum-backend.Events.html#onCommentUnliked)\n         */\n        onCommentUnliked(event: wix_forum_backend.Events.UnlikedComment): void;\n        /**\n         * A backend event that fires when a forum comment is unmarked as best.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-forum-backend.Events.html#onCommentUnmarkedAsBest)\n         */\n        onCommentUnmarkedAsBest(event: wix_forum_backend.Events.UnmarkedAsBestComment): void;\n        /**\n         * A backend event that fires when a vote is removed from a forum comment.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-forum-backend.Events.html#onCommentUnvoted)\n         */\n        onCommentUnvoted(event: wix_forum_backend.Events.UnvotedComment): void;\n        /**\n         * A backend event that fires when a forum comment is updated.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-forum-backend.Events.html#onCommentUpdated)\n         */\n        onCommentUpdated(event: wix_forum_backend.Events.UpdatedComment): void;\n        /**\n         * A backend event that fires when a forum comment is upvoted.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-forum-backend.Events.html#onCommentUpvoted)\n         */\n        onCommentUpvoted(event: wix_forum_backend.Events.UpvotedComment): void;\n        /**\n         * A backend event that fires when a forum post is closed.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-forum-backend.Events.html#onPostClosed)\n         */\n        onPostClosed(event: wix_forum_backend.Events.ClosedPost): void;\n        /**\n         * A backend event that fires when a new forum post is created.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-forum-backend.Events.html#onPostCreated)\n         */\n        onPostCreated(event: wix_forum_backend.Events.CreatedPost): void;\n        /**\n         * A backend event that fires when a forum post is deleted.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-forum-backend.Events.html#onPostDeleted)\n         */\n        onPostDeleted(event: wix_forum_backend.Events.DeletedPost): void;\n        /**\n         * A backend event that fires when a forum post is liked.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-forum-backend.Events.html#onPostLiked)\n         */\n        onPostLiked(event: wix_forum_backend.Events.LikedPost): void;\n        /**\n         * A backend event that fires when a forum post is moved.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-forum-backend.Events.html#onPostMoved)\n         */\n        onPostMoved(event: wix_forum_backend.Events.MovedPost): void;\n        /**\n         * A backend event that fires when a forum post is opened.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-forum-backend.Events.html#onPostOpened)\n         */\n        onPostOpened(event: wix_forum_backend.Events.OpenedPost): void;\n        /**\n         * A backend event that fires when a forum post is pinned.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-forum-backend.Events.html#onPostPinned)\n         */\n        onPostPinned(event: wix_forum_backend.Events.PinnedPost): void;\n        /**\n         * A backend event that fires when a forum post is reported.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-forum-backend.Events.html#onPostReported)\n         */\n        onPostReported(event: wix_forum_backend.Events.ReportedPost): void;\n        /**\n         * A backend event that fires when a forum post is unliked.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-forum-backend.Events.html#onPostUnliked)\n         */\n        onPostUnliked(event: wix_forum_backend.Events.UnlikedPost): void;\n        /**\n         * A backend event that fires when a forum post is unpinned.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-forum-backend.Events.html#onPostUnpinned)\n         */\n        onPostUnpinned(event: wix_forum_backend.Events.UnpinnedPost): void;\n        /**\n         * A backend event that fires when a forum post is updated.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-forum-backend.Events.html#onPostUpdated)\n         */\n        onPostUpdated(event: wix_forum_backend.Events.UpdatedPost): void;\n    }\n    namespace Events {\n        /**\n         * An object representing a forum category.\n         */\n        type Category = {\n            /**\n             * Category ID.\n             */\n            _id: string;\n            /**\n             * Category name. Appears on the forum home page and in the navigation menu.\n             */\n            name: string;\n            /**\n             * Category header title. Appears in the category page header.\n             */\n            headerTitle: string;\n            /**\n             * Short description of the category.\n             */\n            description: string;\n            /**\n             * Type of header background.\n             * One of the following:\n             *\n             *  + `\"IMAGE\"`: Category header background is an image.\n             *  + `\"COLOR\"`: Category header background is a color.\n             *\n             *\n             * The default value is `\"COLOR\"`.\n             */\n            headerType: string;\n            /**\n             * Category header background [image source](https://www.wix.com/velo/reference/$w/image/src). Applicable only if `headerType` is an image.\n             */\n            headerImage: string;\n            /**\n             * Forum category header image overlay color. Applicable only when `headerType` is `\"IMAGE\"`.\n             */\n            headerImageOverlayColor: wix_forum_backend.Events.Color;\n            /**\n             * Forum category header background color.\n             */\n            headerBackgroundColor: wix_forum_backend.Events.Color;\n            /**\n             * Forum category header text color.\n             */\n            headerTextColor: wix_forum_backend.Events.Color;\n            /**\n             * Position in the list of categories on the forum home page. `0` indicates the first category.\n             */\n            rank: number;\n            /**\n             * Relative URL of the category page.\n             */\n            pageUrl: string;\n            /**\n             * URL-friendly name of the category that is unique across the forum.\n             */\n            slug: string;\n            /**\n             * Number of posts in the category.\n             */\n            postCount: number;\n            /**\n             * Total views of all posts in the category.\n             */\n            postViewCount: number;\n            /**\n             * Only admins and moderators can post in this category.\n             */\n            writeProtected: boolean;\n            /**\n             * Date and time the category was created.\n             */\n            _createdDate: Date;\n            /**\n             * Date and time the category was last updated.\n             */\n            _updatedDate: Date;\n            /**\n             * Type of category.\n             * One of the following:\n             *\n             *\n             *  + `\"DISCUSSION\"`: Conversational discussion with other members.\n             *  + `\"QUESTION\"`: Specific question with answers from the community.\n             */\n            categoryType: string;\n        };\n        /**\n         * An object representing a post that was closed.\n         */\n        type ClosedPost = {\n            /**\n             * Post ID.\n             */\n            postId: string;\n        };\n        /**\n         * An object representing a color used in a forum header.\n         */\n        type Color = {\n            /**\n             * Hexadecimal rgb color value.\n             */\n            color: string;\n            /**\n             * Opacity percentage as a decimal between 0 and 1.\n             */\n            opacity: number;\n        };\n        /**\n         * An object representing a forum comment.\n         */\n        type Comment = {\n            /**\n             * Comment ID.\n             */\n            _id: string;\n            /**\n             * ID of the post commented on.\n             */\n            postId: string;\n            /**\n             * ID of the comment author.\n             */\n            _ownerId: string;\n            /**\n             * Plain text of the comment.\n             */\n            plainContent: string;\n            /**\n             * Number of replies to the comment.\n             */\n            replyCount: number;\n            /**\n             * Number of likes the comment received.\n             */\n            likeCount: number;\n            /**\n             * Number of upvotes the comment received. Only applicable to comments on posts with a `postType` value of `\"QUESTION\"`.\n             */\n            upvoteCount: number;\n            /**\n             * Number of downvotes the comment received. Only applicable to comments on posts with a `postType` value of `\"QUESTION\"`.\n             */\n            downvoteCount: number;\n            /**\n             * Number of upvotes subtracted by the number of downvotes. May be a negative number. Only applicable to comments on posts with a `postType` value of `\"QUESTION\"`.\n             */\n            score: number;\n            /**\n             * Date and time the comment was created.\n             */\n            _createdDate: Date;\n            /**\n             * Date and time the comment was last edited.\n             */\n            _editedDate: Date;\n            /**\n             * Date and time of the last activity performed on the comment.\n             */\n            _lastActivityDate: Date;\n            /**\n             * Relative URL of the post page containing the comment.\n             */\n            pageUrl: string;\n        };\n        /**\n         * An object representing a category that was created.\n         */\n        type CreatedCategory = {\n            /**\n             * Category ID.\n             */\n            categoryId: string;\n            /**\n             * Forum category that was created.\n             */\n            category: wix_forum_backend.Events.Category;\n        };\n        /**\n         * An object representing a comment that was created.\n         */\n        type CreatedComment = {\n            /**\n             * Comment ID.\n             */\n            commentId: string;\n            /**\n             * Forum comment that was created.\n             */\n            comment: wix_forum_backend.Events.Comment;\n        };\n        /**\n         * An object representing a post that was created.\n         */\n        type CreatedPost = {\n            /**\n             * Post ID.\n             */\n            postId: string;\n            /**\n             * Forum post that was created.\n             */\n            post: wix_forum_backend.Events.Post;\n        };\n        /**\n         * An object representing a category that was deleted.\n         */\n        type DeletedCategory = {\n            /**\n             * Category ID.\n             */\n            categoryId: string;\n        };\n        /**\n         * An object representing a comment that was deleted.\n         */\n        type DeletedComment = {\n            /**\n             * Comment ID.\n             */\n            commentId: string;\n        };\n        /**\n         * An object representing a post that was deleted.\n         */\n        type DeletedPost = {\n            /**\n             * Post ID.\n             */\n            postId: string;\n        };\n        /**\n         * An object representing a comment that was downvoted.\n         */\n        type DownvotedComment = {\n            /**\n             * Comment ID.\n             */\n            commentId: string;\n        };\n        /**\n         * An object representing a comment that was liked.\n         */\n        type LikedComment = {\n            /**\n             * Comment ID.\n             */\n            commentId: string;\n        };\n        /**\n         * An object representing a post that was liked.\n         */\n        type LikedPost = {\n            /**\n             * Post ID.\n             */\n            postId: string;\n        };\n        /**\n         * An object representing a comment that was marked as best.\n         */\n        type MarkedAsBestComment = {\n            /**\n             * Comment ID.\n             */\n            commentId: string;\n        };\n        /**\n         * An object representing a post that was moved to a different category.\n         */\n        type MovedPost = {\n            /**\n             * Post ID.\n             */\n            postId: string;\n            /**\n             * ID of the category the post moved from.\n             */\n            previousCategoryId: string;\n            /**\n             * ID of the category the post moved to.\n             */\n            currentCategoryId: string;\n        };\n        /**\n         * An object representing a post that was opened.\n         */\n        type OpenedPost = {\n            /**\n             * Post ID.\n             */\n            postId: string;\n        };\n        /**\n         * An object representing a post that was pinned.\n         */\n        type PinnedPost = {\n            /**\n             * Post ID.\n             */\n            postId: string;\n        };\n        /**\n         * An object representing a forum post.\n         */\n        type Post = {\n            /**\n             * Post ID.\n             */\n            _id: string;\n            /**\n             * ID of the post author.\n             */\n            _ownerId: string;\n            /**\n             * ID of the category the post belongs to.\n             */\n            categoryId: string;\n            /**\n             * Post title.\n             */\n            title: string;\n            /**\n             * Plain text of the post.\n             */\n            plainContent: string;\n            /**\n             * Whether the post is pinned. Only forum admins can pin and unpin posts.\n             */\n            pinned: boolean;\n            /**\n             * Whether comments are disabled for the post (the post was closed).\n             */\n            commentingDisabled: boolean;\n            /**\n             * Number of comments on the post.\n             */\n            commentCount: number;\n            /**\n             * Number of likes the post received.\n             */\n            likeCount: number;\n            /**\n             * Number of times the post was viewed.\n             */\n            viewCount: number;\n            /**\n             * Date and time the post was created.\n             */\n            _createdDate: Date;\n            /**\n             * Date and time the post was last edited.\n             */\n            _editedDate: Date;\n            /**\n             * Date and time of the last activity performed on the post.\n             */\n            _lastActivityDate: Date;\n            /**\n             * Relative URL of the post page.\n             */\n            pageUrl: string;\n            /**\n             * URL-friendly name of the post that is unique across the forum.\n             */\n            slug: string;\n            /**\n             * Type of post.\n             * One of the following:\n             *\n             *\n             *  + `\"DISCUSSION\"`: Conversational discussion with other members.\n             *  + `\"QUESTION\"`: Specific question with answers from the community.\n             */\n            postType: string;\n            /**\n             * ID of comment marked as best answer to the post question. Applicable only for posts with a `postType` of `\"QUESTION\"`.\n             */\n            bestAnswerCommentId: string;\n        };\n        /**\n         * An object representing a comment that was reported.\n         */\n        type ReportedComment = {\n            /**\n             * Comment ID.\n             */\n            commentId: string;\n            /**\n             * Type of report.\n             * One of the following:\n             *\n             *\n             *  + `\"OFFENSIVE_CONTENT\"`: Content that is offensive.\n             *  + `\"OFFENSIVE_MEDIA\"`: Media content that is offensive.\n             *  + `\"SPAM\"`: Comments with unrelated or unwanted information.\n             */\n            reportType: string;\n        };\n        /**\n         * An object representing a post that was reported.\n         */\n        type ReportedPost = {\n            /**\n             * Post ID.\n             */\n            postId: string;\n            /**\n             * Type of report.\n             * One of the following:\n             *\n             *\n             *  + `\"OFFENSIVE_CONTENT\"`: Content that is offensive.\n             *  + `\"OFFENSIVE_MEDIA\"`: Media content that is offensive.\n             *  + `\"SPAM\"`: Posts with unrelated or unwanted information.\n             */\n            reportType: string;\n        };\n        /**\n         * An object representing a comment that was unliked.\n         */\n        type UnlikedComment = {\n            /**\n             * Comment ID.\n             */\n            commentId: string;\n        };\n        /**\n         * An object representing a post that was unliked.\n         */\n        type UnlikedPost = {\n            /**\n             * Post ID.\n             */\n            postId: string;\n        };\n        /**\n         * An object representing a comment that was marked as best.\n         */\n        type UnmarkedAsBestComment = {\n            /**\n             * Comment ID.\n             */\n            commentId: string;\n        };\n        /**\n         * An object representing a post that was unpinned.\n         */\n        type UnpinnedPost = {\n            /**\n             * Post ID.\n             */\n            postId: string;\n        };\n        /**\n         * An object representing a comment that was unvoted.\n         */\n        type UnvotedComment = {\n            /**\n             * Comment ID.\n             */\n            commentId: string;\n        };\n        /**\n         * An object representing a category that was updated.\n         */\n        type UpdatedCategory = {\n            /**\n             * Category ID.\n             */\n            categoryId: string;\n            /**\n             * Forum category that was updated.\n             */\n            category: wix_forum_backend.Events.Category;\n        };\n        /**\n         * An object representing a comment that was updated.\n         */\n        type UpdatedComment = {\n            /**\n             * Comment ID.\n             */\n            commentId: string;\n            /**\n             * Forum comment that was updated.\n             */\n            comment: wix_forum_backend.Events.Comment;\n        };\n        /**\n         * An object representing a post that was updated.\n         */\n        type UpdatedPost = {\n            /**\n             * Post ID.\n             */\n            postId: string;\n            /**\n             * Forum post that was updated.\n             */\n            post: wix_forum_backend.Events.Post;\n        };\n        /**\n         * An object representing a comment that was upvoted.\n         */\n        type UpvotedComment = {\n            /**\n             * Comment ID.\n             */\n            commentId: string;\n        };\n    }\n}\ndeclare namespace wix_groups_backend.CreateRequests {\n    /**\n     * Contains functionality for refining a CreateRequests query.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-groups-backend.CreateRequests.CreateRequestsQueryBuilder.html#)\n     */\n    interface CreateRequestsQueryBuilder {\n        /**\n         * Adds a sort to a query, sorting by the specified properties in ascending order.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-groups-backend.CreateRequests.CreateRequestsQueryBuilder.html#ascending)\n         */\n        ascending(...propertyName: string[]): wix_groups_backend.CreateRequests.CreateRequestsQueryBuilder;\n        /**\n         * Adds a sort to a query, sorting by the specified properties in descending order.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-groups-backend.CreateRequests.CreateRequestsQueryBuilder.html#descending)\n         */\n        descending(...propertyName: string[]): wix_groups_backend.CreateRequests.CreateRequestsQueryBuilder;\n        /**\n         * Refines a query to match items whose specified property value equals the specified value.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-groups-backend.CreateRequests.CreateRequestsQueryBuilder.html#eq)\n         */\n        eq(propertyName: string, value: any): wix_groups_backend.CreateRequests.CreateRequestsQueryBuilder;\n        /**\n         * Returns the items that match the query.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-groups-backend.CreateRequests.CreateRequestsQueryBuilder.html#find)\n         */\n        find(options?: wix_groups_backend.Options): Promise<wix_groups_backend.CreateRequests.CreateRequestsQueryResult>;\n        /**\n         * Refines a query to match items whose specified property value contains any of the specified values.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-groups-backend.CreateRequests.CreateRequestsQueryBuilder.html#hasSome)\n         */\n        hasSome(propertyName: string, values: string[]): wix_groups_backend.CreateRequests.CreateRequestsQueryBuilder;\n        /**\n         * Limits the number of items the query returns.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-groups-backend.CreateRequests.CreateRequestsQueryBuilder.html#limit)\n         */\n        limit(limit: string): wix_groups_backend.CreateRequests.CreateRequestsQueryBuilder;\n        /**\n         * Refines a query to match items whose specified property value does not equal the specified value.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-groups-backend.CreateRequests.CreateRequestsQueryBuilder.html#ne)\n         */\n        ne(propertyName: string, value: any): wix_groups_backend.CreateRequests.CreateRequestsQueryBuilder;\n        /**\n         * Adds an `or` condition to the query.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-groups-backend.CreateRequests.CreateRequestsQueryBuilder.html#or)\n         */\n        or(query: wix_groups_backend.CreateRequests.CreateRequestsQueryBuilder): wix_groups_backend.CreateRequests.CreateRequestsQueryBuilder;\n        /**\n         * Sets the number of items to skip before returning query results.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-groups-backend.CreateRequests.CreateRequestsQueryBuilder.html#skip)\n         */\n        skip(skip: string): wix_groups_backend.CreateRequests.CreateRequestsQueryBuilder;\n    }\n    /**\n     * The results of a create request query, containing the retrieved items.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-groups-backend.CreateRequests.CreateRequestsQueryResult.html#)\n     */\n    interface CreateRequestsQueryResult {\n        /**\n         * Returns the index of the current results page number.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-groups-backend.CreateRequests.CreateRequestsQueryResult.html#currentPage)\n         */\n        readonly currentPage: number;\n        /**\n         * Returns the items that match the query.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-groups-backend.CreateRequests.CreateRequestsQueryResult.html#items)\n         */\n        readonly items: wix_groups_backend.CreateRequests.CreateRequest[];\n        /**\n         * Returns the number of items in the current results page.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-groups-backend.CreateRequests.CreateRequestsQueryResult.html#length)\n         */\n        readonly length: number;\n        /**\n         * Returns the query page size.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-groups-backend.CreateRequests.CreateRequestsQueryResult.html#pageSize)\n         */\n        readonly pageSize: number;\n        /**\n         * Returns the `CreateRequestsQueryBuilder` object used to get the current results.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-groups-backend.CreateRequests.CreateRequestsQueryResult.html#query)\n         */\n        readonly query: wix_groups_backend.CreateRequests.CreateRequestsQueryBuilder;\n        /**\n         * Returns the total number of items that match the query.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-groups-backend.CreateRequests.CreateRequestsQueryResult.html#totalCount)\n         */\n        readonly totalCount: number;\n        /**\n         * Returns the total number of pages the query produced.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-groups-backend.CreateRequests.CreateRequestsQueryResult.html#totalPages)\n         */\n        readonly totalPages: number;\n        /**\n         * Retrieves the next page of query results.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-groups-backend.CreateRequests.CreateRequestsQueryResult.html#next)\n         */\n        next(): Promise<wix_groups_backend.CreateRequests.CreateRequestsQueryResult>;\n        /**\n         * Retrieves the previous page of query results.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-groups-backend.CreateRequests.CreateRequestsQueryResult.html#prev)\n         */\n        prev(): Promise<wix_groups_backend.CreateRequests.CreateRequestsQueryResult>;\n    }\n}\ndeclare namespace wix_groups_backend {\n    /**\n     * The CreateRequests API provides functionality for managing requests to create a group.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-groups-backend.CreateRequests.html#)\n     */\n    interface CreateRequests {\n        /**\n         * Approves requests to create a group.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-groups-backend.CreateRequests.html#approveCreateRequests)\n         */\n        approveCreateRequests(createRequestIds: string[], options?: wix_groups_backend.Options): Promise<wix_groups_backend.CreateRequests.CreateRequest[]>;\n        /**\n         * Lists requests to create a group.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-groups-backend.CreateRequests.html#listCreateRequests)\n         */\n        listCreateRequests(paging?: wix_groups_backend.CreateRequests.Paging, options?: wix_groups_backend.Options): Promise<wix_groups_backend.CreateRequests.ListCreateRequests>;\n        /**\n         * Creates a query to retrieve a list of create requests.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-groups-backend.CreateRequests.html#queryCreateRequests)\n         */\n        queryCreateRequests(): wix_groups_backend.CreateRequests.CreateRequestsQueryBuilder;\n        /**\n         * Rejects requests to create a group.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-groups-backend.CreateRequests.html#rejectCreateRequests)\n         */\n        rejectCreateRequests(rejections: wix_groups_backend.CreateRequests.RejectCreateRequest[], options?: wix_groups_backend.Options): Promise<wix_groups_backend.CreateRequests.CreateRequest[]>;\n    }\n    namespace CreateRequests {\n        type CreateRequest = {\n            /**\n             * ID of the request to create a group. Same as group ID.\n             */\n            _id: string;\n            /**\n             * Status of the request to create a group.\n             * One of:\n             *  + `\"PENDING\"`\n             *  + `\"APPROVED\"`\n             *  + `\"REJECTED\"`\n             */\n            status: string;\n            /**\n             * Reason the request to create a group was rejected.\n             */\n            rejectionReason?: string;\n            /**\n             * Group requested to create.\n             */\n            group: wix_groups_backend.Group;\n        };\n        type ListCreateRequests = {\n            /**\n             * Requests to create a group.\n             */\n            createRequests: wix_groups_backend.CreateRequests.CreateRequest[];\n            /**\n             * Paging information.\n             */\n            metadata: wix_groups_backend.Metadata;\n        };\n        type Paging = {\n            /**\n             * Maximum number of create requests to retrieve. Defaults to 1,000.\n             */\n            limit?: number;\n            /**\n             * Number of create requests to skip in the list.\n             */\n            skip?: number;\n        };\n        type RejectCreateRequest = {\n            /**\n             * ID of the create request to reject.\n             */\n            createRequestId: string;\n            /**\n             * Reason the request to create a group was rejected. Max 1,000 characters. This text is displayed to the creator of the rejected request.\n             */\n            reason?: string;\n        };\n    }\n    /**\n     * The Groups API provides functionality for managing groups, including creating, deleting, updating, and querying groups.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-groups-backend.Groups.html#)\n     */\n    interface Groups {\n        /**\n         * Creates a group.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-groups-backend.Groups.html#createGroup)\n         */\n        createGroup(groupInfo: wix_groups_backend.Groups.GroupInfo, options?: wix_groups_backend.Options): Promise<wix_groups_backend.Group>;\n        /**\n         * Deletes a group.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-groups-backend.Groups.html#deleteGroup)\n         */\n        deleteGroup(groupId: string, options?: wix_groups_backend.Options): Promise<wix_groups_backend.Group>;\n        /**\n         * Gets a group by ID.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-groups-backend.Groups.html#getGroup)\n         */\n        getGroup(groupId: string, options?: wix_groups_backend.Options): Promise<wix_groups_backend.Group>;\n        /**\n         * Gets a group by slug.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-groups-backend.Groups.html#getGroupBySlug)\n         */\n        getGroupBySlug(slug: string, options?: wix_groups_backend.Options): Promise<wix_groups_backend.Group>;\n        /**\n         * Lists groups.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-groups-backend.Groups.html#listGroups)\n         */\n        listGroups(paging?: wix_groups_backend.Groups.Paging, options?: wix_groups_backend.Options): Promise<wix_groups_backend.Groups.ListGroups>;\n        /**\n         * Creates a query to retrieve a list of groups.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-groups-backend.Groups.html#queryGroups)\n         */\n        queryGroups(): wix_groups_backend.Groups.GroupsQueryBuilder;\n        /**\n         * Updates a group.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-groups-backend.Groups.html#updateGroup)\n         */\n        updateGroup(groupId: string, groupInfo: wix_groups_backend.Groups.GroupInfoUpdate, options?: wix_groups_backend.Options): Promise<wix_groups_backend.Group>;\n    }\n    namespace Groups {\n        type GroupInfo = {\n            /**\n             * Group name.\n             */\n            name: string;\n            /**\n             * Group description.\n             */\n            description?: string;\n            /**\n             * Group privacy level.\n             * One of:\n             * + `PUBLIC`: Site visitors can see the group and its content in the list of groups. Site members can join the group.\n             * + `PRIVATE`: Site visitors can see the group in the list of groups, but only group members can see its content. Site members can request to join the group.\n             * + `SECRET`: Only group members can see the group and its content in the list of groups. Site members can only join if invited by group admins, or other group members.\n             */\n            privacyStatus?: string;\n            /**\n             * Group cover image.\n             */\n            coverImage?: wix_groups_backend.CoverImage;\n            /**\n             * What group members are called. For example, 'Coworkers', 'Friends', or 'Students'.\n             */\n            memberTitle?: string;\n            /**\n             * Group settings.\n             */\n            settings?: wix_groups_backend.GroupSettings;\n            /**\n             * Site member ID of the group creator. Defaults to group creator. Required if using suppressAuth.\n             */\n            owner?: string;\n        };\n        /**\n         * Group to update.\n         */\n        type GroupInfoUpdate = {\n            /**\n             * Group name.\n             */\n            name?: string;\n            /**\n             * Group description.\n             */\n            description?: string;\n            /**\n             * Group privacy level.\n             * One of:\n             * + `PUBLIC`: Site visitors can see the group and its content in the list of groups. Site members can join the group.\n             * + `PRIVATE`: Site visitors can see the group in the list of groups, but only group members can see its content. Site members can request to join the group.\n             * + `SECRET`: Only group members can see the group and its content in the list of groups. Site members can only join if invited by group admins, or other group members.\n             */\n            privacyStatus?: string;\n            /**\n             * Group cover image.\n             */\n            coverImage?: wix_groups_backend.CoverImageOptions;\n            /**\n             * What group members are called. For example, 'Coworkers', 'Friends', or 'Students'.\n             */\n            memberTitle?: string;\n            /**\n             * Group settings.\n             */\n            settings?: wix_groups_backend.GroupSettingsOptions;\n            /**\n             * Site member ID of the group creator.\n             */\n            owner?: string;\n        };\n        type ListGroups = {\n            /**\n             * List of groups.\n             */\n            groups: wix_groups_backend.Group[];\n            /**\n             * Paging information.\n             */\n            metadata: wix_groups_backend.Metadata;\n        };\n        type Paging = {\n            /**\n             * Maximum number of groups to retrieve. Defaults to 1,000.\n             */\n            limit?: number;\n            /**\n             * Number of groups to skip in the list.\n             */\n            skip?: number;\n        };\n    }\n    /**\n     * The JoinRequests API provides functionality for managing requests to join a group.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-groups-backend.JoinRequests.html#)\n     */\n    interface JoinRequests {\n        /**\n         * Approves requests to join a group.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-groups-backend.JoinRequests.html#approveJoinRequests)\n         */\n        approveJoinRequests(identifiers: wix_groups_backend.JoinRequests.Identifiers, options?: wix_groups_backend.Options): Promise<wix_groups_backend.JoinRequests.JoinRequest[]>;\n        /**\n         * Lists requests to join a group.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-groups-backend.JoinRequests.html#listJoinRequests)\n         */\n        listJoinRequests(groupId: string, paging?: wix_groups_backend.JoinRequests.Paging, options?: wix_groups_backend.Options): Promise<wix_groups_backend.JoinRequests.ListJoinRequests>;\n        /**\n         * Creates a query to retrieve a list of join requests.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-groups-backend.JoinRequests.html#queryJoinRequests)\n         */\n        queryJoinRequests(): wix_groups_backend.JoinRequests.JoinRequestsQueryBuilder;\n        /**\n         * Rejects requests to join a group.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-groups-backend.JoinRequests.html#rejectJoinRequests)\n         */\n        rejectJoinRequests(groupId: string, rejections: wix_groups_backend.JoinRequests.Rejection[], options?: wix_groups_backend.Options): Promise<wix_groups_backend.JoinRequests.JoinRequest[]>;\n    }\n    namespace JoinRequests {\n        type Identifiers = {\n            /**\n             * ID of the group requested to join.\n             */\n            groupId: string;\n            /**\n             * IDs of the site members to approve.\n             */\n            memberIds: string[];\n        };\n        type JoinRequest = {\n            /**\n             * Site member ID of the requester.\n             */\n            memberId: string;\n            /**\n             * Date the site member requested to join the group.\n             */\n            _createdDate: Date;\n            /**\n             * Status of the request to join a group.\n             * One of:\n             * - `\"PENDING\"`\n             * - `\"APPROVED\"`\n             * - `\"REJECTED\"`\n             */\n            status: string;\n            /**\n             * Reason the request to join a group was rejected.\n             */\n            rejectionReason?: string;\n        };\n        type ListJoinRequests = {\n            /**\n             * Requests to join a group.\n             */\n            joinRequests: wix_groups_backend.JoinRequests.JoinRequest[];\n            /**\n             * Paging information.\n             */\n            metadata: wix_groups_backend.Metadata;\n        };\n        type Paging = {\n            /**\n             * Maximum number of join requests to retrieve. Defaults to 100.\n             */\n            limit?: number;\n            /**\n             * Number of join requests to skip in the list.\n             */\n            skip?: number;\n        };\n        type Rejection = {\n            /**\n             * ID of the site member to reject.\n             */\n            memberId: string;\n            /**\n             * Reason the request to join a group was rejected. Text written by the request reviewer that is displayed when the group is rejected (max 1,000 characters).\n             */\n            reason: string;\n        };\n    }\n    /**\n     * The Members API provides functionality for managing group members, inluding adding, removing, and querying group members.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-groups-backend.Members.html#)\n     */\n    interface Members {\n        /**\n         * Adds site members to a group.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-groups-backend.Members.html#addGroupMembers)\n         */\n        addGroupMembers(identifiers: wix_groups_backend.Members.IdentifiersAddGroupMembers, options?: wix_groups_backend.Options): Promise<wix_groups_backend.Members.GroupMember>;\n        /**\n         * Lists all members of a group.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-groups-backend.Members.html#listGroupMembers)\n         */\n        listGroupMembers(groupId: string, paging?: wix_groups_backend.Members.Paging, options?: wix_groups_backend.Options): Promise<wix_groups_backend.Members.ListGroupMembers>;\n        /**\n         * Lists all group memberships of a site member.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-groups-backend.Members.html#listMemberships)\n         */\n        listMemberships(memberId: string, paging?: wix_groups_backend.Members.PagingMemberships, options?: wix_groups_backend.Options): Promise<wix_groups_backend.Members.ListMemberships>;\n        /**\n         * Retrieves a list of up to 100 group members, given the provided paging, sorting and filtering.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-groups-backend.Members.html#queryGroupMembers)\n         */\n        queryGroupMembers(): wix_groups_backend.Members.GroupMembersQueryBuilder;\n        /**\n         * Retrieves a list of up to 100 memberships, given the provided paging, sorting and filtering.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-groups-backend.Members.html#queryMemberships)\n         */\n        queryMemberships(): wix_groups_backend.Members.GroupMembersQueryBuilder;\n        /**\n         * Removes members from a group.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-groups-backend.Members.html#removeGroupMembers)\n         */\n        removeGroupMembers(identifiers: wix_groups_backend.Members.IdentifiersRemoveGroupMembers, options?: wix_groups_backend.Options): Promise<void>;\n    }\n    namespace Members {\n        type GroupMember = {\n            /**\n             * Group member role.\n             * One of:\n             * - `\"MEMBER\"`: Group member.\n             * - `\"ADMIN\"`: Group admins.\n             */\n            role: string;\n            /**\n             * Site member ID of group member.\n             */\n            memberId: string;\n            /**\n             * Date and time the group member joined the group.\n             */\n            joinedDate: Date;\n        };\n        type IdentifiersAddGroupMembers = {\n            /**\n             * ID of the group.\n             */\n            groupId: string;\n            /**\n             * IDs of the site members to add to the group.\n             */\n            memberIds: string[];\n        };\n        type IdentifiersRemoveGroupMembers = {\n            /**\n             * ID of the group.\n             */\n            groupId: string;\n            /**\n             * IDs of the site members to remove from the group.\n             */\n            memberIds: string[];\n        };\n        type ListGroupMembers = {\n            /**\n             * Group members.\n             */\n            members: wix_groups_backend.Members.GroupMember[];\n            /**\n             * Paging information.\n             */\n            metadata: wix_groups_backend.Metadata;\n        };\n        type ListMemberships = {\n            /**\n             * Site member's memberships.\n             */\n            memberships: wix_groups_backend.Members.Membership[];\n            /**\n             * Paging information.\n             */\n            metadata: wix_groups_backend.Metadata;\n        };\n        type Membership = {\n            /**\n             * Group ID.\n             */\n            groupId: string;\n            /**\n             * Group membership status.\n             * One of:\n             * - `\"JOINED\"`\n             * - `\"PENDING\"`\n             */\n            status: string;\n            /**\n             * Group member role.\n             * One of:\n             * - `\"MEMBER\"`: Group member.\n             * - `\"ADMIN\"`: Group admins.\n             */\n            role: string;\n        };\n        type Paging = {\n            /**\n             * Maximum number of group members to retrieve. Defaults to 100.\n             */\n            limit?: number;\n            /**\n             * Number of group members to skip in the list.\n             */\n            skip?: number;\n        };\n        type PagingMemberships = {\n            /**\n             * Maximum number of memberships to retrieve. Defaults to 100.\n             */\n            limit?: number;\n            /**\n             * Number of memberships to skip in the list.\n             */\n            skip?: number;\n        };\n    }\n    /**\n     * The Roles API provides functionality for assigning and unassigning a role to a group member.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-groups-backend.Roles.html#)\n     */\n    interface Roles {\n        /**\n         * Assigns a role to group members.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-groups-backend.Roles.html#assignRole)\n         */\n        assignRole(identifiers: wix_groups_backend.Roles.Identifiers, role: string, options?: wix_groups_backend.Options): Promise<wix_groups_backend.Role>;\n        /**\n         * Unassigns a role from group members.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-groups-backend.Roles.html#unassignRole)\n         */\n        unassignRole(identifiers: wix_groups_backend.Roles.Identifiers, role: string, options?: wix_groups_backend.Options): Promise<wix_groups_backend.Role>;\n    }\n    namespace Roles {\n        type Identifiers = {\n            /**\n             * ID of the group.\n             */\n            groupId: string;\n            /**\n             * IDs of the site members.\n             */\n            memberIds: string[];\n        };\n    }\n    /**\n     * Group cover image.\n     */\n    type CoverImage = {\n        /**\n         * **Deprecated**. Use the `imageUrl` property instead.\n         *\n         * Group cover image. Only site admins or group admins can upload a group cover image.\n         */\n        image?: wix_groups_backend.Image;\n        /**\n         * Position of the group cover image relative to the uploaded image.\n         */\n        position?: wix_groups_backend.Position;\n        /**\n         * The group cover image's Wix media URL in the following format: `'wix:image://v1//#originWidth=&originHeight=[&watermark=]'`. Note that the URL contains the image's width and height.\n         *\n         * **Note:** This replaces the old `image` property. `image` will continue to work, but we recommend that you use the updated `imageUrl` property instead.\n         */\n        imageUrl?: string;\n    };\n    /**\n     * Group cover image.\n     */\n    type CoverImageOptions = {\n        /**\n         * **Deprecated**. Use the `imageUrl` property instead.\n         *\n         * Group cover image. Only site admins or group admins can upload a group cover image.\n         */\n        image?: wix_groups_backend.ImageOptions;\n        /**\n         * Position of the top left corner of the group cover image relative to the uploaded image.\n         */\n        position?: wix_groups_backend.PositionOptions;\n        /**\n         * The group cover image's Wix media URL in the following format: `'wix:image://v1//#originWidth=&originHeight=[&watermark=]'`. Note that the URL contains the image's width and height.\n         *\n         * **Note:** This replaces the old `image` property. `image` will continue to work, but we recommend that you use the updated `imageUrl` property instead.\n         */\n        imageUrl?: string;\n    };\n    type Group = {\n        /**\n         * Group ID.\n         */\n        _id: string;\n        /**\n         * Group name.\n         */\n        name: string;\n        /**\n         * Part of a group's URL, for example, `'https:/example.com/groups/{my-group-slug}'`. Generally based on the group name, but for secret groups it is\n         * an autogenerated string of characters, for example, `'https:/example.com/groups/{5D3yTX}'`. It is case-sensitive.\n         */\n        slug: string;\n        /**\n         * Group description.\n         */\n        description: string;\n        /**\n         * Group privacy level.\n         * One of:\n         * + `PUBLIC`: Site visitors can see the group and its content in the list of groups. Site members can join the group.\n         * + `PRIVATE`: Site visitors can see the group in the list of groups, but only group members can see its content. Site members can request to join the group.\n         * + `SECRET`: Only group members can see the group and its content in the list of groups. Site members can only join if invited by group admins, or other group members.\n         */\n        privacyStatus: string;\n        /**\n         * Group cover image.\n         */\n        coverImage?: wix_groups_backend.CoverImage;\n        /**\n         * What group members are called. For example, 'Coworkers', 'Friends', or 'Students'.\n         */\n        memberTitle?: string;\n        /**\n         * Number of members in the group.\n         */\n        memberCount: number;\n        /**\n         * Group settings.\n         */\n        settings: wix_groups_backend.GroupSettings;\n        /**\n         * Date and time the group was last active. For example, a post or comment.\n         */\n        lastActivityDate: Date;\n        /**\n         * Date and time the group was created.\n         */\n        _createdDate: Date;\n        /**\n         * Date and time the group was last updated.\n         */\n        _updatedDate: Date;\n        /**\n         * Site member ID of the group creator. Defaults to group creator.\n         */\n        owner: string;\n    };\n    /**\n     * Group settings.\n     */\n    type GroupSettings = {\n        /**\n         * Whether group members can send an email inviting others to join the group. When `false`, only site admins and group admins can invite others to join the group. Defaults to `false`.\n         */\n        membersCanInvite: boolean;\n        /**\n         * Whether group members can approve or reject requests to join a group. When `false`, only site admins and group admins can approve or reject requests to join the group. Defaults to `false`.\n         */\n        membersCanApprove: boolean;\n        /**\n         * Whether to create a daily group post welcoming new members. Defaults to `true`.\n         */\n        welcomeMemberPostEnabled: boolean;\n        /**\n         * Whether to create a group post when group details are changed. Defaults to `true`.\n         */\n        groupUpdatePostEnabled: boolean;\n        /**\n         * Whether group members can view the list of members in the group. Defaults to `true`.\n         */\n        showMemberList: boolean;\n    };\n    /**\n     * Group settings.\n     */\n    type GroupSettingsOptions = {\n        /**\n         * Whether group members can send an email inviting others to join the group. When `false`, only site admins and group admins can invite others to join the group. Defaults to `false`.\n         */\n        membersCanInvite?: boolean;\n        /**\n         * Whether group members can approve or reject requests to join a group. When `false`, only site admins and group admins can approve or reject requests to join the group. Defaults to `false`.\n         */\n        membersCanApprove?: boolean;\n        /**\n         * Whether to create a daily group post welcoming new members. Defaults to `true`.\n         */\n        welcomeMemberPostEnabled?: boolean;\n        /**\n         * Whether to create a group post when group details are changed. Defaults to `true`.\n         */\n        groupUpdatePostEnabled?: boolean;\n        /**\n         * Whether group members can view the list of members in the group. Defaults to `true`.\n         */\n        showMemberList?: boolean;\n    };\n    /**\n     * Group cover image. Only site admins or group admins can upload a group cover image.\n     */\n    type Image = {\n        /**\n         * **Deprecated**.\n         *\n         * Group cover image's file URL.\n         */\n        mediaId?: string;\n        /**\n         * **Deprecated**.\n         *\n         * Group cover image width.\n         */\n        width?: number;\n        /**\n         * **Deprecated**.\n         *\n         * Group cover image height.\n         */\n        height?: number;\n    };\n    /**\n     * Group cover image. Only site admins or group admins can upload a group cover image.\n     */\n    type ImageOptions = {\n        /**\n         * **Deprecated**.\n         *\n         * Group cover image's file URL.\n         */\n        mediaId?: string;\n        /**\n         * **Deprecated**.\n         *\n         * Group cover image width.\n         */\n        width?: number;\n        /**\n         * **Deprecated**.\n         *\n         * Group cover image height.\n         */\n        height?: number;\n    };\n    type Metadata = {\n        /**\n         * Number of items in the current results page.\n         */\n        length?: number;\n        /**\n         * Total number of items that match the query.\n         */\n        totalCount?: number;\n        /**\n         * Flag indicating that the server failed to calculate the 'total' field.\n         */\n        tooManyToCount?: boolean;\n    };\n    type Options = {\n        /**\n         * When `true`, prevents permission checks from running for the operation. Defaults to `false`.\n         */\n        suppressAuth?: boolean;\n    };\n    /**\n     * Position of the top left corner of the group cover image relative to the uploaded image.\n     */\n    type Position = {\n        /**\n         * Horizontal coordinate.\n         */\n        x?: number;\n        /**\n         * Vertical coordinate.\n         */\n        y?: number;\n    };\n    /**\n     * Position of the top left corner of the group cover image relative to the uploaded image.\n     */\n    type PositionOptions = {\n        /**\n         * Horizontal coordinate.\n         */\n        x?: number;\n        /**\n         * Vertical coordinate.\n         */\n        y?: number;\n    };\n    /**\n     * Group member role. When membership status is not `JOINED`, this is empty.\n     */\n    type Role = {\n        /**\n         * Group member role.\n         * One of:\n         * - `\"MEMBER\"`: Group member.\n         * - `\"ADMIN\"`: Group admin.\n         */\n        role: string;\n    };\n}\ndeclare namespace wix_groups_backend.Groups {\n    /**\n     * Contains functionality for refining a Groups query.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-groups-backend.Groups.GroupsQueryBuilder.html#)\n     */\n    interface GroupsQueryBuilder {\n        /**\n         * Adds a sort to a query, sorting by the specified properties in ascending order.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-groups-backend.Groups.GroupsQueryBuilder.html#ascending)\n         */\n        ascending(...propertyName: string[]): wix_groups_backend.Groups.GroupsQueryBuilder;\n        /**\n         * Refines a query to match items whose specified property value contains a specified string.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-groups-backend.Groups.GroupsQueryBuilder.html#contains)\n         */\n        contains(propertyName: string, value: string): wix_groups_backend.Groups.GroupsQueryBuilder;\n        /**\n         * Adds a sort to a query, sorting by the specified properties in descending order.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-groups-backend.Groups.GroupsQueryBuilder.html#descending)\n         */\n        descending(...propertyName: string[]): wix_groups_backend.Groups.GroupsQueryBuilder;\n        /**\n         * Refines a query to match items whose specified property value ends with a specified string.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-groups-backend.Groups.GroupsQueryBuilder.html#endsWith)\n         */\n        endsWith(propertyName: string, value: string): wix_groups_backend.Groups.GroupsQueryBuilder;\n        /**\n         * Refines a query to match items whose specified property value equals the specified value.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-groups-backend.Groups.GroupsQueryBuilder.html#eq)\n         */\n        eq(propertyName: string, value: any): wix_groups_backend.Groups.GroupsQueryBuilder;\n        /**\n         * Returns the items that match the query.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-groups-backend.Groups.GroupsQueryBuilder.html#find)\n         */\n        find(options?: wix_groups_backend.Options): Promise<wix_groups_backend.Groups.GroupsQueryResult>;\n        /**\n         * Refines a query to match items whose specified property value contains any of the specified values.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-groups-backend.Groups.GroupsQueryBuilder.html#hasSome)\n         */\n        hasSome(propertyName: string, values: string[]): wix_groups_backend.Groups.GroupsQueryBuilder;\n        /**\n         * Limits the number of items the query returns.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-groups-backend.Groups.GroupsQueryBuilder.html#limit)\n         */\n        limit(limit: string): wix_groups_backend.Groups.GroupsQueryBuilder;\n        /**\n         * Refines a query to match items whose specified property value does not equal the specified value.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-groups-backend.Groups.GroupsQueryBuilder.html#ne)\n         */\n        ne(propertyName: string, value: any): wix_groups_backend.Groups.GroupsQueryBuilder;\n        /**\n         * Adds an `or` condition to the query.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-groups-backend.Groups.GroupsQueryBuilder.html#or)\n         */\n        or(query: wix_groups_backend.Groups.GroupsQueryBuilder): wix_groups_backend.Groups.GroupsQueryBuilder;\n        /**\n         * Sets the number of items to skip before returning query results.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-groups-backend.Groups.GroupsQueryBuilder.html#skip)\n         */\n        skip(skip: string): wix_groups_backend.Groups.GroupsQueryBuilder;\n        /**\n         * Refines a query to match items whose specified property value starts with a specified string.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-groups-backend.Groups.GroupsQueryBuilder.html#startsWith)\n         */\n        startsWith(propertyName: string, value: string): wix_groups_backend.Groups.GroupsQueryBuilder;\n    }\n    /**\n     * The results of a create request query, containing the retrieved items.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-groups-backend.Groups.GroupsQueryResult.html#)\n     */\n    interface GroupsQueryResult {\n        /**\n         * Returns the index of the current results page number.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-groups-backend.Groups.GroupsQueryResult.html#currentPage)\n         */\n        readonly currentPage: number;\n        /**\n         * Returns the items that match the query.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-groups-backend.Groups.GroupsQueryResult.html#items)\n         */\n        readonly items: wix_groups_backend.Group[];\n        /**\n         * Returns the number of items in the current results page.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-groups-backend.Groups.GroupsQueryResult.html#length)\n         */\n        readonly length: number;\n        /**\n         * Returns the query page size.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-groups-backend.Groups.GroupsQueryResult.html#pageSize)\n         */\n        readonly pageSize: number;\n        /**\n         * Returns the `GroupsQueryBuilder` object used to get the current results.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-groups-backend.Groups.GroupsQueryResult.html#query)\n         */\n        readonly query: wix_groups_backend.Groups.GroupsQueryBuilder;\n        /**\n         * Returns the total number of items that match the query.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-groups-backend.Groups.GroupsQueryResult.html#totalCount)\n         */\n        readonly totalCount: number;\n        /**\n         * Returns the total number of pages the query produced.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-groups-backend.Groups.GroupsQueryResult.html#totalPages)\n         */\n        readonly totalPages: number;\n        /**\n         * Retrieves the next page of query results.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-groups-backend.Groups.GroupsQueryResult.html#next)\n         */\n        next(): Promise<wix_groups_backend.Groups.GroupsQueryResult>;\n        /**\n         * Retrieves the previous page of query results.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-groups-backend.Groups.GroupsQueryResult.html#prev)\n         */\n        prev(): Promise<wix_groups_backend.Groups.GroupsQueryResult>;\n    }\n}\ndeclare namespace wix_groups_backend.JoinRequests {\n    /**\n     * Contains functionality for refining a JoinRequests query.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-groups-backend.JoinRequests.JoinRequestsQueryBuilder.html#)\n     */\n    interface JoinRequestsQueryBuilder {\n        /**\n         * Refines a query to match items whose specified property value equals the specified value.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-groups-backend.JoinRequests.JoinRequestsQueryBuilder.html#eq)\n         */\n        eq(propertyName: string, value: any): wix_groups_backend.JoinRequests.JoinRequestsQueryBuilder;\n        /**\n         * Returns the items that match the query.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-groups-backend.JoinRequests.JoinRequestsQueryBuilder.html#find)\n         */\n        find(options?: wix_groups_backend.Options): Promise<wix_groups_backend.JoinRequests.JoinRequestsQueryResult>;\n        /**\n         * Refines a query to match items whose specified property value contains any of the specified values.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-groups-backend.JoinRequests.JoinRequestsQueryBuilder.html#hasSome)\n         */\n        hasSome(propertyName: string, values: string[]): wix_groups_backend.JoinRequests.JoinRequestsQueryBuilder;\n        /**\n         * Limits the number of items the query returns.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-groups-backend.JoinRequests.JoinRequestsQueryBuilder.html#limit)\n         */\n        limit(limit: string): wix_groups_backend.JoinRequests.JoinRequestsQueryBuilder;\n        /**\n         * Refines a query to match items whose specified property value does not equal the specified value.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-groups-backend.JoinRequests.JoinRequestsQueryBuilder.html#ne)\n         */\n        ne(propertyName: string, value: any): wix_groups_backend.JoinRequests.JoinRequestsQueryBuilder;\n        /**\n         * Adds an `or` condition to the query.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-groups-backend.JoinRequests.JoinRequestsQueryBuilder.html#or)\n         */\n        or(query: wix_groups_backend.JoinRequests.JoinRequestsQueryBuilder): wix_groups_backend.JoinRequests.JoinRequestsQueryBuilder;\n        /**\n         * Sets the number of items to skip before returning query results.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-groups-backend.JoinRequests.JoinRequestsQueryBuilder.html#skip)\n         */\n        skip(skip: string): wix_groups_backend.JoinRequests.JoinRequestsQueryBuilder;\n    }\n    /**\n     * The results of a create request query, containing the retrieved items.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-groups-backend.JoinRequests.JoinRequestsQueryResult.html#)\n     */\n    interface JoinRequestsQueryResult {\n        /**\n         * Returns the index of the current results page number.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-groups-backend.JoinRequests.JoinRequestsQueryResult.html#currentPage)\n         */\n        readonly currentPage: number;\n        /**\n         * Returns the items that match the query.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-groups-backend.JoinRequests.JoinRequestsQueryResult.html#items)\n         */\n        readonly items: wix_groups_backend.JoinRequests.JoinRequest[];\n        /**\n         * Returns the number of items in the current results page.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-groups-backend.JoinRequests.JoinRequestsQueryResult.html#length)\n         */\n        readonly length: number;\n        /**\n         * Returns the query page size.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-groups-backend.JoinRequests.JoinRequestsQueryResult.html#pageSize)\n         */\n        readonly pageSize: number;\n        /**\n         * Returns the `JoinRequestsQueryBuilder` object used to get the current results.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-groups-backend.JoinRequests.JoinRequestsQueryResult.html#query)\n         */\n        readonly query: wix_groups_backend.JoinRequests.JoinRequestsQueryBuilder;\n        /**\n         * Returns the total number of items that match the query.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-groups-backend.JoinRequests.JoinRequestsQueryResult.html#totalCount)\n         */\n        readonly totalCount: number;\n        /**\n         * Returns the total number of pages the query produced.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-groups-backend.JoinRequests.JoinRequestsQueryResult.html#totalPages)\n         */\n        readonly totalPages: number;\n        /**\n         * Retrieves the next page of query results.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-groups-backend.JoinRequests.JoinRequestsQueryResult.html#next)\n         */\n        next(): Promise<wix_groups_backend.JoinRequests.JoinRequestsQueryResult>;\n        /**\n         * Retrieves the previous page of query results.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-groups-backend.JoinRequests.JoinRequestsQueryResult.html#prev)\n         */\n        prev(): Promise<wix_groups_backend.JoinRequests.JoinRequestsQueryResult>;\n    }\n}\ndeclare namespace wix_groups_backend.Members {\n    /**\n     * Contains functionality for refining a Members query.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-groups-backend.Members.GroupMembersQueryBuilder.html#)\n     */\n    interface GroupMembersQueryBuilder {\n        /**\n         * Adds a sort to a query, sorting by the specified properties in ascending order.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-groups-backend.Members.GroupMembersQueryBuilder.html#ascending)\n         */\n        ascending(...propertyName: string[]): wix_groups_backend.Members.GroupMembersQueryBuilder;\n        /**\n         * Adds a sort to a query, sorting by the specified properties in descending order.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-groups-backend.Members.GroupMembersQueryBuilder.html#descending)\n         */\n        descending(...propertyName: string[]): wix_groups_backend.Members.GroupMembersQueryBuilder;\n        /**\n         * Refines a query to match items whose specified property value equals the specified value.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-groups-backend.Members.GroupMembersQueryBuilder.html#eq)\n         */\n        eq(propertyName: string, value: any): wix_groups_backend.Members.GroupMembersQueryBuilder;\n        /**\n         * Returns the items that match the query.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-groups-backend.Members.GroupMembersQueryBuilder.html#find)\n         */\n        find(options?: wix_groups_backend.Options): Promise<wix_groups_backend.Members.GroupMembersQueryResult>;\n        /**\n         * Limits the number of items the query returns.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-groups-backend.Members.GroupMembersQueryBuilder.html#limit)\n         */\n        limit(limit: string): wix_groups_backend.Members.GroupMembersQueryBuilder;\n        /**\n         * Refines a query to match items whose specified property value does not equal the specified value.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-groups-backend.Members.GroupMembersQueryBuilder.html#ne)\n         */\n        ne(propertyName: string, value: any): wix_groups_backend.Members.GroupMembersQueryBuilder;\n        /**\n         * Sets the number of items to skip before returning query results.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-groups-backend.Members.GroupMembersQueryBuilder.html#skip)\n         */\n        skip(skip: string): wix_groups_backend.Members.GroupMembersQueryBuilder;\n    }\n    /**\n     * The results of a create request query, containing the retrieved items.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-groups-backend.Members.GroupMembersQueryResult.html#)\n     */\n    interface GroupMembersQueryResult {\n        /**\n         * Returns the index of the current results page number.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-groups-backend.Members.GroupMembersQueryResult.html#currentPage)\n         */\n        readonly currentPage: number;\n        /**\n         * Returns the items that match the query.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-groups-backend.Members.GroupMembersQueryResult.html#items)\n         */\n        readonly items: wix_groups_backend.Members.GroupMember[];\n        /**\n         * Returns the number of items in the current results page.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-groups-backend.Members.GroupMembersQueryResult.html#length)\n         */\n        readonly length: number;\n        /**\n         * Returns the query page size.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-groups-backend.Members.GroupMembersQueryResult.html#pageSize)\n         */\n        readonly pageSize: number;\n        /**\n         * Returns the `GroupMembersQueryBuilder` object used to get the current results.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-groups-backend.Members.GroupMembersQueryResult.html#query)\n         */\n        readonly query: wix_groups_backend.Members.GroupMembersQueryBuilder;\n        /**\n         * Returns the total number of items that match the query.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-groups-backend.Members.GroupMembersQueryResult.html#totalCount)\n         */\n        readonly totalCount: number;\n        /**\n         * Returns the total number of pages the query produced.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-groups-backend.Members.GroupMembersQueryResult.html#totalPages)\n         */\n        readonly totalPages: number;\n        /**\n         * Retrieves the next page of query results.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-groups-backend.Members.GroupMembersQueryResult.html#next)\n         */\n        next(): Promise<wix_groups_backend.Members.GroupMembersQueryResult>;\n        /**\n         * Retrieves the previous page of query results.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-groups-backend.Members.GroupMembersQueryResult.html#prev)\n         */\n        prev(): Promise<wix_groups_backend.Members.GroupMembersQueryResult>;\n    }\n    /**\n     * Contains functionality for refining a Memberships query.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-groups-backend.Members.MembershipsQueryBuilder.html#)\n     */\n    interface MembershipsQueryBuilder {\n        /**\n         * Refines a query to match items whose specified property value equals the specified value.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-groups-backend.Members.MembershipsQueryBuilder.html#eq)\n         */\n        eq(propertyName: string, value: any): wix_groups_backend.Members.MembershipsQueryBuilder;\n        /**\n         * Returns the items that match the query.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-groups-backend.Members.MembershipsQueryBuilder.html#find)\n         */\n        find(options?: wix_groups_backend.Options): Promise<wix_groups_backend.Members.MembershipsQueryResult>;\n        /**\n         * Limits the number of items the query returns.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-groups-backend.Members.MembershipsQueryBuilder.html#limit)\n         */\n        limit(limit: string): wix_groups_backend.Members.MembershipsQueryBuilder;\n        /**\n         * Refines a query to match items whose specified property value does not equal the specified value.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-groups-backend.Members.MembershipsQueryBuilder.html#ne)\n         */\n        ne(propertyName: string, value: any): wix_groups_backend.Members.MembershipsQueryBuilder;\n        /**\n         * Sets the number of items to skip before returning query results.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-groups-backend.Members.MembershipsQueryBuilder.html#skip)\n         */\n        skip(skip: string): wix_groups_backend.Members.MembershipsQueryBuilder;\n    }\n    /**\n     * The results of a create request query, containing the retrieved items.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-groups-backend.Members.MembershipsQueryResult.html#)\n     */\n    interface MembershipsQueryResult {\n        /**\n         * Returns the index of the current results page number.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-groups-backend.Members.MembershipsQueryResult.html#currentPage)\n         */\n        readonly currentPage: number;\n        /**\n         * Returns the items that match the query.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-groups-backend.Members.MembershipsQueryResult.html#items)\n         */\n        readonly items: wix_groups_backend.Members.Membership[];\n        /**\n         * Returns the number of items in the current results page.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-groups-backend.Members.MembershipsQueryResult.html#length)\n         */\n        readonly length: number;\n        /**\n         * Returns the query page size.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-groups-backend.Members.MembershipsQueryResult.html#pageSize)\n         */\n        readonly pageSize: number;\n        /**\n         * Returns the `MembershipsQueryBuilder` object used to get the current results.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-groups-backend.Members.MembershipsQueryResult.html#query)\n         */\n        readonly query: wix_groups_backend.Members.MembershipsQueryBuilder;\n        /**\n         * Returns the total number of items that match the query.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-groups-backend.Members.MembershipsQueryResult.html#totalCount)\n         */\n        readonly totalCount: number;\n        /**\n         * Returns the total number of pages the query produced.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-groups-backend.Members.MembershipsQueryResult.html#totalPages)\n         */\n        readonly totalPages: number;\n        /**\n         * Retrieves the next page of query results.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-groups-backend.Members.MembershipsQueryResult.html#next)\n         */\n        next(): Promise<wix_groups_backend.Members.MembershipsQueryResult>;\n        /**\n         * Retrieves the previous page of query results.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-groups-backend.Members.MembershipsQueryResult.html#prev)\n         */\n        prev(): Promise<wix_groups_backend.Members.MembershipsQueryResult>;\n    }\n}\ndeclare namespace wix_http_functions.WixHttpFunctionRequest {\n    /**\n     * [Read more](https://www.wix.com/corvid/reference/wix-http-functions.WixHttpFunctionRequest.WixHttpFunctionRequestBody.html#)\n     */\n    interface WixHttpFunctionRequestBody {\n        /**\n         * Returns a Promise which resolves to the body of the call in binary as a Node.js [Buffer](https://nodejs.org/docs/latest-v14.x/api/buffer.html) object.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-http-functions.WixHttpFunctionRequest.WixHttpFunctionRequestBody.html#buffer)\n         */\n        buffer(): Promise<any>;\n        /**\n         * Returns a Promise which resolves to the body of the call as a JSON object.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-http-functions.WixHttpFunctionRequest.WixHttpFunctionRequestBody.html#json)\n         */\n        json(): Promise<any>;\n        /**\n         * Returns a Promise which resolves to the body of the call as a string.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-http-functions.WixHttpFunctionRequest.WixHttpFunctionRequestBody.html#text)\n         */\n        text(): Promise<string>;\n    }\n}\ndeclare namespace wix_http_functions {\n    /**\n     * An object representing an incoming request received by a call to an HTTP function.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-http-functions.WixHttpFunctionRequest.html#)\n     */\n    interface WixHttpFunctionRequest {\n        /**\n         * Returns the base URL of a call to an HTTP function.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-http-functions.WixHttpFunctionRequest.html#baseUrl)\n         */\n        readonly baseUrl: string;\n        /**\n         * Returns an object representing the body of the incoming call to an HTTP function.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-http-functions.WixHttpFunctionRequest.html#body)\n         */\n        readonly body: wix_http_functions.WixHttpFunctionRequest.WixHttpFunctionRequestBody;\n        /**\n         * Returns the function name of a call to an HTTP function.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-http-functions.WixHttpFunctionRequest.html#functionName)\n         */\n        readonly functionName: string;\n        /**\n         * Returns the HTTP header fields used in a call to an HTTP function.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-http-functions.WixHttpFunctionRequest.html#headers)\n         */\n        readonly headers: any;\n        /**\n         * Returns the IP address of the client who called the HTTP function.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-http-functions.WixHttpFunctionRequest.html#ip)\n         */\n        readonly ip: string;\n        /**\n         * Returns the HTTP method used in calling an HTTP function.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-http-functions.WixHttpFunctionRequest.html#method)\n         */\n        readonly method: string;\n        /**\n         * Returns the path of the URL used to call an HTTP function.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-http-functions.WixHttpFunctionRequest.html#path)\n         */\n        readonly path: string[];\n        /**\n         * Returns the query fields and values of the URL used to call an HTTP function.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-http-functions.WixHttpFunctionRequest.html#query)\n         */\n        readonly query: any;\n        /**\n         * Returns the full URL of a call to an HTTP function.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-http-functions.WixHttpFunctionRequest.html#url)\n         */\n        readonly url: string;\n    }\n    /**\n     * An object representing a response to an HTTP function request.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-http-functions.WixHttpFunctionResponse.html#)\n     */\n    interface WixHttpFunctionResponse {\n        /**\n         * Sets or gets the body of the response as a string, object or binary buffer.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-http-functions.WixHttpFunctionResponse.html#body)\n         */\n        body: string | Buffer | any;\n        /**\n         * Sets or gets the HTTP response header fields.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-http-functions.WixHttpFunctionResponse.html#headers)\n         */\n        headers: any;\n        /**\n         * Sets or gets the HTTP status code of the response.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-http-functions.WixHttpFunctionResponse.html#status)\n         */\n        status: number;\n    }\n    /**\n     * An object used to customize a response to an HTTP function call, including a HTTP response code you select.\n     */\n    type WixHttpFunctionCustomResponseOptions = {\n        /**\n         * The response's HTTP status code.\n         */\n        status?: number;\n        /**\n         * The response's body.\n         */\n        body?: string | Buffer | any;\n        /**\n         * The response's header fields. The `headers` property contains an object of `key:value` pairs where the `key` is the header field name and the `value` is the header field value.\n         */\n        headers?: any;\n    };\n    /**\n     * An object used to set up a standard response to an HTTP function call, including a pre-set (unchangeable) HTTP response code.\n     */\n    type WixHttpFunctionResponseOptions = {\n        /**\n         * The response's body.\n         */\n        body?: string | Buffer | any;\n        /**\n         * The response's header fields. The `headers` property contains an object of `key:value` pairs where the `key` is the header field name and the `value` is the header field value.\n         */\n        headers?: any;\n    };\n}\ndeclare namespace wix_marketing_backend {\n    /**\n     * The Coupons API is used to manage your site's coupons.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-marketing-backend.Coupons.html#)\n     */\n    interface Coupons {\n        /**\n         * Creates a new coupon.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-marketing-backend.Coupons.html#createCoupon)\n         */\n        createCoupon(couponInfo: wix_marketing_backend.Coupons.CouponInfo): Promise<wix_marketing_backend.Coupons.CouponId>;\n        /**\n         * Deletes an existing coupon.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-marketing-backend.Coupons.html#deleteCoupon)\n         */\n        deleteCoupon(couponId: string): Promise<void>;\n        /**\n         * Updates the specified fields of an existing coupon.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-marketing-backend.Coupons.html#updateCouponFields)\n         */\n        updateCouponFields(couponId: string, couponInfo: wix_marketing_backend.Coupons.CouponInfo): Promise<void>;\n    }\n    namespace Coupons {\n        /**\n         * An object representing coupon information.\n         */\n        type AppliedCoupon = {\n            /**\n             * Coupon ID.\n             */\n            _id: string;\n            /**\n             * Name of coupon.\n             */\n            name: string;\n            /**\n             * Coupon code. Must be unique for all coupons in your site. Maximum 20 characters.\n             */\n            code: string;\n            /**\n             * Coupon valid from.\n             */\n            startTime: Date;\n            /**\n             * Coupon expiration time.\n             */\n            expirationTime?: Date;\n            /**\n             * Maximum number of times a coupon can be used. Note that multiple purchases by the same customer or purchases by different customers are both counted toward usage limit.\n             */\n            usageLimit?: number;\n            /**\n             * Indicates whether the coupon is currently [active](https://support.wix.com/en/article/activating-and-deactivating-coupons-in-wix-stores).\n             */\n            active?: boolean;\n            /**\n             * Scope of the coupon. When no scope is defined, the coupon applies to all items in all `namespaces` in the site.\n             */\n            scope?: wix_marketing_backend.Coupons.CouponScope;\n            /**\n             * Coupon creation date.\n             */\n            _dateCreated: string;\n            /**\n             * Whether the coupon is expired.\n             */\n            expired?: boolean;\n            /**\n             * Coupon display data in the dashboard. Returned if the coupon is only valid for a specific product/booking/event.\n             */\n            displayData?: wix_marketing_backend.Coupons.DisplayData;\n            /**\n             * Coupon type. For example, \"PercentOff\", \"FreeShipping\", etc.\n             */\n            type: string;\n            /**\n             * Maximum number of times the coupon can be used **per customer**.\n             */\n            limitPerCustomer?: number;\n            /**\n             * Indicates whether the coupon is limited to 1 discount per order. If true and a customer pays for multiple items the coupon applies to, only the lowest priced item is discounted. Coupons with a `bookings` `namespace` are always limited to one item.\n             */\n            limitedToOneItem?: boolean;\n            /**\n             * The coupon is only applicable when the order subtotal is over this amount.\n             */\n            minimumSubtotal?: number;\n            /**\n             * Coupon type: Fixed price discount.\n             */\n            moneyOffAmount?: number;\n            /**\n             * Coupon type: Discount as a percentage.\n             */\n            percentOffRate?: number;\n            /**\n             * Coupon type: Specific sale price. Currently only supported for coupons with a `stores` `namespace`.\n             */\n            fixedPriceAmount?: number;\n            /**\n             * Coupon type: Free products when making a purchase. `buyXGetY` is an object that specifies `x` and `y` in the following scenario: if a visitor purchases x number of products, they receive y number of products for free. Currently only supported for coupons with a `stores` `namespace`.\n             */\n            buyXGetY?: wix_marketing_backend.Coupons.CouponTypeBuyXGetY;\n            /**\n             * Coupon type: Free shipping. If true, the coupon applies to all items in all `namespaces` in the site.\n             */\n            freeShipping?: boolean;\n        };\n        /**\n         * An object representing coupon information.\n         */\n        type Coupon = {\n            /**\n             * Coupon ID.\n             */\n            _id: string;\n            /**\n             * Name of coupon.\n             */\n            name: string;\n            /**\n             * Coupon code. Must be unique for all coupons in your site. Maximum 20 characters.\n             */\n            code: string;\n            /**\n             * Coupon valid from this date and time.\n             */\n            startTime: Date;\n            /**\n             * Coupon expires at this date and time.\n             */\n            expirationTime?: Date;\n            /**\n             * Maximum number of times a coupon can be used. Note that multiple purchases by the same customer or purchases by different customers are both counted toward usage limit.\n             */\n            usageLimit?: number;\n            /**\n             * Indicates whether the coupon is currently [active](https://support.wix.com/en/article/activating-and-deactivating-coupons-in-wix-stores).\n             */\n            active?: boolean;\n            /**\n             * Scope of the coupon. When no scope is defined, the coupon applies to all items in all `namespaces` in the site.\n             */\n            scope?: wix_marketing_backend.Coupons.CouponScope;\n            /**\n             * Coupon creation date.\n             */\n            _dateCreated: string;\n            /**\n             * Whether the coupon is expired.\n             */\n            expired?: boolean;\n            /**\n             * Coupon display data in the dashboard. Returned if the coupon is only valid for a specific product/booking/event.\n             */\n            displayData?: wix_marketing_backend.Coupons.DisplayData;\n            /**\n             * Coupon type. For example, \"PercentOff\", \"FreeShipping\", etc.\n             */\n            type: string;\n            /**\n             * Maximum number of times the coupon can be used **per customer**. Not supported by Wix Bookings.\n             */\n            limitPerCustomer?: number;\n            /**\n             * Indicates whether the coupon is limited to 1 discount per order. If true and a customer pays for multiple items the coupon applies to, only the lowest priced item is discounted. Coupons with a `bookings` `namespace` are always limited to one item.\n             */\n            limitedToOneItem?: boolean;\n            /**\n             * The coupon is only applicable when the order subtotal is over this amount.\n             */\n            minimumSubtotal?: number;\n            /**\n             * Coupon type: Fixed price discount.\n             */\n            moneyOffAmount?: number;\n            /**\n             * Coupon type: Discount as a percentage.\n             */\n            percentOffRate?: number;\n            /**\n             * Coupon type: Specific sale price. Currently only supported for coupons with a `stores` `namespace`.\n             */\n            fixedPriceAmount?: number;\n            /**\n             * Coupon type: Free products when making a purchase. `buyXGetY` is an object that specifies `x` and `y` in the following scenario: if a visitor purchases x number of products, they receive y number of products for free. Currently only supported for coupons with a `stores` `namespace`.\n             */\n            buyXGetY?: wix_marketing_backend.Coupons.CouponTypeBuyXGetY;\n            /**\n             * Coupon type: Free shipping. If true, the coupon applies to all items in all `namespaces` in the site.\n             */\n            freeShipping?: boolean;\n            /**\n             * ID of the app that created the coupon. Empty if created by the site owner.\n             */\n            appId?: string;\n            /**\n             * How many times the coupon was used.\n             */\n            numberOfUsages: number;\n        };\n        type CouponId = {\n            /**\n             * ID of the new coupon.\n             */\n            id: string;\n        };\n        /**\n         * An object representing information for creating or updating a coupon.\n         */\n        type CouponInfo = {\n            /**\n             * Name of coupon.\n             */\n            name: string;\n            /**\n             * Coupon code. Must be unique for all coupons in your site. Maximum 20 characters.\n             */\n            code: string;\n            /**\n             * Coupon valid from this date and time.\n             */\n            startTime: Date;\n            /**\n             * Coupon expires at this date and time.\n             */\n            expirationTime?: Date;\n            /**\n             * Maximum number of times a coupon can be used. Note that multiple purchases by the same customer or purchases by different customers are both counted toward usage limit.\n             */\n            usageLimit?: number;\n            /**\n             * Indicates whether the coupon is limited to 1 discount per order. If true and a customer pays for multiple items the coupon applies to, only the lowest priced item is discounted. Coupons with a `bookings` `namespace` are always limited to one item.\n             */\n            limitedToOneItem?: boolean;\n            /**\n             * Indicates whether the coupon is currently [active](https://support.wix.com/en/article/activating-and-deactivating-coupons-in-wix-stores).\n             */\n            active?: boolean;\n            /**\n             * The coupon is only applicable when the order subtotal is over this amount.\n             */\n            minimumSubtotal?: number;\n            /**\n             * Scope of the coupon. When no scope is defined, the coupon applies to all items in all `namespaces` in the site.\n             */\n            scope?: wix_marketing_backend.Coupons.CouponScope;\n            /**\n             * Coupon type: Fixed price discount.\n             */\n            moneyOffAmount?: number;\n            /**\n             * Coupon type: Discount as a percentage.\n             */\n            percentOffRate?: number;\n            /**\n             * Coupon type: Specific sale price. Currently only supported for coupons with a `stores` `namespace`.\n             */\n            fixedPriceAmount?: number;\n            /**\n             * Coupon type: Free products when making a purchase. `buyXGetY` is an object that specifies `x` and `y` in the following scenario: if a visitor purchases x number of products, they receive y number of products for free. Currently only supported for coupons with a `stores` `namespace`.\n             */\n            buyXGetY?: wix_marketing_backend.Coupons.CouponTypeBuyXGetY;\n            /**\n             * Coupon type: Free shipping. If true, the coupon applies to all items in all `namespaces` in the site.\n             */\n            freeShipping?: boolean;\n            /**\n             * Maximum number of times the coupon can be used **per customer**. Not supported by Wix Bookings.\n             */\n            limitPerCustomer?: number;\n            /**\n             * Whether the coupon applies to subscription products.\n             */\n            appliesToSubscriptions?: boolean;\n            /**\n             * Specifies the amount of cycles to apply the discount to for a subscription item.\n             *\n             * Can only be set when `appliesToSubscriptions` is `TRUE` and `scope.namespace` is `pricingPlans`.\n             * If `discountedCycleCount` is empty, the coupon applies to all available cycles.\n             *\n             * Min: `1`\n             * Max: `999`\n             */\n            discountedCycleCount?: number;\n        };\n        /**\n         * An object containing the scope of a coupon.\n         */\n        type CouponScope = {\n            /**\n             * Wix application for which the coupon is applicable.\n             * One of the following:\n             *\n             *  + `\"stores\"`\n             *  + `\"bookings\"`\n             *  + `\"events\"`\n             *  + `\"pricingPlans\"`\n             */\n            namespace: string;\n            /**\n             * Group within a `namespace` for which the coupon is applicable. If no group is specified, the coupon applies to all items in the namespace. `group` is required in some cases. See the table in [`createCoupon()`](#createCoupon) for a list of currently supported groups for each namespace.\n             */\n            group?: wix_marketing_backend.Coupons.ScopeGroup;\n        };\n        /**\n         * An object defining the number of purchases required and the number of free items received for a \"Buy X Get Y\" coupon type.\n         */\n        type CouponTypeBuyXGetY = {\n            /**\n             * Number of purchased items required to receive free items.\n             */\n            x: number;\n            /**\n             * Number of items received for free if required number of items were purchased.\n             */\n            y: number;\n        };\n        /**\n         * An object representing display data for the product associated with the coupon.\n         */\n        type DisplayData = {\n            /**\n             * Display name.\n             */\n            name: string;\n            /**\n             * Formatted price for display.\n             */\n            formattedPrice: string;\n            /**\n             * Media ID for the product associated with the coupon.\n             */\n            mediaItem: string;\n        };\n        /**\n         * An object specifying the group within a `CouponScope`\n         * `namespace` for which the coupon is applicable.\n         */\n        type ScopeGroup = {\n            /**\n             * Name of the group.\n             */\n            name: string;\n            /**\n             * ID of the specific item in the group for which the coupon is applicable. If no `entityId` is specified, the coupon applies to all items in the group. In some cases when a group is specified, an `entityId` is required. See the table in [`createCoupon()`](#createCoupon) for a list of currently supported entities for each namespace and group.\n             */\n            entityId?: string;\n        };\n    }\n    /**\n     * Events that are triggered by actions related to Wix Marketing.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-marketing-backend.Events.html#)\n     */\n    interface Events {\n        /**\n         * An event that is triggered when a coupon is used.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-marketing-backend.Events.html#onCouponApplied)\n         */\n        onCouponApplied(event: wix_marketing_backend.Events.CouponAppliedEvent): void;\n        /**\n         * An event that is triggered when a coupon is created.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-marketing-backend.Events.html#onCouponCreated)\n         */\n        onCouponCreated(event: wix_marketing_backend.Events.CouponEvent): void;\n        /**\n         * An event that is triggered when a coupon is deleted.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-marketing-backend.Events.html#onCouponDeleted)\n         */\n        onCouponDeleted(event: wix_marketing_backend.Events.CouponDeletedEvent): void;\n        /**\n         * An event that is triggered when a coupon is updated.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-marketing-backend.Events.html#onCouponUpdated)\n         */\n        onCouponUpdated(event: wix_marketing_backend.Events.CouponEvent): void;\n    }\n    namespace Events {\n        /**\n         * An object representing a custom coupon event.\n         */\n        type CouponAppliedEvent = {\n            /**\n             * Event metadata.\n             */\n            metadata: wix_marketing_backend.Events.Metadata;\n            /**\n             * Event data.\n             */\n            data: wix_marketing_backend.Events.Data;\n        };\n        type CouponAppliedEventBody = {\n            /**\n             * Applied coupon information.\n             */\n            coupon: wix_marketing_backend.Coupons.Coupon;\n            /**\n             * ID of app that applied the coupon (Stores, Bookings, Events).\n             */\n            wixAppId: string;\n            /**\n             * ID of the entity that the coupon was applied to (orderId, bookingId, etc.).\n             */\n            wixAppOrderId: string;\n        };\n        /**\n         * An object representing a custom coupon event.\n         */\n        type CouponDeletedEvent = {\n            /**\n             * Event metadata.\n             */\n            metadata: wix_marketing_backend.Events.Metadata;\n        };\n        /**\n         * An object representing a coupon event.\n         */\n        type CouponEvent = {\n            /**\n             * Event metadata.\n             */\n            metadata: wix_marketing_backend.Events.Metadata;\n            /**\n             * Coupon information.\n             */\n            entity: wix_marketing_backend.Coupons.Coupon;\n        };\n        /**\n         * An object representing a custom event's data.\n         */\n        type Data = {\n            /**\n             * Applied coupon information.\n             */\n            coupon: wix_marketing_backend.Coupons.Coupon;\n            /**\n             * ID of the entity that the coupon was applied to (orderId, bookingId, etc.).\n             */\n            wixAppOrderId: string;\n            /**\n             * ID of the Wix app that applied the coupon.\n             *  + Wix Stores: `1380b703-ce81-ff05-f115-39571d94dfcd`\n             *  + Wix Bookings: `13d21c63-b5ec-5912-8397-c3a5ddb27a97`\n             *  + Wix Events: `140603ad-af8d-84a5-2c80-a0f60cb47351`\n             */\n            wixAppId: string;\n        };\n        /**\n         * An object representing a coupon.\n         */\n        type Metadata = {\n            /**\n             * Event ID.\n             */\n            id: string;\n            /**\n             * Coupon ID associated with this event.\n             */\n            entityId: string;\n            /**\n             * Event timestamp.\n             */\n            eventTime: string;\n            /**\n             * Whether this event was triggered as a result of a privacy regulation application (for example, [GDPR](https://support.wix.com/en/article/gdpr-frequently-asked-questions)). For advanced users.\n             */\n            triggeredByAnonymizeRequest: boolean;\n        };\n    }\n}\ndeclare namespace wix_media_backend {\n    /**\n     * Events triggered by the Wix Media API.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-media-backend.Events.html#)\n     */\n    interface Events {\n        /**\n         * An event that triggers when an audio file has completed transcoding.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-media-backend.Events.html#onAudioTranscoded)\n         */\n        onAudioTranscoded(event: wix_media_backend.Events.FileEvent): void;\n        /**\n         * An event that triggers when a file has completed uploading.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-media-backend.Events.html#onFileUploaded)\n         */\n        onFileUploaded(event: wix_media_backend.Events.FileEvent): void;\n        /**\n         * An event that triggers when a video file has completed transcoding.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-media-backend.Events.html#onVideoTranscoded)\n         */\n        onVideoTranscoded(event: wix_media_backend.Events.FileEvent): void;\n    }\n    namespace Events {\n        /**\n         * An object representing an uploaded file and upload context.\n         */\n        type FileEvent = {\n            /**\n             * Information about the uploaded file.\n             */\n            fileInfo: wix_media_backend.MediaManager.FileInfo;\n            /**\n             * An object of key:value string pairs that was sent\n             *  when the file was uploaded.\n             */\n            context: any;\n        };\n    }\n    /**\n     * The `mediaManager` module contains functionality for working with\n     *  the media that is stored in your site's [Media Manager](https://support.wix.com/en/article/about-the-media-manager-568956).\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-media-backend.MediaManager.html#)\n     */\n    interface MediaManager {\n        /**\n         * Returns a download URL for downloading files from the Media Manager.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-media-backend.MediaManager.html#downloadFiles)\n         */\n        downloadFiles(fileUrls: string[]): Promise<string>;\n        /**\n         * Returns a download URL for downloading a folder from the Media Manager.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-media-backend.MediaManager.html#downloadFolder)\n         */\n        downloadFolder(folderId: string): Promise<string>;\n        /**\n         * Gets a temporary download URL with a token for a specified file in the Media Manager.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-media-backend.MediaManager.html#getDownloadUrl)\n         */\n        getDownloadUrl(fileUrl: string, expirationTime?: number, downloadedFileName?: string, expiredTokenRedirectUrl?: string): Promise<string>;\n        /**\n         * Gets a file's information from the Media Manager by `fileUrl`.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-media-backend.MediaManager.html#getFileInfo)\n         */\n        getFileInfo(fileUrl: string): Promise<wix_media_backend.MediaManager.FileInfo>;\n        /**\n         * **Deprecated.**\n         * This function will continue to work, but a newer version is available. Use the [`getDownloadUrl`](https://www.wix.com/velo/reference/wix-media-backend/mediamanager-obj/getdownloadurl) function instead.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-media-backend.MediaManager.html#getFileUrl)\n         */\n        getFileUrl(fileUrl: string): Promise<string>;\n        /**\n         * Gets a folder's information from the Media Manager by `folderId`.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-media-backend.MediaManager.html#getFolderInfo)\n         */\n        getFolderInfo(folderId: string): Promise<wix_media_backend.MediaManager.FolderInfo>;\n        /**\n         * Gets an upload URL for uploading a file to the media manager.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-media-backend.MediaManager.html#getUploadUrl)\n         */\n        getUploadUrl(path: string, options: wix_media_backend.MediaManager.UploadOptions): Promise<wix_media_backend.MediaManager.UploadUrl>;\n        /**\n         * Gets a video file's playback URL from the Media Manager.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-media-backend.MediaManager.html#getVideoPlaybackUrl)\n         */\n        getVideoPlaybackUrl(fileUrl: string, format: string): Promise<string>;\n        /**\n         * Imports a file to the Media Manager from a URL.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-media-backend.MediaManager.html#importFile)\n         */\n        importFile(path: string, url: string, options: wix_media_backend.MediaManager.UploadOptions): Promise<wix_media_backend.MediaManager.FileInfo>;\n        /**\n         * Gets a list of files from the Media Manager by `parentFolderId` (or root).\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-media-backend.MediaManager.html#listFiles)\n         */\n        listFiles(filters?: wix_media_backend.MediaManager.FileFilterOptions, sorting?: wix_media_backend.MediaManager.SortingOptions, paging?: wix_media_backend.MediaManager.PagingOptions): Promise<wix_media_backend.MediaManager.File[]>;\n        /**\n         * Gets a list of folders from the Media Manager by `parentFolderId` (or root).\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-media-backend.MediaManager.html#listFolders)\n         */\n        listFolders(filters?: wix_media_backend.MediaManager.FolderFilterOptions, sorting?: wix_media_backend.MediaManager.SortingOptions, paging?: wix_media_backend.MediaManager.PagingOptions): Promise<wix_media_backend.MediaManager.FolderInfo[]>;\n        /**\n         * Moves single or multiple files to the Media Manager's trash.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-media-backend.MediaManager.html#moveFilesToTrash)\n         */\n        moveFilesToTrash(fileUrls: string[]): Promise<void>;\n        /**\n         * Moves single or multiple folders, including their files and sub-folders, to the Media Manager's trash.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-media-backend.MediaManager.html#moveFoldersToTrash)\n         */\n        moveFoldersToTrash(folderIds: string[]): Promise<void>;\n        /**\n         * Uploads a file to the Media Manager from a [buffer](https://nodejs.org/api/buffer.html#buffer_static_method_buffer_from_string_encoding).\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-media-backend.MediaManager.html#upload)\n         */\n        upload(path: string, fileContent: Buffer, fileName: string, options: wix_media_backend.MediaManager.UploadOptions): Promise<wix_media_backend.MediaManager.FileInfo>;\n    }\n    namespace MediaManager {\n        /**\n         * An object containing information about the file that was listed.\n         */\n        type File = {\n            /**\n             * **Deprecated**. Use the `fileUrl` property instead.\n             *\n             * The `fileName` property is the internal name (unique identifier) which is generated when a file is uploaded by the Media Manager, returned from the [`importFile()`](#importFile), or [`upload()`](#upload) functions. The name is the string located in the file's URL. Click [here](https://www.wix.com/velo/forum/tips-tutorials-examples/creating-a-url-for-a-media-file-or-the-truth-about-getfileurl) to learn more. Use this name when calling the [`getFileInfo()`](#getFileInfo), [`getFileUrl()`](#getFileUrl),\n             * and [`getVideoPlaybackUrl()`](#getVideoPlaybackUrl) functions.\n             */\n            fileName: string;\n            /**\n             * The file's Wix media URL in the following format: `'wix:image://v1//#originWidth=&originHeight=[&watermark=]'`.\n             */\n            fileUrl: string;\n            /**\n             * File hash.\n             */\n            hash: string;\n            /**\n             * Size of the listed file in bytes.\n             */\n            sizeInBytes: number;\n            /**\n             * [Mime type](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types) of\n             *  the listed file.\n             */\n            mimeType: string;\n            /**\n             * Media type of the listed file.\n             *  One of:\n             *\n             *  + `\"audio\"`\n             *  + `\"document\"`\n             *  + `\"image\"`\n             *  + `\"shape\"`\n             *  + `\"video\"`\n             */\n            mediaType: string;\n            /**\n             * Whether the link to the listed file is\n             *  public or private. Private links require a token to be used.\n             */\n            isPrivate: boolean;\n            /**\n             * ID of the file's parent folder.\n             */\n            parentFolderId: string;\n            /**\n             * Original name of the uploaded file. This is the display name\n             *  that appears in the Media Manager.\n             */\n            originalFileName: string;\n            /**\n             * URL of the file's icon.\n             */\n            iconUrl: string;\n            /**\n             * List of labels assigned to the file by the Media Manager.\n             */\n            labels: string[];\n            /**\n             * Media height.\n             */\n            height: string;\n            /**\n             * Media width.\n             */\n            width: string;\n            /**\n             * Date the file was created.\n             */\n            _createdDate: Date;\n            /**\n             * Date the file was updated.\n             */\n            _updatedDate: Date;\n        };\n        /**\n         * File filter options.\n         */\n        type FileFilterOptions = {\n            /**\n             * ID of the parent folder of the files to list.\n             */\n            parentFolderId?: string;\n            /**\n             * Media type of the files to list. Leave blank to list files of all media types.\n             *  One of:\n             *\n             *  + `\"audio\"`\n             *  + `\"document\"`\n             *  + `\"image\"`\n             *  + `\"shape\"`\n             *  + `\"video\"`\n             */\n            mediaType?: string;\n            /**\n             * Whether the link to the files you want to list is public or private. Leave blank to include both public and private files.\n             */\n            isPrivate?: boolean;\n        };\n        /**\n         * An object containing information about the file that was uploaded.\n         */\n        type FileInfo = {\n            /**\n             * **Deprecated**. Use the `fileUrl` property instead.\n             *\n             * The `fileName` property is the internal name (unique identifier) which is generated when a file is uploaded by the Media Manager, returned from the [`importFile()`](#importFile), or [`upload()`](#upload) functions. The name is the string located in the file's URL. Click [here](https://www.wix.com/velo/forum/tips-tutorials-examples/creating-a-url-for-a-media-file-or-the-truth-about-getfileurl) to learn more. Use this name when calling the [`getFileInfo()`](#getFileInfo), [`getFileUrl()`](#getFileUrl),\n             * and [`getVideoPlaybackUrl()`](#getVideoPlaybackUrl) functions.\n             */\n            fileName: string;\n            /**\n             * The file's Wix media URL in the following format: `'wix:image://v1//#originWidth=&originHeight=[&watermark=]'`.\n             */\n            fileUrl: string;\n            /**\n             * File hash.\n             */\n            hash: string;\n            /**\n             * Size of the uploaded file in bytes.\n             */\n            sizeInBytes: number;\n            /**\n             * [Mime type](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types) of\n             *  the uploaded file.\n             */\n            mimeType: string;\n            /**\n             * Type of the file that was uploaded.\n             *  One of:\n             *\n             *  + `\"audio\"`\n             *  + `\"document\"`\n             *  + `\"image\"`\n             *  + `\"shape\"`\n             *  + `\"video\"`\n             */\n            mediaType: string;\n            /**\n             * Whether the link to the uploaded file is\n             *  public or private. Private links require a token to be used.\n             */\n            isPrivate: boolean;\n            /**\n             * ID of the file's parent folder.\n             */\n            parentFolderId: string;\n            /**\n             * Original name of the uploaded file. This is the display name\n             *  that appears in the Media Manager.\n             */\n            originalFileName: string;\n            /**\n             * Status of the file that was uploaded.\n             *  One of:\n             *\n             *  + `\"IN-DOWNLOAD-QUEUE\"`\n             *  + `\"IN-QUEUE\"`\n             *  + `\"READY\"`\n             */\n            opStatus: string;\n            /**\n             * URL where the file was uploaded from.\n             */\n            sourceURL: string;\n            /**\n             * URL of the file's icon.\n             */\n            iconUrl: string;\n            /**\n             * List of labels assigned to the file by the Media Manager.\n             */\n            labels: string[];\n            /**\n             * Media height.\n             */\n            height: string;\n            /**\n             * Media width.\n             */\n            width: string;\n            /**\n             * Date the file was created.\n             */\n            _createdDate: Date;\n            /**\n             * Date the file was updated.\n             */\n            _updatedDate: Date;\n        };\n        /**\n         * Folder filter options.\n         */\n        type FolderFilterOptions = {\n            /**\n             * ID of the parent folder of the folders to list.\n             */\n            parentFolderId?: string;\n        };\n        /**\n         * An object containing information about the folder.\n         */\n        type FolderInfo = {\n            /**\n             * ID of the folder. Internal name (unique identifier) which is generated when a folder is created by the Media Manager. Use this ID when calling the [`listFiles()`](#listFiles), and [`listFolders()`](#listFolders) functions.\n             */\n            folderId: string;\n            /**\n             * Name of the folder.\n             */\n            folderName: string;\n            /**\n             * ID of the folder's parent folder. Use this ID when calling the [`listFiles()`](#listFiles), and [`listFolders()`](#listFolders) functions.\n             */\n            parentFolderId: string;\n            /**\n             * Date the folder was created.\n             */\n            _createdDate: Date;\n            /**\n             * Date the folder was updated.\n             */\n            _updatedDate: Date;\n        };\n        /**\n         * An object containing information about the media options of a file to upload.\n         */\n        type MediaOptions = {\n            /**\n             * Type of file to upload.\n             *  One of:\n             *\n             *  + `\"audio\"`\n             *  + `\"document\"`\n             *  + `\"image\"`\n             *  + `\"shape\"`\n             *  + `\"video\"`\n             */\n            mediaType?: string;\n            /**\n             * [Mime type](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types) of\n             *  the file to import. The specified value must match the actual mime type of\n             *  the file's content.\n             */\n            mimeType?: string;\n        };\n        /**\n         * An object containing information about the metadata options of a file to upload.\n         */\n        type MetadataOptions = {\n            /**\n             * Whether the link to the uploaded file will\n             *  be public or private. Private links require a token to be used. Defaults to\n             *  `false`.\n             */\n            isPrivate?: boolean;\n            /**\n             * Indicates if the file was uploaded by a\n             *  site visitor. Files uploaded by visitors are tagged in the Media Manager as\n             *  being added by a visitor. Defaults to `true`.\n             */\n            isVisitorUpload?: boolean;\n            /**\n             * An object of key:value string pairs that is sent\n             *  back in the [`onFileUploaded()`](wix-media-backend.Events.html#onFileUploaded)\n             *  event.\n             */\n            context?: any;\n            /**\n             * In this case the fileName is the name you would like your file to appear as in the Media Manager.\n             */\n            fileName?: string;\n        };\n        /**\n         * Pagination options.\n         */\n        type PaginationOptions = {\n            /**\n             * Amount of records to retrieve.\n             */\n            limit?: number;\n            /**\n             * Number of records to skip.\n             */\n            skip?: number;\n        };\n        /**\n         * Paging options.\n         */\n        type PagingOptions = {\n            /**\n             * Amount of records to retrieve. Defaults to 20.\n             */\n            limit?: number;\n            /**\n             * Number of records to skip.\n             */\n            skip?: number;\n        };\n        /**\n         * Sorting options. **Note:** When sorting by `\"originalFileName\"`, folders and file names that begin with capital letters come before lowercase in '`asc`' order.\n         */\n        type SortOptions = {\n            /**\n             * Direction of sort: `\"asc\"` or `\"desc\"`. Defaults to `\"asc\"`.\n             */\n            order?: string;\n            /**\n             * Field to sort by: `\"folderName\"` or `\"_updatedDate\"`. Deafults to `\"_updatedDate\"`.\n             */\n            field?: string;\n        };\n        /**\n         * Sorting options. **Note:** When sorting by '`originalFileName`', folders and file names that begin with capital letters come before lowercase in '`asc`' order.\n         */\n        type SortingOptions = {\n            /**\n             * Direction of sort: `\"asc\"` or `\"desc\"`. Defaults to `\"asc\"`.\n             */\n            order?: string;\n            /**\n             * Field to sort by: `\"originalFileName\"` or `\"_updatedDate\"`. Defaults to `\"_updatedDate\"`.\n             */\n            field?: string;\n        };\n        /**\n         * An object containing information about the options of a file to upload.\n         */\n        type UploadOptions = {\n            /**\n             * Media options of the file to upload.\n             */\n            mediaOptions?: wix_media_backend.MediaManager.MediaOptions;\n            /**\n             * Metadata options of the file to upload.\n             */\n            metadataOptions?: wix_media_backend.MediaManager.MetadataOptions;\n        };\n        /**\n         * An object containing information about an upload URL.\n         */\n        type UploadUrl = {\n            /**\n             * The URL used for sending a POST or PUT request to upload a file to the Media Manager.\n             */\n            uploadUrl: string;\n            /**\n             * **Deprecated.** Use the `uploadUrl` property instead.\n             *\n             * The token to use with the file POST.\n             *\n             * **Note:** The `uploadToken` property returns empty, as the token is now included in the upload URL. The `uploadToken` property will continue to work, but we recommend that you use the updated `uploadUrl` parameter instead.\n             */\n            uploadToken: string;\n        };\n    }\n}\ndeclare namespace wix_members {\n    /**\n     * The Authentication API contains functionality for authenticating members from frontend code.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-members.Authentication.html#)\n     */\n    interface Authentication {\n        /**\n         * Logs the current member into the site using the given session token.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-members.Authentication.html#applySessionToken)\n         */\n        applySessionToken(sessionToken: string): Promise<void>;\n        /**\n         * Indicates whether the site visitor is a logged-in member.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-members.Authentication.html#loggedIn)\n         */\n        loggedIn(): boolean;\n        /**\n         * Logs a registered member in with an email and password.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-members.Authentication.html#login)\n         */\n        login(email: string, password: string): Promise<void>;\n        /**\n         * Logs the current member out of the site.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-members.Authentication.html#logout)\n         */\n        logout(): void;\n        /**\n         * Sets the function that runs when a member logs in.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-members.Authentication.html#onLogin)\n         */\n        onLogin(handler: wix_members.Authentication.LoginHandler): void;\n        /**\n         * Sets the function that runs when a member logs out.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-members.Authentication.html#onLogout)\n         */\n        onLogout(handler: wix_members.Authentication.LogoutHandler): void;\n        /**\n         * Prompts the current site visitor with a password reset modal.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-members.Authentication.html#promptForgotPassword)\n         */\n        promptForgotPassword(): Promise<void>;\n        /**\n         * Prompts the current visitor to log in as a site member.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-members.Authentication.html#promptLogin)\n         */\n        promptLogin(options?: wix_members.Authentication.LoginOptions): Promise<void>;\n        /**\n         * Registers a new site member.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-members.Authentication.html#register)\n         */\n        register(email: string, password: string, options?: wix_members.Authentication.RegistrationOptions): Promise<wix_members.Authentication.RegistrationResult>;\n        /**\n         * Sends a site member an email with a link to set their password.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-members.Authentication.html#sendSetPasswordEmail)\n         */\n        sendSetPasswordEmail(email: string, options?: wix_members.Authentication.SetPasswordEmailOptions): Promise<boolean>;\n    }\n    namespace Authentication {\n        /**\n         * An object that contains information about a site contact.\n         */\n        type ContactInfo = {\n            /**\n             * Contact's first name.\n             */\n            firstName?: string;\n            /**\n             * Contact's last name.\n             */\n            lastName?: string;\n            /**\n             * Contact's image source URL.\n             */\n            picture?: string;\n            /**\n             * List of contact's email addresses.\n             *  When creating a contact, if no phone number is\n             *  provided, at least 1 email address must be provided.\n             */\n            emails?: string[];\n            /**\n             * List of contact's phone numbers.\n             *  When creating a contact, if no email is\n             *  provided, at least 1 phone number must be provided.\n             */\n            phones?: string[];\n            /**\n             * List of contact's labels. [Labels](https://support.wix.com/en/article/creating-contact-labels)\n             *  are used to organize contacts. When setting the `labels` property, you can\n             *  only list labels that already exist in your site's [Contact List](https://support.wix.com/en/article/accessing-your-contact-list).\n             */\n            labels?: string[];\n            /**\n             * Contact's language.\n             */\n            language?: string;\n            /**\n             * Any\n             *  number of custom fields. [Custom fields](https://support.wix.com/en/article/adding-custom-fields-to-contacts)\n             *  are used to store additional information about your site's contacts. When\n             *  setting a custom field, use a key:value pair. The key must match one of the `key` properties of the [objects](wix-crm-backend/contacts/extendedfieldsqueryresult/items)\n             *  returned by [queryExtendedFields()](/wix-crm-backend/contacts/queryextendedfields) with the `custom.` prefix removed.\n             *  You can only set values for custom fields that already exist in the Contacts\n             *  application.\n             */\n            customFields?: string | number | Date;\n        };\n        type LoginEvent = {\n            /**\n             * Logged-in member.\n             */\n            member: wix_members_backend.Members.Member;\n        };\n        type LoginOptions = {\n            /**\n             * Whether to display the `\"login\"` or `\"signup\"` prompt.\n             *\n             * Defaults to `\"signup\"`.\n             */\n            mode?: string;\n            /**\n             * Whether the login form should be modal (`true`)\n             * or full screen (`false`).\n             *\n             * Defaults to `false` (full screen).\n             */\n            modal?: boolean;\n        };\n        /**\n         * An object that contains information about a site registration.\n         */\n        type RegistrationOptions = {\n            /**\n             * Contact information.\n             */\n            contactInfo?: wix_members.Authentication.ContactInfo;\n            /**\n             * Sets the [privacy status](https://support.wix.com/en/article/member-privacy-settings-for-groups) of a new member upon registration.\n             * One of:\n             *\n             *  - `\"PUBLIC\"`: Sets the new member status to public. A member whose status is public is a member of the site's community.\n             *  - `\"PRIVATE\"`: Sets the new member status to private. A member whose status is private is not a member of the site's community.\n             *\n             * Defaults to `\"PRIVATE\"`.\n             */\n            privacyStatus?: string;\n        };\n        type RegistrationResult = {\n            /**\n             * Registration status.\n             *\n             * One of:\n             *\n             * - `\"PENDING\"`: The member must be approved before they can log in to the site.\n             * - `\"ACTIVE\"`: The member is approved and can log in to the site.\n             */\n            status: string;\n            /**\n             * Token for approving the member\n             * with the [`approveByToken()`](wix-members-backend/authentication/approveByToken)\n             * function. `approvalToken` is safe to pass via email or from page code to\n             * backend code.\n             *\n             * Returned when `status` is `\"PENDING\"`.\n             */\n            approvalToken?: string;\n            /**\n             * The registered member.\n             *\n             * Returned when `status` is `\"ACTIVE\"`.\n             */\n            member?: wix_members.CurrentMember.Member;\n        };\n        type SetPasswordEmailOptions = {\n            /**\n             * Whether to hide the \"ignore this email\" message.\n             *\n             * If `false`, the email tells the member\n             * they can safely ignore\n             * if they did not request the password change.\n             *\n             * Defaults to `false`.\n             */\n            hideIgnoreMessage?: boolean;\n        };\n        type LoginHandler = (currentMember: wix_members.CurrentMember) => void;\n        type LogoutHandler = () => void;\n    }\n    /**\n     * The CurrentMember API contains functionality for viewing and managing site members from frontend code.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-members.CurrentMember.html#)\n     */\n    interface CurrentMember {\n        /**\n         * Retrieves the currently logged-in member.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-members.CurrentMember.html#getMember)\n         */\n        getMember(options?: wix_members.CurrentMember.FieldsetOptions): Promise<wix_members.CurrentMember.Member>;\n        /**\n         * Retrieves the member's roles.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-members.CurrentMember.html#getRoles)\n         */\n        getRoles(): Promise<wix_members.CurrentMember.Role[]>;\n        /**\n         * Removes the currently logged-in member from the site community and sets their profile to private.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-members.CurrentMember.html#makeProfilePrivate)\n         */\n        makeProfilePrivate(): Promise<wix_members.CurrentMember.Member>;\n        /**\n         * Joins the currently logged-in member to the site community and sets their profile to public.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-members.CurrentMember.html#makeProfilePublic)\n         */\n        makeProfilePublic(): Promise<wix_members.CurrentMember.Member>;\n    }\n    namespace CurrentMember {\n        type Address = {\n            /**\n             * Street address ID.\n             */\n            _id?: string;\n            /**\n             * Street address object, with number and name in separate fields.\n             */\n            streetAddress?: wix_members.CurrentMember.StreetAddress;\n            /**\n             * Main address line, usually street and number, as free text.\n             */\n            addressLine?: string;\n            /**\n             * Free text providing more detailed address information,\n             *  such as apartment, suite, or floor.\n             */\n            addressLine2?: string;\n            /**\n             * City name.\n             */\n            city?: string;\n            /**\n             * Code for a subdivision (such as state, prefecture, or province) in an\n             * [ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-2) format.\n             */\n            subdivision?: string;\n            /**\n             * 2-letter country code in an\n             * [ISO-3166 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) format.\n             */\n            country?: string;\n            /**\n             * Postal code.\n             */\n            postalCode?: string;\n        };\n        /**\n         * Member's contact information. Contact information is stored in the\n         */\n        type ContactDetails = {\n            /**\n             * Contact's first name.\n             */\n            firstName?: string;\n            /**\n             * Contact's last name.\n             */\n            lastName?: string;\n            /**\n             * List of phone numbers.\n             */\n            phones: string[];\n            /**\n             * List of email addresses.\n             */\n            emails: string[];\n            /**\n             * List of street addresses.\n             */\n            addresses: wix_members.CurrentMember.Address[];\n            /**\n             * Contact's birthdate, formatted as `\"YYYY-MM-DD\"`.\n             *\n             *  Example: `\"2020-03-15\"` for March 15, 2020.\n             */\n            birthdate?: string;\n            /**\n             * Contact's company name.\n             */\n            company?: string;\n            /**\n             * Contact's job title.\n             */\n            jobTitle?: string;\n            /**\n             * Custom fields,\n             * [structured as key:object pairs](wix-members/introduction#data-structure).\n             * Custom field keys are defined in the\n             * [Contacts Extended Fields API](wix-crm-backend/contacts).\n             * The paired object contains the `name` and `value` properties,\n             * where `name` is the display name and `value` is the value stored for the member.\n             *\n             * Only custom fields\n             * [added to the member profile in the Dashboard](https://www.wix.com/my-account/site-selector/?buttonText=Select%20Site&title=Select%20a%20Site&autoSelectOnSingleSite=true&actionUrl=https:%2F%2Fwww.wix.com%2Fdashboard%2F%7B%7BmetaSiteId%7D%7D%2Fmembers-account)\n             * are available through the Members API.\n             * Empty fields are not returned.\n             *\n             * When updating a member, `name` is ignored.\n             */\n            customFields: object;\n        };\n        type CustomField = {\n            /**\n             * Field display name.\n             */\n            name: string;\n            /**\n             * Value stored in the field.\n             */\n            value: string | number;\n        };\n        type FieldsetOptions = {\n            /**\n             * Predefined sets of fields to return.\n             * When multiple fieldsets are provided, the union of all the included fields is returned.\n             *\n             * Predefined fieldsets are one of:\n             *\n             * - `\"FULL\"`: Returns all fields.\n             * - `\"PUBLIC\"`: Returns `_id` and all fields under `profile`. With this fieldset, `profile.status`, `profile.privacyStatus`, and `profile.activityStatus` are returned as `\"UNKNOWN\"`.\n             *\n             * Defaults to `[ \"FULL\" ]`.\n             */\n            fieldsets: string[];\n        };\n        /**\n         * Member's profile photo.\n         */\n        type Image = {\n            /**\n             * **Deprecated.** Wix Media image ID,\n             *  set when the member selects an image from Wix Media.\n             */\n            _id: string;\n            /**\n             * Image URL.\n             */\n            url: string;\n            /**\n             * Original image width.\n             */\n            height: number;\n            /**\n             * Original image height.\n             */\n            width: number;\n            /**\n             * X-axis offset.\n             *\n             *  Defaults to `0`.\n             */\n            offsetX: number;\n            /**\n             * Y-axis offset.\n             *\n             *  Defaults to `0`.\n             */\n            offsetY: number;\n        };\n        /**\n         * Updated member.\n         */\n        type Member = {\n            /**\n             * Member ID.\n             */\n            _id: string;\n            /**\n             * Email used by the member to log in to the site.\n             */\n            loginEmail?: string;\n            /**\n             * Member site access status.\n             *\n             *\n             *\n             * One of:\n             *\n             * - `\"PENDING\"`: Member created and is waiting for approval by site owner.\n             * - `\"APPROVED\"`: Member can log in to the site.\n             * - `\"OFFLINE\"`: Member is a [guest author](https://support.wix.com/en/article/wix-blog-adding-guest-authors-to-your-blog) for the site blog and cannot log in to the site.\n             * - `\"BLOCKED\"`: Member is blocked and cannot log in to the site.\n             * - `\"UNKNOWN\"`: Insufficient permissions to get the status.\n             *\n             */\n            status: string;\n            /**\n             * Contact ID.\n             */\n            contactId: string;\n            /**\n             * Member privacy status.\n             *\n             *\n             *\n             *\n             * One of:\n             *\n             * - `\"PUBLIC\"`: Member is visible to everyone.\n             * - `\"PRIVATE\"`: Member is hidden from site visitors and other site members. Member is returned only to site contributors and apps with the appropriate permissions.\n             * - `\"UNKNOWN\"`: Insufficient permissions to get the status.\n             *\n             */\n            privacyStatus: string;\n            /**\n             * Member activity status.\n             *\n             *\n             *\n             *\n             * One of:\n             *\n             * - `\"ACTIVE\"`: Member can write forum posts and blog comments.\n             * - `\"MUTED\"`: Member cannot write forum posts or blog comments.\n             * - `\"UNKNOWN\"`: Insufficient permissions to get the status.\n             *\n             */\n            activityStatus: string;\n            /**\n             * Date and time when the member was created.\n             */\n            _createdDate: Date;\n            /**\n             * Date and time when the member was updated.\n             */\n            _updatedDate: Date;\n            /**\n             * Date and time when the member last logged in to the site.\n             */\n            lastLoginDate?: Date;\n            /**\n             * Member's contact information. Contact information is stored in the\n             * [Contact List](https://www.wix.com/my-account/site-selector/?buttonText=Select%20Site&title=Select%20a%20Site&autoSelectOnSingleSite=true&actionUrl=https:%2F%2Fwww.wix.com%2Fdashboard%2F%7B%7BmetaSiteId%7D%7D%2Fcontacts).\n             *\n             *\n             */\n            contactDetails?: wix_members.CurrentMember.ContactDetails;\n            /**\n             * Profile display info.\n             */\n            profile: wix_members.CurrentMember.Profile;\n        };\n        /**\n         * Profile display info.\n         */\n        type Profile = {\n            /**\n             * Name that identifies the member to other members.\n             * Displayed on the member's profile page\n             * and interactions in the forum or blog.\n             */\n            nickname: string;\n            /**\n             * Slug that determines the member's profile page URL.\n             */\n            slug: string;\n            /**\n             * Member's profile photo.\n             */\n            profilePhoto?: wix_members.CurrentMember.Image;\n            /**\n             * Member's profile photo.\n             */\n            coverPhoto?: wix_members.CurrentMember.Image;\n            /**\n             * Member title.\n             *\n             *\n             */\n            title?: string;\n        };\n        type Role = {\n            /**\n             * Role ID.\n             */\n            _id: string;\n            /**\n             * Role name as defined in the site's\n             *  [Member Permissions](https://www.wix.com/my-account/site-selector/?buttonText=Select%20Site&title=Select%20a%20Site&autoSelectOnSingleSite=true&actionUrl=https:%2F%2Fwww.wix.com%2Fdashboard%2F%7B%7BmetaSiteId%7D%7D%2Fmember-permissions/roles)\n             *  page or one of `\"Admin\"` or `\"Member\"`.\n             */\n            title: string;\n            /**\n             * Role description, if defined in the site's dashboard.\n             */\n            description?: string;\n            /**\n             * Role color, as defined in the site's\n             * [Member Permissions](https://www.wix.com/my-account/site-selector/?buttonText=Select%20Site&title=Select%20a%20Site&autoSelectOnSingleSite=true&actionUrl=https:%2F%2Fwww.wix.com%2Fdashboard%2F%7B%7BmetaSiteId%7D%7D%2Fmember-permissions/roles)\n             * page.\n             *\n             * One of:\n             *\n             * - `\"DARK_BLUE\"`\n             * - `\"LIGHT_BLUE\"`\n             * - `\"TEAL\"`\n             * - `\"LIGHT_GREEN\"`\n             * - `\"YELLOW\"`\n             * - `\"ORANGE\"`\n             * - `\"RED\"`\n             * - `\"VIOLET\"`\n             * - `\"PURPLE\"`\n             */\n            color: string;\n            /**\n             * Date and time the role was created.\n             */\n            _createdDate?: Date;\n        };\n        /**\n         * Street address object, with number and name in separate fields.\n         */\n        type StreetAddress = {\n            /**\n             * Street number.\n             */\n            number: string;\n            /**\n             * Street name.\n             */\n            name: string;\n        };\n    }\n}\ndeclare namespace wix_members_backend {\n    /**\n     * The Authentication API contains functionality for authenticating users from backend code.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-members-backend.Authentication.html#)\n     */\n    interface Authentication {\n        /**\n         * Approves a pending member using an email address.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-members-backend.Authentication.html#approveByEmail)\n         */\n        approveByEmail(email: string): Promise<string>;\n        /**\n         * Approves a pending member using an approval token.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-members-backend.Authentication.html#approveByToken)\n         */\n        approveByToken(token: string): Promise<string>;\n        /**\n         * Blocks a member from logging in to the site.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-members-backend.Authentication.html#blockByEmail)\n         */\n        blockByEmail(email: string): Promise<void>;\n        /**\n         * Changes a member's login email address.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-members-backend.Authentication.html#changeLoginEmail)\n         */\n        changeLoginEmail(memberId: string, newEmail: string): Promise<wix_members_backend.Members.Member>;\n        /**\n         * Creates a session token for a member authenticated by a 3rd party.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-members-backend.Authentication.html#generateSessionToken)\n         */\n        generateSessionToken(email: string): Promise<string>;\n        /**\n         * Logs a registered member in with an email and password.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-members-backend.Authentication.html#login)\n         */\n        login(email: string, password: string): Promise<string>;\n        /**\n         * Registers a new site member.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-members-backend.Authentication.html#register)\n         */\n        register(email: string, password: string, options?: wix_members_backend.Authentication.RegistrationOptions): Promise<wix_members_backend.Authentication.RegistrationResult>;\n        /**\n         * Sends a site member an email with a link to set their password.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-members-backend.Authentication.html#sendSetPasswordEmail)\n         */\n        sendSetPasswordEmail(email: string, options?: wix_members_backend.Authentication.SetPasswordEmailOptions): Promise<void>;\n    }\n    namespace Authentication {\n        /**\n         * An object that contains information about a site contact.\n         */\n        type ContactInfo = {\n            /**\n             * Contact's first name.\n             */\n            firstName?: string;\n            /**\n             * Contact's last name.\n             */\n            lastName?: string;\n            /**\n             * Contact's image source URL.\n             */\n            picture?: string;\n            /**\n             * List of contact's email addresses.\n             *  When creating a contact, if no phone number is\n             *  provided, at least 1 email address must be provided.\n             */\n            emails?: string[];\n            /**\n             * List of contact's phone numbers.\n             *  When creating a contact, if no email is\n             *  provided, at least 1 phone number must be provided.\n             */\n            phones?: string[];\n            /**\n             * List of contact's labels. [Labels](https://support.wix.com/en/article/creating-contact-labels)\n             *  are used to organize contacts. When setting the `labels` property, you can\n             *  only list labels that already exist in your site's [Contact List](https://support.wix.com/en/article/accessing-your-contact-list).\n             */\n            labels?: string[];\n            /**\n             * Contact's language.\n             */\n            language?: string;\n            /**\n             * Any\n             *  number of custom fields. [Custom fields](https://support.wix.com/en/article/adding-custom-fields-to-contacts)\n             *  are used to store additional information about your site's contacts. When\n             *  setting a custom field, use a key:value pair. The key must match one of the `key` properties of the [objects](wix-crm-backend/contacts/extendedfieldsqueryresult/items)\n             *  returned by [queryExtendedFields()](/wix-crm-backend/contacts/queryextendedfields) with the `custom.` prefix removed.\n             *  You can only set values for custom fields that already exist in the Contacts\n             *  application.\n             */\n            customFields?: string | number | Date;\n        };\n        /**\n         * An object that contains information about a site registration.\n         */\n        type RegistrationOptions = {\n            /**\n             * Contact information.\n             */\n            contactInfo?: wix_members_backend.Authentication.ContactInfo;\n            /**\n             * Sets the [privacy status](https://support.wix.com/en/article/member-privacy-settings-for-groups) of a new member upon registration.\n             * One of:\n             *\n             *  - `\"PUBLIC\"`: Sets the new member status to public. A member whose status is public is a member of the site's community.\n             *  - `\"PRIVATE\"`: Sets the new member status to private. A member whose status is private is not a member of the site's community.\n             *\n             * Defaults to `\"PRIVATE\"`.\n             */\n            privacyStatus?: string;\n        };\n        type RegistrationResult = {\n            /**\n             * Registration status.\n             *\n             * One of:\n             *\n             * - `\"PENDING\"`: The member must be approved before they can log in to the site.\n             * - `\"ACTIVE\"`: The member is approved and can log in to the site.\n             */\n            status: string;\n            /**\n             * Token for logging in the current visitor\n             *  as a site member with the\n             * [`applySessionToken()`](wix-members/authentication/applySessionToken)\n             *  function from wix-members.\n             *\n             * Returned when `status` is `\"ACTIVE\"`.\n             */\n            sessionToken?: string;\n            /**\n             * Token for approving the member\n             * with the [`approveByToken()`](wix-members-backend/authentication/approveByToken)\n             * function. `approvalToken` is safe to pass via email or from page code to\n             * backend code.\n             *\n             * Returned when `status` is `\"PENDING\"`.\n             */\n            approvalToken?: string;\n            /**\n             * The registered member.\n             */\n            member: wix_members_backend.Members.Member;\n        };\n        type SetPasswordEmailOptions = {\n            /**\n             * Whether to hide the \"ignore this email\" message.\n             *\n             * If `false`, the email tells the member\n             * they can safely ignore\n             * if they did not request the password change.\n             *\n             * Defaults to `false`.\n             */\n            hideIgnoreMessage?: boolean;\n        };\n    }\n    /**\n     * The Authorization API contains functionality for working with\n     * [member roles](https://support.wix.com/en/site-members/setting-your-members-permissions)\n     * from backend code.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-members-backend.Authorization.html#)\n     */\n    interface Authorization {\n        /**\n         * Assigns a role to a member.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-members-backend.Authorization.html#assignRole)\n         */\n        assignRole(roleId: string, memberId: string, options?: wix_members_backend.AuthOptions): Promise<void>;\n        /**\n         * Removes a role from a member.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-members-backend.Authorization.html#removeRole)\n         */\n        removeRole(roleId: string, memberId: string, options?: wix_members_backend.AuthOptions): Promise<void>;\n    }\n    /**\n     * The Badges API contains functionality for working with [member badges](https://support.wix.com/en/article/about-member-badges) from backend code.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-members-backend.Badges.html#)\n     */\n    interface Badges {\n        /**\n         * Assigns a badge to site members.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-members-backend.Badges.html#assignMembers)\n         */\n        assignMembers(badgeId: string, memberIds: string[]): Promise<string[]>;\n        /**\n         * Creates a badge.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-members-backend.Badges.html#createBadge)\n         */\n        createBadge(badgeInfo: wix_members_backend.Badges.BadgeInfo): Promise<wix_members_backend.Badges.Badge>;\n        /**\n         * Deletes a badge.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-members-backend.Badges.html#deleteBadge)\n         */\n        deleteBadge(badgeId: string): Promise<void>;\n        /**\n         * Lists the badges assigned to each of the specified site members.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-members-backend.Badges.html#listMemberBadges)\n         */\n        listMemberBadges(memberIds: string[]): Promise<wix_members_backend.Badges.MemberBadges[]>;\n        /**\n         * Lists the IDs of all members assigned to a badge.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-members-backend.Badges.html#listMembers)\n         */\n        listMembers(badgeId: string): Promise<string[]>;\n        /**\n         * Removes site members from an assigned badge.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-members-backend.Badges.html#removeMembers)\n         */\n        removeMembers(badgeId: string, memberIds: string[]): Promise<void>;\n        /**\n         * Updates a badge.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-members-backend.Badges.html#updateBadge)\n         */\n        updateBadge(badgeId: string, badgeInfo: wix_members_backend.Badges.BadgeInfo): Promise<wix_members_backend.Badges.Badge>;\n    }\n    namespace Badges {\n        /**\n         * An object representing a member badge.\n         */\n        type Badge = {\n            /**\n             * Badge ID.\n             */\n            _id: string;\n            /**\n             * Badge title.\n             */\n            title: string;\n            /**\n             * Badge's unique URL as used in a dynamic page.\n             */\n            slug: string;\n            /**\n             * Badge description.\n             */\n            description: string;\n            /**\n             * Badge background color as a hexadecimal RGB color value.\n             *\n             * Defaults to `\"#796EFF\"` (purple).\n             */\n            backgroundColor: string;\n            /**\n             * Badge text color as a hexadecimal RGB color value.\n             *\n             * Defaults to `\"#FFFFFF\"` (white).\n             */\n            textColor: string;\n            /**\n             * Badge icon as an SVG image. One of:\n             *\n             *   - An external web URL in the following format: `http(s)://`.\n             *   - The [source URL](wix-media-backend.mediaManager.html#getFileUrl) for a Wix Media Manager file.\n             *     Wix Media Manager file names in a `wix:image://...` format are not supported.\n             */\n            icon: string;\n            /**\n             * ID of the role that badge members are assigned to.\n             */\n            roleId: string;\n            /**\n             * Date and time the badge was created.\n             */\n            _createdDate: Date;\n            /**\n             * Date and time the badge was last updated.\n             */\n            _updatedDate: Date;\n        };\n        /**\n         * Information to use when creating or updating a badge.\n         */\n        type BadgeInfo = {\n            /**\n             * Badge title.\n             */\n            title: string;\n            /**\n             * Badge description.\n             */\n            description?: string;\n            /**\n             * Badge background color as a hexadecimal RGB color value.\n             *\n             * Defaults to `\"#796EFF\"` (purple).\n             */\n            backgroundColor?: string;\n            /**\n             * Badge text color as a hexadecimal RGB color value.\n             *\n             * Defaults to `\"#FFFFFF\"` (white).\n             */\n            textColor?: string;\n            /**\n             * Badge icon as an SVG image. One of:\n             *\n             *   - An external web URL in the following format: `http(s)://`.\n             *   - The [source URL](wix-media-backend.mediaManager.html#getFileUrl) for a Wix Media Manager file.\n             *     Wix Media Manager file names in a `wix:image://...` format are not supported.\n             */\n            icon?: string;\n        };\n        /**\n         * An object representing the badges associated with a member.\n         */\n        type MemberBadges = {\n            /**\n             * Member ID.\n             */\n            memberId: string;\n            /**\n             * List of badge IDs assigned to the member.\n             */\n            badgeIds: string[];\n        };\n    }\n    /**\n     * The CurrentMember API contains functionality for viewing and managing site members from backend code.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-members-backend.CurrentMember.html#)\n     */\n    interface CurrentMember {\n        /**\n         * Retrieves the currently logged-in member.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-members-backend.CurrentMember.html#getMember)\n         */\n        getMember(options?: wix_members_backend.Members.FieldsetOptions): Promise<wix_members_backend.Members.Member>;\n        /**\n         * Retrieves the member's roles.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-members-backend.CurrentMember.html#getRoles)\n         */\n        getRoles(): Promise<wix_members_backend.CurrentMember.Role[]>;\n        /**\n         * Removes the currently logged-in member from the site community and sets their profile to private.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-members-backend.CurrentMember.html#makeProfilePrivate)\n         */\n        makeProfilePrivate(): Promise<wix_members_backend.Members.Member>;\n        /**\n         * Joins the currently logged-in member to the site community and sets their profile to public.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-members-backend.CurrentMember.html#makeProfilePublic)\n         */\n        makeProfilePublic(): Promise<wix_members_backend.Members.Member>;\n        /**\n         * Changes the currently logged-in member's slug.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-members-backend.CurrentMember.html#updateSlug)\n         */\n        updateSlug(slug: string): Promise<wix_members_backend.Members.Member>;\n    }\n    namespace CurrentMember {\n        type Role = {\n            /**\n             * Role ID.\n             */\n            _id: string;\n            /**\n             * Role name as defined in the site's\n             *  [Member Permissions](https://www.wix.com/my-account/site-selector/?buttonText=Select%20Site&title=Select%20a%20Site&autoSelectOnSingleSite=true&actionUrl=https:%2F%2Fwww.wix.com%2Fdashboard%2F%7B%7BmetaSiteId%7D%7D%2Fmember-permissions/roles)\n             *  page or one of `\"Admin\"` or `\"Member\"`.\n             */\n            title: string;\n            /**\n             * Role description, if defined in the site's dashboard.\n             */\n            description?: string;\n            /**\n             * Role color, as defined in the site's\n             * [Member Permissions](https://www.wix.com/my-account/site-selector/?buttonText=Select%20Site&title=Select%20a%20Site&autoSelectOnSingleSite=true&actionUrl=https:%2F%2Fwww.wix.com%2Fdashboard%2F%7B%7BmetaSiteId%7D%7D%2Fmember-permissions/roles)\n             * page.\n             *\n             * One of:\n             *\n             * - `\"DARK_BLUE\"`\n             * - `\"LIGHT_BLUE\"`\n             * - `\"TEAL\"`\n             * - `\"LIGHT_GREEN\"`\n             * - `\"YELLOW\"`\n             * - `\"ORANGE\"`\n             * - `\"RED\"`\n             * - `\"VIOLET\"`\n             * - `\"PURPLE\"`\n             */\n            color: string;\n            /**\n             * Date and time the role was created.\n             */\n            _createdDate?: Date;\n        };\n    }\n    /**\n     * Events that are triggered by actions on a site's members.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-members-backend.Events.html#)\n     */\n    interface Events {\n        /**\n         * An event that is triggered when a site member is created.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-members-backend.Events.html#onMemberCreated)\n         */\n        onMemberCreated(event: wix_members_backend.Events.CreatedMemberEvent): void;\n        /**\n         * An event that is triggered when a site member is deleted.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-members-backend.Events.html#onMemberDeleted)\n         */\n        onMemberDeleted(event: wix_members_backend.Events.DeletedMemberEvent): void;\n        /**\n         * An event that is triggered when a site member's information is updated.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-members-backend.Events.html#onMemberUpdated)\n         */\n        onMemberUpdated(event: wix_members_backend.Events.UpdatedMemberEvent): void;\n    }\n    namespace Events {\n        /**\n         * An object representing the site member that was created.\n         */\n        type CreatedMemberEvent = {\n            /**\n             * Event metadata.\n             */\n            metadata: wix_members_backend.Events.EventMetadata;\n            /**\n             * Information about the created member.\n             */\n            entity: wix_members_backend.Members.Member;\n        };\n        /**\n         * An object representing the site member deletion event.\n         */\n        type DeletedMemberEvent = {\n            /**\n             * Event metadata.\n             */\n            metadata: wix_members_backend.Events.EventMetadata;\n        };\n        /**\n         * Event metadata.\n         */\n        type EventMetadata = {\n            /**\n             * Event ID.\n             */\n            id: string;\n            /**\n             * Member ID associated with this event.\n             */\n            entityId: string;\n            /**\n             * Event timestamp.\n             */\n            eventTime: string;\n            /**\n             * Whether the event was triggered as a result of a privacy regulation application (for example, [GDPR](https://support.wix.com/en/article/gdpr-frequently-asked-questions)). For advanced users.\n             */\n            triggeredByAnonymizeRequest?: boolean;\n        };\n        /**\n         * An object representing the site member whose information was updated.\n         */\n        type UpdatedMemberEvent = {\n            /**\n             * Event metadata.\n             */\n            metadata: wix_members_backend.Events.EventMetadata;\n            /**\n             * Information about the updated member.\n             */\n            entity: wix_members_backend.Members.Member;\n        };\n    }\n    /**\n     * The Members API contains functionality for viewing and managing site members from backend code.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-members-backend.Members.html#)\n     */\n    interface Members {\n        /**\n         * Deletes a member.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-members-backend.Members.html#deleteMember)\n         */\n        deleteMember(id: string): Promise<void>;\n        /**\n         * Deletes a member's street addresses.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-members-backend.Members.html#deleteMemberAddresses)\n         */\n        deleteMemberAddresses(id: string): Promise<wix_members_backend.Members.Member>;\n        /**\n         * Clears a member's email addresses.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-members-backend.Members.html#deleteMemberEmails)\n         */\n        deleteMemberEmails(id: string): Promise<wix_members_backend.Members.Member>;\n        /**\n         * Clears a member's phone numbers.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-members-backend.Members.html#deleteMemberPhones)\n         */\n        deleteMemberPhones(id: string): Promise<wix_members_backend.Members.Member>;\n        /**\n         * Retrieves a member by ID.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-members-backend.Members.html#getMember)\n         */\n        getMember(id: string, options?: wix_members_backend.Members.FieldsetOptions): Promise<wix_members_backend.Members.Member>;\n        /**\n         * Updates a member's properties.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-members-backend.Members.html#updateMember)\n         */\n        updateMember(id: string, member: wix_members_backend.Members.MemberInfo): Promise<wix_members_backend.Members.Member>;\n    }\n    namespace Members {\n        type Address = {\n            /**\n             * Street address ID.\n             */\n            _id?: string;\n            /**\n             * Street address object, with number and name in separate fields.\n             */\n            streetAddress?: wix_members_backend.Members.StreetAddress;\n            /**\n             * Main address line, usually street and number, as free text.\n             */\n            addressLine?: string;\n            /**\n             * Free text providing more detailed address information,\n             *  such as apartment, suite, or floor.\n             */\n            addressLine2?: string;\n            /**\n             * City name.\n             */\n            city?: string;\n            /**\n             * Code for a subdivision (such as state, prefecture, or province) in an\n             * [ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-2) format.\n             */\n            subdivision?: string;\n            /**\n             * 2-letter country code in an\n             * [ISO-3166 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) format.\n             */\n            country?: string;\n            /**\n             * Postal code.\n             */\n            postalCode?: string;\n        };\n        type AddressInfo = {\n            /**\n             * Street address object, with number and name in separate fields.\n             */\n            streetAddress?: wix_members_backend.Members.StreetAddressInfo;\n            /**\n             * Main address line, usually street and number, as free text.\n             */\n            addressLine?: string;\n            /**\n             * Free text providing more detailed address information,\n             *  such as apartment, suite, or floor.\n             */\n            addressLine2?: string;\n            /**\n             * City name.\n             */\n            city?: string;\n            /**\n             * Code for a subdivision (such as state, prefecture, or province) in an\n             * [ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-2) format.\n             */\n            subdivision?: string;\n            /**\n             * 2-letter country code in an\n             * [ISO-3166 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) format.\n             */\n            country?: string;\n            /**\n             * Postal code.\n             */\n            postalCode?: string;\n        };\n        /**\n         * Member's contact information. Contact information is stored in the\n         */\n        type ContactDetails = {\n            /**\n             * Contact's first name.\n             */\n            firstName?: string;\n            /**\n             * Contact's last name.\n             */\n            lastName?: string;\n            /**\n             * List of phone numbers.\n             */\n            phones: string[];\n            /**\n             * List of email addresses.\n             */\n            emails: string[];\n            /**\n             * List of street addresses.\n             */\n            addresses: wix_members_backend.Members.Address[];\n            /**\n             * Contact's birthdate, formatted as `\"YYYY-MM-DD\"`.\n             *\n             *  Example: `\"2020-03-15\"` for March 15, 2020.\n             */\n            birthdate?: string;\n            /**\n             * Contact's company name.\n             */\n            company?: string;\n            /**\n             * Contact's job title.\n             */\n            jobTitle?: string;\n            /**\n             * Custom fields,\n             * [structured as key:object pairs](wix-members-backend/introduction#data-structure).\n             * Custom field keys are defined in the\n             * [Contacts Extended Fields API](wix-crm-backend/contacts).\n             * The paired object contains the `name` and `value` properties,\n             * where `name` is the display name and `value` is the value stored for the member.\n             *\n             * Only custom fields\n             * [added to the member profile in the Dashboard](https://www.wix.com/my-account/site-selector/?buttonText=Select%20Site&title=Select%20a%20Site&autoSelectOnSingleSite=true&actionUrl=https:%2F%2Fwww.wix.com%2Fdashboard%2F%7B%7BmetaSiteId%7D%7D%2Fmembers-account)\n             * are available through the Members API.\n             * Empty fields are not returned.\n             *\n             * When updating a member, `name` is ignored.\n             */\n            customFields: object;\n        };\n        /**\n         * Member's contact information. Contact information is stored in the\n         * [Contact List](https://www.wix.com/my-account/site-selector/?buttonText=Select%20Site&title=Select%20a%20Site&autoSelectOnSingleSite=true&actionUrl=https:%2F%2Fwww.wix.com%2Fdashboard%2F%7B%7BmetaSiteId%7D%7D%2Fcontacts).\n         *\n         *\n         */\n        type ContactInfo = {\n            /**\n             * Contact's first name.\n             */\n            firstName?: string;\n            /**\n             * Contact's last name.\n             */\n            lastName?: string;\n            /**\n             * List of phone numbers.\n             */\n            phones?: string[];\n            /**\n             * List of email addresses.\n             */\n            emails?: string[];\n            /**\n             * List of street addresses.\n             */\n            addresses?: wix_members_backend.Members.AddressInfo[];\n            /**\n             * Contact's birthdate, formatted as `\"YYYY-MM-DD\"`.\n             *\n             *  Example: `\"2020-03-15\"` for March 15, 2020.\n             */\n            birthdate?: string;\n            /**\n             * Contact's company name.\n             */\n            company?: string;\n            /**\n             * Contact's job title.\n             */\n            jobTitle?: string;\n            /**\n             * Set of key-value pairs.\n             * Custom fields,\n             * where each key is the field key,\n             * and each value is the field's value for the member.\n             */\n            customFields?: any;\n        };\n        type CustomField = {\n            /**\n             * Field display name.\n             */\n            name: string;\n            /**\n             * Value stored in the field.\n             */\n            value: string | number;\n        };\n        type FieldsetOptions = {\n            /**\n             * Predefined sets of fields to return.\n             * When multiple fieldsets are provided, the union of all the included fields is returned.\n             *\n             * Predefined fieldsets are one of:\n             *\n             * - `\"FULL\"`: Returns all fields.\n             * - `\"PUBLIC\"`: Returns `_id` and all fields under `profile`. With this fieldset, `profile.status`, `profile.privacyStatus`, and `profile.activityStatus` are returned as `\"UNKNOWN\"`.\n             *\n             * Defaults to `[ \"PUBLIC\" ]`.\n             */\n            fieldsets: string[];\n        };\n        /**\n         * Member's profile photo.\n         */\n        type Image = {\n            /**\n             * **Deprecated.** Wix Media image ID,\n             *  set when the member selects an image from Wix Media.\n             */\n            _id: string;\n            /**\n             * Image URL.\n             */\n            url: string;\n            /**\n             * Original image width.\n             */\n            height: number;\n            /**\n             * Original image height.\n             */\n            width: number;\n            /**\n             * X-axis offset.\n             *\n             *  Defaults to `0`.\n             */\n            offsetX: number;\n            /**\n             * Y-axis offset.\n             *\n             *  Defaults to `0`.\n             */\n            offsetY: number;\n        };\n        /**\n         * Updated member.\n         */\n        type Member = {\n            /**\n             * Member ID.\n             */\n            _id: string;\n            /**\n             * Email used by the member to log in to the site.\n             */\n            loginEmail?: string;\n            /**\n             * Member site access status.\n             *\n             *\n             *\n             * One of:\n             *\n             * - `\"PENDING\"`: Member created and is waiting for approval by site owner.\n             * - `\"APPROVED\"`: Member can log in to the site.\n             * - `\"OFFLINE\"`: Member is a [guest author](https://support.wix.com/en/article/wix-blog-adding-guest-authors-to-your-blog) for the site blog and cannot log in to the site.\n             * - `\"BLOCKED\"`: Member is blocked and cannot log in to the site.\n             * - `\"UNKNOWN\"`: Insufficient permissions to get the status.\n             *\n             */\n            status: string;\n            /**\n             * Contact ID.\n             */\n            contactId: string;\n            /**\n             * Member privacy status.\n             *\n             *\n             *\n             *\n             * One of:\n             *\n             * - `\"PUBLIC\"`: Member is visible to everyone.\n             * - `\"PRIVATE\"`: Member is hidden from site visitors and other site members. Member is returned only to site contributors and apps with the appropriate permissions.\n             * - `\"UNKNOWN\"`: Insufficient permissions to get the status.\n             *\n             */\n            privacyStatus: string;\n            /**\n             * Member activity status.\n             *\n             *\n             *\n             *\n             * One of:\n             *\n             * - `\"ACTIVE\"`: Member can write forum posts and blog comments.\n             * - `\"MUTED\"`: Member cannot write forum posts or blog comments.\n             * - `\"UNKNOWN\"`: Insufficient permissions to get the status.\n             *\n             */\n            activityStatus: string;\n            /**\n             * Date and time when the member was created.\n             */\n            _createdDate: Date;\n            /**\n             * Date and time when the member was updated.\n             */\n            _updatedDate: Date;\n            /**\n             * Date and time when the member last logged in to the site.\n             */\n            lastLoginDate?: Date;\n            /**\n             * Member's contact information. Contact information is stored in the\n             * [Contact List](https://www.wix.com/my-account/site-selector/?buttonText=Select%20Site&title=Select%20a%20Site&autoSelectOnSingleSite=true&actionUrl=https:%2F%2Fwww.wix.com%2Fdashboard%2F%7B%7BmetaSiteId%7D%7D%2Fcontacts).\n             *\n             *\n             */\n            contactDetails?: wix_members_backend.Members.ContactDetails;\n            /**\n             * Profile display info.\n             */\n            profile: wix_members_backend.Members.Profile;\n        };\n        /**\n         * Member details to update.\n         */\n        type MemberInfo = {\n            /**\n             * Member's contact information. Contact information is stored in the\n             * [Contact List](https://www.wix.com/my-account/site-selector/?buttonText=Select%20Site&title=Select%20a%20Site&autoSelectOnSingleSite=true&actionUrl=https:%2F%2Fwww.wix.com%2Fdashboard%2F%7B%7BmetaSiteId%7D%7D%2Fcontacts).\n             *\n             *\n             */\n            contactDetails?: wix_members_backend.Members.ContactInfo;\n            /**\n             * Profile display info.\n             */\n            profile?: wix_members_backend.Members.ProfileInfo;\n        };\n        /**\n         * Profile display info.\n         */\n        type Profile = {\n            /**\n             * Name that identifies the member to other members.\n             * Displayed on the member's profile page\n             * and interactions in the forum or blog.\n             */\n            nickname: string;\n            /**\n             * Slug that determines the member's profile page URL.\n             */\n            slug: string;\n            /**\n             * Member's profile photo.\n             */\n            profilePhoto?: wix_members_backend.Members.Image;\n            /**\n             * Member's profile photo.\n             */\n            coverPhoto?: wix_members_backend.Members.Image;\n            /**\n             * Member title.\n             *\n             *\n             */\n            title?: string;\n        };\n        /**\n         * Member's profile photo.\n         */\n        type ProfileImageInfo = {\n            /**\n             * Wix Media image ID,\n             *  set when the member selects an image from Wix Media.\n             */\n            _id?: string;\n            /**\n             * Image URL.\n             */\n            url?: string;\n            /**\n             * Original image width.\n             */\n            height?: number;\n            /**\n             * Original image height.\n             */\n            width?: number;\n            /**\n             * X-axis offset.\n             *\n             *  Defaults to `0`.\n             */\n            offsetX?: number;\n            /**\n             * Y-axis offset.\n             *\n             *  Defaults to `0`.\n             */\n            offsetY?: number;\n        };\n        /**\n         * Profile display info.\n         */\n        type ProfileInfo = {\n            /**\n             * Name that identifies the member to other members.\n             * Displayed on the member's profile page\n             * and interactions in the forum or blog.\n             */\n            nickname?: string;\n            /**\n             * Member's profile photo.\n             */\n            profilePhoto?: wix_members_backend.Members.ProfileImageInfo;\n            /**\n             * Member's profile photo.\n             */\n            coverPhoto?: wix_members_backend.Members.ProfileImageInfo;\n            /**\n             * Member title.\n             *\n             *\n             */\n            title?: string;\n        };\n        /**\n         * Street address object, with number and name in separate fields.\n         */\n        type StreetAddress = {\n            /**\n             * Street number.\n             */\n            number: string;\n            /**\n             * Street name.\n             */\n            name: string;\n        };\n        /**\n         * Street address object, with number and name in separate fields.\n         */\n        type StreetAddressInfo = {\n            /**\n             * Street number.\n             */\n            number?: string;\n            /**\n             * Street name.\n             */\n            name?: string;\n        };\n    }\n    type AuthOptions = {\n        /**\n         * Prevents permission checks from running for the operation.\n         */\n        suppressAuth: boolean;\n    };\n}\ndeclare namespace wix_paid_plans_backend {\n    /**\n     * **Deprecated.**\n     *  The Wix paid plan events will continue to work, but a newer version is available at [wix-pricing-plans-backend](https://www.wix.com/velo/reference/wix-pricing-plans-backend/events).\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-paid-plans-backend.Events.html#)\n     */\n    interface Events {\n        /**\n         * **Deprecated.**\n         *  This event will continue to work, but a newer version is available at [`wix-pricing-plans-backend.events.onPlanPurchased()`](wix-pricing-plans-backend/events/onplanpurchased).\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-paid-plans-backend.Events.html#onPlanPurchased)\n         */\n        onPlanPurchased(event: wix_paid_plans_backend.Events.PlanPurchasedEvent): void;\n    }\n    namespace Events {\n        /**\n         * An object representing a new pricing plan order (subscription).\n         */\n        type Order = {\n            /**\n             * Order ID of the purchase of the plan, auto-generated when an order is created.\n             */\n            id: string;\n            /**\n             * Status of the payment for the plan. Can be `PAID`, `REFUNDED`, `FAILED`, `UNPAID`, and `PAYMENT_STATUS_UNDEFINED`.\n             */\n            paymentStatus: string;\n            /**\n             * Date and time until which the plan is valid.\n             */\n            validUntil: Date;\n            /**\n             * Object containing the price of the plan.\n             */\n            price: wix_paid_plans_backend.Events.Price;\n            /**\n             * If the plan is cancelled, the reason why. One of:\n             *\n             *  + `OWNER_CANCELED`: The owner cancelled.\n             *  + `PAYMENT_PROVIDER_CANCELED`: The payment provider cancelled.\n             *  + `PAYMENT_FAILED`: The payment failed.\n             *  + `UOU_CANCELED`: The site member cancelled.\n             *  + `CANCELLATION_REASON_UNDEFINED`: The reason is undefined.\n             */\n            cancellationReason: string;\n            /**\n             * If the plan is cancelled, the cause of the cancellation. One of:\n             *\n             *  + `\"UNDEFINED\"`: Cancellation initiator undefined.\n             *  + `\"OWNER\"`: Order (subscription) was canceled by site owner.\n             *  + `\"MEMBER\"`: Order (subscription) was canceled by member.\n             *  + `\"PAYMENT_FAILURE\"`: Subscription was canceled because of payment failure.\n             *  + `\"SETUP_FAILURE\"`: Subscription was canceled because of payment setup failure.\n             */\n            cancellationInitiator: string;\n            /**\n             * Date and time from which the plan is valid.\n             */\n            validFrom: Date;\n            /**\n             * Name of the plan.\n             */\n            planName: string;\n            /**\n             * ID of the plan for Wix Pay. If plan is free, this ID is blank.\n             */\n            wixPayOrderId: string;\n            /**\n             * If the plan is recurring. If true, the price is deducted weekly, monthly, or yearly.\n             */\n            recurring: boolean;\n            /**\n             * Date and time the order was created.\n             */\n            dateCreated: Date;\n            /**\n             * Status of the order. Can be `ACTIVE`, `PENDING`, `CANCELED`, `EXPIRED`, `PENDING_CANCELLATION`, and `ORDER_STATUS_UNDEFINED`.\n             */\n            status: string;\n            /**\n             * Description of the plan.\n             */\n            planDescription: string;\n            /**\n             * ID for the member who purchased the plan.\n             */\n            memberId: string;\n            /**\n             * How the plan was purchased, either `ONLINE` pr `OFFLINE`.\n             */\n            orderType: string;\n            /**\n             * ID of the plan.\n             */\n            planId: string;\n            /**\n             * Object containing properties about how long the plan is valid.\n             */\n            validFor: wix_paid_plans_backend.Events.ValidFor;\n            /**\n             * How many trial days were given to the subscriber of the plan. Available only for orders whose plans are recurring, meaning plans whose pricing model is `subscription`.\n             */\n            freeTrialDays?: number;\n            /**\n             * Role assigned after purchasing the plan.\n             */\n            roleId: string;\n        };\n        /**\n         * An object representing the period for which a plan is valid.\n         */\n        type Period = {\n            /**\n             * The number of units until the plan expires.\n             */\n            amount: number;\n            /**\n             * Time period for billing the plan, such as `MONTH`.\n             */\n            unit: string;\n        };\n        /**\n         * An object representing a new pricing plan purchase.\n         */\n        type PlanPurchasedEvent = {\n            /**\n             * Object containing the details about the plan's order.\n             */\n            order: wix_paid_plans_backend.Events.Order;\n        };\n        /**\n         * An object representing the price of a purchased plan.\n         */\n        type Price = {\n            /**\n             * Payment currency. A three-letter\n             *  [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217) currency code.\n             */\n            currency: string;\n            /**\n             * The cost of the plan.\n             */\n            amount: number;\n        };\n        /**\n         * An object representing how long a plan is valid.\n         */\n        type ValidFor = {\n            /**\n             * If true, the plan does not expire.\n             */\n            forever: boolean;\n            /**\n             * Object containing the period for which the plan is valid.\n             */\n            period: wix_paid_plans_backend.Events.Period;\n        };\n    }\n}\ndeclare namespace wix_paid_plans {\n    /**\n     * An object representing a pricing plan order (subscription).\n     */\n    type Order = {\n        /**\n         * Order ID of the purchase of the plan, auto-generated when an order is created.\n         */\n        id: string;\n        /**\n         * Status of the payment for the plan. Can be `PAID`, `FAILED`, `UNPAID`, and `PAYMENT_STATUS_UNDEFINED`.\n         */\n        paymentStatus: string;\n        /**\n         * Date and time until which the plan is valid.\n         */\n        validUntil: Date;\n        /**\n         * Object containing the price of the plan.\n         */\n        price: wix_paid_plans.Price;\n        /**\n         * If the plan is cancelled, the cause of the cancellation. One of:\n         *\n         *  + `\"UNDEFINED\"`: Cancellation initiator unknown.\n         *  + `\"OWNER\"`: Order (subscription) was canceled by site owner.\n         *  + `\"MEMBER\"`: Order (subscription) was canceled by member.\n         *  + `\"PAYMENT_FAILURE\"`: Subscription was canceled because of payment failure.\n         *  + `\"SETUP_FAILURE\"`: Subscription was canceled because of payment setup failure.\n         */\n        cancellationInitiator: string;\n        /**\n         * Date and time from which the plan is valid.\n         */\n        validFrom: Date;\n        /**\n         * Name of the plan.\n         */\n        planName: string;\n        /**\n         * ID of the plan for Wix Pay. If plan is free, this ID is blank.\n         */\n        wixPayOrderId: string;\n        /**\n         * If the plan is recurring. If true, the price is deducted weekly, monthly, or yearly.\n         */\n        recurring: boolean;\n        /**\n         * Date and time the order was created.\n         */\n        dateCreated: Date;\n        /**\n         * Status of the order. Can be `ACTIVE`, `PENDING`, `CANCELED`, `EXPIRED`, `PENDING_CANCELLATION`, and `ORDER_STATUS_UNDEFINED`.\n         */\n        status: string;\n        /**\n         * Description of the plan.\n         */\n        planDescription: string;\n        /**\n         * ID for the member who purchased the plan.\n         */\n        memberId: string;\n        /**\n         * How the plan was purchased, either `ONLINE` or `OFFLINE`.\n         */\n        orderType: string;\n        /**\n         * ID of the plan.\n         */\n        planId: string;\n        /**\n         * Object containing properties about how long the plan is valid.\n         */\n        validFor: wix_paid_plans.ValidFor;\n        /**\n         * How many trial days were given to the subscriber of the plan.  Available only for orders whose plans are recurring, meaning plans whose pricing model is `subscription`.\n         */\n        freeTrialDays?: number;\n        /**\n         * Role assigned after purchasing the plan.\n         */\n        roleId: string;\n    };\n    /**\n     * An object representing an order result.\n     */\n    type OrderResult = {\n        /**\n         * ID of the order.\n         */\n        orderId: string;\n        /**\n         * Wix Pay ID of the order being purchased.\n         */\n        wixPayOrderId: string;\n    };\n    /**\n     * An object representing the period for which a plan is valid.\n     */\n    type Period = {\n        /**\n         * The number of units until the plan expires.\n         */\n        amount: number;\n        /**\n         * Time period for billing the plan, such as `MONTH`.\n         */\n        unit: string;\n    };\n    /**\n     * An object representing the price of a purchased plan.\n     */\n    type Price = {\n        /**\n         * Payment currency. A three-letter\n         *  [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217) currency code.\n         */\n        currency: string;\n        /**\n         * The cost of the plan.\n         */\n        amount: number;\n    };\n    /**\n     * An object representing a purchase result for a non-free plan.\n     */\n    type PurchaseResult = {\n        /**\n         * ID of the order being purchased.\n         */\n        orderId: string;\n        /**\n         * Payment status in Wix Pay. One of:\n         *\n         *  + \"`Successful`\": Payment was successfully received.\n         *  + \"`Pending`\": Payment is pending payment provider approval.\n         *  + \"`Failed`\": Payment has failed.\n         *  + \"`Chargeback`\": Payment is a chargeback.\n         *  + \"`Refunded`\": Payment was fully refunded.\n         *  + \"`Offline`\": Payment will be executed offline.\n         *  + \"`PartiallyRefunded`\": Payment was partially refunded.\n         *  + \"`Cancelled`\": Payment was cancelled and was not processed.\n         *  + \"`Undefined`\": Payment status is pending payment provider input.\n         */\n        wixPayStatus: string;\n        /**\n         * Wix Pay ID of the order being purchased. Returned for non-free plans.\n         */\n        wixPayOrderId: string;\n    };\n    /**\n     * An object representing a purchase result for a free plan.\n     */\n    type PurchaseResultFree = {\n        /**\n         * ID of the order being purchased.\n         */\n        orderId: string;\n    };\n    /**\n     * An object representing how long a plan is valid.\n     */\n    type ValidFor = {\n        /**\n         * If true, the plan does not expire.\n         */\n        forever: boolean;\n        /**\n         * Object containing the period for which the plan is valid.\n         */\n        period: wix_paid_plans.Period;\n    };\n}\ndeclare namespace wix_pay.Currencies {\n    /**\n     * An object for retrieving conversion rates and converting amounts.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-pay.Currencies.CurrencyConverter.html#)\n     */\n    interface CurrencyConverter {\n        /**\n         * Converts an array of amounts from one currency to another.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-pay.Currencies.CurrencyConverter.html#convertAmounts)\n         */\n        convertAmounts(options: wix_pay.Currencies.CurrencyConverter.ConvertAmountsOptions): Promise<wix_pay.Currencies.CurrencyConverter.ConvertedAmounts>;\n        /**\n         * Gets a currency conversion rate.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-pay.Currencies.CurrencyConverter.html#getConversionRate)\n         */\n        getConversionRate(sourceCurrency: string, targetCurrency: string): Promise<wix_pay.Currencies.CurrencyConverter.ConversionRate>;\n    }\n    namespace CurrencyConverter {\n        /**\n         * An object representing a currency conversion rate.\n         */\n        type ConversionRate = {\n            /**\n             * The conversion rate between the source and target currencies.\n             */\n            rate: number;\n            /**\n             * The date and time when the rate was set.\n             */\n            timestamp: Date;\n        };\n        /**\n         * An object representing the currencies and amounts to be converted.\n         */\n        type ConvertAmountsOptions = {\n            /**\n             * Amounts to convert.\n             */\n            amounts: number[];\n            /**\n             * Currency to convert from.  The `from` currency code used must exist in the array returned by the [`getAllCurrencies()`](wix-pay.Currencies.html#getAllCurrencies) function.\n             */\n            from: string;\n            /**\n             * Currency to convert to. The `to` currency code used must exist in the array returned by the [`getAllCurrencies()`](wix-pay.Currencies.html#getAllCurrencies) function.\n             * > **Note:**\n             * The `from` and `to` currency codes used must exist in the array returned by the\n             * [`getAllCurrencies()`](wix-pay.Currencies.html#getAllCurrencies) function.\n             */\n            to: string;\n        };\n        /**\n         * An object representing the results of a currency conversion.\n         */\n        type ConvertedAmounts = {\n            /**\n             * Array of converted amounts.\n             */\n            amounts: number[];\n            /**\n             * The date and time when the currency exchange rate was set.\n             */\n            timestamp: Date;\n        };\n    }\n    /**\n     * Site-related currency settings.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-pay.Currencies.SiteSettings.html#)\n     */\n    interface SiteSettings {\n        /**\n         * Gets the list of supported currencies that you set for your site.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-pay.Currencies.SiteSettings.html#getCurrencies)\n         */\n        getCurrencies(): Promise<wix_pay.Currencies.SiteSettings.CurrencyCode[]>;\n    }\n    namespace SiteSettings {\n        /**\n         * An object representing an ISO currency code.\n         */\n        type CurrencyCode = {\n            /**\n             * A 3-letter\n             *  [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217) currency code.\n             */\n            code: string;\n        };\n    }\n}\ndeclare namespace wix_pay {\n    /**\n     * The Currencies API contains functionality for displaying prices in your store in different currencies, getting exchange rates, and converting between currencies.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-pay.Currencies.html#)\n     */\n    interface Currencies {\n        /**\n         * Gets conversion rates and converts amounts.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-pay.Currencies.html#currencyConverter)\n         */\n        readonly currencyConverter: wix_pay.Currencies.CurrencyConverter;\n        /**\n         * Gets currencies that you set for your site.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-pay.Currencies.html#siteSettings)\n         */\n        readonly siteSettings: wix_pay.Currencies.SiteSettings;\n        /**\n         * Gets the list of all currencies for which Wix supports conversion.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-pay.Currencies.html#getAllCurrencies)\n         */\n        getAllCurrencies(): Promise<wix_pay.Currencies.Currency[]>;\n    }\n    namespace Currencies {\n        /**\n         * An object representing a currency.\n         */\n        type Currency = {\n            /**\n             * A 3-letter\n             *  [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217) currency code.\n             */\n            code: string;\n            /**\n             * A currency symbol.\n             */\n            symbol: string;\n        };\n    }\n    /**\n     * An object representing a payment.\n     */\n    type Payment = {\n        /**\n         * Payment transaction ID.\n         */\n        id: string;\n        /**\n         * Payment total amount.\n         */\n        amount: number;\n        /**\n         * Payment currency. A three-letter\n         *  [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217) currency code.\n         */\n        currency: string;\n        /**\n         * Payment items.\n         */\n        items: wix_pay.PaymentItem[];\n    };\n    /**\n     * An object representing a payment item.\n     */\n    type PaymentItem = {\n        /**\n         * Payment item name.\n         */\n        name: string;\n        /**\n         * Payment item price.\n         */\n        price: number;\n        /**\n         * Payment item quantity.\n         */\n        quantity: number;\n    };\n    /**\n     * An object representing the options of a payment.\n     */\n    type PaymentOptions = {\n        /**\n         * Absolute URL of a terms and conditions\n         *  page. If a link is present, an agreement checkbox will be presented alongside the link.\n         */\n        termsAndConditionsLink?: string;\n        /**\n         * Whether to show your site's [Thank You page](https://www.wix.com/velo/reference/$w/thankyoupage). Does not apply to Thank You pages for in-app browsers. Defaults to `true`.\n         */\n        showThankYouPage?: boolean;\n        /**\n         * Whether to skip the user info page. Defaults to `false`.\n         *  The page will be skipped only if user info was passed to [`createPayment()`](wix-pay-backend.html#createPayment) as\n         *  a part of the `PaymentInfo` object.\n         */\n        skipUserInfoPage?: boolean;\n        /**\n         * An object representing information about the user. It will be used to prefill\n         *  user info form during payment process.\n         *\n         *  Deprecation note: Pass user information to [`createPayment( )`](wix-pay-backend.html#createPayment) instead.\n         */\n        userInfo?: wix_pay.PaymentUserInfo;\n    };\n    /**\n     * An object representing a payment result.\n     */\n    type PaymentResult = {\n        /**\n         * The payment.\n         */\n        payment: wix_pay.Payment;\n        /**\n         * Payment status. One of:\n         *\n         *  + \"`Successful`\": Payment was successfully received.\n         *  + \"`Pending`\": Payment is pending payment provider approval.\n         *  + \"`Failed`\": Payment has failed.\n         *  + \"`Chargeback`\": Payment is chargeback.\n         *  + \"`Refunded`\": Payment was fully refunded.\n         *  + \"`Offline`\": Payment will be executed offline.\n         *  + \"`PartiallyRefunded`\": Payment was partially refunded.\n         *  + \"`Cancelled`\": Payment was cancelled and was not processed.\n         *  + \"`Undefined`\": Payment status is pending payment provider input.\n         */\n        status: string;\n        /**\n         * ID of the payment transaction.\n         */\n        transactionId: string;\n        /**\n         * An object representing information about the user.\n         */\n        userInfo: wix_pay.PaymentUserInfo;\n    };\n    /**\n     * An object representing information about the user.\n     */\n    type PaymentUserInfo = {\n        /**\n         * User's first name. Value is `null` if\n         *  there is no first name information.\n         */\n        firstName: string;\n        /**\n         * User's last name. Value is `null` if\n         *  there is no last name information.\n         */\n        lastName: string;\n        /**\n         * User's country code. A three-letter\n         *  [ISO-3166-1](https://en.wikipedia.org/wiki/ISO_3166-1) country code. Value\n         *  is `null` if there is no country information.\n         */\n        country: string;\n        /**\n         * User's phone number. Value is `null` if\n         *  there is no phone number information.\n         */\n        phone: string;\n        /**\n         * User's email address. Value is `null` if\n         *  there is no email address information.\n         */\n        email: string;\n    };\n}\ndeclare namespace wix_pay_backend.Currencies {\n    /**\n     * An object for retrieving conversion rates and converting amounts.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-pay-backend.Currencies.CurrencyConverter.html#)\n     */\n    interface CurrencyConverter {\n        /**\n         * Converts an array of one or more amounts from one currency to another.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-pay-backend.Currencies.CurrencyConverter.html#convertAmounts)\n         */\n        convertAmounts(options: wix_pay_backend.Currencies.CurrencyConverter.ConvertAmountsOptions): Promise<wix_pay_backend.Currencies.CurrencyConverter.ConvertedAmounts>;\n        /**\n         * Gets a currency conversion rate.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-pay-backend.Currencies.CurrencyConverter.html#getConversionRate)\n         */\n        getConversionRate(sourceCurrency: string, targetCurrency: string): Promise<wix_pay_backend.Currencies.CurrencyConverter.ConversionRate>;\n    }\n    namespace CurrencyConverter {\n        /**\n         * An object representing a currency conversion rate.\n         */\n        type ConversionRate = {\n            /**\n             * The conversion rate between the source and target currencies.\n             */\n            rate: number;\n            /**\n             * The date and time when the rate was set.\n             */\n            timestamp: Date;\n        };\n        /**\n         * An object representing the currencies and amounts to be converted.\n         */\n        type ConvertAmountsOptions = {\n            /**\n             * Amounts to convert.\n             */\n            amounts: number[];\n            /**\n             * Currency to convert from.  The `from` currency code used must exist in the array returned by the [`getAllCurrencies()`](wix-pay-backend.Currencies.html#getAllCurrencies) function.\n             */\n            from: string;\n            /**\n             * Currency to convert to. The `to` currency code used must exist in the array returned by the [`getAllCurrencies()`](wix-pay-backend.Currencies.html#getAllCurrencies) function.\n             *\n             * > **Note:** The `from` and `to` currency codes used must exist in the array returned by the [`getAllCurrencies()`](wix-pay-backend.Currencies.html#getAllCurrencies) function.\n             */\n            to: string;\n        };\n        /**\n         * An object representing the results of a currency conversion.\n         */\n        type ConvertedAmounts = {\n            /**\n             * Array of converted amounts.\n             */\n            amounts: number[];\n            /**\n             * The date and time when the currency exchange rate was set.\n             */\n            timestamp: Date;\n        };\n    }\n    /**\n     * Site-related currency settings.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-pay-backend.Currencies.SiteSettings.html#)\n     */\n    interface SiteSettings {\n        /**\n         * Gets the list of supported currencies that you set for your site.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-pay-backend.Currencies.SiteSettings.html#getCurrencies)\n         */\n        getCurrencies(): Promise<wix_pay_backend.Currencies.SiteSettings.CurrencyCode[]>;\n        /**\n         * Sets the list of currencies that the site will support.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-pay-backend.Currencies.SiteSettings.html#setCurrencies)\n         */\n        setCurrencies(options: wix_pay_backend.Currencies.SiteSettings.CurrencyCode[]): Promise<void>;\n    }\n    namespace SiteSettings {\n        /**\n         * An object representing an ISO currency code.\n         */\n        type CurrencyCode = {\n            /**\n             * A 3-letter\n             *  [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217) currency code.\n             */\n            code: string;\n        };\n    }\n}\ndeclare namespace wix_pay_backend {\n    /**\n     * The Currencies API contains functionality for displaying prices in your store in different currencies, getting exchange rates, and converting between currencies.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-pay-backend.Currencies.html#)\n     */\n    interface Currencies {\n        /**\n         * Gets conversion rates and converts amounts.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-pay-backend.Currencies.html#currencyConverter)\n         */\n        readonly currencyConverter: wix_pay_backend.Currencies.CurrencyConverter;\n        /**\n         * Gets and sets currencies that you want to support on your site.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-pay-backend.Currencies.html#siteSettings)\n         */\n        readonly siteSettings: wix_pay_backend.Currencies.SiteSettings;\n        /**\n         * Gets the list of all currencies for which Wix supports conversion.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-pay-backend.Currencies.html#getAllCurrencies)\n         */\n        getAllCurrencies(): Promise<wix_pay_backend.Currencies.Currency[]>;\n    }\n    namespace Currencies {\n        /**\n         * An object representing a currency.\n         */\n        type Currency = {\n            /**\n             * A 3-letter\n             *  [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217) currency code.\n             */\n            code: string;\n            /**\n             * A currency symbol.\n             */\n            symbol: string;\n        };\n    }\n    /**\n     * Events fired by payments created using the Pay API.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-pay-backend.Events.html#)\n     */\n    interface Events {\n        /**\n         * An event that fires when a payment's transaction status is changed.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-pay-backend.Events.html#onPaymentUpdate)\n         */\n        onPaymentUpdate(event: wix_pay_backend.Events.PaymentUpdateEvent): void;\n    }\n    namespace Events {\n        /**\n         * An object representing a payment update.\n         */\n        type PaymentUpdateEvent = {\n            /**\n             * The payment's information.\n             */\n            payment: wix_pay_backend.Payment;\n            /**\n             * Payment status.\n             *  One of:\n             *\n             *  + `\"Successful\"`\n             *  + `\"Pending\"`\n             *  + `\"Failed\"`\n             *  + `\"Chargeback\"`\n             *  + `\"Refunded\"`\n             *  + `\"Offline\"`\n             *  + `\"PartiallyRefunded\"`\n             *  + `\"Cancelled\"`\n             *  + `\"Undefined\"`\n             */\n            status: string;\n            /**\n             * ID of the payment transaction.\n             */\n            transactionId: string;\n            /**\n             * User information.\n             */\n            userInfo: wix_pay_backend.PaymentUserInfo;\n        };\n    }\n    /**\n     * An object representing a payment.\n     */\n    type Payment = {\n        /**\n         * Payment transaction ID.\n         */\n        id: string;\n        /**\n         * Payment total amount.\n         */\n        amount: number;\n        /**\n         * Payment currency. A three-letter\n         *  [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217) currency code.\n         */\n        currency: string;\n        /**\n         * Payment items.\n         */\n        items: wix_pay_backend.PaymentItem[];\n        /**\n         * An object representing information about the user.\n         */\n        userInfo: wix_pay_backend.PaymentUserInfo;\n    };\n    /**\n     * An object representing information for creating a payment.\n     */\n    type PaymentInfo = {\n        /**\n         * Total payment amount. Must equal\n         *  the sum of the `price` properties in the `items` list while taking the\n         *  `quantity` into account.\n         */\n        amount: number;\n        /**\n         * Payment currency. A three-letter\n         *  [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217) currency code. Defaults to\n         *  the currency defined by the site's [Regional Settings](https://support.wix.com/en/article/changing-your-sites-regional-settings).\n         */\n        currency?: string;\n        /**\n         * List of payment items.\n         */\n        items: wix_pay_backend.PaymentItem[];\n        /**\n         * An object representing information about the user. It will be used to prefill\n         *  the user info form during the payment process.\n         */\n        userInfo?: wix_pay_backend.PaymentUserInfo;\n    };\n    /**\n     * An object representing a payment item.\n     */\n    type PaymentItem = {\n        /**\n         * Payment item name.\n         */\n        name: string;\n        /**\n         * Payment item price.\n         */\n        price: number;\n        /**\n         * Payment item quantity.\n         */\n        quantity?: number;\n    };\n    /**\n     * An object representing information about the user.\n     */\n    type PaymentUserInfo = {\n        /**\n         * User's first name. Value is `null` if\n         *  there is no first name information.\n         */\n        firstName: string;\n        /**\n         * User's last name. Value is `null` if\n         *  there is no last name information.\n         */\n        lastName: string;\n        /**\n         * User's phone number. Value is `null` if\n         *  there is no phone number information.\n         */\n        phone: string;\n        /**\n         * User's email address. Value is `null` if\n         *  there is no email address information.\n         */\n        email: string;\n        /**\n         * User's country code. A three-letter\n         *  [ISO-3166-1](https://en.wikipedia.org/wiki/ISO_3166-1) country code. Value\n         *  is `null` if there is no country information.\n         */\n        countryCode: string;\n    };\n}\ndeclare namespace wix_pricing_plans {\n    /**\n     * Contains functionality for ordering your site's pricing plans.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-pricing-plans.Checkout.html#)\n     */\n    interface Checkout {\n        /**\n         * Orders a pricing plan.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-pricing-plans.Checkout.html#createOnlineOrder)\n         */\n        createOnlineOrder(planId: string, options?: wix_pricing_plans_backend.Checkout.CreateOnlineOrderOptions): Promise<wix_pricing_plans_backend.Orders.Order>;\n        /**\n         * Orders and purchases a pricing plan.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-pricing-plans.Checkout.html#startOnlinePurchase)\n         */\n        startOnlinePurchase(planId: string, options?: wix_pricing_plans.Checkout.StartOnlinePurchaseOptions): Promise<wix_pricing_plans.Checkout.Purchase>;\n    }\n    namespace Checkout {\n        type CreateOnlineOrderOptions = {\n            /**\n             * Start date and time for the ordered plan.\n             *\n             * Default: Current date and time\n             */\n            startDate?: Date;\n            /**\n             * Coupon code to apply.\n             *\n             * To learn more about coupons, see [applyCoupon()](wix-pricing-plans-backend/checkout/applycoupon).\n             */\n            couponCode?: string;\n        };\n        /**\n         * An object representing the period for which a plan is valid.\n         */\n        type Period = {\n            /**\n             * The number of units until the plan expires.\n             */\n            amount: number;\n            /**\n             * Time period for billing the plan, such as `\"MONTH\"`.\n             */\n            unit: string;\n        };\n        /**\n         * An object representing the price of a purchased plan.\n         */\n        type Price = {\n            /**\n             * Payment currency. A three-letter\n             *  [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217) currency code.\n             */\n            currency: string;\n            /**\n             * The cost of the plan.\n             */\n            amount: number;\n        };\n        /**\n         * An object representing a purchase for a non-free plan.\n         */\n        type Purchase = {\n            /**\n             * The order being purchased.\n             */\n            order: wix_pricing_plans_backend.Orders.Order;\n            /**\n             * Payment status in [Wix Pay](https://www.wix.com/velo/reference/wix-pay). Omitted for free plans.\n             *  One of:\n             *  + `\"Successful\"`: Payment was successfully received.\n             *  + `\"Pending\"`: Payment is pending payment provider approval.\n             *  + `\"Failed\"`: Payment has failed.\n             *  + `\"Chargeback\"`: Payment is chargeback.\n             *  + `\"Refunded\"`: Payment was fully refunded.\n             *  + `\"Offline\"`: Payment will be executed offline.\n             *  + `\"PartiallyRefunded\"`: Payment was partially refunded.\n             *  + `\"Cancelled\"`: Payment was cancelled and was not processed.\n             *  + `\"Undefined\"`: Payment status is pending payment provider input.\n             */\n            wixPayStatus?: string;\n        };\n        type StartOnlinePurchaseOptions = {\n            /**\n             * Start date and time for the ordered plan.\n             *\n             * Default: Current date and time\n             */\n            startDate?: Date;\n            /**\n             * Coupon code to apply.\n             *\n             * To learn more about coupons, see [applyCoupon()](wix-pricing-plans-backend/checkout/applycoupon).\n             */\n            couponCode?: string;\n        };\n        /**\n         * An object representing how long a plan is valid.\n         */\n        type ValidFor = {\n            /**\n             * If true, the plan does not expire.\n             */\n            forever: boolean;\n            /**\n             * Object containing the period for which the plan is valid.\n             */\n            period: wix_pricing_plans.Checkout.Period;\n        };\n    }\n    /**\n     * The Pricing Plans Orders API contains functionality for managing\n     *  your site's pricing plan [orders](https://support.wix.com/en/article/pricing-plans-an-overview).\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-pricing-plans.Orders.html#)\n     */\n    interface Orders {\n        /**\n         * Lists the orders for the currently logged-in member.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-pricing-plans.Orders.html#listCurrentMemberOrders)\n         */\n        listCurrentMemberOrders(filters?: wix_pricing_plans_backend.Orders.CurrentMemberFilterOptions, sorting?: wix_pricing_plans_backend.Orders.SortingOptions, paging?: wix_pricing_plans_backend.Orders.PaginationOptions): Promise<wix_pricing_plans_backend.Orders.Order[]>;\n        /**\n         * Requests the cancellation of a specific order of a plan for the currently logged-in member.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-pricing-plans.Orders.html#requestCurrentMemberOrderCancellation)\n         */\n        requestCurrentMemberOrderCancellation(orderId: string, effectiveAt: string): Promise<void>;\n    }\n}\ndeclare namespace wix_pricing_plans_backend {\n    /**\n     * The Pricing Plans Checkout API contains functionality for ordering and checking out\n     *  your site's pricing plan [orders](https://support.wix.com/en/article/pricing-plans-an-overview).\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-pricing-plans-backend.Checkout.html#)\n     */\n    interface Checkout {\n        /**\n         * Applies a coupon to a draft order.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-pricing-plans-backend.Checkout.html#applyCoupon)\n         */\n        applyCoupon(orderId: string, couponCode: string): Promise<wix_pricing_plans_backend.Checkout.ApplyCoupon>;\n        /**\n         * Change the start date of a draft order.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-pricing-plans-backend.Checkout.html#changeStartDate)\n         */\n        changeStartDate(orderId: string, startDate: Date): Promise<wix_pricing_plans_backend.Orders.Order>;\n        /**\n         * Creates an order for a buyer who purchased the plan with an offline transaction.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-pricing-plans-backend.Checkout.html#createOfflineOrder)\n         */\n        createOfflineOrder(planId: string, buyerId: string, options?: wix_pricing_plans_backend.Checkout.CreateOfflineOrderOptions): Promise<wix_pricing_plans_backend.Orders.Order>;\n        /**\n         * Creates an order online for currently logged-in member.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-pricing-plans-backend.Checkout.html#createOnlineOrder)\n         */\n        createOnlineOrder(planId: string, options?: wix_pricing_plans_backend.Checkout.CreateOnlineOrderOptions): Promise<wix_pricing_plans_backend.Orders.Order>;\n        /**\n         * Provides a preview of an offline order as if it was purchased.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-pricing-plans-backend.Checkout.html#previewOfflineOrder)\n         */\n        previewOfflineOrder(planId: string, buyerId: string, options?: wix_pricing_plans_backend.Checkout.PreviewOfflineOrderOptions): Promise<wix_pricing_plans_backend.Checkout.OrderPreview>;\n        /**\n         * Provides a preview of an online order as if it was purchased.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-pricing-plans-backend.Checkout.html#previewOnlineOrder)\n         */\n        previewOnlineOrder(planId: string, options?: wix_pricing_plans_backend.Checkout.PreviewOnlineOrderOptions): Promise<wix_pricing_plans_backend.Checkout.OrderPreview>;\n        /**\n         * Provides a preview of an order's pricing as if was purchased.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-pricing-plans-backend.Checkout.html#previewPrice)\n         */\n        previewPrice(planId: string, couponCode?: string): Promise<wix_pricing_plans_backend.Checkout.PricePreview>;\n    }\n    namespace Checkout {\n        type ApplyCoupon = {\n            /**\n             * The order with the coupon applied.\n             */\n            order?: wix_pricing_plans_backend.Orders.Order;\n        };\n        type CreateOfflineOrderInfo = {\n            /**\n             * Date from which the plan is active. Defaults to the current date.\n             */\n            startDate?: Date;\n            /**\n             * Whether the order is paid. Defaults to `false`.\n             */\n            paid?: boolean;\n            /**\n             * When `true`, prevents permission checks from running for the operation. Defaults to `false`.\n             */\n            suppressAuth?: boolean;\n        };\n        type CreateOfflineOrderOptions = {\n            /**\n             * Start date and time for the ordered plan.\n             *\n             * Default: Current date and time\n             */\n            startDate?: Date;\n            /**\n             * Whether the order is paid.\n             *\n             * Default: `false`\n             */\n            paid?: boolean;\n            /**\n             * Whether to suppress permission checks from running for the operation.\n             *\n             * Default: `false`\n             */\n            suppressAuth?: boolean;\n            /**\n             * Coupon code to apply.\n             *\n             * To learn more about coupons, see [applyCoupon()](wix-pricing-plans-backend/checkout/applycoupon).\n             */\n            couponCode?: string;\n        };\n        type CreateOnlineOrderOptions = {\n            /**\n             * Start date and time for the ordered plan.\n             *\n             * Default: Current date and time\n             */\n            startDate?: Date;\n            /**\n             * Coupon code to apply.\n             *\n             * To learn more about coupons, see [applyCoupon()](wix-pricing-plans-backend/checkout/applycoupon).\n             */\n            couponCode?: string;\n        };\n        type OrderPreview = {\n            /**\n             * The preview, as if the plan had been ordered.\n             */\n            order?: wix_pricing_plans_backend.Orders.Order;\n            /**\n             * Whether this previewed order would exceed the permitted amount of purchases\n             * available for this plan for this buyer.\n             *\n             * Always `false` for plans that do not have purchase limits.\n             */\n            purchaseLimitExceeded: boolean;\n        };\n        type PreviewOfflineOrderOptions = {\n            /**\n             * Date from which the plan is active. Defaults to the current date.\n             */\n            startDate?: Date;\n            /**\n             * When `true`, prevents permission checks from running for the operation. Defaults to `false`.\n             */\n            suppressAuth?: boolean;\n            /**\n             * Coupon code to apply.\n             *\n             * To learn more about coupons, see [applyCoupon()](wix-pricing-plans-backend/checkout/applycoupon).\n             */\n            couponCode?: string;\n        };\n        type PreviewOnlineOrderOptions = {\n            /**\n             * Date from which the plan is active. Defaults to the current date.\n             */\n            startDate?: Date;\n            /**\n             * Coupon code to apply.\n             *\n             * To learn more about coupons, see [applyCoupon()](wix-pricing-plans-backend/checkout/applycoupon).\n             */\n            couponCode?: string;\n        };\n        type PricePreview = {\n            /**\n             * **Deprecated.** Use `prices` instead.\n             */\n            price: wix_pricing_plans_backend.Orders.PriceDetails;\n            /**\n             * Pricing details.\n             */\n            prices: wix_pricing_plans_backend.Orders.Prices;\n        };\n    }\n    /**\n     * Events fired by pricing plans.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-pricing-plans-backend.Events.html#)\n     */\n    interface Events {\n        /**\n         * An event that triggers when an order is canceled with `effectiveAt` as `NEXT_PAYMENT_DATE`.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-pricing-plans-backend.Events.html#onOrderAutoRenewCanceled)\n         */\n        onOrderAutoRenewCanceled(event: wix_pricing_plans_backend.Events.OrderAutoRenewCanceledEvent): void;\n        /**\n         * An event that triggers when an order is canceled.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-pricing-plans-backend.Events.html#onOrderCanceled)\n         */\n        onOrderCanceled(event: wix_pricing_plans_backend.Events.OrderCanceledEvent): void;\n        /**\n         * An event that triggers when an order is created.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-pricing-plans-backend.Events.html#onOrderCreated)\n         */\n        onOrderCreated(event: wix_pricing_plans_backend.Events.OrderCreatedEvent): void;\n        /**\n         * An event that triggers at the start of each payment cycle for online orders.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-pricing-plans-backend.Events.html#onOrderCycleStarted)\n         */\n        onOrderCycleStarted(event: wix_pricing_plans_backend.Events.OrderCycleStartedEvent): void;\n        /**\n         * An event that triggers when the `endDate` of an order is postponed or made earlier.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-pricing-plans-backend.Events.html#onOrderEndDatePostponed)\n         */\n        onOrderEndDatePostponed(event: wix_pricing_plans_backend.Events.OrderEndDatePostponedEvent): void;\n        /**\n         * An event that triggers when an order expires or is canceled immediately.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-pricing-plans-backend.Events.html#onOrderEnded)\n         */\n        onOrderEnded(event: wix_pricing_plans_backend.Events.OrderEndedEvent): void;\n        /**\n         * An event that triggers when an offline order is marked as paid.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-pricing-plans-backend.Events.html#onOrderMarkedAsPaid)\n         */\n        onOrderMarkedAsPaid(event: wix_pricing_plans_backend.Events.OrderMarkedAsPaidEvent): void;\n        /**\n         * An event that triggers when an order is paused.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-pricing-plans-backend.Events.html#onOrderPaused)\n         */\n        onOrderPaused(event: wix_pricing_plans_backend.Events.OrderPausedEvent): void;\n        /**\n         * An event that triggers when an order is purchased.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-pricing-plans-backend.Events.html#onOrderPurchased)\n         */\n        onOrderPurchased(event: wix_pricing_plans_backend.Events.OrderPurchasedEvent): void;\n        /**\n         * An event that triggers when an order resumes.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-pricing-plans-backend.Events.html#onOrderResumed)\n         */\n        onOrderResumed(event: wix_pricing_plans_backend.Events.OrderResumedEvent): void;\n        /**\n         * An event that triggers when the start date of an order is changed.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-pricing-plans-backend.Events.html#onOrderStartDateChanged)\n         */\n        onOrderStartDateChanged(event: wix_pricing_plans_backend.Events.OrderStartDateChangedEvent): void;\n        /**\n         * An event that triggers when the start date of a purchased or free order is reached.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-pricing-plans-backend.Events.html#onOrderStarted)\n         */\n        onOrderStarted(event: wix_pricing_plans_backend.Events.OrderUpdatedEvent): void;\n        /**\n         * An event that triggers when an order is changed.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-pricing-plans-backend.Events.html#onOrderUpdated)\n         */\n        onOrderUpdated(event: wix_pricing_plans_backend.Events.OrderUpdatedEvent): void;\n        /**\n         * An event that triggers when a pricing plan is archived.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-pricing-plans-backend.Events.html#onPlanArchived)\n         */\n        onPlanArchived(event: wix_pricing_plans_backend.Events.PlanArchivedEvent): void;\n        /**\n         * An event that triggers when a pricing plan is created.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-pricing-plans-backend.Events.html#onPlanCreated)\n         */\n        onPlanCreated(event: wix_pricing_plans_backend.Events.PlanCreatedEvent): void;\n        /**\n         * An event that triggers when a member purchases a plan.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-pricing-plans-backend.Events.html#onPlanPurchased)\n         */\n        onPlanPurchased(event: wix_pricing_plans_backend.Events.PlanPurchasedEvent): void;\n        /**\n         * An event that triggers when a pricing plan is changed.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-pricing-plans-backend.Events.html#onPlanUpdated)\n         */\n        onPlanUpdated(event: wix_pricing_plans_backend.Events.PlanUpdatedEvent): void;\n    }\n    namespace Events {\n        /**\n         * Event data.\n         */\n        type EventData = {\n            /**\n             * Plan information.\n             */\n            plan: wix_pricing_plans_backend.Plan;\n        };\n        /**\n         * Event metadata.\n         */\n        type EventMetadata = {\n            /**\n             * Event ID.\n             */\n            id: string;\n            /**\n             * Plan ID associated with this event.\n             */\n            entityId: string;\n            /**\n             * Event timestamp.\n             */\n            eventTime: string;\n            /**\n             * Whether the event is triggered as a result of a privacy regulation application. For example, [GDPR](https://support.wix.com/en/article/gdpr-frequently-asked-questions). For advanced users.\n             */\n            triggeredByAnonymizeRequest?: boolean;\n        };\n        /**\n         * An object representing a new pricing plan order (subscription).\n         */\n        type Order = {\n            /**\n             * Order ID of the purchase of the plan, auto-generated when an order is created.\n             */\n            id: string;\n            /**\n             * Status of the payment for the plan. Can be `PAID`, `REFUNDED`, `FAILED`, `UNPAID`, and `PAYMENT_STATUS_UNDEFINED`.\n             */\n            paymentStatus: string;\n            /**\n             * Date and time until which the plan is valid.\n             */\n            validUntil: Date;\n            /**\n             * Object containing the price of the plan.\n             */\n            price: wix_pricing_plans_backend.Events.Price;\n            /**\n             * If the plan is canceled, the reason why. One of:\n             *\n             *  + `OWNER_CANCELED`: The owner canceled.\n             *  + `PAYMENT_PROVIDER_CANCELED`: The payment provider canceled.\n             *  + `PAYMENT_FAILED`: The payment failed.\n             *  + `UOU_CANCELED`: The site member canceled.\n             *  + `CANCELLATION_REASON_UNDEFINED`: The reason is undefined.\n             */\n            cancellationReason: string;\n            /**\n             * If the plan is cancelled, the cause of the cancellation. One of:\n             *\n             *  + `\"UNDEFINED\"`: Cancellation initiator undefined.\n             *  + `\"OWNER\"`: Site owner canceled the order.\n             *  + `\"MEMBER\"`: Buyer initiated the cancellation.\n             *  + `\"PAYMENT_FAILURE\"`: Payment transaction failed.\n             *  + `\"SETUP_FAILURE\"`: Buyer's payment details weren't set up correctly.\n             */\n            cancellationInitiator: string;\n            /**\n             * Date and time from which the plan is valid.\n             */\n            validFrom: Date;\n            /**\n             * Name of the plan.\n             */\n            planName: string;\n            /**\n             * ID of the plan for Wix Pay. If plan is free, this ID is blank.\n             */\n            wixPayOrderId: string;\n            /**\n             * If the plan is recurring. If true, the price is deducted weekly, monthly, or yearly.\n             */\n            recurring: boolean;\n            /**\n             * Date and time the order was created.\n             */\n            dateCreated: Date;\n            /**\n             * Status of the order. Can be `ACTIVE`, `PENDING`, `CANCELED`, `EXPIRED`, `PENDING_CANCELLATION`, and `ORDER_STATUS_UNDEFINED`.\n             */\n            status: string;\n            /**\n             * Description of the plan.\n             */\n            planDescription: string;\n            /**\n             * ID for the member who ordered the plan.\n             */\n            memberId: string;\n            /**\n             * How the plan was ordered, either `ONLINE` or `OFFLINE`.\n             */\n            orderType: string;\n            /**\n             * ID of the plan.\n             */\n            planId: string;\n            /**\n             * Object containing properties about how long the plan is valid.\n             */\n            validFor: wix_pricing_plans_backend.Events.ValidFor;\n            /**\n             * How many trial days were given to the subscriber of the plan. Available only for orders whose plans are recurring, meaning plans whose pricing model is `subscription`.\n             */\n            freeTrialDays?: number;\n            /**\n             * Role assigned after ordering the plan.\n             */\n            roleId: string;\n        };\n        /**\n         * Information about the event fired when the order auto-renewal is canceled.\n         */\n        type OrderAutoRenewCanceledEvent = {\n            /**\n             * Event metadata.\n             */\n            metadata: wix_pricing_plans_backend.Events.OrderEventMetadata;\n            /**\n             * Data about the order.\n             */\n            data: wix_pricing_plans_backend.Events.OrderEventData;\n        };\n        /**\n         * Information about the order cancellation event.\n         */\n        type OrderCanceledEvent = {\n            /**\n             * Event metadata.\n             */\n            metadata: wix_pricing_plans_backend.Events.OrderEventMetadata;\n            /**\n             * Data about the order.\n             */\n            data: wix_pricing_plans_backend.Events.OrderEventData;\n        };\n        /**\n         * Information about the order's creation event.\n         */\n        type OrderCreatedEvent = {\n            /**\n             * Event metadata.\n             */\n            metadata: wix_pricing_plans_backend.Events.OrderEventMetadata;\n            /**\n             * Order information.\n             */\n            entity: wix_pricing_plans_backend.Orders.Order;\n        };\n        /**\n         * Information about the event fired when the order's payment cycle is triggered. This means the next payment date has arrived.\n         */\n        type OrderCycleStartedEvent = {\n            /**\n             * Event metadata.\n             */\n            metadata: wix_pricing_plans_backend.Events.OrderEventMetadata;\n            /**\n             * Data about the order.\n             */\n            data: wix_pricing_plans_backend.Events.OrderCycleStartedEventData;\n        };\n        /**\n         * Event data.\n         */\n        type OrderCycleStartedEventData = {\n            /**\n             * Order information.\n             */\n            order: wix_pricing_plans_backend.Orders.Order;\n            /**\n             * Number of the payment cycle. Zero for unlimited plan orders and orders whose plans are valid until canceled.\n             */\n            cycleNumber: number;\n            /**\n             * Wix Pay transaction ID.\n             */\n            transactionId: string;\n        };\n        /**\n         * Information about the order postponed event.\n         */\n        type OrderEndDatePostponedEvent = {\n            /**\n             * Event metadata.\n             */\n            metadata: wix_pricing_plans_backend.Events.OrderEventMetadata;\n            /**\n             * Data about the order.\n             */\n            data: wix_pricing_plans_backend.Events.OrderEventData;\n        };\n        /**\n         * Information about the order end event.\n         */\n        type OrderEndedEvent = {\n            /**\n             * Event metadata.\n             */\n            metadata: wix_pricing_plans_backend.Events.OrderEventMetadata;\n            /**\n             * Data about the order.\n             */\n            data: wix_pricing_plans_backend.Events.OrderEventData;\n        };\n        /**\n         * Event data.\n         */\n        type OrderEventData = {\n            /**\n             * Order information.\n             */\n            order: wix_pricing_plans_backend.Orders.Order;\n        };\n        /**\n         * Event metadata.\n         */\n        type OrderEventMetadata = {\n            /**\n             * Event ID.\n             */\n            id: string;\n            /**\n             * Order ID associated with this event.\n             */\n            entityId: string;\n            /**\n             * Event timestamp.\n             */\n            eventTime: string;\n            /**\n             * Whether the event is triggered as a result of a privacy regulation application (for example, [GDPR](https://support.wix.com/en/article/gdpr-frequently-asked-questions)). For advanced users.\n             */\n            triggeredByAnonymizeRequest?: boolean;\n        };\n        /**\n         * Information about the offline order \"marked as paid\" event.\n         */\n        type OrderMarkedAsPaidEvent = {\n            /**\n             * Event metadata.\n             */\n            metadata: wix_pricing_plans_backend.Events.OrderEventMetadata;\n            /**\n             * Data about the order.\n             */\n            data: wix_pricing_plans_backend.Events.OrderEventData;\n        };\n        /**\n         * Information about the order pause event.\n         */\n        type OrderPausedEvent = {\n            /**\n             * Event metadata.\n             */\n            metadata: wix_pricing_plans_backend.Events.OrderEventMetadata;\n            /**\n             * Data about the order.\n             */\n            data: wix_pricing_plans_backend.Events.OrderEventData;\n        };\n        /**\n         * Information about the order purchase event.\n         */\n        type OrderPurchasedEvent = {\n            /**\n             * Event metadata.\n             */\n            metadata: wix_pricing_plans_backend.Events.OrderEventMetadata;\n            /**\n             * Data about the order.\n             */\n            data: wix_pricing_plans_backend.Events.OrderEventData;\n        };\n        /**\n         * Information about the order resumption event.\n         */\n        type OrderResumedEvent = {\n            /**\n             * Event metadata.\n             */\n            metadata: wix_pricing_plans_backend.Events.OrderEventMetadata;\n            /**\n             * Data about the order.\n             */\n            data: wix_pricing_plans_backend.Events.OrderEventData;\n        };\n        /**\n         * Information about the order's start date change event.\n         */\n        type OrderStartDateChangedEvent = {\n            /**\n             * Event metadata.\n             */\n            metadata: wix_pricing_plans_backend.Events.OrderEventMetadata;\n            /**\n             * Data about the order.\n             */\n            data: wix_pricing_plans_backend.Events.OrderEventData;\n        };\n        /**\n         * Information about the order update event.\n         */\n        type OrderUpdatedEvent = {\n            /**\n             * Event metadata.\n             */\n            metadata: wix_pricing_plans_backend.Events.OrderEventMetadata;\n            /**\n             * Order information.\n             */\n            entity: wix_pricing_plans_backend.Orders.Order;\n        };\n        /**\n         * An object representing the period for which a plan is valid.\n         */\n        type Period = {\n            /**\n             * The number of units until the plan expires.\n             */\n            amount: number;\n            /**\n             * Time period for billing the plan, such as `MONTH`.\n             */\n            unit: string;\n        };\n        /**\n         * Information about the plan archive event.\n         */\n        type PlanArchivedEvent = {\n            /**\n             * Event metadata.\n             */\n            metadata: wix_pricing_plans_backend.Events.EventMetadata;\n            /**\n             * Event data, including information about the archived plan.\n             */\n            data: wix_pricing_plans_backend.Events.EventData;\n        };\n        /**\n         * Information about the create plan event.\n         */\n        type PlanCreatedEvent = {\n            /**\n             * Event metadata.\n             */\n            metadata: wix_pricing_plans_backend.Events.EventMetadata;\n            /**\n             * Plan information.\n             */\n            entity: wix_pricing_plans_backend.Plan;\n        };\n        /**\n         * An object representing a new pricing plan purchase.\n         */\n        type PlanPurchasedEvent = {\n            /**\n             * Object containing the details about the plan's order.\n             */\n            order: wix_pricing_plans_backend.Events.Order;\n        };\n        /**\n         * Information about the plan update event.\n         */\n        type PlanUpdatedEvent = {\n            /**\n             * Event metadata.\n             */\n            metadata: wix_pricing_plans_backend.Events.EventMetadata;\n            /**\n             * Plan information.\n             */\n            entity: wix_pricing_plans_backend.Plan;\n        };\n        /**\n         * An object representing the price of the plan.\n         */\n        type Price = {\n            /**\n             * Payment currency. A three-letter\n             *  [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217) currency code.\n             */\n            currency: string;\n            /**\n             * The cost of the plan.\n             */\n            amount: number;\n        };\n        /**\n         * An object representing how long a plan is valid.\n         */\n        type ValidFor = {\n            /**\n             * If true, the plan does not expire.\n             */\n            forever: boolean;\n            /**\n             * Object containing the period for which the plan is valid.\n             */\n            period: wix_pricing_plans_backend.Events.Period;\n        };\n    }\n    /**\n     * The Pricing Plans Orders API contains functionality for managing\n     *  your site's pricing plan [orders](https://support.wix.com/en/article/pricing-plans-an-overview).\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-pricing-plans-backend.Orders.html#)\n     */\n    interface Orders {\n        /**\n         * Cancels an existing order.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-pricing-plans-backend.Orders.html#cancelOrder)\n         */\n        cancelOrder(orderId: string, effectiveAt: string, options?: wix_pricing_plans_backend.Options): Promise<void>;\n        /**\n         * Gets an order for the currently logged-in member.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-pricing-plans-backend.Orders.html#getCurrentMemberOrder)\n         */\n        getCurrentMemberOrder(orderId: string): Promise<wix_pricing_plans_backend.Orders.Order>;\n        /**\n         * Gets an existing pricing plan order by ID.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-pricing-plans-backend.Orders.html#getOrder)\n         */\n        getOrder(orderId: string, options?: wix_pricing_plans_backend.Options): Promise<wix_pricing_plans_backend.Orders.Order>;\n        /**\n         * Lists orders for the currently logged-in member.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-pricing-plans-backend.Orders.html#listCurrentMemberOrders)\n         */\n        listCurrentMemberOrders(filters?: wix_pricing_plans_backend.Orders.CurrentMemberFilterOptions, sorting?: wix_pricing_plans_backend.Orders.SortingOptions, paging?: wix_pricing_plans_backend.Orders.PaginationOptions): Promise<wix_pricing_plans_backend.Orders.Order[]>;\n        /**\n         * Lists pricing plan orders.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-pricing-plans-backend.Orders.html#listOrders)\n         */\n        listOrders(filters?: wix_pricing_plans_backend.Orders.FilterOptions, sorting?: wix_pricing_plans_backend.Orders.SortingOptions, paging?: wix_pricing_plans_backend.Orders.PaginationOptions, options?: wix_pricing_plans_backend.Options): Promise<wix_pricing_plans_backend.Orders.Order[]>;\n        /**\n         * Marks an offline pricing plan order as paid.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-pricing-plans-backend.Orders.html#markAsPaid)\n         */\n        markAsPaid(orderId: string, options?: wix_pricing_plans_backend.Options): Promise<void>;\n        /**\n         * Pauses a pricing plans order.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-pricing-plans-backend.Orders.html#pauseOrder)\n         */\n        pauseOrder(orderId: string, options?: wix_pricing_plans_backend.Options): Promise<void>;\n        /**\n         * Extends the duration of a pricing plan order by postponing the order's `endDate`.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-pricing-plans-backend.Orders.html#postponeEndDate)\n         */\n        postponeEndDate(orderId: string, endDate: Date, options?: wix_pricing_plans_backend.Options): Promise<void>;\n        /**\n         * Starts the process of cancelling the logged-in member's pricing plan order.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-pricing-plans-backend.Orders.html#requestCurrentMemberOrderCancellation)\n         */\n        requestCurrentMemberOrderCancellation(orderId: string, effectiveAt: string): Promise<void>;\n        /**\n         * Resumes a paused pricing plan order.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-pricing-plans-backend.Orders.html#resumeOrder)\n         */\n        resumeOrder(orderId: string, options?: wix_pricing_plans_backend.Options): Promise<void>;\n    }\n    namespace Orders {\n        /**\n         * Buyer details.\n         */\n        type Buyer = {\n            /**\n             * Member ID for the buyer. See [`wix-members-backend`](wix-members-backend/introduction) to learn more about a site's members.\n             */\n            memberId: string;\n            /**\n             * Contact ID for the buyer. See [Contacts in `wix-crm-backend`](wix-crm-backend/contacts/introduction) to learn more about a site's contacts.\n             */\n            contactId: string;\n        };\n        /**\n         * Details about the cancellation of an order. Only present if the order `status` is `\"CANCELED\"`.\n         */\n        type Cancellation = {\n            /**\n             * Date and time when the cancellation was requested.\n             */\n            requestedDate: Date;\n            /**\n             * The reason for the cancellation.\n             * Supported values:\n             *  + `\"OWNER_ACTION\"`. The site owner canceled the order.\n             *  + `\"MEMBER_ACTION\"`. The buyer initiated the cancellation.\n             *  + `\"PAYMENT_FAILURE\"`. A payment transaction failed.\n             *  + `\"PAYMENT_SETUP_FAILURE\"`. The buyer's payment details weren't set up correctly.\n             */\n            cause: string;\n            /**\n             * When the cancellation takes effect. This is set when cancelling the order.\n             * Supported values:\n             *  + `\"IMMEDIATELY\"`. The cancellation occurs immediately and the buyer can no longer use the plan at this point.\n             *  + `\"NEXT_PAYMENT_DATE\"`. The cancellation occurs at the next payment date and time. The buyer can continue to use the plan until that date and time.\n             */\n            effectiveAt: string;\n        };\n        /**\n         * Coupon applied to the order.\n         *\n         * To learn more about coupons, see [applyCoupon()](wix-pricing-plans-backend/checkout/applycoupon).\n         */\n        type Coupon = {\n            /**\n             * Code of the applied coupon.\n             */\n            code: string;\n            /**\n             * Total discount of the coupon, as a monetary amount.\n             */\n            amount: string;\n            /**\n             * Coupon ID.\n             */\n            id: string;\n        };\n        /**\n         * Current payment cycle for the order.\n         *\n         * `currentCycle` will be omitted if the order's `status` is `CANCELED` or `ENDED`, or if the `startDate` hasn't been reached yet.\n         */\n        type CurrentCycle = {\n            /**\n             * Index of the current payment cycle in the order.\n             *\n             * `0` when the order is in a free trial period. In all other cases, the index starts with `1`.\n             */\n            index: number;\n            /**\n             * Start date and time for the current payment cycle.\n             */\n            startedDate: Date;\n            /**\n             * End date and time for the current payment cycle.\n             */\n            endedDate: Date;\n        };\n        /**\n         * Fields to filter by when listing orders for the current member.\n         */\n        type CurrentMemberFilterOptions = {\n            /**\n             * Specific IDs of plans that were ordered by the current member.\n             */\n            planIds?: string[];\n            /**\n             * Whether the auto-renewal of the current member's recurring orders was canceled.\n             */\n            autoRenewCanceled?: boolean;\n            /**\n             * Specific statuses for the current member's orders.\n             *  + `\"DRAFT\"`. The order has been initiated but payment has not been processed yet. The plan is not yet available for use.\n             *  + `\"PENDING\"`. Payment is being processed.  The plan is not yet available for use.\n             *  + `\"ACTIVE\"`. The order has been processed and paid for.  The plan is available for use.\n             *  + `\"PAUSED\"`. Use of the plan has been [paused](wix-pricing-plans-backend/orders/pauseorder), for example, if the buyer is away. The plan can be [resumed](wix-pricing-plans-backend/orders/resumeorder).\n             *  + `\"ENDED\"`. The order has completed its duration and is no longer available for use.\n             *  + `\"CANCELED\"`. The order has been [canceled](wix-pricing-plans-backend/orders/cancelorder).\n             */\n            orderStatuses?: string[];\n            /**\n             * Specific payment statuses for the current member's orders.\n             *  + `\"PAID\"`. The last payment was paid.\n             *  + `\"REFUNDED\"`. The last payment was refunded.\n             *  + `\"FAILED\"`. The last payment transaction did not complete.\n             *  + `\"UNPAID\"`. The last payment was not paid.\n             *  + `\"PENDING\"`. Awaiting payment.\n             *  + `\"NOT_APPLICABLE\"`. No payment was necessary, such as for free plans or free trials.\n             */\n            paymentStatuses?: string[];\n        };\n        /**\n         * Length of one payment cycle. For example, `1` `MONTH` for monthly payments.\n         */\n        type Duration = {\n            /**\n             * The amount of a duration `unit` in a single payment cycle.\n             *\n             * Currently limited to support only value of `1`.\n             */\n            count: number;\n            /**\n             * Unit of time for the cycle duration.\n             *\n             * Supported values: `\"UNDEFINED\"`, `\"DAY\"`, `\"WEEK\"`, `\"MONTH\"`, `\"YEAR\"`\n             */\n            unit: string;\n        };\n        /**\n         * Fields to filter by when listing orders.\n         */\n        type FilterOptions = {\n            /**\n             * Specific member IDs of buyers who ordered a pricing plan.\n             */\n            buyerIds?: string[];\n            /**\n             * Specific IDs of plans that were ordered.\n             */\n            planIds?: string[];\n            /**\n             * Whether the auto-renewal of recurring orders was canceled.\n             */\n            autoRenewCanceled?: boolean;\n            /**\n             * Specific order statuses.\n             *  + `\"DRAFT\"`. The order has been initiated but payment has not been processed yet. The plan is not yet available for use.\n             *  + `\"PENDING\"`. Payment is being processed.  The plan is not yet available for use.\n             *  + `\"ACTIVE\"`. The order has been processed and paid for.  The plan is available for use.\n             *  + `\"PAUSED\"`. Use of the plan has been [paused](wix-pricing-plans-backend/orders/pauseorder), for example, if the buyer is away. The plan can be [resumed](wix-pricing-plans-backend/orders/resumeorder).\n             *  + `\"ENDED\"`. The order has completed its duration and is no longer available for use.\n             *  + `\"CANCELED\"`. The order has been [canceled](wix-pricing-plans-backend/orders/cancelorder).\n             */\n            orderStatuses?: string[];\n            /**\n             * Specific payment statuses.\n             *  + `\"PAID\"`. The last payment was paid.\n             *  + `\"REFUNDED\"`. The last payment was refunded.\n             *  + `\"FAILED\"`. The last payment transaction did not complete.\n             *  + `\"UNPAID\"`. The last payment was not paid.\n             *  + `\"PENDING\"`. Awaiting payment.\n             *  + `\"NOT_APPLICABLE\"`. No payment was necessary, such as for free plans or free trials.\n             */\n            paymentStatuses?: string[];\n        };\n        type Order = {\n            /**\n             * Order ID.\n             */\n            _id: string;\n            /**\n             * ID of the plan that was ordered.\n             */\n            planId: string;\n            /**\n             * ID of the related Wix subscription.\n             *\n             * Every pricing plan order corresponds to a Wix subscription, including orders for single payment plans. You can see all orders from your site's [Subscriptions](https://www.wix.com/my-account/site-selector/?buttonText=Select%20Site&title=Select%20a%20Site&autoSelectOnSingleSite=true&actionUrl=https:%2F%2Fwww.wix.com%2Fdashboard%2F%7B%7BmetaSiteId%7D%7D%2Fsubscriptions%3FreferralInfo%3Dvelo-docs) page in the Dashboard.\n             */\n            subscriptionId: string;\n            /**\n             * ID of the associated Wix Pay order.\n             *\n             * Created by the [`createOnlineOrder()`](wix-pricing-plans-backend/checkout/createonlineorder) or [`createfflineOrder()`](wix-pricing-plans-backend/checkout/createofflineorder) function. For online orders, send this value as a parameter to the Wix Pay [`startPayment()`](wix-pay/startPayment) function to enable your buyer to pay for the order. `wixPayOrderId` is omitted if the order is free.\n             */\n            wixPayOrderId?: string;\n            /**\n             * The buyer's IDs. Includes `memberId` and `contactId`.\n             *\n             * Currently, Pricing Plan orders are limited to members only. `contactId` is returned, but a buyer will not be able to order a plan without a `memberId`.\n             */\n            buyer: wix_pricing_plans_backend.Orders.Buyer;\n            /**\n             * **Deprecated.** Use `pricing` instead.\n             */\n            priceDetails: wix_pricing_plans_backend.Orders.PriceDetails;\n            /**\n             * Order [pricing model](wix-pricing-plans-backend/introduction#pricing-models), price, and payment schedule.\n             */\n            pricing?: wix_pricing_plans_backend.Orders.Pricing;\n            /**\n             * How the order was processed.\n             * Supported values:\n             *  + `\"ONLINE\"`. The buyer ordered the plan using the site.\n             *  + `\"OFFLINE\"`. The buyer made a manual, offline order without using the site.\n             */\n            type: string;\n            /**\n             * Status of the order.\n             * Supported values:\n             *  + `\"DRAFT\"`. The order has been initiated but payment hasn't been processed yet. The plan isn't yet available for use.\n             *  + `\"PENDING\"`. The order has been processed and its start date is set in the future. The plan isn't yet available for use.\n             *  + `\"ACTIVE\"`. The order has been processed. The plan is available for use.\n             *  + `\"PAUSED\"`. The order, and use of the plan, is [paused](wix-pricing-plans-backend/orders/pauseorder). For example, if the buyer is away. The order, and use of the plan, can be [resumed](wix-pricing-plans-backend/orders/resumeorder).\n             *  + `\"ENDED\"`. The order has completed its duration and is no longer available for use.\n             *  + `\"CANCELED\"`. The order has been [canceled](wix-pricing-plans-backend/orders/cancelorder).\n             */\n            status: string;\n            /**\n             * Whether the order will be canceled at the next payment date.\n             *\n             * If `true`, the order `status` will be `CANCELED` and the next payment won't be charged. Omitted for single payment orders.\n             */\n            autoRenewCanceled?: boolean;\n            /**\n             * Details about the cancellation of an order. Only present if the `status` is `\"CANCELED\"`.\n             */\n            cancellation?: wix_pricing_plans_backend.Orders.Cancellation;\n            /**\n             * Status of the last payment for the order. This is updated automatically for online orders. The site owner updates this manually for offline orders.\n             * Supported values:\n             *  + `\"PAID\"`. The last payment was paid.\n             *  + `\"REFUNDED\"`. The last payment was refunded.\n             *  + `\"FAILED\"`. The last payment transaction didn't complete.\n             *  + `\"UNPAID\"`. The last payment wasn't paid.\n             *  + `\"PENDING\"`. Awaiting payment.\n             *  + `\"NOT_APPLICABLE\"`. No payment was necessary. For example, for free plans or free trials.\n             */\n            lastPaymentStatus: string;\n            /**\n             * Start date and time for the ordered plan.\n             */\n            startDate: Date;\n            /**\n             * Current date and time the ordered plan will expire.\n             *\n             * `endDate` may be updated over the course of an order. If the order is [paused](wix-pricing-plans-backend/orders/pauseorder), it will have a later `endDate` once it [resumes](wix-pricing-plans-backend/orders/resumeorder). `endDate` may also be [postponed](wix-pricing-plans-backend/orders/postponeenddate).\n             *\n             * Omitted if the order is valid until canceled and still `\"ACTIVE\"`.\n             */\n            endDate?: Date;\n            /**\n             * List of periods during which this order is paused.\n             */\n            pausePeriods: wix_pricing_plans_backend.Orders.PausePeriod[];\n            /**\n             * Free trial period, in days. Only available for recurring plans.\n             */\n            freeTrialDays?: string;\n            /**\n             * Earliest end date and time that the plan for this order can expire.\n             *\n             * This is calculated by adding all pause periods to the original end date. Omitted if the order is active until canceled. Reserved for future use.\n             */\n            earliestEndDate?: Date;\n            /**\n             * Current payment cycle for the order.\n             *\n             * `currentCycle` will be omitted if the order's status is `CANCELED` or `ENDED`, or if the `startDate` hasn't passed yet.\n             */\n            currentCycle: wix_pricing_plans_backend.Orders.CurrentCycle;\n            /**\n             * Name of the plan at the time of the order.\n             */\n            planName: string;\n            /**\n             * Description of the plan at the time of the order.\n             */\n            planDescription: string;\n            /**\n             * Plan price as it was at the moment of order creation.\n             */\n            planPrice: string;\n            /**\n             * Date and time the order was created.\n             */\n            _createdDate: Date;\n            /**\n             * Date and time the order was last updated. For example, the date and time an order was paused, resumed, or canceled.\n             */\n            _updatedDate: Date;\n        };\n        type OrderCopy = {\n            /**\n             * Order Copy ID.\n             */\n            _id: string;\n            /**\n             * ID of the plan that was purchased with this order.\n             */\n            planId: string;\n            /**\n             * ID of the related Wix subscription. Every pricing plan order corresponds to a Wix subscription, including orders for single payment plans. You can see all orders from your site's [Subscriptions](https://www.wix.com/my-account/site-selector/?buttonText=Select%20Site&title=Select%20a%20Site&autoSelectOnSingleSite=true&actionUrl=https:%2F%2Fwww.wix.com%2Fdashboard%2F%7B%7BmetaSiteId%7D%7D%2Fsubscriptions%3FreferralInfo%3Dvelo-docs) page in the Dashboard.\n             */\n            subscriptionId: string;\n            /**\n             * ID of the associated Wix Pay order, created by the [`createOnlineOrder()`](wix-pricing-plans-backend/checkout/createonlineorder) function. Send this value as a parameter to the Wix Pay [`startPayment()`](wix-pay/startPayment) function to enable your buyer to pay for the order. `wixPayOrderId` is omitted if the order is free.\n             */\n            wixPayOrderId?: string;\n            /**\n             * Buyer details.\n             */\n            buyer: wix_pricing_plans_backend.Orders.Buyer;\n            /**\n             * Order pricing details for one payment cycle, payment schedule, and expiration.\n             */\n            priceDetails: wix_pricing_plans_backend.Orders.PriceDetails;\n            /**\n             * Order pricing model, price, and payment schedule.\n             */\n            pricing?: wix_pricing_plans_backend.Orders.Pricing;\n            /**\n             * How the order was processed.\n             * One of:\n             *  + `\"ONLINE\"`. The buyer purchased the plan using the site.\n             *  + `\"OFFLINE\"`. The buyer made a manual, offline purchase without using the site.\n             */\n            type: string;\n            /**\n             * Status of the order.\n             * One of:\n             *  + `\"DRAFT\"`. The order has been initiated but payment hasn't been processed yet. The plan isn't yet available for use.\n             *  + `\"PENDING\"`. Payment is being processed. The plan isn't yet available for use.\n             *  + `\"ACTIVE\"`. The order has been processed and paid for. The plan is available for use.\n             *  + `\"PAUSED\"`. Use of the plan has been [paused](wix-pricing-plans-backend/orders/pauseorder), for example, if the buyer is away. The plan can be [resumed](wix-pricing-plans-backend/orders/resumeorder).\n             *  + `\"ENDED\"`. The order has completed its duration and is no longer available for use.\n             *  + `\"CANCELED\"`. The order has been [canceled](wix-pricing-plans-backend/orders/cancelorder).\n             */\n            status: string;\n            /**\n             * If true, next payment won't be charged at the next scheduled payment date. The order `status` will become `\"CANCELED\"` at the expiration date. Omitted for single payment orders.\n             */\n            autoRenewCanceled?: boolean;\n            /**\n             * Details about the cancellation of an order. Omitted if the order `status` isn't `\"CANCELED\"`.\n             */\n            cancellation?: wix_pricing_plans_backend.Orders.Cancellation;\n            /**\n             * Status of the last payment for the order. The site owner updates this manually for offline orders.\n             * One of:\n             *  + `\"PAID\"`. The last payment was paid.\n             *  + `\"REFUNDED\"`. The last payment was refunded.\n             *  + `\"FAILED\"`. The last payment transaction didn't complete.\n             *  + `\"UNPAID\"`. The last payment wasn't paid.\n             *  + `\"PENDING\"`. Awaiting payment.\n             *  + `\"NOT_APPLICABLE\"`. No payment was necessary, such as for free plans or free trials.\n             */\n            lastPaymentStatus: string;\n            /**\n             * Date the plan for this order will become active.\n             */\n            startDate: Date;\n            /**\n             * Date the plan for this order will expire. Omitted if the order is active until canceled.\n             */\n            endDate?: Date;\n            /**\n             * List of periods during which this order is paused, if there are any.\n             */\n            pausePeriods: wix_pricing_plans_backend.Orders.PausePeriod[];\n            /**\n             * Free trial period, in days. Only available for recurring plans.\n             */\n            freeTrialDays?: string;\n            /**\n             * Earliest possible date that the plan for this order can end. This is calculated by adding all pause periods to the original end date. This date is used as a boundary for extending or shortening the duration of a plan. You can't set a plan to expire before this date. Omitted if the order is active until canceled.\n             */\n            earliestEndDate?: Date;\n            /**\n             * Current payment cycle for the order.\n             *\n             * `currentCycle` will be omitted if the order's status is `CANCELLED` or `ENDED`, or if the `startDate` hasn't passed yet.\n             */\n            currentCycle: wix_pricing_plans_backend.Orders.CurrentCycle;\n            /**\n             * Name of the plan at the time of the order.\n             */\n            planName: string;\n            /**\n             * Description of the plan at the time of the order.\n             */\n            planDescription: string;\n            /**\n             * Plan price as it was at the moment of order creation.\n             */\n            planPrice: string;\n            /**\n             * Date order was created. This is the date before initiating a payment or any other actions.\n             */\n            _createdDate: Date;\n            /**\n             * Date order was last updated, such as the date an order was paused, resumed, or canceled.\n             */\n            _updatedDate: Date;\n        };\n        /**\n         * The order has recurring payments.\n         */\n        type OrderRecurrence = {\n            /**\n             * Length of one payment cycle. For example, `1` `MONTH` for monthly payments.\n             */\n            cycleDuration: wix_pricing_plans_backend.Orders.Duration;\n            /**\n             * Amount of payment cycles this subscription is valid for.\n             *\n             * `0` for orders of plans that are unlimited or until-canceled.\n             */\n            cycleCount: number;\n        };\n        type PaginationOptions = {\n            /**\n             * Limit the number of orders returned.\n             *\n             * Default: `50`\n             */\n            limit?: number;\n            /**\n             * Number of entries to skip.\n             */\n            skip?: number;\n        };\n        /**\n         * Period during which the order of a plan is suspended.\n         */\n        type PausePeriod = {\n            /**\n             * Status of the pause period.\n             * Supported values:\n             *  + `\"ACTIVE\"`. Status while the order is [paused](wix-pricing-plans-backend/orders/pauseorder).\n             *  + `\"ENDED\"`. Status while the order is [resumed](wix-pricing-plans-backend/orders/resumeorder).\n             */\n            status: string;\n            /**\n             * Start date and time of the pause period.\n             */\n            pauseDate: Date;\n            /**\n             * End date and time of the pause period.\n             *\n             * Omitted while the pause period remains `\"ACTIVE\"`.\n             */\n            resumeDate: Date;\n        };\n        /**\n         * Order price details.\n         */\n        type Price = {\n            /**\n             * Price of the order excluding tax, specified as a monetary amount. For example, `\"9.99\"`.\n             */\n            subtotal: string;\n            /**\n             * Coupon applied to the order.\n             *\n             * To learn more about coupons, see [applyCoupon()](wix-pricing-plans-backend/checkout/applycoupon).\n             */\n            coupon: wix_pricing_plans_backend.Orders.Coupon;\n            /**\n             * Total discount applied to the order.\n             */\n            discount: string;\n            /**\n             * Tax applied to the order.\n             */\n            tax?: wix_pricing_plans_backend.Orders.Tax;\n            /**\n             * Price after tax and discount is applied, specified as a monetary amount. For example, `\"13.98\"`.\n             *\n             * If no tax is applied, this amount is the same as `subtotal`.\n             */\n            total: string;\n            /**\n             * Three-letter currency code in [ISO 4217 alphabetic](https://en.wikipedia.org/wiki/ISO_4217#Active_codes) format.\n             */\n            currency: string;\n        };\n        /**\n         * **Deprecated.** Use `pricing` instead.\n         */\n        type PriceDetails = {\n            /**\n             * Price of the order, excluding tax. Specified as a monetary amount, such as `\"3.99\"`.\n             */\n            subtotal: string;\n            /**\n             * Tax applied for the plan. Omitted if no tax was applied.\n             */\n            tax?: wix_pricing_plans_backend.Orders.Tax;\n            /**\n             * Price after tax is applied. Specified as a monetary amount, such as `\"4.98\"`. If no tax was applied, this amount is the same as `subtotal`.\n             */\n            total: string;\n            /**\n             * Price of the plan when the order was created. This price is the amount for a single payment. For subscriptions, this is the amount to pay for each single payment cycle and the `planPrice` is required. Otherwise, the payment is for the entire plan.\n             */\n            planPrice: string;\n            /**\n             * Currency code. Must be a valid [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code (for example, `\"USD\"`).\n             */\n            currency: string;\n            /**\n             * Pricing model indicating that the order has recurring payments. This type of subscription isn't a \"Wix subscription,\" which encompasses various types of subscriptions, such as Wix Stores subscriptions, Wix invoice subscriptions, and *all* pricing plan models.\n             */\n            subscription?: wix_pricing_plans_backend.Orders.OrderRecurrence;\n            /**\n             * Pricing model indicating that the order is paid with a single payment per cycle and what the length of the cycle is. The cycle is the duration of the order's plan, not a payment cycle.\n             */\n            singlePaymentForDuration?: wix_pricing_plans_backend.Duration;\n            /**\n             * Pricing model indicating that the order of the plan is paid in one single payment and that the order is active until canceled.\n             */\n            singlePaymentUnlimited?: boolean;\n            /**\n             * Free trial period for the order in days. Available only for orders whose plans are recurring, meaning plans whose pricing model is `subscription`.\n             */\n            freeTrialDays?: number;\n        };\n        /**\n         * Cycle duration to apply `price` for.\n         */\n        type PriceDuration = {\n            /**\n             * Price starts to apply with this cycle.\n             *\n             * `1` is the first payment cycle for all pricing models.\n             */\n            cycleFrom: number;\n            /**\n             * Amount of cycles to apply price for.\n             *\n             * For `subscription` pricing models with a finite number of cycles, the `numberOfCycles` is the same as `pricing.subscription.cycleCount`.\n             *\n             * For `subscription` pricing models that are unlimited or until-canceled, the `numberOfCycles` is not returned.\n             *\n             * For `singlePaymentForDuration` and `singlePaymentUnlimited` pricing models, the `numberOfCycles` is `1`.\n             */\n            numberOfCycles: number;\n        };\n        /**\n         * Pricing details for all pricing models.\n         */\n        type Prices = {\n            /**\n             * Cycle duration to apply `price` for.\n             *\n             * Use with all pricing models. Can apply the same price to multiple payment cycles.\n             */\n            duration: wix_pricing_plans_backend.Orders.PriceDuration;\n            /**\n             * Order price.\n             */\n            price: wix_pricing_plans_backend.Orders.Price;\n        };\n        /**\n         * Order pricing model, price, and payment schedule.\n         */\n        type Pricing = {\n            /**\n             * Pricing model for an order with recurring payment cycles.\n             */\n            subscription?: wix_pricing_plans_backend.Orders.OrderRecurrence;\n            /**\n             * Pricing model for an order with a one-time payment and the order is valid for a specific amount of time.\n             */\n            singlePaymentForDuration?: wix_pricing_plans_backend.Orders.Duration;\n            /**\n             * Pricing model for an order with a one-time payment and the order is valid until canceled.\n             */\n            singlePaymentUnlimited?: boolean;\n            /**\n             * Pricing details for all pricing models.\n             */\n            prices: wix_pricing_plans_backend.Orders.Prices;\n        };\n        /**\n         * Sorting details.\n         */\n        type SortingOptions = {\n            /**\n             * Name of the property to sort by.\n             *\n             * Supported values: `_createdDate`, `endDate`\n             *\n             * Default: `_createdDate`\n             */\n            fieldName?: string;\n            /**\n             * Sort order.\n             *\n             * Supported values:\n             * + `\"ASC\"`: Ascending\n             * + `\"DESC\"`: Descending\n             *\n             * Default: `\"ASC\"`\n             */\n            order?: string;\n        };\n        /**\n         * Tax applied to the order. If empty, no tax was applied.\n         */\n        type Tax = {\n            /**\n             * Name of the tax. For example, VAT.\n             */\n            name: string;\n            /**\n             * Whether tax is included in the original price. When `false`, tax is added at checkout.\n             */\n            includedInPrice: boolean;\n            /**\n             * Tax rate percentage, as a number between 0 and 100. For example, a 7% tax rate is `\"7.00\"`.\n             */\n            rate: string;\n            /**\n             * Total tax, specified as a monetary amount. For example, `\"3.99\"`.\n             */\n            amount: string;\n        };\n    }\n    /**\n     * Contains functionality for refining a public pricing plan query.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-pricing-plans-backend.PublicPlansQueryBuilder.html#)\n     */\n    interface PublicPlansQueryBuilder {\n        /**\n         * Adds an `and` condition to the query.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-pricing-plans-backend.PublicPlansQueryBuilder.html#and)\n         */\n        and(query: wix_pricing_plans_backend.PublicPlansQueryBuilder): wix_pricing_plans_backend.PublicPlansQueryBuilder;\n        /**\n         * Adds a sort to a query, sorting by the specified properties in ascending order.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-pricing-plans-backend.PublicPlansQueryBuilder.html#ascending)\n         */\n        ascending(...propertyName: string[]): wix_pricing_plans_backend.PublicPlansQueryBuilder;\n        /**\n         * Refines a query to match items whose specified property value is within a specified range.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-pricing-plans-backend.PublicPlansQueryBuilder.html#between)\n         */\n        between(propertyName: string, rangeStart: string | number | Date, rangeEnd: string | number | Date): wix_pricing_plans_backend.PublicPlansQueryBuilder;\n        /**\n         * Refines a query to match items whose specified property value contains a specified string.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-pricing-plans-backend.PublicPlansQueryBuilder.html#contains)\n         */\n        contains(propertyName: string, string: string): wix_pricing_plans_backend.PublicPlansQueryBuilder;\n        /**\n         * Adds a sort to a query or sort, sorting by the specified properties in descending order.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-pricing-plans-backend.PublicPlansQueryBuilder.html#descending)\n         */\n        descending(...propertyName: string[]): wix_pricing_plans_backend.PublicPlansQueryBuilder;\n        /**\n         * Refines a query to match items whose specified property value ends with a specified string.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-pricing-plans-backend.PublicPlansQueryBuilder.html#endsWith)\n         */\n        endsWith(propertyName: string, string: string): wix_pricing_plans_backend.PublicPlansQueryBuilder;\n        /**\n         * Refines a query to match items whose specified property value equals the specified value.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-pricing-plans-backend.PublicPlansQueryBuilder.html#eq)\n         */\n        eq(propertyName: string, value: any): wix_pricing_plans_backend.PublicPlansQueryBuilder;\n        /**\n         * Returns the items that match the query.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-pricing-plans-backend.PublicPlansQueryBuilder.html#find)\n         */\n        find(): Promise<wix_pricing_plans_backend.PublicPlansQueryResult>;\n        /**\n         * Refines a query to match items whose specified property value is greater than or equal to the specified value.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-pricing-plans-backend.PublicPlansQueryBuilder.html#ge)\n         */\n        ge(propertyName: string, value: string | number | Date): wix_pricing_plans_backend.PublicPlansQueryBuilder;\n        /**\n         * Refines a query to match items whose specified property value is greater than the specified value.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-pricing-plans-backend.PublicPlansQueryBuilder.html#gt)\n         */\n        gt(propertyName: string, value: string | number | Date): wix_pricing_plans_backend.PublicPlansQueryBuilder;\n        /**\n         * Refines a query to match items whose specified property contains any of the specified `value` parameters.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-pricing-plans-backend.PublicPlansQueryBuilder.html#hasSome)\n         */\n        hasSome(propertyName: string, values: string[]): wix_pricing_plans_backend.PublicPlansQueryBuilder;\n        /**\n         * Refines a query to match items whose specified property value is less than or equal to the specified value.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-pricing-plans-backend.PublicPlansQueryBuilder.html#le)\n         */\n        le(propertyName: string, value: string | number | Date): wix_pricing_plans_backend.PublicPlansQueryBuilder;\n        /**\n         * Limits the number of items the query returns.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-pricing-plans-backend.PublicPlansQueryBuilder.html#limit)\n         */\n        limit(limit: number): wix_pricing_plans_backend.PublicPlansQueryBuilder;\n        /**\n         * Refines a query to match items whose specified property value is less than the specified value.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-pricing-plans-backend.PublicPlansQueryBuilder.html#lt)\n         */\n        lt(propertyName: string, value: string | number | Date): wix_pricing_plans_backend.PublicPlansQueryBuilder;\n        /**\n         * Refines a query to match items whose specified property value does not equal the specified value.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-pricing-plans-backend.PublicPlansQueryBuilder.html#ne)\n         */\n        ne(propertyName: string, value: any): wix_pricing_plans_backend.PublicPlansQueryBuilder;\n        /**\n         * Adds a `not` condition to the query.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-pricing-plans-backend.PublicPlansQueryBuilder.html#not)\n         */\n        not(query: wix_pricing_plans_backend.PublicPlansQueryBuilder): wix_pricing_plans_backend.PublicPlansQueryBuilder;\n        /**\n         * Adds an `or` condition to the query.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-pricing-plans-backend.PublicPlansQueryBuilder.html#or)\n         */\n        or(query: wix_pricing_plans_backend.PublicPlansQueryBuilder): wix_pricing_plans_backend.PublicPlansQueryBuilder;\n        /**\n         * Sets the number of items to skip before returning query results.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-pricing-plans-backend.PublicPlansQueryBuilder.html#skip)\n         */\n        skip(skip: number): wix_pricing_plans_backend.PublicPlansQueryBuilder;\n        /**\n         * Refines a query to match items whose specified property value starts with a specified string.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-pricing-plans-backend.PublicPlansQueryBuilder.html#startsWith)\n         */\n        startsWith(propertyName: string, string: string): wix_pricing_plans_backend.PublicPlansQueryBuilder;\n    }\n    /**\n     * The results of a public pricing plans query, containing the retrieved items.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-pricing-plans-backend.PublicPlansQueryResult.html#)\n     */\n    interface PublicPlansQueryResult {\n        /**\n         * Returns the index of the current results page number.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-pricing-plans-backend.PublicPlansQueryResult.html#currentPage)\n         */\n        readonly currentPage: number;\n        /**\n         * Returns the items that match the query.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-pricing-plans-backend.PublicPlansQueryResult.html#items)\n         */\n        readonly items: wix_pricing_plans_backend.PublicPlansQueryResult.Item[];\n        /**\n         * Returns the number of items in the current results page.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-pricing-plans-backend.PublicPlansQueryResult.html#length)\n         */\n        readonly length: number;\n        /**\n         * Returns the query page size.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-pricing-plans-backend.PublicPlansQueryResult.html#pageSize)\n         */\n        readonly pageSize: number;\n        /**\n         * Returns the query used to get the current results.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-pricing-plans-backend.PublicPlansQueryResult.html#query)\n         */\n        readonly query: wix_pricing_plans_backend.PublicPlansQueryBuilder;\n        /**\n         * Returns the total number of items that match the query.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-pricing-plans-backend.PublicPlansQueryResult.html#totalCount)\n         */\n        readonly totalCount: number;\n        /**\n         * Returns the total number of pages the query produced.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-pricing-plans-backend.PublicPlansQueryResult.html#totalPages)\n         */\n        readonly totalPages: number;\n        /**\n         * Indicates if the query has more results.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-pricing-plans-backend.PublicPlansQueryResult.html#hasNext)\n         */\n        hasNext(): boolean;\n        /**\n         * Indicates the query has previous results.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-pricing-plans-backend.PublicPlansQueryResult.html#hasPrev)\n         */\n        hasPrev(): boolean;\n        /**\n         * Retrieves the next page of query results.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-pricing-plans-backend.PublicPlansQueryResult.html#next)\n         */\n        next(): Promise<wix_pricing_plans_backend.PublicPlansQueryResult>;\n        /**\n         * Retrieves the previous page of query results.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-pricing-plans-backend.PublicPlansQueryResult.html#prev)\n         */\n        prev(): Promise<wix_pricing_plans_backend.PublicPlansQueryResult>;\n    }\n    namespace PublicPlansQueryResult {\n        /**\n         * An item returned by a query.\n         */\n        type Item = {\n            /**\n             * An item that matches the query.\n             */\n            publicPlan: wix_pricing_plans_backend.PublicPlan;\n        };\n    }\n    type CreatePlanInfo = {\n        /**\n         * Plan name.\n         */\n        name: string;\n        /**\n         * Plan price, payment schedule, and expiration.\n         */\n        pricing: wix_pricing_plans_backend.PricingInfo;\n        /**\n         * Plan description.\n         */\n        description?: string;\n        /**\n         * List of text strings that promote the pricing plan (for example, \"Plenty of parking\" or \"Free gift on your birthday\").\n         */\n        perks?: string[];\n        /**\n         * Whether the plan is public (visible to site visitors). Defaults to `true`.\n         */\n        public?: boolean;\n        /**\n         * Whether the same buyer can purchase the plan multiple times. `1` means the buyer can only purchase the plan once. An empty value or `0` means no limitation. Defaults to empty.\n         */\n        maxPurchasesPerBuyer?: number;\n        /**\n         * Whether the buyer can start the plan at a later date. Defaults to `false`.\n         */\n        allowFutureStartDate?: boolean;\n        /**\n         * Whether the buyer is allowed to cancel their plan. Defaults to `true`.  If `true`, calling the [`cancelOrder()`](wix-paid-plans/cancelOrder) function returns an error.\n         */\n        buyerCanCancel?: boolean;\n        /**\n         * Any terms and conditions that apply to the plan. This information is displayed during checkout.\n         */\n        termsAndConditions?: string;\n    };\n    /**\n     * Length of one payment cycle, for example, 3 months to have quarterly payments.\n     */\n    type Duration = {\n        /**\n         * Number of days, months, weeks, or years.\n         */\n        count: number;\n        /**\n         * Days, months, weeks, or years.\n         * One of:\n         *  + `\"DAY\"`\n         *  + `\"WEEK\"`\n         *  + `\"MONTH\"`\n         *  + `\"YEAR\"`\n         */\n        unit: string;\n    };\n    /**\n     * Length of one payment cycle, for example, 3 months to have quarterly payments.\n     */\n    type DurationInfo = {\n        /**\n         * Number of days, months, weeks, or years.\n         */\n        count?: number;\n        /**\n         * Days, months, weeks, or years.\n         * One of:\n         *  + `\"DAY\"`\n         *  + `\"WEEK\"`\n         *  + `\"MONTH\"`\n         *  + `\"YEAR\"`\n         */\n        unit?: string;\n    };\n    type ListPlanInfo = {\n        /**\n         * Number of pricing plans to list. Defaults to 50.\n         */\n        limit?: number;\n        /**\n         * Number of pricing plans to skip. Defaults to 0.\n         */\n        skip?: number;\n        /**\n         * Archived filter. Defaults to ACTIVE (not archived) only.\n         * One of:\n         *  + `\"ACTIVE\"`\n         *  + `\"ARCHIVED\"`\n         *  + `\"ARCHIVED_AND_ACTIVE\"`\n         */\n        archived?: string;\n        /**\n         * Visibility filter. Defaults to PUBLIC_AND_HIDDEN (meaning, both are listed).\n         * One of:\n         *  + `\"PUBLIC_AND_HIDDEN\"`\n         *  + `\"PUBLIC\"`\n         *  + `\"HIDDEN\"`\n         */\n        public?: string;\n    };\n    type ListPublicPlanOptions = {\n        /**\n         * Number of public pricing plans to list. Defaults to 50.\n         */\n        limit?: number;\n        /**\n         * Number of public pricing plans to skip. Defaults to 0.\n         */\n        skip?: number;\n    };\n    /**\n     * Amount for a single payment. For subscriptions, this is the amount to pay for each single payment cycle and it is required. Otherwise, the single payment for the entire plan.\n     */\n    type Money = {\n        /**\n         * Monetary amount. Decimal string with a period as a decimal separator (for example, 3.99). Cannot be negative.\n         */\n        value: string;\n        /**\n         * Currency code. Must be a valid [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code (for example, USD).\n         */\n        currency: string;\n    };\n    /**\n     * Amount for a single payment. For subscriptions, this is the amount to pay for each single payment cycle and it is required. Otherwise, the single payment for the entire plan.\n     */\n    type MoneyInfo = {\n        /**\n         * Monetary amount. Decimal string with a period as a decimal separator (for example, 3.99). Cannot be negative.\n         */\n        value?: string;\n        /**\n         * Currency code. Must be a valid [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code (for example, USD).\n         */\n        currency?: string;\n    };\n    type Options = {\n        /**\n         * Whether to suppress permission checks from running for the operation.\n         *\n         * Default: `false`\n         */\n        suppressAuth?: boolean;\n    };\n    /**\n     * A text string promoting the pricing plan (for example, \"Plenty of parking\" or \"Free gift on your birthday\").\n     */\n    type Perk = {\n        /**\n         * Text listing one perk of this plan.\n         */\n        value: string;\n    };\n    /**\n     * List of text strings that promote the pricing plan (for example, \"Plenty of parking\" or \"Free gift on your birthday\").\n     */\n    type Perks = {\n        /**\n         * A list of strings promoting the pricing plan.\n         */\n        value?: wix_pricing_plans_backend.Perk[];\n    };\n    type Plan = {\n        /**\n         * Plan ID.\n         */\n        _id: string;\n        /**\n         * Plan name.\n         */\n        name: string;\n        /**\n         * Plan description.\n         */\n        description: string;\n        /**\n         * List of text strings that promote the pricing plan (for example, \"Plenty of parking\" or \"Free gift on your birthday\").\n         */\n        perks: string[];\n        /**\n         * Plan price, payment schedule, and expiration.\n         */\n        pricing: wix_pricing_plans_backend.Pricing;\n        /**\n         * Whether the plan is public (visible to site visitors).\n         */\n        public: boolean;\n        /**\n         * Whether the plan is archived. Archived plans are not visible and can't be purchased anymore, but existing purchases remain in effect.\n         */\n        archived: boolean;\n        /**\n         * Whether the plan is marked as primary. If `true`, the plan is highlighted on the site with a custom ribbon. Defaults to `false`.\n         */\n        primary: boolean;\n        /**\n         * Whether the plan has any orders (including pending and unpaid orders).\n         */\n        hasOrders: boolean;\n        /**\n         * Date plan was created.\n         */\n        _createdDate: Date;\n        /**\n         * Date plan was last updated.\n         */\n        _updatedDate: Date;\n        /**\n         * URL-friendly version of the plan name. Unique across all plans in the same site.\n         */\n        slug: string;\n        /**\n         * Whether the buyer can start the plan at a later date.\n         */\n        allowFutureStartDate: boolean;\n        /**\n         * Whether the buyer is allowed to cancel their plan. If `false`, calling the [`cancelOrder()`](wix-paid-plans/cancelOrder) function returns an error.\n         */\n        buyerCanCancel: boolean;\n        /**\n         * Whether the same buyer can purchase the plan multiple times. `1` means the buyer can only purchase the plan once. An empty value or `0` means no limitation.\n         */\n        maxPurchasesPerBuyer?: number;\n        /**\n         * Any terms and conditions that apply to the plan. This information is displayed during checkout.\n         */\n        termsAndConditions?: string;\n    };\n    type Plans = {\n        /**\n         * List of public and hidden pricing plans.\n         */\n        plans: wix_pricing_plans_backend.Plan[];\n    };\n    type PlansStats = {\n        /**\n         * Total number of plans created, including active plans (both public and hidden) and archived plans.\n         */\n        total: number;\n    };\n    /**\n     * Pricing plan's pricing details, such as the plan price, payment schedule, and expiration. The payment schedule and expiration are based on one of three [pricing models](wix-pricing-plans-backend/introduction): `subscription`, `singlePaymentForDuration`, or `singlePaymentUnlimited`. Only one pricing model can be specified per plan.\n     */\n    type Pricing = {\n        /**\n         * Pricing model indicating that the plan has recurring payments. This type of subscription is not a \"Wix subscription,\" which encompasses various types of subscriptions, such as Wix Stores subscriptions, Wix invoice subscriptions, and *all* pricing plan models.\n         */\n        subscription?: wix_pricing_plans_backend.Recurrence;\n        /**\n         * Pricing model indicating that the plan is paid with a single payment per cycle and what the length of the cycle is. The cycle is the duration of the plan, not a payment cycle.\n         */\n        singlePaymentForDuration?: wix_pricing_plans_backend.Duration;\n        /**\n         * Pricing model indicating that the plan is paid in one single payment and that the plan is valid until canceled.\n         */\n        singlePaymentUnlimited?: boolean;\n        /**\n         * Amount for a single payment. For subscriptions, this is the amount to pay for each single payment cycle and it is required. Otherwise, the single payment for the entire plan.\n         */\n        price: wix_pricing_plans_backend.Money;\n        /**\n         * Free trial period for the plan in days. Available only for recurring plans, meaning plans whose pricing model is `subscription`.\n         */\n        freeTrialDays?: number;\n    };\n    /**\n     * Pricing plan's pricing details, such as the plan price, payment schedule, and expiration. The payment schedule and expiration are based on one of three [pricing models](wix-pricing-plans-backend/introduction): `subscription`, `singlePaymentForDuration`, or `singlePaymentUnlimited`.\n     */\n    type PricingInfo = {\n        /**\n         * Pricing model indicating that the plan has recurring payments.\n         */\n        subscription?: wix_pricing_plans_backend.Recurrence;\n        /**\n         * Pricing model indicating that the plan is paid with a single payment per cycle and what the Length of the cycle is. The cycle is the duration of the plan, not a payment cycle.\n         */\n        singlePaymentForDuration?: wix_pricing_plans_backend.Duration;\n        /**\n         * Pricing model indicating that the plan is paid in one single payment and that the plan is valid until canceled.\n         */\n        singlePaymentUnlimited?: boolean;\n        /**\n         * Amount for a single payment. For subscriptions, this is the amount to pay for each single payment cycle and it is required. Otherwise, the single payment for the entire plan.\n         */\n        price?: wix_pricing_plans_backend.MoneyInfo;\n        /**\n         * Free trial period for the plan in days. Available only for recurring plans, meaning plans whose pricing model is `subscription`.\n         */\n        freeTrialDays?: number;\n    };\n    /**\n     * Public pricing plan entity containing information about the pricing plan. Can be read by any site member or visitor.\n     */\n    type PublicPlan = {\n        /**\n         * Plan ID.\n         */\n        _id: string;\n        /**\n         * Plan name.\n         */\n        name: string;\n        /**\n         * Plan description.\n         */\n        description: string;\n        /**\n         * List of text strings that promote the pricing plan (for example, \"Plenty of parking\" or \"Free gift on your birthday\").\n         */\n        perks: string[];\n        /**\n         * Plan price, payment schedule, and expiration.\n         */\n        pricing: wix_pricing_plans_backend.Pricing;\n        /**\n         * Whether the plan is marked as primary. If `true`, the plan is highlighted on the site with a custom ribbon. Defaults to `false`.\n         */\n        primary: boolean;\n        /**\n         * Date plan was created.\n         */\n        _createdDate: Date;\n        /**\n         * Date plan was last updated.\n         */\n        _updatedDate: Date;\n        /**\n         * URL-friendly version of the plan name. Unique across all plans in the same site.\n         */\n        slug: string;\n        /**\n         * Whether the buyer can start the plan at a later date. Defaults to `false`.\n         */\n        allowFutureStartDate: boolean;\n        /**\n         * Whether the buyer is allowed to cancel their plan. Defaults to `false`. If `false`, calling the [`cancelOrder()`](wix-paid-plans/cancelOrder) function returns an error.\n         */\n        buyerCanCancel: boolean;\n        /**\n         * Whether the same buyer can purchase the plan multiple times. `1` means the buyer can only purchase the plan once. An empty value or `0` means no limitation. Defaults to empty.\n         */\n        maxPurchasesPerBuyer?: number;\n        /**\n         * Any terms and conditions that apply to the plan. This information is displayed during checkout.\n         */\n        termsAndConditions?: string;\n    };\n    type PublicPlans = {\n        /**\n         * List of public pricing plans.\n         */\n        publicPlans: wix_pricing_plans_backend.PublicPlan[];\n    };\n    /**\n     * The pricing plan has recurring payments.\n     */\n    type Recurrence = {\n        /**\n         * Length of one payment cycle, for example, 1 month to have monthly payments. Multiply `cycleDuration`'s `count` by `cycleCount` to get the subscription duration. *Currently, only a value of `1` is supported.*\n         */\n        cycleDuration: wix_pricing_plans_backend.Duration;\n        /**\n         * Number of cycles. Zero for unlimited plans and plans that are valid until canceled.\n         */\n        cycleCount: number;\n    };\n    /**\n     * The pricing plan has recurring payments.\n     */\n    type RecurrenceInfo = {\n        /**\n         * Length of one payment cycle, for example, 1 month to have monthly payments. Multiply `cycleDuration`'s `count` by `cycleCount` to get the subscription duration. *Currently, only a value of `1` is supported.*\n         */\n        cycleDuration?: wix_pricing_plans_backend.DurationInfo;\n        /**\n         * Number of cycles. Zero for unlimited plans and plans that are valid until canceled.\n         */\n        cycleCount?: number;\n    };\n    type UpdatePlanInfo = {\n        /**\n         * Plan ID.\n         */\n        _id: string;\n        /**\n         * Plan name.\n         */\n        name?: string;\n        /**\n         * Plan description.\n         */\n        description?: string;\n        /**\n         * List of text strings that promote the pricing plan (for example, \"Plenty of parking\" or \"Free gift on your birthday\").\n         */\n        perks?: string[];\n        /**\n         * Plan price, payment schedule, and expiration.\n         */\n        pricing?: wix_pricing_plans_backend.PricingInfo;\n        /**\n         * Whether the plan is public (visible to site visitors).\n         */\n        public?: boolean;\n        /**\n         * Whether the same buyer can purchase the plan multiple times. `1` means the buyer can only purchase the plan once. An empty value or `0` means no limitation. Defaults to empty.\n         */\n        maxPurchasesPerBuyer?: number;\n        /**\n         * Whether the buyer can start the plan at a later date.\n         */\n        allowFutureStartDate?: boolean;\n        /**\n         * Whether the buyer is allowed to cancel their plan. If `false`, calling the [`cancelOrder()`](wix-paid-plans/cancelOrder) function returns an error.\n         */\n        buyerCanCancel?: boolean;\n        /**\n         * Any terms and conditions that apply to the plan. This information is displayed during checkout.\n         */\n        termsAndConditions?: string;\n    };\n}\ndeclare namespace wix_realtime {\n    /**\n     * An object representing a channel or channel resource.\n     *  Site visitors can subscribe to a channel or channel resource to receive the\n     *  messages that are published on it. When site visitors subscribe to a channel, they do not\n     *  receive messages published to a resource on that same channel. Similarly,\n     *  when site visitors subscribe to a channel resource, they do not\n     *  receive messages published to that same channel without a specified resource.\n     *  Channel resources inherit their parent channel's permissions, unless specified\n     *  otherwise.\n     */\n    type Channel = {\n        /**\n         * Channel name. Cannot exceed 140 characters.\n         */\n        name: string;\n        /**\n         * ID of a specific channel resource.\n         */\n        resourceId?: string;\n    };\n    /**\n     * An object representing an error.\n     */\n    type Error = {\n        /**\n         * Error code.\n         *\n         *  One of:\n         *\n         *  + `1`: Connection error\n         *  + `2`: Subscription error (error will also include a channel value)\n         *  + `3`: Bad input\n         */\n        errorCode: number;\n        /**\n         * Error message.\n         */\n        message: string;\n        /**\n         * Channel related to the error.\n         */\n        channel?: wix_realtime.Channel;\n    };\n    /**\n     * An object representing a published message.\n     */\n    type Message = {\n        /**\n         * Message payload.\n         *  Max: 10kb\n         */\n        payload: any;\n        /**\n         * Message publisher, if sent.\n         */\n        publisher?: wix_realtime.Publisher;\n    };\n    /**\n     * An object representing a publisher.\n     */\n    type Publisher = {\n        /**\n         * ID of the publisher.\n         */\n        id: string;\n    };\n    /**\n     * An object containing options to be used when unsubscribing from a\n     *  channel or channel resource.\n     */\n    type UnsubscribeOptions = {\n        /**\n         * The channel, and optionally the resource, to\n         *  unsubscribe from. Use this property when unsubscribing from all subscriptions to a channel\n         *  or channel resource.\n         */\n        channel?: wix_realtime.Channel;\n        /**\n         * ID of the subscription to unsubscribe from. Use this\n         *  property when unsubscribing from one of multiple subscriptions to a channel or channel\n         *  resource.\n         */\n        subscriptionId?: string;\n    };\n    type ConnectionHandler = () => void;\n    type DisconnectionHandler = () => void;\n    type ErrorHandler = (error: wix_realtime.Error) => void;\n    type MessageHandler = (message: wix_realtime.Message, channel: wix_realtime.Channel) => void;\n}\ndeclare namespace wix_realtime_backend {\n    /**\n     * A router for defining and checking permissions.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-realtime-backend.PermissionsRouter.html#)\n     */\n    interface PermissionsRouter {\n        /**\n         * Sets a permissions handler for a specific channel or channel resource.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-realtime-backend.PermissionsRouter.html#add)\n         */\n        add(channel: wix_realtime_backend.Channel, handler: wix_realtime_backend.PermissionsRouter.PermissionsHandler): Promise<void> & void;\n        /**\n         * Checks the permissions for a subscriber on a channel or channel resource.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-realtime-backend.PermissionsRouter.html#check)\n         */\n        check(channel: wix_realtime_backend.Channel, subscriber: wix_realtime_backend.Subscriber): Promise<wix_realtime_backend.ChannelPermissions> & wix_realtime_backend.ChannelPermissions;\n        /**\n         * Sets a permissions handler for default permissions.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-realtime-backend.PermissionsRouter.html#default)\n         */\n        default(handler: wix_realtime_backend.PermissionsRouter.PermissionsHandler): void;\n    }\n    namespace PermissionsRouter {\n        type PermissionsHandler = (channel: wix_realtime_backend.Channel, subscriber: wix_realtime_backend.Subscriber) => Promise<wix_realtime_backend.ChannelPermissions> | wix_realtime_backend.ChannelPermissions;\n    }\n    /**\n     * An object representing a channel or channel resource.\n     *  Site visitors can subscribe to a channel or channel resource to receive the\n     *  messages that are published on it. When site visitors subscribe to a channel, they do not\n     *  receive messages published to a resource on that same channel. Similarly,\n     *  when site visitors subscribe to a channel resource, they do not\n     *  receive messages published to that same channel without a specified resource.\n     *  Channel resources inherit their parent channel's permissions, unless specified\n     *  otherwise.\n     */\n    type Channel = {\n        /**\n         * Channel name. Cannot exceed 140 characters. Cannot include spaces or special characters.\n         */\n        name: string;\n        /**\n         * ID of a specific channel resource.\n         */\n        resourceId?: string;\n    };\n    /**\n     * An object containing permission settings for a channel.\n     */\n    type ChannelPermissions = {\n        /**\n         * Whether the subscriber has read permissions. Defaults to `true`.\n         */\n        read?: boolean;\n    };\n    /**\n     * An object containing options for publishing.\n     */\n    type PublishOptions = {\n        /**\n         * User IDs of specific users to publish to.\n         */\n        users?: string[];\n        /**\n         * Whether to include information about the message publisher.\n         *  Defaults to `false`.\n         */\n        includePublisher?: boolean;\n    };\n    /**\n     * An object representing a channel subscriber.\n     */\n    type Subscriber = {\n        /**\n         * The subscriber's user ID.\n         */\n        id: string;\n        /**\n         * The type of subscriber.\n         *\n         *  One of:\n         *\n         *  + `\"Admin\"`: Subscriber is the site owner.\n         *  + `\"Member\"`: Subscriber is a logged-in site member.\n         *  + `\"Visitor\"`: Subscriber in not logged in.\n         */\n        type: string;\n    };\n}\ndeclare namespace wix_router {\n    /**\n     * An object representing an incoming page request received by a router.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-router.WixRouterRequest.html#)\n     */\n    interface WixRouterRequest {\n        /**\n         * Returns the base URL of the router request.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-router.WixRouterRequest.html#baseUrl)\n         */\n        readonly baseUrl: string;\n        /**\n         * Returns the current environment the router rendering process is running in.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-router.WixRouterRequest.html#env)\n         */\n        readonly env: string;\n        /**\n         * Returns the form factor of the device used to make the router request.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-router.WixRouterRequest.html#formFactor)\n         */\n        readonly formFactor: string;\n        /**\n         * Returns the remote IP address of the router request.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-router.WixRouterRequest.html#ip)\n         */\n        readonly ip: string;\n        /**\n         * Returns the names of the pages associated with this router.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-router.WixRouterRequest.html#pages)\n         */\n        readonly pages: string[];\n        /**\n         * Returns the path of the router request URL.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-router.WixRouterRequest.html#path)\n         */\n        readonly path: string[];\n        /**\n         * Returns the router prefix of the router request URL.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-router.WixRouterRequest.html#prefix)\n         */\n        readonly prefix: string;\n        /**\n         * Returns the protocol of the router request URL.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-router.WixRouterRequest.html#protocol)\n         */\n        readonly protocol: string;\n        /**\n         * Returns the query fields and values of the request URL.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-router.WixRouterRequest.html#query)\n         */\n        readonly query: any;\n        /**\n         * Returns the `referrer` header from the router request.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-router.WixRouterRequest.html#referrer)\n         */\n        readonly referrer: string;\n        /**\n         * Returns the full URL of the router request.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-router.WixRouterRequest.html#url)\n         */\n        readonly url: string;\n        /**\n         * Returns the details of the current site user who is logged in.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-router.WixRouterRequest.html#user)\n         */\n        readonly user: wix_router.WixRouterUser;\n        /**\n         * Returns the `user-agent` header as sent from the device used to make the router request.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-router.WixRouterRequest.html#userAgent)\n         */\n        readonly userAgent: string;\n    }\n    /**\n     * An object representing a response to a request received by a router.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-router.WixRouterResponse.html#)\n     */\n    interface WixRouterResponse {\n        /**\n         * Sets or gets the data to pass with the response.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-router.WixRouterResponse.html#data)\n         */\n        data: any;\n        /**\n         * Sets or gets the members to be written to the HTML head of the page.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-router.WixRouterResponse.html#head)\n         */\n        head: wix_router.WixRouterResponse.HeadOptions;\n        /**\n         * Sets or gets the response message to be used when responding with status codes 4xx and 5xx.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-router.WixRouterResponse.html#message)\n         */\n        message: string;\n        /**\n         * Sets or gets the page to route to.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-router.WixRouterResponse.html#page)\n         */\n        page: string;\n        /**\n         * Sets or gets the url to redirect to when responding with status codes 301 and 302.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-router.WixRouterResponse.html#redirectUrl)\n         */\n        redirectUrl: string;\n        /**\n         * Sets or gets the response's HTTP status code.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-router.WixRouterResponse.html#status)\n         */\n        status: number;\n    }\n    namespace WixRouterResponse {\n        /**\n         * Members of the HTML head.\n         */\n        type HeadOptions = {\n            /**\n             * The page title. Written to the `` tag.\n             */\n            title?: string;\n            /**\n             * **Deprecated: Use the new `metaTags` format instead.**\n             *\n             * The page description.\n             */\n            description?: string;\n            /**\n             * **Deprecated: Use the new `metaTags` format instead.**\n             *\n             *  The page keywords.\n             */\n            keywords?: string;\n            /**\n             * **Deprecated: Use the new `metaTags` format instead.**\n             *\n             *  Indicates whether to add a meta tag that prevents search engines from indexing the\n             *  page.\n             */\n            noIndex?: boolean;\n            /**\n             * The page's SEO-related meta tags.\n             *\n             *  The keys in the object represent the keys in the tag and the values in the\n             *  object represent the values in the tag.\n             *\n             *  For example:\n             *\n             *  ```javascript\n             *  {\n             *    \"property\": \"og:image\",\n             *    \"content\": \"https://.../Wix+logo.jpg\"\n             *  }\n             *  ```\n             *\n             * Produces:\n             *\n             *  ```html\n             *\n             *  ```\n             *\n             *  When setting `og:image` meta tags, the `content` can be an external image URL\n             *  or a Media Manager image URL as described [here]($w.Image.html#src).\n             *\n             *  **Deprecated format:** An object with key:value pairs where the key is the meta tag name\n             *  and the value is the content.\n             */\n            metaTags?: wix_router.WixRouterResponse.MetaTag[];\n            /**\n             * The page's SEO-related link tags,\n             *  which provide additional SEO information about the page. For example, you can set a\n             *  link to a canonical or alternate version of the page.\n             */\n            links?: wix_router.WixRouterResponse.Link[];\n            /**\n             * The page's structured data, which helps search engines\n             *  understand more about the page and your business so they can display a richer snippet of the\n             *  page in search results.\n             */\n            structuredData?: any[];\n        };\n        /**\n         * An object representing a link tag.\n         */\n        type Link = {\n            /**\n             * The relationship of the linked resource to the current page.\n             */\n            rel?: string;\n            /**\n             * The URL of the linked resource.\n             */\n            href?: string;\n        };\n        /**\n         * An object representing a meta tag.\n         */\n        type MetaTag = {\n            /**\n             * Name of the meta tag. Either `name` or `property` is required.\n             */\n            name?: string;\n            /**\n             * Name of the meta tag property. Either `property` or `name` is required.\n             */\n            property?: string;\n            /**\n             * HTTP header that corresponds to the `content`.\n             */\n            \"http-equiv\"?: string;\n            /**\n             * Meta tag value. For `og:image` meta tags, the `content` can\n             *  be an external image URL or a Media Manager image URL as described [here]($w.Image.html#src).\n             */\n            content: string;\n        };\n    }\n    /**\n     * An object representing a single entry in a sitemap.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-router.WixRouterSitemapEntry.html#)\n     */\n    interface WixRouterSitemapEntry {\n        /**\n         * Sets or gets how frequently the page is likely to change.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-router.WixRouterSitemapEntry.html#changeFrequency)\n         */\n        changeFrequency: string;\n        /**\n         * Sets or gets when was the page data last modified.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-router.WixRouterSitemapEntry.html#lastModified)\n         */\n        lastModified: Date;\n        /**\n         * Sets or gets the page name.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-router.WixRouterSitemapEntry.html#pageName)\n         */\n        pageName: string;\n        /**\n         * Sets or gets the priority of this URL relative to other URLs on your site.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-router.WixRouterSitemapEntry.html#priority)\n         */\n        priority: number;\n        /**\n         * Sets or gets the page title.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-router.WixRouterSitemapEntry.html#title)\n         */\n        title: string;\n        /**\n         * Sets or gets the relative url of the page.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-router.WixRouterSitemapEntry.html#url)\n         */\n        url: string;\n    }\n    /**\n     * An object representing a request for a sitemap.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-router.WixRouterSitemapRequest.html#)\n     */\n    interface WixRouterSitemapRequest {\n        /**\n         * Returns the base URL of the request.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-router.WixRouterSitemapRequest.html#baseUrl)\n         */\n        readonly baseUrl: string;\n        /**\n         * Sets or gets the page name.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-router.WixRouterSitemapRequest.html#pageName)\n         */\n        readonly pageName: string;\n        /**\n         * Returns the names of the pages associated with this router.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-router.WixRouterSitemapRequest.html#pages)\n         */\n        readonly pages: string[];\n        /**\n         * Returns the router prefix of the request.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-router.WixRouterSitemapRequest.html#prefix)\n         */\n        readonly prefix: string;\n        /**\n         * Returns the details of the current site user who is logged in.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-router.WixRouterSitemapRequest.html#user)\n         */\n        readonly user: wix_router.WixRouterUser;\n    }\n    /**\n     * An object that contains information about the current site visitor who is logged in.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-router.WixRouterUser.html#)\n     */\n    interface WixRouterUser {\n        /**\n         * Gets the user's ID.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-router.WixRouterUser.html#id)\n         */\n        readonly id: string;\n        /**\n         * Gets the user's role.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-router.WixRouterUser.html#role)\n         */\n        readonly role: string;\n    }\n}\ndeclare namespace wix_search {\n    /**\n     * Contains functionality for refining a site search.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-search.WixSearchBuilder.html#)\n     */\n    interface WixSearchBuilder {\n        /**\n         * Refines a search to match documents that meet the conditions of all of the specified filters.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-search.WixSearchBuilder.html#and)\n         */\n        and(...filters: wix_search.WixSearchFilter[]): wix_search.WixSearchBuilder;\n        /**\n         * Adds a sort to a search, sorting by the specified fields in ascending order.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-search.WixSearchBuilder.html#ascending)\n         */\n        ascending(...field: string[]): wix_search.WixSearchBuilder;\n        /**\n         * Adds a sort to a search, sorting by the specified fields in descending order.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-search.WixSearchBuilder.html#descending)\n         */\n        descending(...field: string[]): wix_search.WixSearchBuilder;\n        /**\n         * Refines a search builder to only search for documents of the specified document type.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-search.WixSearchBuilder.html#documentType)\n         */\n        documentType(type: string): wix_search.WixSearchBuilder;\n        /**\n         * Refines a search to match documents whose specified field value equals the specified value.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-search.WixSearchBuilder.html#eq)\n         */\n        eq(field: string, value: any): wix_search.WixSearchBuilder;\n        /**\n         * Categorizes search results according to the specified facets.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-search.WixSearchBuilder.html#facets)\n         */\n        facets(...facets: string[]): wix_search.WixSearchBuilder;\n        /**\n         * Returns the documents that match the search.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-search.WixSearchBuilder.html#find)\n         */\n        find(): Promise<wix_search.WixSearchResult>;\n        /**\n         * Sets whether to search for exact matches or approximate matches of the search phrase.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-search.WixSearchBuilder.html#fuzzy)\n         */\n        fuzzy(fuzzy: boolean): wix_search.WixSearchBuilder;\n        /**\n         * Refines a search to match documents whose specified field value is greater than or equal to the specified value.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-search.WixSearchBuilder.html#ge)\n         */\n        ge(field: string, value: string | number | Date): wix_search.WixSearchBuilder;\n        /**\n         * Refines a search to match documents whose specified field value is greater than the specified value.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-search.WixSearchBuilder.html#gt)\n         */\n        gt(field: string, value: string | number | Date): wix_search.WixSearchBuilder;\n        /**\n         * Refines a search to match documents whose specified field value contains all of the specified values.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-search.WixSearchBuilder.html#hasAll)\n         */\n        hasAll(field: string, values: string[]): wix_search.WixSearchBuilder;\n        /**\n         * Refines a search to match documents whose specified field contains any of the specified values.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-search.WixSearchBuilder.html#hasSome)\n         */\n        hasSome(field: string, values: string[]): wix_search.WixSearchBuilder;\n        /**\n         * Refines a search to match documents whose specified field value equals any of the specified values.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-search.WixSearchBuilder.html#in)\n         */\n        in(field: string, values: string[] | number[]): wix_search.WixSearchBuilder;\n        /**\n         * Refines a search builder to search in the specified language.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-search.WixSearchBuilder.html#language)\n         */\n        language(language: string): wix_search.WixSearchBuilder;\n        /**\n         * Refines a search or filter to match documents whose specified field value is less than or equal to the specified value.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-search.WixSearchBuilder.html#le)\n         */\n        le(field: string, value: string | number | Date): wix_search.WixSearchBuilder;\n        /**\n         * Limits the number of documents the search returns.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-search.WixSearchBuilder.html#limit)\n         */\n        limit(limit: number): wix_search.WixSearchBuilder;\n        /**\n         * Refines a search or filter to match documents whose specified field value is less than the specified value.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-search.WixSearchBuilder.html#lt)\n         */\n        lt(field: string, value: string | number | Date): wix_search.WixSearchBuilder;\n        /**\n         * Refines a search to match documents whose specified field value does not equal the specified value.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-search.WixSearchBuilder.html#ne)\n         */\n        ne(field: string, value: any): wix_search.WixSearchBuilder;\n        /**\n         * Refines a search to match documents that do not meet the conditions of all of the specified filters.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-search.WixSearchBuilder.html#not)\n         */\n        not(...filters: wix_search.WixSearchFilter[]): wix_search.WixSearchBuilder;\n        /**\n         * Refines a search to match documents that meet the condition of any of the specified filters.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-search.WixSearchBuilder.html#or)\n         */\n        or(...filters: wix_search.WixSearchFilter[]): wix_search.WixSearchBuilder;\n        /**\n         * Sets the search phrase to search for.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-search.WixSearchBuilder.html#query)\n         */\n        query(phrase: string): wix_search.WixSearchBuilder;\n        /**\n         * Refines a search to include only certain fields.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-search.WixSearchBuilder.html#searchFields)\n         */\n        searchFields(fields: string[]): wix_search.WixSearchBuilder;\n        /**\n         * Sets the number of documents to skip before returning search results.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-search.WixSearchBuilder.html#skip)\n         */\n        skip(skip: number): wix_search.WixSearchBuilder;\n    }\n    /**\n     * Contains functionality for creating filters to use in a site search.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-search.WixSearchFilterBuilder.html#)\n     */\n    interface WixSearchFilterBuilder {\n        /**\n         * Creates a search filter for matching documents that meet the conditions of all of the specified filters.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-search.WixSearchFilterBuilder.html#and)\n         */\n        and(...filters: wix_search.WixSearchFilter[]): wix_search.WixSearchFilter;\n        /**\n         * Creates a search filter for matching documents whose specified field value equals the specified value.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-search.WixSearchFilterBuilder.html#eq)\n         */\n        eq(field: string, value: any): wix_search.WixSearchFilter;\n        /**\n         * Creates a search filter for matching documents whose specified field value is greater than or equal to the specified value.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-search.WixSearchFilterBuilder.html#ge)\n         */\n        ge(field: string, value: string | number | Date): wix_search.WixSearchFilter;\n        /**\n         * Creates a search filter for matching documents whose specified field value is greater than the specified value.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-search.WixSearchFilterBuilder.html#gt)\n         */\n        gt(field: string, value: string | number | Date): wix_search.WixSearchFilter;\n        /**\n         * Creates a search filter for matching documents whose specified field value contains all of the specified values.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-search.WixSearchFilterBuilder.html#hasAll)\n         */\n        hasAll(field: string, values: string[]): wix_search.WixSearchFilter;\n        /**\n         * Creates a search filter for matching documents whose specified field contains any of the specified values.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-search.WixSearchFilterBuilder.html#hasSome)\n         */\n        hasSome(field: string, values: string[]): wix_search.WixSearchFilter;\n        /**\n         * Creates a search filter for matching documents whose specified field value equals any of the specified values.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-search.WixSearchFilterBuilder.html#in)\n         */\n        in(field: string, values: string[] | number[]): wix_search.WixSearchFilter;\n        /**\n         * Creates a search filter for matching documents whose specified field value is less than or equal to the specified value.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-search.WixSearchFilterBuilder.html#le)\n         */\n        le(field: string, value: string | number | Date): wix_search.WixSearchFilter;\n        /**\n         * Creates a search filter for matching documents whose specified field value is less than the specified value.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-search.WixSearchFilterBuilder.html#lt)\n         */\n        lt(field: string, value: string | number | Date): wix_search.WixSearchFilter;\n        /**\n         * Creates a search filter for matching documents whose specified field value does not equal the specified value.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-search.WixSearchFilterBuilder.html#ne)\n         */\n        ne(field: string, value: any): wix_search.WixSearchFilter;\n        /**\n         * Creates a search filter for matching documents that do not meet the conditions of all of the specified filters.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-search.WixSearchFilterBuilder.html#not)\n         */\n        not(...filters: wix_search.WixSearchFilter[]): wix_search.WixSearchFilter;\n        /**\n         * Creates a filter for matching documents that meet the condition of any of the specified filters.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-search.WixSearchFilterBuilder.html#or)\n         */\n        or(...filters: wix_search.WixSearchFilter[]): wix_search.WixSearchFilter;\n    }\n    /**\n     * The results of a site search, containing the retrieved documents.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-search.WixSearchResult.html#)\n     */\n    interface WixSearchResult {\n        /**\n         * Returns the index of the current results page number.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-search.WixSearchResult.html#currentPage)\n         */\n        readonly currentPage: number;\n        /**\n         * Returns the documents that match the search.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-search.WixSearchResult.html#documents)\n         */\n        readonly documents: wix_search.WixSearchResult.Document[];\n        /**\n         * Returns the facet results retrieved by the search.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-search.WixSearchResult.html#facets)\n         */\n        readonly facets: wix_search.WixSearchResult.FacetResult[];\n        /**\n         * Returns the number of documents in the current results page.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-search.WixSearchResult.html#length)\n         */\n        readonly length: number;\n        /**\n         * Returns the search page size.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-search.WixSearchResult.html#pageSize)\n         */\n        readonly pageSize: number;\n        /**\n         * Returns the total number of documents that match the search.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-search.WixSearchResult.html#totalCount)\n         */\n        readonly totalCount: number;\n        /**\n         * Returns the total number of pages the search produced.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-search.WixSearchResult.html#totalPages)\n         */\n        readonly totalPages: number;\n        /**\n         * Indicates if the search has another page of results.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-search.WixSearchResult.html#hasNext)\n         */\n        hasNext(): boolean;\n        /**\n         * Indicates if the search has a previous page of results.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-search.WixSearchResult.html#hasPrev)\n         */\n        hasPrev(): boolean;\n        /**\n         * Retrieves the next page of search results.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-search.WixSearchResult.html#next)\n         */\n        next(): Promise<wix_search.WixSearchResult>;\n        /**\n         * Retrieves the previous page of search results.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-search.WixSearchResult.html#prev)\n         */\n        prev(): Promise<wix_search.WixSearchResult>;\n    }\n    namespace WixSearchResult {\n        /**\n         * A document returned by a site search. The following are the default properties included in every search result document. For app-specific properties, check the supported schema for each [`documentType`](wix-search.WixSearchBuilder.html#documentType).\n         */\n        type Document = {\n            /**\n             * Unique document identifier.\n             */\n            _id: string;\n            /**\n             * Document image in the following format: `wix:image://v1//#originWidth=&originHeight=[&watermark=]`\n             */\n            image: string;\n            /**\n             * Document type.\n             *  One of the following:\n             *\n             *  + `Site/Pages`\n             *  + `Blog/Posts`\n             *  + `Bookings/Services`\n             *  + `Forum/Content`\n             *  + `Stores/Products`\n             */\n            documentType: string;\n            /**\n             * The relative page URL. For regular site pages, the URL defined in [SEO settings](https://support.wix.com/en/article/changing-your-page-url). Note that the `url` for the home page is an empty string. For Wix app pages, the URL stored in the database collection.\n             */\n            url: string;\n            /**\n             * For regular site pages, all text on the page. For Wix app pages, the description or content stored in the database collection.\n             */\n            description: string;\n            /**\n             * For regular site pages, the [SEO page title](https://support.wix.com/en/article/adding-seo-page-titles-and-descriptions-meta-tags#page-titles). For Wix app pages, the title or name stored in the database collection.\n             */\n            title: string;\n        };\n        /**\n         * Facet value information.\n         */\n        type Facet = {\n            /**\n             * Facet value.\n             */\n            facetValue: string;\n            /**\n             * Number of returned documents that match the facet value.\n             */\n            count: number;\n        };\n        /**\n         * Facet information for a single facet specified for the search. Includes the name of the specified facet and the results for each facet value.\n         */\n        type FacetGroup = {\n            /**\n             * Name of the facet specified for the search.\n             */\n            facet: string;\n            /**\n             * Information about the facet values for the specified facet.\n             */\n            facets: wix_search.WixSearchResult.Facet[];\n        };\n        /**\n         * A facet result returned by a site search. A facet result is returned for each parameter specified in the [`facets()`](wix-search.WixSearchBuilder.html#facets) function.\n         */\n        type FacetResult = {\n            /**\n             * A facet group with facet information. Includes the name of the specified facet and the results for each facet value.\n             */\n            facets: wix_search.WixSearchResult.FacetGroup[];\n        };\n    }\n    /**\n     * Contains functionality for filtering a site search.\n     */\n    type WixSearchFilter = {\n        /**\n         * An object containing the filter definition.\n         */\n        filterDefinition: any;\n    };\n}\ndeclare namespace wix_secrets_backend {\n    /**\n     * An object representing information for creating or updating a secret.\n     */\n    type Secret = {\n        /**\n         * A unique, meaningful name used for retrieving the secret at runtime using [`getSecret()`](wix-secrets-backend.html#getSecret). You can use alphanumeric characters and the following special characters: `_+=-#@$#`. Spaces are not supported.\n         */\n        name: string;\n        /**\n         * The confidential value to protect, such as an API key.\n         */\n        value: string;\n        /**\n         * An optional text describing the secret's purpose or any other notes.\n         */\n        description?: string;\n    };\n    /**\n     * Information about a secret, not including the protected `value`.\n     */\n    type SecretInfo = {\n        /**\n         * The secret's ID.\n         */\n        id: string;\n        /**\n         * A unique, meaningful name used for retrieving the secret at runtime using [`getSecret()`](wix-secrets-backend.html#getSecret).\n         */\n        name: string;\n        /**\n         * An optional text describing the secret's purpose or any other notes about it.\n         */\n        description: string;\n        /**\n         * The date and time the secret was created.\n         */\n        createdDate: Date;\n        /**\n         * The date and time the secret was last updated.\n         */\n        updatedDate: Date;\n    };\n    /**\n     * An object representing information for creating or updating a secret.\n     */\n    type SecretUpdateInfo = {\n        /**\n         * A unique, meaningful name used for retrieving the secret at runtime using [`getSecret()`](wix-secrets-backend.html#getSecret). You can use alphanumeric characters and the following special characters: `_+=-#@$#`. Spaces are not supported.\n         */\n        name?: string;\n        /**\n         * The confidential value to protect, such as an API key.\n         */\n        value?: string;\n        /**\n         * An optional text describing the secret's purpose or any other notes.\n         */\n        description?: string;\n    };\n}\ndeclare namespace wix_seo {\n    /**\n     * An object representing a link tag.\n     */\n    type Link = {\n        /**\n         * The relationship of the linked resource to the current page.\n         */\n        rel?: string;\n        /**\n         * The URL of the linked resource.\n         */\n        href?: string;\n    };\n    /**\n     * An object representing a meta tag.\n     */\n    type MetaTag = {\n        /**\n         * Name of the meta tag. Either `name` or `property` are required.\n         */\n        name?: string;\n        /**\n         * Name of the meta tag property. Either `property` or `name` are required.\n         */\n        property?: string;\n        /**\n         * HTTP header that corresponds to the `content`.\n         */\n        \"http-equiv\"?: string;\n        /**\n         * Meta tag value. For `og:image` meta tags, the `content` can\n         *  be an external image URL or a Media Manager image URL as described [here]($w.Image.html#src).\n         */\n        content: string;\n    };\n}\ndeclare namespace wix_site_backend {\n    /**\n     * The generalInfo API contains functionality for getting\n     *  [the information about your business](https://support.wix.com/en/article/adding-your-sites-business-info) that\n     *  has been entered in the **General Info** section of your site's [**Dashboard**](https://support.wix.com/en/article/wix-dashboard-overview).\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-site-backend.GeneralInfo.html#)\n     */\n    interface GeneralInfo {\n        /**\n         * Gets the physical address of the site's business.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-site-backend.GeneralInfo.html#getAddress)\n         */\n        getAddress(): Promise<wix_site_backend.GeneralInfo.GeneralInfoAddress>;\n        /**\n         * Gets the site business name.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-site-backend.GeneralInfo.html#getBusinessName)\n         */\n        getBusinessName(): Promise<string>;\n        /**\n         * Gets the business hours of the site's business.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-site-backend.GeneralInfo.html#getBusinessSchedule)\n         */\n        getBusinessSchedule(): Promise<wix_site_backend.GeneralInfo.GeneralInfoSchedule>;\n        /**\n         * Gets the site category information.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-site-backend.GeneralInfo.html#getCategories)\n         */\n        getCategories(): Promise<wix_site_backend.GeneralInfo.GeneralInfoCategories>;\n        /**\n         * Gets the site description.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-site-backend.GeneralInfo.html#getDescription)\n         */\n        getDescription(): Promise<string>;\n        /**\n         * Gets the email address used for notifications of activities on your site.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-site-backend.GeneralInfo.html#getEmail)\n         */\n        getEmail(): Promise<string>;\n        /**\n         * Gets the fax number used for notifications of activities on your site.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-site-backend.GeneralInfo.html#getFax)\n         */\n        getFax(): Promise<string>;\n        /**\n         * Gets site language information.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-site-backend.GeneralInfo.html#getLanguage)\n         */\n        getLanguage(): Promise<string>;\n        /**\n         * Gets site locale information.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-site-backend.GeneralInfo.html#getLocale)\n         */\n        getLocale(): Promise<wix_site_backend.GeneralInfo.GeneralInfoLocale>;\n        /**\n         * Gets the site logo file name.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-site-backend.GeneralInfo.html#getLogo)\n         */\n        getLogo(): Promise<string>;\n        /**\n         * Gets site multilingual information.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-site-backend.GeneralInfo.html#getMultilingual)\n         */\n        getMultilingual(): Promise<wix_site_backend.GeneralInfo.GeneralInfoLanguages>;\n        /**\n         * Gets site payment currency information.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-site-backend.GeneralInfo.html#getPaymentCurrency)\n         */\n        getPaymentCurrency(): Promise<string>;\n        /**\n         * Gets the phone number used for notifications of activities on your site.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-site-backend.GeneralInfo.html#getPhone)\n         */\n        getPhone(): Promise<string>;\n        /**\n         * Gets the site display name.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-site-backend.GeneralInfo.html#getSiteDisplayName)\n         */\n        getSiteDisplayName(): Promise<string>;\n        /**\n         * Gets site time zone information.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-site-backend.GeneralInfo.html#getTimeZone)\n         */\n        getTimeZone(): Promise<string>;\n    }\n    namespace GeneralInfo {\n        /**\n         * An object representing a site's corresponding physical address.\n         */\n        type GeneralInfoAddress = {\n            /**\n             * Address street.\n             */\n            street: string;\n            /**\n             * Address city.\n             */\n            city: string;\n            /**\n             * Address country.\n             */\n            country: string;\n            /**\n             * Address state.\n             */\n            state: string;\n            /**\n             * Address zip code.\n             */\n            zip: string;\n            /**\n             * Address description.\n             */\n            hint: wix_site_backend.GeneralInfo.GeneralInfoAddressHint;\n            /**\n             * Whether the business has a physical address.\n             */\n            isPhysical: boolean;\n            /**\n             * Address as formatted by Google.\n             */\n            googleFormattedAddress: string;\n            /**\n             * Address street number.\n             */\n            streetNumber: string;\n            /**\n             * Address apartment number.\n             */\n            apartmentNumber: string;\n            /**\n             * Address coordinates.\n             */\n            coordinates: wix_site_backend.GeneralInfo.GeneralInfoAddressCoordinates;\n        };\n        /**\n         * An object representing the coordinates of the site address.\n         */\n        type GeneralInfoAddressCoordinates = {\n            /**\n             * Address latitude.\n             */\n            latitude: string;\n            /**\n             * Address longitude.\n             */\n            longitude: string;\n        };\n        /**\n         * An object representing a description of a site's address.\n         */\n        type GeneralInfoAddressHint = {\n            /**\n             * Address description.\n             */\n            text: string;\n            /**\n             * Whether description is shown before, after, or instead of the actual address.\n             */\n            placement: string;\n        };\n        /**\n         * An object representing the categories that describe your site's business.\n         */\n        type GeneralInfoCategories = {\n            /**\n             * Primary site category.\n             */\n            primary: string;\n            /**\n             * List of secondary site categories.\n             */\n            secondary: string[];\n        };\n        /**\n         * An object representing the site's languages.\n         */\n        type GeneralInfoLanguages = {\n            /**\n             * List supported languages.\n             */\n            supportedLanguages: wix_site_backend.GeneralInfo.GeneralInfoLanguagesSupported[];\n            /**\n             * Whether to automatically redirect users based on their browser's settings.\n             */\n            autoRedirect: boolean;\n        };\n        /**\n         * An object representing the site's supported languages.\n         */\n        type GeneralInfoLanguagesSupported = {\n            /**\n             * Language code.\n             */\n            languageCode: string;\n            /**\n             * Language locale.\n             */\n            locale: wix_site_backend.GeneralInfo.GeneralInfoLocale;\n            /**\n             * Country Code for the Language icon.\n             */\n            countryCode: string;\n            /**\n             * Whether the language is the primary language.\n             */\n            isPrimary: boolean;\n        };\n        /**\n         * An object representing a site's locale.\n         */\n        type GeneralInfoLocale = {\n            /**\n             * Site country.\n             */\n            country: string;\n            /**\n             * Site language code.\n             */\n            languageCode: string;\n        };\n        /**\n         * An object representing business hours.\n         */\n        type GeneralInfoSchedule = {\n            /**\n             * List of opening and closing days and times.\n             */\n            periods: wix_site_backend.GeneralInfo.GeneralInfoSchedulePeriods[];\n            /**\n             * Special hours.\n             */\n            specialHourPeriod: wix_site_backend.GeneralInfo.GeneralInfoScheduleSpecial[];\n        };\n        /**\n         * An object representing business opened and closed hours.\n         */\n        type GeneralInfoSchedulePeriods = {\n            /**\n             * Business opening day.\n             */\n            openDay: string;\n            /**\n             * Business opening time.\n             */\n            openTime: string;\n            /**\n             * Business closing day.\n             */\n            closeDay: string;\n            /**\n             * Business closing time.\n             */\n            closeTime: string;\n        };\n        /**\n         * An object representing special business hours.\n         */\n        type GeneralInfoScheduleSpecial = {\n            /**\n             * Special hours start date.\n             */\n            startDate: string;\n            /**\n             * Special hours end date.\n             */\n            endDate: string;\n            /**\n             * Whether the business is closed.\n             */\n            isClosed: boolean;\n            /**\n             * Special hours comment.\n             */\n            comment: string;\n        };\n    }\n}\ndeclare namespace wix_stores_backend {\n    /**\n     * Events that are fired from a Wix Store.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-stores-backend.Events.html#)\n     */\n    interface Events {\n        /**\n         * An event that fires when a visitor abandons a shopping cart.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-stores-backend.Events.html#onCartAbandoned)\n         */\n        onCartAbandoned(event: wix_stores_backend.Events.CartAbandonedEvent): void;\n        /**\n         * An event that fires when a visitor completes a purchase from a shopping cart.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-stores-backend.Events.html#onCartCompleted)\n         */\n        onCartCompleted(event: wix_stores_backend.Events.CartCompletedEvent): void;\n        /**\n         * An event that fires when a cart is created.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-stores-backend.Events.html#onCartCreated)\n         */\n        onCartCreated(event: wix_stores_backend.Events.CartCreatedEvent): void;\n        /**\n         * An event that fires when a visitor completes a purchase from an abandoned shopping cart.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-stores-backend.Events.html#onCartRecovered)\n         */\n        onCartRecovered(event: wix_stores_backend.Events.CartRecoveredEvent): void;\n        /**\n         * An event that fires when a product collection is created.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-stores-backend.Events.html#onCollectionCreated)\n         */\n        onCollectionCreated(event: wix_stores_backend.Events.CollectionCreatedEvent): void;\n        /**\n         * An event that fires when a product collection is deleted.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-stores-backend.Events.html#onCollectionDeleted)\n         */\n        onCollectionDeleted(event: wix_stores_backend.Events.CollectionDeletedEvent): void;\n        /**\n         * An event that fires when a product collection is updated.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-stores-backend.Events.html#onCollectionUpdated)\n         */\n        onCollectionUpdated(event: wix_stores_backend.Events.CollectionUpdatedEvent): void;\n        /**\n         * An event that fires when an order fulfillment is created.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-stores-backend.Events.html#onFulfillmentCreated)\n         */\n        onFulfillmentCreated(event: wix_stores_backend.Events.FulfillmentCreatedEvent): void;\n        /**\n         * An event that fires when an order fulfillment is deleted.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-stores-backend.Events.html#onFulfillmentDeleted)\n         */\n        onFulfillmentDeleted(event: wix_stores_backend.Events.FulfillmentDeletedEvent): void;\n        /**\n         * An event that fires when an order fulfillment is updated.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-stores-backend.Events.html#onFulfillmentUpdated)\n         */\n        onFulfillmentUpdated(event: wix_stores_backend.Events.FulfillmentUpdatedEvent): void;\n        /**\n         * An event that fires when an inventory item's information is updated.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-stores-backend.Events.html#onInventoryItemUpdated)\n         */\n        onInventoryItemUpdated(event: wix_stores_backend.Events.InventoryItemUpdatedEvent): void;\n        /**\n         * An event that fires when the inventory information of a product variant is updated.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-stores-backend.Events.html#onInventoryVariantUpdated)\n         */\n        onInventoryVariantUpdated(event: wix_stores_backend.Events.InventoryVariantUpdatedEvent): void;\n        /**\n         * An event that fires when a new order is placed.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-stores-backend.Events.html#onNewOrder)\n         */\n        onNewOrder(event: wix_stores_backend.Events.NewOrderEvent): void;\n        /**\n         * An event that fires when an order is canceled.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-stores-backend.Events.html#onOrderCanceled)\n         */\n        onOrderCanceled(event: wix_stores_backend.Events.OrderCanceledEvent): void;\n        /**\n         * An event that fires when an order is marked as paid.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-stores-backend.Events.html#onOrderPaid)\n         */\n        onOrderPaid(event: wix_stores_backend.Order): void;\n        /**\n         * An event that fires when an order is refunded.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-stores-backend.Events.html#onOrderRefunded)\n         */\n        onOrderRefunded(event: wix_stores_backend.Events.OrderRefundedEvent): void;\n        /**\n         * An event that fires when a product is created.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-stores-backend.Events.html#onProductCreated)\n         */\n        onProductCreated(event: wix_stores_backend.Events.ProductCreatedEvent): void;\n        /**\n         * An event that fires when a product is deleted.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-stores-backend.Events.html#onProductDeleted)\n         */\n        onProductDeleted(event: wix_stores_backend.Events.ProductDeletedEvent): void;\n        /**\n         * An event that fires when a product is updated.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-stores-backend.Events.html#onProductUpdated)\n         */\n        onProductUpdated(event: wix_stores_backend.Events.ProductUpdatedEvent): void;\n        /**\n         * An event that fires when variant information for a product is updated.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-stores-backend.Events.html#onVariantsUpdated)\n         */\n        onVariantsUpdated(event: wix_stores_backend.Events.VariantsUpdatedEvent): void;\n    }\n    namespace Events {\n        /**\n         * An object representing a shopping cart that was abandoned.\n         */\n        type CartAbandonedEvent = {\n            /**\n             * Time the abandoned cart was abandoned.\n             */\n            abandonTime: string;\n            /**\n             * Information about the visitor who abandoned the shopping cart.\n             */\n            buyerInfo: wix_stores_backend.BuyerInfo;\n            /**\n             * ID of the shopping cart that was abandoned.\n             */\n            cartId: string;\n            /**\n             * URL of the abandoned cart's checkout page.\n             */\n            checkoutUrl: string;\n            /**\n             * ID of coupon used in the abandoned cart.\n             */\n            couponId: string;\n            /**\n             * Time the abandoned cart was created.\n             */\n            creationTime: string;\n            /**\n             * Number of items in the abandoned cart.\n             */\n            itemsCount: number;\n            /**\n             * Abandoned cart totals.\n             */\n            totals: wix_stores_backend.Events.CartTotals;\n        };\n        /**\n         * An object representing a shopping cart that was completed.\n         */\n        type CartCompletedEvent = {\n            /**\n             * ID of the shopping cart that was completed.\n             */\n            cartId: string;\n            /**\n             * Time the shopping cart was completed.\n             */\n            completedTime: string;\n            /**\n             * The buyer's information.\n             */\n            buyerInfo: wix_stores_backend.BuyerInfo;\n            /**\n             * Message from the buyer.\n             */\n            buyerNote: string;\n            /**\n             * Coupon applied in the shopping cart.\n             */\n            appliedCoupon: wix_stores_backend.CartAppliedCoupon;\n            /**\n             * Billing address.\n             */\n            billingAddress: wix_stores_backend.Address;\n            /**\n             * Currency of the shopping cart.\n             */\n            currency: wix_stores_backend.Currency;\n            /**\n             * The order's units of weight. One of: `\"KG\"`, `\"LB\"`, or `\"UNSPECIFIED_WEIGHT_UNIT\"`.\n             */\n            weightUnit: string;\n            /**\n             * The shopping cart's totals.\n             */\n            totals: wix_stores_backend.OrderTotals;\n            /**\n             * The shopping cart's shipping information.\n             */\n            shippingInfo: wix_stores_backend.CartShippingInfo;\n        };\n        /**\n         * An object representing a shopping cart that was created.\n         */\n        type CartCreatedEvent = {\n            /**\n             * ID of the shopping cart that was created.\n             */\n            cartId: string;\n            /**\n             * Time the shopping cart was created.\n             */\n            creationTime: string;\n            /**\n             * The buyer's information.\n             */\n            buyerInfo: wix_stores_backend.BuyerInfo;\n            /**\n             * The order's units of weight. One of: `\"KG\"`, `\"LB\"`, or `\"UNSPECIFIED_WEIGHT_UNIT\"`.\n             */\n            weightUnit: string;\n            /**\n             * Currency of the shopping cart.\n             */\n            currency: wix_stores_backend.Currency;\n            /**\n             * The shopping cart's totals.\n             */\n            totals: wix_stores_backend.OrderTotals;\n        };\n        /**\n         * An object representing a shopping cart that was recovered.\n         */\n        type CartRecoveredEvent = {\n            /**\n             * Time the recovered cart was abandoned.\n             */\n            abandonedTime: string;\n            /**\n             * ID of the shopping cart that was abandoned.\n             */\n            cartId: string;\n            /**\n             * Time the recovered cart was originally created.\n             */\n            creationTime: string;\n            /**\n             * Time the cart was recovered.\n             */\n            recoveredTime: string;\n        };\n        /**\n         * An object representing the totals of a shopping cart.\n         */\n        type CartTotals = {\n            /**\n             * Subtotal of all the line items in the abandoned cart, not including shipping and tax.\n             */\n            subtotal: number;\n            /**\n             * Total of all the line items in the abandoned cart, including shipping and tax.\n             */\n            total: number;\n            /**\n             * Total formatted with currency symbol.\n             */\n            formattedTotal: string;\n        };\n        /**\n         * An object representing a product collection that was created.\n         */\n        type CollectionCreatedEvent = {\n            /**\n             * ID of the created collection.\n             */\n            _id: string;\n            /**\n             * Collection name.\n             */\n            name: string;\n            /**\n             * Main product media item (image) URL.\n             */\n            mainMedia: string;\n        };\n        /**\n         * An object representing a product collection that was deleted.\n         */\n        type CollectionDeletedEvent = {\n            /**\n             * ID of the delete collection.\n             */\n            collectionId: string;\n        };\n        /**\n         * An object representing a product collection that was updated.\n         */\n        type CollectionUpdatedEvent = {\n            /**\n             * ID of the updated collection.\n             */\n            collectionId: string;\n            /**\n             * Names of the collection fields that were updated.\n             */\n            updatedFields: string[];\n        };\n        /**\n         * An object representing fulfillment information that was created.\n         */\n        type FulfillmentCreatedEvent = {\n            /**\n             * ID of the order the fulfillment was created for.\n             */\n            orderId: string;\n            /**\n             * ID of the fulfillment that was created.\n             */\n            fulfillmentId: string;\n            /**\n             * Date and time the fulfillment was created.\n             */\n            dateCreated: string;\n            /**\n             * Information about the order's buyer.\n             */\n            buyerInfo: wix_stores_backend.BuyerInfo;\n            /**\n             * Tracking information.\n             */\n            trackingInfo: wix_stores_backend.TrackingInfo;\n            /**\n             * The order's current fulfillment status.\n             * One of:\n             *\n             *  + `\"NOT_FULFILLED\"`: Order is not yet fulfilled.\n             *  + `\"FULFILLED\"`: Order was fulfilled successfully.\n             *  + `\"CANCELED\"`: Order was canceled.\n             *  + `\"PARTIALLY_FULFILLED\"`: Order was partially fulfilled. For example, when only some of the order's items were fulfilled.\n             */\n            fulfillmentStatus: string;\n        };\n        /**\n         * An object representing fulfillment information that was deleted.\n         */\n        type FulfillmentDeletedEvent = {\n            /**\n             * ID of the order the fulfillment was deleted from.\n             */\n            orderId: string;\n            /**\n             * ID of the fulfillment that was deleted.\n             */\n            fulfillmentId: string;\n            /**\n             * The order's current fulfillment status.\n             * One of:\n             *\n             *  + `\"NOT_FULFILLED\"`: Order is not yet fulfilled.\n             *  + `\"FULFILLED\"`: Order was fulfilled successfully.\n             *  + `\"CANCELED\"`: Order was canceled.\n             *  + `\"PARTIALLY_FULFILLED\"`: Order was partially fulfilled. For example, when only some of the order's items were fulfilled.\n             */\n            fulfillmentStatus: string;\n        };\n        /**\n         * An object representing fulfillment information that was updated.\n         */\n        type FulfillmentUpdatedEvent = {\n            /**\n             * ID of the order the fulfillment was updated for.\n             */\n            orderId: string;\n            /**\n             * ID of the fulfillment that was updated.\n             */\n            fulfillmentId: string;\n            /**\n             * Tracking information.\n             */\n            trackingInfo: wix_stores_backend.TrackingInfo;\n        };\n        /**\n         * An object representing an inventory item that was updated.\n         */\n        type InventoryItemUpdatedEvent = {\n            /**\n             * ID of the inventory item.\n             */\n            inventoryItemId: string;\n            /**\n             * External ID of the inventory item. For example, the product ID for inventory items which are store products.\n             */\n            externalId: string;\n            /**\n             * Whether the item's inventory is tracked.\n             */\n            trackInventory: boolean;\n        };\n        /**\n         * An object representing product variant information that was updated.\n         */\n        type InventoryVariantUpdatedEvent = {\n            /**\n             * ID of the inventory item.\n             */\n            inventoryItemId: string;\n            /**\n             * External ID of the inventory item. For example, the product ID for inventory items which are store products.\n             */\n            externalId: string;\n            /**\n             * List of variants that were updated.\n             */\n            variants: wix_stores_backend.Events.UpdatedVariantInventory[];\n        };\n        /**\n         * An object representing a new order from a store.\n         */\n        type NewOrderEvent = {\n            /**\n             * The ID of the order, auto-generated when an order is created an unique within all Wix Stores.\n             */\n            orderId: string;\n            /**\n             * Running order number unique to the current store.\n             */\n            number: string;\n            /**\n             * The date the order was created.\n             */\n            dateCreated: string;\n            /**\n             * The buyer's information.\n             */\n            buyerInfo: wix_stores_backend.BuyerInfo;\n            /**\n             * The currency code for all of the order's prices.\n             */\n            currency: string;\n            /**\n             * The order's units of weight. One of: `\"KG\"`, `\"LB\"`, or `\"UNSPECIFIED_WEIGHT_UNIT\"`.\n             */\n            weightUnit: string;\n            /**\n             * The order's totals.\n             */\n            totals: wix_stores_backend.OrderTotals;\n            /**\n             * The order's payment status. One of: `\"PAID\"` or `\"NOT_PAID\"`.\n             */\n            paymentStatus: string;\n            /**\n             * The order's fulfillment status. One of: `\"FULFILLED\"` or `\"NOT_FULFILLED\"`.\n             */\n            fulfillmentStatus: string;\n            /**\n             * Subscription information. Omitted unless the order is a subscription.\n             * Learn more about [selling product subscriptions](https://support.wix.com/en/article/wix-stores-selling-product-subscriptions).\n             */\n            subscriptionInfo?: wix_stores_backend.SubscriptionInfo;\n            /**\n             * Billing information.\n             */\n            billingInfo: wix_stores_backend.BillingInfo;\n        };\n        /**\n         * An object representing information about a canceled order.\n         */\n        type OrderCanceledEvent = {\n            /**\n             * Information about the canceled order.\n             */\n            order: wix_stores_backend.Order;\n        };\n        /**\n         * An object representing information about a refunded order.\n         */\n        type OrderRefundedEvent = {\n            /**\n             * Order refund ID.\n             */\n            refundId: string;\n            /**\n             * Information about the refunded order.\n             */\n            order: wix_stores_backend.Order;\n        };\n        /**\n         * An object representing the specific choices from the product's options.\n         */\n        type ProductChoices = {\n            /**\n             * Value of the option. This key name is\n             *  dependent on the option changed in the product. For example, if a product\n             *  has a size option, this key value will be something like \"Size\" and its value\n             *  will be something like \"Large\".\n             *\n             *  `optionKey` is not case-sensitive. Therefore the values for the option keys `\"Size\"` `\"SIZE\"` and `\"size\"` are combined.\n             */\n            optionKey: string;\n        };\n        /**\n         * An object representing a product that was created.\n         */\n        type ProductCreatedEvent = {\n            /**\n             * Product ID.\n             */\n            _id: string;\n            /**\n             * Product name.\n             */\n            name: string;\n            /**\n             * Product stock keeping unit.\n             */\n            sku: string;\n            /**\n             * Discounted product price formatted with the currency.\n             */\n            formattedDiscountedPrice: string;\n            /**\n             * Whether the product is shown in the store.\n             */\n            visible: boolean;\n            /**\n             * Main product media item (image or video) URL.\n             */\n            mainMedia: string;\n            /**\n             * Discounted product price.\n             */\n            discountedPrice: number;\n            /**\n             * Product price formatted with the currency.\n             */\n            formattedPrice: string;\n            /**\n             * Product price.\n             */\n            price: number;\n            /**\n             * Product media items.\n             */\n            mediaItems: wix_stores_backend.MediaItem[] | wix_stores_backend.VideoItem[];\n            /**\n             * Product currency.\n             */\n            currency: string;\n            /**\n             * URL to the product's page.\n             */\n            productPageUrl: string;\n            /**\n             * Price per unit.\n             */\n            pricePerUnit: number;\n            /**\n             * Price per unit formatted with currency symbol.\n             */\n            formattedPricePerUnit: string;\n        };\n        /**\n         * An object representing a product that was deleted.\n         */\n        type ProductDeletedEvent = {\n            /**\n             * ID of the deleted product.\n             */\n            productId: string;\n        };\n        /**\n         * An object representing a product that was updated.\n         */\n        type ProductUpdatedEvent = {\n            /**\n             * ID of the updated product.\n             */\n            productId: string;\n            /**\n             * Names of the product fields that were updated.\n             */\n            updatedFields: string[];\n        };\n        /**\n         * An object representing a product variants that was updated.\n         */\n        type UpdatedVariant = {\n            /**\n             * ID of the variant that was updated.\n             */\n            variantId: string;\n            /**\n             * Names of the product variant fields that were updated.\n             */\n            updatedFields: string[];\n            /**\n             * Placeholder text.\n             */\n            choices: wix_stores_backend.Events.ProductChoices;\n        };\n        /**\n         * An object representing product variant that was updated.\n         */\n        type UpdatedVariantInventory = {\n            /**\n             * ID of the productVariant that was updated.\n             */\n            id: string;\n            /**\n             * Old variant value.\n             */\n            oldValue: wix_stores_backend.Events.VariantInventoryValue;\n            /**\n             * Updated variant value.\n             */\n            newValue: wix_stores_backend.Events.VariantInventoryValue;\n        };\n        /**\n         * An object representing a product variant value.\n         */\n        type VariantInventoryValue = {\n            /**\n             * Whether the variant is in stock.\n             */\n            inStock: boolean;\n            /**\n             * Number of items in stock.\n             */\n            quantity: number;\n        };\n        /**\n         * An object representing product variants that were updated.\n         */\n        type VariantsUpdatedEvent = {\n            /**\n             * ID of the product in which variants were updated.\n             */\n            productId: string;\n            /**\n             * Variants that were updated.\n             */\n            variants: wix_stores_backend.Events.UpdatedVariant[];\n        };\n    }\n    /**\n     * An object representing an abandoned shopping cart.\n     */\n    type AbandonedCart = {\n        /**\n         * Unique identifier of the shopping cart.\n         */\n        _id: string;\n        /**\n         * Date and time the shopping cart was abandoned.\n         */\n        abandonTime: string;\n        /**\n         * Total price of all items in the cart.\n         */\n        total: string;\n        /**\n         * The buyer's information.\n         */\n        buyerInfo: wix_stores_backend.BuyerInfo;\n        /**\n         * Log of updates related to the cart.\n         */\n        activities: wix_stores_backend.Activity;\n        /**\n         * Status of the abandoned cart. Either `\"ABANDONED\"` or `\"RECOVERED\"`.\n         */\n        status: string;\n    };\n    /**\n     * An array of objects representing a log of updates related to the order.\n     */\n    type Activities = {\n        /**\n         * Activity type.\n         * One of:\n         *\n         *\n         *  - `\"MERCHANT_COMMENT\"`\n         *  - `\"ORDER_PLACED\"`\n         *  - `\"ORDER_PAID\"`\n         *  - `\"ORDER_FULFILLED\"`\n         *  - `\"ORDER_NOT_FULFILLED\"`\n         *  - `\"DOWNLOAD_LINK_SENT\"`\n         *  - `\"PICKUP_READY_EMAIL_SENT\"`\n         *  - `\"TRACKING_NUMBER_ADDED\"`\n         *  - `\"TRACKING_NUMBER_EDITED\"`\n         *  - `\"TRACKING_LINK_WAS_SET\"`\n         *  - `\"SHIPPING_CONFIRMATION_EMAIL_SENT\"`\n         *  - `\"INVOICE_WAS_SET\"`\n         *  - `\"INVOICE_WAS_REMOVED\"`\n         *  - `\"INVOICE_WAS_SENT\"`\n         */\n        type: string;\n        /**\n         * Who made the update (activity) to the order item.\n         */\n        author: string;\n        /**\n         * Comment added to the activity.\n         */\n        message: string;\n        /**\n         * The time the update (activity) occurred.\n         */\n        timestamp: string;\n    };\n    /**\n     * An object representing a shopping cart activity.\n     */\n    type Activity = {\n        /**\n         * One of:\n         *\n         *  + `\"CUSTOM_ACTIVITY\"`\n         *  + `\"EMAIL_NOT_SENT\"`\n         *  + `\"EMAIL_SENT\"`\n         *  + `\"NOTIFICATION_SENT\"`\n         *  + `\"SCHEDULED\"`\n         *  + `\"TASK_CREATED\"`\n         *  + `\"UNRECOGNIZED_TYPE\"`\n         */\n        activityType: string;\n        /**\n         * Activity message.\n         */\n        message: string;\n        /**\n         * Time activity occurred.\n         */\n        timestamp: string;\n        /**\n         * Custom activity data.\n         */\n        customData: wix_stores_backend.CustomData;\n    };\n    /**\n     * An object representing address information.\n     */\n    type Address = {\n        /**\n         * Address in readable format.\n         */\n        formatted?: string;\n        /**\n         * City.\n         */\n        city: string;\n        /**\n         * Country.\n         */\n        country: string;\n        /**\n         * Main address information.\n         */\n        addressLine: string;\n        /**\n         * Additional address information (apt, floor, etc.), if used.\n         */\n        addressLine2?: string;\n        /**\n         * Alternative property for street name and number.\n         */\n        streetAddress?: wix_stores_backend.StreetAddress;\n        /**\n         * Postal/zip code.\n         */\n        postalCode: string;\n        /**\n         * Subdivision of a country, such as a state or province.\n         */\n        subdivision: string;\n    };\n    type AdjustBy = {\n        /**\n         * Adjust by percentage.\n         */\n        percentage?: wix_stores_backend.PercentageAdjustment;\n        /**\n         * Adjust by amount.\n         */\n        amount?: number;\n    };\n    /**\n     * An object representing a coupon applied to the order.\n     */\n    type AppliedCoupon = {\n        /**\n         * Coupon ID.\n         */\n        couponId: string;\n        /**\n         * Coupon name.\n         */\n        name: string;\n        /**\n         * Coupon code (used by a buyer to apply the coupon).\n         */\n        code: string;\n    };\n    /**\n     * An object representing an order's billing info.\n     */\n    type BillingInfo = {\n        /**\n         * Billing address.\n         */\n        address?: wix_stores_backend.Address;\n        /**\n         * Last name.\n         */\n        lastName?: string;\n        /**\n         * First name.\n         */\n        firstName?: string;\n        /**\n         * Email address.\n         */\n        email?: string;\n        /**\n         * Phone number.\n         */\n        phone?: string;\n        /**\n         * Company name.\n         */\n        company?: string;\n        /**\n         * VAT information.\n         */\n        vatId?: wix_stores_backend.VatId;\n        /**\n         * Deprecated: replaced with paymentProviderTransactionId.\n         */\n        externalTransactionId?: string;\n        /**\n         * Date and time the payment was made.\n         */\n        paidDate?: string;\n        /**\n         * Payment method.\n         */\n        paymentMethod?: string;\n        /**\n         * Unique transaction ID for the payment gateway.\n         */\n        paymentGatewayTransactionId?: string;\n        /**\n         * Unique ID for the payment provider.\n         */\n        paymentProviderTransactionId?: string;\n    };\n    type BulkActionMetadata = {\n        /**\n         * Number of items that were successfully processed.\n         */\n        totalSuccesses: number;\n        /**\n         * Number of items that couldn't be processed.\n         */\n        totalFailures: number;\n        /**\n         * Number of failures without details because detailed failure threshold was exceeded.\n         */\n        undetailedFailures: number;\n    };\n    type BulkAdjustProperties = {\n        /**\n         * Adjust product price.\n         * If [variant management](https://support.wix.com/en/article/wix-stores-adding-and-customizing-product-options#setting-different-prices-for-variants) is enabled, variants prices are calculated according to the adjusted price.\n         * If the variant price is negative after the adjustment, the update fails.\n         */\n        price?: wix_stores_backend.AdjustBy;\n        /**\n         * Adjust the product's cost of goods.\n         * If [variant management](https://support.wix.com/en/article/wix-stores-adding-and-customizing-product-options#setting-different-prices-for-variants) is enabled, cost of goods is adjusted per variant.\n         */\n        cost?: wix_stores_backend.AdjustBy;\n        /**\n         * Adjust product weight. If [variant management](https://support.wix.com/en/article/wix-stores-adding-and-customizing-product-options#setting-different-prices-for-variants) is enabled, weight is adjusted per variant.\n         */\n        weight?: wix_stores_backend.AdjustBy;\n    };\n    type BulkAdjustResponse = {\n        /**\n         * Bulk action results.\n         */\n        results: wix_stores_backend.BulkResults[];\n        /**\n         * Bulk action metadata.\n         */\n        bulkActionMetadata: wix_stores_backend.BulkActionMetadata;\n    };\n    type BulkResults = {\n        /**\n         * Item metadata.\n         */\n        itemMetadata: wix_stores_backend.ItemMetadata;\n    };\n    type BulkUpdateProperties = {\n        /**\n         * Set product price.\n         * If [variant management](https://support.wix.com/en/article/wix-stores-adding-and-customizing-product-options#setting-different-prices-for-variants) is enabled, variants prices are calculated according to the set product price.\n         * If the variant price is negative after setting the new price, the update fails.\n         */\n        price?: number;\n        /**\n         * Set the product's cost of goods.\n         * If [variant management](https://support.wix.com/en/article/wix-stores-adding-and-customizing-product-options#setting-different-prices-for-variants) is enabled, cost of goods is set per variant.\n         */\n        cost?: number;\n        /**\n         * Set product weight.\n         * If [variant management](https://support.wix.com/en/article/wix-stores-adding-and-customizing-product-options#setting-different-prices-for-variants) is enabled, weight is set per variant.\n         */\n        weight?: number;\n        /**\n         * Set product ribbon. Pass an empty string to remove the existing ribbon.\n         */\n        ribbon?: string;\n        /**\n         * Set product brand. Pass an empty string to remove the existing brand.\n         */\n        brand?: string;\n    };\n    type BulkUpdateResponse = {\n        /**\n         * Bulk action results.\n         */\n        results: wix_stores_backend.BulkResults[];\n        /**\n         * Bulk action metadata.\n         */\n        bulkActionMetadata: wix_stores_backend.BulkActionMetadata;\n    };\n    /**\n     * An object representing information about the buyer.\n     */\n    type BuyerInfo = {\n        /**\n         * Unique buyer's ID.\n         */\n        id: string;\n        /**\n         * Buyer's email address.\n         */\n        email: string;\n        /**\n         * Buyer's first name.\n         */\n        firstName: string;\n        /**\n         * Buyer's last name.\n         */\n        lastName: string;\n        /**\n         * Buyer's identity.\n         * One of:\n         *\n         *  + `\"MEMBER\"`: A logged-in site member.\n         *  + `\"CONTACT\"`: A Wix contact.\n         *  + `\"ADMIN\"`: Buyer is the site owner.\n         *  + `\"VISITOR\"`: Buyer is not logged in.\n         */\n        identityType: string;\n        /**\n         * Buyer's phone number.\n         */\n        phone?: string;\n    };\n    /**\n     * An object representing a shopping cart.\n     */\n    type Cart = {\n        /**\n         * Unique identifier of the shopping cart.\n         */\n        _id: string;\n        /**\n         * Coupon applied in the shopping cart.\n         */\n        appliedCoupon: wix_stores_backend.CartAppliedCoupon;\n        /**\n         * Cart billing address.\n         */\n        billingAddress: wix_stores_backend.CartAddress;\n        /**\n         * The buyer's information.\n         */\n        buyerInfo: wix_stores_backend.CartBuyerInfo;\n        /**\n         * Cart status. Either `\"INCOMPLETE\"` or `\"COMPLETE\"`.\n         */\n        status: string;\n        /**\n         * Currency of the shopping cart.\n         */\n        currency: wix_stores_backend.Currency;\n        /**\n         * The shopping cart's shipping information.\n         */\n        shippingInfo: wix_stores_backend.CartShippingInfo;\n        /**\n         * Items in the shopping cart.\n         */\n        lineItems: wix_stores_backend.CartLineItem[];\n        /**\n         * The shopping cart's totals.\n         */\n        totals: wix_stores_backend.OrderTotals;\n        /**\n         * The order's units of weight. One of: `\"KG\"`, `\"LB\"`, or `\"UNSPECIFIED_WEIGHT_UNIT\"`.\n         */\n        weightUnit: string;\n    };\n    /**\n     * An object representing an address.\n     */\n    type CartAddress = {\n        /**\n         * First name.\n         */\n        firstName: string;\n        /**\n         * Last name.\n         */\n        lastName: string;\n        /**\n         * Email address.\n         */\n        email: string;\n        /**\n         * Phone number.\n         */\n        phone: string;\n        /**\n         * Address.\n         */\n        address: string;\n    };\n    /**\n     * An object representing a coupon applied in a shopping cart.\n     */\n    type CartAppliedCoupon = {\n        /**\n         * Coupon code.\n         */\n        code: string;\n        /**\n         * Coupon unique identifier.\n         */\n        couponId: string;\n        /**\n         * Coupon name.\n         */\n        name: string;\n        /**\n         * Type of coupon.\n         *  One of:\n         *\n         *  + `\"BuyXGetY\"`\n         *  + `\"FixedPriceAmount\"`\n         *  + `\"FreeShipping\"`\n         *  + `\"MoneyOffAmount\"`\n         *  + `\"PercentOffRate\"`\n         */\n        couponType: string;\n        /**\n         * Value of the coupon discount.\n         */\n        discountValue: string;\n    };\n    /**\n     * An object representing a visitor who abandoned a shopping cart.\n     */\n    type CartBuyerInfo = {\n        /**\n         * Buyer's unique ID.\n         */\n        id: string;\n        /**\n         * Buyer's email address.\n         */\n        email: string;\n        /**\n         * Buyer's first name.\n         */\n        firstName: string;\n        /**\n         * Buyer's last name.\n         */\n        lastName: string;\n        /**\n         * Buyer's identity.\n         *  One of:\n         *\n         *  + `\"ADMIN\"`: Buyer is the site owner.\n         *  + `\"MEMBER\"`: Buyer is a logged-in site member.\n         *  + `\"VISITOR\"`: Buyer is not logged in.\n         *  + `\"CONTACT\"`: A contact has been created for the buyer.\n         */\n        identityType: string;\n        /**\n         * Buyer's phone number.\n         */\n        phone: string;\n    };\n    /**\n     * An object representing a custom text field.\n     */\n    type CartCustomTextField = {\n        /**\n         * Field title.\n         */\n        title: string;\n        /**\n         * Field value.\n         */\n        value: string;\n    };\n    /**\n     * An object representing a line item in a shopping cart.\n     */\n    type CartLineItem = {\n        /**\n         * Name of the line item.\n         */\n        name: string;\n        /**\n         * Notes about the line item.\n         */\n        notes: string;\n        /**\n         * Line item price.\n         */\n        price: string;\n        /**\n         * Line item product ID.\n         */\n        productId: string;\n        /**\n         * Line item quantity.\n         */\n        quantity: number;\n        /**\n         * Line item stock keeping unit.\n         */\n        sku: string;\n        /**\n         * Total price charged to the customer for all line items after any applicable discounts.\n         */\n        totalPrice: string;\n        /**\n         * Line item weight.\n         */\n        weight: string;\n        /**\n         * Type of the line item.\n         *  One of:\n         *\n         *  + `\"DIGITAL\"`: Digital item.\n         *  + `\"PHYSICAL\"`: Physical item.\n         *  + `\"CUSTOM_AMOUNT_ITEM\"`: Item with a custom price.\n         *  + `\"UNSPECIFIED\"`: Type can't be classified due to an error.\n         */\n        lineItemType: string;\n        /**\n         * Line item options.\n         */\n        options: wix_stores_backend.Option[];\n        /**\n         * Media item.\n         */\n        mediaItem: wix_stores_backend.CartMediaItem;\n        /**\n         * Custom text.\n         */\n        customTextFields: wix_stores_backend.CartCustomTextField[];\n        /**\n         * Cart line item ID.\n         */\n        id: number;\n    };\n    /**\n     * An object representing a line item's primary media.\n     */\n    type CartMediaItem = {\n        /**\n         * Media item source for media uploaded to Wix (wix:image, wix:video or external URL).\n         */\n        src: string;\n        /**\n         * Media item type. Currently only `\"IMAGE\"` type supported.\n         */\n        type: string;\n    };\n    /**\n     * An object representing shipping information.\n     */\n    type CartShippingInfo = {\n        /**\n         * Shipment address.\n         */\n        shippingAddress?: wix_stores_backend.CartAddress;\n        /**\n         * Pickup address.\n         */\n        pickupInfo?: wix_stores_backend.CartAddress;\n    };\n    /**\n     * An object representing information about the sales channel that submitted this order.\n     */\n    type ChannelInfo = {\n        /**\n         * Order ID from an external system (such as eBay or Amazon).\n         */\n        externalOrderId?: string;\n        /**\n         * URL to the order in the external system (such as eBay or Amazon).\n         */\n        externalOrderUrl?: string;\n        /**\n         * Sales channel that submitted the order.\n         * One of:\n         *\n         *\n         *  + `\"WEB\"`: Wix online store.\n         *  + `\"POS\"`: Point of sale.\n         *  + `\"EBAY\"`: eBay.\n         *  + `\"OTHER_PLATFORM\"`: Order imported from another system (such as Cart2Cart).\n         *  + `\"WIX_APP_STORE\"`: Order created via the Wix mobile app.\n         */\n        type: string;\n    };\n    /**\n     * An object representing the choice for a product variant.\n     */\n    type Choice = {\n        /**\n         * Product options to use when creating or updating the\n         *  product. The object contains key:value pairs where the key is the\n         *  option name and the value is the chosen option value.\n         */\n        choices: any;\n    };\n    /**\n     * An object representing the choice for a product variant.\n     */\n    type Choices = {\n        /**\n         * Option name.\n         */\n        option: string;\n        /**\n         * Choice name.\n         */\n        choice: string;\n    };\n    /**\n     * An object representing billing information for creating an order.\n     */\n    type CreateOrderBillingInfo = {\n        /**\n         * Billing address.\n         */\n        address: wix_stores_backend.Address;\n        /**\n         * Last name.\n         */\n        lastName?: string;\n        /**\n         * First name.\n         */\n        firstName?: string;\n        /**\n         * Email address.\n         */\n        email?: string;\n        /**\n         * Phone number.\n         */\n        phone?: string;\n        /**\n         * Company name.\n         */\n        company?: string;\n        /**\n         * VAT information.\n         */\n        vatId?: wix_stores_backend.VatId;\n        /**\n         * Payment method.\n         */\n        paymentMethod?: string;\n        /**\n         * Unique transaction ID for the payment gateway.\n         */\n        paymentGatewayTransactionId?: string;\n        /**\n         * Unique ID for the payment provider.\n         */\n        paymentProviderTransactionId?: string;\n    };\n    /**\n     * An object representing buyer information for creating an order.\n     */\n    type CreateOrderBuyerInfo = {\n        /**\n         * Unique buyer's ID.\n         */\n        id: string;\n        /**\n         * Buyer's identity.\n         * One of:\n         *\n         *  + `\"MEMBER\"`: A logged-in site member.\n         *  + `\"CONTACT\"`: A Wix contact.\n         */\n        identityType: string;\n    };\n    /**\n     * An object representing a line item for creating an order.\n     */\n    type CreateOrderLineItem = {\n        /**\n         * Custom text.\n         */\n        customTextFields?: wix_stores_backend.CustomTextField[];\n        /**\n         * Line item product ID.\n         */\n        productId?: string;\n        /**\n         * Type of line item.\n         *  One of:\n         *\n         *\n         *  - `\"DIGITAL\"`: Digital item.\n         *  - `\"PHYSICAL\"`: Physical item.\n         *  - `\"CUSTOM_AMOUNT_ITEM\"`: Item with a custom price.\n         */\n        lineItemType?: string;\n        /**\n         * Line item's primary media item.\n         */\n        mediaItem?: wix_stores_backend.CreateOrderMediaItem;\n        /**\n         * Name of the line item.\n         */\n        name: string;\n        /**\n         * Notes about the line item.\n         */\n        notes?: string;\n        /**\n         * Line item options.\n         */\n        options?: wix_stores_backend.Option[];\n        /**\n         * Line item quantity.\n         */\n        quantity: number;\n        /**\n         * Line item stock keeping unit.\n         */\n        sku?: string;\n        /**\n         * Line item weight.\n         */\n        weight?: number;\n        /**\n         * Line item's name, translated into the customer's language.\n         */\n        translatedName?: string;\n        /**\n         * Line item's discount amount.\n         */\n        discount?: number;\n        /**\n         * Line item's total amount of tax applied.\n         */\n        tax?: number;\n        /**\n         * Price information.\n         */\n        priceData: wix_stores_backend.CreateOrderLineItemPriceData;\n        /**\n         * Tax group ID.\n         */\n        taxGroupId?: string;\n        /**\n         * Line item's fulfiller ID.\n         */\n        fulfillerId?: string;\n        /**\n         * Line item's variant ID.\n         */\n        variantId?: string;\n    };\n    /**\n     * An object representing an line item's price information for creating an order.\n     */\n    type CreateOrderLineItemPriceData = {\n        /**\n         * Price of the item.\n         */\n        price: number;\n        /**\n         * Whether the price includes tax.\n         */\n        taxIncludedInPrice?: boolean;\n    };\n    /**\n     * An object representing a line item's primary media item for creating an order.\n     */\n    type CreateOrderMediaItem = {\n        /**\n         * Image description for accessibility purposes.\n         */\n        altText?: string;\n        /**\n         * Media item source (wix:image or external URL).\n         */\n        src?: string;\n    };\n    /**\n     * An object representing an order's totals for creating an order.\n     */\n    type CreateOrderTotals = {\n        /**\n         * Total calculated discount amount.\n         */\n        discount?: number;\n        /**\n         * Total shipping price, including tax.\n         */\n        shipping?: number;\n        /**\n         * Subtotal of all the order's line items, excluding tax.\n         */\n        subtotal: number;\n        /**\n         * Total amount of tax.\n         */\n        tax?: number;\n        /**\n         * Total price.\n         */\n        total: number;\n    };\n    /**\n     * An object representing a currency.\n     */\n    type Currency = {\n        /**\n         * The currency code.\n         */\n        currency: string;\n        /**\n         * The currency symbol.\n         */\n        symbol: string;\n    };\n    /**\n     * An object representing custom activity data.\n     */\n    type CustomData = {\n        /**\n         * Activity namespace.\n         */\n        namespace: string;\n        /**\n         * JSON object containing custom data.\n         */\n        customValue: any;\n    };\n    /**\n     * An object representing a custom field added by the customer during the checkout process.\n     */\n    type CustomField = {\n        /**\n         * Custom field's title.\n         */\n        title: string;\n        /**\n         * Title translated into the buyer's language.\n         */\n        translatedTitle: string;\n        /**\n         * Custom field's text.\n         */\n        value: string;\n    };\n    /**\n     * An object representing a custom text field.\n     */\n    type CustomTextField = {\n        /**\n         * Field title.\n         */\n        title: string;\n        /**\n         * Field value.\n         */\n        value: string;\n    };\n    type DecrementInfo = {\n        /**\n         * Variant ID.\n         */\n        variantId: string;\n        /**\n         * Number to decrement inventory by.\n         */\n        decrementBy: number;\n        /**\n         * Product ID.\n         */\n        productId?: string;\n        /**\n         * Inventory item ID. This is the `_id` field in the [\"InventoryItems\" Collection](https://www.wix.com/velo/reference/wix-stores-backend/%22inventoryitems%22-collection-fields).\n         */\n        inventoryId?: string;\n    };\n    /**\n     * An object representing a discount applied to the order.\n     */\n    type Discount = {\n        /**\n         * Information about an applied coupon.\n         */\n        appliedCoupon: wix_stores_backend.AppliedCoupon;\n    };\n    /**\n     * An object representing information about the identity of the order initiator.\n     * Occasionally, the person that completes the order isn't the buyer. For example, this occurs when an order is created using a point of sale terminal.\n     */\n    type EnteredBy = {\n        /**\n         * ID of the order initiator.\n         */\n        id: string;\n        /**\n         * Order was created by one of the following:\n         *\n         *\n         *   + `\"USER\"`: Wix user who performed a POS transaction on behalf of the buyer.\n         *   + `\"MEMBER\"`: Logged-in site member.\n         *   + `\"CONTACT\"`: A Wix contact.\n         */\n        identityType: string;\n    };\n    /**\n     * An object representing order fulfillment details.\n     */\n    type Fulfillment = {\n        /**\n         * Unique ID automatically generated upon fulfillment.\n         */\n        id: string;\n        /**\n         * Date and time of fulfillment.\n         */\n        dateCreated: string;\n        /**\n         * Information about the line items in the fulfilled order.\n         */\n        lineItems: wix_stores_backend.FulfillmentLineItem[];\n        /**\n         * Tracking information for a fulfilled order.\n         */\n        trackingInfo?: wix_stores_backend.TrackingInfo;\n    };\n    /**\n     * An object representing new fulfillment details.\n     */\n    type FulfillmentInfo = {\n        /**\n         * Information about the line items in the fulfilled order.\n         */\n        lineItems: wix_stores_backend.FulfillmentLineItem[];\n        /**\n         * Tracking information for a fulfilled order.\n         */\n        trackingInfo?: wix_stores_backend.TrackingInfo;\n    };\n    /**\n     * An object representing information about a fulfillment's line items.\n     */\n    type FulfillmentLineItem = {\n        /**\n         * Line item's position in the list of line items.\n         */\n        index: number;\n        /**\n         * Number of units of this line item. On creation, if this field is left empty, the new fulfillment will automatically include all items of this line item that have not already been linked to a fulfillment.\n         *\n         * If the order does not have the requested quantity of line items available to add to this fulfillment, the fulfillment will not be created and an error will be returned. This property will always have a value when returned.\n         */\n        quantity?: number;\n    };\n    type IncrementInfo = {\n        /**\n         * Variant ID.\n         */\n        variantId: string;\n        /**\n         * Number to increment inventory by.\n         */\n        incrementBy: number;\n        /**\n         * Product ID.\n         */\n        productId?: string;\n        /**\n         * Inventory item ID. This is the `_id` field in the [\"InventoryItems\" Collection](https://www.wix.com/velo/reference/wix-stores-backend/%22inventoryitems%22-collection-fields).\n         */\n        inventoryId?: string;\n    };\n    /**\n     * An object representing an inventory item for a product variant in a store.\n     */\n    type InventoryItem = {\n        /**\n         * Unique identifier for the inventory item.\n         */\n        _id: string;\n        /**\n         * Deprecated: use productId.\n         */\n        externalId: string;\n        /**\n         * Product ID.\n         */\n        productId: string;\n        /**\n         * Indicates whether the on-hand inventory quantity is tracked for the inventory item's variants. If true, you can update the actual number of variants available. If false, you can indicate if a variant is in stock.\n         */\n        trackQuantity: boolean;\n        /**\n         * Inventory item's variants.\n         */\n        variants: wix_stores_backend.InventoryItemVariantItem[];\n        /**\n         * Date the inventory item was last updated.\n         */\n        _updatedDate: string;\n    };\n    type InventoryItemVariantInfo = {\n        /**\n         * Indicates whether the on-hand inventory quantity is tracked for the inventory item's variants. If true, you can update the actual number of variants available. If false, you can indicate if a variant is in stock.\n         */\n        trackQuantity: boolean;\n        /**\n         * Inventory item variants.\n         */\n        variants: wix_stores_backend.InventoryItemVariantItem[];\n    };\n    /**\n     * An object representing an inventory item's variant.\n     */\n    type InventoryItemVariantItem = {\n        /**\n         * Unique inventory item's variant ID.\n         */\n        variantId: string;\n        /**\n         * Whether the variant is in stock at the store. Used when `trackQuantity` is false. If `trackQuantity` is true, `inStock` is based on the actual tracked `quantity`.\n         */\n        inStock: boolean;\n        /**\n         * In-stock quantity at the store. Used when `trackQuantity` is true. If `trackQuantity` is false, undefined.\n         */\n        quantity: number;\n    };\n    type ItemMetadata = {\n        /**\n         * Item ID. Item Id. Omitted in certain cases, such as when failing to create an item.\n         */\n        id: string;\n        /**\n         * Index of the item within the update array.\n         */\n        originalIndex: number;\n        /**\n         * Whether the requested action succeeded for this item.\n         * When `false`, the `error` property is populated.\n         */\n        success: boolean;\n        /**\n         * Details about the error in case of failure, as a key:value pair.\n         */\n        error: wix_stores_backend.ItemMetadataError;\n    };\n    type ItemMetadataError = {\n        /**\n         * Error code.\n         */\n        code: string;\n        /**\n         * Error description.\n         */\n        description: string;\n        /**\n         * Error data.\n         */\n        data: object;\n    };\n    /**\n     * An object representing an line item's price information.\n     */\n    type LineItemPriceData = {\n        /**\n         * Price of the item.\n         */\n        price: number;\n        /**\n         * Total price charged to the customer (per line item) after calculation of quantity and discount.\n         */\n        totalPrice: number;\n        /**\n         * Whether the price includes tax.\n         */\n        taxIncludedInPrice: boolean;\n    };\n    /**\n     * An object with the link to a PDF file.\n     */\n    type LinkToPdf = {\n        /**\n         * URL to a PDF file.\n         */\n        link: string;\n    };\n    /**\n     * An object representing the media item for a product.\n     */\n    type Media = {\n        /**\n         * Deprecated.\n         */\n        mediaId: string;\n        /**\n         * Deprecated.\n         */\n        url: string;\n        /**\n         * Media item source for media uploaded to Wix (wix:image, wix:video or external URL).\n         */\n        src: string;\n        /**\n         * A choice of the product variant.\n         */\n        choice: wix_stores_backend.Choice;\n    };\n    /**\n     * An object representing the media item for a product's choices.\n     */\n    type MediaChoice = {\n        /**\n         * Deprecated. See `mediaSources`.\n         */\n        mediaIds: string[];\n        /**\n         * Media item source for media uploaded to Wix (wix:image or wix:video).\n         */\n        mediaSources: string[];\n        /**\n         * Option name.\n         */\n        option: string;\n        /**\n         * Choice name.\n         */\n        choice: string;\n    };\n    /**\n     * An object representing a media item.\n     */\n    type MediaItem = {\n        /**\n         * Media item title.\n         */\n        title: string;\n        /**\n         * Media item description.\n         */\n        description: string;\n        /**\n         * Media items type. Currently only `IMAGE` type supported.\n         */\n        type: string;\n        /**\n         * Media item source for media uploaded to Wix (wix:image, wix:video or external URL).\n         */\n        src: string;\n        /**\n         * Thumbnail URL for videos only.\n         */\n        thumbnail?: string;\n    };\n    /**\n     * An object representing order fulfillment details.\n     */\n    type NewFulfillmentAndOrder = {\n        /**\n         * ID for the newly created fulfillment.\n         */\n        id: string;\n        /**\n         * Updated order.\n         */\n        order: wix_stores_backend.Order;\n    };\n    /**\n     * An object representing a line item option.\n     */\n    type Option = {\n        /**\n         * Name of the product option.\n         */\n        option: string;\n        /**\n         * Selected option.\n         */\n        selection: string;\n    };\n    /**\n     * An object representing an order.\n     */\n    type Order = {\n        /**\n         * Unique order ID.\n         */\n        _id: string;\n        /**\n         * Date and time the order was updated.\n         */\n        _updatedDate: string;\n        /**\n         * The site's displayed language.\n         */\n        buyerLanguage: string;\n        /**\n         * Shopping cart ID.\n         */\n        cartId?: string;\n        /**\n         * Channel information.\n         */\n        channelInfo: wix_stores_backend.ChannelInfo;\n        /**\n         * Identity of the order's initiator.\n         */\n        enteredBy: wix_stores_backend.EnteredBy;\n        /**\n         * Billing information.\n         */\n        billingInfo?: wix_stores_backend.BillingInfo;\n        /**\n         * Buyer information.\n         */\n        buyerInfo: wix_stores_backend.BuyerInfo;\n        /**\n         * A note added by the buyer.\n         */\n        buyerNote?: string;\n        /**\n         * Date and time the order was created.\n         */\n        _dateCreated: string;\n        /**\n         * Order currency.\n         */\n        currency: string;\n        /**\n         * The order's current fulfillment status (whether the order received a tracking number or was delivered/picked up).\n         * One of:\n         *\n         *  + `\"NOT_FULFILLED\"`: Order is not yet fulfilled.\n         *  + `\"FULFILLED\"`: Order was fulfilled successfully.\n         *  + `\"CANCELED\"`: Order was canceled.\n         *  + `\"PARTIALLY_FULFILLED\"`: Order was partially fulfilled. For example, when only some of the order's items were fulfilled.\n         */\n        fulfillmentStatus: string;\n        /**\n         * Whether or not the order was archived.\n         */\n        archived: boolean;\n        /**\n         * Log of updates related to the order.\n         */\n        activities: wix_stores_backend.Activities[];\n        /**\n         * Running order number.\n         */\n        number: number;\n        /**\n         * Current status of the payment.\n         * One of:\n         *\n         *  + `\"NOT_PAID\"`: Payment was not made.\n         *  + `\"PAID\"`: Order was successfully paid for.\n         *  + `\"PARTIALLY_REFUNDED\"`: Order was partially refunded.\n         *  + `\"FULLY_REFUNDED\"`: Order was refunded in full.\n         */\n        paymentStatus: string;\n        /**\n         * Shipping information.\n         */\n        shippingInfo?: wix_stores_backend.OrderShippingInfo;\n        /**\n         * Order items.\n         */\n        lineItems: wix_stores_backend.OrderLineItem[];\n        /**\n         * Order totals.\n         */\n        totals: wix_stores_backend.Totals;\n        /**\n         * The unit in which the order's weight is measured. Either `\"KG\"` or `\"LB\"`. If not provided, the site's default weight unit is used.\n         */\n        weightUnit?: string;\n        /**\n         * Custom field information.\n         */\n        customField?: wix_stores_backend.CustomField;\n        /**\n         * Order fulfillment information.\n         */\n        fulfillments: wix_stores_backend.Fulfillment[];\n        /**\n         * Discount information.\n         */\n        discount?: wix_stores_backend.Discount;\n        /**\n         * Refund information.\n         */\n        refunds?: wix_stores_backend.Refund[];\n        /**\n         * Subscription information. Omitted unless the order is a subscription.\n         * Learn more about [selling product subscriptions](https://support.wix.com/en/article/wix-stores-selling-product-subscriptions).\n         */\n        subscriptionInfo?: wix_stores_backend.SubscriptionInfo;\n    };\n    /**\n     * An object representing information for creating an order.\n     */\n    type OrderInfo = {\n        /**\n         * Shopping cart ID.\n         */\n        cartId?: string;\n        /**\n         * The language displayed to the buyer. If not provided, the site's default language is used.\n         */\n        buyerLanguage?: string;\n        /**\n         * Channel information.\n         */\n        channelInfo: wix_stores_backend.ChannelInfo;\n        /**\n         * Billing information.\n         */\n        billingInfo: wix_stores_backend.CreateOrderBillingInfo;\n        /**\n         * Buyer information. Only pass these fields if you want to override the buyer identity e.g. when creating an order on behalf of a contact or member.\n         */\n        buyerInfo?: wix_stores_backend.CreateOrderBuyerInfo;\n        /**\n         * A note added by the buyer.\n         */\n        buyerNote?: string;\n        /**\n         * Order currency. If not provided, the site's default currency is used.\n         */\n        currency?: string;\n        /**\n         * Current status of the payment.\n         * One of:\n         *\n         *  + `\"NOT_PAID\"`: Payment was not made.\n         *  + `\"PAID\"`: Order was successfully paid for.\n         */\n        paymentStatus: string;\n        /**\n         * Shipping information.\n         */\n        shippingInfo: wix_stores_backend.OrderShippingInfo;\n        /**\n         * Order items.\n         */\n        lineItems: wix_stores_backend.CreateOrderLineItem[];\n        /**\n         * Order totals.\n         */\n        totals: wix_stores_backend.CreateOrderTotals;\n        /**\n         * The unit in which the order's weight is measured. Either `\"KG\"` or `\"LB\"`. If not provided, the site's default weight unit is used.\n         */\n        weightUnit?: string;\n        /**\n         * Information about a custom field.\n         */\n        customField?: wix_stores_backend.CustomField;\n        /**\n         * Discount information.\n         */\n        discount?: wix_stores_backend.Discount;\n    };\n    /**\n     * An object representing a line item in an order.\n     */\n    type OrderLineItem = {\n        /**\n         * Custom text.\n         */\n        customTextFields?: wix_stores_backend.CustomTextField[];\n        /**\n         * Line item product ID.\n         */\n        productId?: string;\n        /**\n         * Type of line item.\n         *  One of:\n         *\n         *\n         *  - `\"DIGITAL\"`: Digital item.\n         *  - `\"PHYSICAL\"`: Physical item.\n         *  - `\"CUSTOM_AMOUNT_ITEM\"`: Item with a custom price.\n         */\n        lineItemType?: string;\n        /**\n         * Information about the line item's primary media item.\n         */\n        mediaItem: wix_stores_backend.OrderMediaItem;\n        /**\n         * Name of the line item.\n         */\n        name: string;\n        /**\n         * Notes about the line item.\n         */\n        notes?: string;\n        /**\n         * Line item options.\n         */\n        options?: wix_stores_backend.Option[];\n        /**\n         * Deprecated: see priceData.\n         */\n        price: number;\n        /**\n         * Line item quantity.\n         */\n        quantity: number;\n        /**\n         * Line item stock keeping unit.\n         */\n        sku?: string;\n        /**\n         * Deprecated: see priceData.\n         */\n        totalPrice: number;\n        /**\n         * Line item weight.\n         */\n        weight?: number;\n        /**\n         * Line item index.\n         */\n        index?: number;\n        /**\n         * Line item's name, translated into the customer's language.\n         */\n        translatedName?: string;\n        /**\n         * Line item's discount amount.\n         */\n        discount?: number;\n        /**\n         * Line item's total amount of tax applied.\n         */\n        tax?: number;\n        /**\n         * Price information.\n         */\n        priceData: wix_stores_backend.LineItemPriceData;\n        /**\n         * Tax group ID.\n         */\n        taxGroupId?: string;\n        /**\n         * Line item's fulfiller ID.\n         */\n        fulfillerId?: string;\n        /**\n         * Line item's variant ID.\n         */\n        variantId?: string;\n    };\n    /**\n     * An object representing a line item's primary media item.\n     */\n    type OrderMediaItem = {\n        /**\n         * Image description for accessibility purposes.\n         */\n        altText?: string;\n        /**\n         * Media item source (wix:image or external URL).\n         */\n        src: string;\n        /**\n         * Media item type. Currently only `IMAGE` type supported.\n         */\n        type: string;\n    };\n    /**\n     * An object representing an order's shipping information.\n     */\n    type OrderShippingInfo = {\n        /**\n         * Expected date of delivery.\n         */\n        deliverByDate?: string;\n        /**\n         * Delivery option name.\n         */\n        deliveryOption?: string;\n        /**\n         * Estimated time until delivery.\n         */\n        estimatedDeliveryTime?: string;\n        /**\n         * Shipment details (empty if order was designated for pickup).\n         */\n        shipmentDetails: wix_stores_backend.ShipmentDetails;\n        /**\n         * Pickup details (empty if order was designated for delivery).\n         */\n        pickupDetails?: wix_stores_backend.PickupDetails;\n        /**\n         * Shipping region.\n         */\n        shippingRegion?: string;\n    };\n    /**\n     * An object representing an order's totals.\n     */\n    type OrderTotals = {\n        /**\n         * The subtotal of all the order's line items, excluding tax.\n         */\n        subtotal: number;\n        /**\n         * The total shipping price, including tax.\n         */\n        shipping: number;\n        /**\n         * The total amount of tax.\n         */\n        tax: string;\n        /**\n         * The total calculated discount amount.\n         */\n        discount: number;\n        /**\n         * The total price.\n         */\n        total: number;\n        /**\n         * The total weight of the order's items.\n         */\n        weight: number;\n        /**\n         * The total quantity of the the order's line items.\n         */\n        quantity: number;\n    };\n    /**\n     * An object representing paging options.\n     */\n    type PagingOptions = {\n        /**\n         * Maximum number of variants to retrieve. Defaults to 300.\n         */\n        limit: number;\n        /**\n         * Number of variants to skip before the retrieved variants. Defaults to 0.\n         */\n        skip: number;\n    };\n    type PercentageAdjustment = {\n        /**\n         * When `true`, result is rounded to the nearest whole number (integer).\n         * When `false`, result is rounded to 2 places after the decimal point.\n         */\n        roundToInt: string;\n        /**\n         * Percentage value, as a whole number (integer) between `-100` and `1000`.\n         * For example, pass `100` to increase value by 100% (multiply original value by 2).\n         */\n        rate: number;\n    };\n    /**\n     * An object representing an order's pickup details.\n     */\n    type PickupDetails = {\n        /**\n         * Pickup instructions.\n         */\n        pickupInstructions?: string;\n        /**\n         * Pickup address.\n         */\n        pickupAddress?: wix_stores_backend.Address;\n        /**\n         * First name.\n         */\n        firstName?: string;\n        /**\n         * Last name.\n         */\n        lastName?: string;\n        /**\n         * Email address.\n         */\n        email?: string;\n        /**\n         * Phone number.\n         */\n        phone?: string;\n    };\n    /**\n     * An object representing a product in a store.\n     */\n    type Product = {\n        /**\n         * Product ID.\n         */\n        _id: string;\n        /**\n         * Date product was last updated.\n         */\n        _updatedDate: string;\n        /**\n         * Product name.\n         */\n        name: string;\n        /**\n         * Product description.\n         */\n        description: string;\n        /**\n         * Main product media item URL (wix:image or https).\n         */\n        mainMedia: string;\n        /**\n         * List of product media items.\n         */\n        mediaItems: wix_stores_backend.MediaItem[];\n        /**\n         * Product stock keeping unit value. Must be unique.\n         */\n        sku: string;\n        /**\n         * Deprecated. Use `ribbon` instead.\n         */\n        ribbons: wix_stores_backend.ProductRibbon[];\n        /**\n         * Product currency.\n         */\n        currency: string;\n        /**\n         * Product price.\n         *  The price must be greater than its discount.\n         *  The product price is propagated to the product's newly-created variants. Product variants whose prices have been updated directly are not affected by changes to the product price.\n         */\n        price: number;\n        /**\n         * Discounted product price.\n         */\n        discountedPrice: number;\n        /**\n         * Product price formatted with the currency.\n         */\n        formattedPrice: string;\n        /**\n         * Discounted product price formatted with currency symbol.\n         */\n        formattedDiscountedPrice: string;\n        /**\n         * ID for the inventory item.\n         */\n        inventoryItemId: string;\n        /**\n         * Product discount.\n         */\n        discount: wix_stores_backend.ProductDiscount;\n        /**\n         * Indicates whether inventory is tracked for the product.\n         */\n        trackInventory: boolean;\n        /**\n         * Indicates whether the product is in stock.\n         */\n        inStock: boolean;\n        /**\n         * Number of units currently in stock.\n         */\n        quantityInStock: number;\n        /**\n         * Additional product information sections.\n         */\n        additionalInfoSections: wix_stores_backend.ProductAdditionalInfoSection[];\n        /**\n         * All the available options for a store product.\n         */\n        productOptions: wix_stores_backend.ProductOptions;\n        /**\n         * Product page relative URL.\n         */\n        productPageUrl: string;\n        /**\n         * Indicates whether product variants are managed. Can be set to true only if the product has options. Once set to true, can be reset to false only if no variants exist. Use [`getProductVariants()`](wix-stores.html#getProductVariants) to check if variants exist. You cannot set `manageVariants` to true if more than 300 variants are defined.\n         */\n        manageVariants: boolean;\n        /**\n         * List of product customization fields.\n         */\n        customTextFields: wix_stores_backend.ProductCustomTextFields[];\n        /**\n         * Product type.\n         */\n        productType: string;\n        /**\n         * Product slug.\n         */\n        slug: string;\n        /**\n         * Product weight.\n         */\n        weight: string;\n        /**\n         * Whether the product is visible to site visitors and appears in Content Manager collections.\n         */\n        visible: boolean;\n        /**\n         * Product variants.\n         */\n        variants: wix_stores_backend.VariantItem[];\n        /**\n         * Custom SEO data for the product. Learn more [about SEO](https://support.wix.com/en/search?term=seo).\n         */\n        seoData: wix_stores_backend.SeoData;\n        /**\n         * Details of the product's price per unit.\n         */\n        pricePerUnitData: wix_stores_backend.pricePerUnitData;\n        /**\n         * Price per unit.\n         */\n        pricePerUnit: number;\n        /**\n         * Price per unit formatted with currency symbol.\n         */\n        formattedPricePerUnit: string;\n        /**\n         * Product ribbon. Used to highlight relevant information about a product. For example, `\"Sale\"`, `\"New Arrival\"`, `\"Sold Out\"`.\n         */\n        ribbon: string;\n        /**\n         * Product brand. Including a brand name can help improve your site’s [visibility on search engines](https://support.wix.com/en/article/adding-brand-names-to-boost-product-page-seo-in-wix-stores).\n         */\n        brand: string;\n    };\n    /**\n     * An object representing an additional info section for a store product.\n     */\n    type ProductAdditionalInfoSection = {\n        /**\n         * Section title.\n         */\n        title: string;\n        /**\n         * Section description.\n         */\n        description: string;\n    };\n    /**\n     * An object representing a product variant's option choices.\n     */\n    type ProductChoices = {\n        /**\n         * Value of the choice. This key name is dependent on the product option. For example, if a product has a size option, this\n         *  key value will be something like `\"Size\"` and its value will be something like\n         *  `\"Large\"`.\n         *\n         *  `optionKey` is not case-sensitive. Therefore the values for the option keys `\"Size\"`, `\"SIZE\"`, and `\"size\"` are combined.\n         */\n        optionKey: string;\n    };\n    /**\n     * An object representing a custom text field for a store product.\n     */\n    type ProductCustomTextFields = {\n        /**\n         * Product customization field title.\n         */\n        title: string;\n        /**\n         * Maximum length of product customization field in characters.\n         */\n        maxLength: string;\n    };\n    /**\n     * An object representing a product discount.\n     */\n    type ProductDiscount = {\n        /**\n         * Discount type. Required.\n         *\n         *\n         *\n         *  One of:\n         *\n         *\n         *\n         *  - `\"AMOUNT\"`\n         *\n         *  - `\"PERCENT\"`\n         *\n         *  - `\"NONE\"`\n         */\n        type: string;\n        /**\n         * Discount value. The discount value cannot be greater than the price of the product or the variant.\n         */\n        value: string;\n    };\n    /**\n     * An object representing information for creating or updating a product in a store.\n     */\n    type ProductInfo = {\n        /**\n         * Product name. Limited to 80 characters.\n         */\n        name: string;\n        /**\n         * Product description.\n         */\n        description?: string;\n        /**\n         * Product stock keeping unit value. Must be unique.\n         */\n        sku?: string;\n        /**\n         * Product price.\n         *  The price must be greater than its discount.\n         *  The product price is propagated to the product's newly-created variants. Product variants whose prices have been updated directly are not affected by changes to the product price.\n         */\n        price: number;\n        /**\n         * An object representing a product discount.\n         */\n        discount?: wix_stores_backend.ProductDiscount;\n        /**\n         * An object representing all the available options for a store product.\n         */\n        productOptions?: wix_stores_backend.ProductOptionsInfo;\n        /**\n         * Indicates whether product variants can be managed. Can be set to true only if the product has options. Once set to true, can be reset to false only if no variants exist. Use [`getProductVariants()`](wix-stores.html#getProductVariants) to check if variants exist.  You cannot set `manageVariants` to true if more than 300 variants are defined.\n         */\n        manageVariants?: boolean;\n        /**\n         * Product type. Currently, only creating physical products (`\"productType\": \"physical\"`) is supported via the API.\n         */\n        productType?: string;\n        /**\n         * Product weight.\n         */\n        weight?: number;\n        /**\n         * Whether the product is visible to site visitors. Setting this to false removes the product from Content Manager collections.\n         */\n        visible?: boolean;\n        /**\n         * Custom SEO data for the product. Learn more [about SEO](https://support.wix.com/en/search?term=seo).\n         */\n        seoData?: wix_stores_backend.SeoData;\n        /**\n         * Details for the product's price per unit. If one of the `pricePerUnitData` fields is provided, all must be provided.\n         */\n        pricePerUnitData?: wix_stores_backend.pricePerUnitData;\n        /**\n         * Product ribbon. Used to highlight relevant information about a product.\n         * For example, `\"Sale\"`, `\"New Arrival\"`, `\"Sold Out\"`. Limited to 30 characters.\n         */\n        ribbon?: string;\n        /**\n         * Product brand.\n         * Including a brand name can help improve your site’s [visibility on search engines](https://support.wix.com/en/article/adding-brand-names-to-boost-product-page-seo-in-wix-stores).\n         * Limited to 50 characters.\n         */\n        brand?: string;\n    };\n    /**\n     * An object representing an option for a store product.\n     */\n    type ProductOption = {\n        /**\n         * Option type. Either `\"color\"` or `\"drop_down\"`.\n         */\n        optionType: string;\n        /**\n         * Option name.\n         */\n        name: string;\n        /**\n         * Option choices.\n         *  Each option can contain between one and thirty choices.\n         */\n        choices: wix_stores_backend.ProductOptionsChoice[];\n    };\n    /**\n     * An object representing an option for a store product.\n     */\n    type ProductOptionInfo = {\n        /**\n         * Option name.\n         */\n        name: string;\n        /**\n         * Option choices.\n         *  Each option can contain between one and thirty choices.\n         */\n        choices: wix_stores_backend.ProductOptionsChoiceInfo[];\n    };\n    /**\n     * An object representing all the available options for a store product, such as \"Size\" or \"Color.\"\n     */\n    type ProductOptions = {\n        /**\n         * Name of the option. This key name\n         *  is dependent on the options added to the product. For example, if a product has a size\n         *  option, this key will be something like `\"Size\"`.\n         *\n         *  `optionKey` is not case-sensitive. Therefore the values for the option keys `\"Size\"`, `\"SIZE\"`,\n         *  and `\"size\"` are combined.\n         *\n         *  An option cannot be changed if it has choices and variants. To change an option, reset its variants\n         *  with [`resetVariantData()`](wix-stores-backend.html#resetVariantData).\n         *  For each option, you can define a maximum of six choices.\n         */\n        optionKey: wix_stores_backend.ProductOption;\n    };\n    /**\n     * An object returned by the `getProductOptionsAvailability()` function representing the availability of a product.\n     */\n    type ProductOptionsAvailability = {\n        /**\n         * Whether the product with the specified option choices is available for purchase.\n         */\n        availableForPurchase: boolean;\n        /**\n         * An object representing all the available options for a store product.\n         */\n        productOptions: wix_stores_backend.ProductOptions;\n        /**\n         * Main product media item (image or video) URL.\n         */\n        mainMedia: string;\n        /**\n         * List of product media items.\n         */\n        mediaItems: wix_stores_backend.MediaItem[];\n        /**\n         * The variant of the product selected using the specified option choices if there is one.\n         */\n        selectedVariant: wix_stores_backend.ProductOptionsAvailabilitySelectedVariant;\n    };\n    /**\n     * An object representing the product variant selected using the `getProductOptionsAvailability()` function.\n     */\n    type ProductOptionsAvailabilitySelectedVariant = {\n        /**\n         * Product variant stock keeping unit value.\n         */\n        sku: string;\n        /**\n         * Product variant currency.\n         */\n        currency: string;\n        /**\n         * Product variant price. The variant price must be greater than its discount.\n         */\n        price: number;\n        /**\n         * Discounted product variant price.\n         */\n        discountedPrice: number;\n        /**\n         * Product variant price formatted with the currency.\n         */\n        formattedPrice: string;\n        /**\n         * Discounted product variant price formatted with the currency.\n         */\n        formattedDiscountedPrice: string;\n        /**\n         * Whether the product variant is visible to site visitors and appears in Content Manager collections.\n         */\n        visible: boolean;\n        /**\n         * Whether the product variant is in stock.\n         */\n        inStock: boolean;\n        /**\n         * Product variant weight.\n         */\n        weight: number;\n    };\n    /**\n     * An object representing an options choice for a store product, such as choice \"Small\" for the option \"Size.\"\n     */\n    type ProductOptionsChoice = {\n        /**\n         * Choice value.\n         */\n        value: number;\n        /**\n         * Choice description.\n         */\n        description: number;\n        /**\n         * Whether the product with this choice is in stock.\n         */\n        inStock: boolean;\n        /**\n         * Whether the product with this option is visible.\n         */\n        visible: boolean;\n    };\n    type ProductOptionsChoiceInfo = {\n        /**\n         * Choice value.\n         */\n        value: number;\n        /**\n         * Choice description.\n         */\n        description: number;\n    };\n    /**\n     * An object representing all the available options for a store product.\n     */\n    type ProductOptionsInfo = {\n        /**\n         * Name of the option. This key name is dependent on the options added to the product. For example, if a product has a color or size option, this key will be something like `\"Color\"` or `\"Size\"`.\n         *\n         *  `optionKey` is not case-sensitive. Therefore the values for the option keys `\"Size\"`, `\"SIZE\"`, and `\"size\"` are combined.\n         */\n        optionKey: wix_stores_backend.ProductOptionInfo;\n    };\n    /**\n     * An object representing a ribbon for a store product.\n     */\n    type ProductRibbon = {\n        /**\n         * Ribbon text.\n         */\n        text: string;\n    };\n    /**\n     * An object representing the selection of specific variants of a product. Use only one of\n     *  `choices` or `variantIds`.\n     */\n    type ProductVariantOptions = {\n        /**\n         * The choices the retrieved variants will have.\n         */\n        choices?: wix_stores_backend.ProductChoices;\n        /**\n         * IDs of variants to retrieve.\n         */\n        variantIds?: string[];\n    };\n    /**\n     * An object representing order refund information.\n     */\n    type Refund = {\n        /**\n         * Refund ID.\n         */\n        id: string;\n        /**\n         * Date and time the refund was issued.\n         */\n        dateCreated: string;\n        /**\n         * Refund amount.\n         */\n        amount: string;\n        /**\n         * Reason for refund.\n         */\n        reason?: string;\n        /**\n         * Whether the refund was made externally.\n         * An external refund refers to refunds processed by the payment provider and reported to the Wix orders system.\n         * When the value is false, the refund was reported to the Wix orders system, but was not processed by the payment provider.\n         */\n        externalRefund: boolean;\n        /**\n         * Payment provider transaction ID.\n         */\n        paymentProviderTransactionId?: string;\n    };\n    /**\n     * An object representing custom SEO data for the product.\n     */\n    type SeoData = {\n        /**\n         * SEO tag details.\n         */\n        tags: wix_stores_backend.SeoTag[];\n    };\n    /**\n     * An object representing the product's custom SEO tags.\n     */\n    type SeoTag = {\n        /**\n         * SEO tag type.\n         * Supported values:\n         *\n         *  + `\"title\"`\n         *  + `\"meta\"`\n         *  + `\"script\"`\n         *  + `\"link\"`\n         */\n        type: string;\n        /**\n         * The props property holds an object of `{\"key\": \"value\"}` pairs where the key is one of the SEO tag's properties (name, content, rel, href, etc.)\n         * and the value is the value for that property. `{\"name\": \"description\", \"content\": \"The description itself.\"}`.\n         */\n        props: object;\n        /**\n         * Tag metadata. For example, `{\"height\": 300, \"width\": 240}`.\n         */\n        meta: object;\n        /**\n         * Tag inner content. For example, ` inner content `.\n         */\n        children: string;\n        /**\n         * Whether the tag is a custom tag.\n         */\n        custom: boolean;\n        /**\n         * Whether the tag is disabled.\n         */\n        disabled: boolean;\n    };\n    /**\n     * An object representing product custom SEO tag information.\n     */\n    type SeoTagInfo = {\n        /**\n         * SEO tag type.\n         * Supported values:\n         *\n         *  + `\"title\"`\n         *  + `\"meta\"`\n         *  + `\"script\"`\n         *  + `\"link\"`\n         */\n        type: string;\n        /**\n         * The props property holds an object of key:value pairs where the key is one of the SEO tag's properties (name, content, rel, href, etc.)\n         * and the value is the value for that property. `{\"name\": \"description\", \"content\": \"The description itself.\"}`.\n         */\n        props: object;\n        /**\n         * Tag meta data. For example, `{\"height\": 300, \"width\": 240}`.\n         */\n        meta: object;\n        /**\n         * Tag inner content. For example, ` inner content `.\n         */\n        children: string;\n        /**\n         * Whether the tag is a custom tag.\n         */\n        custom: boolean;\n        /**\n         * Whether the tag is disabled.\n         */\n        disabled: boolean;\n    };\n    /**\n     * An object representing an order's shipping details.\n     */\n    type ShipmentDetails = {\n        /**\n         * Shipping address.\n         */\n        address?: wix_stores_backend.Address;\n        /**\n         * Last name.\n         */\n        lastName?: string;\n        /**\n         * First name.\n         */\n        firstName?: string;\n        /**\n         * Email address.\n         */\n        email?: string;\n        /**\n         * Phone number.\n         */\n        phone?: string;\n        /**\n         * Company name.\n         */\n        company?: string;\n        /**\n         * VAT information.\n         */\n        vatId?: wix_stores_backend.VatId;\n        /**\n         * Deprecated: see priceData.\n         */\n        tax?: number;\n        /**\n         * Deprecated: see priceData.\n         */\n        discount?: number;\n        /**\n         * Shipment price information.\n         */\n        priceData?: wix_stores_backend.ShipmentPriceData;\n    };\n    /**\n     * An object representing shipment price information.\n     */\n    type ShipmentPriceData = {\n        /**\n         * Price of the item.\n         */\n        price: number;\n        /**\n         * Whether the price includes tax.\n         */\n        taxIncludedInPrice: boolean;\n    };\n    /**\n     * An object representing information about the street name and street number of an address.\n     */\n    type StreetAddress = {\n        /**\n         * Address street name.\n         */\n        name: string;\n        /**\n         * Address street number.\n         */\n        number: string;\n    };\n    type SubscriptionInfo = {\n        /**\n         * ID of the current subscription's cycle.\n         */\n        id: string;\n        /**\n         * Current billing cycle number. For example, if the subscription is in the 3rd month of a 4-month subscription, the value is   `3`.\n         */\n        cycleNumber: number;\n        /**\n         * Subscription settings.\n         */\n        subscriptionSettings: wix_stores_backend.SubscriptionSettings;\n        /**\n         * Subscription option information.\n         */\n        subscriptionOptionInfo: wix_stores_backend.SubscriptionOptionInfo;\n    };\n    type SubscriptionOptionInfo = {\n        /**\n         * Subscription option ID.\n         */\n        id: string;\n        /**\n         * Subscription option title. For example, \"Coffee of the week\".\n         */\n        title: string;\n        /**\n         * Subscription option description. For example, \"Subscribe and get 15% off\".\n         */\n        description: string;\n    };\n    type SubscriptionSettings = {\n        /**\n         * Frequency of recurring payment.\n         * Supported values:\n         *\n         *  + `\"DAY\"`\n         *  + `\"WEEK\"`\n         *  + `\"MONTH\"`\n         *  + `\"YEAR\"`\n         */\n        frequency: string;\n        /**\n         * Whether subscription is renewed automatically at the end of each period.\n         * If the value is `true`, then `billingCycles` is ignored.\n         */\n        autoRenewal: boolean;\n        /**\n         * Number of billing cycles before subscription ends. Ignored if `autoRenewal: false`.\n         */\n        billingCycles: number;\n    };\n    /**\n     * An object representing an order's totals.\n     */\n    type Totals = {\n        /**\n         * Total calculated discount amount.\n         */\n        discount?: number;\n        /**\n         * Total quantity of the the order's line items.\n         */\n        quantity: number;\n        /**\n         * Total shipping price, including tax.\n         */\n        shipping?: number;\n        /**\n         * Subtotal of all the order's line items, excluding tax.\n         */\n        subtotal: number;\n        /**\n         * Total amount of tax.\n         */\n        tax?: number;\n        /**\n         * Total price.\n         */\n        total: number;\n        /**\n         * Total weight of the order's items.\n         */\n        weight: number;\n    };\n    /**\n     * An object representing tracking information for a fulfilled order.\n     */\n    type TrackingInfo = {\n        /**\n         * Tracking number.\n         */\n        trackingNumber: string;\n        /**\n         * Shipping provider.\n         */\n        shippingProvider: string;\n        /**\n         * Link to the tracking summary of the fulfilled order.\n         */\n        trackingLink: string;\n    };\n    /**\n     * An object representing information for creating or updating a product in a store.\n     */\n    type UpdateProductInfo = {\n        /**\n         * Product name. Limited to 80 characters.\n         */\n        name?: string;\n        /**\n         * Product description.\n         */\n        description?: string;\n        /**\n         * Product stock keeping unit value. Must be unique.\n         */\n        sku?: string;\n        /**\n         * Product price.\n         *  The price must be greater than its discount.\n         *  The product price is propagated to the product's newly-created variants. Product variants whose prices have been updated directly are not affected by changes to the product price.\n         */\n        price?: number;\n        /**\n         * Details for the product's price per unit. If one of the `pricePerUnitData` fields is provided, all must be provided.\n         */\n        pricePerUnitData?: wix_stores_backend.pricePerUnitData;\n        /**\n         * An object representing a product discount.\n         */\n        discount?: wix_stores_backend.ProductDiscount;\n        /**\n         * An object representing all the available options for a store product.\n         */\n        productOptions?: wix_stores_backend.ProductOptionsInfo;\n        /**\n         * Indicates whether product variants can be managed. Can be set to true only if the product has options. Once set to true, can be reset to false only if no variants exist. Use [`getProductVariants()`](wix-stores.html#getProductVariants) to check if variants exist.  You cannot set `manageVariants` to true if more than 300 variants are defined.\n         */\n        manageVariants?: boolean;\n        /**\n         * Product type.\n         */\n        productType?: string;\n        /**\n         * Product weight.\n         */\n        weight?: number;\n        /**\n         * Whether the product is visible to site visitors. Setting this to false removes the product from Content Manager collections.\n         */\n        visible?: boolean;\n        /**\n         * Custom SEO data for the product. Learn more [about SEO](https://support.wix.com/en/search?term=seo).\n         */\n        seoData?: wix_stores_backend.SeoData;\n        /**\n         * Product ribbon. Used to highlight relevant information about a product.\n         * For example, `\"Sale\"`, `\"New Arrival\"`, `\"Sold Out\"`. Limited to 30 characters.\n         */\n        ribbon?: string;\n        /**\n         * Product brand.\n         * Including a brand name can help improve your site’s [visibility on search engines](https://support.wix.com/en/article/adding-brand-names-to-boost-product-page-seo-in-wix-stores).\n         * Limited to 50 characters.\n         */\n        brand?: string;\n    };\n    /**\n     * An object containing variant information.\n     */\n    type VariantData = {\n        /**\n         * Variant currency.\n         */\n        currency: string;\n        /**\n         * Variant price. The variant price must be greater than its discount.\n         */\n        price: number;\n        /**\n         * Discounted variant price.\n         */\n        discountedPrice: number;\n        /**\n         * Price per unit.\n         */\n        pricePerUnit: number;\n        /**\n         * Price per unit formatted with currency symbol.\n         */\n        formattedPricePerUnit: string;\n        /**\n         * Variant weight.\n         */\n        weight: number;\n        /**\n         * Variant stock keeping unit value.\n         */\n        sku: string;\n        /**\n         * Whether the variant is visible to site visitors and appears in Content Manager collections.\n         */\n        visible: boolean;\n    };\n    /**\n     * An object containing variant information for update.\n     */\n    type VariantInfo = {\n        /**\n         * Variant currency.\n         */\n        currency: string;\n        /**\n         * Variant price. The variant price must be greater than its discount.\n         */\n        price: number;\n        /**\n         * Discounted variant price.\n         */\n        discountedPrice: number;\n        /**\n         * Variant weight.\n         */\n        weight: number;\n        /**\n         * Variant stock keeping unit value.\n         */\n        sku: string;\n        /**\n         * Whether the variant is visible to site visitors and appears in Content Manager collections.\n         */\n        visible: boolean;\n        /**\n         * Specific product options to update.\n         *  The `choices` object contains key:value pairs where the key is the\n         *  option name and the value is the chosen option value.\n         *  For example, to update the blue t-shirt in size large, you would pass something like this: `{\"Color\": \"Blue\", \"Size\": \"Large\"}`.\n         */\n        choices: any;\n    };\n    /**\n     * An object representing a product variant item.\n     */\n    type VariantItem = {\n        /**\n         * Unique variant ID.\n         */\n        _id: string;\n        /**\n         * The choices of the retrieved variant.\n         */\n        choices: wix_stores_backend.ProductChoices;\n        /**\n         * Variant information.\n         */\n        variant: wix_stores_backend.VariantData;\n    };\n    /**\n     * An object representing product variants.\n     */\n    type Variants = {\n        /**\n         * List of variant items that match the specified choices or variant IDs.\n         */\n        items: wix_stores_backend.VariantItem[];\n        /**\n         * Number of items in the current results page.\n         */\n        length: number;\n        /**\n         * Total number of variants with the specified choices.\n         */\n        totalCount: number;\n    };\n    /**\n     * An object representing value added tax (VAT) information.\n     */\n    type VatId = {\n        /**\n         * VAT number.\n         */\n        number: string;\n        /**\n         * VAT type. Either `\"CPF\"` or `\"CNPJ\"`.\n         */\n        type: string;\n    };\n    /**\n     * An object used by the Gallery properties `items` and `currentItem` to represent a single gallery video.\n     */\n    type VideoItem = {\n        /**\n         * Item type. Value is `\"video\"`.\n         */\n        type: string;\n        /**\n         * Video source URL.\n         */\n        src: string;\n        /**\n         * Item slug.\n         */\n        slug?: string;\n        /**\n         * Video title.\n         */\n        title?: string;\n        /**\n         * Video description. Descriptions over 100 characters are truncated.\n         */\n        description?: string;\n        /**\n         * URL of the video's clickable link. See [here]($w.LinkableMixin.html#link) for more information about links.\n         */\n        link?: string;\n        /**\n         * Video thumbnail URL.\n         */\n        thumbnail?: string;\n    };\n    /**\n     * An object representing a product's price per unit data.\n     */\n    type pricePerUnitData = {\n        /**\n         * Product’s total weight, volume, or area. For example, if your product weighs 1 kilogram, the `totalQuantity` is `1`.\n         */\n        totalQuantity: number;\n        /**\n         * Total measurement unit of weight, volume, or area. For example, if your product weighs 1 kilogram, the `totalMeasurementUnit` is `\"KG\"`.\n         *\n         * Make sure the measurement system (metric or imperial) matches the one in your site's [Regional Settings](https://support.wix.com/en/article/changing-your-sites-regional-settings).\n         *\n         * Supported metric values:\n         * `\"ML\"`, `\"CL\"`, `\"L\"`, `\"CBM\"`, `\"MG\"`, `\"G\"`, `\"KG\"`, `\"MM\"`, `\"CM\"`, `\"M\"`, `\"SQM\"`.\n         *\n         * Supported imperial values:\n         * `\"OZ\"`, `\"LB\"`, `\"FLOZ\"`, `\"PT\"`, `\"QT\"`, `\"GAL\"`, `\"IN\"`, `\"FT\"`, `\"YD\"`, `\"SQFT\"`.\n         */\n        totalMeasurementUnit: string;\n        /**\n         * Product’s base weight, volume, or area. For example, for a product weighing 1 kilogram, the `baseQuantity` could be `100` (grams).\n         */\n        baseQuantity: number;\n        /**\n         * Base measurement unit of weight, volume, or area. For example, if your product weighs 1 kilogram, and the `baseQuantity` is `100` grams, `baseMeasurementUnit` is `\"G\"`.\n         *\n         * Make sure the measurement system (metric or imperial) matches the one in your site's [Regional Settings](https://support.wix.com/en/article/changing-your-sites-regional-settings).\n         *\n         * Supported metric values:\n         * `\"ML\"`, `\"CL\"`, `\"L\"`, `\"CBM\"`, `\"MG\"`, `\"G\"`, `\"KG\"`, `\"MM\"`, `\"CM\"`, `\"M\"`, `\"SQM\"`.\n         *\n         * Supported imperial values:\n         * `\"OZ\"`, `\"LB\"`, `\"FLOZ\"`, `\"PT\"`, `\"QT\"`, `\"GAL\"`, `\"IN\"`, `\"FT\"`, `\"YD\"`, `\"SQFT\"`.\n         */\n        baseMeasurementUnit: string;\n    };\n}\ndeclare namespace wix_users_backend {\n    /**\n     * **Deprecated.**\n     * This code will continue to work, but a newer version is available at\n     * [wix-members-backend.badges](https://www.wix.com/velo/reference/wix-members-backend/badges).\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-users-backend.Badges.html#)\n     */\n    interface Badges {\n        /**\n         * **Deprecated.**\n         * This function will continue to work, but a newer version is available at\n         * [wix-members-backend.badges.assignMembers()](https://www.wix.com/velo/reference/wix-members-backend/badges/assignmembers).\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-users-backend.Badges.html#assignMembers)\n         */\n        assignMembers(badgeId: string, memberIds: string[]): Promise<string[]>;\n        /**\n         * **Deprecated.**\n         * This function will continue to work, but a newer version is available at\n         * [wix-members-backend.badges.createBadge()](https://www.wix.com/velo/reference/wix-members-backend/badges/createbadge).\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-users-backend.Badges.html#createBadge)\n         */\n        createBadge(badgeInfo: wix_users_backend.Badges.BadgeInfo): Promise<wix_users_backend.Badges.Badge>;\n        /**\n         * **Deprecated.**\n         * This function will continue to work, but a newer version is available at\n         * [wix-members-backend.badges.deleteBadge()](https://www.wix.com/velo/reference/wix-members-backend/badges/deletebadge).\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-users-backend.Badges.html#deleteBadge)\n         */\n        deleteBadge(badgeId: string): Promise<void>;\n        /**\n         * **Deprecated.**\n         * This function will continue to work, but a newer version is available at\n         * [wix-members-backend.badges.listMemberBadges()](https://www.wix.com/velo/reference/wix-members-backend/badges/listmemberbadges).\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-users-backend.Badges.html#listMemberBadges)\n         */\n        listMemberBadges(memberIds: string[]): Promise<wix_users_backend.Badges.MemberBadges[]>;\n        /**\n         * **Deprecated.**\n         * This function will continue to work, but a newer version is available at\n         * [wix-members-backend.badges.listMembers()](https://www.wix.com/velo/reference/wix-members-backend/badges/listmembers).\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-users-backend.Badges.html#listMembers)\n         */\n        listMembers(badgeId: string): Promise<string[]>;\n        /**\n         * **Deprecated.**\n         * This function will continue to work, but a newer version is available at\n         * [wix-members-backend.badges.removeMembers()](https://www.wix.com/velo/reference/wix-members-backend/badges/removemembers).\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-users-backend.Badges.html#removeMembers)\n         */\n        removeMembers(badgeId: string, memberIds: string[]): Promise<void>;\n        /**\n         * **Deprecated.**\n         * This function will continue to work, but a newer version is available at\n         * [wix-members-backend.badges.updateBadge()](https://www.wix.com/velo/reference/wix-members-backend/badges/updatebadge).\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-users-backend.Badges.html#updateBadge)\n         */\n        updateBadge(badgeId: string, badgeInfo: wix_users_backend.Badges.BadgeInfo): Promise<wix_users_backend.Badges.Badge>;\n    }\n    namespace Badges {\n        /**\n         * An object representing a member badge.\n         */\n        type Badge = {\n            /**\n             * Badge ID.\n             */\n            id: string;\n            /**\n             * Badge title.\n             */\n            title: string;\n            /**\n             * Badge description.\n             */\n            description: string;\n            /**\n             * Background color of the badge as a hexadecimal rgb color value. The default color is `#796EFF` (purple).\n             */\n            backgroundColor: string;\n            /**\n             * Text color of the badge as a hexadecimal rgb color value. The default color is `#FFFFFF` (white).\n             */\n            textColor: string;\n            /**\n             * Badge icon as an SVG image. One of the following:\n             *\n             *   + An external web URL in the following format: `http(s)://`.\n             *   + The [source URL](wix-media-backend.mediaManager.html#getFileUrl) for a Wix Media Manager file. Wix Media Manager file names in a `wix:image://...` format are not supported.\n             */\n            icon: string;\n            /**\n             * ID of the role that badge members are assigned to.\n             */\n            roleId: string;\n            /**\n             * Badge's unique URL as used in a dynamic page.\n             */\n            slug: string;\n            /**\n             * Date and time the badge was created.\n             */\n            createdDate: Date;\n            /**\n             * Date and time the badge was last updated.\n             */\n            updatedDate: Date;\n        };\n        /**\n         * Information to use when creating or updating a badge.\n         */\n        type BadgeInfo = {\n            /**\n             * Badge title.\n             */\n            title: string;\n            /**\n             * Badge description.\n             */\n            description?: string;\n            /**\n             * Background color of the badge as a hexadecimal rgb color value. The default color is `#796EFF` (purple).\n             */\n            backgroundColor?: string;\n            /**\n             * Text color of the badge as a hexadecimal rgb color value. The default color is `#FFFFFF` (white).\n             */\n            textColor?: string;\n            /**\n             * Badge icon as an SVG image. One of the following:\n             *\n             *   + An external web URL in the following format: `http(s)://`.\n             *   + The [source URL](wix-media-backend.mediaManager.html#getFileUrl) for a Wix Media Manager file. Wix Media Manager file names in a `wix:image://...` format are not supported.\n             */\n            icon?: string;\n        };\n        /**\n         * An object representing the badges associated with a member.\n         */\n        type MemberBadges = {\n            /**\n             * Member ID.\n             */\n            memberId: string;\n            /**\n             * IDs of all badges assigned to the specified member.\n             */\n            badgeIds: string[];\n        };\n    }\n    /**\n     * **Deprecated.**\n     * This code will continue to work, but a newer version is available at\n     * [wix-members-backend.authorization](https://www.wix.com/velo/reference/wix-members-backend/authorization).\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-users-backend.Roles.html#)\n     */\n    interface Roles {\n        /**\n         * **Deprecated.**\n         * This function will continue to work, but a newer version is available at\n         * [wix-members-backend.authorization.assignRole()](https://www.wix.com/velo/reference/wix-members-backend/authorization/assignrole).\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-users-backend.Roles.html#assignRole)\n         */\n        assignRole(roleId: string, memberId: string, options?: wix_users_backend.Roles.WixRolesOptions): Promise<void>;\n        /**\n         * **Deprecated.**\n         * This function will continue to work, but a newer version is available at\n         * [wix-members-backend.authorization.removeRole()](https://www.wix.com/velo/reference/wix-members-backend/authorization/removerole).\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-users-backend.Roles.html#removeRole)\n         */\n        removeRole(roleId: string, memberId: string, options?: wix_users_backend.Roles.WixRolesOptions): Promise<void>;\n    }\n    namespace Roles {\n        /**\n         * An object that you pass as the `options` parameter that modifies how an operation is performed.\n         */\n        type WixRolesOptions = {\n            /**\n             * Prevents permission checks from running for the operation. Defaults to `false`.\n             */\n            suppressAuth: boolean;\n        };\n    }\n    /**\n     * A site member.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-users-backend.User.html#)\n     */\n    interface User {\n        /**\n         * **Deprecated.**\n         * This property will continue to work, but a newer version is available at\n         * [wix-members-backend.currentMember.getMember()](https://www.wix.com/velo/reference/wix-members-backend/currentmember/getmember).\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-users-backend.User.html#id)\n         */\n        readonly id: string;\n        /**\n         * **Deprecated.**\n         * This property will continue to work, but a newer version is available at\n         * [wix-members-backend.currentMember.getMember()](https://www.wix.com/velo/reference/wix-members-backend/currentmember/getmember).\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-users-backend.User.html#loggedIn)\n         */\n        readonly loggedIn: boolean;\n        /**\n         * **Deprecated.**\n         * This function will continue to work, but a newer version is available at\n         * [wix-members-backend.currentMember.getRoles()](https://www.wix.com/velo/reference/wix-members-backend/currentmember/getroles).\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-users-backend.User.html#role)\n         */\n        readonly role: string;\n        /**\n         * **Deprecated.**\n         * This function will continue to work, but a newer version is available at\n         * [wix-members-backend.currentMember.getMember()](https://www.wix.com/velo/reference/wix-members-backend/currentmember/getmember).\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-users-backend.User.html#getEmail)\n         */\n        getEmail(): Promise<string>;\n        /**\n         * Gets the current member's pricing plan.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-users-backend.User.html#getPricingPlans)\n         */\n        getPricingPlans(): Promise<wix_users_backend.User.PricingPlan[]>;\n        /**\n         * **Deprecated.**\n         * This function will continue to work, but a newer version is available at\n         * [wix-members-backend.currentMember.getRoles()](https://www.wix.com/velo/reference/wix-members-backend/currentmember/getroles).\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-users-backend.User.html#getRoles)\n         */\n        getRoles(): Promise<wix_users_backend.User.UserRole[]>;\n    }\n    namespace User {\n        /**\n         * An object returned by the `getPricingPlans()` function representing a user's [pricing plans](https://support.wix.com/en/article/adding-and-setting-up-the-paid-plans-app).\n         */\n        type PricingPlan = {\n            /**\n             * The pricing plan's name.\n             */\n            name: string;\n            /**\n             * The pricing plan's start date.\n             */\n            startDate?: Date;\n            /**\n             * The pricing plan's expiry date.\n             */\n            expiryDate?: Date;\n        };\n        /**\n         * An object returned by the `getRoles()` function representing a user's [roles](https://support.wix.com/en/article/creating-member-roles-6943237).\n         */\n        type UserRole = {\n            /**\n             * Role name as defined in the site's dashboard or one of \"Admin\" or \"Member\".\n             */\n            name: string;\n            /**\n             * Role description, if defined in the site's dashboard.\n             */\n            description?: string;\n        };\n    }\n    /**\n     * An object that contains information about a site member's address.\n     */\n    type Address = {\n        /**\n         * Address street address.\n         */\n        street: string;\n        /**\n         * Address city.\n         */\n        city: string;\n        /**\n         * Address country.\n         */\n        country: string;\n        /**\n         * Address postal code.\n         */\n        postalCode: string;\n    };\n    /**\n     * An object that contains information about a site contact.\n     */\n    type ContactInfo = {\n        /**\n         * Contact's first name.\n         */\n        firstName?: string;\n        /**\n         * Contact's last name.\n         */\n        lastName?: string;\n        /**\n         * Contact's image source.\n         */\n        picture?: string;\n        /**\n         * List of contact's email addresses.\n         *  When creating a contact, if no phone number is\n         *  provided, at least one email address must be provided.\n         */\n        emails?: string[];\n        /**\n         * Email address the contact who is also\n         *  a member uses to log into the system.\n         */\n        loginEmail?: string;\n        /**\n         * List of contact's phone numbers.\n         *  When creating a contact, if no email is\n         *  provided, at least one phone number must be provided.\n         */\n        phones?: string[];\n        /**\n         * List of contact's labels. [Labels](https://support.wix.com/en/article/creating-contact-labels)\n         *  are used to organize contacts. When setting the `labels` property, you can\n         *  only list labels that already exist in your site's [Contacts List](https://support.wix.com/en/article/accessing-your-contact-list).\n         */\n        labels?: string[];\n        /**\n         * Any\n         *  number of custom fields. [Customs fields](https://support.wix.com/en/article/adding-custom-fields-to-contacts)\n         *  are used to store additional information about your site's contacts. When\n         *  setting a custom field, use key:value pairs where the key matches the names\n         *  defined in your site's [Contacts List](https://support.wix.com/en/article/accessing-your-contact-list).\n         *  You can only set values for custom fields that already exist in the Contacts\n         *  application.\n         */\n        customFields?: string | number | Date;\n    };\n    /**\n     * An object that contains information about a site member's picture.\n     */\n    type Picture = {\n        /**\n         * Member's image URL.\n         */\n        url: string;\n    };\n    /**\n     * An object that contains information about a site registration.\n     */\n    type RegistrationOptions = {\n        /**\n         * Contact information.\n         */\n        contactInfo?: wix_users_backend.ContactInfo;\n        /**\n         * Sets the [privacy status](https://support.wix.com/en/article/member-privacy-settings-for-groups) of a new member upon registration.\n         * One of:\n         *\n         *  + `\"PUBLIC\"`: Sets the new member status to public. A member whose status is public is a member of the site's community.\n         *  + `\"PRIVATE\"`: Sets the new member status to private. A member whose status is private is not a member of the site's community. The default is set to private.\n         */\n        privacyStatus?: string;\n    };\n    /**\n     * An object that contains information about the results of a site registration.\n     */\n    type RegistrationResult = {\n        /**\n         * Registration status. Either \"Pending\" or \"Active\".\n         */\n        status: string;\n        /**\n         * A token used to log in the current\n         *  user as a site member. Pass the token from your backend code to client-side\n         *  code and use it when calling the [applySessionToken()](wix-users.html#applySessionToken)\n         *  function. The token is only available when `status` is \"Active\".\n         */\n        sessionToken?: string;\n        /**\n         * A token for approving the user as\n         *  a site member using the [approveByToken()](wix-users-backend.html#approveByToken)\n         *  function. The token is safe to pass via email or from client-side code to\n         *  backend code. The token is only available when `status` is \"Pending\". The token\n         *  expires 30 hours after it is created.\n         */\n        approvalToken?: string;\n        /**\n         * The user that has been registered.\n         */\n        user: wix_users_backend.User;\n    };\n    /**\n     * An object that contains information about a site member.\n     */\n    type RetrievedUser = {\n        /**\n         * Member's unique id.\n         */\n        id: string;\n        /**\n         * The member's full name. This information is concatenated from the `firstName` and `lastName` properties. This field will not be returned if the member registered with an email but without a name.\n         */\n        memberName?: string;\n        /**\n         * Member's first name.\n         */\n        firstName: string;\n        /**\n         * Member's last name.\n         */\n        lastName: string;\n        /**\n         * The email address the member uses to log in to your site. This is the address they supplied when they signed up.\n         */\n        loginEmail: string;\n        /**\n         * The name the member specified on their profile.\n         */\n        nickname: string;\n        /**\n         * The member's URL-friendly name that is unique across your site. Typically this is made up of the member's email prefix.\n         */\n        slug: string;\n        /**\n         * The member's locale based on their last login.\n         */\n        language: string;\n        /**\n         * Indicates the member's current status, between `Applicant`, `Active`, `Blocked`.\n         */\n        status: string;\n        /**\n         * The date and time the member registered to the site.\n         */\n        creationDate: Date;\n        /**\n         * The last date and time the member's details were updated.\n         */\n        lastUpdateDate: Date;\n        /**\n         * The date and time when the member last logged in.\n         */\n        lastLoginDate: Date;\n        /**\n         * List of the member's email addresses.\n         */\n        emails: string[];\n        /**\n         * List of the member's phone numbers.\n         */\n        phones: string[];\n        /**\n         * List of the member's labels. [Labels](https://support.wix.com/en/article/creating-contact-labels)\n         *  are used to organize contacts. When setting the `labels` property, you can\n         *  only list labels that already exist in your site's [Contacts List](https://support.wix.com/en/article/accessing-your-contact-list).\n         */\n        labels: string[];\n        /**\n         * Member's picture.\n         */\n        picture: wix_users_backend.Picture;\n        /**\n         * Any\n         *  number of custom fields. [Custom fields](https://support.wix.com/en/article/adding-custom-fields-to-contacts)\n         *  are used to store additional information about your site's contacts. When\n         *  setting a custom field, use key:value pairs where the key matches the display names\n         *  in your site's [Contacts List](https://support.wix.com/en/article/accessing-your-contact-list).\n         *  You can only set values for custom fields that already exist in the Contacts\n         *  application.\n         */\n        customFields: string | number | Date;\n    };\n    /**\n     * An object used when sending a Triggered Email.\n     */\n    type TriggeredEmailOptions = {\n        /**\n         * An object with `key:value` pairs where each\n         *  `key` is a variable in the email template created in Triggered Emails and its\n         *  corresponding `value` is the value to insert into the template in place of\n         *  variable. The values must be strings.\n         */\n        variables: any;\n    };\n    /**\n     * An object that contains information about a site member.\n     */\n    type UserInfo = {\n        /**\n         * Member's first name.\n         */\n        firstName?: string;\n        /**\n         * Member's last name.\n         */\n        lastName?: string;\n        /**\n         * The name the member specified on their profile.\n         */\n        nickname?: string;\n        /**\n         * The member's URL-friendly name that is unique across your site. Typically this is made up of the member's email prefix.\n         */\n        slug?: string;\n        /**\n         * List of the member's email addresses.\n         */\n        emails?: string[];\n        /**\n         * List of the member's phone numbers.\n         */\n        phones?: string[];\n        /**\n         * List of the member's labels. [Labels](https://support.wix.com/en/article/creating-contact-labels)\n         *  are used to organize contacts. When setting the `labels` property, you can\n         *  only list labels that already exist in your site's [Contacts List](https://support.wix.com/en/article/accessing-your-contact-list).\n         */\n        labels?: string[];\n        /**\n         * Member's picture.\n         */\n        picture?: wix_users_backend.Picture;\n        /**\n         * Any\n         *  number of custom fields. [Custom fields](https://support.wix.com/en/article/adding-custom-fields-to-contacts)\n         *  are used to store additional information about your site's contacts. When\n         *  setting a custom field, use key:value pairs where the key matches the display names\n         *  in your site's [Contacts List](https://support.wix.com/en/article/accessing-your-contact-list).\n         *  You can only set values for custom fields that already exist in the Contacts\n         *  application.\n         */\n        customFields?: string | number | Date;\n    };\n}\ndeclare namespace wix_bookings {\n    /**\n     * An object that contains address information.\n     */\n    type Address = {\n        /**\n         * Full text address comprised of street name and number, city, subdivision, country, and postal code.\n         */\n        formatted: string;\n        /**\n         * Address coordinates.\n         */\n        location: wix_bookings.AddressCoordinates;\n        /**\n         * Address street address.\n         */\n        streetAddress: wix_bookings.StreetAddress;\n        /**\n         * Address city.\n         */\n        city: string;\n        /**\n         * Address subdivision, state, prefecture, or province.\n         */\n        subdivision: string;\n        /**\n         * Address country.\n         */\n        country: string;\n        /**\n         * Address postal code.\n         */\n        postalCode: string;\n    };\n    /**\n     * An object that contains the geographic coordinates of the address.\n     */\n    type AddressCoordinates = {\n        /**\n         * Address latitude.\n         */\n        latitude: number;\n        /**\n         * Address longitude.\n         */\n        longitude: number;\n    };\n    /**\n     * An object that contains the geographic coordinates of the address.\n     */\n    type AddressLocation = {\n        /**\n         * Address latitude.\n         */\n        latitude: number;\n        /**\n         * Address longitude.\n         */\n        longitude: number;\n    };\n    /**\n     * An object used when calling [`getServiceAvailability()`](#getServiceAvailability)\n     *  containing options for which slots should be returned.\n     */\n    type AvailabilityOptions = {\n        /**\n         * Start date and time of the slots\n         *  to be returned. Defaults to the current date and time.\n         */\n        startDateTime?: Date;\n        /**\n         * End date and time of the slots to\n         *  be returned. Defaults to one week from `startDateTime`, which is one week\n         *  from the current date and time if `startDateTime` is also omitted.\n         */\n        endDateTime?: Date;\n    };\n    /**\n     * An object used when calling [`checkoutBooking()`](#checkoutBooking)\n     *  containing information about the slot to be booked.\n     */\n    type BookingInfo = {\n        /**\n         * The slot to be booked.\n         */\n        slot: wix_bookings.Slot;\n        /**\n         * List of form field values required to book the session.\n         */\n        formFields: wix_bookings.FormField[];\n        /**\n         * Number of spots to book. Defaults to `1`.\n         */\n        numberOfSpots?: number;\n    };\n    /**\n     * An object representing the result of a call to [`checkoutBooking()`](#checkoutBooking).\n     */\n    type BookingResult = {\n        /**\n         * ID of the booking that was checked out.\n         */\n        bookingId: string;\n        /**\n         * Status of the booking that was checked out.\n         *  One of:\n         *\n         *  + `\"Confirmed\"`: Payment was successful or payment is to be done offline.\n         *  + `\"Pending Payment\"`: Payment is pending.\n         *  + `\"Terminated\"`: Payment failed or was cancelled.\n         */\n        status: string;\n    };\n    /**\n     * An object describing the business location.\n     */\n    type BusinessLocation = {\n        /**\n         * Business location ID.\n         */\n        id: string;\n        /**\n         * Business location name.\n         */\n        name: string;\n        /**\n         * Business location description.\n         */\n        description: string;\n        /**\n         * An object describing the address.\n         */\n        address: wix_bookings.Address;\n    };\n    /**\n     * An object returned after calling [`getCheckoutOptions()`](#getCheckoutOptions)\n     *  containing information about the available payment options for the service and the logged-in user.\n     */\n    type CheckoutOption = {\n        /**\n         * Type of the available payment option. Valid options are:\n         *\n         *  + `\"wixPay_Online\"` for online collections\n         *  + `\"wixPay_Offline\"` for offline collections\n         *  + `\"package\"` for a package-type pricing plan\n         *  + `\"membership\"` for a membership-type pricing plan\n         */\n        type: string;\n        /**\n         * Name of the plan package or membership. For booking with pricing plans only.\n         */\n        planName?: string;\n        /**\n         * Order ID of the plan package or membership. For booking with pricing plans only.\n         */\n        planOrderId?: string;\n        /**\n         * ID of the benefit provided by the plan package. For booking with package-type pricing plans only.\n         */\n        benefitId?: string;\n        /**\n         * Number of sessions remaining in the plan package. For booking with package-type pricing plans only.\n         */\n        remainingCredits?: number;\n        /**\n         * Number of sessions initially provided with the plan package.  For booking with package-type pricing plans only.\n         */\n        totalCredits?: number;\n        /**\n         * Date by which the plan package or membership expires. For booking with pricing plans only.\n         */\n        planExpiration?: Date;\n    };\n    /**\n     * An object used to request checkout options for the service. Currently, you can request the checkout options using the ID of a slot.\n     */\n    type CheckoutOptionOptions = {\n        /**\n         * Unique slot identifier.\n         */\n        slotId: string;\n        /**\n         * User ID for the customer making the booking. Used for retrieving valid payment plans for the customer for the selected slot.\n         */\n        userId: string;\n    };\n    /**\n     * An object that defines a booking window for limiting when a member can book a slot. For example,\n     *  you can prevent members from booking a service too far in advance, because perhaps the service might\n     *  be discontinued by then. Or, you can prevent members from booking a service right before it starts, as\n     *  this would make it hard to schedule resources.\n     */\n    type Constraints = {\n        /**\n         * Date from which a member is allowed to book a slot.\n         */\n        bookableFrom: Date;\n        /**\n         * Date until which a member is allowed to book a slot.\n         */\n        bookableUntil: Date;\n    };\n    /**\n     * An object used when calling [`checkoutBooking()`](#checkoutBooking)\n     *  containing values for form fields required to book the session.\n     */\n    type FormField = {\n        /**\n         * ID of the form field from the **form** property in the **Booking/Services** collection.\n         */\n        _id: string;\n        /**\n         * Form field value.\n         */\n        value: string;\n    };\n    /**\n     * The location where a service is offered.\n     */\n    type Location = {\n        /**\n         * Location type. Valid options are:\n         * - `\"OWNER_BUSINESS\"` The business address set by the owner. This type is set when choosing **Business Address** in the Service Details page of the dashboard, and populates the businessLocation object.\n         * - `\"OWNER_CUSTOM\"` A custom address set by the owner. This type is set when choosing **Custom Location** in the Service Details page of the dashboard, and populates the `locationText` property.\n         * - `\"CUSTOM\"` An address set for the individual booking, usually chosen by the customer and entered in the booking form.\n         */\n        type: string;\n        /**\n         * Text describing the location.\n         */\n        locationText: string;\n        /**\n         * An object describing the business location.\n         */\n        businessLocation: wix_bookings.BusinessLocation;\n    };\n    /**\n     * An object used when calling [`checkoutBooking()`](#checkoutBooking)\n     *  containing information about the payment options.\n     */\n    type PaymentOptions = {\n        /**\n         * A coupon code to be used with the payment.\n         */\n        couponCode?: string;\n        /**\n         * Type of payment. Valid options are:\n         *\n         *   + `\"wixPay_Online\"` for online collections\n         *   + `\"wixPay_Offline\"` for offline collections\n         *   + `\"package\"` for a package-type pricing plan\n         *   + `\"membership\"` for a membership-type pricing plan\n         */\n        paymentType: string;\n    };\n    /**\n     * An object returned from [`getServiceAvailability()`](#getServiceAvailability)\n     *  containing the available bookings slots.\n     */\n    type ServiceAvailability = {\n        /**\n         * List of the available slots.\n         *\n         * Max: 500 slots\n         */\n        slots: wix_bookings.Slot[];\n    };\n    /**\n     * An object representing a booking slot.\n     */\n    type Slot = {\n        /**\n         * Unique slot identifier.\n         */\n        _id: string;\n        /**\n         * Starting date and time of the slot.\n         */\n        startDateTime: Date;\n        /**\n         * Ending date and time of the slot.\n         */\n        endDateTime: Date;\n        /**\n         * ID of the service that the slot belongs to.\n         */\n        serviceId: string;\n        /**\n         * Maximum number of participants that can book the service for this slot.\n         */\n        capacity: number;\n        /**\n         * Number of remaining spots that can be booked for the slot.\n         */\n        remainingSpots: number;\n        /**\n         * ID of the slot's staff member.\n         */\n        staffMemberId: string;\n        /**\n         * Whether the slot can be booked right now, meaning today's date is within the booking window defined by `constraints`.\n         */\n        bookable: boolean;\n        /**\n         * The dates between which the slot can be booked. The constraints define the booking window. The booking window prevents site members from booking way in advance or just right before the slot starts.\n         */\n        constraints: wix_bookings.Constraints;\n        /**\n         * The location where this slot is offered.\n         */\n        location: wix_bookings.Location;\n    };\n    /**\n     * An object representing information about the street name and street number of an address.\n     */\n    type StreetAddress = {\n        /**\n         * Address street name.\n         */\n        name: string;\n        /**\n         * Address street number.\n         */\n        number: string;\n    };\n}\ndeclare namespace wix_crm {\n    /**\n     * The Contacts API is used to manage a site's contacts.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-crm.Contacts.html#)\n     */\n    interface Contacts {\n        /**\n         * Appends an existing contact or creates a contact if it doesn't exist.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-crm.Contacts.html#appendOrCreateContact)\n         */\n        appendOrCreateContact(contactInfo: wix_crm.Contacts.ContactInfo): Promise<wix_crm.Contacts.ContactIdentification>;\n    }\n    namespace Contacts {\n        type Address = {\n            /**\n             * Street address ID.\n             */\n            _id: string;\n            /**\n             * Address type.\n             * `\"UNTAGGED\"` is shown as \"Other\" in the Contact List.\n             *\n             * One of:\n             *\n             * - `\"UNTAGGED\"`\n             * - `\"HOME\"`\n             * - `\"WORK\"`\n             * - `\"BILLING\"`\n             * - `\"SHIPPING\"`\n             */\n            tag: string;\n            /**\n             * Street address.\n             */\n            address: wix_crm.Contacts.AddressDetails;\n        };\n        /**\n         * Street address.\n         */\n        type AddressDetails = {\n            /**\n             * Main address line, usually street and number, as free text.\n             */\n            addressLine1?: string;\n            /**\n             * Street address object, with number and name in separate fields.\n             */\n            streetAddress?: wix_crm.Contacts.StreetAddressInfo;\n            /**\n             * Human-readable address string.\n             *  If not provided, the value is generated from the available address data.\n             */\n            formatted?: string;\n            /**\n             * Free text providing more detailed address information,\n             *  such as apartment, suite, or floor.\n             */\n            addressLine2?: string;\n            /**\n             * Coordinates of the physical address.\n             */\n            location?: wix_crm.Contacts.AddressLocation;\n            /**\n             * City name.\n             */\n            city?: string;\n            /**\n             * Code for a subdivision (such as state, prefecture, or province) in an\n             *  [ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-2) format.\n             */\n            subdivision?: string;\n            /**\n             * 2-letter country code in an\n             *  [ISO-3166 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) format.\n             */\n            country?: string;\n            /**\n             * Postal or zip code.\n             */\n            postalCode?: string;\n        };\n        type AddressInfo = {\n            /**\n             * Address type.\n             * `\"UNTAGGED\"` is shown as \"Other\" in the Contact List.\n             *\n             * One of:\n             *\n             * - `\"UNTAGGED\"`\n             * - `\"HOME\"`\n             * - `\"WORK\"`\n             * - `\"BILLING\"`\n             * - `\"SHIPPING\"`\n             */\n            tag: string;\n            /**\n             * Street address.\n             */\n            address: wix_crm.Contacts.AddressDetails;\n        };\n        /**\n         * Coordinates of the physical address.\n         */\n        type AddressLocation = {\n            /**\n             * Address's latitude.\n             */\n            latitude?: number;\n            /**\n             * Address's longitude.\n             */\n            longitude?: number;\n        };\n        type ContactIdentification = {\n            /**\n             * ID of the contact that was found or created.\n             */\n            contactId: string;\n            /**\n             * Identity type of the returned contact.\n             *\n             * One of:\n             *\n             * - `\"CONTACT\"`: The returned contact ID belongs to a new or existing contact.\n             * - `\"MEMBER\"`: The returned contact ID belongs to the currently logged-in site member.\n             * - `\"NOT_AUTHENTICATED_MEMBER\"`: The returned contact ID belongs to a site member who is not currently logged in.\n             */\n            identityType: string;\n        };\n        /**\n         * Contact's information.\n         */\n        type ContactInfo = {\n            /**\n             * Contact's first and last name.\n             */\n            name?: wix_crm.Contacts.Name;\n            /**\n             * Contact's company name.\n             */\n            company?: string;\n            /**\n             * Contact's job title.\n             *  Corresponds to the **Position** field in the Dashboard.\n             */\n            jobTitle?: string;\n            /**\n             * Contact's locale, formatted as an\n             *  [IETF BCP 47 language tag](https://tools.ietf.org/html/rfc5646).\n             *  Typically, this is a lowercase 2-letter language code,\n             *  followed by a hyphen,\n             *  followed by an uppercase 2-letter country code.\n             *\n             *  For example, German from Germany is formatted as `de-DE`,\n             *  and U.S. English is formatted as `en-US`.\n             */\n            locale?: string;\n            /**\n             * Contact's birthdate, formatted as `\"YYYY-MM-DD\"`.\n             *\n             *  Example: `\"2020-03-15\"` for March 15, 2020.\n             */\n            birthdate?: string;\n            /**\n             * **Deprecated.** Use `profilePicture` instead.\n             */\n            picture?: wix_crm.Contacts.Picture;\n            /**\n             * Contact's profile picture URL.\n             */\n            profilePicture?: string;\n            /**\n             * List of up to 50 email addresses.\n             */\n            emails?: wix_crm.Contacts.EmailInfo[];\n            /**\n             * List of up to 50 phone numbers.\n             */\n            phones?: wix_crm.Contacts.PhoneInfo[];\n            /**\n             * List of up to 50 addresses.\n             */\n            addresses?: wix_crm.Contacts.AddressInfo[];\n            /**\n             * List of contact label keys.\n             * [Contact labels](https://support.wix.com/en/article/adding-labels-to-contacts-in-your-contact-list)\n             * help categorize contacts.\n             *\n             * Label keys must exist to be added to the contact.\n             * Contact labels can be created or retrieved with\n             * [`findOrCreateLabel()`](wix-crm-backend/contacts/findorcreatelabel)\n             * or\n             * [`queryLabels()`](wix-crm-backend/contacts/queryLabels).\n             */\n            labelKeys?: string[];\n            /**\n             * Set of key-value pairs.\n             *\n             * Contact's\n             * [extended fields](wix-crm-backend/contacts/introduction#about-extended-fields),\n             * which allow you to store additional information about your contacts.\n             *\n             * To view or create extended fields, use\n             * [`findOrCreateExtendedField()`](wix-crm-backend/contacts/findorcreateextendedfield),\n             * [`getExtendedField()`](wix-crm-backend/contacts/getextendedfield), or\n             * [`queryExtendedFields()`](wix-crm-backend/contacts/queryextendedfields).\n             */\n            extendedFields?: any;\n        };\n        /**\n         * Contact's profile picture.\n         */\n        type ContactPicture = {\n            /**\n             * Image source. Can be either a Media Manager URL or external URL.\n             */\n            image: string;\n            /**\n             * Indicates whether the image is retrieved from Wix Media\n             * or an external provider.\n             *\n             * One of:\n             *\n             * - `\"EXTERNAL\"`: The image is retrieved from an external provider.\n             * - `\"WIX_MEDIA\"`: The image is retrieved from Wix Media.\n             */\n            imageProvider: string;\n        };\n        type Email = {\n            /**\n             * Email ID.\n             */\n            _id: string;\n            /**\n             * Email type.\n             *\n             * `\"UNTAGGED\"` is shown as \"Other\" in the Contact List.\n             *\n             * One of:\n             *\n             * - `\"UNTAGGED\"`\n             * - `\"MAIN\"`\n             * - `\"HOME\"`\n             * - `\"WORK\"`\n             */\n            tag: string;\n            /**\n             * Email address.\n             */\n            email: string;\n            /**\n             * Indicates whether this is the contact's primary email address.\n             *  When changing `primary` to `true` for an email,\n             *  the contact's other emails become `false`.\n             */\n            primary: boolean;\n        };\n        type EmailInfo = {\n            /**\n             * Email type.\n             *\n             * `\"UNTAGGED\"` is shown as \"Other\" in the Contact List.\n             *\n             * One of:\n             *\n             * - `\"UNTAGGED\"`\n             * - `\"MAIN\"`\n             * - `\"HOME\"`\n             * - `\"WORK\"`\n             */\n            tag?: string;\n            /**\n             * Email address.\n             */\n            email?: string;\n            /**\n             * Indicates whether this is the contact's primary email address.\n             *  When changing `primary` to `true` for an email,\n             *  the contact's other emails become `false`.\n             */\n            primary?: boolean;\n        };\n        /**\n         * Extended field that was found or created.\n         */\n        type ExtendedField = {\n            /**\n             * Extended field key.\n             *\n             * When accessing contact data,\n             * extended field data is available at `extendedFields[key]`.\n             * For example, if the key is \"custom.notes\",\n             * the value can be accessed at `extendedFields[\"custom.notes\"]`.\n             *\n             * `key` is generated when the extended field is created\n             * and cannot be modified, even if `displayName` changes.\n             */\n            key: string;\n            /**\n             * Extended field display name shown in the Contact List.\n             */\n            displayName: string;\n            /**\n             * Type of data the field holds.\n             *\n             * One of:\n             *\n             * - `\"TEXT\"`: Accepts strings.\n             * - `\"URL\"`: Accepts web addresses. Prepends `https://` if no protocol is included.\n             * - `\"DATE\"`: Accepts dates formatted as `\"YYYY-MM-DD\"`.\n             * - `\"NUMBER\"`: Accepts floats.\n             */\n            dataType: string;\n            /**\n             * Indicates whether the extended field is a\n             * [system field or custom field](wix-crm-backend/contacts/introduction#about-extended-fields).\n             *\n             * One of:\n             *\n             * - `\"SYSTEM\"`: The field is a system field managed by Wix. System fields cannot be modified by 3rd-party apps or site contributors.\n             * - `\"USER_DEFINED\"`: The field is a custom field and can be modified by 3rd-party apps or site contributors.\n             */\n            fieldType: string;\n            /**\n             * Date and time the field was created.\n             */\n            _createdDate: Date;\n            /**\n             * Date and time the field was last updated.\n             */\n            _updatedDate: Date;\n            /**\n             * Extended field [namespace](wix-crm-backend/contacts/introduction#the-namespace-and-key-properties-in-labels-and-extended-fields).\n             *\n             * Extended fields created by site contributors or 3rd-party apps\n             * are automatically assigned to the `custom` namespace.\n             */\n            namespace: string;\n            /**\n             * Field description, if the field is a system field.\n             */\n            description: string;\n        };\n        /**\n         * Contact's details.\n         */\n        type Info = {\n            /**\n             * Contact's first and last name.\n             */\n            name?: wix_crm.Contacts.Name;\n            /**\n             * Contact's company name.\n             */\n            company?: string;\n            /**\n             * Contact's job title.\n             *  Corresponds to the **Position** field in the Dashboard.\n             */\n            jobTitle?: string;\n            /**\n             * Contact's locale, formatted as an\n             *  [IETF BCP 47 language tag](https://tools.ietf.org/html/rfc5646).\n             *  Typically, this is a lowercase 2-letter language code,\n             *  followed by a hyphen,\n             *  followed by an uppercase 2-letter country code.\n             *\n             *  For example, German from Germany is formatted as `de-DE`,\n             *  and U.S. English is formatted as `en-US`.\n             */\n            locale?: string;\n            /**\n             * Contact's birthdate, formatted as `\"YYYY-MM-DD\"`.\n             *\n             *  Example: `\"2020-03-15\"` for March 15, 2020.\n             */\n            birthdate?: string;\n            /**\n             * **Deprecated.** Use `profilePicture` instead.\n             */\n            picture: wix_crm.Contacts.Picture;\n            /**\n             * Contact's profile picture URL.\n             */\n            profilePicture?: string;\n            /**\n             * List of up to 50 email addresses.\n             */\n            emails?: wix_crm.Contacts.Email[];\n            /**\n             * List of up to 50 phone numbers.\n             */\n            phones?: wix_crm.Contacts.Phone[];\n            /**\n             * List of up to 50 addresses.\n             */\n            addresses?: wix_crm.Contacts.Address[];\n            /**\n             * List of contact label keys.\n             * [Contact labels](https://support.wix.com/en/article/adding-labels-to-contacts-in-your-contact-list)\n             * help categorize contacts.\n             *\n             * Label keys must exist to be added to the contact.\n             * Contact labels can be created or retrieved with\n             * [`findOrCreateLabel()`](wix-crm-backend/contacts/findorcreatelabel)\n             * or\n             * [`queryLabels()`](wix-crm-backend/contacts/queryLabels).\n             */\n            labelKeys?: string[];\n            /**\n             * Set of key-value pairs.\n             *\n             * Contact's\n             * [extended fields](wix-crm-backend/contacts/introduction#about-extended-fields),\n             * which allow you to store additional information about your contacts.\n             *\n             * To view or create extended fields, use\n             * [`findOrCreateExtendedField()`](wix-crm-backend/contacts/findorcreateextendedfield),\n             * [`getExtendedField()`](wix-crm-backend/contacts/getextendedfield), or\n             * [`queryExtendedFields()`](wix-crm-backend/contacts/queryextendedfields).\n             */\n            extendedFields: any;\n        };\n        /**\n         * Label that was found or created.\n         */\n        type Label = {\n            /**\n             * Label key.\n             *\n             * `key` is generated when the label is created\n             * and cannot be modified, even if `displayName` changes.\n             */\n            key: string;\n            /**\n             * Label display name shown in the Dashboard.\n             */\n            displayName: string;\n            /**\n             * Label type.\n             *\n             * One of:\n             *\n             * - `\"SYSTEM\"`: The label is a predefined system label for the Contact List.\n             * - `\"USER_DEFINED\"`: The label was created by a site contributor or app.\n             * - `\"WIX_APP_DEFINED\"`: The label was created by a Wix app.\n             */\n            labelType: string;\n            /**\n             * Date and time the label was created.\n             */\n            _createdDate: Date;\n            /**\n             * Date and time the label was last updated.\n             */\n            _updatedDate: Date;\n            /**\n             * Label [namespace](wix-crm-backend/contacts/introduction#the-namespace-and-key-properties-in-labels-and-extended-fields).\n             *\n             * Labels created by site contributors or 3rd-party apps\n             * are automatically assigned to the `custom` namespace.\n             */\n            namespace: string;\n        };\n        /**\n         * Details about the contact's last action in the site.\n         */\n        type LastActivity = {\n            /**\n             * Date and time of the last action.\n             */\n            activityDate: Date;\n            /**\n             * Contact's last action in the site.\n             *\n             * Some possible values:\n             * `\"GENERAL\"`, `\"CONTACT_CREATED\"`, `\"MEMBER_LOGIN\"`, `\"MEMBER_REGISTER\"`,\n             * `\"MEMBER_STATUS_CHANGED\"`, `\"FORM_SUBMITTED\"`, `\"INBOX_FORM_SUBMITTED\"`,\n             * `\"INBOX_PAYMENT_REQUEST_PAID\"`, `\"INBOX_MESSAGE_TO_CUSTOMER\"`,\n             * `\"INBOX_MESSAGE_FROM_CUSTOMER\"`, `\"NEWSLETTER_SUBSCRIPTION_FORM_SUBMITTED\"`,\n             * `\"NEWSLETTER_SUBSCRIPTION_UNSUBSCRIBE\"`, `\"ECOM_PURCHASE\"`,\n             * `\"ECOM_CART_ABANDON\"`, `\"ECOM_CHECKOUT_BUYER\"`, `\"BOOKINGS_APPOINTMENT\"`,\n             * `\"HOTELS_RESERVATION\"`, `\"HOTELS_PURCHASE\"`, `\"HOTELS_CONFIRMATION\"`,\n             * `\"HOTELS_CANCEL\"`, `\"VIDEO_PURCHASE\"`, `\"VIDEO_RENT\"`,\n             * `\"CASHIER_BUTTON_PURCHASE\"`, `\"ARENA_NEW_LEAD\"`, `\"EVENTS_RSVP\"`,\n             * `\"INVOICE_PAY\"`, `\"INVOICE_OVERDUE\"`, `\"PRICE_QUOTE_ACCEPT\"`,\n             * `\"PRICE_QUOTE_EXPIRE\"`, `\"RESTAURANTS_ORDER\"`, `\"RESTAURANTS_RESERVATION\"`,\n             * `\"SHOUTOUT_OPEN\"`, `\"SHOUTOUT_CLICK\"`, `\"CONTACT_MERGED\"`.\n             */\n            activityType: string;\n        };\n        /**\n         * Contact's first and last name.\n         */\n        type Name = {\n            /**\n             * Contact's first name.\n             */\n            first?: string;\n            /**\n             * Contact's last name.\n             */\n            last?: string;\n        };\n        type Phone = {\n            /**\n             * Phone ID.\n             */\n            _id: string;\n            /**\n             * Phone type.\n             *\n             * `\"UNTAGGED\"` is shown as \"Other\" in the Contact List.\n             *\n             * One of:\n             *\n             * - `\"UNTAGGED\"`\n             * - `\"MAIN\"`\n             * - `\"HOME\"`\n             * - `\"MOBILE\"`\n             * - `\"WORK\"`\n             * - `\"FAX\"`\n             */\n            tag: string;\n            /**\n             * [ISO-3166 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) country code.\n             */\n            countryCode?: string;\n            /**\n             * Phone number.\n             */\n            phone: string;\n            /**\n             * [ITU E.164-formatted](https://www.itu.int/rec/T-REC-E.164/)\n             *  phone number.\n             *  Automatically generated using `phone` and `countryCode`,\n             *  as long as both of those values are valid.\n             */\n            e164Phone?: string;\n            /**\n             * Whether this is the contact's primary phone number.\n             *  When changing `primary` to `true` for a phone,\n             *  the contact's other phones become `false`.\n             */\n            primary: boolean;\n        };\n        type PhoneInfo = {\n            /**\n             * Phone type.\n             *\n             * `\"UNTAGGED\"` is shown as \"Other\" in the Contact List.\n             *\n             * One of:\n             *\n             * - `\"UNTAGGED\"`\n             * - `\"MAIN\"`\n             * - `\"HOME\"`\n             * - `\"MOBILE\"`\n             * - `\"WORK\"`\n             * - `\"FAX\"`\n             */\n            tag?: string;\n            /**\n             * [ISO-3166 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) country code.\n             */\n            countryCode?: string;\n            /**\n             * Phone number.\n             */\n            phone?: string;\n            /**\n             * Whether this is the contact's primary phone number.\n             *  When changing `primary` to `true` for a phone,\n             *  the contact's other phones become `false`.\n             */\n            primary?: boolean;\n        };\n        /**\n         * todo\n         */\n        type Picture = {\n            /**\n             * **Deprecated.** Use `profilePicture` instead.\n             */\n            image?: string;\n            /**\n             * **Deprecated.**\n             */\n            imageProvider?: string;\n        };\n        /**\n         * Contact's primary phone and email.\n         */\n        type PrimaryInfo = {\n            /**\n             * Primary email address.\n             *\n             * This property reflects the email address in `contactInfo.emails`\n             * where `primary` is `true`.\n             */\n            email?: string;\n            /**\n             * Primary phone number.\n             *\n             * This property reflects the phone number in `contactInfo.phones`\n             * where `primary` is `true`.\n             */\n            phone?: string;\n        };\n        /**\n         * Details about the contact's source.\n         */\n        type Source = {\n            /**\n             * Source type.\n             *\n             * Some possible values:\n             * `\"OTHER\"`, `\"ADMIN\"`, `\"WIX_APP\"`, `\"IMPORT\"`, `\"THIRD_PARTY\"`,\n             * `\"WIX_BOOKINGS\"`, `\"WIX_CHAT\"`, `\"WIX_EMAIL_MARKETING\"`, `\"WIX_EVENTS\"`,\n             * `\"WIX_FORMS\"`, `\"WIX_GROUPS\"`, `\"WIX_HOTELS\"`, `\"WIX_MARKET_PLACE\"`,\n             * `\"WIX_MUSIC\"`, `\"WIX_RESTAURANTS\"`, `\"WIX_SITE_MEMBERS\"`, `\"WIX_STORES\"`.\n             */\n            sourceType: string;\n            /**\n             * App ID, if the contact was created by an app.\n             */\n            appId: string;\n        };\n        /**\n         * Street address object, with number and name in separate fields.\n         */\n        type StreetAddress = {\n            /**\n             * Street number.\n             */\n            number: string;\n            /**\n             * Street name.\n             */\n            name: string;\n        };\n        /**\n         * Street address object, with number and name in separate fields.\n         */\n        type StreetAddressInfo = {\n            /**\n             * Street number.\n             */\n            number?: string;\n            /**\n             * Street name.\n             */\n            name?: string;\n        };\n    }\n    /**\n     * Code that has been replaced with newer, forward-compatible functions.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-crm.Deprecated.html#)\n     */\n    interface Deprecated {\n    }\n    /**\n     * The Triggered Emails API is used to send triggered emails to your site's contacts and members.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-crm.TriggeredEmails.html#)\n     */\n    interface TriggeredEmails {\n        /**\n         * Sends a triggered email to the current contact, unless that contact is marked as unsubscribed.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-crm.TriggeredEmails.html#emailContact)\n         */\n        emailContact(emailId: string, contactId: string, options?: wix_crm.TriggeredEmails.TriggeredEmailOptions): Promise<void>;\n        /**\n         * Sends a Triggered Email to the currently logged-in site member.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-crm.TriggeredEmails.html#emailMember)\n         */\n        emailMember(emailId: string, memberId: string, options?: wix_crm.TriggeredEmails.TriggeredEmailOptions): Promise<void>;\n    }\n    namespace TriggeredEmails {\n        type TriggeredEmailOptions = {\n            /**\n             * An object with `key:value` pairs. Each\n             *  `key` is a variable in the email template created in Triggered Emails, and its\n             *  corresponding `value` is the value to insert into the template in place of the\n             *  variable. The values must be strings.\n             *\n             * Example: `{ firstName: 'John', lastName: 'Doe' }`\n             */\n            variables: any;\n        };\n    }\n    /**\n     * An object that contains information about a site contact.\n     */\n    type ContactInfo = {\n        /**\n         * Contact's first name.\n         */\n        firstName?: string;\n        /**\n         * Contact's last name.\n         */\n        lastName?: string;\n        /**\n         * Contact's image source.\n         */\n        picture?: string;\n        /**\n         * List of contact's email addresses.\n         *  When creating a contact, if no phone number is\n         *  provided, at least one email address must be provided.\n         */\n        emails?: string[];\n        /**\n         * Email address the contact who is also\n         *  a member uses to log into the system.\n         */\n        loginEmail?: string;\n        /**\n         * List of contact's phone numbers.\n         *  When creating a contact, if no email is\n         *  provided, at least one phone number must be provided.\n         */\n        phones?: string[];\n        /**\n         * List of contact's labels. [Labels](https://support.wix.com/en/article/creating-contact-labels)\n         *  are used to organize contacts. When setting the `labels` property, you can\n         *  only list labels that already exist in your site's [Contacts List](https://support.wix.com/en/article/accessing-your-contact-list).\n         */\n        labels?: string[];\n        /**\n         * Any\n         *  number of custom fields. [Customs fields](https://support.wix.com/en/article/adding-custom-fields-to-contacts)\n         *  are used to store additional information about your site's contacts. When\n         *  setting a custom field, use key:value pairs where the key matches the names\n         *  defined in your site's [Contacts List](https://support.wix.com/en/article/accessing-your-contact-list).\n         *  You can only set values for custom fields that already exist in the Contacts\n         *  application.\n         */\n        customFields?: string | number | Date;\n    };\n}\ndeclare namespace wix_stores {\n    /**\n     * The wix-stores.Cart module contains functionality for working with your\n     *  site's cart from client-side code.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-stores.Cart.html#)\n     */\n    interface Cart {\n        /**\n         * Adds one or more products to the cart.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-stores.Cart.html#addProducts)\n         */\n        addProducts(products: wix_stores.Cart.AddToCartItem[]): Promise<wix_stores.CartObj>;\n        /**\n         * Adds and applies a coupon to the cart.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-stores.Cart.html#applyCoupon)\n         */\n        applyCoupon(couponCode: string): Promise<wix_stores.CartObj>;\n        /**\n         * Gets the current site visitor's cart.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-stores.Cart.html#getCurrentCart)\n         */\n        getCurrentCart(): Promise<wix_stores.CartObj>;\n        /**\n         * Hides the Mini Cart.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-stores.Cart.html#hideMiniCart)\n         */\n        hideMiniCart(): void;\n        /**\n         * An event handler that is triggered when items are added or removed from a cart.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-stores.Cart.html#onChange)\n         */\n        onChange(handler: wix_stores.CartChangedHandler): void;\n        /**\n         * Removes the coupon currently applied to the cart.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-stores.Cart.html#removeCoupon)\n         */\n        removeCoupon(): Promise<wix_stores.CartObj>;\n        /**\n         * Removes a specified product from the cart.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-stores.Cart.html#removeProduct)\n         */\n        removeProduct(cartLineItemId: number): Promise<wix_stores.CartObj>;\n        /**\n         * Shows the Mini Cart.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-stores.Cart.html#showMiniCart)\n         */\n        showMiniCart(): void;\n        /**\n         * Directs the browser to navigate to the site visitor's cart.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-stores.Cart.html#toCart)\n         */\n        toCart(): Promise<void>;\n        /**\n         * Updates the quantity of a specified line item in the cart.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-stores.Cart.html#updateLineItemQuantity)\n         */\n        updateLineItemQuantity(cartLineItemId: number, quantity: number): Promise<wix_stores.CartObj>;\n    }\n    namespace Cart {\n        /**\n         * An object used when adding one or more products to the cart.\n         */\n        type AddToCartItem = {\n            /**\n             * ID of the product to add to the cart.\n             */\n            productId: string;\n            /**\n             * Number of product units to add to the cart.\n             */\n            quantity: number;\n            /**\n             * Specific product options to add to the cart.\n             *  If the product you're adding has options, you must specify which options to add.\n             */\n            options?: wix_stores.Cart.AddToCartOptions;\n        };\n        /**\n         * An object used when adding a product to the cart with options.\n         */\n        type AddToCartOptions = {\n            /**\n             * Product options to use when adding the\n             *  product to the cart. The object contains key:value pairs where the key is the option name and the value is the chosen option value.\n             */\n            choices?: any;\n            /**\n             * Custom text fields to use when adding the product to the cart.\n             */\n            customTextFields?: wix_stores.Cart.CustomTextField[];\n        };\n        /**\n         * An object used to pass a custom text field when adding a product to\n         *  the cart with options.\n         */\n        type CustomTextField = {\n            /**\n             * Custom text field title.\n             */\n            title: string;\n            /**\n             * Custom text field value.\n             */\n            value: string;\n        };\n    }\n    /**\n     * The wix-stores.Navigate module contains functionality for navigating to\n     * store-related pages from client-side code.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-stores.Navigate.html#)\n     */\n    interface Navigate {\n        /**\n         * Directs the browser to navigate to the site visitor's cart page.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-stores.Navigate.html#toCart)\n         */\n        toCart(): Promise<void>;\n    }\n    /**\n     * The wix-stores.product module contains functionality for working with your\n     *  store's products from client-side code.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-stores.Product.html#)\n     */\n    interface Product {\n        /**\n         * Gets the availability of a product based on the specified option choices.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-stores.Product.html#getOptionsAvailability)\n         */\n        getOptionsAvailability(productId: string, choices: any): Promise<wix_stores.ProductOptionsAvailability>;\n        /**\n         * Gets a product's available variants based on the specified product ID and either option choices or variant IDs.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-stores.Product.html#getVariants)\n         */\n        getVariants(productId: string, options?: wix_stores.ProductVariantOptions): Promise<wix_stores.VariantItem[]>;\n        /**\n         * Opens the [Quick View](https://support.wix.com/en/article/wix-stores-customizing-the-quick-view-in-the-product-gallery) modal of a specified product.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-stores.Product.html#openQuickView)\n         */\n        openQuickView(productId: string, options?: wix_stores.QuickViewOptions): Promise<void>;\n    }\n    /**\n     * An object representing an address.\n     */\n    type CartAddress = {\n        /**\n         * First name.\n         */\n        firstName: string;\n        /**\n         * Last name.\n         */\n        lastName: string;\n        /**\n         * Email address.\n         */\n        email: string;\n        /**\n         * Phone number.\n         */\n        phone: string;\n        /**\n         * Address.\n         */\n        address: string;\n    };\n    /**\n     * An object representing a coupon applied in a shopping cart.\n     */\n    type CartAppliedCoupon = {\n        /**\n         * Coupon code.\n         */\n        code: string;\n        /**\n         * Coupon unique identifier.\n         */\n        couponId: string;\n        /**\n         * Coupon name.\n         */\n        name: string;\n        /**\n         * Type of coupon.\n         *  One of:\n         *\n         *  + `\"BuyXGetY\"`\n         *  + `\"FixedPriceAmount\"`\n         *  + `\"FreeShipping\"`\n         *  + `\"MoneyOffAmount\"`\n         *  + `\"PercentOffRate\"`\n         */\n        couponType: string;\n        /**\n         * Value of the coupon discount.\n         */\n        discountValue: string;\n    };\n    /**\n     * An object representing a visitor who abandoned a shopping cart.\n     */\n    type CartBuyerInfo = {\n        /**\n         * Buyer's unique ID.\n         */\n        id: string;\n        /**\n         * Buyer's email address.\n         */\n        email: string;\n        /**\n         * Buyer's first name.\n         */\n        firstName: string;\n        /**\n         * Buyer's last name.\n         */\n        lastName: string;\n        /**\n         * Buyer's identity.\n         *  One of:\n         *\n         *  + `\"ADMIN\"`: Buyer is the site owner.\n         *  + `\"MEMBER\"`: Buyer is a logged-in site member.\n         *  + `\"VISITOR\"`: Buyer is not logged in.\n         *  + `\"CONTACT\"`: A contact has been created for the buyer.\n         */\n        identityType: string;\n        /**\n         * Buyer's phone number.\n         */\n        phone: string;\n    };\n    /**\n     * An object representing a custom text field.\n     */\n    type CartCustomTextField = {\n        /**\n         * Field title.\n         */\n        title: string;\n        /**\n         * Field value.\n         */\n        value: string;\n    };\n    /**\n     * An object representing a line item in a shopping cart.\n     */\n    type CartLineItem = {\n        /**\n         * Cart line item ID.\n         */\n        id: number;\n        /**\n         * Name of the line item.\n         */\n        name: string;\n        /**\n         * Notes about the line item.\n         */\n        notes: string;\n        /**\n         * Line item price.\n         */\n        price: string;\n        /**\n         * Line item product ID.\n         */\n        productId: string;\n        /**\n         * Line item quantity.\n         */\n        quantity: number;\n        /**\n         * Line item stock keeping unit.\n         */\n        sku: string;\n        /**\n         * Total price charged to the customer for all line items after any applicable discounts.\n         */\n        totalPrice: string;\n        /**\n         * Line item weight.\n         */\n        weight: string;\n        /**\n         * Type of the line item.\n         *  One of:\n         *\n         *  + `\"DIGITAL\"`: Digital item.\n         *  + `\"PHYSICAL\"`: Physical item.\n         *  + `\"CUSTOM_AMOUNT_ITEM\"`: Item with a custom price.\n         *  + `\"UNSPECIFIED\"`: Type can't be classified due to an error.\n         */\n        lineItemType: string;\n        /**\n         * Line item options.\n         */\n        options: wix_stores.Option[];\n        /**\n         * Media item.\n         */\n        mediaItem: wix_stores.CartMediaItem;\n        /**\n         * Custom text.\n         */\n        customTextFields: wix_stores.CartCustomTextField[];\n    };\n    /**\n     * An object representing a line item's primary media.\n     */\n    type CartMediaItem = {\n        /**\n         * Media item type. Currently only `\"IMAGE\"` type supported.\n         */\n        type: string;\n        /**\n         * Media item source for media uploaded to Wix (wix:image, wix:video or external URL).\n         */\n        src: string;\n    };\n    /**\n     * An object representing a shopping cart.\n     */\n    type CartObj = {\n        /**\n         * Unique identifier of the shopping cart.\n         */\n        _id: string;\n        /**\n         * Coupon applied in the shopping cart.\n         */\n        appliedCoupon: wix_stores.CartAppliedCoupon;\n        /**\n         * Cart billing address.\n         */\n        billingAddress: wix_stores.CartAddress;\n        /**\n         * The buyer's information.\n         */\n        buyerInfo: wix_stores.CartBuyerInfo;\n        /**\n         * Cart status. Either `\"INCOMPLETE\"` or `\"COMPLETE\"`.\n         */\n        status: string;\n        /**\n         * Currency of the shopping cart.\n         */\n        currency: wix_stores.Currency;\n        /**\n         * The shopping cart's shipping information.\n         */\n        shippingInfo: wix_stores.CartShippingInfo;\n        /**\n         * Items in the shopping cart.\n         */\n        lineItems: wix_stores.CartLineItem[];\n        /**\n         * The shopping cart's totals.\n         */\n        totals: wix_stores.OrderTotals;\n        /**\n         * The order's units of weight. One of: `\"KG\"`, `\"LB\"`, or `\"UNSPECIFIED_WEIGHT_UNIT\"`.\n         */\n        weightUnit: string;\n    };\n    /**\n     * An object representing shipping information.\n     */\n    type CartShippingInfo = {\n        /**\n         * Shipment address.\n         */\n        shippingAddress?: wix_stores.CartAddress;\n        /**\n         * Pickup address.\n         */\n        pickupInfo?: wix_stores.CartAddress;\n    };\n    /**\n     * An object representing a currency.\n     */\n    type Currency = {\n        /**\n         * The currency code.\n         */\n        currency: string;\n        /**\n         * The currency symbol.\n         */\n        symbol: string;\n    };\n    /**\n     * An object representing a media item.\n     */\n    type MediaItem = {\n        /**\n         * Media item ID.\n         */\n        id: string;\n        /**\n         * Media item title.\n         */\n        title: string;\n        /**\n         * Media item description.\n         */\n        description: string;\n        /**\n         * Media items type. Can be \"image\" or \"video.\"\n         */\n        type: string;\n        /**\n         * Media item URL.\n         */\n        src: string;\n        /**\n         * Thumbnail URL for videos only.\n         */\n        thumbnail?: string;\n    };\n    /**\n     * An object representing a line item option.\n     */\n    type Option = {\n        /**\n         * Name of the product option.\n         */\n        option: string;\n        /**\n         * Selected option.\n         */\n        selection: string;\n    };\n    /**\n     * An object representing an order's totals.\n     */\n    type OrderTotals = {\n        /**\n         * The subtotal of all the order's line items, excluding tax.\n         */\n        subtotal: number;\n        /**\n         * The total shipping price, including tax.\n         */\n        shipping: number;\n        /**\n         * The total amount of tax.\n         */\n        tax: string;\n        /**\n         * The total calculated discount amount.\n         */\n        discount: number;\n        /**\n         * The total price.\n         */\n        total: number;\n        /**\n         * The total weight of the order's items.\n         */\n        weight: number;\n        /**\n         * The total quantity of the the order's line items.\n         */\n        quantity: number;\n    };\n    /**\n     * An object representing paging options.\n     */\n    type PagingOptions = {\n        /**\n         * Maximum number of variants to retrieve. Defaults to 300.\n         */\n        limit?: number;\n        /**\n         * Number of variants to skip before the retrieved variants. Defaults to 0.\n         */\n        skip?: number;\n    };\n    /**\n     * An object representing a product variant's option choices.\n     */\n    type ProductChoices = {\n        /**\n         * Value of the choice. This key name is\n         *  dependent on the product option. For example, if a product\n         *  has a size option, this key value will be something like \"Size\" and its value\n         *  will be something like \"Large\".\n         *\n         *  `optionKey` is not case-sensitive. Therefore the values for the option keys \"`Size`\", \"`SIZE`\", and \"`size`\" are combined.\n         */\n        optionKey: string;\n    };\n    /**\n     * An object representing an option for a store product.\n     */\n    type ProductOption = {\n        /**\n         * Option type. Either `\"color\"` or `\"drop_down\"`.\n         */\n        optionType: string;\n        /**\n         * Option name.\n         */\n        name: string;\n        /**\n         * Option choices.\n         */\n        choices: wix_stores.ProductOptionsChoice[];\n    };\n    /**\n     * An object representing all the available options for a store product, such as \"Size\" or \"Color\".\n     */\n    type ProductOptions = {\n        /**\n         * Name of the option. This key name\n         *  is dependent on the options added to the product. For example, if a product has a size\n         *  option, this key will be something like `\"Size\"`.\n         *\n         *  `optionKey` is not case-sensitive. Therefore the values for the option keys \"`Size`\", \"`SIZE`\", and \"`size`\" are combined.\n         */\n        optionKey: wix_stores.ProductOption;\n    };\n    /**\n     * An object returned by the `getProductOptionsAvailability()` function representing the availability of a product.\n     */\n    type ProductOptionsAvailability = {\n        /**\n         * Whether the product with the specified option choices is available for purchase.\n         */\n        availableForPurchase: boolean;\n        /**\n         * An object representing all the available options for a store product.\n         */\n        productOptions: wix_stores.ProductOptions;\n        /**\n         * Main product media item (image or video) URL.\n         */\n        mainMedia: string;\n        /**\n         * List of product media items.\n         */\n        mediaItems: wix_stores.MediaItem;\n        /**\n         * The variant of the product selected using the specified option choices if there is one.\n         */\n        selectedVariant: wix_stores.ProductOptionsAvailabilitySelectedVariant;\n    };\n    /**\n     * An object representing the product variant selected using the `getProductOptionsAvailability()` function.\n     */\n    type ProductOptionsAvailabilitySelectedVariant = {\n        /**\n         * Product variant stock keeping unit value.\n         */\n        sku: string;\n        /**\n         * Product variant currency.\n         */\n        currency: string;\n        /**\n         * Product variant price. The variant price must be greater than its discount.\n         */\n        price: number;\n        /**\n         * Discounted product variant price.\n         */\n        discountedPrice: number;\n        /**\n         * Product variant price formatted with the currency.\n         */\n        formattedPrice: string;\n        /**\n         * Discounted product variant price formatted with the currency.\n         */\n        formattedDiscountedPrice: string;\n        /**\n         * Whether the product variant is shown in the store.\n         */\n        visible: boolean;\n        /**\n         * Whether the product variant is in stock.\n         */\n        inStock: boolean;\n        /**\n         * Product variant weight.\n         */\n        weight: number;\n    };\n    /**\n     * An object representing an options choice for a store product, such as choice \"Small\" for the option \"Size.\"\n     */\n    type ProductOptionsChoice = {\n        /**\n         * Choice value.\n         */\n        value: number;\n        /**\n         * Choice description.\n         */\n        description: number;\n        /**\n         * Choice media.\n         */\n        media: wix_stores.ProductOptionsChoiceMedia;\n        /**\n         * Whether the product with this choice is in stock.\n         */\n        inStock: boolean;\n        /**\n         * Whether the product with this option is visible.\n         */\n        visible: boolean;\n    };\n    /**\n     * An object representing the choice media.\n     */\n    type ProductOptionsChoiceMedia = {\n        /**\n         * Main choice media item (image or video thumbnail) URL.\n         */\n        mainMedia: string;\n        /**\n         * List of choice media items.\n         */\n        mediaItems: wix_stores.MediaItem;\n    };\n    /**\n     * An object representing the selection of specific variants of a product. Use only one of\n     *  `choices` or `variantIds`.\n     */\n    type ProductVariantOptions = {\n        /**\n         * Choices of the retrieved variants.\n         */\n        choices?: any;\n        /**\n         * IDs of the variants to retrieve.\n         */\n        variantIds?: string[];\n    };\n    type QuickViewOptions = {\n        /**\n         * Product quantity to be displayed in the Quick View. Defaults to 1.\n         */\n        quantity: number;\n    };\n    /**\n     * An object containing variant information to use when creating or updating variants.\n     */\n    type VariantInfo = {\n        /**\n         * Variant currency.\n         */\n        currency: string;\n        /**\n         * Variant price. The variant price must be greater than its discount. If the variant price has been updated, changes to the product price do not affect the variant price.\n         */\n        price: number;\n        /**\n         * Discounted variant price.\n         */\n        discountedPrice: number;\n        /**\n         * Variant price formatted with the currency.\n         */\n        formattedPrice: string;\n        /**\n         * Discounted variant price formatted with the currency.\n         */\n        formattedDiscountedPrice: string;\n        /**\n         * Variant weight.\n         */\n        weight: number;\n        /**\n         * Variant stock keeping unit value.\n         */\n        sku: string;\n        /**\n         * Whether the variant is visible in the store.\n         */\n        visible: boolean;\n        /**\n         * Price per unit.\n         */\n        pricePerUnit: number;\n        /**\n         * Price per unit formatted with currency symbol.\n         */\n        formattedPricePerUnit: string;\n    };\n    /**\n     * An object representing a product variant item.\n     */\n    type VariantItem = {\n        /**\n         * Unique variant ID.\n         */\n        _id: string;\n        /**\n         * Choices of the retrieved variant in the form of an object containing a key:value pair for each variant choice. For example, if a variant has a size option, this key value will be something like \"Size\" and its value will be something like \"Large\".\n         */\n        choices: any;\n        /**\n         * Variant information.\n         */\n        variant: wix_stores.VariantInfo;\n    };\n    /**\n     * An object representing product variants.\n     */\n    type Variants = {\n        /**\n         * List of variant items that match the specified choices or variant IDs.\n         */\n        items: wix_stores.VariantItem[];\n        /**\n         * Number of items in the current results page.\n         */\n        length: number;\n        /**\n         * Total number of variants with the specified choices.\n         */\n        totalCount: number;\n    };\n    /**\n     * An object representing a custom item to be added to the cart.\n     */\n    type customItem = {\n        /**\n         * Custom item name.\n         */\n        name?: string;\n        /**\n         * Custom item price.\n         */\n        price: number;\n        /**\n         * Custom item quantity.\n         */\n        quantity: number;\n        /**\n         * Note about the custom item.\n         */\n        note?: string;\n    };\n    /**\n     * Function that runs when a cart changes.\n     */\n    type CartChangedHandler = (cart: wix_stores.CartObj) => void;\n    type callback = (cart: wix_stores_backend.Cart) => void;\n    /**\n     * Function that runs when an item is added or removed from the cart.\n     */\n    type onCartChangedCallback = (cart: wix_stores_backend.Cart) => void;\n    /**\n     * Function that runs when a cart changes.\n     */\n    type onCartChangedHandler = (cart: wix_stores_backend.Cart) => void;\n}\ndeclare namespace wix_users {\n    /**\n     * A site user.\n     * \t[Read more](https://www.wix.com/corvid/reference/wix-users.User.html#)\n     */\n    interface User {\n        /**\n         * **Deprecated.**\n         * This property will continue to work, but a newer version is available at\n         * [wix-members.currentMember.getMember()](https://www.wix.com/velo/reference/wix-members/currentmember/getmember).\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-users.User.html#id)\n         */\n        readonly id: string;\n        /**\n         * **Deprecated.**\n         * This property will continue to work, but a newer version is available at\n         * [wix-members.currentMember.getMember()](https://www.wix.com/velo/reference/wix-members/currentmember/getmember).\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-users.User.html#loggedIn)\n         */\n        readonly loggedIn: boolean;\n        /**\n         * **Deprecated.**\n         * This property will continue to work, but a newer version is available at\n         * [wix-members.currentMember.getRoles()](https://www.wix.com/velo/reference/wix-members/currentmember/getroles).\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-users.User.html#role)\n         */\n        readonly role: string;\n        /**\n         * **Deprecated.**\n         * This function will continue to work, but a newer version is available at\n         * [wix-members.currentMember.getMember()](https://www.wix.com/velo/reference/wix-members/currentmember/getmember).\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-users.User.html#getEmail)\n         */\n        getEmail(): Promise<string>;\n        /**\n         * Gets the user's member pricing plan.\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-users.User.html#getPricingPlans)\n         */\n        getPricingPlans(): Promise<wix_users.User.PricingPlan[]>;\n        /**\n         * **Deprecated.**\n         * This function will continue to work, but a newer version is available at\n         * [wix-members.currentMember.getRoles()](https://www.wix.com/velo/reference/wix-members/currentmember/getroles).\n         * \t[Read more](https://www.wix.com/corvid/reference/wix-users.User.html#getRoles)\n         */\n        getRoles(): Promise<wix_users.User.UserRole[]>;\n    }\n    namespace User {\n        /**\n         * An object returned by the `getPricingPlans()` function representing a user's [pricing plans](https://support.wix.com/en/article/adding-and-setting-up-the-paid-plans-app).\n         */\n        type PricingPlan = {\n            /**\n             * The pricing plan's name.\n             */\n            name: string;\n            /**\n             * The pricing plan's start date.\n             */\n            startDate?: Date;\n            /**\n             * The pricing plan's expiry date.\n             */\n            expiryDate?: Date;\n        };\n        /**\n         * An object returned by the `getRoles()` function representing a user's [roles](https://support.wix.com/en/article/creating-member-roles-6943237).\n         */\n        type UserRole = {\n            /**\n             * Role name as defined in the site's dashboard or one of \"Admin\" or \"Member\".\n             */\n            name: string;\n            /**\n             * Role description, if defined in the site's dashboard.\n             */\n            description?: string;\n        };\n    }\n    /**\n     * The event that occurred when the consent policy changed.\n     */\n    type ConsentPolicyChangedEvent = {};\n    /**\n     * An object used by the `promptLogin()` function to determine how the login dialog box appears.\n     */\n    type LoginOptions = {\n        /**\n         * What type of login experience to present: `\"login\"` or `\"signup\"`. Defaults to the option chosen in the Member Signup Settings panel in the Editor.\n         */\n        mode?: string;\n        /**\n         * Deprecated.\n         */\n        lang?: string;\n        /**\n         * Whether the login form should be modal (`true`) or full screen (`false`). Defaults to `false` if the property doesn't exist.\n         */\n        modal?: boolean;\n    };\n    /**\n     * The current visitor's  consent policy settings.\n     */\n    type Policy = {\n        /**\n         * Consent for mandatory cookies for Wix websites, such as for security cookies. Wix places these cookies on your device and these cookies do not require visitor consent. Always `true`.\n         */\n        essential: boolean;\n        /**\n         * Consent for cookies placed on the visitor's device that \"remember\" visitor settings to improve visitor experience. For example, an indication that the visitor dismissed a popup. The default is `true`.\n         */\n        functional: boolean;\n        /**\n         * Consent for cookies used for analytics, such as Wix analytics, Google Analytics, Yandex Metrica, and so on. The default is `true`.\n         */\n        analytics: boolean;\n        /**\n         * Consent for cookies used for advertising purposes. This includes 3rd-party scripts and pixels that may potentially place advertising cookies on the device (such as Twitter page view and Facebook Pixel). The default is `true`.\n         */\n        advertising: boolean;\n        /**\n         * Consent for a visitor's personal data to be transferred to a 3rd party (such as Google Analytics, Facebook Pixel, and FullStory). The default is `true`.\n         */\n        dataToThirdParty: boolean;\n    };\n    /**\n     * The complete details of the current user's consent policy.\n     */\n    type PolicyDetails = {\n        /**\n         * Whether the policy is the default consent policy set by the site owner. If `true`, either the user has not set a policy or the site owner has reset the policy.\n         */\n        defaultPolicy: boolean;\n        /**\n         * An object representing the visitor's current consent policy.\n         */\n        policy: wix_users.Policy;\n        /**\n         * If a cookie exists in the browser defining the current consent policy, the date the policy was set. Otherwise, undefined.\n         */\n        createdDate?: Date;\n    };\n    /**\n     * An object that contains information about a site registration.\n     */\n    type RegistrationOptions = {\n        /**\n         * Contact information.\n         */\n        contactInfo?: wix_crm.ContactInfo;\n        /**\n         * Sets the [privacy status](https://support.wix.com/en/article/member-privacy-settings-for-groups) of a new member upon registration.\n         * One of:\n         *\n         *  + `\"PUBLIC\"`: Sets the new member status to public. A member whose status is public is a member of the site's community.\n         *  + `\"PRIVATE\"`: Sets the new member status to private. A member whose status is private is not a member of the site's community. The default is set to private.\n         */\n        privacyStatus?: string;\n    };\n    /**\n     * An object that contains information about the results of a site registration.\n     */\n    type RegistrationResult = {\n        /**\n         * Registration status. Either \"Pending\" or \"Active\".\n         */\n        status: string;\n        /**\n         * A token for approving the user as\n         *  a site member using the [approveByToken()](wix-users-backend.html#approveByToken)\n         *  function. The token is safe to pass via email or from client-side code to\n         *  backend code. The token is only available when `status` is \"Pending\".\n         */\n        approvalToken?: string;\n        /**\n         * The user that has been registered.\n         */\n        user: wix_users.User;\n    };\n    /**\n     * An object used when sending a Triggered Email.\n     */\n    type TriggeredEmailOptions = {\n        /**\n         * An object with `key:value` pairs where each\n         *  `key` is a variable in the email template created in Triggered Emails and its\n         *  corresponding `value` is the value to insert into the template in place of\n         *  variable. The values must be strings.\n         */\n        variables: any;\n    };\n    /**\n     * Function that runs when a visitor's consent policy was changed using [`setConsentPolicy()`](#setConsentPolicy).\n     */\n    type ConsentPolicyChangedHandler = (event: wix_users.ConsentPolicyChangedEvent) => void;\n    /**\n     * Function that runs when a user has logged in.\n     */\n    type LoginHandler = (user: wix_users.User) => void;\n}\n"
    },
    {
      "path": "/types/deprecated/backend/$w.d.ts",
      "content": "declare namespace $w {\n    type $w = () => void;\n}"
    },
    {
      "path": "/types/deprecated/backend/index.d.ts",
      "content": "/// <reference path=\"../../common/anyProperties.d.ts\" />\n/// <reference path=\"../../common/declaration.deprecated.d.ts\" />\n/// <reference path=\"./$w.d.ts\" />"
    },
    {
      "path": "/node_modules/@types/node/assert.d.ts",
      "content": "/**\n * The `assert` module provides a set of assertion functions for verifying\n * invariants.\n * @see [source](https://github.com/nodejs/node/blob/v16.9.0/lib/assert.js)\n */\ndeclare module 'assert' {\n    /**\n     * An alias of {@link ok}.\n     * @since v0.5.9\n     * @param value The input that is checked for being truthy.\n     */\n    function assert(value: unknown, message?: string | Error): asserts value;\n    namespace assert {\n        /**\n         * Indicates the failure of an assertion. All errors thrown by the `assert` module\n         * will be instances of the `AssertionError` class.\n         */\n        class AssertionError extends Error {\n            actual: unknown;\n            expected: unknown;\n            operator: string;\n            generatedMessage: boolean;\n            code: 'ERR_ASSERTION';\n            constructor(options?: {\n                /** If provided, the error message is set to this value. */\n                message?: string | undefined;\n                /** The `actual` property on the error instance. */\n                actual?: unknown | undefined;\n                /** The `expected` property on the error instance. */\n                expected?: unknown | undefined;\n                /** The `operator` property on the error instance. */\n                operator?: string | undefined;\n                /** If provided, the generated stack trace omits frames before this function. */\n                // tslint:disable-next-line:ban-types\n                stackStartFn?: Function | undefined;\n            });\n        }\n        /**\n         * This feature is currently experimental and behavior might still change.\n         * @since v14.2.0, v12.19.0\n         * @experimental\n         */\n        class CallTracker {\n            /**\n             * The wrapper function is expected to be called exactly `exact` times. If the\n             * function has not been called exactly `exact` times when `tracker.verify()` is called, then `tracker.verify()` will throw an\n             * error.\n             *\n             * ```js\n             * import assert from 'assert';\n             *\n             * // Creates call tracker.\n             * const tracker = new assert.CallTracker();\n             *\n             * function func() {}\n             *\n             * // Returns a function that wraps func() that must be called exact times\n             * // before tracker.verify().\n             * const callsfunc = tracker.calls(func);\n             * ```\n             * @since v14.2.0, v12.19.0\n             * @param [fn='A no-op function']\n             * @param [exact=1]\n             * @return that wraps `fn`.\n             */\n            calls(exact?: number): () => void;\n            calls<Func extends (...args: any[]) => any>(fn?: Func, exact?: number): Func;\n            /**\n             * Example:\n             *\n             * ```js\n             * import assert from 'node:assert';\n             *\n             * const tracker = new assert.CallTracker();\n             *\n             * function func() {}\n             * const callsfunc = tracker.calls(func);\n             * callsfunc(1, 2, 3);\n             *\n             * assert.deepStrictEqual(tracker.getCalls(callsfunc),\n             *                        [{ thisArg: this, arguments: [1, 2, 3 ] }]);\n             * ```\n             *\n             * @since v18.8.0, v16.18.0\n             * @params fn\n             * @returns An Array with the calls to a tracked function.\n             */\n            getCalls(fn: Function): CallTrackerCall[];\n            /**\n             * The arrays contains information about the expected and actual number of calls of\n             * the functions that have not been called the expected number of times.\n             *\n             * ```js\n             * import assert from 'assert';\n             *\n             * // Creates call tracker.\n             * const tracker = new assert.CallTracker();\n             *\n             * function func() {}\n             *\n             * function foo() {}\n             *\n             * // Returns a function that wraps func() that must be called exact times\n             * // before tracker.verify().\n             * const callsfunc = tracker.calls(func, 2);\n             *\n             * // Returns an array containing information on callsfunc()\n             * tracker.report();\n             * // [\n             * //  {\n             * //    message: 'Expected the func function to be executed 2 time(s) but was\n             * //    executed 0 time(s).',\n             * //    actual: 0,\n             * //    expected: 2,\n             * //    operator: 'func',\n             * //    stack: stack trace\n             * //  }\n             * // ]\n             * ```\n             * @since v14.2.0, v12.19.0\n             * @return of objects containing information about the wrapper functions returned by `calls`.\n             */\n            report(): CallTrackerReportInformation[];\n            /**\n             * Reset calls of the call tracker.\n             * If a tracked function is passed as an argument, the calls will be reset for it.\n             * If no arguments are passed, all tracked functions will be reset.\n             *\n             * ```js\n             * import assert from 'node:assert';\n             *\n             * const tracker = new assert.CallTracker();\n             *\n             * function func() {}\n             * const callsfunc = tracker.calls(func);\n             *\n             * callsfunc();\n             * // Tracker was called once\n             * tracker.getCalls(callsfunc).length === 1;\n             *\n             * tracker.reset(callsfunc);\n             * tracker.getCalls(callsfunc).length === 0;\n             * ```\n             *\n             * @since v18.8.0, v16.18.0\n             * @param fn a tracked function to reset.\n             */\n            reset(fn?: Function): void;\n            /**\n             * Iterates through the list of functions passed to `tracker.calls()` and will throw an error for functions that\n             * have not been called the expected number of times.\n             *\n             * ```js\n             * import assert from 'assert';\n             *\n             * // Creates call tracker.\n             * const tracker = new assert.CallTracker();\n             *\n             * function func() {}\n             *\n             * // Returns a function that wraps func() that must be called exact times\n             * // before tracker.verify().\n             * const callsfunc = tracker.calls(func, 2);\n             *\n             * callsfunc();\n             *\n             * // Will throw an error since callsfunc() was only called once.\n             * tracker.verify();\n             * ```\n             * @since v14.2.0, v12.19.0\n             */\n            verify(): void;\n        }\n        interface CallTrackerCall {\n            thisArg: object;\n            arguments: unknown[];\n        }\n        interface CallTrackerReportInformation {\n            message: string;\n            /** The actual number of times the function was called. */\n            actual: number;\n            /** The number of times the function was expected to be called. */\n            expected: number;\n            /** The name of the function that is wrapped. */\n            operator: string;\n            /** A stack trace of the function. */\n            stack: object;\n        }\n        type AssertPredicate = RegExp | (new () => object) | ((thrown: unknown) => boolean) | object | Error;\n        /**\n         * Throws an `AssertionError` with the provided error message or a default\n         * error message. If the `message` parameter is an instance of an `Error` then\n         * it will be thrown instead of the `AssertionError`.\n         *\n         * ```js\n         * import assert from 'assert/strict';\n         *\n         * assert.fail();\n         * // AssertionError [ERR_ASSERTION]: Failed\n         *\n         * assert.fail('boom');\n         * // AssertionError [ERR_ASSERTION]: boom\n         *\n         * assert.fail(new TypeError('need array'));\n         * // TypeError: need array\n         * ```\n         *\n         * Using `assert.fail()` with more than two arguments is possible but deprecated.\n         * See below for further details.\n         * @since v0.1.21\n         * @param [message='Failed']\n         */\n        function fail(message?: string | Error): never;\n        /** @deprecated since v10.0.0 - use fail([message]) or other assert functions instead. */\n        function fail(\n            actual: unknown,\n            expected: unknown,\n            message?: string | Error,\n            operator?: string,\n            // tslint:disable-next-line:ban-types\n            stackStartFn?: Function\n        ): never;\n        /**\n         * Tests if `value` is truthy. It is equivalent to`assert.equal(!!value, true, message)`.\n         *\n         * If `value` is not truthy, an `AssertionError` is thrown with a `message`property set equal to the value of the `message` parameter. If the `message`parameter is `undefined`, a default\n         * error message is assigned. If the `message`parameter is an instance of an `Error` then it will be thrown instead of the`AssertionError`.\n         * If no arguments are passed in at all `message` will be set to the string:`` 'No value argument passed to `assert.ok()`' ``.\n         *\n         * Be aware that in the `repl` the error message will be different to the one\n         * thrown in a file! See below for further details.\n         *\n         * ```js\n         * import assert from 'assert/strict';\n         *\n         * assert.ok(true);\n         * // OK\n         * assert.ok(1);\n         * // OK\n         *\n         * assert.ok();\n         * // AssertionError: No value argument passed to `assert.ok()`\n         *\n         * assert.ok(false, 'it\\'s false');\n         * // AssertionError: it's false\n         *\n         * // In the repl:\n         * assert.ok(typeof 123 === 'string');\n         * // AssertionError: false == true\n         *\n         * // In a file (e.g. test.js):\n         * assert.ok(typeof 123 === 'string');\n         * // AssertionError: The expression evaluated to a falsy value:\n         * //\n         * //   assert.ok(typeof 123 === 'string')\n         *\n         * assert.ok(false);\n         * // AssertionError: The expression evaluated to a falsy value:\n         * //\n         * //   assert.ok(false)\n         *\n         * assert.ok(0);\n         * // AssertionError: The expression evaluated to a falsy value:\n         * //\n         * //   assert.ok(0)\n         * ```\n         *\n         * ```js\n         * import assert from 'assert/strict';\n         *\n         * // Using `assert()` works the same:\n         * assert(0);\n         * // AssertionError: The expression evaluated to a falsy value:\n         * //\n         * //   assert(0)\n         * ```\n         * @since v0.1.21\n         */\n        function ok(value: unknown, message?: string | Error): asserts value;\n        /**\n         * **Strict assertion mode**\n         *\n         * An alias of {@link strictEqual}.\n         *\n         * **Legacy assertion mode**\n         *\n         * > Stability: 3 - Legacy: Use {@link strictEqual} instead.\n         *\n         * Tests shallow, coercive equality between the `actual` and `expected` parameters\n         * using the [Abstract Equality Comparison](https://tc39.github.io/ecma262/#sec-abstract-equality-comparison) ( `==` ). `NaN` is special handled\n         * and treated as being identical in case both sides are `NaN`.\n         *\n         * ```js\n         * import assert from 'assert';\n         *\n         * assert.equal(1, 1);\n         * // OK, 1 == 1\n         * assert.equal(1, '1');\n         * // OK, 1 == '1'\n         * assert.equal(NaN, NaN);\n         * // OK\n         *\n         * assert.equal(1, 2);\n         * // AssertionError: 1 == 2\n         * assert.equal({ a: { b: 1 } }, { a: { b: 1 } });\n         * // AssertionError: { a: { b: 1 } } == { a: { b: 1 } }\n         * ```\n         *\n         * If the values are not equal, an `AssertionError` is thrown with a `message`property set equal to the value of the `message` parameter. If the `message`parameter is undefined, a default\n         * error message is assigned. If the `message`parameter is an instance of an `Error` then it will be thrown instead of the`AssertionError`.\n         * @since v0.1.21\n         */\n        function equal(actual: unknown, expected: unknown, message?: string | Error): void;\n        /**\n         * **Strict assertion mode**\n         *\n         * An alias of {@link notStrictEqual}.\n         *\n         * **Legacy assertion mode**\n         *\n         * > Stability: 3 - Legacy: Use {@link notStrictEqual} instead.\n         *\n         * Tests shallow, coercive inequality with the [Abstract Equality Comparison](https://tc39.github.io/ecma262/#sec-abstract-equality-comparison)(`!=` ). `NaN` is special handled and treated as\n         * being identical in case both\n         * sides are `NaN`.\n         *\n         * ```js\n         * import assert from 'assert';\n         *\n         * assert.notEqual(1, 2);\n         * // OK\n         *\n         * assert.notEqual(1, 1);\n         * // AssertionError: 1 != 1\n         *\n         * assert.notEqual(1, '1');\n         * // AssertionError: 1 != '1'\n         * ```\n         *\n         * If the values are equal, an `AssertionError` is thrown with a `message`property set equal to the value of the `message` parameter. If the `message`parameter is undefined, a default error\n         * message is assigned. If the `message`parameter is an instance of an `Error` then it will be thrown instead of the`AssertionError`.\n         * @since v0.1.21\n         */\n        function notEqual(actual: unknown, expected: unknown, message?: string | Error): void;\n        /**\n         * **Strict assertion mode**\n         *\n         * An alias of {@link deepStrictEqual}.\n         *\n         * **Legacy assertion mode**\n         *\n         * > Stability: 3 - Legacy: Use {@link deepStrictEqual} instead.\n         *\n         * Tests for deep equality between the `actual` and `expected` parameters. Consider\n         * using {@link deepStrictEqual} instead. {@link deepEqual} can have\n         * surprising results.\n         *\n         * _Deep equality_ means that the enumerable \"own\" properties of child objects\n         * are also recursively evaluated by the following rules.\n         * @since v0.1.21\n         */\n        function deepEqual(actual: unknown, expected: unknown, message?: string | Error): void;\n        /**\n         * **Strict assertion mode**\n         *\n         * An alias of {@link notDeepStrictEqual}.\n         *\n         * **Legacy assertion mode**\n         *\n         * > Stability: 3 - Legacy: Use {@link notDeepStrictEqual} instead.\n         *\n         * Tests for any deep inequality. Opposite of {@link deepEqual}.\n         *\n         * ```js\n         * import assert from 'assert';\n         *\n         * const obj1 = {\n         *   a: {\n         *     b: 1\n         *   }\n         * };\n         * const obj2 = {\n         *   a: {\n         *     b: 2\n         *   }\n         * };\n         * const obj3 = {\n         *   a: {\n         *     b: 1\n         *   }\n         * };\n         * const obj4 = Object.create(obj1);\n         *\n         * assert.notDeepEqual(obj1, obj1);\n         * // AssertionError: { a: { b: 1 } } notDeepEqual { a: { b: 1 } }\n         *\n         * assert.notDeepEqual(obj1, obj2);\n         * // OK\n         *\n         * assert.notDeepEqual(obj1, obj3);\n         * // AssertionError: { a: { b: 1 } } notDeepEqual { a: { b: 1 } }\n         *\n         * assert.notDeepEqual(obj1, obj4);\n         * // OK\n         * ```\n         *\n         * If the values are deeply equal, an `AssertionError` is thrown with a`message` property set equal to the value of the `message` parameter. If the`message` parameter is undefined, a default\n         * error message is assigned. If the`message` parameter is an instance of an `Error` then it will be thrown\n         * instead of the `AssertionError`.\n         * @since v0.1.21\n         */\n        function notDeepEqual(actual: unknown, expected: unknown, message?: string | Error): void;\n        /**\n         * Tests strict equality between the `actual` and `expected` parameters as\n         * determined by the [SameValue Comparison](https://tc39.github.io/ecma262/#sec-samevalue).\n         *\n         * ```js\n         * import assert from 'assert/strict';\n         *\n         * assert.strictEqual(1, 2);\n         * // AssertionError [ERR_ASSERTION]: Expected inputs to be strictly equal:\n         * //\n         * // 1 !== 2\n         *\n         * assert.strictEqual(1, 1);\n         * // OK\n         *\n         * assert.strictEqual('Hello foobar', 'Hello World!');\n         * // AssertionError [ERR_ASSERTION]: Expected inputs to be strictly equal:\n         * // + actual - expected\n         * //\n         * // + 'Hello foobar'\n         * // - 'Hello World!'\n         * //          ^\n         *\n         * const apples = 1;\n         * const oranges = 2;\n         * assert.strictEqual(apples, oranges, `apples ${apples} !== oranges ${oranges}`);\n         * // AssertionError [ERR_ASSERTION]: apples 1 !== oranges 2\n         *\n         * assert.strictEqual(1, '1', new TypeError('Inputs are not identical'));\n         * // TypeError: Inputs are not identical\n         * ```\n         *\n         * If the values are not strictly equal, an `AssertionError` is thrown with a`message` property set equal to the value of the `message` parameter. If the`message` parameter is undefined, a\n         * default error message is assigned. If the`message` parameter is an instance of an `Error` then it will be thrown\n         * instead of the `AssertionError`.\n         * @since v0.1.21\n         */\n        function strictEqual<T>(actual: unknown, expected: T, message?: string | Error): asserts actual is T;\n        /**\n         * Tests strict inequality between the `actual` and `expected` parameters as\n         * determined by the [SameValue Comparison](https://tc39.github.io/ecma262/#sec-samevalue).\n         *\n         * ```js\n         * import assert from 'assert/strict';\n         *\n         * assert.notStrictEqual(1, 2);\n         * // OK\n         *\n         * assert.notStrictEqual(1, 1);\n         * // AssertionError [ERR_ASSERTION]: Expected \"actual\" to be strictly unequal to:\n         * //\n         * // 1\n         *\n         * assert.notStrictEqual(1, '1');\n         * // OK\n         * ```\n         *\n         * If the values are strictly equal, an `AssertionError` is thrown with a`message` property set equal to the value of the `message` parameter. If the`message` parameter is undefined, a\n         * default error message is assigned. If the`message` parameter is an instance of an `Error` then it will be thrown\n         * instead of the `AssertionError`.\n         * @since v0.1.21\n         */\n        function notStrictEqual(actual: unknown, expected: unknown, message?: string | Error): void;\n        /**\n         * Tests for deep equality between the `actual` and `expected` parameters.\n         * \"Deep\" equality means that the enumerable \"own\" properties of child objects\n         * are recursively evaluated also by the following rules.\n         * @since v1.2.0\n         */\n        function deepStrictEqual<T>(actual: unknown, expected: T, message?: string | Error): asserts actual is T;\n        /**\n         * Tests for deep strict inequality. Opposite of {@link deepStrictEqual}.\n         *\n         * ```js\n         * import assert from 'assert/strict';\n         *\n         * assert.notDeepStrictEqual({ a: 1 }, { a: '1' });\n         * // OK\n         * ```\n         *\n         * If the values are deeply and strictly equal, an `AssertionError` is thrown\n         * with a `message` property set equal to the value of the `message` parameter. If\n         * the `message` parameter is undefined, a default error message is assigned. If\n         * the `message` parameter is an instance of an `Error` then it will be thrown\n         * instead of the `AssertionError`.\n         * @since v1.2.0\n         */\n        function notDeepStrictEqual(actual: unknown, expected: unknown, message?: string | Error): void;\n        /**\n         * Expects the function `fn` to throw an error.\n         *\n         * If specified, `error` can be a [`Class`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes),\n         * [`RegExp`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions), a validation function,\n         * a validation object where each property will be tested for strict deep equality,\n         * or an instance of error where each property will be tested for strict deep\n         * equality including the non-enumerable `message` and `name` properties. When\n         * using an object, it is also possible to use a regular expression, when\n         * validating against a string property. See below for examples.\n         *\n         * If specified, `message` will be appended to the message provided by the`AssertionError` if the `fn` call fails to throw or in case the error validation\n         * fails.\n         *\n         * Custom validation object/error instance:\n         *\n         * ```js\n         * import assert from 'assert/strict';\n         *\n         * const err = new TypeError('Wrong value');\n         * err.code = 404;\n         * err.foo = 'bar';\n         * err.info = {\n         *   nested: true,\n         *   baz: 'text'\n         * };\n         * err.reg = /abc/i;\n         *\n         * assert.throws(\n         *   () => {\n         *     throw err;\n         *   },\n         *   {\n         *     name: 'TypeError',\n         *     message: 'Wrong value',\n         *     info: {\n         *       nested: true,\n         *       baz: 'text'\n         *     }\n         *     // Only properties on the validation object will be tested for.\n         *     // Using nested objects requires all properties to be present. Otherwise\n         *     // the validation is going to fail.\n         *   }\n         * );\n         *\n         * // Using regular expressions to validate error properties:\n         * throws(\n         *   () => {\n         *     throw err;\n         *   },\n         *   {\n         *     // The `name` and `message` properties are strings and using regular\n         *     // expressions on those will match against the string. If they fail, an\n         *     // error is thrown.\n         *     name: /^TypeError$/,\n         *     message: /Wrong/,\n         *     foo: 'bar',\n         *     info: {\n         *       nested: true,\n         *       // It is not possible to use regular expressions for nested properties!\n         *       baz: 'text'\n         *     },\n         *     // The `reg` property contains a regular expression and only if the\n         *     // validation object contains an identical regular expression, it is going\n         *     // to pass.\n         *     reg: /abc/i\n         *   }\n         * );\n         *\n         * // Fails due to the different `message` and `name` properties:\n         * throws(\n         *   () => {\n         *     const otherErr = new Error('Not found');\n         *     // Copy all enumerable properties from `err` to `otherErr`.\n         *     for (const [key, value] of Object.entries(err)) {\n         *       otherErr[key] = value;\n         *     }\n         *     throw otherErr;\n         *   },\n         *   // The error's `message` and `name` properties will also be checked when using\n         *   // an error as validation object.\n         *   err\n         * );\n         * ```\n         *\n         * Validate instanceof using constructor:\n         *\n         * ```js\n         * import assert from 'assert/strict';\n         *\n         * assert.throws(\n         *   () => {\n         *     throw new Error('Wrong value');\n         *   },\n         *   Error\n         * );\n         * ```\n         *\n         * Validate error message using [`RegExp`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions):\n         *\n         * Using a regular expression runs `.toString` on the error object, and will\n         * therefore also include the error name.\n         *\n         * ```js\n         * import assert from 'assert/strict';\n         *\n         * assert.throws(\n         *   () => {\n         *     throw new Error('Wrong value');\n         *   },\n         *   /^Error: Wrong value$/\n         * );\n         * ```\n         *\n         * Custom error validation:\n         *\n         * The function must return `true` to indicate all internal validations passed.\n         * It will otherwise fail with an `AssertionError`.\n         *\n         * ```js\n         * import assert from 'assert/strict';\n         *\n         * assert.throws(\n         *   () => {\n         *     throw new Error('Wrong value');\n         *   },\n         *   (err) => {\n         *     assert(err instanceof Error);\n         *     assert(/value/.test(err));\n         *     // Avoid returning anything from validation functions besides `true`.\n         *     // Otherwise, it's not clear what part of the validation failed. Instead,\n         *     // throw an error about the specific validation that failed (as done in this\n         *     // example) and add as much helpful debugging information to that error as\n         *     // possible.\n         *     return true;\n         *   },\n         *   'unexpected error'\n         * );\n         * ```\n         *\n         * `error` cannot be a string. If a string is provided as the second\n         * argument, then `error` is assumed to be omitted and the string will be used for`message` instead. This can lead to easy-to-miss mistakes. Using the same\n         * message as the thrown error message is going to result in an`ERR_AMBIGUOUS_ARGUMENT` error. Please read the example below carefully if using\n         * a string as the second argument gets considered:\n         *\n         * ```js\n         * import assert from 'assert/strict';\n         *\n         * function throwingFirst() {\n         *   throw new Error('First');\n         * }\n         *\n         * function throwingSecond() {\n         *   throw new Error('Second');\n         * }\n         *\n         * function notThrowing() {}\n         *\n         * // The second argument is a string and the input function threw an Error.\n         * // The first case will not throw as it does not match for the error message\n         * // thrown by the input function!\n         * assert.throws(throwingFirst, 'Second');\n         * // In the next example the message has no benefit over the message from the\n         * // error and since it is not clear if the user intended to actually match\n         * // against the error message, Node.js throws an `ERR_AMBIGUOUS_ARGUMENT` error.\n         * assert.throws(throwingSecond, 'Second');\n         * // TypeError [ERR_AMBIGUOUS_ARGUMENT]\n         *\n         * // The string is only used (as message) in case the function does not throw:\n         * assert.throws(notThrowing, 'Second');\n         * // AssertionError [ERR_ASSERTION]: Missing expected exception: Second\n         *\n         * // If it was intended to match for the error message do this instead:\n         * // It does not throw because the error messages match.\n         * assert.throws(throwingSecond, /Second$/);\n         *\n         * // If the error message does not match, an AssertionError is thrown.\n         * assert.throws(throwingFirst, /Second$/);\n         * // AssertionError [ERR_ASSERTION]\n         * ```\n         *\n         * Due to the confusing error-prone notation, avoid a string as the second\n         * argument.\n         * @since v0.1.21\n         */\n        function throws(block: () => unknown, message?: string | Error): void;\n        function throws(block: () => unknown, error: AssertPredicate, message?: string | Error): void;\n        /**\n         * Asserts that the function `fn` does not throw an error.\n         *\n         * Using `assert.doesNotThrow()` is actually not useful because there\n         * is no benefit in catching an error and then rethrowing it. Instead, consider\n         * adding a comment next to the specific code path that should not throw and keep\n         * error messages as expressive as possible.\n         *\n         * When `assert.doesNotThrow()` is called, it will immediately call the `fn`function.\n         *\n         * If an error is thrown and it is the same type as that specified by the `error`parameter, then an `AssertionError` is thrown. If the error is of a\n         * different type, or if the `error` parameter is undefined, the error is\n         * propagated back to the caller.\n         *\n         * If specified, `error` can be a [`Class`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes),\n         * [`RegExp`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions) or a validation\n         * function. See {@link throws} for more details.\n         *\n         * The following, for instance, will throw the `TypeError` because there is no\n         * matching error type in the assertion:\n         *\n         * ```js\n         * import assert from 'assert/strict';\n         *\n         * assert.doesNotThrow(\n         *   () => {\n         *     throw new TypeError('Wrong value');\n         *   },\n         *   SyntaxError\n         * );\n         * ```\n         *\n         * However, the following will result in an `AssertionError` with the message\n         * 'Got unwanted exception...':\n         *\n         * ```js\n         * import assert from 'assert/strict';\n         *\n         * assert.doesNotThrow(\n         *   () => {\n         *     throw new TypeError('Wrong value');\n         *   },\n         *   TypeError\n         * );\n         * ```\n         *\n         * If an `AssertionError` is thrown and a value is provided for the `message`parameter, the value of `message` will be appended to the `AssertionError` message:\n         *\n         * ```js\n         * import assert from 'assert/strict';\n         *\n         * assert.doesNotThrow(\n         *   () => {\n         *     throw new TypeError('Wrong value');\n         *   },\n         *   /Wrong value/,\n         *   'Whoops'\n         * );\n         * // Throws: AssertionError: Got unwanted exception: Whoops\n         * ```\n         * @since v0.1.21\n         */\n        function doesNotThrow(block: () => unknown, message?: string | Error): void;\n        function doesNotThrow(block: () => unknown, error: AssertPredicate, message?: string | Error): void;\n        /**\n         * Throws `value` if `value` is not `undefined` or `null`. This is useful when\n         * testing the `error` argument in callbacks. The stack trace contains all frames\n         * from the error passed to `ifError()` including the potential new frames for`ifError()` itself.\n         *\n         * ```js\n         * import assert from 'assert/strict';\n         *\n         * assert.ifError(null);\n         * // OK\n         * assert.ifError(0);\n         * // AssertionError [ERR_ASSERTION]: ifError got unwanted exception: 0\n         * assert.ifError('error');\n         * // AssertionError [ERR_ASSERTION]: ifError got unwanted exception: 'error'\n         * assert.ifError(new Error());\n         * // AssertionError [ERR_ASSERTION]: ifError got unwanted exception: Error\n         *\n         * // Create some random error frames.\n         * let err;\n         * (function errorFrame() {\n         *   err = new Error('test error');\n         * })();\n         *\n         * (function ifErrorFrame() {\n         *   assert.ifError(err);\n         * })();\n         * // AssertionError [ERR_ASSERTION]: ifError got unwanted exception: test error\n         * //     at ifErrorFrame\n         * //     at errorFrame\n         * ```\n         * @since v0.1.97\n         */\n        function ifError(value: unknown): asserts value is null | undefined;\n        /**\n         * Awaits the `asyncFn` promise or, if `asyncFn` is a function, immediately\n         * calls the function and awaits the returned promise to complete. It will then\n         * check that the promise is rejected.\n         *\n         * If `asyncFn` is a function and it throws an error synchronously,`assert.rejects()` will return a rejected `Promise` with that error. If the\n         * function does not return a promise, `assert.rejects()` will return a rejected`Promise` with an `ERR_INVALID_RETURN_VALUE` error. In both cases the error\n         * handler is skipped.\n         *\n         * Besides the async nature to await the completion behaves identically to {@link throws}.\n         *\n         * If specified, `error` can be a [`Class`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes),\n         * [`RegExp`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions), a validation function,\n         * an object where each property will be tested for, or an instance of error where\n         * each property will be tested for including the non-enumerable `message` and`name` properties.\n         *\n         * If specified, `message` will be the message provided by the `AssertionError` if the `asyncFn` fails to reject.\n         *\n         * ```js\n         * import assert from 'assert/strict';\n         *\n         * await assert.rejects(\n         *   async () => {\n         *     throw new TypeError('Wrong value');\n         *   },\n         *   {\n         *     name: 'TypeError',\n         *     message: 'Wrong value'\n         *   }\n         * );\n         * ```\n         *\n         * ```js\n         * import assert from 'assert/strict';\n         *\n         * await assert.rejects(\n         *   async () => {\n         *     throw new TypeError('Wrong value');\n         *   },\n         *   (err) => {\n         *     assert.strictEqual(err.name, 'TypeError');\n         *     assert.strictEqual(err.message, 'Wrong value');\n         *     return true;\n         *   }\n         * );\n         * ```\n         *\n         * ```js\n         * import assert from 'assert/strict';\n         *\n         * assert.rejects(\n         *   Promise.reject(new Error('Wrong value')),\n         *   Error\n         * ).then(() => {\n         *   // ...\n         * });\n         * ```\n         *\n         * `error` cannot be a string. If a string is provided as the second\n         * argument, then `error` is assumed to be omitted and the string will be used for`message` instead. This can lead to easy-to-miss mistakes. Please read the\n         * example in {@link throws} carefully if using a string as the second\n         * argument gets considered.\n         * @since v10.0.0\n         */\n        function rejects(block: (() => Promise<unknown>) | Promise<unknown>, message?: string | Error): Promise<void>;\n        function rejects(block: (() => Promise<unknown>) | Promise<unknown>, error: AssertPredicate, message?: string | Error): Promise<void>;\n        /**\n         * Awaits the `asyncFn` promise or, if `asyncFn` is a function, immediately\n         * calls the function and awaits the returned promise to complete. It will then\n         * check that the promise is not rejected.\n         *\n         * If `asyncFn` is a function and it throws an error synchronously,`assert.doesNotReject()` will return a rejected `Promise` with that error. If\n         * the function does not return a promise, `assert.doesNotReject()` will return a\n         * rejected `Promise` with an `ERR_INVALID_RETURN_VALUE` error. In both cases\n         * the error handler is skipped.\n         *\n         * Using `assert.doesNotReject()` is actually not useful because there is little\n         * benefit in catching a rejection and then rejecting it again. Instead, consider\n         * adding a comment next to the specific code path that should not reject and keep\n         * error messages as expressive as possible.\n         *\n         * If specified, `error` can be a [`Class`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes),\n         * [`RegExp`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions) or a validation\n         * function. See {@link throws} for more details.\n         *\n         * Besides the async nature to await the completion behaves identically to {@link doesNotThrow}.\n         *\n         * ```js\n         * import assert from 'assert/strict';\n         *\n         * await assert.doesNotReject(\n         *   async () => {\n         *     throw new TypeError('Wrong value');\n         *   },\n         *   SyntaxError\n         * );\n         * ```\n         *\n         * ```js\n         * import assert from 'assert/strict';\n         *\n         * assert.doesNotReject(Promise.reject(new TypeError('Wrong value')))\n         *   .then(() => {\n         *     // ...\n         *   });\n         * ```\n         * @since v10.0.0\n         */\n        function doesNotReject(block: (() => Promise<unknown>) | Promise<unknown>, message?: string | Error): Promise<void>;\n        function doesNotReject(block: (() => Promise<unknown>) | Promise<unknown>, error: AssertPredicate, message?: string | Error): Promise<void>;\n        /**\n         * Expects the `string` input to match the regular expression.\n         *\n         * ```js\n         * import assert from 'assert/strict';\n         *\n         * assert.match('I will fail', /pass/);\n         * // AssertionError [ERR_ASSERTION]: The input did not match the regular ...\n         *\n         * assert.match(123, /pass/);\n         * // AssertionError [ERR_ASSERTION]: The \"string\" argument must be of type string.\n         *\n         * assert.match('I will pass', /pass/);\n         * // OK\n         * ```\n         *\n         * If the values do not match, or if the `string` argument is of another type than`string`, an `AssertionError` is thrown with a `message` property set equal\n         * to the value of the `message` parameter. If the `message` parameter is\n         * undefined, a default error message is assigned. If the `message` parameter is an\n         * instance of an `Error` then it will be thrown instead of the `AssertionError`.\n         * @since v13.6.0, v12.16.0\n         */\n        function match(value: string, regExp: RegExp, message?: string | Error): void;\n        /**\n         * Expects the `string` input not to match the regular expression.\n         *\n         * ```js\n         * import assert from 'assert/strict';\n         *\n         * assert.doesNotMatch('I will fail', /fail/);\n         * // AssertionError [ERR_ASSERTION]: The input was expected to not match the ...\n         *\n         * assert.doesNotMatch(123, /pass/);\n         * // AssertionError [ERR_ASSERTION]: The \"string\" argument must be of type string.\n         *\n         * assert.doesNotMatch('I will pass', /different/);\n         * // OK\n         * ```\n         *\n         * If the values do match, or if the `string` argument is of another type than`string`, an `AssertionError` is thrown with a `message` property set equal\n         * to the value of the `message` parameter. If the `message` parameter is\n         * undefined, a default error message is assigned. If the `message` parameter is an\n         * instance of an `Error` then it will be thrown instead of the `AssertionError`.\n         * @since v13.6.0, v12.16.0\n         */\n        function doesNotMatch(value: string, regExp: RegExp, message?: string | Error): void;\n        const strict: Omit<typeof assert, 'equal' | 'notEqual' | 'deepEqual' | 'notDeepEqual' | 'ok' | 'strictEqual' | 'deepStrictEqual' | 'ifError' | 'strict'> & {\n            (value: unknown, message?: string | Error): asserts value;\n            equal: typeof strictEqual;\n            notEqual: typeof notStrictEqual;\n            deepEqual: typeof deepStrictEqual;\n            notDeepEqual: typeof notDeepStrictEqual;\n            // Mapped types and assertion functions are incompatible?\n            // TS2775: Assertions require every name in the call target\n            // to be declared with an explicit type annotation.\n            ok: typeof ok;\n            strictEqual: typeof strictEqual;\n            deepStrictEqual: typeof deepStrictEqual;\n            ifError: typeof ifError;\n            strict: typeof strict;\n        };\n    }\n    export = assert;\n}\ndeclare module 'node:assert' {\n    import assert = require('assert');\n    export = assert;\n}\n"
    },
    {
      "path": "/node_modules/@types/node/assert/strict.d.ts",
      "content": "declare module 'assert/strict' {\n    import { strict } from 'node:assert';\n    export = strict;\n}\ndeclare module 'node:assert/strict' {\n    import { strict } from 'node:assert';\n    export = strict;\n}\n"
    },
    {
      "path": "/node_modules/@types/node/globals.d.ts",
      "content": "// Declare \"static\" methods in Error\ninterface ErrorConstructor {\n    /** Create .stack property on a target object */\n    captureStackTrace(targetObject: object, constructorOpt?: Function): void;\n\n    /**\n     * Optional override for formatting stack traces\n     *\n     * @see https://v8.dev/docs/stack-trace-api#customizing-stack-traces\n     */\n    prepareStackTrace?: ((err: Error, stackTraces: NodeJS.CallSite[]) => any) | undefined;\n\n    stackTraceLimit: number;\n}\n\n/*-----------------------------------------------*\n *                                               *\n *                   GLOBAL                      *\n *                                               *\n ------------------------------------------------*/\n\n// For backwards compability\ninterface NodeRequire extends NodeJS.Require { }\ninterface RequireResolve extends NodeJS.RequireResolve { }\ninterface NodeModule extends NodeJS.Module { }\n\ndeclare var process: NodeJS.Process;\ndeclare var console: Console;\n\ndeclare var __filename: string;\ndeclare var __dirname: string;\n\ndeclare var require: NodeRequire;\ndeclare var module: NodeModule;\n\n// Same as module.exports\ndeclare var exports: any;\n\n/**\n * Only available if `--expose-gc` is passed to the process.\n */\ndeclare var gc: undefined | (() => void);\n\n//#region borrowed\n// from https://github.com/microsoft/TypeScript/blob/38da7c600c83e7b31193a62495239a0fe478cb67/lib/lib.webworker.d.ts#L633 until moved to separate lib\n/** A controller object that allows you to abort one or more DOM requests as and when desired. */\ninterface AbortController {\n    /**\n     * Returns the AbortSignal object associated with this object.\n     */\n\n    readonly signal: AbortSignal;\n    /**\n     * Invoking this method will set this object's AbortSignal's aborted flag and signal to any observers that the associated activity is to be aborted.\n     */\n    abort(): void;\n}\n\n/** A signal object that allows you to communicate with a DOM request (such as a Fetch) and abort it if required via an AbortController object. */\ninterface AbortSignal {\n    /**\n     * Returns true if this AbortSignal's AbortController has signaled to abort, and false otherwise.\n     */\n    readonly aborted: boolean;\n}\n\ndeclare var AbortController: {\n    prototype: AbortController;\n    new(): AbortController;\n};\n\ndeclare var AbortSignal: {\n    prototype: AbortSignal;\n    new(): AbortSignal;\n    abort(reason?: any): AbortSignal;\n    timeout(milliseconds: number): AbortSignal;\n};\n//#endregion borrowed\n\n//#region ArrayLike.at()\ninterface RelativeIndexable<T> {\n    /**\n     * Takes an integer value and returns the item at that index,\n     * allowing for positive and negative integers.\n     * Negative integers count back from the last item in the array.\n     */\n    at(index: number): T | undefined;\n}\ninterface String extends RelativeIndexable<string> {}\ninterface Array<T> extends RelativeIndexable<T> {}\ninterface ReadonlyArray<T> extends RelativeIndexable<T> {}\ninterface Int8Array extends RelativeIndexable<number> {}\ninterface Uint8Array extends RelativeIndexable<number> {}\ninterface Uint8ClampedArray extends RelativeIndexable<number> {}\ninterface Int16Array extends RelativeIndexable<number> {}\ninterface Uint16Array extends RelativeIndexable<number> {}\ninterface Int32Array extends RelativeIndexable<number> {}\ninterface Uint32Array extends RelativeIndexable<number> {}\ninterface Float32Array extends RelativeIndexable<number> {}\ninterface Float64Array extends RelativeIndexable<number> {}\ninterface BigInt64Array extends RelativeIndexable<bigint> {}\ninterface BigUint64Array extends RelativeIndexable<bigint> {}\n//#endregion ArrayLike.at() end\n\n/*----------------------------------------------*\n*                                               *\n*               GLOBAL INTERFACES               *\n*                                               *\n*-----------------------------------------------*/\ndeclare namespace NodeJS {\n    interface CallSite {\n        /**\n         * Value of \"this\"\n         */\n        getThis(): unknown;\n\n        /**\n         * Type of \"this\" as a string.\n         * This is the name of the function stored in the constructor field of\n         * \"this\", if available.  Otherwise the object's [[Class]] internal\n         * property.\n         */\n        getTypeName(): string | null;\n\n        /**\n         * Current function\n         */\n        getFunction(): Function | undefined;\n\n        /**\n         * Name of the current function, typically its name property.\n         * If a name property is not available an attempt will be made to try\n         * to infer a name from the function's context.\n         */\n        getFunctionName(): string | null;\n\n        /**\n         * Name of the property [of \"this\" or one of its prototypes] that holds\n         * the current function\n         */\n        getMethodName(): string | null;\n\n        /**\n         * Name of the script [if this function was defined in a script]\n         */\n        getFileName(): string | null;\n\n        /**\n         * Current line number [if this function was defined in a script]\n         */\n        getLineNumber(): number | null;\n\n        /**\n         * Current column number [if this function was defined in a script]\n         */\n        getColumnNumber(): number | null;\n\n        /**\n         * A call site object representing the location where eval was called\n         * [if this function was created using a call to eval]\n         */\n        getEvalOrigin(): string | undefined;\n\n        /**\n         * Is this a toplevel invocation, that is, is \"this\" the global object?\n         */\n        isToplevel(): boolean;\n\n        /**\n         * Does this call take place in code defined by a call to eval?\n         */\n        isEval(): boolean;\n\n        /**\n         * Is this call in native V8 code?\n         */\n        isNative(): boolean;\n\n        /**\n         * Is this a constructor call?\n         */\n        isConstructor(): boolean;\n    }\n\n    interface ErrnoException extends Error {\n        errno?: number | undefined;\n        code?: string | undefined;\n        path?: string | undefined;\n        syscall?: string | undefined;\n    }\n\n    interface ReadableStream extends EventEmitter {\n        readable: boolean;\n        read(size?: number): string | Buffer;\n        setEncoding(encoding: BufferEncoding): this;\n        pause(): this;\n        resume(): this;\n        isPaused(): boolean;\n        pipe<T extends WritableStream>(destination: T, options?: { end?: boolean | undefined; }): T;\n        unpipe(destination?: WritableStream): this;\n        unshift(chunk: string | Uint8Array, encoding?: BufferEncoding): void;\n        wrap(oldStream: ReadableStream): this;\n        [Symbol.asyncIterator](): AsyncIterableIterator<string | Buffer>;\n    }\n\n    interface WritableStream extends EventEmitter {\n        writable: boolean;\n        write(buffer: Uint8Array | string, cb?: (err?: Error | null) => void): boolean;\n        write(str: string, encoding?: BufferEncoding, cb?: (err?: Error | null) => void): boolean;\n        end(cb?: () => void): void;\n        end(data: string | Uint8Array, cb?: () => void): void;\n        end(str: string, encoding?: BufferEncoding, cb?: () => void): void;\n    }\n\n    interface ReadWriteStream extends ReadableStream, WritableStream { }\n\n    interface RefCounted {\n        ref(): this;\n        unref(): this;\n    }\n\n    type TypedArray =\n        | Uint8Array\n        | Uint8ClampedArray\n        | Uint16Array\n        | Uint32Array\n        | Int8Array\n        | Int16Array\n        | Int32Array\n        | BigUint64Array\n        | BigInt64Array\n        | Float32Array\n        | Float64Array;\n    type ArrayBufferView = TypedArray | DataView;\n\n    interface Require {\n        (id: string): any;\n        resolve: RequireResolve;\n        cache: Dict<NodeModule>;\n        /**\n         * @deprecated\n         */\n        extensions: RequireExtensions;\n        main: Module | undefined;\n    }\n\n    interface RequireResolve {\n        (id: string, options?: { paths?: string[] | undefined; }): string;\n        paths(request: string): string[] | null;\n    }\n\n    interface RequireExtensions extends Dict<(m: Module, filename: string) => any> {\n        '.js': (m: Module, filename: string) => any;\n        '.json': (m: Module, filename: string) => any;\n        '.node': (m: Module, filename: string) => any;\n    }\n    interface Module {\n        /**\n         * `true` if the module is running during the Node.js preload\n         */\n        isPreloading: boolean;\n        exports: any;\n        require: Require;\n        id: string;\n        filename: string;\n        loaded: boolean;\n        /** @deprecated since v14.6.0 Please use `require.main` and `module.children` instead. */\n        parent: Module | null | undefined;\n        children: Module[];\n        /**\n         * @since v11.14.0\n         *\n         * The directory name of the module. This is usually the same as the path.dirname() of the module.id.\n         */\n        path: string;\n        paths: string[];\n    }\n\n    interface Dict<T> {\n        [key: string]: T | undefined;\n    }\n\n    interface ReadOnlyDict<T> {\n        readonly [key: string]: T | undefined;\n    }\n}\n"
    },
    {
      "path": "/node_modules/@types/node/async_hooks.d.ts",
      "content": "/**\n * The `async_hooks` module provides an API to track asynchronous resources. It\n * can be accessed using:\n *\n * ```js\n * import async_hooks from 'async_hooks';\n * ```\n * @experimental\n * @see [source](https://github.com/nodejs/node/blob/v16.9.0/lib/async_hooks.js)\n */\ndeclare module 'async_hooks' {\n    /**\n     * ```js\n     * import { executionAsyncId } from 'async_hooks';\n     *\n     * console.log(executionAsyncId());  // 1 - bootstrap\n     * fs.open(path, 'r', (err, fd) => {\n     *   console.log(executionAsyncId());  // 6 - open()\n     * });\n     * ```\n     *\n     * The ID returned from `executionAsyncId()` is related to execution timing, not\n     * causality (which is covered by `triggerAsyncId()`):\n     *\n     * ```js\n     * const server = net.createServer((conn) => {\n     *   // Returns the ID of the server, not of the new connection, because the\n     *   // callback runs in the execution scope of the server's MakeCallback().\n     *   async_hooks.executionAsyncId();\n     *\n     * }).listen(port, () => {\n     *   // Returns the ID of a TickObject (process.nextTick()) because all\n     *   // callbacks passed to .listen() are wrapped in a nextTick().\n     *   async_hooks.executionAsyncId();\n     * });\n     * ```\n     *\n     * Promise contexts may not get precise `executionAsyncIds` by default.\n     * See the section on `promise execution tracking`.\n     * @since v8.1.0\n     * @return The `asyncId` of the current execution context. Useful to track when something calls.\n     */\n    function executionAsyncId(): number;\n    /**\n     * Resource objects returned by `executionAsyncResource()` are most often internal\n     * Node.js handle objects with undocumented APIs. Using any functions or properties\n     * on the object is likely to crash your application and should be avoided.\n     *\n     * Using `executionAsyncResource()` in the top-level execution context will\n     * return an empty object as there is no handle or request object to use,\n     * but having an object representing the top-level can be helpful.\n     *\n     * ```js\n     * import { open } from 'fs';\n     * import { executionAsyncId, executionAsyncResource } from 'async_hooks';\n     *\n     * console.log(executionAsyncId(), executionAsyncResource());  // 1 {}\n     * open(new URL(import.meta.url), 'r', (err, fd) => {\n     *   console.log(executionAsyncId(), executionAsyncResource());  // 7 FSReqWrap\n     * });\n     * ```\n     *\n     * This can be used to implement continuation local storage without the\n     * use of a tracking `Map` to store the metadata:\n     *\n     * ```js\n     * import { createServer } from 'http';\n     * import {\n     *   executionAsyncId,\n     *   executionAsyncResource,\n     *   createHook\n     * } from 'async_hooks';\n     * const sym = Symbol('state'); // Private symbol to avoid pollution\n     *\n     * createHook({\n     *   init(asyncId, type, triggerAsyncId, resource) {\n     *     const cr = executionAsyncResource();\n     *     if (cr) {\n     *       resource[sym] = cr[sym];\n     *     }\n     *   }\n     * }).enable();\n     *\n     * const server = createServer((req, res) => {\n     *   executionAsyncResource()[sym] = { state: req.url };\n     *   setTimeout(function() {\n     *     res.end(JSON.stringify(executionAsyncResource()[sym]));\n     *   }, 100);\n     * }).listen(3000);\n     * ```\n     * @since v13.9.0, v12.17.0\n     * @return The resource representing the current execution. Useful to store data within the resource.\n     */\n    function executionAsyncResource(): object;\n    /**\n     * ```js\n     * const server = net.createServer((conn) => {\n     *   // The resource that caused (or triggered) this callback to be called\n     *   // was that of the new connection. Thus the return value of triggerAsyncId()\n     *   // is the asyncId of \"conn\".\n     *   async_hooks.triggerAsyncId();\n     *\n     * }).listen(port, () => {\n     *   // Even though all callbacks passed to .listen() are wrapped in a nextTick()\n     *   // the callback itself exists because the call to the server's .listen()\n     *   // was made. So the return value would be the ID of the server.\n     *   async_hooks.triggerAsyncId();\n     * });\n     * ```\n     *\n     * Promise contexts may not get valid `triggerAsyncId`s by default. See\n     * the section on `promise execution tracking`.\n     * @return The ID of the resource responsible for calling the callback that is currently being executed.\n     */\n    function triggerAsyncId(): number;\n    interface HookCallbacks {\n        /**\n         * Called when a class is constructed that has the possibility to emit an asynchronous event.\n         * @param asyncId a unique ID for the async resource\n         * @param type the type of the async resource\n         * @param triggerAsyncId the unique ID of the async resource in whose execution context this async resource was created\n         * @param resource reference to the resource representing the async operation, needs to be released during destroy\n         */\n        init?(asyncId: number, type: string, triggerAsyncId: number, resource: object): void;\n        /**\n         * When an asynchronous operation is initiated or completes a callback is called to notify the user.\n         * The before callback is called just before said callback is executed.\n         * @param asyncId the unique identifier assigned to the resource about to execute the callback.\n         */\n        before?(asyncId: number): void;\n        /**\n         * Called immediately after the callback specified in before is completed.\n         * @param asyncId the unique identifier assigned to the resource which has executed the callback.\n         */\n        after?(asyncId: number): void;\n        /**\n         * Called when a promise has resolve() called. This may not be in the same execution id\n         * as the promise itself.\n         * @param asyncId the unique id for the promise that was resolve()d.\n         */\n        promiseResolve?(asyncId: number): void;\n        /**\n         * Called after the resource corresponding to asyncId is destroyed\n         * @param asyncId a unique ID for the async resource\n         */\n        destroy?(asyncId: number): void;\n    }\n    interface AsyncHook {\n        /**\n         * Enable the callbacks for a given AsyncHook instance. If no callbacks are provided enabling is a noop.\n         */\n        enable(): this;\n        /**\n         * Disable the callbacks for a given AsyncHook instance from the global pool of AsyncHook callbacks to be executed. Once a hook has been disabled it will not be called again until enabled.\n         */\n        disable(): this;\n    }\n    /**\n     * Registers functions to be called for different lifetime events of each async\n     * operation.\n     *\n     * The callbacks `init()`/`before()`/`after()`/`destroy()` are called for the\n     * respective asynchronous event during a resource's lifetime.\n     *\n     * All callbacks are optional. For example, if only resource cleanup needs to\n     * be tracked, then only the `destroy` callback needs to be passed. The\n     * specifics of all functions that can be passed to `callbacks` is in the `Hook Callbacks` section.\n     *\n     * ```js\n     * import { createHook } from 'async_hooks';\n     *\n     * const asyncHook = createHook({\n     *   init(asyncId, type, triggerAsyncId, resource) { },\n     *   destroy(asyncId) { }\n     * });\n     * ```\n     *\n     * The callbacks will be inherited via the prototype chain:\n     *\n     * ```js\n     * class MyAsyncCallbacks {\n     *   init(asyncId, type, triggerAsyncId, resource) { }\n     *   destroy(asyncId) {}\n     * }\n     *\n     * class MyAddedCallbacks extends MyAsyncCallbacks {\n     *   before(asyncId) { }\n     *   after(asyncId) { }\n     * }\n     *\n     * const asyncHook = async_hooks.createHook(new MyAddedCallbacks());\n     * ```\n     *\n     * Because promises are asynchronous resources whose lifecycle is tracked\n     * via the async hooks mechanism, the `init()`, `before()`, `after()`, and`destroy()` callbacks _must not_ be async functions that return promises.\n     * @since v8.1.0\n     * @param callbacks The `Hook Callbacks` to register\n     * @return Instance used for disabling and enabling hooks\n     */\n    function createHook(callbacks: HookCallbacks): AsyncHook;\n    interface AsyncResourceOptions {\n        /**\n         * The ID of the execution context that created this async event.\n         * @default executionAsyncId()\n         */\n        triggerAsyncId?: number | undefined;\n        /**\n         * Disables automatic `emitDestroy` when the object is garbage collected.\n         * This usually does not need to be set (even if `emitDestroy` is called\n         * manually), unless the resource's `asyncId` is retrieved and the\n         * sensitive API's `emitDestroy` is called with it.\n         * @default false\n         */\n        requireManualDestroy?: boolean | undefined;\n    }\n    /**\n     * The class `AsyncResource` is designed to be extended by the embedder's async\n     * resources. Using this, users can easily trigger the lifetime events of their\n     * own resources.\n     *\n     * The `init` hook will trigger when an `AsyncResource` is instantiated.\n     *\n     * The following is an overview of the `AsyncResource` API.\n     *\n     * ```js\n     * import { AsyncResource, executionAsyncId } from 'async_hooks';\n     *\n     * // AsyncResource() is meant to be extended. Instantiating a\n     * // new AsyncResource() also triggers init. If triggerAsyncId is omitted then\n     * // async_hook.executionAsyncId() is used.\n     * const asyncResource = new AsyncResource(\n     *   type, { triggerAsyncId: executionAsyncId(), requireManualDestroy: false }\n     * );\n     *\n     * // Run a function in the execution context of the resource. This will\n     * // * establish the context of the resource\n     * // * trigger the AsyncHooks before callbacks\n     * // * call the provided function `fn` with the supplied arguments\n     * // * trigger the AsyncHooks after callbacks\n     * // * restore the original execution context\n     * asyncResource.runInAsyncScope(fn, thisArg, ...args);\n     *\n     * // Call AsyncHooks destroy callbacks.\n     * asyncResource.emitDestroy();\n     *\n     * // Return the unique ID assigned to the AsyncResource instance.\n     * asyncResource.asyncId();\n     *\n     * // Return the trigger ID for the AsyncResource instance.\n     * asyncResource.triggerAsyncId();\n     * ```\n     */\n    class AsyncResource {\n        /**\n         * AsyncResource() is meant to be extended. Instantiating a\n         * new AsyncResource() also triggers init. If triggerAsyncId is omitted then\n         * async_hook.executionAsyncId() is used.\n         * @param type The type of async event.\n         * @param triggerAsyncId The ID of the execution context that created\n         *   this async event (default: `executionAsyncId()`), or an\n         *   AsyncResourceOptions object (since v9.3.0)\n         */\n        constructor(type: string, triggerAsyncId?: number | AsyncResourceOptions);\n        /**\n         * Binds the given function to the current execution context.\n         *\n         * The returned function will have an `asyncResource` property referencing\n         * the `AsyncResource` to which the function is bound.\n         * @since v14.8.0, v12.19.0\n         * @param fn The function to bind to the current execution context.\n         * @param type An optional name to associate with the underlying `AsyncResource`.\n         */\n        static bind<Func extends (this: ThisArg, ...args: any[]) => any, ThisArg>(\n            fn: Func,\n            type?: string,\n            thisArg?: ThisArg\n        ): Func & {\n            asyncResource: AsyncResource;\n        };\n        /**\n         * Binds the given function to execute to this `AsyncResource`'s scope.\n         *\n         * The returned function will have an `asyncResource` property referencing\n         * the `AsyncResource` to which the function is bound.\n         * @since v14.8.0, v12.19.0\n         * @param fn The function to bind to the current `AsyncResource`.\n         */\n        bind<Func extends (...args: any[]) => any>(\n            fn: Func\n        ): Func & {\n            asyncResource: AsyncResource;\n        };\n        /**\n         * Call the provided function with the provided arguments in the execution context\n         * of the async resource. This will establish the context, trigger the AsyncHooks\n         * before callbacks, call the function, trigger the AsyncHooks after callbacks, and\n         * then restore the original execution context.\n         * @since v9.6.0\n         * @param fn The function to call in the execution context of this async resource.\n         * @param thisArg The receiver to be used for the function call.\n         * @param args Optional arguments to pass to the function.\n         */\n        runInAsyncScope<This, Result>(fn: (this: This, ...args: any[]) => Result, thisArg?: This, ...args: any[]): Result;\n        /**\n         * Call all `destroy` hooks. This should only ever be called once. An error will\n         * be thrown if it is called more than once. This **must** be manually called. If\n         * the resource is left to be collected by the GC then the `destroy` hooks will\n         * never be called.\n         * @return A reference to `asyncResource`.\n         */\n        emitDestroy(): this;\n        /**\n         * @return The unique `asyncId` assigned to the resource.\n         */\n        asyncId(): number;\n        /**\n         *\n         * @return The same `triggerAsyncId` that is passed to the `AsyncResource` constructor.\n         */\n        triggerAsyncId(): number;\n    }\n    /**\n     * This class creates stores that stay coherent through asynchronous operations.\n     *\n     * While you can create your own implementation on top of the `async_hooks` module,`AsyncLocalStorage` should be preferred as it is a performant and memory safe\n     * implementation that involves significant optimizations that are non-obvious to\n     * implement.\n     *\n     * The following example uses `AsyncLocalStorage` to build a simple logger\n     * that assigns IDs to incoming HTTP requests and includes them in messages\n     * logged within each request.\n     *\n     * ```js\n     * import http from 'http';\n     * import { AsyncLocalStorage } from 'async_hooks';\n     *\n     * const asyncLocalStorage = new AsyncLocalStorage();\n     *\n     * function logWithId(msg) {\n     *   const id = asyncLocalStorage.getStore();\n     *   console.log(`${id !== undefined ? id : '-'}:`, msg);\n     * }\n     *\n     * let idSeq = 0;\n     * http.createServer((req, res) => {\n     *   asyncLocalStorage.run(idSeq++, () => {\n     *     logWithId('start');\n     *     // Imagine any chain of async operations here\n     *     setImmediate(() => {\n     *       logWithId('finish');\n     *       res.end();\n     *     });\n     *   });\n     * }).listen(8080);\n     *\n     * http.get('http://localhost:8080');\n     * http.get('http://localhost:8080');\n     * // Prints:\n     * //   0: start\n     * //   1: start\n     * //   0: finish\n     * //   1: finish\n     * ```\n     *\n     * Each instance of `AsyncLocalStorage` maintains an independent storage context.\n     * Multiple instances can safely exist simultaneously without risk of interfering\n     * with each other data.\n     * @since v13.10.0, v12.17.0\n     */\n    class AsyncLocalStorage<T> {\n        /**\n         * Disables the instance of `AsyncLocalStorage`. All subsequent calls\n         * to `asyncLocalStorage.getStore()` will return `undefined` until`asyncLocalStorage.run()` or `asyncLocalStorage.enterWith()` is called again.\n         *\n         * When calling `asyncLocalStorage.disable()`, all current contexts linked to the\n         * instance will be exited.\n         *\n         * Calling `asyncLocalStorage.disable()` is required before the`asyncLocalStorage` can be garbage collected. This does not apply to stores\n         * provided by the `asyncLocalStorage`, as those objects are garbage collected\n         * along with the corresponding async resources.\n         *\n         * Use this method when the `asyncLocalStorage` is not in use anymore\n         * in the current process.\n         * @since v13.10.0, v12.17.0\n         * @experimental\n         */\n        disable(): void;\n        /**\n         * Returns the current store.\n         * If called outside of an asynchronous context initialized by\n         * calling `asyncLocalStorage.run()` or `asyncLocalStorage.enterWith()`, it\n         * returns `undefined`.\n         * @since v13.10.0, v12.17.0\n         */\n        getStore(): T | undefined;\n        /**\n         * Runs a function synchronously within a context and returns its\n         * return value. The store is not accessible outside of the callback function or\n         * the asynchronous operations created within the callback.\n         *\n         * The optional `args` are passed to the callback function.\n         *\n         * If the callback function throws an error, the error is thrown by `run()` too.\n         * The stacktrace is not impacted by this call and the context is exited.\n         *\n         * Example:\n         *\n         * ```js\n         * const store = { id: 2 };\n         * try {\n         *   asyncLocalStorage.run(store, () => {\n         *     asyncLocalStorage.getStore(); // Returns the store object\n         *     throw new Error();\n         *   });\n         * } catch (e) {\n         *   asyncLocalStorage.getStore(); // Returns undefined\n         *   // The error will be caught here\n         * }\n         * ```\n         * @since v13.10.0, v12.17.0\n         */\n        run<R, TArgs extends any[]>(store: T, callback: (...args: TArgs) => R, ...args: TArgs): R;\n        /**\n         * Runs a function synchronously outside of a context and returns its\n         * return value. The store is not accessible within the callback function or\n         * the asynchronous operations created within the callback. Any `getStore()`call done within the callback function will always return `undefined`.\n         *\n         * The optional `args` are passed to the callback function.\n         *\n         * If the callback function throws an error, the error is thrown by `exit()` too.\n         * The stacktrace is not impacted by this call and the context is re-entered.\n         *\n         * Example:\n         *\n         * ```js\n         * // Within a call to run\n         * try {\n         *   asyncLocalStorage.getStore(); // Returns the store object or value\n         *   asyncLocalStorage.exit(() => {\n         *     asyncLocalStorage.getStore(); // Returns undefined\n         *     throw new Error();\n         *   });\n         * } catch (e) {\n         *   asyncLocalStorage.getStore(); // Returns the same object or value\n         *   // The error will be caught here\n         * }\n         * ```\n         * @since v13.10.0, v12.17.0\n         * @experimental\n         */\n        exit<R, TArgs extends any[]>(callback: (...args: TArgs) => R, ...args: TArgs): R;\n        /**\n         * Transitions into the context for the remainder of the current\n         * synchronous execution and then persists the store through any following\n         * asynchronous calls.\n         *\n         * Example:\n         *\n         * ```js\n         * const store = { id: 1 };\n         * // Replaces previous store with the given store object\n         * asyncLocalStorage.enterWith(store);\n         * asyncLocalStorage.getStore(); // Returns the store object\n         * someAsyncOperation(() => {\n         *   asyncLocalStorage.getStore(); // Returns the same object\n         * });\n         * ```\n         *\n         * This transition will continue for the _entire_ synchronous execution.\n         * This means that if, for example, the context is entered within an event\n         * handler subsequent event handlers will also run within that context unless\n         * specifically bound to another context with an `AsyncResource`. That is why`run()` should be preferred over `enterWith()` unless there are strong reasons\n         * to use the latter method.\n         *\n         * ```js\n         * const store = { id: 1 };\n         *\n         * emitter.on('my-event', () => {\n         *   asyncLocalStorage.enterWith(store);\n         * });\n         * emitter.on('my-event', () => {\n         *   asyncLocalStorage.getStore(); // Returns the same object\n         * });\n         *\n         * asyncLocalStorage.getStore(); // Returns undefined\n         * emitter.emit('my-event');\n         * asyncLocalStorage.getStore(); // Returns the same object\n         * ```\n         * @since v13.11.0, v12.17.0\n         * @experimental\n         */\n        enterWith(store: T): void;\n    }\n}\ndeclare module 'node:async_hooks' {\n    export * from 'async_hooks';\n}\n"
    },
    {
      "path": "/node_modules/@types/node/buffer.d.ts",
      "content": "/**\n * `Buffer` objects are used to represent a fixed-length sequence of bytes. Many\n * Node.js APIs support `Buffer`s.\n *\n * The `Buffer` class is a subclass of JavaScript's [`Uint8Array`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint8Array) class and\n * extends it with methods that cover additional use cases. Node.js APIs accept\n * plain [`Uint8Array`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint8Array) s wherever `Buffer`s are supported as well.\n *\n * While the `Buffer` class is available within the global scope, it is still\n * recommended to explicitly reference it via an import or require statement.\n *\n * ```js\n * import { Buffer } from 'buffer';\n *\n * // Creates a zero-filled Buffer of length 10.\n * const buf1 = Buffer.alloc(10);\n *\n * // Creates a Buffer of length 10,\n * // filled with bytes which all have the value `1`.\n * const buf2 = Buffer.alloc(10, 1);\n *\n * // Creates an uninitialized buffer of length 10.\n * // This is faster than calling Buffer.alloc() but the returned\n * // Buffer instance might contain old data that needs to be\n * // overwritten using fill(), write(), or other functions that fill the Buffer's\n * // contents.\n * const buf3 = Buffer.allocUnsafe(10);\n *\n * // Creates a Buffer containing the bytes [1, 2, 3].\n * const buf4 = Buffer.from([1, 2, 3]);\n *\n * // Creates a Buffer containing the bytes [1, 1, 1, 1] – the entries\n * // are all truncated using `(value &#x26; 255)` to fit into the range 0–255.\n * const buf5 = Buffer.from([257, 257.5, -255, '1']);\n *\n * // Creates a Buffer containing the UTF-8-encoded bytes for the string 'tést':\n * // [0x74, 0xc3, 0xa9, 0x73, 0x74] (in hexadecimal notation)\n * // [116, 195, 169, 115, 116] (in decimal notation)\n * const buf6 = Buffer.from('tést');\n *\n * // Creates a Buffer containing the Latin-1 bytes [0x74, 0xe9, 0x73, 0x74].\n * const buf7 = Buffer.from('tést', 'latin1');\n * ```\n * @see [source](https://github.com/nodejs/node/blob/v16.9.0/lib/buffer.js)\n */\ndeclare module 'buffer' {\n    import { BinaryLike } from 'node:crypto';\n    import { ReadableStream as WebReadableStream } from 'node:stream/web';\n    export const INSPECT_MAX_BYTES: number;\n    export const kMaxLength: number;\n    export const kStringMaxLength: number;\n    export const constants: {\n        MAX_LENGTH: number;\n        MAX_STRING_LENGTH: number;\n    };\n    export type TranscodeEncoding = 'ascii' | 'utf8' | 'utf16le' | 'ucs2' | 'latin1' | 'binary';\n    /**\n     * Re-encodes the given `Buffer` or `Uint8Array` instance from one character\n     * encoding to another. Returns a new `Buffer` instance.\n     *\n     * Throws if the `fromEnc` or `toEnc` specify invalid character encodings or if\n     * conversion from `fromEnc` to `toEnc` is not permitted.\n     *\n     * Encodings supported by `buffer.transcode()` are: `'ascii'`, `'utf8'`,`'utf16le'`, `'ucs2'`, `'latin1'`, and `'binary'`.\n     *\n     * The transcoding process will use substitution characters if a given byte\n     * sequence cannot be adequately represented in the target encoding. For instance:\n     *\n     * ```js\n     * import { Buffer, transcode } from 'buffer';\n     *\n     * const newBuf = transcode(Buffer.from('€'), 'utf8', 'ascii');\n     * console.log(newBuf.toString('ascii'));\n     * // Prints: '?'\n     * ```\n     *\n     * Because the Euro (`€`) sign is not representable in US-ASCII, it is replaced\n     * with `?` in the transcoded `Buffer`.\n     * @since v7.1.0\n     * @param source A `Buffer` or `Uint8Array` instance.\n     * @param fromEnc The current encoding.\n     * @param toEnc To target encoding.\n     */\n    export function transcode(source: Uint8Array, fromEnc: TranscodeEncoding, toEnc: TranscodeEncoding): Buffer;\n    export const SlowBuffer: {\n        /** @deprecated since v6.0.0, use `Buffer.allocUnsafeSlow()` */\n        new (size: number): Buffer;\n        prototype: Buffer;\n    };\n    /**\n     * Resolves a `'blob:nodedata:...'` an associated `Blob` object registered using\n     * a prior call to `URL.createObjectURL()`.\n     * @since v16.7.0\n     * @experimental\n     * @param id A `'blob:nodedata:...` URL string returned by a prior call to `URL.createObjectURL()`.\n     */\n    export function resolveObjectURL(id: string): Blob | undefined;\n    export { Buffer };\n    /**\n     * @experimental\n     */\n    export interface BlobOptions {\n        /**\n         * @default 'utf8'\n         */\n        encoding?: BufferEncoding | undefined;\n        /**\n         * The Blob content-type. The intent is for `type` to convey\n         * the MIME media type of the data, however no validation of the type format\n         * is performed.\n         */\n        type?: string | undefined;\n    }\n    /**\n     * A [`Blob`](https://developer.mozilla.org/en-US/docs/Web/API/Blob) encapsulates immutable, raw data that can be safely shared across\n     * multiple worker threads.\n     * @since v15.7.0\n     * @experimental\n     */\n    export class Blob {\n        /**\n         * The total size of the `Blob` in bytes.\n         * @since v15.7.0\n         */\n        readonly size: number;\n        /**\n         * The content-type of the `Blob`.\n         * @since v15.7.0\n         */\n        readonly type: string;\n        /**\n         * Creates a new `Blob` object containing a concatenation of the given sources.\n         *\n         * {ArrayBuffer}, {TypedArray}, {DataView}, and {Buffer} sources are copied into\n         * the 'Blob' and can therefore be safely modified after the 'Blob' is created.\n         *\n         * String sources are also copied into the `Blob`.\n         */\n        constructor(sources: Array<BinaryLike | Blob>, options?: BlobOptions);\n        /**\n         * Returns a promise that fulfills with an [ArrayBuffer](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer) containing a copy of\n         * the `Blob` data.\n         * @since v15.7.0\n         */\n        arrayBuffer(): Promise<ArrayBuffer>;\n        /**\n         * Creates and returns a new `Blob` containing a subset of this `Blob` objects\n         * data. The original `Blob` is not altered.\n         * @since v15.7.0\n         * @param start The starting index.\n         * @param end The ending index.\n         * @param type The content-type for the new `Blob`\n         */\n        slice(start?: number, end?: number, type?: string): Blob;\n        /**\n         * Returns a promise that fulfills with the contents of the `Blob` decoded as a\n         * UTF-8 string.\n         * @since v15.7.0\n         */\n        text(): Promise<string>;\n        /**\n         * Returns a new (WHATWG) `ReadableStream` that allows the content of the `Blob` to be read.\n         * @since v16.7.0\n         */\n        stream(): WebReadableStream;\n    }\n    export import atob = globalThis.atob;\n    export import btoa = globalThis.btoa;\n    global {\n        // Buffer class\n        type BufferEncoding = 'ascii' | 'utf8' | 'utf-8' | 'utf16le' | 'ucs2' | 'ucs-2' | 'base64' | 'base64url' | 'latin1' | 'binary' | 'hex';\n        type WithImplicitCoercion<T> =\n            | T\n            | {\n                  valueOf(): T;\n              };\n        /**\n         * Raw data is stored in instances of the Buffer class.\n         * A Buffer is similar to an array of integers but corresponds to a raw memory allocation outside the V8 heap.  A Buffer cannot be resized.\n         * Valid string encodings: 'ascii'|'utf8'|'utf16le'|'ucs2'(alias of 'utf16le')|'base64'|'base64url'|'binary'(deprecated)|'hex'\n         */\n        interface BufferConstructor {\n            /**\n             * Allocates a new buffer containing the given {str}.\n             *\n             * @param str String to store in buffer.\n             * @param encoding encoding to use, optional.  Default is 'utf8'\n             * @deprecated since v10.0.0 - Use `Buffer.from(string[, encoding])` instead.\n             */\n            new (str: string, encoding?: BufferEncoding): Buffer;\n            /**\n             * Allocates a new buffer of {size} octets.\n             *\n             * @param size count of octets to allocate.\n             * @deprecated since v10.0.0 - Use `Buffer.alloc()` instead (also see `Buffer.allocUnsafe()`).\n             */\n            new (size: number): Buffer;\n            /**\n             * Allocates a new buffer containing the given {array} of octets.\n             *\n             * @param array The octets to store.\n             * @deprecated since v10.0.0 - Use `Buffer.from(array)` instead.\n             */\n            new (array: Uint8Array): Buffer;\n            /**\n             * Produces a Buffer backed by the same allocated memory as\n             * the given {ArrayBuffer}/{SharedArrayBuffer}.\n             *\n             *\n             * @param arrayBuffer The ArrayBuffer with which to share memory.\n             * @deprecated since v10.0.0 - Use `Buffer.from(arrayBuffer[, byteOffset[, length]])` instead.\n             */\n            new (arrayBuffer: ArrayBuffer | SharedArrayBuffer): Buffer;\n            /**\n             * Allocates a new buffer containing the given {array} of octets.\n             *\n             * @param array The octets to store.\n             * @deprecated since v10.0.0 - Use `Buffer.from(array)` instead.\n             */\n            new (array: ReadonlyArray<any>): Buffer;\n            /**\n             * Copies the passed {buffer} data onto a new {Buffer} instance.\n             *\n             * @param buffer The buffer to copy.\n             * @deprecated since v10.0.0 - Use `Buffer.from(buffer)` instead.\n             */\n            new (buffer: Buffer): Buffer;\n            /**\n             * Allocates a new `Buffer` using an `array` of bytes in the range `0` – `255`.\n             * Array entries outside that range will be truncated to fit into it.\n             *\n             * ```js\n             * import { Buffer } from 'buffer';\n             *\n             * // Creates a new Buffer containing the UTF-8 bytes of the string 'buffer'.\n             * const buf = Buffer.from([0x62, 0x75, 0x66, 0x66, 0x65, 0x72]);\n             * ```\n             *\n             * A `TypeError` will be thrown if `array` is not an `Array` or another type\n             * appropriate for `Buffer.from()` variants.\n             *\n             * `Buffer.from(array)` and `Buffer.from(string)` may also use the internal`Buffer` pool like `Buffer.allocUnsafe()` does.\n             * @since v5.10.0\n             */\n            from(arrayBuffer: WithImplicitCoercion<ArrayBuffer | SharedArrayBuffer>, byteOffset?: number, length?: number): Buffer;\n            /**\n             * Creates a new Buffer using the passed {data}\n             * @param data data to create a new Buffer\n             */\n            from(data: Uint8Array | ReadonlyArray<number>): Buffer;\n            from(data: WithImplicitCoercion<Uint8Array | ReadonlyArray<number> | string>): Buffer;\n            /**\n             * Creates a new Buffer containing the given JavaScript string {str}.\n             * If provided, the {encoding} parameter identifies the character encoding.\n             * If not provided, {encoding} defaults to 'utf8'.\n             */\n            from(\n                str:\n                    | WithImplicitCoercion<string>\n                    | {\n                          [Symbol.toPrimitive](hint: 'string'): string;\n                      },\n                encoding?: BufferEncoding\n            ): Buffer;\n            /**\n             * Creates a new Buffer using the passed {data}\n             * @param values to create a new Buffer\n             */\n            of(...items: number[]): Buffer;\n            /**\n             * Returns `true` if `obj` is a `Buffer`, `false` otherwise.\n             *\n             * ```js\n             * import { Buffer } from 'buffer';\n             *\n             * Buffer.isBuffer(Buffer.alloc(10)); // true\n             * Buffer.isBuffer(Buffer.from('foo')); // true\n             * Buffer.isBuffer('a string'); // false\n             * Buffer.isBuffer([]); // false\n             * Buffer.isBuffer(new Uint8Array(1024)); // false\n             * ```\n             * @since v0.1.101\n             */\n            isBuffer(obj: any): obj is Buffer;\n            /**\n             * Returns `true` if `encoding` is the name of a supported character encoding,\n             * or `false` otherwise.\n             *\n             * ```js\n             * import { Buffer } from 'buffer';\n             *\n             * console.log(Buffer.isEncoding('utf8'));\n             * // Prints: true\n             *\n             * console.log(Buffer.isEncoding('hex'));\n             * // Prints: true\n             *\n             * console.log(Buffer.isEncoding('utf/8'));\n             * // Prints: false\n             *\n             * console.log(Buffer.isEncoding(''));\n             * // Prints: false\n             * ```\n             * @since v0.9.1\n             * @param encoding A character encoding name to check.\n             */\n            isEncoding(encoding: string): encoding is BufferEncoding;\n            /**\n             * Returns the byte length of a string when encoded using `encoding`.\n             * This is not the same as [`String.prototype.length`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/length), which does not account\n             * for the encoding that is used to convert the string into bytes.\n             *\n             * For `'base64'`, `'base64url'`, and `'hex'`, this function assumes valid input.\n             * For strings that contain non-base64/hex-encoded data (e.g. whitespace), the\n             * return value might be greater than the length of a `Buffer` created from the\n             * string.\n             *\n             * ```js\n             * import { Buffer } from 'buffer';\n             *\n             * const str = '\\u00bd + \\u00bc = \\u00be';\n             *\n             * console.log(`${str}: ${str.length} characters, ` +\n             *             `${Buffer.byteLength(str, 'utf8')} bytes`);\n             * // Prints: ½ + ¼ = ¾: 9 characters, 12 bytes\n             * ```\n             *\n             * When `string` is a\n             * `Buffer`/[`DataView`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DataView)/[`TypedArray`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/-\n             * Reference/Global_Objects/TypedArray)/[`ArrayBuffer`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer)/[`SharedArrayBuffer`](https://develop-\n             * er.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer), the byte length as reported by `.byteLength`is returned.\n             * @since v0.1.90\n             * @param string A value to calculate the length of.\n             * @param [encoding='utf8'] If `string` is a string, this is its encoding.\n             * @return The number of bytes contained within `string`.\n             */\n            byteLength(string: string | NodeJS.ArrayBufferView | ArrayBuffer | SharedArrayBuffer, encoding?: BufferEncoding): number;\n            /**\n             * Returns a new `Buffer` which is the result of concatenating all the `Buffer`instances in the `list` together.\n             *\n             * If the list has no items, or if the `totalLength` is 0, then a new zero-length`Buffer` is returned.\n             *\n             * If `totalLength` is not provided, it is calculated from the `Buffer` instances\n             * in `list` by adding their lengths.\n             *\n             * If `totalLength` is provided, it is coerced to an unsigned integer. If the\n             * combined length of the `Buffer`s in `list` exceeds `totalLength`, the result is\n             * truncated to `totalLength`.\n             *\n             * ```js\n             * import { Buffer } from 'buffer';\n             *\n             * // Create a single `Buffer` from a list of three `Buffer` instances.\n             *\n             * const buf1 = Buffer.alloc(10);\n             * const buf2 = Buffer.alloc(14);\n             * const buf3 = Buffer.alloc(18);\n             * const totalLength = buf1.length + buf2.length + buf3.length;\n             *\n             * console.log(totalLength);\n             * // Prints: 42\n             *\n             * const bufA = Buffer.concat([buf1, buf2, buf3], totalLength);\n             *\n             * console.log(bufA);\n             * // Prints: <Buffer 00 00 00 00 ...>\n             * console.log(bufA.length);\n             * // Prints: 42\n             * ```\n             *\n             * `Buffer.concat()` may also use the internal `Buffer` pool like `Buffer.allocUnsafe()` does.\n             * @since v0.7.11\n             * @param list List of `Buffer` or {@link Uint8Array} instances to concatenate.\n             * @param totalLength Total length of the `Buffer` instances in `list` when concatenated.\n             */\n            concat(list: ReadonlyArray<Uint8Array>, totalLength?: number): Buffer;\n            /**\n             * Compares `buf1` to `buf2`, typically for the purpose of sorting arrays of`Buffer` instances. This is equivalent to calling `buf1.compare(buf2)`.\n             *\n             * ```js\n             * import { Buffer } from 'buffer';\n             *\n             * const buf1 = Buffer.from('1234');\n             * const buf2 = Buffer.from('0123');\n             * const arr = [buf1, buf2];\n             *\n             * console.log(arr.sort(Buffer.compare));\n             * // Prints: [ <Buffer 30 31 32 33>, <Buffer 31 32 33 34> ]\n             * // (This result is equal to: [buf2, buf1].)\n             * ```\n             * @since v0.11.13\n             * @return Either `-1`, `0`, or `1`, depending on the result of the comparison. See `compare` for details.\n             */\n            compare(buf1: Uint8Array, buf2: Uint8Array): number;\n            /**\n             * Allocates a new `Buffer` of `size` bytes. If `fill` is `undefined`, the`Buffer` will be zero-filled.\n             *\n             * ```js\n             * import { Buffer } from 'buffer';\n             *\n             * const buf = Buffer.alloc(5);\n             *\n             * console.log(buf);\n             * // Prints: <Buffer 00 00 00 00 00>\n             * ```\n             *\n             * If `size` is larger than {@link constants.MAX_LENGTH} or smaller than 0, `ERR_INVALID_ARG_VALUE` is thrown.\n             *\n             * If `fill` is specified, the allocated `Buffer` will be initialized by calling `buf.fill(fill)`.\n             *\n             * ```js\n             * import { Buffer } from 'buffer';\n             *\n             * const buf = Buffer.alloc(5, 'a');\n             *\n             * console.log(buf);\n             * // Prints: <Buffer 61 61 61 61 61>\n             * ```\n             *\n             * If both `fill` and `encoding` are specified, the allocated `Buffer` will be\n             * initialized by calling `buf.fill(fill, encoding)`.\n             *\n             * ```js\n             * import { Buffer } from 'buffer';\n             *\n             * const buf = Buffer.alloc(11, 'aGVsbG8gd29ybGQ=', 'base64');\n             *\n             * console.log(buf);\n             * // Prints: <Buffer 68 65 6c 6c 6f 20 77 6f 72 6c 64>\n             * ```\n             *\n             * Calling `Buffer.alloc()` can be measurably slower than the alternative `Buffer.allocUnsafe()` but ensures that the newly created `Buffer` instance\n             * contents will never contain sensitive data from previous allocations, including\n             * data that might not have been allocated for `Buffer`s.\n             *\n             * A `TypeError` will be thrown if `size` is not a number.\n             * @since v5.10.0\n             * @param size The desired length of the new `Buffer`.\n             * @param [fill=0] A value to pre-fill the new `Buffer` with.\n             * @param [encoding='utf8'] If `fill` is a string, this is its encoding.\n             */\n            alloc(size: number, fill?: string | Buffer | number, encoding?: BufferEncoding): Buffer;\n            /**\n             * Allocates a new `Buffer` of `size` bytes. If `size` is larger than {@link constants.MAX_LENGTH} or smaller than 0, `ERR_INVALID_ARG_VALUE` is thrown.\n             *\n             * The underlying memory for `Buffer` instances created in this way is _not_\n             * _initialized_. The contents of the newly created `Buffer` are unknown and_may contain sensitive data_. Use `Buffer.alloc()` instead to initialize`Buffer` instances with zeroes.\n             *\n             * ```js\n             * import { Buffer } from 'buffer';\n             *\n             * const buf = Buffer.allocUnsafe(10);\n             *\n             * console.log(buf);\n             * // Prints (contents may vary): <Buffer a0 8b 28 3f 01 00 00 00 50 32>\n             *\n             * buf.fill(0);\n             *\n             * console.log(buf);\n             * // Prints: <Buffer 00 00 00 00 00 00 00 00 00 00>\n             * ```\n             *\n             * A `TypeError` will be thrown if `size` is not a number.\n             *\n             * The `Buffer` module pre-allocates an internal `Buffer` instance of\n             * size `Buffer.poolSize` that is used as a pool for the fast allocation of new`Buffer` instances created using `Buffer.allocUnsafe()`,`Buffer.from(array)`, `Buffer.concat()`, and the\n             * deprecated`new Buffer(size)` constructor only when `size` is less than or equal\n             * to `Buffer.poolSize >> 1` (floor of `Buffer.poolSize` divided by two).\n             *\n             * Use of this pre-allocated internal memory pool is a key difference between\n             * calling `Buffer.alloc(size, fill)` vs. `Buffer.allocUnsafe(size).fill(fill)`.\n             * Specifically, `Buffer.alloc(size, fill)` will _never_ use the internal `Buffer`pool, while `Buffer.allocUnsafe(size).fill(fill)`_will_ use the internal`Buffer` pool if `size` is less\n             * than or equal to half `Buffer.poolSize`. The\n             * difference is subtle but can be important when an application requires the\n             * additional performance that `Buffer.allocUnsafe()` provides.\n             * @since v5.10.0\n             * @param size The desired length of the new `Buffer`.\n             */\n            allocUnsafe(size: number): Buffer;\n            /**\n             * Allocates a new `Buffer` of `size` bytes. If `size` is larger than {@link constants.MAX_LENGTH} or smaller than 0, `ERR_INVALID_ARG_VALUE` is thrown. A zero-length `Buffer` is created\n             * if `size` is 0.\n             *\n             * The underlying memory for `Buffer` instances created in this way is _not_\n             * _initialized_. The contents of the newly created `Buffer` are unknown and_may contain sensitive data_. Use `buf.fill(0)` to initialize\n             * such `Buffer` instances with zeroes.\n             *\n             * When using `Buffer.allocUnsafe()` to allocate new `Buffer` instances,\n             * allocations under 4 KB are sliced from a single pre-allocated `Buffer`. This\n             * allows applications to avoid the garbage collection overhead of creating many\n             * individually allocated `Buffer` instances. This approach improves both\n             * performance and memory usage by eliminating the need to track and clean up as\n             * many individual `ArrayBuffer` objects.\n             *\n             * However, in the case where a developer may need to retain a small chunk of\n             * memory from a pool for an indeterminate amount of time, it may be appropriate\n             * to create an un-pooled `Buffer` instance using `Buffer.allocUnsafeSlow()` and\n             * then copying out the relevant bits.\n             *\n             * ```js\n             * import { Buffer } from 'buffer';\n             *\n             * // Need to keep around a few small chunks of memory.\n             * const store = [];\n             *\n             * socket.on('readable', () => {\n             *   let data;\n             *   while (null !== (data = readable.read())) {\n             *     // Allocate for retained data.\n             *     const sb = Buffer.allocUnsafeSlow(10);\n             *\n             *     // Copy the data into the new allocation.\n             *     data.copy(sb, 0, 0, 10);\n             *\n             *     store.push(sb);\n             *   }\n             * });\n             * ```\n             *\n             * A `TypeError` will be thrown if `size` is not a number.\n             * @since v5.12.0\n             * @param size The desired length of the new `Buffer`.\n             */\n            allocUnsafeSlow(size: number): Buffer;\n            /**\n             * This is the size (in bytes) of pre-allocated internal `Buffer` instances used\n             * for pooling. This value may be modified.\n             * @since v0.11.3\n             */\n            poolSize: number;\n        }\n        interface Buffer extends Uint8Array {\n            /**\n             * Writes `string` to `buf` at `offset` according to the character encoding in`encoding`. The `length` parameter is the number of bytes to write. If `buf` did\n             * not contain enough space to fit the entire string, only part of `string` will be\n             * written. However, partially encoded characters will not be written.\n             *\n             * ```js\n             * import { Buffer } from 'buffer';\n             *\n             * const buf = Buffer.alloc(256);\n             *\n             * const len = buf.write('\\u00bd + \\u00bc = \\u00be', 0);\n             *\n             * console.log(`${len} bytes: ${buf.toString('utf8', 0, len)}`);\n             * // Prints: 12 bytes: ½ + ¼ = ¾\n             *\n             * const buffer = Buffer.alloc(10);\n             *\n             * const length = buffer.write('abcd', 8);\n             *\n             * console.log(`${length} bytes: ${buffer.toString('utf8', 8, 10)}`);\n             * // Prints: 2 bytes : ab\n             * ```\n             * @since v0.1.90\n             * @param string String to write to `buf`.\n             * @param [offset=0] Number of bytes to skip before starting to write `string`.\n             * @param [length=buf.length - offset] Maximum number of bytes to write (written bytes will not exceed `buf.length - offset`).\n             * @param [encoding='utf8'] The character encoding of `string`.\n             * @return Number of bytes written.\n             */\n            write(string: string, encoding?: BufferEncoding): number;\n            write(string: string, offset: number, encoding?: BufferEncoding): number;\n            write(string: string, offset: number, length: number, encoding?: BufferEncoding): number;\n            /**\n             * Decodes `buf` to a string according to the specified character encoding in`encoding`. `start` and `end` may be passed to decode only a subset of `buf`.\n             *\n             * If `encoding` is `'utf8'` and a byte sequence in the input is not valid UTF-8,\n             * then each invalid byte is replaced with the replacement character `U+FFFD`.\n             *\n             * The maximum length of a string instance (in UTF-16 code units) is available\n             * as {@link constants.MAX_STRING_LENGTH}.\n             *\n             * ```js\n             * import { Buffer } from 'buffer';\n             *\n             * const buf1 = Buffer.allocUnsafe(26);\n             *\n             * for (let i = 0; i < 26; i++) {\n             *   // 97 is the decimal ASCII value for 'a'.\n             *   buf1[i] = i + 97;\n             * }\n             *\n             * console.log(buf1.toString('utf8'));\n             * // Prints: abcdefghijklmnopqrstuvwxyz\n             * console.log(buf1.toString('utf8', 0, 5));\n             * // Prints: abcde\n             *\n             * const buf2 = Buffer.from('tést');\n             *\n             * console.log(buf2.toString('hex'));\n             * // Prints: 74c3a97374\n             * console.log(buf2.toString('utf8', 0, 3));\n             * // Prints: té\n             * console.log(buf2.toString(undefined, 0, 3));\n             * // Prints: té\n             * ```\n             * @since v0.1.90\n             * @param [encoding='utf8'] The character encoding to use.\n             * @param [start=0] The byte offset to start decoding at.\n             * @param [end=buf.length] The byte offset to stop decoding at (not inclusive).\n             */\n            toString(encoding?: BufferEncoding, start?: number, end?: number): string;\n            /**\n             * Returns a JSON representation of `buf`. [`JSON.stringify()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify) implicitly calls\n             * this function when stringifying a `Buffer` instance.\n             *\n             * `Buffer.from()` accepts objects in the format returned from this method.\n             * In particular, `Buffer.from(buf.toJSON())` works like `Buffer.from(buf)`.\n             *\n             * ```js\n             * import { Buffer } from 'buffer';\n             *\n             * const buf = Buffer.from([0x1, 0x2, 0x3, 0x4, 0x5]);\n             * const json = JSON.stringify(buf);\n             *\n             * console.log(json);\n             * // Prints: {\"type\":\"Buffer\",\"data\":[1,2,3,4,5]}\n             *\n             * const copy = JSON.parse(json, (key, value) => {\n             *   return value &#x26;&#x26; value.type === 'Buffer' ?\n             *     Buffer.from(value) :\n             *     value;\n             * });\n             *\n             * console.log(copy);\n             * // Prints: <Buffer 01 02 03 04 05>\n             * ```\n             * @since v0.9.2\n             */\n            toJSON(): {\n                type: 'Buffer';\n                data: number[];\n            };\n            /**\n             * Returns `true` if both `buf` and `otherBuffer` have exactly the same bytes,`false` otherwise. Equivalent to `buf.compare(otherBuffer) === 0`.\n             *\n             * ```js\n             * import { Buffer } from 'buffer';\n             *\n             * const buf1 = Buffer.from('ABC');\n             * const buf2 = Buffer.from('414243', 'hex');\n             * const buf3 = Buffer.from('ABCD');\n             *\n             * console.log(buf1.equals(buf2));\n             * // Prints: true\n             * console.log(buf1.equals(buf3));\n             * // Prints: false\n             * ```\n             * @since v0.11.13\n             * @param otherBuffer A `Buffer` or {@link Uint8Array} with which to compare `buf`.\n             */\n            equals(otherBuffer: Uint8Array): boolean;\n            /**\n             * Compares `buf` with `target` and returns a number indicating whether `buf`comes before, after, or is the same as `target` in sort order.\n             * Comparison is based on the actual sequence of bytes in each `Buffer`.\n             *\n             * * `0` is returned if `target` is the same as `buf`\n             * * `1` is returned if `target` should come _before_`buf` when sorted.\n             * * `-1` is returned if `target` should come _after_`buf` when sorted.\n             *\n             * ```js\n             * import { Buffer } from 'buffer';\n             *\n             * const buf1 = Buffer.from('ABC');\n             * const buf2 = Buffer.from('BCD');\n             * const buf3 = Buffer.from('ABCD');\n             *\n             * console.log(buf1.compare(buf1));\n             * // Prints: 0\n             * console.log(buf1.compare(buf2));\n             * // Prints: -1\n             * console.log(buf1.compare(buf3));\n             * // Prints: -1\n             * console.log(buf2.compare(buf1));\n             * // Prints: 1\n             * console.log(buf2.compare(buf3));\n             * // Prints: 1\n             * console.log([buf1, buf2, buf3].sort(Buffer.compare));\n             * // Prints: [ <Buffer 41 42 43>, <Buffer 41 42 43 44>, <Buffer 42 43 44> ]\n             * // (This result is equal to: [buf1, buf3, buf2].)\n             * ```\n             *\n             * The optional `targetStart`, `targetEnd`, `sourceStart`, and `sourceEnd`arguments can be used to limit the comparison to specific ranges within `target`and `buf` respectively.\n             *\n             * ```js\n             * import { Buffer } from 'buffer';\n             *\n             * const buf1 = Buffer.from([1, 2, 3, 4, 5, 6, 7, 8, 9]);\n             * const buf2 = Buffer.from([5, 6, 7, 8, 9, 1, 2, 3, 4]);\n             *\n             * console.log(buf1.compare(buf2, 5, 9, 0, 4));\n             * // Prints: 0\n             * console.log(buf1.compare(buf2, 0, 6, 4));\n             * // Prints: -1\n             * console.log(buf1.compare(buf2, 5, 6, 5));\n             * // Prints: 1\n             * ```\n             *\n             * `ERR_OUT_OF_RANGE` is thrown if `targetStart < 0`, `sourceStart < 0`,`targetEnd > target.byteLength`, or `sourceEnd > source.byteLength`.\n             * @since v0.11.13\n             * @param target A `Buffer` or {@link Uint8Array} with which to compare `buf`.\n             * @param [targetStart=0] The offset within `target` at which to begin comparison.\n             * @param [targetEnd=target.length] The offset within `target` at which to end comparison (not inclusive).\n             * @param [sourceStart=0] The offset within `buf` at which to begin comparison.\n             * @param [sourceEnd=buf.length] The offset within `buf` at which to end comparison (not inclusive).\n             */\n            compare(target: Uint8Array, targetStart?: number, targetEnd?: number, sourceStart?: number, sourceEnd?: number): number;\n            /**\n             * Copies data from a region of `buf` to a region in `target`, even if the `target`memory region overlaps with `buf`.\n             *\n             * [`TypedArray.prototype.set()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/set) performs the same operation, and is available\n             * for all TypedArrays, including Node.js `Buffer`s, although it takes\n             * different function arguments.\n             *\n             * ```js\n             * import { Buffer } from 'buffer';\n             *\n             * // Create two `Buffer` instances.\n             * const buf1 = Buffer.allocUnsafe(26);\n             * const buf2 = Buffer.allocUnsafe(26).fill('!');\n             *\n             * for (let i = 0; i < 26; i++) {\n             *   // 97 is the decimal ASCII value for 'a'.\n             *   buf1[i] = i + 97;\n             * }\n             *\n             * // Copy `buf1` bytes 16 through 19 into `buf2` starting at byte 8 of `buf2`.\n             * buf1.copy(buf2, 8, 16, 20);\n             * // This is equivalent to:\n             * // buf2.set(buf1.subarray(16, 20), 8);\n             *\n             * console.log(buf2.toString('ascii', 0, 25));\n             * // Prints: !!!!!!!!qrst!!!!!!!!!!!!!\n             * ```\n             *\n             * ```js\n             * import { Buffer } from 'buffer';\n             *\n             * // Create a `Buffer` and copy data from one region to an overlapping region\n             * // within the same `Buffer`.\n             *\n             * const buf = Buffer.allocUnsafe(26);\n             *\n             * for (let i = 0; i < 26; i++) {\n             *   // 97 is the decimal ASCII value for 'a'.\n             *   buf[i] = i + 97;\n             * }\n             *\n             * buf.copy(buf, 0, 4, 10);\n             *\n             * console.log(buf.toString());\n             * // Prints: efghijghijklmnopqrstuvwxyz\n             * ```\n             * @since v0.1.90\n             * @param target A `Buffer` or {@link Uint8Array} to copy into.\n             * @param [targetStart=0] The offset within `target` at which to begin writing.\n             * @param [sourceStart=0] The offset within `buf` from which to begin copying.\n             * @param [sourceEnd=buf.length] The offset within `buf` at which to stop copying (not inclusive).\n             * @return The number of bytes copied.\n             */\n            copy(target: Uint8Array, targetStart?: number, sourceStart?: number, sourceEnd?: number): number;\n            /**\n             * Returns a new `Buffer` that references the same memory as the original, but\n             * offset and cropped by the `start` and `end` indices.\n             *\n             * This is the same behavior as `buf.subarray()`.\n             *\n             * This method is not compatible with the `Uint8Array.prototype.slice()`,\n             * which is a superclass of `Buffer`. To copy the slice, use`Uint8Array.prototype.slice()`.\n             *\n             * ```js\n             * import { Buffer } from 'buffer';\n             *\n             * const buf = Buffer.from('buffer');\n             *\n             * const copiedBuf = Uint8Array.prototype.slice.call(buf);\n             * copiedBuf[0]++;\n             * console.log(copiedBuf.toString());\n             * // Prints: cuffer\n             *\n             * console.log(buf.toString());\n             * // Prints: buffer\n             * ```\n             * @since v0.3.0\n             * @param [start=0] Where the new `Buffer` will start.\n             * @param [end=buf.length] Where the new `Buffer` will end (not inclusive).\n             */\n            slice(start?: number, end?: number): Buffer;\n            /**\n             * Returns a new `Buffer` that references the same memory as the original, but\n             * offset and cropped by the `start` and `end` indices.\n             *\n             * Specifying `end` greater than `buf.length` will return the same result as\n             * that of `end` equal to `buf.length`.\n             *\n             * This method is inherited from [`TypedArray.prototype.subarray()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/subarray).\n             *\n             * Modifying the new `Buffer` slice will modify the memory in the original `Buffer`because the allocated memory of the two objects overlap.\n             *\n             * ```js\n             * import { Buffer } from 'buffer';\n             *\n             * // Create a `Buffer` with the ASCII alphabet, take a slice, and modify one byte\n             * // from the original `Buffer`.\n             *\n             * const buf1 = Buffer.allocUnsafe(26);\n             *\n             * for (let i = 0; i < 26; i++) {\n             *   // 97 is the decimal ASCII value for 'a'.\n             *   buf1[i] = i + 97;\n             * }\n             *\n             * const buf2 = buf1.subarray(0, 3);\n             *\n             * console.log(buf2.toString('ascii', 0, buf2.length));\n             * // Prints: abc\n             *\n             * buf1[0] = 33;\n             *\n             * console.log(buf2.toString('ascii', 0, buf2.length));\n             * // Prints: !bc\n             * ```\n             *\n             * Specifying negative indexes causes the slice to be generated relative to the\n             * end of `buf` rather than the beginning.\n             *\n             * ```js\n             * import { Buffer } from 'buffer';\n             *\n             * const buf = Buffer.from('buffer');\n             *\n             * console.log(buf.subarray(-6, -1).toString());\n             * // Prints: buffe\n             * // (Equivalent to buf.subarray(0, 5).)\n             *\n             * console.log(buf.subarray(-6, -2).toString());\n             * // Prints: buff\n             * // (Equivalent to buf.subarray(0, 4).)\n             *\n             * console.log(buf.subarray(-5, -2).toString());\n             * // Prints: uff\n             * // (Equivalent to buf.subarray(1, 4).)\n             * ```\n             * @since v3.0.0\n             * @param [start=0] Where the new `Buffer` will start.\n             * @param [end=buf.length] Where the new `Buffer` will end (not inclusive).\n             */\n            subarray(start?: number, end?: number): Buffer;\n            /**\n             * Writes `value` to `buf` at the specified `offset` as big-endian.\n             *\n             * `value` is interpreted and written as a two's complement signed integer.\n             *\n             * ```js\n             * import { Buffer } from 'buffer';\n             *\n             * const buf = Buffer.allocUnsafe(8);\n             *\n             * buf.writeBigInt64BE(0x0102030405060708n, 0);\n             *\n             * console.log(buf);\n             * // Prints: <Buffer 01 02 03 04 05 06 07 08>\n             * ```\n             * @since v12.0.0, v10.20.0\n             * @param value Number to be written to `buf`.\n             * @param [offset=0] Number of bytes to skip before starting to write. Must satisfy: `0 <= offset <= buf.length - 8`.\n             * @return `offset` plus the number of bytes written.\n             */\n            writeBigInt64BE(value: bigint, offset?: number): number;\n            /**\n             * Writes `value` to `buf` at the specified `offset` as little-endian.\n             *\n             * `value` is interpreted and written as a two's complement signed integer.\n             *\n             * ```js\n             * import { Buffer } from 'buffer';\n             *\n             * const buf = Buffer.allocUnsafe(8);\n             *\n             * buf.writeBigInt64LE(0x0102030405060708n, 0);\n             *\n             * console.log(buf);\n             * // Prints: <Buffer 08 07 06 05 04 03 02 01>\n             * ```\n             * @since v12.0.0, v10.20.0\n             * @param value Number to be written to `buf`.\n             * @param [offset=0] Number of bytes to skip before starting to write. Must satisfy: `0 <= offset <= buf.length - 8`.\n             * @return `offset` plus the number of bytes written.\n             */\n            writeBigInt64LE(value: bigint, offset?: number): number;\n            /**\n             * Writes `value` to `buf` at the specified `offset` as big-endian.\n             *\n             * This function is also available under the `writeBigUint64BE` alias.\n             *\n             * ```js\n             * import { Buffer } from 'buffer';\n             *\n             * const buf = Buffer.allocUnsafe(8);\n             *\n             * buf.writeBigUInt64BE(0xdecafafecacefaden, 0);\n             *\n             * console.log(buf);\n             * // Prints: <Buffer de ca fa fe ca ce fa de>\n             * ```\n             * @since v12.0.0, v10.20.0\n             * @param value Number to be written to `buf`.\n             * @param [offset=0] Number of bytes to skip before starting to write. Must satisfy: `0 <= offset <= buf.length - 8`.\n             * @return `offset` plus the number of bytes written.\n             */\n            writeBigUInt64BE(value: bigint, offset?: number): number;\n            /**\n             * @alias Buffer.writeBigUInt64BE\n             * @since v14.10.0, v12.19.0\n             */\n            writeBigUint64BE(value: bigint, offset?: number): number;\n            /**\n             * Writes `value` to `buf` at the specified `offset` as little-endian\n             *\n             * ```js\n             * import { Buffer } from 'buffer';\n             *\n             * const buf = Buffer.allocUnsafe(8);\n             *\n             * buf.writeBigUInt64LE(0xdecafafecacefaden, 0);\n             *\n             * console.log(buf);\n             * // Prints: <Buffer de fa ce ca fe fa ca de>\n             * ```\n             *\n             * This function is also available under the `writeBigUint64LE` alias.\n             * @since v12.0.0, v10.20.0\n             * @param value Number to be written to `buf`.\n             * @param [offset=0] Number of bytes to skip before starting to write. Must satisfy: `0 <= offset <= buf.length - 8`.\n             * @return `offset` plus the number of bytes written.\n             */\n            writeBigUInt64LE(value: bigint, offset?: number): number;\n            /**\n             * @alias Buffer.writeBigUInt64LE\n             * @since v14.10.0, v12.19.0\n             */\n            writeBigUint64LE(value: bigint, offset?: number): number;\n            /**\n             * Writes `byteLength` bytes of `value` to `buf` at the specified `offset`as little-endian. Supports up to 48 bits of accuracy. Behavior is undefined\n             * when `value` is anything other than an unsigned integer.\n             *\n             * This function is also available under the `writeUintLE` alias.\n             *\n             * ```js\n             * import { Buffer } from 'buffer';\n             *\n             * const buf = Buffer.allocUnsafe(6);\n             *\n             * buf.writeUIntLE(0x1234567890ab, 0, 6);\n             *\n             * console.log(buf);\n             * // Prints: <Buffer ab 90 78 56 34 12>\n             * ```\n             * @since v0.5.5\n             * @param value Number to be written to `buf`.\n             * @param offset Number of bytes to skip before starting to write. Must satisfy `0 <= offset <= buf.length - byteLength`.\n             * @param byteLength Number of bytes to write. Must satisfy `0 < byteLength <= 6`.\n             * @return `offset` plus the number of bytes written.\n             */\n            writeUIntLE(value: number, offset: number, byteLength: number): number;\n            /**\n             * @alias Buffer.writeUIntLE\n             * @since v14.9.0, v12.19.0\n             */\n            writeUintLE(value: number, offset: number, byteLength: number): number;\n            /**\n             * Writes `byteLength` bytes of `value` to `buf` at the specified `offset`as big-endian. Supports up to 48 bits of accuracy. Behavior is undefined\n             * when `value` is anything other than an unsigned integer.\n             *\n             * This function is also available under the `writeUintBE` alias.\n             *\n             * ```js\n             * import { Buffer } from 'buffer';\n             *\n             * const buf = Buffer.allocUnsafe(6);\n             *\n             * buf.writeUIntBE(0x1234567890ab, 0, 6);\n             *\n             * console.log(buf);\n             * // Prints: <Buffer 12 34 56 78 90 ab>\n             * ```\n             * @since v0.5.5\n             * @param value Number to be written to `buf`.\n             * @param offset Number of bytes to skip before starting to write. Must satisfy `0 <= offset <= buf.length - byteLength`.\n             * @param byteLength Number of bytes to write. Must satisfy `0 < byteLength <= 6`.\n             * @return `offset` plus the number of bytes written.\n             */\n            writeUIntBE(value: number, offset: number, byteLength: number): number;\n            /**\n             * @alias Buffer.writeUIntBE\n             * @since v14.9.0, v12.19.0\n             */\n            writeUintBE(value: number, offset: number, byteLength: number): number;\n            /**\n             * Writes `byteLength` bytes of `value` to `buf` at the specified `offset`as little-endian. Supports up to 48 bits of accuracy. Behavior is undefined\n             * when `value` is anything other than a signed integer.\n             *\n             * ```js\n             * import { Buffer } from 'buffer';\n             *\n             * const buf = Buffer.allocUnsafe(6);\n             *\n             * buf.writeIntLE(0x1234567890ab, 0, 6);\n             *\n             * console.log(buf);\n             * // Prints: <Buffer ab 90 78 56 34 12>\n             * ```\n             * @since v0.11.15\n             * @param value Number to be written to `buf`.\n             * @param offset Number of bytes to skip before starting to write. Must satisfy `0 <= offset <= buf.length - byteLength`.\n             * @param byteLength Number of bytes to write. Must satisfy `0 < byteLength <= 6`.\n             * @return `offset` plus the number of bytes written.\n             */\n            writeIntLE(value: number, offset: number, byteLength: number): number;\n            /**\n             * Writes `byteLength` bytes of `value` to `buf` at the specified `offset`as big-endian. Supports up to 48 bits of accuracy. Behavior is undefined when`value` is anything other than a\n             * signed integer.\n             *\n             * ```js\n             * import { Buffer } from 'buffer';\n             *\n             * const buf = Buffer.allocUnsafe(6);\n             *\n             * buf.writeIntBE(0x1234567890ab, 0, 6);\n             *\n             * console.log(buf);\n             * // Prints: <Buffer 12 34 56 78 90 ab>\n             * ```\n             * @since v0.11.15\n             * @param value Number to be written to `buf`.\n             * @param offset Number of bytes to skip before starting to write. Must satisfy `0 <= offset <= buf.length - byteLength`.\n             * @param byteLength Number of bytes to write. Must satisfy `0 < byteLength <= 6`.\n             * @return `offset` plus the number of bytes written.\n             */\n            writeIntBE(value: number, offset: number, byteLength: number): number;\n            /**\n             * Reads an unsigned, big-endian 64-bit integer from `buf` at the specified`offset`.\n             *\n             * This function is also available under the `readBigUint64BE` alias.\n             *\n             * ```js\n             * import { Buffer } from 'buffer';\n             *\n             * const buf = Buffer.from([0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff]);\n             *\n             * console.log(buf.readBigUInt64BE(0));\n             * // Prints: 4294967295n\n             * ```\n             * @since v12.0.0, v10.20.0\n             * @param [offset=0] Number of bytes to skip before starting to read. Must satisfy: `0 <= offset <= buf.length - 8`.\n             */\n            readBigUInt64BE(offset?: number): bigint;\n            /**\n             * @alias Buffer.readBigUInt64BE\n             * @since v14.10.0, v12.19.0\n             */\n            readBigUint64BE(offset?: number): bigint;\n            /**\n             * Reads an unsigned, little-endian 64-bit integer from `buf` at the specified`offset`.\n             *\n             * This function is also available under the `readBigUint64LE` alias.\n             *\n             * ```js\n             * import { Buffer } from 'buffer';\n             *\n             * const buf = Buffer.from([0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff]);\n             *\n             * console.log(buf.readBigUInt64LE(0));\n             * // Prints: 18446744069414584320n\n             * ```\n             * @since v12.0.0, v10.20.0\n             * @param [offset=0] Number of bytes to skip before starting to read. Must satisfy: `0 <= offset <= buf.length - 8`.\n             */\n            readBigUInt64LE(offset?: number): bigint;\n            /**\n             * @alias Buffer.readBigUInt64LE\n             * @since v14.10.0, v12.19.0\n             */\n            readBigUint64LE(offset?: number): bigint;\n            /**\n             * Reads a signed, big-endian 64-bit integer from `buf` at the specified `offset`.\n             *\n             * Integers read from a `Buffer` are interpreted as two's complement signed\n             * values.\n             * @since v12.0.0, v10.20.0\n             * @param [offset=0] Number of bytes to skip before starting to read. Must satisfy: `0 <= offset <= buf.length - 8`.\n             */\n            readBigInt64BE(offset?: number): bigint;\n            /**\n             * Reads a signed, little-endian 64-bit integer from `buf` at the specified`offset`.\n             *\n             * Integers read from a `Buffer` are interpreted as two's complement signed\n             * values.\n             * @since v12.0.0, v10.20.0\n             * @param [offset=0] Number of bytes to skip before starting to read. Must satisfy: `0 <= offset <= buf.length - 8`.\n             */\n            readBigInt64LE(offset?: number): bigint;\n            /**\n             * Reads `byteLength` number of bytes from `buf` at the specified `offset`and interprets the result as an unsigned, little-endian integer supporting\n             * up to 48 bits of accuracy.\n             *\n             * This function is also available under the `readUintLE` alias.\n             *\n             * ```js\n             * import { Buffer } from 'buffer';\n             *\n             * const buf = Buffer.from([0x12, 0x34, 0x56, 0x78, 0x90, 0xab]);\n             *\n             * console.log(buf.readUIntLE(0, 6).toString(16));\n             * // Prints: ab9078563412\n             * ```\n             * @since v0.11.15\n             * @param offset Number of bytes to skip before starting to read. Must satisfy `0 <= offset <= buf.length - byteLength`.\n             * @param byteLength Number of bytes to read. Must satisfy `0 < byteLength <= 6`.\n             */\n            readUIntLE(offset: number, byteLength: number): number;\n            /**\n             * @alias Buffer.readUIntLE\n             * @since v14.9.0, v12.19.0\n             */\n            readUintLE(offset: number, byteLength: number): number;\n            /**\n             * Reads `byteLength` number of bytes from `buf` at the specified `offset`and interprets the result as an unsigned big-endian integer supporting\n             * up to 48 bits of accuracy.\n             *\n             * This function is also available under the `readUintBE` alias.\n             *\n             * ```js\n             * import { Buffer } from 'buffer';\n             *\n             * const buf = Buffer.from([0x12, 0x34, 0x56, 0x78, 0x90, 0xab]);\n             *\n             * console.log(buf.readUIntBE(0, 6).toString(16));\n             * // Prints: 1234567890ab\n             * console.log(buf.readUIntBE(1, 6).toString(16));\n             * // Throws ERR_OUT_OF_RANGE.\n             * ```\n             * @since v0.11.15\n             * @param offset Number of bytes to skip before starting to read. Must satisfy `0 <= offset <= buf.length - byteLength`.\n             * @param byteLength Number of bytes to read. Must satisfy `0 < byteLength <= 6`.\n             */\n            readUIntBE(offset: number, byteLength: number): number;\n            /**\n             * @alias Buffer.readUIntBE\n             * @since v14.9.0, v12.19.0\n             */\n            readUintBE(offset: number, byteLength: number): number;\n            /**\n             * Reads `byteLength` number of bytes from `buf` at the specified `offset`and interprets the result as a little-endian, two's complement signed value\n             * supporting up to 48 bits of accuracy.\n             *\n             * ```js\n             * import { Buffer } from 'buffer';\n             *\n             * const buf = Buffer.from([0x12, 0x34, 0x56, 0x78, 0x90, 0xab]);\n             *\n             * console.log(buf.readIntLE(0, 6).toString(16));\n             * // Prints: -546f87a9cbee\n             * ```\n             * @since v0.11.15\n             * @param offset Number of bytes to skip before starting to read. Must satisfy `0 <= offset <= buf.length - byteLength`.\n             * @param byteLength Number of bytes to read. Must satisfy `0 < byteLength <= 6`.\n             */\n            readIntLE(offset: number, byteLength: number): number;\n            /**\n             * Reads `byteLength` number of bytes from `buf` at the specified `offset`and interprets the result as a big-endian, two's complement signed value\n             * supporting up to 48 bits of accuracy.\n             *\n             * ```js\n             * import { Buffer } from 'buffer';\n             *\n             * const buf = Buffer.from([0x12, 0x34, 0x56, 0x78, 0x90, 0xab]);\n             *\n             * console.log(buf.readIntBE(0, 6).toString(16));\n             * // Prints: 1234567890ab\n             * console.log(buf.readIntBE(1, 6).toString(16));\n             * // Throws ERR_OUT_OF_RANGE.\n             * console.log(buf.readIntBE(1, 0).toString(16));\n             * // Throws ERR_OUT_OF_RANGE.\n             * ```\n             * @since v0.11.15\n             * @param offset Number of bytes to skip before starting to read. Must satisfy `0 <= offset <= buf.length - byteLength`.\n             * @param byteLength Number of bytes to read. Must satisfy `0 < byteLength <= 6`.\n             */\n            readIntBE(offset: number, byteLength: number): number;\n            /**\n             * Reads an unsigned 8-bit integer from `buf` at the specified `offset`.\n             *\n             * This function is also available under the `readUint8` alias.\n             *\n             * ```js\n             * import { Buffer } from 'buffer';\n             *\n             * const buf = Buffer.from([1, -2]);\n             *\n             * console.log(buf.readUInt8(0));\n             * // Prints: 1\n             * console.log(buf.readUInt8(1));\n             * // Prints: 254\n             * console.log(buf.readUInt8(2));\n             * // Throws ERR_OUT_OF_RANGE.\n             * ```\n             * @since v0.5.0\n             * @param [offset=0] Number of bytes to skip before starting to read. Must satisfy `0 <= offset <= buf.length - 1`.\n             */\n            readUInt8(offset?: number): number;\n            /**\n             * @alias Buffer.readUInt8\n             * @since v14.9.0, v12.19.0\n             */\n            readUint8(offset?: number): number;\n            /**\n             * Reads an unsigned, little-endian 16-bit integer from `buf` at the specified`offset`.\n             *\n             * This function is also available under the `readUint16LE` alias.\n             *\n             * ```js\n             * import { Buffer } from 'buffer';\n             *\n             * const buf = Buffer.from([0x12, 0x34, 0x56]);\n             *\n             * console.log(buf.readUInt16LE(0).toString(16));\n             * // Prints: 3412\n             * console.log(buf.readUInt16LE(1).toString(16));\n             * // Prints: 5634\n             * console.log(buf.readUInt16LE(2).toString(16));\n             * // Throws ERR_OUT_OF_RANGE.\n             * ```\n             * @since v0.5.5\n             * @param [offset=0] Number of bytes to skip before starting to read. Must satisfy `0 <= offset <= buf.length - 2`.\n             */\n            readUInt16LE(offset?: number): number;\n            /**\n             * @alias Buffer.readUInt16LE\n             * @since v14.9.0, v12.19.0\n             */\n            readUint16LE(offset?: number): number;\n            /**\n             * Reads an unsigned, big-endian 16-bit integer from `buf` at the specified`offset`.\n             *\n             * This function is also available under the `readUint16BE` alias.\n             *\n             * ```js\n             * import { Buffer } from 'buffer';\n             *\n             * const buf = Buffer.from([0x12, 0x34, 0x56]);\n             *\n             * console.log(buf.readUInt16BE(0).toString(16));\n             * // Prints: 1234\n             * console.log(buf.readUInt16BE(1).toString(16));\n             * // Prints: 3456\n             * ```\n             * @since v0.5.5\n             * @param [offset=0] Number of bytes to skip before starting to read. Must satisfy `0 <= offset <= buf.length - 2`.\n             */\n            readUInt16BE(offset?: number): number;\n            /**\n             * @alias Buffer.readUInt16BE\n             * @since v14.9.0, v12.19.0\n             */\n            readUint16BE(offset?: number): number;\n            /**\n             * Reads an unsigned, little-endian 32-bit integer from `buf` at the specified`offset`.\n             *\n             * This function is also available under the `readUint32LE` alias.\n             *\n             * ```js\n             * import { Buffer } from 'buffer';\n             *\n             * const buf = Buffer.from([0x12, 0x34, 0x56, 0x78]);\n             *\n             * console.log(buf.readUInt32LE(0).toString(16));\n             * // Prints: 78563412\n             * console.log(buf.readUInt32LE(1).toString(16));\n             * // Throws ERR_OUT_OF_RANGE.\n             * ```\n             * @since v0.5.5\n             * @param [offset=0] Number of bytes to skip before starting to read. Must satisfy `0 <= offset <= buf.length - 4`.\n             */\n            readUInt32LE(offset?: number): number;\n            /**\n             * @alias Buffer.readUInt32LE\n             * @since v14.9.0, v12.19.0\n             */\n            readUint32LE(offset?: number): number;\n            /**\n             * Reads an unsigned, big-endian 32-bit integer from `buf` at the specified`offset`.\n             *\n             * This function is also available under the `readUint32BE` alias.\n             *\n             * ```js\n             * import { Buffer } from 'buffer';\n             *\n             * const buf = Buffer.from([0x12, 0x34, 0x56, 0x78]);\n             *\n             * console.log(buf.readUInt32BE(0).toString(16));\n             * // Prints: 12345678\n             * ```\n             * @since v0.5.5\n             * @param [offset=0] Number of bytes to skip before starting to read. Must satisfy `0 <= offset <= buf.length - 4`.\n             */\n            readUInt32BE(offset?: number): number;\n            /**\n             * @alias Buffer.readUInt32BE\n             * @since v14.9.0, v12.19.0\n             */\n            readUint32BE(offset?: number): number;\n            /**\n             * Reads a signed 8-bit integer from `buf` at the specified `offset`.\n             *\n             * Integers read from a `Buffer` are interpreted as two's complement signed values.\n             *\n             * ```js\n             * import { Buffer } from 'buffer';\n             *\n             * const buf = Buffer.from([-1, 5]);\n             *\n             * console.log(buf.readInt8(0));\n             * // Prints: -1\n             * console.log(buf.readInt8(1));\n             * // Prints: 5\n             * console.log(buf.readInt8(2));\n             * // Throws ERR_OUT_OF_RANGE.\n             * ```\n             * @since v0.5.0\n             * @param [offset=0] Number of bytes to skip before starting to read. Must satisfy `0 <= offset <= buf.length - 1`.\n             */\n            readInt8(offset?: number): number;\n            /**\n             * Reads a signed, little-endian 16-bit integer from `buf` at the specified`offset`.\n             *\n             * Integers read from a `Buffer` are interpreted as two's complement signed values.\n             *\n             * ```js\n             * import { Buffer } from 'buffer';\n             *\n             * const buf = Buffer.from([0, 5]);\n             *\n             * console.log(buf.readInt16LE(0));\n             * // Prints: 1280\n             * console.log(buf.readInt16LE(1));\n             * // Throws ERR_OUT_OF_RANGE.\n             * ```\n             * @since v0.5.5\n             * @param [offset=0] Number of bytes to skip before starting to read. Must satisfy `0 <= offset <= buf.length - 2`.\n             */\n            readInt16LE(offset?: number): number;\n            /**\n             * Reads a signed, big-endian 16-bit integer from `buf` at the specified `offset`.\n             *\n             * Integers read from a `Buffer` are interpreted as two's complement signed values.\n             *\n             * ```js\n             * import { Buffer } from 'buffer';\n             *\n             * const buf = Buffer.from([0, 5]);\n             *\n             * console.log(buf.readInt16BE(0));\n             * // Prints: 5\n             * ```\n             * @since v0.5.5\n             * @param [offset=0] Number of bytes to skip before starting to read. Must satisfy `0 <= offset <= buf.length - 2`.\n             */\n            readInt16BE(offset?: number): number;\n            /**\n             * Reads a signed, little-endian 32-bit integer from `buf` at the specified`offset`.\n             *\n             * Integers read from a `Buffer` are interpreted as two's complement signed values.\n             *\n             * ```js\n             * import { Buffer } from 'buffer';\n             *\n             * const buf = Buffer.from([0, 0, 0, 5]);\n             *\n             * console.log(buf.readInt32LE(0));\n             * // Prints: 83886080\n             * console.log(buf.readInt32LE(1));\n             * // Throws ERR_OUT_OF_RANGE.\n             * ```\n             * @since v0.5.5\n             * @param [offset=0] Number of bytes to skip before starting to read. Must satisfy `0 <= offset <= buf.length - 4`.\n             */\n            readInt32LE(offset?: number): number;\n            /**\n             * Reads a signed, big-endian 32-bit integer from `buf` at the specified `offset`.\n             *\n             * Integers read from a `Buffer` are interpreted as two's complement signed values.\n             *\n             * ```js\n             * import { Buffer } from 'buffer';\n             *\n             * const buf = Buffer.from([0, 0, 0, 5]);\n             *\n             * console.log(buf.readInt32BE(0));\n             * // Prints: 5\n             * ```\n             * @since v0.5.5\n             * @param [offset=0] Number of bytes to skip before starting to read. Must satisfy `0 <= offset <= buf.length - 4`.\n             */\n            readInt32BE(offset?: number): number;\n            /**\n             * Reads a 32-bit, little-endian float from `buf` at the specified `offset`.\n             *\n             * ```js\n             * import { Buffer } from 'buffer';\n             *\n             * const buf = Buffer.from([1, 2, 3, 4]);\n             *\n             * console.log(buf.readFloatLE(0));\n             * // Prints: 1.539989614439558e-36\n             * console.log(buf.readFloatLE(1));\n             * // Throws ERR_OUT_OF_RANGE.\n             * ```\n             * @since v0.11.15\n             * @param [offset=0] Number of bytes to skip before starting to read. Must satisfy `0 <= offset <= buf.length - 4`.\n             */\n            readFloatLE(offset?: number): number;\n            /**\n             * Reads a 32-bit, big-endian float from `buf` at the specified `offset`.\n             *\n             * ```js\n             * import { Buffer } from 'buffer';\n             *\n             * const buf = Buffer.from([1, 2, 3, 4]);\n             *\n             * console.log(buf.readFloatBE(0));\n             * // Prints: 2.387939260590663e-38\n             * ```\n             * @since v0.11.15\n             * @param [offset=0] Number of bytes to skip before starting to read. Must satisfy `0 <= offset <= buf.length - 4`.\n             */\n            readFloatBE(offset?: number): number;\n            /**\n             * Reads a 64-bit, little-endian double from `buf` at the specified `offset`.\n             *\n             * ```js\n             * import { Buffer } from 'buffer';\n             *\n             * const buf = Buffer.from([1, 2, 3, 4, 5, 6, 7, 8]);\n             *\n             * console.log(buf.readDoubleLE(0));\n             * // Prints: 5.447603722011605e-270\n             * console.log(buf.readDoubleLE(1));\n             * // Throws ERR_OUT_OF_RANGE.\n             * ```\n             * @since v0.11.15\n             * @param [offset=0] Number of bytes to skip before starting to read. Must satisfy `0 <= offset <= buf.length - 8`.\n             */\n            readDoubleLE(offset?: number): number;\n            /**\n             * Reads a 64-bit, big-endian double from `buf` at the specified `offset`.\n             *\n             * ```js\n             * import { Buffer } from 'buffer';\n             *\n             * const buf = Buffer.from([1, 2, 3, 4, 5, 6, 7, 8]);\n             *\n             * console.log(buf.readDoubleBE(0));\n             * // Prints: 8.20788039913184e-304\n             * ```\n             * @since v0.11.15\n             * @param [offset=0] Number of bytes to skip before starting to read. Must satisfy `0 <= offset <= buf.length - 8`.\n             */\n            readDoubleBE(offset?: number): number;\n            reverse(): this;\n            /**\n             * Interprets `buf` as an array of unsigned 16-bit integers and swaps the\n             * byte order _in-place_. Throws `ERR_INVALID_BUFFER_SIZE` if `buf.length` is not a multiple of 2.\n             *\n             * ```js\n             * import { Buffer } from 'buffer';\n             *\n             * const buf1 = Buffer.from([0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8]);\n             *\n             * console.log(buf1);\n             * // Prints: <Buffer 01 02 03 04 05 06 07 08>\n             *\n             * buf1.swap16();\n             *\n             * console.log(buf1);\n             * // Prints: <Buffer 02 01 04 03 06 05 08 07>\n             *\n             * const buf2 = Buffer.from([0x1, 0x2, 0x3]);\n             *\n             * buf2.swap16();\n             * // Throws ERR_INVALID_BUFFER_SIZE.\n             * ```\n             *\n             * One convenient use of `buf.swap16()` is to perform a fast in-place conversion\n             * between UTF-16 little-endian and UTF-16 big-endian:\n             *\n             * ```js\n             * import { Buffer } from 'buffer';\n             *\n             * const buf = Buffer.from('This is little-endian UTF-16', 'utf16le');\n             * buf.swap16(); // Convert to big-endian UTF-16 text.\n             * ```\n             * @since v5.10.0\n             * @return A reference to `buf`.\n             */\n            swap16(): Buffer;\n            /**\n             * Interprets `buf` as an array of unsigned 32-bit integers and swaps the\n             * byte order _in-place_. Throws `ERR_INVALID_BUFFER_SIZE` if `buf.length` is not a multiple of 4.\n             *\n             * ```js\n             * import { Buffer } from 'buffer';\n             *\n             * const buf1 = Buffer.from([0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8]);\n             *\n             * console.log(buf1);\n             * // Prints: <Buffer 01 02 03 04 05 06 07 08>\n             *\n             * buf1.swap32();\n             *\n             * console.log(buf1);\n             * // Prints: <Buffer 04 03 02 01 08 07 06 05>\n             *\n             * const buf2 = Buffer.from([0x1, 0x2, 0x3]);\n             *\n             * buf2.swap32();\n             * // Throws ERR_INVALID_BUFFER_SIZE.\n             * ```\n             * @since v5.10.0\n             * @return A reference to `buf`.\n             */\n            swap32(): Buffer;\n            /**\n             * Interprets `buf` as an array of 64-bit numbers and swaps byte order _in-place_.\n             * Throws `ERR_INVALID_BUFFER_SIZE` if `buf.length` is not a multiple of 8.\n             *\n             * ```js\n             * import { Buffer } from 'buffer';\n             *\n             * const buf1 = Buffer.from([0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8]);\n             *\n             * console.log(buf1);\n             * // Prints: <Buffer 01 02 03 04 05 06 07 08>\n             *\n             * buf1.swap64();\n             *\n             * console.log(buf1);\n             * // Prints: <Buffer 08 07 06 05 04 03 02 01>\n             *\n             * const buf2 = Buffer.from([0x1, 0x2, 0x3]);\n             *\n             * buf2.swap64();\n             * // Throws ERR_INVALID_BUFFER_SIZE.\n             * ```\n             * @since v6.3.0\n             * @return A reference to `buf`.\n             */\n            swap64(): Buffer;\n            /**\n             * Writes `value` to `buf` at the specified `offset`. `value` must be a\n             * valid unsigned 8-bit integer. Behavior is undefined when `value` is anything\n             * other than an unsigned 8-bit integer.\n             *\n             * This function is also available under the `writeUint8` alias.\n             *\n             * ```js\n             * import { Buffer } from 'buffer';\n             *\n             * const buf = Buffer.allocUnsafe(4);\n             *\n             * buf.writeUInt8(0x3, 0);\n             * buf.writeUInt8(0x4, 1);\n             * buf.writeUInt8(0x23, 2);\n             * buf.writeUInt8(0x42, 3);\n             *\n             * console.log(buf);\n             * // Prints: <Buffer 03 04 23 42>\n             * ```\n             * @since v0.5.0\n             * @param value Number to be written to `buf`.\n             * @param [offset=0] Number of bytes to skip before starting to write. Must satisfy `0 <= offset <= buf.length - 1`.\n             * @return `offset` plus the number of bytes written.\n             */\n            writeUInt8(value: number, offset?: number): number;\n            /**\n             * @alias Buffer.writeUInt8\n             * @since v14.9.0, v12.19.0\n             */\n            writeUint8(value: number, offset?: number): number;\n            /**\n             * Writes `value` to `buf` at the specified `offset` as little-endian. The `value`must be a valid unsigned 16-bit integer. Behavior is undefined when `value` is\n             * anything other than an unsigned 16-bit integer.\n             *\n             * This function is also available under the `writeUint16LE` alias.\n             *\n             * ```js\n             * import { Buffer } from 'buffer';\n             *\n             * const buf = Buffer.allocUnsafe(4);\n             *\n             * buf.writeUInt16LE(0xdead, 0);\n             * buf.writeUInt16LE(0xbeef, 2);\n             *\n             * console.log(buf);\n             * // Prints: <Buffer ad de ef be>\n             * ```\n             * @since v0.5.5\n             * @param value Number to be written to `buf`.\n             * @param [offset=0] Number of bytes to skip before starting to write. Must satisfy `0 <= offset <= buf.length - 2`.\n             * @return `offset` plus the number of bytes written.\n             */\n            writeUInt16LE(value: number, offset?: number): number;\n            /**\n             * @alias Buffer.writeUInt16LE\n             * @since v14.9.0, v12.19.0\n             */\n            writeUint16LE(value: number, offset?: number): number;\n            /**\n             * Writes `value` to `buf` at the specified `offset` as big-endian. The `value`must be a valid unsigned 16-bit integer. Behavior is undefined when `value`is anything other than an\n             * unsigned 16-bit integer.\n             *\n             * This function is also available under the `writeUint16BE` alias.\n             *\n             * ```js\n             * import { Buffer } from 'buffer';\n             *\n             * const buf = Buffer.allocUnsafe(4);\n             *\n             * buf.writeUInt16BE(0xdead, 0);\n             * buf.writeUInt16BE(0xbeef, 2);\n             *\n             * console.log(buf);\n             * // Prints: <Buffer de ad be ef>\n             * ```\n             * @since v0.5.5\n             * @param value Number to be written to `buf`.\n             * @param [offset=0] Number of bytes to skip before starting to write. Must satisfy `0 <= offset <= buf.length - 2`.\n             * @return `offset` plus the number of bytes written.\n             */\n            writeUInt16BE(value: number, offset?: number): number;\n            /**\n             * @alias Buffer.writeUInt16BE\n             * @since v14.9.0, v12.19.0\n             */\n            writeUint16BE(value: number, offset?: number): number;\n            /**\n             * Writes `value` to `buf` at the specified `offset` as little-endian. The `value`must be a valid unsigned 32-bit integer. Behavior is undefined when `value` is\n             * anything other than an unsigned 32-bit integer.\n             *\n             * This function is also available under the `writeUint32LE` alias.\n             *\n             * ```js\n             * import { Buffer } from 'buffer';\n             *\n             * const buf = Buffer.allocUnsafe(4);\n             *\n             * buf.writeUInt32LE(0xfeedface, 0);\n             *\n             * console.log(buf);\n             * // Prints: <Buffer ce fa ed fe>\n             * ```\n             * @since v0.5.5\n             * @param value Number to be written to `buf`.\n             * @param [offset=0] Number of bytes to skip before starting to write. Must satisfy `0 <= offset <= buf.length - 4`.\n             * @return `offset` plus the number of bytes written.\n             */\n            writeUInt32LE(value: number, offset?: number): number;\n            /**\n             * @alias Buffer.writeUInt32LE\n             * @since v14.9.0, v12.19.0\n             */\n            writeUint32LE(value: number, offset?: number): number;\n            /**\n             * Writes `value` to `buf` at the specified `offset` as big-endian. The `value`must be a valid unsigned 32-bit integer. Behavior is undefined when `value`is anything other than an\n             * unsigned 32-bit integer.\n             *\n             * This function is also available under the `writeUint32BE` alias.\n             *\n             * ```js\n             * import { Buffer } from 'buffer';\n             *\n             * const buf = Buffer.allocUnsafe(4);\n             *\n             * buf.writeUInt32BE(0xfeedface, 0);\n             *\n             * console.log(buf);\n             * // Prints: <Buffer fe ed fa ce>\n             * ```\n             * @since v0.5.5\n             * @param value Number to be written to `buf`.\n             * @param [offset=0] Number of bytes to skip before starting to write. Must satisfy `0 <= offset <= buf.length - 4`.\n             * @return `offset` plus the number of bytes written.\n             */\n            writeUInt32BE(value: number, offset?: number): number;\n            /**\n             * @alias Buffer.writeUInt32BE\n             * @since v14.9.0, v12.19.0\n             */\n            writeUint32BE(value: number, offset?: number): number;\n            /**\n             * Writes `value` to `buf` at the specified `offset`. `value` must be a valid\n             * signed 8-bit integer. Behavior is undefined when `value` is anything other than\n             * a signed 8-bit integer.\n             *\n             * `value` is interpreted and written as a two's complement signed integer.\n             *\n             * ```js\n             * import { Buffer } from 'buffer';\n             *\n             * const buf = Buffer.allocUnsafe(2);\n             *\n             * buf.writeInt8(2, 0);\n             * buf.writeInt8(-2, 1);\n             *\n             * console.log(buf);\n             * // Prints: <Buffer 02 fe>\n             * ```\n             * @since v0.5.0\n             * @param value Number to be written to `buf`.\n             * @param [offset=0] Number of bytes to skip before starting to write. Must satisfy `0 <= offset <= buf.length - 1`.\n             * @return `offset` plus the number of bytes written.\n             */\n            writeInt8(value: number, offset?: number): number;\n            /**\n             * Writes `value` to `buf` at the specified `offset` as little-endian.  The `value`must be a valid signed 16-bit integer. Behavior is undefined when `value` is\n             * anything other than a signed 16-bit integer.\n             *\n             * The `value` is interpreted and written as a two's complement signed integer.\n             *\n             * ```js\n             * import { Buffer } from 'buffer';\n             *\n             * const buf = Buffer.allocUnsafe(2);\n             *\n             * buf.writeInt16LE(0x0304, 0);\n             *\n             * console.log(buf);\n             * // Prints: <Buffer 04 03>\n             * ```\n             * @since v0.5.5\n             * @param value Number to be written to `buf`.\n             * @param [offset=0] Number of bytes to skip before starting to write. Must satisfy `0 <= offset <= buf.length - 2`.\n             * @return `offset` plus the number of bytes written.\n             */\n            writeInt16LE(value: number, offset?: number): number;\n            /**\n             * Writes `value` to `buf` at the specified `offset` as big-endian.  The `value`must be a valid signed 16-bit integer. Behavior is undefined when `value` is\n             * anything other than a signed 16-bit integer.\n             *\n             * The `value` is interpreted and written as a two's complement signed integer.\n             *\n             * ```js\n             * import { Buffer } from 'buffer';\n             *\n             * const buf = Buffer.allocUnsafe(2);\n             *\n             * buf.writeInt16BE(0x0102, 0);\n             *\n             * console.log(buf);\n             * // Prints: <Buffer 01 02>\n             * ```\n             * @since v0.5.5\n             * @param value Number to be written to `buf`.\n             * @param [offset=0] Number of bytes to skip before starting to write. Must satisfy `0 <= offset <= buf.length - 2`.\n             * @return `offset` plus the number of bytes written.\n             */\n            writeInt16BE(value: number, offset?: number): number;\n            /**\n             * Writes `value` to `buf` at the specified `offset` as little-endian. The `value`must be a valid signed 32-bit integer. Behavior is undefined when `value` is\n             * anything other than a signed 32-bit integer.\n             *\n             * The `value` is interpreted and written as a two's complement signed integer.\n             *\n             * ```js\n             * import { Buffer } from 'buffer';\n             *\n             * const buf = Buffer.allocUnsafe(4);\n             *\n             * buf.writeInt32LE(0x05060708, 0);\n             *\n             * console.log(buf);\n             * // Prints: <Buffer 08 07 06 05>\n             * ```\n             * @since v0.5.5\n             * @param value Number to be written to `buf`.\n             * @param [offset=0] Number of bytes to skip before starting to write. Must satisfy `0 <= offset <= buf.length - 4`.\n             * @return `offset` plus the number of bytes written.\n             */\n            writeInt32LE(value: number, offset?: number): number;\n            /**\n             * Writes `value` to `buf` at the specified `offset` as big-endian. The `value`must be a valid signed 32-bit integer. Behavior is undefined when `value` is\n             * anything other than a signed 32-bit integer.\n             *\n             * The `value` is interpreted and written as a two's complement signed integer.\n             *\n             * ```js\n             * import { Buffer } from 'buffer';\n             *\n             * const buf = Buffer.allocUnsafe(4);\n             *\n             * buf.writeInt32BE(0x01020304, 0);\n             *\n             * console.log(buf);\n             * // Prints: <Buffer 01 02 03 04>\n             * ```\n             * @since v0.5.5\n             * @param value Number to be written to `buf`.\n             * @param [offset=0] Number of bytes to skip before starting to write. Must satisfy `0 <= offset <= buf.length - 4`.\n             * @return `offset` plus the number of bytes written.\n             */\n            writeInt32BE(value: number, offset?: number): number;\n            /**\n             * Writes `value` to `buf` at the specified `offset` as little-endian. Behavior is\n             * undefined when `value` is anything other than a JavaScript number.\n             *\n             * ```js\n             * import { Buffer } from 'buffer';\n             *\n             * const buf = Buffer.allocUnsafe(4);\n             *\n             * buf.writeFloatLE(0xcafebabe, 0);\n             *\n             * console.log(buf);\n             * // Prints: <Buffer bb fe 4a 4f>\n             * ```\n             * @since v0.11.15\n             * @param value Number to be written to `buf`.\n             * @param [offset=0] Number of bytes to skip before starting to write. Must satisfy `0 <= offset <= buf.length - 4`.\n             * @return `offset` plus the number of bytes written.\n             */\n            writeFloatLE(value: number, offset?: number): number;\n            /**\n             * Writes `value` to `buf` at the specified `offset` as big-endian. Behavior is\n             * undefined when `value` is anything other than a JavaScript number.\n             *\n             * ```js\n             * import { Buffer } from 'buffer';\n             *\n             * const buf = Buffer.allocUnsafe(4);\n             *\n             * buf.writeFloatBE(0xcafebabe, 0);\n             *\n             * console.log(buf);\n             * // Prints: <Buffer 4f 4a fe bb>\n             * ```\n             * @since v0.11.15\n             * @param value Number to be written to `buf`.\n             * @param [offset=0] Number of bytes to skip before starting to write. Must satisfy `0 <= offset <= buf.length - 4`.\n             * @return `offset` plus the number of bytes written.\n             */\n            writeFloatBE(value: number, offset?: number): number;\n            /**\n             * Writes `value` to `buf` at the specified `offset` as little-endian. The `value`must be a JavaScript number. Behavior is undefined when `value` is anything\n             * other than a JavaScript number.\n             *\n             * ```js\n             * import { Buffer } from 'buffer';\n             *\n             * const buf = Buffer.allocUnsafe(8);\n             *\n             * buf.writeDoubleLE(123.456, 0);\n             *\n             * console.log(buf);\n             * // Prints: <Buffer 77 be 9f 1a 2f dd 5e 40>\n             * ```\n             * @since v0.11.15\n             * @param value Number to be written to `buf`.\n             * @param [offset=0] Number of bytes to skip before starting to write. Must satisfy `0 <= offset <= buf.length - 8`.\n             * @return `offset` plus the number of bytes written.\n             */\n            writeDoubleLE(value: number, offset?: number): number;\n            /**\n             * Writes `value` to `buf` at the specified `offset` as big-endian. The `value`must be a JavaScript number. Behavior is undefined when `value` is anything\n             * other than a JavaScript number.\n             *\n             * ```js\n             * import { Buffer } from 'buffer';\n             *\n             * const buf = Buffer.allocUnsafe(8);\n             *\n             * buf.writeDoubleBE(123.456, 0);\n             *\n             * console.log(buf);\n             * // Prints: <Buffer 40 5e dd 2f 1a 9f be 77>\n             * ```\n             * @since v0.11.15\n             * @param value Number to be written to `buf`.\n             * @param [offset=0] Number of bytes to skip before starting to write. Must satisfy `0 <= offset <= buf.length - 8`.\n             * @return `offset` plus the number of bytes written.\n             */\n            writeDoubleBE(value: number, offset?: number): number;\n            /**\n             * Fills `buf` with the specified `value`. If the `offset` and `end` are not given,\n             * the entire `buf` will be filled:\n             *\n             * ```js\n             * import { Buffer } from 'buffer';\n             *\n             * // Fill a `Buffer` with the ASCII character 'h'.\n             *\n             * const b = Buffer.allocUnsafe(50).fill('h');\n             *\n             * console.log(b.toString());\n             * // Prints: hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\n             * ```\n             *\n             * `value` is coerced to a `uint32` value if it is not a string, `Buffer`, or\n             * integer. If the resulting integer is greater than `255` (decimal), `buf` will be\n             * filled with `value &#x26; 255`.\n             *\n             * If the final write of a `fill()` operation falls on a multi-byte character,\n             * then only the bytes of that character that fit into `buf` are written:\n             *\n             * ```js\n             * import { Buffer } from 'buffer';\n             *\n             * // Fill a `Buffer` with character that takes up two bytes in UTF-8.\n             *\n             * console.log(Buffer.allocUnsafe(5).fill('\\u0222'));\n             * // Prints: <Buffer c8 a2 c8 a2 c8>\n             * ```\n             *\n             * If `value` contains invalid characters, it is truncated; if no valid\n             * fill data remains, an exception is thrown:\n             *\n             * ```js\n             * import { Buffer } from 'buffer';\n             *\n             * const buf = Buffer.allocUnsafe(5);\n             *\n             * console.log(buf.fill('a'));\n             * // Prints: <Buffer 61 61 61 61 61>\n             * console.log(buf.fill('aazz', 'hex'));\n             * // Prints: <Buffer aa aa aa aa aa>\n             * console.log(buf.fill('zz', 'hex'));\n             * // Throws an exception.\n             * ```\n             * @since v0.5.0\n             * @param value The value with which to fill `buf`.\n             * @param [offset=0] Number of bytes to skip before starting to fill `buf`.\n             * @param [end=buf.length] Where to stop filling `buf` (not inclusive).\n             * @param [encoding='utf8'] The encoding for `value` if `value` is a string.\n             * @return A reference to `buf`.\n             */\n            fill(value: string | Uint8Array | number, offset?: number, end?: number, encoding?: BufferEncoding): this;\n            /**\n             * If `value` is:\n             *\n             * * a string, `value` is interpreted according to the character encoding in`encoding`.\n             * * a `Buffer` or [`Uint8Array`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint8Array), `value` will be used in its entirety.\n             * To compare a partial `Buffer`, use `buf.slice()`.\n             * * a number, `value` will be interpreted as an unsigned 8-bit integer\n             * value between `0` and `255`.\n             *\n             * ```js\n             * import { Buffer } from 'buffer';\n             *\n             * const buf = Buffer.from('this is a buffer');\n             *\n             * console.log(buf.indexOf('this'));\n             * // Prints: 0\n             * console.log(buf.indexOf('is'));\n             * // Prints: 2\n             * console.log(buf.indexOf(Buffer.from('a buffer')));\n             * // Prints: 8\n             * console.log(buf.indexOf(97));\n             * // Prints: 8 (97 is the decimal ASCII value for 'a')\n             * console.log(buf.indexOf(Buffer.from('a buffer example')));\n             * // Prints: -1\n             * console.log(buf.indexOf(Buffer.from('a buffer example').slice(0, 8)));\n             * // Prints: 8\n             *\n             * const utf16Buffer = Buffer.from('\\u039a\\u0391\\u03a3\\u03a3\\u0395', 'utf16le');\n             *\n             * console.log(utf16Buffer.indexOf('\\u03a3', 0, 'utf16le'));\n             * // Prints: 4\n             * console.log(utf16Buffer.indexOf('\\u03a3', -4, 'utf16le'));\n             * // Prints: 6\n             * ```\n             *\n             * If `value` is not a string, number, or `Buffer`, this method will throw a`TypeError`. If `value` is a number, it will be coerced to a valid byte value,\n             * an integer between 0 and 255.\n             *\n             * If `byteOffset` is not a number, it will be coerced to a number. If the result\n             * of coercion is `NaN` or `0`, then the entire buffer will be searched. This\n             * behavior matches [`String.prototype.indexOf()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/indexOf).\n             *\n             * ```js\n             * import { Buffer } from 'buffer';\n             *\n             * const b = Buffer.from('abcdef');\n             *\n             * // Passing a value that's a number, but not a valid byte.\n             * // Prints: 2, equivalent to searching for 99 or 'c'.\n             * console.log(b.indexOf(99.9));\n             * console.log(b.indexOf(256 + 99));\n             *\n             * // Passing a byteOffset that coerces to NaN or 0.\n             * // Prints: 1, searching the whole buffer.\n             * console.log(b.indexOf('b', undefined));\n             * console.log(b.indexOf('b', {}));\n             * console.log(b.indexOf('b', null));\n             * console.log(b.indexOf('b', []));\n             * ```\n             *\n             * If `value` is an empty string or empty `Buffer` and `byteOffset` is less\n             * than `buf.length`, `byteOffset` will be returned. If `value` is empty and`byteOffset` is at least `buf.length`, `buf.length` will be returned.\n             * @since v1.5.0\n             * @param value What to search for.\n             * @param [byteOffset=0] Where to begin searching in `buf`. If negative, then offset is calculated from the end of `buf`.\n             * @param [encoding='utf8'] If `value` is a string, this is the encoding used to determine the binary representation of the string that will be searched for in `buf`.\n             * @return The index of the first occurrence of `value` in `buf`, or `-1` if `buf` does not contain `value`.\n             */\n            indexOf(value: string | number | Uint8Array, byteOffset?: number, encoding?: BufferEncoding): number;\n            /**\n             * Identical to `buf.indexOf()`, except the last occurrence of `value` is found\n             * rather than the first occurrence.\n             *\n             * ```js\n             * import { Buffer } from 'buffer';\n             *\n             * const buf = Buffer.from('this buffer is a buffer');\n             *\n             * console.log(buf.lastIndexOf('this'));\n             * // Prints: 0\n             * console.log(buf.lastIndexOf('buffer'));\n             * // Prints: 17\n             * console.log(buf.lastIndexOf(Buffer.from('buffer')));\n             * // Prints: 17\n             * console.log(buf.lastIndexOf(97));\n             * // Prints: 15 (97 is the decimal ASCII value for 'a')\n             * console.log(buf.lastIndexOf(Buffer.from('yolo')));\n             * // Prints: -1\n             * console.log(buf.lastIndexOf('buffer', 5));\n             * // Prints: 5\n             * console.log(buf.lastIndexOf('buffer', 4));\n             * // Prints: -1\n             *\n             * const utf16Buffer = Buffer.from('\\u039a\\u0391\\u03a3\\u03a3\\u0395', 'utf16le');\n             *\n             * console.log(utf16Buffer.lastIndexOf('\\u03a3', undefined, 'utf16le'));\n             * // Prints: 6\n             * console.log(utf16Buffer.lastIndexOf('\\u03a3', -5, 'utf16le'));\n             * // Prints: 4\n             * ```\n             *\n             * If `value` is not a string, number, or `Buffer`, this method will throw a`TypeError`. If `value` is a number, it will be coerced to a valid byte value,\n             * an integer between 0 and 255.\n             *\n             * If `byteOffset` is not a number, it will be coerced to a number. Any arguments\n             * that coerce to `NaN`, like `{}` or `undefined`, will search the whole buffer.\n             * This behavior matches [`String.prototype.lastIndexOf()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/lastIndexOf).\n             *\n             * ```js\n             * import { Buffer } from 'buffer';\n             *\n             * const b = Buffer.from('abcdef');\n             *\n             * // Passing a value that's a number, but not a valid byte.\n             * // Prints: 2, equivalent to searching for 99 or 'c'.\n             * console.log(b.lastIndexOf(99.9));\n             * console.log(b.lastIndexOf(256 + 99));\n             *\n             * // Passing a byteOffset that coerces to NaN.\n             * // Prints: 1, searching the whole buffer.\n             * console.log(b.lastIndexOf('b', undefined));\n             * console.log(b.lastIndexOf('b', {}));\n             *\n             * // Passing a byteOffset that coerces to 0.\n             * // Prints: -1, equivalent to passing 0.\n             * console.log(b.lastIndexOf('b', null));\n             * console.log(b.lastIndexOf('b', []));\n             * ```\n             *\n             * If `value` is an empty string or empty `Buffer`, `byteOffset` will be returned.\n             * @since v6.0.0\n             * @param value What to search for.\n             * @param [byteOffset=buf.length - 1] Where to begin searching in `buf`. If negative, then offset is calculated from the end of `buf`.\n             * @param [encoding='utf8'] If `value` is a string, this is the encoding used to determine the binary representation of the string that will be searched for in `buf`.\n             * @return The index of the last occurrence of `value` in `buf`, or `-1` if `buf` does not contain `value`.\n             */\n            lastIndexOf(value: string | number | Uint8Array, byteOffset?: number, encoding?: BufferEncoding): number;\n            /**\n             * Creates and returns an [iterator](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols) of `[index, byte]` pairs from the contents\n             * of `buf`.\n             *\n             * ```js\n             * import { Buffer } from 'buffer';\n             *\n             * // Log the entire contents of a `Buffer`.\n             *\n             * const buf = Buffer.from('buffer');\n             *\n             * for (const pair of buf.entries()) {\n             *   console.log(pair);\n             * }\n             * // Prints:\n             * //   [0, 98]\n             * //   [1, 117]\n             * //   [2, 102]\n             * //   [3, 102]\n             * //   [4, 101]\n             * //   [5, 114]\n             * ```\n             * @since v1.1.0\n             */\n            entries(): IterableIterator<[number, number]>;\n            /**\n             * Equivalent to `buf.indexOf() !== -1`.\n             *\n             * ```js\n             * import { Buffer } from 'buffer';\n             *\n             * const buf = Buffer.from('this is a buffer');\n             *\n             * console.log(buf.includes('this'));\n             * // Prints: true\n             * console.log(buf.includes('is'));\n             * // Prints: true\n             * console.log(buf.includes(Buffer.from('a buffer')));\n             * // Prints: true\n             * console.log(buf.includes(97));\n             * // Prints: true (97 is the decimal ASCII value for 'a')\n             * console.log(buf.includes(Buffer.from('a buffer example')));\n             * // Prints: false\n             * console.log(buf.includes(Buffer.from('a buffer example').slice(0, 8)));\n             * // Prints: true\n             * console.log(buf.includes('this', 4));\n             * // Prints: false\n             * ```\n             * @since v5.3.0\n             * @param value What to search for.\n             * @param [byteOffset=0] Where to begin searching in `buf`. If negative, then offset is calculated from the end of `buf`.\n             * @param [encoding='utf8'] If `value` is a string, this is its encoding.\n             * @return `true` if `value` was found in `buf`, `false` otherwise.\n             */\n            includes(value: string | number | Buffer, byteOffset?: number, encoding?: BufferEncoding): boolean;\n            /**\n             * Creates and returns an [iterator](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols) of `buf` keys (indices).\n             *\n             * ```js\n             * import { Buffer } from 'buffer';\n             *\n             * const buf = Buffer.from('buffer');\n             *\n             * for (const key of buf.keys()) {\n             *   console.log(key);\n             * }\n             * // Prints:\n             * //   0\n             * //   1\n             * //   2\n             * //   3\n             * //   4\n             * //   5\n             * ```\n             * @since v1.1.0\n             */\n            keys(): IterableIterator<number>;\n            /**\n             * Creates and returns an [iterator](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols) for `buf` values (bytes). This function is\n             * called automatically when a `Buffer` is used in a `for..of` statement.\n             *\n             * ```js\n             * import { Buffer } from 'buffer';\n             *\n             * const buf = Buffer.from('buffer');\n             *\n             * for (const value of buf.values()) {\n             *   console.log(value);\n             * }\n             * // Prints:\n             * //   98\n             * //   117\n             * //   102\n             * //   102\n             * //   101\n             * //   114\n             *\n             * for (const value of buf) {\n             *   console.log(value);\n             * }\n             * // Prints:\n             * //   98\n             * //   117\n             * //   102\n             * //   102\n             * //   101\n             * //   114\n             * ```\n             * @since v1.1.0\n             */\n            values(): IterableIterator<number>;\n        }\n        var Buffer: BufferConstructor;\n        /**\n         * Decodes a string of Base64-encoded data into bytes, and encodes those bytes\n         * into a string using Latin-1 (ISO-8859-1).\n         *\n         * The `data` may be any JavaScript-value that can be coerced into a string.\n         *\n         * **This function is only provided for compatibility with legacy web platform APIs**\n         * **and should never be used in new code, because they use strings to represent**\n         * **binary data and predate the introduction of typed arrays in JavaScript.**\n         * **For code running using Node.js APIs, converting between base64-encoded strings**\n         * **and binary data should be performed using `Buffer.from(str, 'base64')` and`buf.toString('base64')`.**\n         * @since v15.13.0\n         * @deprecated Use `Buffer.from(data, 'base64')` instead.\n         * @param data The Base64-encoded input string.\n         */\n        function atob(data: string): string;\n        /**\n         * Decodes a string into bytes using Latin-1 (ISO-8859), and encodes those bytes\n         * into a string using Base64.\n         *\n         * The `data` may be any JavaScript-value that can be coerced into a string.\n         *\n         * **This function is only provided for compatibility with legacy web platform APIs**\n         * **and should never be used in new code, because they use strings to represent**\n         * **binary data and predate the introduction of typed arrays in JavaScript.**\n         * **For code running using Node.js APIs, converting between base64-encoded strings**\n         * **and binary data should be performed using `Buffer.from(str, 'base64')` and`buf.toString('base64')`.**\n         * @since v15.13.0\n         * @deprecated Use `buf.toString('base64')` instead.\n         * @param data An ASCII (Latin1) string.\n         */\n        function btoa(data: string): string;\n    }\n}\ndeclare module 'node:buffer' {\n    export * from 'buffer';\n}\n"
    },
    {
      "path": "/node_modules/@types/node/child_process.d.ts",
      "content": "/**\n * The `child_process` module provides the ability to spawn subprocesses in\n * a manner that is similar, but not identical, to [`popen(3)`](http://man7.org/linux/man-pages/man3/popen.3.html). This capability\n * is primarily provided by the {@link spawn} function:\n *\n * ```js\n * const { spawn } = require('child_process');\n * const ls = spawn('ls', ['-lh', '/usr']);\n *\n * ls.stdout.on('data', (data) => {\n *   console.log(`stdout: ${data}`);\n * });\n *\n * ls.stderr.on('data', (data) => {\n *   console.error(`stderr: ${data}`);\n * });\n *\n * ls.on('close', (code) => {\n *   console.log(`child process exited with code ${code}`);\n * });\n * ```\n *\n * By default, pipes for `stdin`, `stdout`, and `stderr` are established between\n * the parent Node.js process and the spawned subprocess. These pipes have\n * limited (and platform-specific) capacity. If the subprocess writes to\n * stdout in excess of that limit without the output being captured, the\n * subprocess blocks waiting for the pipe buffer to accept more data. This is\n * identical to the behavior of pipes in the shell. Use the `{ stdio: 'ignore' }`option if the output will not be consumed.\n *\n * The command lookup is performed using the `options.env.PATH` environment\n * variable if it is in the `options` object. Otherwise, `process.env.PATH` is\n * used.\n *\n * On Windows, environment variables are case-insensitive. Node.js\n * lexicographically sorts the `env` keys and uses the first one that\n * case-insensitively matches. Only first (in lexicographic order) entry will be\n * passed to the subprocess. This might lead to issues on Windows when passing\n * objects to the `env` option that have multiple variants of the same key, such as`PATH` and `Path`.\n *\n * The {@link spawn} method spawns the child process asynchronously,\n * without blocking the Node.js event loop. The {@link spawnSync} function provides equivalent functionality in a synchronous manner that blocks\n * the event loop until the spawned process either exits or is terminated.\n *\n * For convenience, the `child_process` module provides a handful of synchronous\n * and asynchronous alternatives to {@link spawn} and {@link spawnSync}. Each of these alternatives are implemented on\n * top of {@link spawn} or {@link spawnSync}.\n *\n * * {@link exec}: spawns a shell and runs a command within that\n * shell, passing the `stdout` and `stderr` to a callback function when\n * complete.\n * * {@link execFile}: similar to {@link exec} except\n * that it spawns the command directly without first spawning a shell by\n * default.\n * * {@link fork}: spawns a new Node.js process and invokes a\n * specified module with an IPC communication channel established that allows\n * sending messages between parent and child.\n * * {@link execSync}: a synchronous version of {@link exec} that will block the Node.js event loop.\n * * {@link execFileSync}: a synchronous version of {@link execFile} that will block the Node.js event loop.\n *\n * For certain use cases, such as automating shell scripts, the `synchronous counterparts` may be more convenient. In many cases, however,\n * the synchronous methods can have significant impact on performance due to\n * stalling the event loop while spawned processes complete.\n * @see [source](https://github.com/nodejs/node/blob/v16.9.0/lib/child_process.js)\n */\ndeclare module 'child_process' {\n    import { ObjectEncodingOptions } from 'node:fs';\n    import { EventEmitter, Abortable } from 'node:events';\n    import * as net from 'node:net';\n    import { Writable, Readable, Stream, Pipe } from 'node:stream';\n    import { URL } from 'node:url';\n    type Serializable = string | object | number | boolean | bigint;\n    type SendHandle = net.Socket | net.Server;\n    /**\n     * Instances of the `ChildProcess` represent spawned child processes.\n     *\n     * Instances of `ChildProcess` are not intended to be created directly. Rather,\n     * use the {@link spawn}, {@link exec},{@link execFile}, or {@link fork} methods to create\n     * instances of `ChildProcess`.\n     * @since v2.2.0\n     */\n    class ChildProcess extends EventEmitter {\n        /**\n         * A `Writable Stream` that represents the child process's `stdin`.\n         *\n         * If a child process waits to read all of its input, the child will not continue\n         * until this stream has been closed via `end()`.\n         *\n         * If the child was spawned with `stdio[0]` set to anything other than `'pipe'`,\n         * then this will be `null`.\n         *\n         * `subprocess.stdin` is an alias for `subprocess.stdio[0]`. Both properties will\n         * refer to the same value.\n         *\n         * The `subprocess.stdin` property can be `undefined` if the child process could\n         * not be successfully spawned.\n         * @since v0.1.90\n         */\n        stdin: Writable | null;\n        /**\n         * A `Readable Stream` that represents the child process's `stdout`.\n         *\n         * If the child was spawned with `stdio[1]` set to anything other than `'pipe'`,\n         * then this will be `null`.\n         *\n         * `subprocess.stdout` is an alias for `subprocess.stdio[1]`. Both properties will\n         * refer to the same value.\n         *\n         * ```js\n         * const { spawn } = require('child_process');\n         *\n         * const subprocess = spawn('ls');\n         *\n         * subprocess.stdout.on('data', (data) => {\n         *   console.log(`Received chunk ${data}`);\n         * });\n         * ```\n         *\n         * The `subprocess.stdout` property can be `null` if the child process could\n         * not be successfully spawned.\n         * @since v0.1.90\n         */\n        stdout: Readable | null;\n        /**\n         * A `Readable Stream` that represents the child process's `stderr`.\n         *\n         * If the child was spawned with `stdio[2]` set to anything other than `'pipe'`,\n         * then this will be `null`.\n         *\n         * `subprocess.stderr` is an alias for `subprocess.stdio[2]`. Both properties will\n         * refer to the same value.\n         *\n         * The `subprocess.stderr` property can be `null` if the child process could\n         * not be successfully spawned.\n         * @since v0.1.90\n         */\n        stderr: Readable | null;\n        /**\n         * The `subprocess.channel` property is a reference to the child's IPC channel. If\n         * no IPC channel currently exists, this property is `undefined`.\n         * @since v7.1.0\n         */\n        readonly channel?: Pipe | null | undefined;\n        /**\n         * A sparse array of pipes to the child process, corresponding with positions in\n         * the `stdio` option passed to {@link spawn} that have been set\n         * to the value `'pipe'`. `subprocess.stdio[0]`, `subprocess.stdio[1]`, and`subprocess.stdio[2]` are also available as `subprocess.stdin`,`subprocess.stdout`, and `subprocess.stderr`,\n         * respectively.\n         *\n         * In the following example, only the child's fd `1` (stdout) is configured as a\n         * pipe, so only the parent's `subprocess.stdio[1]` is a stream, all other values\n         * in the array are `null`.\n         *\n         * ```js\n         * const assert = require('assert');\n         * const fs = require('fs');\n         * const child_process = require('child_process');\n         *\n         * const subprocess = child_process.spawn('ls', {\n         *   stdio: [\n         *     0, // Use parent's stdin for child.\n         *     'pipe', // Pipe child's stdout to parent.\n         *     fs.openSync('err.out', 'w'), // Direct child's stderr to a file.\n         *   ]\n         * });\n         *\n         * assert.strictEqual(subprocess.stdio[0], null);\n         * assert.strictEqual(subprocess.stdio[0], subprocess.stdin);\n         *\n         * assert(subprocess.stdout);\n         * assert.strictEqual(subprocess.stdio[1], subprocess.stdout);\n         *\n         * assert.strictEqual(subprocess.stdio[2], null);\n         * assert.strictEqual(subprocess.stdio[2], subprocess.stderr);\n         * ```\n         *\n         * The `subprocess.stdio` property can be `undefined` if the child process could\n         * not be successfully spawned.\n         * @since v0.7.10\n         */\n        readonly stdio: [\n            Writable | null,\n            // stdin\n            Readable | null,\n            // stdout\n            Readable | null,\n            // stderr\n            Readable | Writable | null | undefined,\n            // extra\n            Readable | Writable | null | undefined // extra\n        ];\n        /**\n         * The `subprocess.killed` property indicates whether the child process\n         * successfully received a signal from `subprocess.kill()`. The `killed` property\n         * does not indicate that the child process has been terminated.\n         * @since v0.5.10\n         */\n        readonly killed: boolean;\n        /**\n         * Returns the process identifier (PID) of the child process. If the child process\n         * fails to spawn due to errors, then the value is `undefined` and `error` is\n         * emitted.\n         *\n         * ```js\n         * const { spawn } = require('child_process');\n         * const grep = spawn('grep', ['ssh']);\n         *\n         * console.log(`Spawned child pid: ${grep.pid}`);\n         * grep.stdin.end();\n         * ```\n         * @since v0.1.90\n         */\n        readonly pid?: number | undefined;\n        /**\n         * The `subprocess.connected` property indicates whether it is still possible to\n         * send and receive messages from a child process. When `subprocess.connected` is`false`, it is no longer possible to send or receive messages.\n         * @since v0.7.2\n         */\n        readonly connected: boolean;\n        /**\n         * The `subprocess.exitCode` property indicates the exit code of the child process.\n         * If the child process is still running, the field will be `null`.\n         */\n        readonly exitCode: number | null;\n        /**\n         * The `subprocess.signalCode` property indicates the signal received by\n         * the child process if any, else `null`.\n         */\n        readonly signalCode: NodeJS.Signals | null;\n        /**\n         * The `subprocess.spawnargs` property represents the full list of command-line\n         * arguments the child process was launched with.\n         */\n        readonly spawnargs: string[];\n        /**\n         * The `subprocess.spawnfile` property indicates the executable file name of\n         * the child process that is launched.\n         *\n         * For {@link fork}, its value will be equal to `process.execPath`.\n         * For {@link spawn}, its value will be the name of\n         * the executable file.\n         * For {@link exec},  its value will be the name of the shell\n         * in which the child process is launched.\n         */\n        readonly spawnfile: string;\n        /**\n         * The `subprocess.kill()` method sends a signal to the child process. If no\n         * argument is given, the process will be sent the `'SIGTERM'` signal. See [`signal(7)`](http://man7.org/linux/man-pages/man7/signal.7.html) for a list of available signals. This function\n         * returns `true` if [`kill(2)`](http://man7.org/linux/man-pages/man2/kill.2.html) succeeds, and `false` otherwise.\n         *\n         * ```js\n         * const { spawn } = require('child_process');\n         * const grep = spawn('grep', ['ssh']);\n         *\n         * grep.on('close', (code, signal) => {\n         *   console.log(\n         *     `child process terminated due to receipt of signal ${signal}`);\n         * });\n         *\n         * // Send SIGHUP to process.\n         * grep.kill('SIGHUP');\n         * ```\n         *\n         * The `ChildProcess` object may emit an `'error'` event if the signal\n         * cannot be delivered. Sending a signal to a child process that has already exited\n         * is not an error but may have unforeseen consequences. Specifically, if the\n         * process identifier (PID) has been reassigned to another process, the signal will\n         * be delivered to that process instead which can have unexpected results.\n         *\n         * While the function is called `kill`, the signal delivered to the child process\n         * may not actually terminate the process.\n         *\n         * See [`kill(2)`](http://man7.org/linux/man-pages/man2/kill.2.html) for reference.\n         *\n         * On Windows, where POSIX signals do not exist, the `signal` argument will be\n         * ignored, and the process will be killed forcefully and abruptly (similar to`'SIGKILL'`).\n         * See `Signal Events` for more details.\n         *\n         * On Linux, child processes of child processes will not be terminated\n         * when attempting to kill their parent. This is likely to happen when running a\n         * new process in a shell or with the use of the `shell` option of `ChildProcess`:\n         *\n         * ```js\n         * 'use strict';\n         * const { spawn } = require('child_process');\n         *\n         * const subprocess = spawn(\n         *   'sh',\n         *   [\n         *     '-c',\n         *     `node -e \"setInterval(() => {\n         *       console.log(process.pid, 'is alive')\n         *     }, 500);\"`,\n         *   ], {\n         *     stdio: ['inherit', 'inherit', 'inherit']\n         *   }\n         * );\n         *\n         * setTimeout(() => {\n         *   subprocess.kill(); // Does not terminate the Node.js process in the shell.\n         * }, 2000);\n         * ```\n         * @since v0.1.90\n         */\n        kill(signal?: NodeJS.Signals | number): boolean;\n        /**\n         * When an IPC channel has been established between the parent and child (\n         * i.e. when using {@link fork}), the `subprocess.send()` method can\n         * be used to send messages to the child process. When the child process is a\n         * Node.js instance, these messages can be received via the `'message'` event.\n         *\n         * The message goes through serialization and parsing. The resulting\n         * message might not be the same as what is originally sent.\n         *\n         * For example, in the parent script:\n         *\n         * ```js\n         * const cp = require('child_process');\n         * const n = cp.fork(`${__dirname}/sub.js`);\n         *\n         * n.on('message', (m) => {\n         *   console.log('PARENT got message:', m);\n         * });\n         *\n         * // Causes the child to print: CHILD got message: { hello: 'world' }\n         * n.send({ hello: 'world' });\n         * ```\n         *\n         * And then the child script, `'sub.js'` might look like this:\n         *\n         * ```js\n         * process.on('message', (m) => {\n         *   console.log('CHILD got message:', m);\n         * });\n         *\n         * // Causes the parent to print: PARENT got message: { foo: 'bar', baz: null }\n         * process.send({ foo: 'bar', baz: NaN });\n         * ```\n         *\n         * Child Node.js processes will have a `process.send()` method of their own\n         * that allows the child to send messages back to the parent.\n         *\n         * There is a special case when sending a `{cmd: 'NODE_foo'}` message. Messages\n         * containing a `NODE_` prefix in the `cmd` property are reserved for use within\n         * Node.js core and will not be emitted in the child's `'message'` event. Rather, such messages are emitted using the`'internalMessage'` event and are consumed internally by Node.js.\n         * Applications should avoid using such messages or listening for`'internalMessage'` events as it is subject to change without notice.\n         *\n         * The optional `sendHandle` argument that may be passed to `subprocess.send()` is\n         * for passing a TCP server or socket object to the child process. The child will\n         * receive the object as the second argument passed to the callback function\n         * registered on the `'message'` event. Any data that is received\n         * and buffered in the socket will not be sent to the child.\n         *\n         * The optional `callback` is a function that is invoked after the message is\n         * sent but before the child may have received it. The function is called with a\n         * single argument: `null` on success, or an `Error` object on failure.\n         *\n         * If no `callback` function is provided and the message cannot be sent, an`'error'` event will be emitted by the `ChildProcess` object. This can\n         * happen, for instance, when the child process has already exited.\n         *\n         * `subprocess.send()` will return `false` if the channel has closed or when the\n         * backlog of unsent messages exceeds a threshold that makes it unwise to send\n         * more. Otherwise, the method returns `true`. The `callback` function can be\n         * used to implement flow control.\n         *\n         * #### Example: sending a server object\n         *\n         * The `sendHandle` argument can be used, for instance, to pass the handle of\n         * a TCP server object to the child process as illustrated in the example below:\n         *\n         * ```js\n         * const subprocess = require('child_process').fork('subprocess.js');\n         *\n         * // Open up the server object and send the handle.\n         * const server = require('net').createServer();\n         * server.on('connection', (socket) => {\n         *   socket.end('handled by parent');\n         * });\n         * server.listen(1337, () => {\n         *   subprocess.send('server', server);\n         * });\n         * ```\n         *\n         * The child would then receive the server object as:\n         *\n         * ```js\n         * process.on('message', (m, server) => {\n         *   if (m === 'server') {\n         *     server.on('connection', (socket) => {\n         *       socket.end('handled by child');\n         *     });\n         *   }\n         * });\n         * ```\n         *\n         * Once the server is now shared between the parent and child, some connections\n         * can be handled by the parent and some by the child.\n         *\n         * While the example above uses a server created using the `net` module, `dgram`module servers use exactly the same workflow with the exceptions of listening on\n         * a `'message'` event instead of `'connection'` and using `server.bind()` instead\n         * of `server.listen()`. This is, however, currently only supported on Unix\n         * platforms.\n         *\n         * #### Example: sending a socket object\n         *\n         * Similarly, the `sendHandler` argument can be used to pass the handle of a\n         * socket to the child process. The example below spawns two children that each\n         * handle connections with \"normal\" or \"special\" priority:\n         *\n         * ```js\n         * const { fork } = require('child_process');\n         * const normal = fork('subprocess.js', ['normal']);\n         * const special = fork('subprocess.js', ['special']);\n         *\n         * // Open up the server and send sockets to child. Use pauseOnConnect to prevent\n         * // the sockets from being read before they are sent to the child process.\n         * const server = require('net').createServer({ pauseOnConnect: true });\n         * server.on('connection', (socket) => {\n         *\n         *   // If this is special priority...\n         *   if (socket.remoteAddress === '74.125.127.100') {\n         *     special.send('socket', socket);\n         *     return;\n         *   }\n         *   // This is normal priority.\n         *   normal.send('socket', socket);\n         * });\n         * server.listen(1337);\n         * ```\n         *\n         * The `subprocess.js` would receive the socket handle as the second argument\n         * passed to the event callback function:\n         *\n         * ```js\n         * process.on('message', (m, socket) => {\n         *   if (m === 'socket') {\n         *     if (socket) {\n         *       // Check that the client socket exists.\n         *       // It is possible for the socket to be closed between the time it is\n         *       // sent and the time it is received in the child process.\n         *       socket.end(`Request handled with ${process.argv[2]} priority`);\n         *     }\n         *   }\n         * });\n         * ```\n         *\n         * Do not use `.maxConnections` on a socket that has been passed to a subprocess.\n         * The parent cannot track when the socket is destroyed.\n         *\n         * Any `'message'` handlers in the subprocess should verify that `socket` exists,\n         * as the connection may have been closed during the time it takes to send the\n         * connection to the child.\n         * @since v0.5.9\n         * @param options The `options` argument, if present, is an object used to parameterize the sending of certain types of handles. `options` supports the following properties:\n         */\n        send(message: Serializable, callback?: (error: Error | null) => void): boolean;\n        send(message: Serializable, sendHandle?: SendHandle, callback?: (error: Error | null) => void): boolean;\n        send(message: Serializable, sendHandle?: SendHandle, options?: MessageOptions, callback?: (error: Error | null) => void): boolean;\n        /**\n         * Closes the IPC channel between parent and child, allowing the child to exit\n         * gracefully once there are no other connections keeping it alive. After calling\n         * this method the `subprocess.connected` and `process.connected` properties in\n         * both the parent and child (respectively) will be set to `false`, and it will be\n         * no longer possible to pass messages between the processes.\n         *\n         * The `'disconnect'` event will be emitted when there are no messages in the\n         * process of being received. This will most often be triggered immediately after\n         * calling `subprocess.disconnect()`.\n         *\n         * When the child process is a Node.js instance (e.g. spawned using {@link fork}), the `process.disconnect()` method can be invoked\n         * within the child process to close the IPC channel as well.\n         * @since v0.7.2\n         */\n        disconnect(): void;\n        /**\n         * By default, the parent will wait for the detached child to exit. To prevent the\n         * parent from waiting for a given `subprocess` to exit, use the`subprocess.unref()` method. Doing so will cause the parent's event loop to not\n         * include the child in its reference count, allowing the parent to exit\n         * independently of the child, unless there is an established IPC channel between\n         * the child and the parent.\n         *\n         * ```js\n         * const { spawn } = require('child_process');\n         *\n         * const subprocess = spawn(process.argv[0], ['child_program.js'], {\n         *   detached: true,\n         *   stdio: 'ignore'\n         * });\n         *\n         * subprocess.unref();\n         * ```\n         * @since v0.7.10\n         */\n        unref(): void;\n        /**\n         * Calling `subprocess.ref()` after making a call to `subprocess.unref()` will\n         * restore the removed reference count for the child process, forcing the parent\n         * to wait for the child to exit before exiting itself.\n         *\n         * ```js\n         * const { spawn } = require('child_process');\n         *\n         * const subprocess = spawn(process.argv[0], ['child_program.js'], {\n         *   detached: true,\n         *   stdio: 'ignore'\n         * });\n         *\n         * subprocess.unref();\n         * subprocess.ref();\n         * ```\n         * @since v0.7.10\n         */\n        ref(): void;\n        /**\n         * events.EventEmitter\n         * 1. close\n         * 2. disconnect\n         * 3. error\n         * 4. exit\n         * 5. message\n         * 6. spawn\n         */\n        addListener(event: string, listener: (...args: any[]) => void): this;\n        addListener(event: 'close', listener: (code: number | null, signal: NodeJS.Signals | null) => void): this;\n        addListener(event: 'disconnect', listener: () => void): this;\n        addListener(event: 'error', listener: (err: Error) => void): this;\n        addListener(event: 'exit', listener: (code: number | null, signal: NodeJS.Signals | null) => void): this;\n        addListener(event: 'message', listener: (message: Serializable, sendHandle: SendHandle) => void): this;\n        addListener(event: 'spawn', listener: () => void): this;\n        emit(event: string | symbol, ...args: any[]): boolean;\n        emit(event: 'close', code: number | null, signal: NodeJS.Signals | null): boolean;\n        emit(event: 'disconnect'): boolean;\n        emit(event: 'error', err: Error): boolean;\n        emit(event: 'exit', code: number | null, signal: NodeJS.Signals | null): boolean;\n        emit(event: 'message', message: Serializable, sendHandle: SendHandle): boolean;\n        emit(event: 'spawn', listener: () => void): boolean;\n        on(event: string, listener: (...args: any[]) => void): this;\n        on(event: 'close', listener: (code: number | null, signal: NodeJS.Signals | null) => void): this;\n        on(event: 'disconnect', listener: () => void): this;\n        on(event: 'error', listener: (err: Error) => void): this;\n        on(event: 'exit', listener: (code: number | null, signal: NodeJS.Signals | null) => void): this;\n        on(event: 'message', listener: (message: Serializable, sendHandle: SendHandle) => void): this;\n        on(event: 'spawn', listener: () => void): this;\n        once(event: string, listener: (...args: any[]) => void): this;\n        once(event: 'close', listener: (code: number | null, signal: NodeJS.Signals | null) => void): this;\n        once(event: 'disconnect', listener: () => void): this;\n        once(event: 'error', listener: (err: Error) => void): this;\n        once(event: 'exit', listener: (code: number | null, signal: NodeJS.Signals | null) => void): this;\n        once(event: 'message', listener: (message: Serializable, sendHandle: SendHandle) => void): this;\n        once(event: 'spawn', listener: () => void): this;\n        prependListener(event: string, listener: (...args: any[]) => void): this;\n        prependListener(event: 'close', listener: (code: number | null, signal: NodeJS.Signals | null) => void): this;\n        prependListener(event: 'disconnect', listener: () => void): this;\n        prependListener(event: 'error', listener: (err: Error) => void): this;\n        prependListener(event: 'exit', listener: (code: number | null, signal: NodeJS.Signals | null) => void): this;\n        prependListener(event: 'message', listener: (message: Serializable, sendHandle: SendHandle) => void): this;\n        prependListener(event: 'spawn', listener: () => void): this;\n        prependOnceListener(event: string, listener: (...args: any[]) => void): this;\n        prependOnceListener(event: 'close', listener: (code: number | null, signal: NodeJS.Signals | null) => void): this;\n        prependOnceListener(event: 'disconnect', listener: () => void): this;\n        prependOnceListener(event: 'error', listener: (err: Error) => void): this;\n        prependOnceListener(event: 'exit', listener: (code: number | null, signal: NodeJS.Signals | null) => void): this;\n        prependOnceListener(event: 'message', listener: (message: Serializable, sendHandle: SendHandle) => void): this;\n        prependOnceListener(event: 'spawn', listener: () => void): this;\n    }\n    // return this object when stdio option is undefined or not specified\n    interface ChildProcessWithoutNullStreams extends ChildProcess {\n        stdin: Writable;\n        stdout: Readable;\n        stderr: Readable;\n        readonly stdio: [\n            Writable,\n            Readable,\n            Readable,\n            // stderr\n            Readable | Writable | null | undefined,\n            // extra, no modification\n            Readable | Writable | null | undefined // extra, no modification\n        ];\n    }\n    // return this object when stdio option is a tuple of 3\n    interface ChildProcessByStdio<I extends null | Writable, O extends null | Readable, E extends null | Readable> extends ChildProcess {\n        stdin: I;\n        stdout: O;\n        stderr: E;\n        readonly stdio: [\n            I,\n            O,\n            E,\n            Readable | Writable | null | undefined,\n            // extra, no modification\n            Readable | Writable | null | undefined // extra, no modification\n        ];\n    }\n    interface MessageOptions {\n        keepOpen?: boolean | undefined;\n    }\n    type IOType = 'overlapped' | 'pipe' | 'ignore' | 'inherit';\n    type StdioOptions = IOType | Array<IOType | 'ipc' | Stream | number | null | undefined>;\n    type SerializationType = 'json' | 'advanced';\n    interface MessagingOptions extends Abortable {\n        /**\n         * Specify the kind of serialization used for sending messages between processes.\n         * @default 'json'\n         */\n        serialization?: SerializationType | undefined;\n        /**\n         * The signal value to be used when the spawned process will be killed by the abort signal.\n         * @default 'SIGTERM'\n         */\n        killSignal?: NodeJS.Signals | number | undefined;\n        /**\n         * In milliseconds the maximum amount of time the process is allowed to run.\n         */\n        timeout?: number | undefined;\n    }\n    interface ProcessEnvOptions {\n        uid?: number | undefined;\n        gid?: number | undefined;\n        cwd?: string | URL | undefined;\n        env?: NodeJS.ProcessEnv | undefined;\n    }\n    interface CommonOptions extends ProcessEnvOptions {\n        /**\n         * @default false\n         */\n        windowsHide?: boolean | undefined;\n        /**\n         * @default 0\n         */\n        timeout?: number | undefined;\n    }\n    interface CommonSpawnOptions extends CommonOptions, MessagingOptions, Abortable {\n        argv0?: string | undefined;\n        stdio?: StdioOptions | undefined;\n        shell?: boolean | string | undefined;\n        windowsVerbatimArguments?: boolean | undefined;\n    }\n    interface SpawnOptions extends CommonSpawnOptions {\n        detached?: boolean | undefined;\n    }\n    interface SpawnOptionsWithoutStdio extends SpawnOptions {\n        stdio?: StdioPipeNamed | StdioPipe[] | undefined;\n    }\n    type StdioNull = 'inherit' | 'ignore' | Stream;\n    type StdioPipeNamed = 'pipe' | 'overlapped';\n    type StdioPipe = undefined | null | StdioPipeNamed;\n    interface SpawnOptionsWithStdioTuple<Stdin extends StdioNull | StdioPipe, Stdout extends StdioNull | StdioPipe, Stderr extends StdioNull | StdioPipe> extends SpawnOptions {\n        stdio: [Stdin, Stdout, Stderr];\n    }\n    /**\n     * The `child_process.spawn()` method spawns a new process using the given`command`, with command-line arguments in `args`. If omitted, `args` defaults\n     * to an empty array.\n     *\n     * **If the `shell` option is enabled, do not pass unsanitized user input to this**\n     * **function. Any input containing shell metacharacters may be used to trigger**\n     * **arbitrary command execution.**\n     *\n     * A third argument may be used to specify additional options, with these defaults:\n     *\n     * ```js\n     * const defaults = {\n     *   cwd: undefined,\n     *   env: process.env\n     * };\n     * ```\n     *\n     * Use `cwd` to specify the working directory from which the process is spawned.\n     * If not given, the default is to inherit the current working directory. If given,\n     * but the path does not exist, the child process emits an `ENOENT` error\n     * and exits immediately. `ENOENT` is also emitted when the command\n     * does not exist.\n     *\n     * Use `env` to specify environment variables that will be visible to the new\n     * process, the default is `process.env`.\n     *\n     * `undefined` values in `env` will be ignored.\n     *\n     * Example of running `ls -lh /usr`, capturing `stdout`, `stderr`, and the\n     * exit code:\n     *\n     * ```js\n     * const { spawn } = require('child_process');\n     * const ls = spawn('ls', ['-lh', '/usr']);\n     *\n     * ls.stdout.on('data', (data) => {\n     *   console.log(`stdout: ${data}`);\n     * });\n     *\n     * ls.stderr.on('data', (data) => {\n     *   console.error(`stderr: ${data}`);\n     * });\n     *\n     * ls.on('close', (code) => {\n     *   console.log(`child process exited with code ${code}`);\n     * });\n     * ```\n     *\n     * Example: A very elaborate way to run `ps ax | grep ssh`\n     *\n     * ```js\n     * const { spawn } = require('child_process');\n     * const ps = spawn('ps', ['ax']);\n     * const grep = spawn('grep', ['ssh']);\n     *\n     * ps.stdout.on('data', (data) => {\n     *   grep.stdin.write(data);\n     * });\n     *\n     * ps.stderr.on('data', (data) => {\n     *   console.error(`ps stderr: ${data}`);\n     * });\n     *\n     * ps.on('close', (code) => {\n     *   if (code !== 0) {\n     *     console.log(`ps process exited with code ${code}`);\n     *   }\n     *   grep.stdin.end();\n     * });\n     *\n     * grep.stdout.on('data', (data) => {\n     *   console.log(data.toString());\n     * });\n     *\n     * grep.stderr.on('data', (data) => {\n     *   console.error(`grep stderr: ${data}`);\n     * });\n     *\n     * grep.on('close', (code) => {\n     *   if (code !== 0) {\n     *     console.log(`grep process exited with code ${code}`);\n     *   }\n     * });\n     * ```\n     *\n     * Example of checking for failed `spawn`:\n     *\n     * ```js\n     * const { spawn } = require('child_process');\n     * const subprocess = spawn('bad_command');\n     *\n     * subprocess.on('error', (err) => {\n     *   console.error('Failed to start subprocess.');\n     * });\n     * ```\n     *\n     * Certain platforms (macOS, Linux) will use the value of `argv[0]` for the process\n     * title while others (Windows, SunOS) will use `command`.\n     *\n     * Node.js currently overwrites `argv[0]` with `process.execPath` on startup, so`process.argv[0]` in a Node.js child process will not match the `argv0`parameter passed to `spawn` from the parent,\n     * retrieve it with the`process.argv0` property instead.\n     *\n     * If the `signal` option is enabled, calling `.abort()` on the corresponding`AbortController` is similar to calling `.kill()` on the child process except\n     * the error passed to the callback will be an `AbortError`:\n     *\n     * ```js\n     * const { spawn } = require('child_process');\n     * const controller = new AbortController();\n     * const { signal } = controller;\n     * const grep = spawn('grep', ['ssh'], { signal });\n     * grep.on('error', (err) => {\n     *   // This will be called with err being an AbortError if the controller aborts\n     * });\n     * controller.abort(); // Stops the child process\n     * ```\n     * @since v0.1.90\n     * @param command The command to run.\n     * @param args List of string arguments.\n     */\n    function spawn(command: string, options?: SpawnOptionsWithoutStdio): ChildProcessWithoutNullStreams;\n    function spawn(command: string, options: SpawnOptionsWithStdioTuple<StdioPipe, StdioPipe, StdioPipe>): ChildProcessByStdio<Writable, Readable, Readable>;\n    function spawn(command: string, options: SpawnOptionsWithStdioTuple<StdioPipe, StdioPipe, StdioNull>): ChildProcessByStdio<Writable, Readable, null>;\n    function spawn(command: string, options: SpawnOptionsWithStdioTuple<StdioPipe, StdioNull, StdioPipe>): ChildProcessByStdio<Writable, null, Readable>;\n    function spawn(command: string, options: SpawnOptionsWithStdioTuple<StdioNull, StdioPipe, StdioPipe>): ChildProcessByStdio<null, Readable, Readable>;\n    function spawn(command: string, options: SpawnOptionsWithStdioTuple<StdioPipe, StdioNull, StdioNull>): ChildProcessByStdio<Writable, null, null>;\n    function spawn(command: string, options: SpawnOptionsWithStdioTuple<StdioNull, StdioPipe, StdioNull>): ChildProcessByStdio<null, Readable, null>;\n    function spawn(command: string, options: SpawnOptionsWithStdioTuple<StdioNull, StdioNull, StdioPipe>): ChildProcessByStdio<null, null, Readable>;\n    function spawn(command: string, options: SpawnOptionsWithStdioTuple<StdioNull, StdioNull, StdioNull>): ChildProcessByStdio<null, null, null>;\n    function spawn(command: string, options: SpawnOptions): ChildProcess;\n    // overloads of spawn with 'args'\n    function spawn(command: string, args?: ReadonlyArray<string>, options?: SpawnOptionsWithoutStdio): ChildProcessWithoutNullStreams;\n    function spawn(command: string, args: ReadonlyArray<string>, options: SpawnOptionsWithStdioTuple<StdioPipe, StdioPipe, StdioPipe>): ChildProcessByStdio<Writable, Readable, Readable>;\n    function spawn(command: string, args: ReadonlyArray<string>, options: SpawnOptionsWithStdioTuple<StdioPipe, StdioPipe, StdioNull>): ChildProcessByStdio<Writable, Readable, null>;\n    function spawn(command: string, args: ReadonlyArray<string>, options: SpawnOptionsWithStdioTuple<StdioPipe, StdioNull, StdioPipe>): ChildProcessByStdio<Writable, null, Readable>;\n    function spawn(command: string, args: ReadonlyArray<string>, options: SpawnOptionsWithStdioTuple<StdioNull, StdioPipe, StdioPipe>): ChildProcessByStdio<null, Readable, Readable>;\n    function spawn(command: string, args: ReadonlyArray<string>, options: SpawnOptionsWithStdioTuple<StdioPipe, StdioNull, StdioNull>): ChildProcessByStdio<Writable, null, null>;\n    function spawn(command: string, args: ReadonlyArray<string>, options: SpawnOptionsWithStdioTuple<StdioNull, StdioPipe, StdioNull>): ChildProcessByStdio<null, Readable, null>;\n    function spawn(command: string, args: ReadonlyArray<string>, options: SpawnOptionsWithStdioTuple<StdioNull, StdioNull, StdioPipe>): ChildProcessByStdio<null, null, Readable>;\n    function spawn(command: string, args: ReadonlyArray<string>, options: SpawnOptionsWithStdioTuple<StdioNull, StdioNull, StdioNull>): ChildProcessByStdio<null, null, null>;\n    function spawn(command: string, args: ReadonlyArray<string>, options: SpawnOptions): ChildProcess;\n    interface ExecOptions extends CommonOptions {\n        shell?: string | undefined;\n        signal?: AbortSignal | undefined;\n        maxBuffer?: number | undefined;\n        killSignal?: NodeJS.Signals | number | undefined;\n    }\n    interface ExecOptionsWithStringEncoding extends ExecOptions {\n        encoding: BufferEncoding;\n    }\n    interface ExecOptionsWithBufferEncoding extends ExecOptions {\n        encoding: BufferEncoding | null; // specify `null`.\n    }\n    interface ExecException extends Error {\n        cmd?: string | undefined;\n        killed?: boolean | undefined;\n        code?: number | undefined;\n        signal?: NodeJS.Signals | undefined;\n    }\n    /**\n     * Spawns a shell then executes the `command` within that shell, buffering any\n     * generated output. The `command` string passed to the exec function is processed\n     * directly by the shell and special characters (vary based on [shell](https://en.wikipedia.org/wiki/List_of_command-line_interpreters))\n     * need to be dealt with accordingly:\n     *\n     * ```js\n     * const { exec } = require('child_process');\n     *\n     * exec('\"/path/to/test file/test.sh\" arg1 arg2');\n     * // Double quotes are used so that the space in the path is not interpreted as\n     * // a delimiter of multiple arguments.\n     *\n     * exec('echo \"The \\\\$HOME variable is $HOME\"');\n     * // The $HOME variable is escaped in the first instance, but not in the second.\n     * ```\n     *\n     * **Never pass unsanitized user input to this function. Any input containing shell**\n     * **metacharacters may be used to trigger arbitrary command execution.**\n     *\n     * If a `callback` function is provided, it is called with the arguments`(error, stdout, stderr)`. On success, `error` will be `null`. On error,`error` will be an instance of `Error`. The\n     * `error.code` property will be\n     * the exit code of the process. By convention, any exit code other than `0`indicates an error. `error.signal` will be the signal that terminated the\n     * process.\n     *\n     * The `stdout` and `stderr` arguments passed to the callback will contain the\n     * stdout and stderr output of the child process. By default, Node.js will decode\n     * the output as UTF-8 and pass strings to the callback. The `encoding` option\n     * can be used to specify the character encoding used to decode the stdout and\n     * stderr output. If `encoding` is `'buffer'`, or an unrecognized character\n     * encoding, `Buffer` objects will be passed to the callback instead.\n     *\n     * ```js\n     * const { exec } = require('child_process');\n     * exec('cat *.js missing_file | wc -l', (error, stdout, stderr) => {\n     *   if (error) {\n     *     console.error(`exec error: ${error}`);\n     *     return;\n     *   }\n     *   console.log(`stdout: ${stdout}`);\n     *   console.error(`stderr: ${stderr}`);\n     * });\n     * ```\n     *\n     * If `timeout` is greater than `0`, the parent will send the signal\n     * identified by the `killSignal` property (the default is `'SIGTERM'`) if the\n     * child runs longer than `timeout` milliseconds.\n     *\n     * Unlike the [`exec(3)`](http://man7.org/linux/man-pages/man3/exec.3.html) POSIX system call, `child_process.exec()` does not replace\n     * the existing process and uses a shell to execute the command.\n     *\n     * If this method is invoked as its `util.promisify()` ed version, it returns\n     * a `Promise` for an `Object` with `stdout` and `stderr` properties. The returned`ChildProcess` instance is attached to the `Promise` as a `child` property. In\n     * case of an error (including any error resulting in an exit code other than 0), a\n     * rejected promise is returned, with the same `error` object given in the\n     * callback, but with two additional properties `stdout` and `stderr`.\n     *\n     * ```js\n     * const util = require('util');\n     * const exec = util.promisify(require('child_process').exec);\n     *\n     * async function lsExample() {\n     *   const { stdout, stderr } = await exec('ls');\n     *   console.log('stdout:', stdout);\n     *   console.error('stderr:', stderr);\n     * }\n     * lsExample();\n     * ```\n     *\n     * If the `signal` option is enabled, calling `.abort()` on the corresponding`AbortController` is similar to calling `.kill()` on the child process except\n     * the error passed to the callback will be an `AbortError`:\n     *\n     * ```js\n     * const { exec } = require('child_process');\n     * const controller = new AbortController();\n     * const { signal } = controller;\n     * const child = exec('grep ssh', { signal }, (error) => {\n     *   console.log(error); // an AbortError\n     * });\n     * controller.abort();\n     * ```\n     * @since v0.1.90\n     * @param command The command to run, with space-separated arguments.\n     * @param callback called with the output when process terminates.\n     */\n    function exec(command: string, callback?: (error: ExecException | null, stdout: string, stderr: string) => void): ChildProcess;\n    // `options` with `\"buffer\"` or `null` for `encoding` means stdout/stderr are definitely `Buffer`.\n    function exec(\n        command: string,\n        options: {\n            encoding: 'buffer' | null;\n        } & ExecOptions,\n        callback?: (error: ExecException | null, stdout: Buffer, stderr: Buffer) => void\n    ): ChildProcess;\n    // `options` with well known `encoding` means stdout/stderr are definitely `string`.\n    function exec(\n        command: string,\n        options: {\n            encoding: BufferEncoding;\n        } & ExecOptions,\n        callback?: (error: ExecException | null, stdout: string, stderr: string) => void\n    ): ChildProcess;\n    // `options` with an `encoding` whose type is `string` means stdout/stderr could either be `Buffer` or `string`.\n    // There is no guarantee the `encoding` is unknown as `string` is a superset of `BufferEncoding`.\n    function exec(\n        command: string,\n        options: {\n            encoding: BufferEncoding;\n        } & ExecOptions,\n        callback?: (error: ExecException | null, stdout: string | Buffer, stderr: string | Buffer) => void\n    ): ChildProcess;\n    // `options` without an `encoding` means stdout/stderr are definitely `string`.\n    function exec(command: string, options: ExecOptions, callback?: (error: ExecException | null, stdout: string, stderr: string) => void): ChildProcess;\n    // fallback if nothing else matches. Worst case is always `string | Buffer`.\n    function exec(\n        command: string,\n        options: (ObjectEncodingOptions & ExecOptions) | undefined | null,\n        callback?: (error: ExecException | null, stdout: string | Buffer, stderr: string | Buffer) => void\n    ): ChildProcess;\n    interface PromiseWithChild<T> extends Promise<T> {\n        child: ChildProcess;\n    }\n    namespace exec {\n        function __promisify__(command: string): PromiseWithChild<{\n            stdout: string;\n            stderr: string;\n        }>;\n        function __promisify__(\n            command: string,\n            options: {\n                encoding: 'buffer' | null;\n            } & ExecOptions\n        ): PromiseWithChild<{\n            stdout: Buffer;\n            stderr: Buffer;\n        }>;\n        function __promisify__(\n            command: string,\n            options: {\n                encoding: BufferEncoding;\n            } & ExecOptions\n        ): PromiseWithChild<{\n            stdout: string;\n            stderr: string;\n        }>;\n        function __promisify__(\n            command: string,\n            options: ExecOptions\n        ): PromiseWithChild<{\n            stdout: string;\n            stderr: string;\n        }>;\n        function __promisify__(\n            command: string,\n            options?: (ObjectEncodingOptions & ExecOptions) | null\n        ): PromiseWithChild<{\n            stdout: string | Buffer;\n            stderr: string | Buffer;\n        }>;\n    }\n    interface ExecFileOptions extends CommonOptions, Abortable {\n        maxBuffer?: number | undefined;\n        killSignal?: NodeJS.Signals | number | undefined;\n        windowsVerbatimArguments?: boolean | undefined;\n        shell?: boolean | string | undefined;\n        signal?: AbortSignal | undefined;\n    }\n    interface ExecFileOptionsWithStringEncoding extends ExecFileOptions {\n        encoding: BufferEncoding;\n    }\n    interface ExecFileOptionsWithBufferEncoding extends ExecFileOptions {\n        encoding: 'buffer' | null;\n    }\n    interface ExecFileOptionsWithOtherEncoding extends ExecFileOptions {\n        encoding: BufferEncoding;\n    }\n    type ExecFileException = ExecException & NodeJS.ErrnoException;\n    /**\n     * The `child_process.execFile()` function is similar to {@link exec} except that it does not spawn a shell by default. Rather, the specified\n     * executable `file` is spawned directly as a new process making it slightly more\n     * efficient than {@link exec}.\n     *\n     * The same options as {@link exec} are supported. Since a shell is\n     * not spawned, behaviors such as I/O redirection and file globbing are not\n     * supported.\n     *\n     * ```js\n     * const { execFile } = require('child_process');\n     * const child = execFile('node', ['--version'], (error, stdout, stderr) => {\n     *   if (error) {\n     *     throw error;\n     *   }\n     *   console.log(stdout);\n     * });\n     * ```\n     *\n     * The `stdout` and `stderr` arguments passed to the callback will contain the\n     * stdout and stderr output of the child process. By default, Node.js will decode\n     * the output as UTF-8 and pass strings to the callback. The `encoding` option\n     * can be used to specify the character encoding used to decode the stdout and\n     * stderr output. If `encoding` is `'buffer'`, or an unrecognized character\n     * encoding, `Buffer` objects will be passed to the callback instead.\n     *\n     * If this method is invoked as its `util.promisify()` ed version, it returns\n     * a `Promise` for an `Object` with `stdout` and `stderr` properties. The returned`ChildProcess` instance is attached to the `Promise` as a `child` property. In\n     * case of an error (including any error resulting in an exit code other than 0), a\n     * rejected promise is returned, with the same `error` object given in the\n     * callback, but with two additional properties `stdout` and `stderr`.\n     *\n     * ```js\n     * const util = require('util');\n     * const execFile = util.promisify(require('child_process').execFile);\n     * async function getVersion() {\n     *   const { stdout } = await execFile('node', ['--version']);\n     *   console.log(stdout);\n     * }\n     * getVersion();\n     * ```\n     *\n     * **If the `shell` option is enabled, do not pass unsanitized user input to this**\n     * **function. Any input containing shell metacharacters may be used to trigger**\n     * **arbitrary command execution.**\n     *\n     * If the `signal` option is enabled, calling `.abort()` on the corresponding`AbortController` is similar to calling `.kill()` on the child process except\n     * the error passed to the callback will be an `AbortError`:\n     *\n     * ```js\n     * const { execFile } = require('child_process');\n     * const controller = new AbortController();\n     * const { signal } = controller;\n     * const child = execFile('node', ['--version'], { signal }, (error) => {\n     *   console.log(error); // an AbortError\n     * });\n     * controller.abort();\n     * ```\n     * @since v0.1.91\n     * @param file The name or path of the executable file to run.\n     * @param args List of string arguments.\n     * @param callback Called with the output when process terminates.\n     */\n    function execFile(file: string): ChildProcess;\n    function execFile(file: string, options: (ObjectEncodingOptions & ExecFileOptions) | undefined | null): ChildProcess;\n    function execFile(file: string, args?: ReadonlyArray<string> | null): ChildProcess;\n    function execFile(file: string, args: ReadonlyArray<string> | undefined | null, options: (ObjectEncodingOptions & ExecFileOptions) | undefined | null): ChildProcess;\n    // no `options` definitely means stdout/stderr are `string`.\n    function execFile(file: string, callback: (error: ExecFileException | null, stdout: string, stderr: string) => void): ChildProcess;\n    function execFile(file: string, args: ReadonlyArray<string> | undefined | null, callback: (error: ExecFileException | null, stdout: string, stderr: string) => void): ChildProcess;\n    // `options` with `\"buffer\"` or `null` for `encoding` means stdout/stderr are definitely `Buffer`.\n    function execFile(file: string, options: ExecFileOptionsWithBufferEncoding, callback: (error: ExecFileException | null, stdout: Buffer, stderr: Buffer) => void): ChildProcess;\n    function execFile(\n        file: string,\n        args: ReadonlyArray<string> | undefined | null,\n        options: ExecFileOptionsWithBufferEncoding,\n        callback: (error: ExecFileException | null, stdout: Buffer, stderr: Buffer) => void\n    ): ChildProcess;\n    // `options` with well known `encoding` means stdout/stderr are definitely `string`.\n    function execFile(file: string, options: ExecFileOptionsWithStringEncoding, callback: (error: ExecFileException | null, stdout: string, stderr: string) => void): ChildProcess;\n    function execFile(\n        file: string,\n        args: ReadonlyArray<string> | undefined | null,\n        options: ExecFileOptionsWithStringEncoding,\n        callback: (error: ExecFileException | null, stdout: string, stderr: string) => void\n    ): ChildProcess;\n    // `options` with an `encoding` whose type is `string` means stdout/stderr could either be `Buffer` or `string`.\n    // There is no guarantee the `encoding` is unknown as `string` is a superset of `BufferEncoding`.\n    function execFile(file: string, options: ExecFileOptionsWithOtherEncoding, callback: (error: ExecFileException | null, stdout: string | Buffer, stderr: string | Buffer) => void): ChildProcess;\n    function execFile(\n        file: string,\n        args: ReadonlyArray<string> | undefined | null,\n        options: ExecFileOptionsWithOtherEncoding,\n        callback: (error: ExecFileException | null, stdout: string | Buffer, stderr: string | Buffer) => void\n    ): ChildProcess;\n    // `options` without an `encoding` means stdout/stderr are definitely `string`.\n    function execFile(file: string, options: ExecFileOptions, callback: (error: ExecFileException | null, stdout: string, stderr: string) => void): ChildProcess;\n    function execFile(\n        file: string,\n        args: ReadonlyArray<string> | undefined | null,\n        options: ExecFileOptions,\n        callback: (error: ExecFileException | null, stdout: string, stderr: string) => void\n    ): ChildProcess;\n    // fallback if nothing else matches. Worst case is always `string | Buffer`.\n    function execFile(\n        file: string,\n        options: (ObjectEncodingOptions & ExecFileOptions) | undefined | null,\n        callback: ((error: ExecFileException | null, stdout: string | Buffer, stderr: string | Buffer) => void) | undefined | null\n    ): ChildProcess;\n    function execFile(\n        file: string,\n        args: ReadonlyArray<string> | undefined | null,\n        options: (ObjectEncodingOptions & ExecFileOptions) | undefined | null,\n        callback: ((error: ExecFileException | null, stdout: string | Buffer, stderr: string | Buffer) => void) | undefined | null\n    ): ChildProcess;\n    namespace execFile {\n        function __promisify__(file: string): PromiseWithChild<{\n            stdout: string;\n            stderr: string;\n        }>;\n        function __promisify__(\n            file: string,\n            args: ReadonlyArray<string> | undefined | null\n        ): PromiseWithChild<{\n            stdout: string;\n            stderr: string;\n        }>;\n        function __promisify__(\n            file: string,\n            options: ExecFileOptionsWithBufferEncoding\n        ): PromiseWithChild<{\n            stdout: Buffer;\n            stderr: Buffer;\n        }>;\n        function __promisify__(\n            file: string,\n            args: ReadonlyArray<string> | undefined | null,\n            options: ExecFileOptionsWithBufferEncoding\n        ): PromiseWithChild<{\n            stdout: Buffer;\n            stderr: Buffer;\n        }>;\n        function __promisify__(\n            file: string,\n            options: ExecFileOptionsWithStringEncoding\n        ): PromiseWithChild<{\n            stdout: string;\n            stderr: string;\n        }>;\n        function __promisify__(\n            file: string,\n            args: ReadonlyArray<string> | undefined | null,\n            options: ExecFileOptionsWithStringEncoding\n        ): PromiseWithChild<{\n            stdout: string;\n            stderr: string;\n        }>;\n        function __promisify__(\n            file: string,\n            options: ExecFileOptionsWithOtherEncoding\n        ): PromiseWithChild<{\n            stdout: string | Buffer;\n            stderr: string | Buffer;\n        }>;\n        function __promisify__(\n            file: string,\n            args: ReadonlyArray<string> | undefined | null,\n            options: ExecFileOptionsWithOtherEncoding\n        ): PromiseWithChild<{\n            stdout: string | Buffer;\n            stderr: string | Buffer;\n        }>;\n        function __promisify__(\n            file: string,\n            options: ExecFileOptions\n        ): PromiseWithChild<{\n            stdout: string;\n            stderr: string;\n        }>;\n        function __promisify__(\n            file: string,\n            args: ReadonlyArray<string> | undefined | null,\n            options: ExecFileOptions\n        ): PromiseWithChild<{\n            stdout: string;\n            stderr: string;\n        }>;\n        function __promisify__(\n            file: string,\n            options: (ObjectEncodingOptions & ExecFileOptions) | undefined | null\n        ): PromiseWithChild<{\n            stdout: string | Buffer;\n            stderr: string | Buffer;\n        }>;\n        function __promisify__(\n            file: string,\n            args: ReadonlyArray<string> | undefined | null,\n            options: (ObjectEncodingOptions & ExecFileOptions) | undefined | null\n        ): PromiseWithChild<{\n            stdout: string | Buffer;\n            stderr: string | Buffer;\n        }>;\n    }\n    interface ForkOptions extends ProcessEnvOptions, MessagingOptions, Abortable {\n        execPath?: string | undefined;\n        execArgv?: string[] | undefined;\n        silent?: boolean | undefined;\n        stdio?: StdioOptions | undefined;\n        detached?: boolean | undefined;\n        windowsVerbatimArguments?: boolean | undefined;\n    }\n    /**\n     * The `child_process.fork()` method is a special case of {@link spawn} used specifically to spawn new Node.js processes.\n     * Like {@link spawn}, a `ChildProcess` object is returned. The\n     * returned `ChildProcess` will have an additional communication channel\n     * built-in that allows messages to be passed back and forth between the parent and\n     * child. See `subprocess.send()` for details.\n     *\n     * Keep in mind that spawned Node.js child processes are\n     * independent of the parent with exception of the IPC communication channel\n     * that is established between the two. Each process has its own memory, with\n     * their own V8 instances. Because of the additional resource allocations\n     * required, spawning a large number of child Node.js processes is not\n     * recommended.\n     *\n     * By default, `child_process.fork()` will spawn new Node.js instances using the `process.execPath` of the parent process. The `execPath` property in the`options` object allows for an alternative\n     * execution path to be used.\n     *\n     * Node.js processes launched with a custom `execPath` will communicate with the\n     * parent process using the file descriptor (fd) identified using the\n     * environment variable `NODE_CHANNEL_FD` on the child process.\n     *\n     * Unlike the [`fork(2)`](http://man7.org/linux/man-pages/man2/fork.2.html) POSIX system call, `child_process.fork()` does not clone the\n     * current process.\n     *\n     * The `shell` option available in {@link spawn} is not supported by`child_process.fork()` and will be ignored if set.\n     *\n     * If the `signal` option is enabled, calling `.abort()` on the corresponding`AbortController` is similar to calling `.kill()` on the child process except\n     * the error passed to the callback will be an `AbortError`:\n     *\n     * ```js\n     * if (process.argv[2] === 'child') {\n     *   setTimeout(() => {\n     *     console.log(`Hello from ${process.argv[2]}!`);\n     *   }, 1_000);\n     * } else {\n     *   const { fork } = require('child_process');\n     *   const controller = new AbortController();\n     *   const { signal } = controller;\n     *   const child = fork(__filename, ['child'], { signal });\n     *   child.on('error', (err) => {\n     *     // This will be called with err being an AbortError if the controller aborts\n     *   });\n     *   controller.abort(); // Stops the child process\n     * }\n     * ```\n     * @since v0.5.0\n     * @param modulePath The module to run in the child.\n     * @param args List of string arguments.\n     */\n    function fork(modulePath: string, options?: ForkOptions): ChildProcess;\n    function fork(modulePath: string, args?: ReadonlyArray<string>, options?: ForkOptions): ChildProcess;\n    interface SpawnSyncOptions extends CommonSpawnOptions {\n        input?: string | NodeJS.ArrayBufferView | undefined;\n        maxBuffer?: number | undefined;\n        encoding?: BufferEncoding | 'buffer' | null | undefined;\n    }\n    interface SpawnSyncOptionsWithStringEncoding extends SpawnSyncOptions {\n        encoding: BufferEncoding;\n    }\n    interface SpawnSyncOptionsWithBufferEncoding extends SpawnSyncOptions {\n        encoding?: 'buffer' | null | undefined;\n    }\n    interface SpawnSyncReturns<T> {\n        pid: number;\n        output: Array<T | null>;\n        stdout: T;\n        stderr: T;\n        status: number | null;\n        signal: NodeJS.Signals | null;\n        error?: Error | undefined;\n    }\n    /**\n     * The `child_process.spawnSync()` method is generally identical to {@link spawn} with the exception that the function will not return\n     * until the child process has fully closed. When a timeout has been encountered\n     * and `killSignal` is sent, the method won't return until the process has\n     * completely exited. If the process intercepts and handles the `SIGTERM` signal\n     * and doesn't exit, the parent process will wait until the child process has\n     * exited.\n     *\n     * **If the `shell` option is enabled, do not pass unsanitized user input to this**\n     * **function. Any input containing shell metacharacters may be used to trigger**\n     * **arbitrary command execution.**\n     * @since v0.11.12\n     * @param command The command to run.\n     * @param args List of string arguments.\n     */\n    function spawnSync(command: string): SpawnSyncReturns<Buffer>;\n    function spawnSync(command: string, options: SpawnSyncOptionsWithStringEncoding): SpawnSyncReturns<string>;\n    function spawnSync(command: string, options: SpawnSyncOptionsWithBufferEncoding): SpawnSyncReturns<Buffer>;\n    function spawnSync(command: string, options?: SpawnSyncOptions): SpawnSyncReturns<string | Buffer>;\n    function spawnSync(command: string, args: ReadonlyArray<string>): SpawnSyncReturns<Buffer>;\n    function spawnSync(command: string, args: ReadonlyArray<string>, options: SpawnSyncOptionsWithStringEncoding): SpawnSyncReturns<string>;\n    function spawnSync(command: string, args: ReadonlyArray<string>, options: SpawnSyncOptionsWithBufferEncoding): SpawnSyncReturns<Buffer>;\n    function spawnSync(command: string, args?: ReadonlyArray<string>, options?: SpawnSyncOptions): SpawnSyncReturns<string | Buffer>;\n    interface CommonExecOptions extends CommonOptions {\n        input?: string | NodeJS.ArrayBufferView | undefined;\n        stdio?: StdioOptions | undefined;\n        killSignal?: NodeJS.Signals | number | undefined;\n        maxBuffer?: number | undefined;\n        encoding?: BufferEncoding | 'buffer' | null | undefined;\n    }\n    interface ExecSyncOptions extends CommonExecOptions {\n        shell?: string | undefined;\n    }\n    interface ExecSyncOptionsWithStringEncoding extends ExecSyncOptions {\n        encoding: BufferEncoding;\n    }\n    interface ExecSyncOptionsWithBufferEncoding extends ExecSyncOptions {\n        encoding?: 'buffer' | null | undefined;\n    }\n    /**\n     * The `child_process.execSync()` method is generally identical to {@link exec} with the exception that the method will not return\n     * until the child process has fully closed. When a timeout has been encountered\n     * and `killSignal` is sent, the method won't return until the process has\n     * completely exited. If the child process intercepts and handles the `SIGTERM`signal and doesn't exit, the parent process will wait until the child process\n     * has exited.\n     *\n     * If the process times out or has a non-zero exit code, this method will throw.\n     * The `Error` object will contain the entire result from {@link spawnSync}.\n     *\n     * **Never pass unsanitized user input to this function. Any input containing shell**\n     * **metacharacters may be used to trigger arbitrary command execution.**\n     * @since v0.11.12\n     * @param command The command to run.\n     * @return The stdout from the command.\n     */\n    function execSync(command: string): Buffer;\n    function execSync(command: string, options: ExecSyncOptionsWithStringEncoding): string;\n    function execSync(command: string, options: ExecSyncOptionsWithBufferEncoding): Buffer;\n    function execSync(command: string, options?: ExecSyncOptions): string | Buffer;\n    interface ExecFileSyncOptions extends CommonExecOptions {\n        shell?: boolean | string | undefined;\n    }\n    interface ExecFileSyncOptionsWithStringEncoding extends ExecFileSyncOptions {\n        encoding: BufferEncoding;\n    }\n    interface ExecFileSyncOptionsWithBufferEncoding extends ExecFileSyncOptions {\n        encoding?: 'buffer' | null; // specify `null`.\n    }\n    /**\n     * The `child_process.execFileSync()` method is generally identical to {@link execFile} with the exception that the method will not\n     * return until the child process has fully closed. When a timeout has been\n     * encountered and `killSignal` is sent, the method won't return until the process\n     * has completely exited.\n     *\n     * If the child process intercepts and handles the `SIGTERM` signal and\n     * does not exit, the parent process will still wait until the child process has\n     * exited.\n     *\n     * If the process times out or has a non-zero exit code, this method will throw an `Error` that will include the full result of the underlying {@link spawnSync}.\n     *\n     * **If the `shell` option is enabled, do not pass unsanitized user input to this**\n     * **function. Any input containing shell metacharacters may be used to trigger**\n     * **arbitrary command execution.**\n     * @since v0.11.12\n     * @param file The name or path of the executable file to run.\n     * @param args List of string arguments.\n     * @return The stdout from the command.\n     */\n    function execFileSync(file: string): Buffer;\n    function execFileSync(file: string, options: ExecFileSyncOptionsWithStringEncoding): string;\n    function execFileSync(file: string, options: ExecFileSyncOptionsWithBufferEncoding): Buffer;\n    function execFileSync(file: string, options?: ExecFileSyncOptions): string | Buffer;\n    function execFileSync(file: string, args: ReadonlyArray<string>): Buffer;\n    function execFileSync(file: string, args: ReadonlyArray<string>, options: ExecFileSyncOptionsWithStringEncoding): string;\n    function execFileSync(file: string, args: ReadonlyArray<string>, options: ExecFileSyncOptionsWithBufferEncoding): Buffer;\n    function execFileSync(file: string, args?: ReadonlyArray<string>, options?: ExecFileSyncOptions): string | Buffer;\n}\ndeclare module 'node:child_process' {\n    export * from 'child_process';\n}\n"
    },
    {
      "path": "/node_modules/@types/node/cluster.d.ts",
      "content": "/**\n * A single instance of Node.js runs in a single thread. To take advantage of\n * multi-core systems, the user will sometimes want to launch a cluster of Node.js\n * processes to handle the load.\n *\n * The cluster module allows easy creation of child processes that all share\n * server ports.\n *\n * ```js\n * import cluster from 'cluster';\n * import http from 'http';\n * import { cpus } from 'os';\n * import process from 'process';\n *\n * const numCPUs = cpus().length;\n *\n * if (cluster.isPrimary) {\n *   console.log(`Primary ${process.pid} is running`);\n *\n *   // Fork workers.\n *   for (let i = 0; i < numCPUs; i++) {\n *     cluster.fork();\n *   }\n *\n *   cluster.on('exit', (worker, code, signal) => {\n *     console.log(`worker ${worker.process.pid} died`);\n *   });\n * } else {\n *   // Workers can share any TCP connection\n *   // In this case it is an HTTP server\n *   http.createServer((req, res) => {\n *     res.writeHead(200);\n *     res.end('hello world\\n');\n *   }).listen(8000);\n *\n *   console.log(`Worker ${process.pid} started`);\n * }\n * ```\n *\n * Running Node.js will now share port 8000 between the workers:\n *\n * ```console\n * $ node server.js\n * Primary 3596 is running\n * Worker 4324 started\n * Worker 4520 started\n * Worker 6056 started\n * Worker 5644 started\n * ```\n *\n * On Windows, it is not yet possible to set up a named pipe server in a worker.\n * @see [source](https://github.com/nodejs/node/blob/v16.9.0/lib/cluster.js)\n */\ndeclare module 'cluster' {\n    import * as child from 'node:child_process';\n    import EventEmitter = require('node:events');\n    import * as net from 'node:net';\n    export interface ClusterSettings {\n        execArgv?: string[] | undefined; // default: process.execArgv\n        exec?: string | undefined;\n        args?: string[] | undefined;\n        silent?: boolean | undefined;\n        stdio?: any[] | undefined;\n        uid?: number | undefined;\n        gid?: number | undefined;\n        inspectPort?: number | (() => number) | undefined;\n    }\n    export interface Address {\n        address: string;\n        port: number;\n        addressType: number | 'udp4' | 'udp6'; // 4, 6, -1, \"udp4\", \"udp6\"\n    }\n    /**\n     * A `Worker` object contains all public information and method about a worker.\n     * In the primary it can be obtained using `cluster.workers`. In a worker\n     * it can be obtained using `cluster.worker`.\n     * @since v0.7.0\n     */\n    export class Worker extends EventEmitter {\n        /**\n         * Each new worker is given its own unique id, this id is stored in the`id`.\n         *\n         * While a worker is alive, this is the key that indexes it in`cluster.workers`.\n         * @since v0.8.0\n         */\n        id: number;\n        /**\n         * All workers are created using `child_process.fork()`, the returned object\n         * from this function is stored as `.process`. In a worker, the global `process`is stored.\n         *\n         * See: `Child Process module`.\n         *\n         * Workers will call `process.exit(0)` if the `'disconnect'` event occurs\n         * on `process` and `.exitedAfterDisconnect` is not `true`. This protects against\n         * accidental disconnection.\n         * @since v0.7.0\n         */\n        process: child.ChildProcess;\n        /**\n         * Send a message to a worker or primary, optionally with a handle.\n         *\n         * In the primary this sends a message to a specific worker. It is identical to `ChildProcess.send()`.\n         *\n         * In a worker this sends a message to the primary. It is identical to`process.send()`.\n         *\n         * This example will echo back all messages from the primary:\n         *\n         * ```js\n         * if (cluster.isPrimary) {\n         *   const worker = cluster.fork();\n         *   worker.send('hi there');\n         *\n         * } else if (cluster.isWorker) {\n         *   process.on('message', (msg) => {\n         *     process.send(msg);\n         *   });\n         * }\n         * ```\n         * @since v0.7.0\n         * @param options The `options` argument, if present, is an object used to parameterize the sending of certain types of handles. `options` supports the following properties:\n         */\n        send(message: child.Serializable, callback?: (error: Error | null) => void): boolean;\n        send(message: child.Serializable, sendHandle: child.SendHandle, callback?: (error: Error | null) => void): boolean;\n        send(message: child.Serializable, sendHandle: child.SendHandle, options?: child.MessageOptions, callback?: (error: Error | null) => void): boolean;\n        /**\n         * This function will kill the worker. In the primary, it does this\n         * by disconnecting the `worker.process`, and once disconnected, killing\n         * with `signal`. In the worker, it does it by disconnecting the channel,\n         * and then exiting with code `0`.\n         *\n         * Because `kill()` attempts to gracefully disconnect the worker process, it is\n         * susceptible to waiting indefinitely for the disconnect to complete. For example,\n         * if the worker enters an infinite loop, a graceful disconnect will never occur.\n         * If the graceful disconnect behavior is not needed, use `worker.process.kill()`.\n         *\n         * Causes `.exitedAfterDisconnect` to be set.\n         *\n         * This method is aliased as `worker.destroy()` for backward compatibility.\n         *\n         * In a worker, `process.kill()` exists, but it is not this function;\n         * it is `kill()`.\n         * @since v0.9.12\n         * @param [signal='SIGTERM'] Name of the kill signal to send to the worker process.\n         */\n        kill(signal?: string): void;\n        destroy(signal?: string): void;\n        /**\n         * In a worker, this function will close all servers, wait for the `'close'` event\n         * on those servers, and then disconnect the IPC channel.\n         *\n         * In the primary, an internal message is sent to the worker causing it to call`.disconnect()` on itself.\n         *\n         * Causes `.exitedAfterDisconnect` to be set.\n         *\n         * After a server is closed, it will no longer accept new connections,\n         * but connections may be accepted by any other listening worker. Existing\n         * connections will be allowed to close as usual. When no more connections exist,\n         * see `server.close()`, the IPC channel to the worker will close allowing it\n         * to die gracefully.\n         *\n         * The above applies _only_ to server connections, client connections are not\n         * automatically closed by workers, and disconnect does not wait for them to close\n         * before exiting.\n         *\n         * In a worker, `process.disconnect` exists, but it is not this function;\n         * it is `disconnect()`.\n         *\n         * Because long living server connections may block workers from disconnecting, it\n         * may be useful to send a message, so application specific actions may be taken to\n         * close them. It also may be useful to implement a timeout, killing a worker if\n         * the `'disconnect'` event has not been emitted after some time.\n         *\n         * ```js\n         * if (cluster.isPrimary) {\n         *   const worker = cluster.fork();\n         *   let timeout;\n         *\n         *   worker.on('listening', (address) => {\n         *     worker.send('shutdown');\n         *     worker.disconnect();\n         *     timeout = setTimeout(() => {\n         *       worker.kill();\n         *     }, 2000);\n         *   });\n         *\n         *   worker.on('disconnect', () => {\n         *     clearTimeout(timeout);\n         *   });\n         *\n         * } else if (cluster.isWorker) {\n         *   const net = require('net');\n         *   const server = net.createServer((socket) => {\n         *     // Connections never end\n         *   });\n         *\n         *   server.listen(8000);\n         *\n         *   process.on('message', (msg) => {\n         *     if (msg === 'shutdown') {\n         *       // Initiate graceful close of any connections to server\n         *     }\n         *   });\n         * }\n         * ```\n         * @since v0.7.7\n         * @return A reference to `worker`.\n         */\n        disconnect(): void;\n        /**\n         * This function returns `true` if the worker is connected to its primary via its\n         * IPC channel, `false` otherwise. A worker is connected to its primary after it\n         * has been created. It is disconnected after the `'disconnect'` event is emitted.\n         * @since v0.11.14\n         */\n        isConnected(): boolean;\n        /**\n         * This function returns `true` if the worker's process has terminated (either\n         * because of exiting or being signaled). Otherwise, it returns `false`.\n         *\n         * ```js\n         * import cluster from 'cluster';\n         * import http from 'http';\n         * import { cpus } from 'os';\n         * import process from 'process';\n         *\n         * const numCPUs = cpus().length;\n         *\n         * if (cluster.isPrimary) {\n         *   console.log(`Primary ${process.pid} is running`);\n         *\n         *   // Fork workers.\n         *   for (let i = 0; i < numCPUs; i++) {\n         *     cluster.fork();\n         *   }\n         *\n         *   cluster.on('fork', (worker) => {\n         *     console.log('worker is dead:', worker.isDead());\n         *   });\n         *\n         *   cluster.on('exit', (worker, code, signal) => {\n         *     console.log('worker is dead:', worker.isDead());\n         *   });\n         * } else {\n         *   // Workers can share any TCP connection. In this case, it is an HTTP server.\n         *   http.createServer((req, res) => {\n         *     res.writeHead(200);\n         *     res.end(`Current process\\n ${process.pid}`);\n         *     process.kill(process.pid);\n         *   }).listen(8000);\n         * }\n         * ```\n         * @since v0.11.14\n         */\n        isDead(): boolean;\n        /**\n         * This property is `true` if the worker exited due to `.kill()` or`.disconnect()`. If the worker exited any other way, it is `false`. If the\n         * worker has not exited, it is `undefined`.\n         *\n         * The boolean `worker.exitedAfterDisconnect` allows distinguishing between\n         * voluntary and accidental exit, the primary may choose not to respawn a worker\n         * based on this value.\n         *\n         * ```js\n         * cluster.on('exit', (worker, code, signal) => {\n         *   if (worker.exitedAfterDisconnect === true) {\n         *     console.log('Oh, it was just voluntary – no need to worry');\n         *   }\n         * });\n         *\n         * // kill worker\n         * worker.kill();\n         * ```\n         * @since v6.0.0\n         */\n        exitedAfterDisconnect: boolean;\n        /**\n         * events.EventEmitter\n         *   1. disconnect\n         *   2. error\n         *   3. exit\n         *   4. listening\n         *   5. message\n         *   6. online\n         */\n        addListener(event: string, listener: (...args: any[]) => void): this;\n        addListener(event: 'disconnect', listener: () => void): this;\n        addListener(event: 'error', listener: (error: Error) => void): this;\n        addListener(event: 'exit', listener: (code: number, signal: string) => void): this;\n        addListener(event: 'listening', listener: (address: Address) => void): this;\n        addListener(event: 'message', listener: (message: any, handle: net.Socket | net.Server) => void): this; // the handle is a net.Socket or net.Server object, or undefined.\n        addListener(event: 'online', listener: () => void): this;\n        emit(event: string | symbol, ...args: any[]): boolean;\n        emit(event: 'disconnect'): boolean;\n        emit(event: 'error', error: Error): boolean;\n        emit(event: 'exit', code: number, signal: string): boolean;\n        emit(event: 'listening', address: Address): boolean;\n        emit(event: 'message', message: any, handle: net.Socket | net.Server): boolean;\n        emit(event: 'online'): boolean;\n        on(event: string, listener: (...args: any[]) => void): this;\n        on(event: 'disconnect', listener: () => void): this;\n        on(event: 'error', listener: (error: Error) => void): this;\n        on(event: 'exit', listener: (code: number, signal: string) => void): this;\n        on(event: 'listening', listener: (address: Address) => void): this;\n        on(event: 'message', listener: (message: any, handle: net.Socket | net.Server) => void): this; // the handle is a net.Socket or net.Server object, or undefined.\n        on(event: 'online', listener: () => void): this;\n        once(event: string, listener: (...args: any[]) => void): this;\n        once(event: 'disconnect', listener: () => void): this;\n        once(event: 'error', listener: (error: Error) => void): this;\n        once(event: 'exit', listener: (code: number, signal: string) => void): this;\n        once(event: 'listening', listener: (address: Address) => void): this;\n        once(event: 'message', listener: (message: any, handle: net.Socket | net.Server) => void): this; // the handle is a net.Socket or net.Server object, or undefined.\n        once(event: 'online', listener: () => void): this;\n        prependListener(event: string, listener: (...args: any[]) => void): this;\n        prependListener(event: 'disconnect', listener: () => void): this;\n        prependListener(event: 'error', listener: (error: Error) => void): this;\n        prependListener(event: 'exit', listener: (code: number, signal: string) => void): this;\n        prependListener(event: 'listening', listener: (address: Address) => void): this;\n        prependListener(event: 'message', listener: (message: any, handle: net.Socket | net.Server) => void): this; // the handle is a net.Socket or net.Server object, or undefined.\n        prependListener(event: 'online', listener: () => void): this;\n        prependOnceListener(event: string, listener: (...args: any[]) => void): this;\n        prependOnceListener(event: 'disconnect', listener: () => void): this;\n        prependOnceListener(event: 'error', listener: (error: Error) => void): this;\n        prependOnceListener(event: 'exit', listener: (code: number, signal: string) => void): this;\n        prependOnceListener(event: 'listening', listener: (address: Address) => void): this;\n        prependOnceListener(event: 'message', listener: (message: any, handle: net.Socket | net.Server) => void): this; // the handle is a net.Socket or net.Server object, or undefined.\n        prependOnceListener(event: 'online', listener: () => void): this;\n    }\n    export interface Cluster extends EventEmitter {\n        disconnect(callback?: () => void): void;\n        fork(env?: any): Worker;\n        /** @deprecated since v16.0.0 - use isPrimary. */\n        readonly isMaster: boolean;\n        readonly isPrimary: boolean;\n        readonly isWorker: boolean;\n        schedulingPolicy: number;\n        readonly settings: ClusterSettings;\n        /** @deprecated since v16.0.0 - use setupPrimary. */\n        setupMaster(settings?: ClusterSettings): void;\n        /**\n         * `setupPrimary` is used to change the default 'fork' behavior. Once called, the settings will be present in cluster.settings.\n         */\n        setupPrimary(settings?: ClusterSettings): void;\n        readonly worker?: Worker | undefined;\n        readonly workers?: NodeJS.Dict<Worker> | undefined;\n        readonly SCHED_NONE: number;\n        readonly SCHED_RR: number;\n        /**\n         * events.EventEmitter\n         *   1. disconnect\n         *   2. exit\n         *   3. fork\n         *   4. listening\n         *   5. message\n         *   6. online\n         *   7. setup\n         */\n        addListener(event: string, listener: (...args: any[]) => void): this;\n        addListener(event: 'disconnect', listener: (worker: Worker) => void): this;\n        addListener(event: 'exit', listener: (worker: Worker, code: number, signal: string) => void): this;\n        addListener(event: 'fork', listener: (worker: Worker) => void): this;\n        addListener(event: 'listening', listener: (worker: Worker, address: Address) => void): this;\n        addListener(event: 'message', listener: (worker: Worker, message: any, handle: net.Socket | net.Server) => void): this; // the handle is a net.Socket or net.Server object, or undefined.\n        addListener(event: 'online', listener: (worker: Worker) => void): this;\n        addListener(event: 'setup', listener: (settings: ClusterSettings) => void): this;\n        emit(event: string | symbol, ...args: any[]): boolean;\n        emit(event: 'disconnect', worker: Worker): boolean;\n        emit(event: 'exit', worker: Worker, code: number, signal: string): boolean;\n        emit(event: 'fork', worker: Worker): boolean;\n        emit(event: 'listening', worker: Worker, address: Address): boolean;\n        emit(event: 'message', worker: Worker, message: any, handle: net.Socket | net.Server): boolean;\n        emit(event: 'online', worker: Worker): boolean;\n        emit(event: 'setup', settings: ClusterSettings): boolean;\n        on(event: string, listener: (...args: any[]) => void): this;\n        on(event: 'disconnect', listener: (worker: Worker) => void): this;\n        on(event: 'exit', listener: (worker: Worker, code: number, signal: string) => void): this;\n        on(event: 'fork', listener: (worker: Worker) => void): this;\n        on(event: 'listening', listener: (worker: Worker, address: Address) => void): this;\n        on(event: 'message', listener: (worker: Worker, message: any, handle: net.Socket | net.Server) => void): this; // the handle is a net.Socket or net.Server object, or undefined.\n        on(event: 'online', listener: (worker: Worker) => void): this;\n        on(event: 'setup', listener: (settings: ClusterSettings) => void): this;\n        once(event: string, listener: (...args: any[]) => void): this;\n        once(event: 'disconnect', listener: (worker: Worker) => void): this;\n        once(event: 'exit', listener: (worker: Worker, code: number, signal: string) => void): this;\n        once(event: 'fork', listener: (worker: Worker) => void): this;\n        once(event: 'listening', listener: (worker: Worker, address: Address) => void): this;\n        once(event: 'message', listener: (worker: Worker, message: any, handle: net.Socket | net.Server) => void): this; // the handle is a net.Socket or net.Server object, or undefined.\n        once(event: 'online', listener: (worker: Worker) => void): this;\n        once(event: 'setup', listener: (settings: ClusterSettings) => void): this;\n        prependListener(event: string, listener: (...args: any[]) => void): this;\n        prependListener(event: 'disconnect', listener: (worker: Worker) => void): this;\n        prependListener(event: 'exit', listener: (worker: Worker, code: number, signal: string) => void): this;\n        prependListener(event: 'fork', listener: (worker: Worker) => void): this;\n        prependListener(event: 'listening', listener: (worker: Worker, address: Address) => void): this;\n        // the handle is a net.Socket or net.Server object, or undefined.\n        prependListener(event: 'message', listener: (worker: Worker, message: any, handle?: net.Socket | net.Server) => void): this;\n        prependListener(event: 'online', listener: (worker: Worker) => void): this;\n        prependListener(event: 'setup', listener: (settings: ClusterSettings) => void): this;\n        prependOnceListener(event: string, listener: (...args: any[]) => void): this;\n        prependOnceListener(event: 'disconnect', listener: (worker: Worker) => void): this;\n        prependOnceListener(event: 'exit', listener: (worker: Worker, code: number, signal: string) => void): this;\n        prependOnceListener(event: 'fork', listener: (worker: Worker) => void): this;\n        prependOnceListener(event: 'listening', listener: (worker: Worker, address: Address) => void): this;\n        // the handle is a net.Socket or net.Server object, or undefined.\n        prependOnceListener(event: 'message', listener: (worker: Worker, message: any, handle: net.Socket | net.Server) => void): this;\n        prependOnceListener(event: 'online', listener: (worker: Worker) => void): this;\n        prependOnceListener(event: 'setup', listener: (settings: ClusterSettings) => void): this;\n    }\n    const cluster: Cluster;\n    export default cluster;\n}\ndeclare module 'node:cluster' {\n    export * from 'cluster';\n    export { default as default } from 'cluster';\n}\n"
    },
    {
      "path": "/node_modules/@types/node/console.d.ts",
      "content": "/**\n * The `console` module provides a simple debugging console that is similar to the\n * JavaScript console mechanism provided by web browsers.\n *\n * The module exports two specific components:\n *\n * * A `Console` class with methods such as `console.log()`, `console.error()` and`console.warn()` that can be used to write to any Node.js stream.\n * * A global `console` instance configured to write to `process.stdout` and `process.stderr`. The global `console` can be used without calling`require('console')`.\n *\n * _**Warning**_: The global console object's methods are neither consistently\n * synchronous like the browser APIs they resemble, nor are they consistently\n * asynchronous like all other Node.js streams. See the `note on process I/O` for\n * more information.\n *\n * Example using the global `console`:\n *\n * ```js\n * console.log('hello world');\n * // Prints: hello world, to stdout\n * console.log('hello %s', 'world');\n * // Prints: hello world, to stdout\n * console.error(new Error('Whoops, something bad happened'));\n * // Prints error message and stack trace to stderr:\n * //   Error: Whoops, something bad happened\n * //     at [eval]:5:15\n * //     at Script.runInThisContext (node:vm:132:18)\n * //     at Object.runInThisContext (node:vm:309:38)\n * //     at node:internal/process/execution:77:19\n * //     at [eval]-wrapper:6:22\n * //     at evalScript (node:internal/process/execution:76:60)\n * //     at node:internal/main/eval_string:23:3\n *\n * const name = 'Will Robinson';\n * console.warn(`Danger ${name}! Danger!`);\n * // Prints: Danger Will Robinson! Danger!, to stderr\n * ```\n *\n * Example using the `Console` class:\n *\n * ```js\n * const out = getStreamSomehow();\n * const err = getStreamSomehow();\n * const myConsole = new console.Console(out, err);\n *\n * myConsole.log('hello world');\n * // Prints: hello world, to out\n * myConsole.log('hello %s', 'world');\n * // Prints: hello world, to out\n * myConsole.error(new Error('Whoops, something bad happened'));\n * // Prints: [Error: Whoops, something bad happened], to err\n *\n * const name = 'Will Robinson';\n * myConsole.warn(`Danger ${name}! Danger!`);\n * // Prints: Danger Will Robinson! Danger!, to err\n * ```\n * @see [source](https://github.com/nodejs/node/blob/v16.9.0/lib/console.js)\n */\ndeclare module 'console' {\n    import console = require('node:console');\n    export = console;\n}\ndeclare module 'node:console' {\n    import { InspectOptions } from 'node:util';\n    global {\n        // This needs to be global to avoid TS2403 in case lib.dom.d.ts is present in the same build\n        interface Console {\n            Console: console.ConsoleConstructor;\n            /**\n             * `console.assert()` writes a message if `value` is [falsy](https://developer.mozilla.org/en-US/docs/Glossary/Falsy) or omitted. It only\n             * writes a message and does not otherwise affect execution. The output always\n             * starts with `\"Assertion failed\"`. If provided, `message` is formatted using `util.format()`.\n             *\n             * If `value` is [truthy](https://developer.mozilla.org/en-US/docs/Glossary/Truthy), nothing happens.\n             *\n             * ```js\n             * console.assert(true, 'does nothing');\n             *\n             * console.assert(false, 'Whoops %s work', 'didn\\'t');\n             * // Assertion failed: Whoops didn't work\n             *\n             * console.assert();\n             * // Assertion failed\n             * ```\n             * @since v0.1.101\n             * @param value The value tested for being truthy.\n             * @param message All arguments besides `value` are used as error message.\n             */\n            assert(value: any, message?: string, ...optionalParams: any[]): void;\n            /**\n             * When `stdout` is a TTY, calling `console.clear()` will attempt to clear the\n             * TTY. When `stdout` is not a TTY, this method does nothing.\n             *\n             * The specific operation of `console.clear()` can vary across operating systems\n             * and terminal types. For most Linux operating systems, `console.clear()`operates similarly to the `clear` shell command. On Windows, `console.clear()`will clear only the output in the\n             * current terminal viewport for the Node.js\n             * binary.\n             * @since v8.3.0\n             */\n            clear(): void;\n            /**\n             * Maintains an internal counter specific to `label` and outputs to `stdout` the\n             * number of times `console.count()` has been called with the given `label`.\n             *\n             * ```js\n             * > console.count()\n             * default: 1\n             * undefined\n             * > console.count('default')\n             * default: 2\n             * undefined\n             * > console.count('abc')\n             * abc: 1\n             * undefined\n             * > console.count('xyz')\n             * xyz: 1\n             * undefined\n             * > console.count('abc')\n             * abc: 2\n             * undefined\n             * > console.count()\n             * default: 3\n             * undefined\n             * >\n             * ```\n             * @since v8.3.0\n             * @param label The display label for the counter.\n             */\n            count(label?: string): void;\n            /**\n             * Resets the internal counter specific to `label`.\n             *\n             * ```js\n             * > console.count('abc');\n             * abc: 1\n             * undefined\n             * > console.countReset('abc');\n             * undefined\n             * > console.count('abc');\n             * abc: 1\n             * undefined\n             * >\n             * ```\n             * @since v8.3.0\n             * @param label The display label for the counter.\n             */\n            countReset(label?: string): void;\n            /**\n             * The `console.debug()` function is an alias for {@link log}.\n             * @since v8.0.0\n             */\n            debug(message?: any, ...optionalParams: any[]): void;\n            /**\n             * Uses `util.inspect()` on `obj` and prints the resulting string to `stdout`.\n             * This function bypasses any custom `inspect()` function defined on `obj`.\n             * @since v0.1.101\n             */\n            dir(obj: any, options?: InspectOptions): void;\n            /**\n             * This method calls `console.log()` passing it the arguments received.\n             * This method does not produce any XML formatting.\n             * @since v8.0.0\n             */\n            dirxml(...data: any[]): void;\n            /**\n             * Prints to `stderr` with newline. Multiple arguments can be passed, with the\n             * first used as the primary message and all additional used as substitution\n             * values similar to [`printf(3)`](http://man7.org/linux/man-pages/man3/printf.3.html) (the arguments are all passed to `util.format()`).\n             *\n             * ```js\n             * const code = 5;\n             * console.error('error #%d', code);\n             * // Prints: error #5, to stderr\n             * console.error('error', code);\n             * // Prints: error 5, to stderr\n             * ```\n             *\n             * If formatting elements (e.g. `%d`) are not found in the first string then `util.inspect()` is called on each argument and the resulting string\n             * values are concatenated. See `util.format()` for more information.\n             * @since v0.1.100\n             */\n            error(message?: any, ...optionalParams: any[]): void;\n            /**\n             * Increases indentation of subsequent lines by spaces for `groupIndentation`length.\n             *\n             * If one or more `label`s are provided, those are printed first without the\n             * additional indentation.\n             * @since v8.5.0\n             */\n            group(...label: any[]): void;\n            /**\n             * An alias for {@link group}.\n             * @since v8.5.0\n             */\n            groupCollapsed(...label: any[]): void;\n            /**\n             * Decreases indentation of subsequent lines by spaces for `groupIndentation`length.\n             * @since v8.5.0\n             */\n            groupEnd(): void;\n            /**\n             * The `console.info()` function is an alias for {@link log}.\n             * @since v0.1.100\n             */\n            info(message?: any, ...optionalParams: any[]): void;\n            /**\n             * Prints to `stdout` with newline. Multiple arguments can be passed, with the\n             * first used as the primary message and all additional used as substitution\n             * values similar to [`printf(3)`](http://man7.org/linux/man-pages/man3/printf.3.html) (the arguments are all passed to `util.format()`).\n             *\n             * ```js\n             * const count = 5;\n             * console.log('count: %d', count);\n             * // Prints: count: 5, to stdout\n             * console.log('count:', count);\n             * // Prints: count: 5, to stdout\n             * ```\n             *\n             * See `util.format()` for more information.\n             * @since v0.1.100\n             */\n            log(message?: any, ...optionalParams: any[]): void;\n            /**\n             * Try to construct a table with the columns of the properties of `tabularData`(or use `properties`) and rows of `tabularData` and log it. Falls back to just\n             * logging the argument if it can’t be parsed as tabular.\n             *\n             * ```js\n             * // These can't be parsed as tabular data\n             * console.table(Symbol());\n             * // Symbol()\n             *\n             * console.table(undefined);\n             * // undefined\n             *\n             * console.table([{ a: 1, b: 'Y' }, { a: 'Z', b: 2 }]);\n             * // ┌─────────┬─────┬─────┐\n             * // │ (index) │  a  │  b  │\n             * // ├─────────┼─────┼─────┤\n             * // │    0    │  1  │ 'Y' │\n             * // │    1    │ 'Z' │  2  │\n             * // └─────────┴─────┴─────┘\n             *\n             * console.table([{ a: 1, b: 'Y' }, { a: 'Z', b: 2 }], ['a']);\n             * // ┌─────────┬─────┐\n             * // │ (index) │  a  │\n             * // ├─────────┼─────┤\n             * // │    0    │  1  │\n             * // │    1    │ 'Z' │\n             * // └─────────┴─────┘\n             * ```\n             * @since v10.0.0\n             * @param properties Alternate properties for constructing the table.\n             */\n            table(tabularData: any, properties?: ReadonlyArray<string>): void;\n            /**\n             * Starts a timer that can be used to compute the duration of an operation. Timers\n             * are identified by a unique `label`. Use the same `label` when calling {@link timeEnd} to stop the timer and output the elapsed time in\n             * suitable time units to `stdout`. For example, if the elapsed\n             * time is 3869ms, `console.timeEnd()` displays \"3.869s\".\n             * @since v0.1.104\n             */\n            time(label?: string): void;\n            /**\n             * Stops a timer that was previously started by calling {@link time} and\n             * prints the result to `stdout`:\n             *\n             * ```js\n             * console.time('100-elements');\n             * for (let i = 0; i < 100; i++) {}\n             * console.timeEnd('100-elements');\n             * // prints 100-elements: 225.438ms\n             * ```\n             * @since v0.1.104\n             */\n            timeEnd(label?: string): void;\n            /**\n             * For a timer that was previously started by calling {@link time}, prints\n             * the elapsed time and other `data` arguments to `stdout`:\n             *\n             * ```js\n             * console.time('process');\n             * const value = expensiveProcess1(); // Returns 42\n             * console.timeLog('process', value);\n             * // Prints \"process: 365.227ms 42\".\n             * doExpensiveProcess2(value);\n             * console.timeEnd('process');\n             * ```\n             * @since v10.7.0\n             */\n            timeLog(label?: string, ...data: any[]): void;\n            /**\n             * Prints to `stderr` the string `'Trace: '`, followed by the `util.format()` formatted message and stack trace to the current position in the code.\n             *\n             * ```js\n             * console.trace('Show me');\n             * // Prints: (stack trace will vary based on where trace is called)\n             * //  Trace: Show me\n             * //    at repl:2:9\n             * //    at REPLServer.defaultEval (repl.js:248:27)\n             * //    at bound (domain.js:287:14)\n             * //    at REPLServer.runBound [as eval] (domain.js:300:12)\n             * //    at REPLServer.<anonymous> (repl.js:412:12)\n             * //    at emitOne (events.js:82:20)\n             * //    at REPLServer.emit (events.js:169:7)\n             * //    at REPLServer.Interface._onLine (readline.js:210:10)\n             * //    at REPLServer.Interface._line (readline.js:549:8)\n             * //    at REPLServer.Interface._ttyWrite (readline.js:826:14)\n             * ```\n             * @since v0.1.104\n             */\n            trace(message?: any, ...optionalParams: any[]): void;\n            /**\n             * The `console.warn()` function is an alias for {@link error}.\n             * @since v0.1.100\n             */\n            warn(message?: any, ...optionalParams: any[]): void;\n            // --- Inspector mode only ---\n            /**\n             * This method does not display anything unless used in the inspector.\n             *  Starts a JavaScript CPU profile with an optional label.\n             */\n            profile(label?: string): void;\n            /**\n             * This method does not display anything unless used in the inspector.\n             *  Stops the current JavaScript CPU profiling session if one has been started and prints the report to the Profiles panel of the inspector.\n             */\n            profileEnd(label?: string): void;\n            /**\n             * This method does not display anything unless used in the inspector.\n             *  Adds an event with the label `label` to the Timeline panel of the inspector.\n             */\n            timeStamp(label?: string): void;\n        }\n        /**\n         * The `console` module provides a simple debugging console that is similar to the\n         * JavaScript console mechanism provided by web browsers.\n         *\n         * The module exports two specific components:\n         *\n         * * A `Console` class with methods such as `console.log()`, `console.error()` and`console.warn()` that can be used to write to any Node.js stream.\n         * * A global `console` instance configured to write to `process.stdout` and `process.stderr`. The global `console` can be used without calling`require('console')`.\n         *\n         * _**Warning**_: The global console object's methods are neither consistently\n         * synchronous like the browser APIs they resemble, nor are they consistently\n         * asynchronous like all other Node.js streams. See the `note on process I/O` for\n         * more information.\n         *\n         * Example using the global `console`:\n         *\n         * ```js\n         * console.log('hello world');\n         * // Prints: hello world, to stdout\n         * console.log('hello %s', 'world');\n         * // Prints: hello world, to stdout\n         * console.error(new Error('Whoops, something bad happened'));\n         * // Prints error message and stack trace to stderr:\n         * //   Error: Whoops, something bad happened\n         * //     at [eval]:5:15\n         * //     at Script.runInThisContext (node:vm:132:18)\n         * //     at Object.runInThisContext (node:vm:309:38)\n         * //     at node:internal/process/execution:77:19\n         * //     at [eval]-wrapper:6:22\n         * //     at evalScript (node:internal/process/execution:76:60)\n         * //     at node:internal/main/eval_string:23:3\n         *\n         * const name = 'Will Robinson';\n         * console.warn(`Danger ${name}! Danger!`);\n         * // Prints: Danger Will Robinson! Danger!, to stderr\n         * ```\n         *\n         * Example using the `Console` class:\n         *\n         * ```js\n         * const out = getStreamSomehow();\n         * const err = getStreamSomehow();\n         * const myConsole = new console.Console(out, err);\n         *\n         * myConsole.log('hello world');\n         * // Prints: hello world, to out\n         * myConsole.log('hello %s', 'world');\n         * // Prints: hello world, to out\n         * myConsole.error(new Error('Whoops, something bad happened'));\n         * // Prints: [Error: Whoops, something bad happened], to err\n         *\n         * const name = 'Will Robinson';\n         * myConsole.warn(`Danger ${name}! Danger!`);\n         * // Prints: Danger Will Robinson! Danger!, to err\n         * ```\n         * @see [source](https://github.com/nodejs/node/blob/v16.4.2/lib/console.js)\n         */\n        namespace console {\n            interface ConsoleConstructorOptions {\n                stdout: NodeJS.WritableStream;\n                stderr?: NodeJS.WritableStream | undefined;\n                ignoreErrors?: boolean | undefined;\n                colorMode?: boolean | 'auto' | undefined;\n                inspectOptions?: InspectOptions | undefined;\n                /**\n                 * Set group indentation\n                 * @default 2\n                 */\n                groupIndentation?: number | undefined;\n            }\n            interface ConsoleConstructor {\n                prototype: Console;\n                new (stdout: NodeJS.WritableStream, stderr?: NodeJS.WritableStream, ignoreErrors?: boolean): Console;\n                new (options: ConsoleConstructorOptions): Console;\n            }\n        }\n        var console: Console;\n    }\n    export = globalThis.console;\n}\n"
    },
    {
      "path": "/node_modules/@types/node/constants.d.ts",
      "content": "/** @deprecated since v6.3.0 - use constants property exposed by the relevant module instead. */\ndeclare module 'constants' {\n    import { constants as osConstants, SignalConstants } from 'node:os';\n    import { constants as cryptoConstants } from 'node:crypto';\n    import { constants as fsConstants } from 'node:fs';\n\n    const exp: typeof osConstants.errno &\n        typeof osConstants.priority &\n        SignalConstants &\n        typeof cryptoConstants &\n        typeof fsConstants;\n    export = exp;\n}\n\ndeclare module 'node:constants' {\n    import constants = require('constants');\n    export = constants;\n}\n"
    },
    {
      "path": "/node_modules/@types/node/crypto.d.ts",
      "content": "/**\n * The `crypto` module provides cryptographic functionality that includes a set of\n * wrappers for OpenSSL's hash, HMAC, cipher, decipher, sign, and verify functions.\n *\n * ```js\n * const { createHmac } = await import('crypto');\n *\n * const secret = 'abcdefg';\n * const hash = createHmac('sha256', secret)\n *                .update('I love cupcakes')\n *                .digest('hex');\n * console.log(hash);\n * // Prints:\n * //   c0fa1bc00531bd78ef38c628449c5102aeabd49b5dc3a2a516ea6ea959d6658e\n * ```\n * @see [source](https://github.com/nodejs/node/blob/v16.9.0/lib/crypto.js)\n */\ndeclare module 'crypto' {\n    import * as stream from 'node:stream';\n    import { PeerCertificate } from 'node:tls';\n    interface Certificate {\n        /**\n         * @deprecated\n         * @param spkac\n         * @returns The challenge component of the `spkac` data structure,\n         * which includes a public key and a challenge.\n         */\n        exportChallenge(spkac: BinaryLike): Buffer;\n        /**\n         * @deprecated\n         * @param spkac\n         * @param encoding The encoding of the spkac string.\n         * @returns The public key component of the `spkac` data structure,\n         * which includes a public key and a challenge.\n         */\n        exportPublicKey(spkac: BinaryLike, encoding?: string): Buffer;\n        /**\n         * @deprecated\n         * @param spkac\n         * @returns `true` if the given `spkac` data structure is valid,\n         * `false` otherwise.\n         */\n        verifySpkac(spkac: NodeJS.ArrayBufferView): boolean;\n    }\n    const Certificate: Certificate & {\n        /** @deprecated since v14.9.0 - Use static methods of `crypto.Certificate` instead. */\n        new (): Certificate;\n        /** @deprecated since v14.9.0 - Use static methods of `crypto.Certificate` instead. */\n        (): Certificate;\n        /**\n         * @param spkac\n         * @returns The challenge component of the `spkac` data structure,\n         * which includes a public key and a challenge.\n         */\n        exportChallenge(spkac: BinaryLike): Buffer;\n        /**\n         * @param spkac\n         * @param encoding The encoding of the spkac string.\n         * @returns The public key component of the `spkac` data structure,\n         * which includes a public key and a challenge.\n         */\n        exportPublicKey(spkac: BinaryLike, encoding?: string): Buffer;\n        /**\n         * @param spkac\n         * @returns `true` if the given `spkac` data structure is valid,\n         * `false` otherwise.\n         */\n        verifySpkac(spkac: NodeJS.ArrayBufferView): boolean;\n    };\n    namespace constants {\n        // https://nodejs.org/dist/latest-v10.x/docs/api/crypto.html#crypto_crypto_constants\n        const OPENSSL_VERSION_NUMBER: number;\n        /** Applies multiple bug workarounds within OpenSSL. See https://www.openssl.org/docs/man1.0.2/ssl/SSL_CTX_set_options.html for detail. */\n        const SSL_OP_ALL: number;\n        /** Allows legacy insecure renegotiation between OpenSSL and unpatched clients or servers. See https://www.openssl.org/docs/man1.0.2/ssl/SSL_CTX_set_options.html. */\n        const SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION: number;\n        /** Attempts to use the server's preferences instead of the client's when selecting a cipher. See https://www.openssl.org/docs/man1.0.2/ssl/SSL_CTX_set_options.html. */\n        const SSL_OP_CIPHER_SERVER_PREFERENCE: number;\n        /** Instructs OpenSSL to use Cisco's \"speshul\" version of DTLS_BAD_VER. */\n        const SSL_OP_CISCO_ANYCONNECT: number;\n        /** Instructs OpenSSL to turn on cookie exchange. */\n        const SSL_OP_COOKIE_EXCHANGE: number;\n        /** Instructs OpenSSL to add server-hello extension from an early version of the cryptopro draft. */\n        const SSL_OP_CRYPTOPRO_TLSEXT_BUG: number;\n        /** Instructs OpenSSL to disable a SSL 3.0/TLS 1.0 vulnerability workaround added in OpenSSL 0.9.6d. */\n        const SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS: number;\n        /** Instructs OpenSSL to always use the tmp_rsa key when performing RSA operations. */\n        const SSL_OP_EPHEMERAL_RSA: number;\n        /** Allows initial connection to servers that do not support RI. */\n        const SSL_OP_LEGACY_SERVER_CONNECT: number;\n        const SSL_OP_MICROSOFT_BIG_SSLV3_BUFFER: number;\n        const SSL_OP_MICROSOFT_SESS_ID_BUG: number;\n        /** Instructs OpenSSL to disable the workaround for a man-in-the-middle protocol-version vulnerability in the SSL 2.0 server implementation. */\n        const SSL_OP_MSIE_SSLV2_RSA_PADDING: number;\n        const SSL_OP_NETSCAPE_CA_DN_BUG: number;\n        const SSL_OP_NETSCAPE_CHALLENGE_BUG: number;\n        const SSL_OP_NETSCAPE_DEMO_CIPHER_CHANGE_BUG: number;\n        const SSL_OP_NETSCAPE_REUSE_CIPHER_CHANGE_BUG: number;\n        /** Instructs OpenSSL to disable support for SSL/TLS compression. */\n        const SSL_OP_NO_COMPRESSION: number;\n        const SSL_OP_NO_QUERY_MTU: number;\n        /** Instructs OpenSSL to always start a new session when performing renegotiation. */\n        const SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION: number;\n        const SSL_OP_NO_SSLv2: number;\n        const SSL_OP_NO_SSLv3: number;\n        const SSL_OP_NO_TICKET: number;\n        const SSL_OP_NO_TLSv1: number;\n        const SSL_OP_NO_TLSv1_1: number;\n        const SSL_OP_NO_TLSv1_2: number;\n        const SSL_OP_PKCS1_CHECK_1: number;\n        const SSL_OP_PKCS1_CHECK_2: number;\n        /** Instructs OpenSSL to always create a new key when using temporary/ephemeral DH parameters. */\n        const SSL_OP_SINGLE_DH_USE: number;\n        /** Instructs OpenSSL to always create a new key when using temporary/ephemeral ECDH parameters. */\n        const SSL_OP_SINGLE_ECDH_USE: number;\n        const SSL_OP_SSLEAY_080_CLIENT_DH_BUG: number;\n        const SSL_OP_SSLREF2_REUSE_CERT_TYPE_BUG: number;\n        const SSL_OP_TLS_BLOCK_PADDING_BUG: number;\n        const SSL_OP_TLS_D5_BUG: number;\n        /** Instructs OpenSSL to disable version rollback attack detection. */\n        const SSL_OP_TLS_ROLLBACK_BUG: number;\n        const ENGINE_METHOD_RSA: number;\n        const ENGINE_METHOD_DSA: number;\n        const ENGINE_METHOD_DH: number;\n        const ENGINE_METHOD_RAND: number;\n        const ENGINE_METHOD_EC: number;\n        const ENGINE_METHOD_CIPHERS: number;\n        const ENGINE_METHOD_DIGESTS: number;\n        const ENGINE_METHOD_PKEY_METHS: number;\n        const ENGINE_METHOD_PKEY_ASN1_METHS: number;\n        const ENGINE_METHOD_ALL: number;\n        const ENGINE_METHOD_NONE: number;\n        const DH_CHECK_P_NOT_SAFE_PRIME: number;\n        const DH_CHECK_P_NOT_PRIME: number;\n        const DH_UNABLE_TO_CHECK_GENERATOR: number;\n        const DH_NOT_SUITABLE_GENERATOR: number;\n        const ALPN_ENABLED: number;\n        const RSA_PKCS1_PADDING: number;\n        const RSA_SSLV23_PADDING: number;\n        const RSA_NO_PADDING: number;\n        const RSA_PKCS1_OAEP_PADDING: number;\n        const RSA_X931_PADDING: number;\n        const RSA_PKCS1_PSS_PADDING: number;\n        /** Sets the salt length for RSA_PKCS1_PSS_PADDING to the digest size when signing or verifying. */\n        const RSA_PSS_SALTLEN_DIGEST: number;\n        /** Sets the salt length for RSA_PKCS1_PSS_PADDING to the maximum permissible value when signing data. */\n        const RSA_PSS_SALTLEN_MAX_SIGN: number;\n        /** Causes the salt length for RSA_PKCS1_PSS_PADDING to be determined automatically when verifying a signature. */\n        const RSA_PSS_SALTLEN_AUTO: number;\n        const POINT_CONVERSION_COMPRESSED: number;\n        const POINT_CONVERSION_UNCOMPRESSED: number;\n        const POINT_CONVERSION_HYBRID: number;\n        /** Specifies the built-in default cipher list used by Node.js (colon-separated values). */\n        const defaultCoreCipherList: string;\n        /** Specifies the active default cipher list used by the current Node.js process  (colon-separated values). */\n        const defaultCipherList: string;\n    }\n    interface HashOptions extends stream.TransformOptions {\n        /**\n         * For XOF hash functions such as `shake256`, the\n         * outputLength option can be used to specify the desired output length in bytes.\n         */\n        outputLength?: number | undefined;\n    }\n    /** @deprecated since v10.0.0 */\n    const fips: boolean;\n    /**\n     * Creates and returns a `Hash` object that can be used to generate hash digests\n     * using the given `algorithm`. Optional `options` argument controls stream\n     * behavior. For XOF hash functions such as `'shake256'`, the `outputLength` option\n     * can be used to specify the desired output length in bytes.\n     *\n     * The `algorithm` is dependent on the available algorithms supported by the\n     * version of OpenSSL on the platform. Examples are `'sha256'`, `'sha512'`, etc.\n     * On recent releases of OpenSSL, `openssl list -digest-algorithms`(`openssl list-message-digest-algorithms` for older versions of OpenSSL) will\n     * display the available digest algorithms.\n     *\n     * Example: generating the sha256 sum of a file\n     *\n     * ```js\n     * import {\n     *   createReadStream\n     * } from 'fs';\n     * import { argv } from 'process';\n     * const {\n     *   createHash\n     * } = await import('crypto');\n     *\n     * const filename = argv[2];\n     *\n     * const hash = createHash('sha256');\n     *\n     * const input = createReadStream(filename);\n     * input.on('readable', () => {\n     *   // Only one element is going to be produced by the\n     *   // hash stream.\n     *   const data = input.read();\n     *   if (data)\n     *     hash.update(data);\n     *   else {\n     *     console.log(`${hash.digest('hex')} ${filename}`);\n     *   }\n     * });\n     * ```\n     * @since v0.1.92\n     * @param options `stream.transform` options\n     */\n    function createHash(algorithm: string, options?: HashOptions): Hash;\n    /**\n     * Creates and returns an `Hmac` object that uses the given `algorithm` and `key`.\n     * Optional `options` argument controls stream behavior.\n     *\n     * The `algorithm` is dependent on the available algorithms supported by the\n     * version of OpenSSL on the platform. Examples are `'sha256'`, `'sha512'`, etc.\n     * On recent releases of OpenSSL, `openssl list -digest-algorithms`(`openssl list-message-digest-algorithms` for older versions of OpenSSL) will\n     * display the available digest algorithms.\n     *\n     * The `key` is the HMAC key used to generate the cryptographic HMAC hash. If it is\n     * a `KeyObject`, its type must be `secret`.\n     *\n     * Example: generating the sha256 HMAC of a file\n     *\n     * ```js\n     * import {\n     *   createReadStream\n     * } from 'fs';\n     * import { argv } from 'process';\n     * const {\n     *   createHmac\n     * } = await import('crypto');\n     *\n     * const filename = argv[2];\n     *\n     * const hmac = createHmac('sha256', 'a secret');\n     *\n     * const input = createReadStream(filename);\n     * input.on('readable', () => {\n     *   // Only one element is going to be produced by the\n     *   // hash stream.\n     *   const data = input.read();\n     *   if (data)\n     *     hmac.update(data);\n     *   else {\n     *     console.log(`${hmac.digest('hex')} ${filename}`);\n     *   }\n     * });\n     * ```\n     * @since v0.1.94\n     * @param options `stream.transform` options\n     */\n    function createHmac(algorithm: string, key: BinaryLike | KeyObject, options?: stream.TransformOptions): Hmac;\n    // https://nodejs.org/api/buffer.html#buffer_buffers_and_character_encodings\n    type BinaryToTextEncoding = 'base64' | 'base64url' | 'hex';\n    type CharacterEncoding = 'utf8' | 'utf-8' | 'utf16le' | 'latin1';\n    type LegacyCharacterEncoding = 'ascii' | 'binary' | 'ucs2' | 'ucs-2';\n    type Encoding = BinaryToTextEncoding | CharacterEncoding | LegacyCharacterEncoding;\n    type ECDHKeyFormat = 'compressed' | 'uncompressed' | 'hybrid';\n    /**\n     * The `Hash` class is a utility for creating hash digests of data. It can be\n     * used in one of two ways:\n     *\n     * * As a `stream` that is both readable and writable, where data is written\n     * to produce a computed hash digest on the readable side, or\n     * * Using the `hash.update()` and `hash.digest()` methods to produce the\n     * computed hash.\n     *\n     * The {@link createHash} method is used to create `Hash` instances. `Hash`objects are not to be created directly using the `new` keyword.\n     *\n     * Example: Using `Hash` objects as streams:\n     *\n     * ```js\n     * const {\n     *   createHash\n     * } = await import('crypto');\n     *\n     * const hash = createHash('sha256');\n     *\n     * hash.on('readable', () => {\n     *   // Only one element is going to be produced by the\n     *   // hash stream.\n     *   const data = hash.read();\n     *   if (data) {\n     *     console.log(data.toString('hex'));\n     *     // Prints:\n     *     //   6a2da20943931e9834fc12cfe5bb47bbd9ae43489a30726962b576f4e3993e50\n     *   }\n     * });\n     *\n     * hash.write('some data to hash');\n     * hash.end();\n     * ```\n     *\n     * Example: Using `Hash` and piped streams:\n     *\n     * ```js\n     * import { createReadStream } from 'fs';\n     * import { stdout } from 'process';\n     * const { createHash } = await import('crypto');\n     *\n     * const hash = createHash('sha256');\n     *\n     * const input = createReadStream('test.js');\n     * input.pipe(hash).setEncoding('hex').pipe(stdout);\n     * ```\n     *\n     * Example: Using the `hash.update()` and `hash.digest()` methods:\n     *\n     * ```js\n     * const {\n     *   createHash\n     * } = await import('crypto');\n     *\n     * const hash = createHash('sha256');\n     *\n     * hash.update('some data to hash');\n     * console.log(hash.digest('hex'));\n     * // Prints:\n     * //   6a2da20943931e9834fc12cfe5bb47bbd9ae43489a30726962b576f4e3993e50\n     * ```\n     * @since v0.1.92\n     */\n    class Hash extends stream.Transform {\n        private constructor();\n        /**\n         * Creates a new `Hash` object that contains a deep copy of the internal state\n         * of the current `Hash` object.\n         *\n         * The optional `options` argument controls stream behavior. For XOF hash\n         * functions such as `'shake256'`, the `outputLength` option can be used to\n         * specify the desired output length in bytes.\n         *\n         * An error is thrown when an attempt is made to copy the `Hash` object after\n         * its `hash.digest()` method has been called.\n         *\n         * ```js\n         * // Calculate a rolling hash.\n         * const {\n         *   createHash\n         * } = await import('crypto');\n         *\n         * const hash = createHash('sha256');\n         *\n         * hash.update('one');\n         * console.log(hash.copy().digest('hex'));\n         *\n         * hash.update('two');\n         * console.log(hash.copy().digest('hex'));\n         *\n         * hash.update('three');\n         * console.log(hash.copy().digest('hex'));\n         *\n         * // Etc.\n         * ```\n         * @since v13.1.0\n         * @param options `stream.transform` options\n         */\n        copy(options?: stream.TransformOptions): Hash;\n        /**\n         * Updates the hash content with the given `data`, the encoding of which\n         * is given in `inputEncoding`.\n         * If `encoding` is not provided, and the `data` is a string, an\n         * encoding of `'utf8'` is enforced. If `data` is a `Buffer`, `TypedArray`, or`DataView`, then `inputEncoding` is ignored.\n         *\n         * This can be called many times with new data as it is streamed.\n         * @since v0.1.92\n         * @param inputEncoding The `encoding` of the `data` string.\n         */\n        update(data: BinaryLike): Hash;\n        update(data: string, inputEncoding: Encoding): Hash;\n        /**\n         * Calculates the digest of all of the data passed to be hashed (using the `hash.update()` method).\n         * If `encoding` is provided a string will be returned; otherwise\n         * a `Buffer` is returned.\n         *\n         * The `Hash` object can not be used again after `hash.digest()` method has been\n         * called. Multiple calls will cause an error to be thrown.\n         * @since v0.1.92\n         * @param encoding The `encoding` of the return value.\n         */\n        digest(): Buffer;\n        digest(encoding: BinaryToTextEncoding): string;\n    }\n    /**\n     * The `Hmac` class is a utility for creating cryptographic HMAC digests. It can\n     * be used in one of two ways:\n     *\n     * * As a `stream` that is both readable and writable, where data is written\n     * to produce a computed HMAC digest on the readable side, or\n     * * Using the `hmac.update()` and `hmac.digest()` methods to produce the\n     * computed HMAC digest.\n     *\n     * The {@link createHmac} method is used to create `Hmac` instances. `Hmac`objects are not to be created directly using the `new` keyword.\n     *\n     * Example: Using `Hmac` objects as streams:\n     *\n     * ```js\n     * const {\n     *   createHmac\n     * } = await import('crypto');\n     *\n     * const hmac = createHmac('sha256', 'a secret');\n     *\n     * hmac.on('readable', () => {\n     *   // Only one element is going to be produced by the\n     *   // hash stream.\n     *   const data = hmac.read();\n     *   if (data) {\n     *     console.log(data.toString('hex'));\n     *     // Prints:\n     *     //   7fd04df92f636fd450bc841c9418e5825c17f33ad9c87c518115a45971f7f77e\n     *   }\n     * });\n     *\n     * hmac.write('some data to hash');\n     * hmac.end();\n     * ```\n     *\n     * Example: Using `Hmac` and piped streams:\n     *\n     * ```js\n     * import { createReadStream } from 'fs';\n     * import { stdout } from 'process';\n     * const {\n     *   createHmac\n     * } = await import('crypto');\n     *\n     * const hmac = createHmac('sha256', 'a secret');\n     *\n     * const input = createReadStream('test.js');\n     * input.pipe(hmac).pipe(stdout);\n     * ```\n     *\n     * Example: Using the `hmac.update()` and `hmac.digest()` methods:\n     *\n     * ```js\n     * const {\n     *   createHmac\n     * } = await import('crypto');\n     *\n     * const hmac = createHmac('sha256', 'a secret');\n     *\n     * hmac.update('some data to hash');\n     * console.log(hmac.digest('hex'));\n     * // Prints:\n     * //   7fd04df92f636fd450bc841c9418e5825c17f33ad9c87c518115a45971f7f77e\n     * ```\n     * @since v0.1.94\n     */\n    class Hmac extends stream.Transform {\n        private constructor();\n        /**\n         * Updates the `Hmac` content with the given `data`, the encoding of which\n         * is given in `inputEncoding`.\n         * If `encoding` is not provided, and the `data` is a string, an\n         * encoding of `'utf8'` is enforced. If `data` is a `Buffer`, `TypedArray`, or`DataView`, then `inputEncoding` is ignored.\n         *\n         * This can be called many times with new data as it is streamed.\n         * @since v0.1.94\n         * @param inputEncoding The `encoding` of the `data` string.\n         */\n        update(data: BinaryLike): Hmac;\n        update(data: string, inputEncoding: Encoding): Hmac;\n        /**\n         * Calculates the HMAC digest of all of the data passed using `hmac.update()`.\n         * If `encoding` is\n         * provided a string is returned; otherwise a `Buffer` is returned;\n         *\n         * The `Hmac` object can not be used again after `hmac.digest()` has been\n         * called. Multiple calls to `hmac.digest()` will result in an error being thrown.\n         * @since v0.1.94\n         * @param encoding The `encoding` of the return value.\n         */\n        digest(): Buffer;\n        digest(encoding: BinaryToTextEncoding): string;\n    }\n    type KeyObjectType = 'secret' | 'public' | 'private';\n    interface KeyExportOptions<T extends KeyFormat> {\n        type: 'pkcs1' | 'spki' | 'pkcs8' | 'sec1';\n        format: T;\n        cipher?: string | undefined;\n        passphrase?: string | Buffer | undefined;\n    }\n    interface JwkKeyExportOptions {\n        format: 'jwk';\n    }\n    interface JsonWebKey {\n        crv?: string | undefined;\n        d?: string | undefined;\n        dp?: string | undefined;\n        dq?: string | undefined;\n        e?: string | undefined;\n        k?: string | undefined;\n        kty?: string | undefined;\n        n?: string | undefined;\n        p?: string | undefined;\n        q?: string | undefined;\n        qi?: string | undefined;\n        x?: string | undefined;\n        y?: string | undefined;\n        [key: string]: unknown;\n    }\n    interface AsymmetricKeyDetails {\n        /**\n         * Key size in bits (RSA, DSA).\n         */\n        modulusLength?: number | undefined;\n        /**\n         * Public exponent (RSA).\n         */\n        publicExponent?: bigint | undefined;\n        /**\n         * Name of the message digest (RSA-PSS).\n         */\n        hashAlgorithm?: string | undefined;\n        /**\n         * Name of the message digest used by MGF1 (RSA-PSS).\n         */\n        mgf1HashAlgorithm?: string | undefined;\n        /**\n         * Minimal salt length in bytes (RSA-PSS).\n         */\n        saltLength?: number | undefined;\n        /**\n         * Size of q in bits (DSA).\n         */\n        divisorLength?: number | undefined;\n        /**\n         * Name of the curve (EC).\n         */\n        namedCurve?: string | undefined;\n    }\n    /**\n     * Node.js uses a `KeyObject` class to represent a symmetric or asymmetric key,\n     * and each kind of key exposes different functions. The {@link createSecretKey}, {@link createPublicKey} and {@link createPrivateKey} methods are used to create `KeyObject`instances. `KeyObject`\n     * objects are not to be created directly using the `new`keyword.\n     *\n     * Most applications should consider using the new `KeyObject` API instead of\n     * passing keys as strings or `Buffer`s due to improved security features.\n     *\n     * `KeyObject` instances can be passed to other threads via `postMessage()`.\n     * The receiver obtains a cloned `KeyObject`, and the `KeyObject` does not need to\n     * be listed in the `transferList` argument.\n     * @since v11.6.0\n     */\n    class KeyObject {\n        private constructor();\n        /**\n         * Example: Converting a `CryptoKey` instance to a `KeyObject`:\n         *\n         * ```js\n         * const { webcrypto, KeyObject } = await import('crypto');\n         * const { subtle } = webcrypto;\n         *\n         * const key = await subtle.generateKey({\n         *   name: 'HMAC',\n         *   hash: 'SHA-256',\n         *   length: 256\n         * }, true, ['sign', 'verify']);\n         *\n         * const keyObject = KeyObject.from(key);\n         * console.log(keyObject.symmetricKeySize);\n         * // Prints: 32 (symmetric key size in bytes)\n         * ```\n         * @since v15.0.0\n         */\n        static from(key: webcrypto.CryptoKey): KeyObject;\n        /**\n         * For asymmetric keys, this property represents the type of the key. Supported key\n         * types are:\n         *\n         * * `'rsa'` (OID 1.2.840.113549.1.1.1)\n         * * `'rsa-pss'` (OID 1.2.840.113549.1.1.10)\n         * * `'dsa'` (OID 1.2.840.10040.4.1)\n         * * `'ec'` (OID 1.2.840.10045.2.1)\n         * * `'x25519'` (OID 1.3.101.110)\n         * * `'x448'` (OID 1.3.101.111)\n         * * `'ed25519'` (OID 1.3.101.112)\n         * * `'ed448'` (OID 1.3.101.113)\n         * * `'dh'` (OID 1.2.840.113549.1.3.1)\n         *\n         * This property is `undefined` for unrecognized `KeyObject` types and symmetric\n         * keys.\n         * @since v11.6.0\n         */\n        asymmetricKeyType?: KeyType | undefined;\n        /**\n         * For asymmetric keys, this property represents the size of the embedded key in\n         * bytes. This property is `undefined` for symmetric keys.\n         */\n        asymmetricKeySize?: number | undefined;\n        /**\n         * This property exists only on asymmetric keys. Depending on the type of the key,\n         * this object contains information about the key. None of the information obtained\n         * through this property can be used to uniquely identify a key or to compromise\n         * the security of the key.\n         *\n         * For RSA-PSS keys, if the key material contains a `RSASSA-PSS-params` sequence,\n         * the `hashAlgorithm`, `mgf1HashAlgorithm`, and `saltLength` properties will be\n         * set.\n         *\n         * Other key details might be exposed via this API using additional attributes.\n         * @since v15.7.0\n         */\n        asymmetricKeyDetails?: AsymmetricKeyDetails | undefined;\n        /**\n         * For symmetric keys, the following encoding options can be used:\n         *\n         * For public keys, the following encoding options can be used:\n         *\n         * For private keys, the following encoding options can be used:\n         *\n         * The result type depends on the selected encoding format, when PEM the\n         * result is a string, when DER it will be a buffer containing the data\n         * encoded as DER, when [JWK](https://tools.ietf.org/html/rfc7517) it will be an object.\n         *\n         * When [JWK](https://tools.ietf.org/html/rfc7517) encoding format was selected, all other encoding options are\n         * ignored.\n         *\n         * PKCS#1, SEC1, and PKCS#8 type keys can be encrypted by using a combination of\n         * the `cipher` and `format` options. The PKCS#8 `type` can be used with any`format` to encrypt any key algorithm (RSA, EC, or DH) by specifying a`cipher`. PKCS#1 and SEC1 can only be\n         * encrypted by specifying a `cipher`when the PEM `format` is used. For maximum compatibility, use PKCS#8 for\n         * encrypted private keys. Since PKCS#8 defines its own\n         * encryption mechanism, PEM-level encryption is not supported when encrypting\n         * a PKCS#8 key. See [RFC 5208](https://www.rfc-editor.org/rfc/rfc5208.txt) for PKCS#8 encryption and [RFC 1421](https://www.rfc-editor.org/rfc/rfc1421.txt) for\n         * PKCS#1 and SEC1 encryption.\n         * @since v11.6.0\n         */\n        export(options: KeyExportOptions<'pem'>): string | Buffer;\n        export(options?: KeyExportOptions<'der'>): Buffer;\n        export(options?: JwkKeyExportOptions): JsonWebKey;\n        /**\n         * For secret keys, this property represents the size of the key in bytes. This\n         * property is `undefined` for asymmetric keys.\n         * @since v11.6.0\n         */\n        symmetricKeySize?: number | undefined;\n        /**\n         * Depending on the type of this `KeyObject`, this property is either`'secret'` for secret (symmetric) keys, `'public'` for public (asymmetric) keys\n         * or `'private'` for private (asymmetric) keys.\n         * @since v11.6.0\n         */\n        type: KeyObjectType;\n    }\n    type CipherCCMTypes = 'aes-128-ccm' | 'aes-192-ccm' | 'aes-256-ccm' | 'chacha20-poly1305';\n    type CipherGCMTypes = 'aes-128-gcm' | 'aes-192-gcm' | 'aes-256-gcm';\n    type CipherOCBTypes = 'aes-128-ocb' | 'aes-192-ocb' | 'aes-256-ocb';\n    type BinaryLike = string | NodeJS.ArrayBufferView;\n    type CipherKey = BinaryLike | KeyObject;\n    interface CipherCCMOptions extends stream.TransformOptions {\n        authTagLength: number;\n    }\n    interface CipherGCMOptions extends stream.TransformOptions {\n        authTagLength?: number | undefined;\n    }\n    interface CipherOCBOptions extends stream.TransformOptions {\n        authTagLength: number;\n    }\n    /**\n     * Creates and returns a `Cipher` object that uses the given `algorithm` and`password`.\n     *\n     * The `options` argument controls stream behavior and is optional except when a\n     * cipher in CCM or OCB mode is used (e.g. `'aes-128-ccm'`). In that case, the`authTagLength` option is required and specifies the length of the\n     * authentication tag in bytes, see `CCM mode`. In GCM mode, the `authTagLength`option is not required but can be used to set the length of the authentication\n     * tag that will be returned by `getAuthTag()` and defaults to 16 bytes.\n     *\n     * The `algorithm` is dependent on OpenSSL, examples are `'aes192'`, etc. On\n     * recent OpenSSL releases, `openssl list -cipher-algorithms`(`openssl list-cipher-algorithms` for older versions of OpenSSL) will\n     * display the available cipher algorithms.\n     *\n     * The `password` is used to derive the cipher key and initialization vector (IV).\n     * The value must be either a `'latin1'` encoded string, a `Buffer`, a`TypedArray`, or a `DataView`.\n     *\n     * The implementation of `crypto.createCipher()` derives keys using the OpenSSL\n     * function [`EVP_BytesToKey`](https://www.openssl.org/docs/man1.1.0/crypto/EVP_BytesToKey.html) with the digest algorithm set to MD5, one\n     * iteration, and no salt. The lack of salt allows dictionary attacks as the same\n     * password always creates the same key. The low iteration count and\n     * non-cryptographically secure hash algorithm allow passwords to be tested very\n     * rapidly.\n     *\n     * In line with OpenSSL's recommendation to use a more modern algorithm instead of [`EVP_BytesToKey`](https://www.openssl.org/docs/man1.1.0/crypto/EVP_BytesToKey.html) it is recommended that\n     * developers derive a key and IV on\n     * their own using {@link scrypt} and to use {@link createCipheriv} to create the `Cipher` object. Users should not use ciphers with counter mode\n     * (e.g. CTR, GCM, or CCM) in `crypto.createCipher()`. A warning is emitted when\n     * they are used in order to avoid the risk of IV reuse that causes\n     * vulnerabilities. For the case when IV is reused in GCM, see [Nonce-Disrespecting Adversaries](https://github.com/nonce-disrespect/nonce-disrespect) for details.\n     * @since v0.1.94\n     * @deprecated Since v10.0.0 - Use {@link createCipheriv} instead.\n     * @param options `stream.transform` options\n     */\n    function createCipher(algorithm: CipherCCMTypes, password: BinaryLike, options: CipherCCMOptions): CipherCCM;\n    /** @deprecated since v10.0.0 use `createCipheriv()` */\n    function createCipher(algorithm: CipherGCMTypes, password: BinaryLike, options?: CipherGCMOptions): CipherGCM;\n    /** @deprecated since v10.0.0 use `createCipheriv()` */\n    function createCipher(algorithm: string, password: BinaryLike, options?: stream.TransformOptions): Cipher;\n    /**\n     * Creates and returns a `Cipher` object, with the given `algorithm`, `key` and\n     * initialization vector (`iv`).\n     *\n     * The `options` argument controls stream behavior and is optional except when a\n     * cipher in CCM or OCB mode is used (e.g. `'aes-128-ccm'`). In that case, the`authTagLength` option is required and specifies the length of the\n     * authentication tag in bytes, see `CCM mode`. In GCM mode, the `authTagLength`option is not required but can be used to set the length of the authentication\n     * tag that will be returned by `getAuthTag()` and defaults to 16 bytes.\n     *\n     * The `algorithm` is dependent on OpenSSL, examples are `'aes192'`, etc. On\n     * recent OpenSSL releases, `openssl list -cipher-algorithms`(`openssl list-cipher-algorithms` for older versions of OpenSSL) will\n     * display the available cipher algorithms.\n     *\n     * The `key` is the raw key used by the `algorithm` and `iv` is an [initialization vector](https://en.wikipedia.org/wiki/Initialization_vector). Both arguments must be `'utf8'` encoded\n     * strings,`Buffers`, `TypedArray`, or `DataView`s. The `key` may optionally be\n     * a `KeyObject` of type `secret`. If the cipher does not need\n     * an initialization vector, `iv` may be `null`.\n     *\n     * When passing strings for `key` or `iv`, please consider `caveats when using strings as inputs to cryptographic APIs`.\n     *\n     * Initialization vectors should be unpredictable and unique; ideally, they will be\n     * cryptographically random. They do not have to be secret: IVs are typically just\n     * added to ciphertext messages unencrypted. It may sound contradictory that\n     * something has to be unpredictable and unique, but does not have to be secret;\n     * remember that an attacker must not be able to predict ahead of time what a\n     * given IV will be.\n     * @since v0.1.94\n     * @param options `stream.transform` options\n     */\n    function createCipheriv(algorithm: CipherCCMTypes, key: CipherKey, iv: BinaryLike, options: CipherCCMOptions): CipherCCM;\n    function createCipheriv(algorithm: CipherOCBTypes, key: CipherKey, iv: BinaryLike, options: CipherOCBOptions): CipherOCB;\n    function createCipheriv(algorithm: CipherGCMTypes, key: CipherKey, iv: BinaryLike, options?: CipherGCMOptions): CipherGCM;\n    function createCipheriv(algorithm: string, key: CipherKey, iv: BinaryLike | null, options?: stream.TransformOptions): Cipher;\n    /**\n     * Instances of the `Cipher` class are used to encrypt data. The class can be\n     * used in one of two ways:\n     *\n     * * As a `stream` that is both readable and writable, where plain unencrypted\n     * data is written to produce encrypted data on the readable side, or\n     * * Using the `cipher.update()` and `cipher.final()` methods to produce\n     * the encrypted data.\n     *\n     * The {@link createCipher} or {@link createCipheriv} methods are\n     * used to create `Cipher` instances. `Cipher` objects are not to be created\n     * directly using the `new` keyword.\n     *\n     * Example: Using `Cipher` objects as streams:\n     *\n     * ```js\n     * const {\n     *   scrypt,\n     *   randomFill,\n     *   createCipheriv\n     * } = await import('crypto');\n     *\n     * const algorithm = 'aes-192-cbc';\n     * const password = 'Password used to generate key';\n     *\n     * // First, we'll generate the key. The key length is dependent on the algorithm.\n     * // In this case for aes192, it is 24 bytes (192 bits).\n     * scrypt(password, 'salt', 24, (err, key) => {\n     *   if (err) throw err;\n     *   // Then, we'll generate a random initialization vector\n     *   randomFill(new Uint8Array(16), (err, iv) => {\n     *     if (err) throw err;\n     *\n     *     // Once we have the key and iv, we can create and use the cipher...\n     *     const cipher = createCipheriv(algorithm, key, iv);\n     *\n     *     let encrypted = '';\n     *     cipher.setEncoding('hex');\n     *\n     *     cipher.on('data', (chunk) => encrypted += chunk);\n     *     cipher.on('end', () => console.log(encrypted));\n     *\n     *     cipher.write('some clear text data');\n     *     cipher.end();\n     *   });\n     * });\n     * ```\n     *\n     * Example: Using `Cipher` and piped streams:\n     *\n     * ```js\n     * import {\n     *   createReadStream,\n     *   createWriteStream,\n     * } from 'fs';\n     *\n     * import {\n     *   pipeline\n     * } from 'stream';\n     *\n     * const {\n     *   scrypt,\n     *   randomFill,\n     *   createCipheriv\n     * } = await import('crypto');\n     *\n     * const algorithm = 'aes-192-cbc';\n     * const password = 'Password used to generate key';\n     *\n     * // First, we'll generate the key. The key length is dependent on the algorithm.\n     * // In this case for aes192, it is 24 bytes (192 bits).\n     * scrypt(password, 'salt', 24, (err, key) => {\n     *   if (err) throw err;\n     *   // Then, we'll generate a random initialization vector\n     *   randomFill(new Uint8Array(16), (err, iv) => {\n     *     if (err) throw err;\n     *\n     *     const cipher = createCipheriv(algorithm, key, iv);\n     *\n     *     const input = createReadStream('test.js');\n     *     const output = createWriteStream('test.enc');\n     *\n     *     pipeline(input, cipher, output, (err) => {\n     *       if (err) throw err;\n     *     });\n     *   });\n     * });\n     * ```\n     *\n     * Example: Using the `cipher.update()` and `cipher.final()` methods:\n     *\n     * ```js\n     * const {\n     *   scrypt,\n     *   randomFill,\n     *   createCipheriv\n     * } = await import('crypto');\n     *\n     * const algorithm = 'aes-192-cbc';\n     * const password = 'Password used to generate key';\n     *\n     * // First, we'll generate the key. The key length is dependent on the algorithm.\n     * // In this case for aes192, it is 24 bytes (192 bits).\n     * scrypt(password, 'salt', 24, (err, key) => {\n     *   if (err) throw err;\n     *   // Then, we'll generate a random initialization vector\n     *   randomFill(new Uint8Array(16), (err, iv) => {\n     *     if (err) throw err;\n     *\n     *     const cipher = createCipheriv(algorithm, key, iv);\n     *\n     *     let encrypted = cipher.update('some clear text data', 'utf8', 'hex');\n     *     encrypted += cipher.final('hex');\n     *     console.log(encrypted);\n     *   });\n     * });\n     * ```\n     * @since v0.1.94\n     */\n    class Cipher extends stream.Transform {\n        private constructor();\n        /**\n         * Updates the cipher with `data`. If the `inputEncoding` argument is given,\n         * the `data`argument is a string using the specified encoding. If the `inputEncoding`argument is not given, `data` must be a `Buffer`, `TypedArray`, or`DataView`. If `data` is a `Buffer`,\n         * `TypedArray`, or `DataView`, then`inputEncoding` is ignored.\n         *\n         * The `outputEncoding` specifies the output format of the enciphered\n         * data. If the `outputEncoding`is specified, a string using the specified encoding is returned. If no`outputEncoding` is provided, a `Buffer` is returned.\n         *\n         * The `cipher.update()` method can be called multiple times with new data until `cipher.final()` is called. Calling `cipher.update()` after `cipher.final()` will result in an error being\n         * thrown.\n         * @since v0.1.94\n         * @param inputEncoding The `encoding` of the data.\n         * @param outputEncoding The `encoding` of the return value.\n         */\n        update(data: BinaryLike): Buffer;\n        update(data: string, inputEncoding: Encoding): Buffer;\n        update(data: NodeJS.ArrayBufferView, inputEncoding: undefined, outputEncoding: Encoding): string;\n        update(data: string, inputEncoding: Encoding | undefined, outputEncoding: Encoding): string;\n        /**\n         * Once the `cipher.final()` method has been called, the `Cipher` object can no\n         * longer be used to encrypt data. Attempts to call `cipher.final()` more than\n         * once will result in an error being thrown.\n         * @since v0.1.94\n         * @param outputEncoding The `encoding` of the return value.\n         * @return Any remaining enciphered contents. If `outputEncoding` is specified, a string is returned. If an `outputEncoding` is not provided, a {@link Buffer} is returned.\n         */\n        final(): Buffer;\n        final(outputEncoding: BufferEncoding): string;\n        /**\n         * When using block encryption algorithms, the `Cipher` class will automatically\n         * add padding to the input data to the appropriate block size. To disable the\n         * default padding call `cipher.setAutoPadding(false)`.\n         *\n         * When `autoPadding` is `false`, the length of the entire input data must be a\n         * multiple of the cipher's block size or `cipher.final()` will throw an error.\n         * Disabling automatic padding is useful for non-standard padding, for instance\n         * using `0x0` instead of PKCS padding.\n         *\n         * The `cipher.setAutoPadding()` method must be called before `cipher.final()`.\n         * @since v0.7.1\n         * @param [autoPadding=true]\n         * @return for method chaining.\n         */\n        setAutoPadding(autoPadding?: boolean): this;\n    }\n    interface CipherCCM extends Cipher {\n        setAAD(\n            buffer: NodeJS.ArrayBufferView,\n            options: {\n                plaintextLength: number;\n            }\n        ): this;\n        getAuthTag(): Buffer;\n    }\n    interface CipherGCM extends Cipher {\n        setAAD(\n            buffer: NodeJS.ArrayBufferView,\n            options?: {\n                plaintextLength: number;\n            }\n        ): this;\n        getAuthTag(): Buffer;\n    }\n    interface CipherOCB extends Cipher {\n        setAAD(\n            buffer: NodeJS.ArrayBufferView,\n            options?: {\n                plaintextLength: number;\n            }\n        ): this;\n        getAuthTag(): Buffer;\n    }\n    /**\n     * Creates and returns a `Decipher` object that uses the given `algorithm` and`password` (key).\n     *\n     * The `options` argument controls stream behavior and is optional except when a\n     * cipher in CCM or OCB mode is used (e.g. `'aes-128-ccm'`). In that case, the`authTagLength` option is required and specifies the length of the\n     * authentication tag in bytes, see `CCM mode`.\n     *\n     * The implementation of `crypto.createDecipher()` derives keys using the OpenSSL\n     * function [`EVP_BytesToKey`](https://www.openssl.org/docs/man1.1.0/crypto/EVP_BytesToKey.html) with the digest algorithm set to MD5, one\n     * iteration, and no salt. The lack of salt allows dictionary attacks as the same\n     * password always creates the same key. The low iteration count and\n     * non-cryptographically secure hash algorithm allow passwords to be tested very\n     * rapidly.\n     *\n     * In line with OpenSSL's recommendation to use a more modern algorithm instead of [`EVP_BytesToKey`](https://www.openssl.org/docs/man1.1.0/crypto/EVP_BytesToKey.html) it is recommended that\n     * developers derive a key and IV on\n     * their own using {@link scrypt} and to use {@link createDecipheriv} to create the `Decipher` object.\n     * @since v0.1.94\n     * @deprecated Since v10.0.0 - Use {@link createDecipheriv} instead.\n     * @param options `stream.transform` options\n     */\n    function createDecipher(algorithm: CipherCCMTypes, password: BinaryLike, options: CipherCCMOptions): DecipherCCM;\n    /** @deprecated since v10.0.0 use `createDecipheriv()` */\n    function createDecipher(algorithm: CipherGCMTypes, password: BinaryLike, options?: CipherGCMOptions): DecipherGCM;\n    /** @deprecated since v10.0.0 use `createDecipheriv()` */\n    function createDecipher(algorithm: string, password: BinaryLike, options?: stream.TransformOptions): Decipher;\n    /**\n     * Creates and returns a `Decipher` object that uses the given `algorithm`, `key`and initialization vector (`iv`).\n     *\n     * The `options` argument controls stream behavior and is optional except when a\n     * cipher in CCM or OCB mode is used (e.g. `'aes-128-ccm'`). In that case, the`authTagLength` option is required and specifies the length of the\n     * authentication tag in bytes, see `CCM mode`. In GCM mode, the `authTagLength`option is not required but can be used to restrict accepted authentication tags\n     * to those with the specified length.\n     *\n     * The `algorithm` is dependent on OpenSSL, examples are `'aes192'`, etc. On\n     * recent OpenSSL releases, `openssl list -cipher-algorithms`(`openssl list-cipher-algorithms` for older versions of OpenSSL) will\n     * display the available cipher algorithms.\n     *\n     * The `key` is the raw key used by the `algorithm` and `iv` is an [initialization vector](https://en.wikipedia.org/wiki/Initialization_vector). Both arguments must be `'utf8'` encoded\n     * strings,`Buffers`, `TypedArray`, or `DataView`s. The `key` may optionally be\n     * a `KeyObject` of type `secret`. If the cipher does not need\n     * an initialization vector, `iv` may be `null`.\n     *\n     * When passing strings for `key` or `iv`, please consider `caveats when using strings as inputs to cryptographic APIs`.\n     *\n     * Initialization vectors should be unpredictable and unique; ideally, they will be\n     * cryptographically random. They do not have to be secret: IVs are typically just\n     * added to ciphertext messages unencrypted. It may sound contradictory that\n     * something has to be unpredictable and unique, but does not have to be secret;\n     * remember that an attacker must not be able to predict ahead of time what a given\n     * IV will be.\n     * @since v0.1.94\n     * @param options `stream.transform` options\n     */\n    function createDecipheriv(algorithm: CipherCCMTypes, key: CipherKey, iv: BinaryLike, options: CipherCCMOptions): DecipherCCM;\n    function createDecipheriv(algorithm: CipherOCBTypes, key: CipherKey, iv: BinaryLike, options: CipherOCBOptions): DecipherOCB;\n    function createDecipheriv(algorithm: CipherGCMTypes, key: CipherKey, iv: BinaryLike, options?: CipherGCMOptions): DecipherGCM;\n    function createDecipheriv(algorithm: string, key: CipherKey, iv: BinaryLike | null, options?: stream.TransformOptions): Decipher;\n    /**\n     * Instances of the `Decipher` class are used to decrypt data. The class can be\n     * used in one of two ways:\n     *\n     * * As a `stream` that is both readable and writable, where plain encrypted\n     * data is written to produce unencrypted data on the readable side, or\n     * * Using the `decipher.update()` and `decipher.final()` methods to\n     * produce the unencrypted data.\n     *\n     * The {@link createDecipher} or {@link createDecipheriv} methods are\n     * used to create `Decipher` instances. `Decipher` objects are not to be created\n     * directly using the `new` keyword.\n     *\n     * Example: Using `Decipher` objects as streams:\n     *\n     * ```js\n     * import { Buffer } from 'buffer';\n     * const {\n     *   scryptSync,\n     *   createDecipheriv\n     * } = await import('crypto');\n     *\n     * const algorithm = 'aes-192-cbc';\n     * const password = 'Password used to generate key';\n     * // Key length is dependent on the algorithm. In this case for aes192, it is\n     * // 24 bytes (192 bits).\n     * // Use the async `crypto.scrypt()` instead.\n     * const key = scryptSync(password, 'salt', 24);\n     * // The IV is usually passed along with the ciphertext.\n     * const iv = Buffer.alloc(16, 0); // Initialization vector.\n     *\n     * const decipher = createDecipheriv(algorithm, key, iv);\n     *\n     * let decrypted = '';\n     * decipher.on('readable', () => {\n     *   while (null !== (chunk = decipher.read())) {\n     *     decrypted += chunk.toString('utf8');\n     *   }\n     * });\n     * decipher.on('end', () => {\n     *   console.log(decrypted);\n     *   // Prints: some clear text data\n     * });\n     *\n     * // Encrypted with same algorithm, key and iv.\n     * const encrypted =\n     *   'e5f79c5915c02171eec6b212d5520d44480993d7d622a7c4c2da32f6efda0ffa';\n     * decipher.write(encrypted, 'hex');\n     * decipher.end();\n     * ```\n     *\n     * Example: Using `Decipher` and piped streams:\n     *\n     * ```js\n     * import {\n     *   createReadStream,\n     *   createWriteStream,\n     * } from 'fs';\n     * import { Buffer } from 'buffer';\n     * const {\n     *   scryptSync,\n     *   createDecipheriv\n     * } = await import('crypto');\n     *\n     * const algorithm = 'aes-192-cbc';\n     * const password = 'Password used to generate key';\n     * // Use the async `crypto.scrypt()` instead.\n     * const key = scryptSync(password, 'salt', 24);\n     * // The IV is usually passed along with the ciphertext.\n     * const iv = Buffer.alloc(16, 0); // Initialization vector.\n     *\n     * const decipher = createDecipheriv(algorithm, key, iv);\n     *\n     * const input = createReadStream('test.enc');\n     * const output = createWriteStream('test.js');\n     *\n     * input.pipe(decipher).pipe(output);\n     * ```\n     *\n     * Example: Using the `decipher.update()` and `decipher.final()` methods:\n     *\n     * ```js\n     * import { Buffer } from 'buffer';\n     * const {\n     *   scryptSync,\n     *   createDecipheriv\n     * } = await import('crypto');\n     *\n     * const algorithm = 'aes-192-cbc';\n     * const password = 'Password used to generate key';\n     * // Use the async `crypto.scrypt()` instead.\n     * const key = scryptSync(password, 'salt', 24);\n     * // The IV is usually passed along with the ciphertext.\n     * const iv = Buffer.alloc(16, 0); // Initialization vector.\n     *\n     * const decipher = createDecipheriv(algorithm, key, iv);\n     *\n     * // Encrypted using same algorithm, key and iv.\n     * const encrypted =\n     *   'e5f79c5915c02171eec6b212d5520d44480993d7d622a7c4c2da32f6efda0ffa';\n     * let decrypted = decipher.update(encrypted, 'hex', 'utf8');\n     * decrypted += decipher.final('utf8');\n     * console.log(decrypted);\n     * // Prints: some clear text data\n     * ```\n     * @since v0.1.94\n     */\n    class Decipher extends stream.Transform {\n        private constructor();\n        /**\n         * Updates the decipher with `data`. If the `inputEncoding` argument is given,\n         * the `data`argument is a string using the specified encoding. If the `inputEncoding`argument is not given, `data` must be a `Buffer`. If `data` is a `Buffer` then `inputEncoding` is\n         * ignored.\n         *\n         * The `outputEncoding` specifies the output format of the enciphered\n         * data. If the `outputEncoding`is specified, a string using the specified encoding is returned. If no`outputEncoding` is provided, a `Buffer` is returned.\n         *\n         * The `decipher.update()` method can be called multiple times with new data until `decipher.final()` is called. Calling `decipher.update()` after `decipher.final()` will result in an error\n         * being thrown.\n         * @since v0.1.94\n         * @param inputEncoding The `encoding` of the `data` string.\n         * @param outputEncoding The `encoding` of the return value.\n         */\n        update(data: NodeJS.ArrayBufferView): Buffer;\n        update(data: string, inputEncoding: Encoding): Buffer;\n        update(data: NodeJS.ArrayBufferView, inputEncoding: undefined, outputEncoding: Encoding): string;\n        update(data: string, inputEncoding: Encoding | undefined, outputEncoding: Encoding): string;\n        /**\n         * Once the `decipher.final()` method has been called, the `Decipher` object can\n         * no longer be used to decrypt data. Attempts to call `decipher.final()` more\n         * than once will result in an error being thrown.\n         * @since v0.1.94\n         * @param outputEncoding The `encoding` of the return value.\n         * @return Any remaining deciphered contents. If `outputEncoding` is specified, a string is returned. If an `outputEncoding` is not provided, a {@link Buffer} is returned.\n         */\n        final(): Buffer;\n        final(outputEncoding: BufferEncoding): string;\n        /**\n         * When data has been encrypted without standard block padding, calling`decipher.setAutoPadding(false)` will disable automatic padding to prevent `decipher.final()` from checking for and\n         * removing padding.\n         *\n         * Turning auto padding off will only work if the input data's length is a\n         * multiple of the ciphers block size.\n         *\n         * The `decipher.setAutoPadding()` method must be called before `decipher.final()`.\n         * @since v0.7.1\n         * @param [autoPadding=true]\n         * @return for method chaining.\n         */\n        setAutoPadding(auto_padding?: boolean): this;\n    }\n    interface DecipherCCM extends Decipher {\n        setAuthTag(buffer: NodeJS.ArrayBufferView): this;\n        setAAD(\n            buffer: NodeJS.ArrayBufferView,\n            options: {\n                plaintextLength: number;\n            }\n        ): this;\n    }\n    interface DecipherGCM extends Decipher {\n        setAuthTag(buffer: NodeJS.ArrayBufferView): this;\n        setAAD(\n            buffer: NodeJS.ArrayBufferView,\n            options?: {\n                plaintextLength: number;\n            }\n        ): this;\n    }\n    interface DecipherOCB extends Decipher {\n        setAuthTag(buffer: NodeJS.ArrayBufferView): this;\n        setAAD(\n            buffer: NodeJS.ArrayBufferView,\n            options?: {\n                plaintextLength: number;\n            }\n        ): this;\n    }\n    interface PrivateKeyInput {\n        key: string | Buffer;\n        format?: KeyFormat | undefined;\n        type?: 'pkcs1' | 'pkcs8' | 'sec1' | undefined;\n        passphrase?: string | Buffer | undefined;\n    }\n    interface PublicKeyInput {\n        key: string | Buffer;\n        format?: KeyFormat | undefined;\n        type?: 'pkcs1' | 'spki' | undefined;\n    }\n    /**\n     * Asynchronously generates a new random secret key of the given `length`. The`type` will determine which validations will be performed on the `length`.\n     *\n     * ```js\n     * const {\n     *   generateKey\n     * } = await import('crypto');\n     *\n     * generateKey('hmac', { length: 64 }, (err, key) => {\n     *   if (err) throw err;\n     *   console.log(key.export().toString('hex'));  // 46e..........620\n     * });\n     * ```\n     * @since v15.0.0\n     * @param type The intended use of the generated secret key. Currently accepted values are `'hmac'` and `'aes'`.\n     */\n    function generateKey(\n        type: 'hmac' | 'aes',\n        options: {\n            length: number;\n        },\n        callback: (err: Error | null, key: KeyObject) => void\n    ): void;\n    /**\n     * Synchronously generates a new random secret key of the given `length`. The`type` will determine which validations will be performed on the `length`.\n     *\n     * ```js\n     * const {\n     *   generateKeySync\n     * } = await import('crypto');\n     *\n     * const key = generateKeySync('hmac', { length: 64 });\n     * console.log(key.export().toString('hex'));  // e89..........41e\n     * ```\n     * @since v15.0.0\n     * @param type The intended use of the generated secret key. Currently accepted values are `'hmac'` and `'aes'`.\n     */\n    function generateKeySync(\n        type: 'hmac' | 'aes',\n        options: {\n            length: number;\n        }\n    ): KeyObject;\n    interface JsonWebKeyInput {\n        key: JsonWebKey;\n        format: 'jwk';\n    }\n    /**\n     * Creates and returns a new key object containing a private key. If `key` is a\n     * string or `Buffer`, `format` is assumed to be `'pem'`; otherwise, `key`must be an object with the properties described above.\n     *\n     * If the private key is encrypted, a `passphrase` must be specified. The length\n     * of the passphrase is limited to 1024 bytes.\n     * @since v11.6.0\n     */\n    function createPrivateKey(key: PrivateKeyInput | string | Buffer | JsonWebKeyInput): KeyObject;\n    /**\n     * Creates and returns a new key object containing a public key. If `key` is a\n     * string or `Buffer`, `format` is assumed to be `'pem'`; if `key` is a `KeyObject`with type `'private'`, the public key is derived from the given private key;\n     * otherwise, `key` must be an object with the properties described above.\n     *\n     * If the format is `'pem'`, the `'key'` may also be an X.509 certificate.\n     *\n     * Because public keys can be derived from private keys, a private key may be\n     * passed instead of a public key. In that case, this function behaves as if {@link createPrivateKey} had been called, except that the type of the\n     * returned `KeyObject` will be `'public'` and that the private key cannot be\n     * extracted from the returned `KeyObject`. Similarly, if a `KeyObject` with type`'private'` is given, a new `KeyObject` with type `'public'` will be returned\n     * and it will be impossible to extract the private key from the returned object.\n     * @since v11.6.0\n     */\n    function createPublicKey(key: PublicKeyInput | string | Buffer | KeyObject | JsonWebKeyInput): KeyObject;\n    /**\n     * Creates and returns a new key object containing a secret key for symmetric\n     * encryption or `Hmac`.\n     * @since v11.6.0\n     * @param encoding The string encoding when `key` is a string.\n     */\n    function createSecretKey(key: NodeJS.ArrayBufferView): KeyObject;\n    function createSecretKey(key: string, encoding: BufferEncoding): KeyObject;\n    /**\n     * Creates and returns a `Sign` object that uses the given `algorithm`. Use {@link getHashes} to obtain the names of the available digest algorithms.\n     * Optional `options` argument controls the `stream.Writable` behavior.\n     *\n     * In some cases, a `Sign` instance can be created using the name of a signature\n     * algorithm, such as `'RSA-SHA256'`, instead of a digest algorithm. This will use\n     * the corresponding digest algorithm. This does not work for all signature\n     * algorithms, such as `'ecdsa-with-SHA256'`, so it is best to always use digest\n     * algorithm names.\n     * @since v0.1.92\n     * @param options `stream.Writable` options\n     */\n    function createSign(algorithm: string, options?: stream.WritableOptions): Sign;\n    type DSAEncoding = 'der' | 'ieee-p1363';\n    interface SigningOptions {\n        /**\n         * @See crypto.constants.RSA_PKCS1_PADDING\n         */\n        padding?: number | undefined;\n        saltLength?: number | undefined;\n        dsaEncoding?: DSAEncoding | undefined;\n    }\n    interface SignPrivateKeyInput extends PrivateKeyInput, SigningOptions {}\n    interface SignKeyObjectInput extends SigningOptions {\n        key: KeyObject;\n    }\n    interface VerifyPublicKeyInput extends PublicKeyInput, SigningOptions {}\n    interface VerifyKeyObjectInput extends SigningOptions {\n        key: KeyObject;\n    }\n    type KeyLike = string | Buffer | KeyObject;\n    /**\n     * The `Sign` class is a utility for generating signatures. It can be used in one\n     * of two ways:\n     *\n     * * As a writable `stream`, where data to be signed is written and the `sign.sign()` method is used to generate and return the signature, or\n     * * Using the `sign.update()` and `sign.sign()` methods to produce the\n     * signature.\n     *\n     * The {@link createSign} method is used to create `Sign` instances. The\n     * argument is the string name of the hash function to use. `Sign` objects are not\n     * to be created directly using the `new` keyword.\n     *\n     * Example: Using `Sign` and `Verify` objects as streams:\n     *\n     * ```js\n     * const {\n     *   generateKeyPairSync,\n     *   createSign,\n     *   createVerify\n     * } = await import('crypto');\n     *\n     * const { privateKey, publicKey } = generateKeyPairSync('ec', {\n     *   namedCurve: 'sect239k1'\n     * });\n     *\n     * const sign = createSign('SHA256');\n     * sign.write('some data to sign');\n     * sign.end();\n     * const signature = sign.sign(privateKey, 'hex');\n     *\n     * const verify = createVerify('SHA256');\n     * verify.write('some data to sign');\n     * verify.end();\n     * console.log(verify.verify(publicKey, signature, 'hex'));\n     * // Prints: true\n     * ```\n     *\n     * Example: Using the `sign.update()` and `verify.update()` methods:\n     *\n     * ```js\n     * const {\n     *   generateKeyPairSync,\n     *   createSign,\n     *   createVerify\n     * } = await import('crypto');\n     *\n     * const { privateKey, publicKey } = generateKeyPairSync('rsa', {\n     *   modulusLength: 2048,\n     * });\n     *\n     * const sign = createSign('SHA256');\n     * sign.update('some data to sign');\n     * sign.end();\n     * const signature = sign.sign(privateKey);\n     *\n     * const verify = createVerify('SHA256');\n     * verify.update('some data to sign');\n     * verify.end();\n     * console.log(verify.verify(publicKey, signature));\n     * // Prints: true\n     * ```\n     * @since v0.1.92\n     */\n    class Sign extends stream.Writable {\n        private constructor();\n        /**\n         * Updates the `Sign` content with the given `data`, the encoding of which\n         * is given in `inputEncoding`.\n         * If `encoding` is not provided, and the `data` is a string, an\n         * encoding of `'utf8'` is enforced. If `data` is a `Buffer`, `TypedArray`, or`DataView`, then `inputEncoding` is ignored.\n         *\n         * This can be called many times with new data as it is streamed.\n         * @since v0.1.92\n         * @param inputEncoding The `encoding` of the `data` string.\n         */\n        update(data: BinaryLike): this;\n        update(data: string, inputEncoding: Encoding): this;\n        /**\n         * Calculates the signature on all the data passed through using either `sign.update()` or `sign.write()`.\n         *\n         * If `privateKey` is not a `KeyObject`, this function behaves as if`privateKey` had been passed to {@link createPrivateKey}. If it is an\n         * object, the following additional properties can be passed:\n         *\n         * If `outputEncoding` is provided a string is returned; otherwise a `Buffer` is returned.\n         *\n         * The `Sign` object can not be again used after `sign.sign()` method has been\n         * called. Multiple calls to `sign.sign()` will result in an error being thrown.\n         * @since v0.1.92\n         */\n        sign(privateKey: KeyLike | SignKeyObjectInput | SignPrivateKeyInput): Buffer;\n        sign(privateKey: KeyLike | SignKeyObjectInput | SignPrivateKeyInput, outputFormat: BinaryToTextEncoding): string;\n    }\n    /**\n     * Creates and returns a `Verify` object that uses the given algorithm.\n     * Use {@link getHashes} to obtain an array of names of the available\n     * signing algorithms. Optional `options` argument controls the`stream.Writable` behavior.\n     *\n     * In some cases, a `Verify` instance can be created using the name of a signature\n     * algorithm, such as `'RSA-SHA256'`, instead of a digest algorithm. This will use\n     * the corresponding digest algorithm. This does not work for all signature\n     * algorithms, such as `'ecdsa-with-SHA256'`, so it is best to always use digest\n     * algorithm names.\n     * @since v0.1.92\n     * @param options `stream.Writable` options\n     */\n    function createVerify(algorithm: string, options?: stream.WritableOptions): Verify;\n    /**\n     * The `Verify` class is a utility for verifying signatures. It can be used in one\n     * of two ways:\n     *\n     * * As a writable `stream` where written data is used to validate against the\n     * supplied signature, or\n     * * Using the `verify.update()` and `verify.verify()` methods to verify\n     * the signature.\n     *\n     * The {@link createVerify} method is used to create `Verify` instances.`Verify` objects are not to be created directly using the `new` keyword.\n     *\n     * See `Sign` for examples.\n     * @since v0.1.92\n     */\n    class Verify extends stream.Writable {\n        private constructor();\n        /**\n         * Updates the `Verify` content with the given `data`, the encoding of which\n         * is given in `inputEncoding`.\n         * If `inputEncoding` is not provided, and the `data` is a string, an\n         * encoding of `'utf8'` is enforced. If `data` is a `Buffer`, `TypedArray`, or`DataView`, then `inputEncoding` is ignored.\n         *\n         * This can be called many times with new data as it is streamed.\n         * @since v0.1.92\n         * @param inputEncoding The `encoding` of the `data` string.\n         */\n        update(data: BinaryLike): Verify;\n        update(data: string, inputEncoding: Encoding): Verify;\n        /**\n         * Verifies the provided data using the given `object` and `signature`.\n         *\n         * If `object` is not a `KeyObject`, this function behaves as if`object` had been passed to {@link createPublicKey}. If it is an\n         * object, the following additional properties can be passed:\n         *\n         * The `signature` argument is the previously calculated signature for the data, in\n         * the `signatureEncoding`.\n         * If a `signatureEncoding` is specified, the `signature` is expected to be a\n         * string; otherwise `signature` is expected to be a `Buffer`,`TypedArray`, or `DataView`.\n         *\n         * The `verify` object can not be used again after `verify.verify()` has been\n         * called. Multiple calls to `verify.verify()` will result in an error being\n         * thrown.\n         *\n         * Because public keys can be derived from private keys, a private key may\n         * be passed instead of a public key.\n         * @since v0.1.92\n         */\n        verify(object: KeyLike | VerifyKeyObjectInput | VerifyPublicKeyInput, signature: NodeJS.ArrayBufferView): boolean;\n        verify(object: KeyLike | VerifyKeyObjectInput | VerifyPublicKeyInput, signature: string, signature_format?: BinaryToTextEncoding): boolean;\n    }\n    /**\n     * Creates a `DiffieHellman` key exchange object using the supplied `prime` and an\n     * optional specific `generator`.\n     *\n     * The `generator` argument can be a number, string, or `Buffer`. If`generator` is not specified, the value `2` is used.\n     *\n     * If `primeEncoding` is specified, `prime` is expected to be a string; otherwise\n     * a `Buffer`, `TypedArray`, or `DataView` is expected.\n     *\n     * If `generatorEncoding` is specified, `generator` is expected to be a string;\n     * otherwise a number, `Buffer`, `TypedArray`, or `DataView` is expected.\n     * @since v0.11.12\n     * @param primeEncoding The `encoding` of the `prime` string.\n     * @param [generator=2]\n     * @param generatorEncoding The `encoding` of the `generator` string.\n     */\n    function createDiffieHellman(primeLength: number, generator?: number | NodeJS.ArrayBufferView): DiffieHellman;\n    function createDiffieHellman(prime: NodeJS.ArrayBufferView): DiffieHellman;\n    function createDiffieHellman(prime: string, primeEncoding: BinaryToTextEncoding): DiffieHellman;\n    function createDiffieHellman(prime: string, primeEncoding: BinaryToTextEncoding, generator: number | NodeJS.ArrayBufferView): DiffieHellman;\n    function createDiffieHellman(prime: string, primeEncoding: BinaryToTextEncoding, generator: string, generatorEncoding: BinaryToTextEncoding): DiffieHellman;\n    /**\n     * The `DiffieHellman` class is a utility for creating Diffie-Hellman key\n     * exchanges.\n     *\n     * Instances of the `DiffieHellman` class can be created using the {@link createDiffieHellman} function.\n     *\n     * ```js\n     * import assert from 'assert';\n     *\n     * const {\n     *   createDiffieHellman\n     * } = await import('crypto');\n     *\n     * // Generate Alice's keys...\n     * const alice = createDiffieHellman(2048);\n     * const aliceKey = alice.generateKeys();\n     *\n     * // Generate Bob's keys...\n     * const bob = createDiffieHellman(alice.getPrime(), alice.getGenerator());\n     * const bobKey = bob.generateKeys();\n     *\n     * // Exchange and generate the secret...\n     * const aliceSecret = alice.computeSecret(bobKey);\n     * const bobSecret = bob.computeSecret(aliceKey);\n     *\n     * // OK\n     * assert.strictEqual(aliceSecret.toString('hex'), bobSecret.toString('hex'));\n     * ```\n     * @since v0.5.0\n     */\n    class DiffieHellman {\n        private constructor();\n        /**\n         * Generates private and public Diffie-Hellman key values, and returns\n         * the public key in the specified `encoding`. This key should be\n         * transferred to the other party.\n         * If `encoding` is provided a string is returned; otherwise a `Buffer` is returned.\n         * @since v0.5.0\n         * @param encoding The `encoding` of the return value.\n         */\n        generateKeys(): Buffer;\n        generateKeys(encoding: BinaryToTextEncoding): string;\n        /**\n         * Computes the shared secret using `otherPublicKey` as the other\n         * party's public key and returns the computed shared secret. The supplied\n         * key is interpreted using the specified `inputEncoding`, and secret is\n         * encoded using specified `outputEncoding`.\n         * If the `inputEncoding` is not\n         * provided, `otherPublicKey` is expected to be a `Buffer`,`TypedArray`, or `DataView`.\n         *\n         * If `outputEncoding` is given a string is returned; otherwise, a `Buffer` is returned.\n         * @since v0.5.0\n         * @param inputEncoding The `encoding` of an `otherPublicKey` string.\n         * @param outputEncoding The `encoding` of the return value.\n         */\n        computeSecret(otherPublicKey: NodeJS.ArrayBufferView, inputEncoding?: null, outputEncoding?: null): Buffer;\n        computeSecret(otherPublicKey: string, inputEncoding: BinaryToTextEncoding, outputEncoding?: null): Buffer;\n        computeSecret(otherPublicKey: NodeJS.ArrayBufferView, inputEncoding: null, outputEncoding: BinaryToTextEncoding): string;\n        computeSecret(otherPublicKey: string, inputEncoding: BinaryToTextEncoding, outputEncoding: BinaryToTextEncoding): string;\n        /**\n         * Returns the Diffie-Hellman prime in the specified `encoding`.\n         * If `encoding` is provided a string is\n         * returned; otherwise a `Buffer` is returned.\n         * @since v0.5.0\n         * @param encoding The `encoding` of the return value.\n         */\n        getPrime(): Buffer;\n        getPrime(encoding: BinaryToTextEncoding): string;\n        /**\n         * Returns the Diffie-Hellman generator in the specified `encoding`.\n         * If `encoding` is provided a string is\n         * returned; otherwise a `Buffer` is returned.\n         * @since v0.5.0\n         * @param encoding The `encoding` of the return value.\n         */\n        getGenerator(): Buffer;\n        getGenerator(encoding: BinaryToTextEncoding): string;\n        /**\n         * Returns the Diffie-Hellman public key in the specified `encoding`.\n         * If `encoding` is provided a\n         * string is returned; otherwise a `Buffer` is returned.\n         * @since v0.5.0\n         * @param encoding The `encoding` of the return value.\n         */\n        getPublicKey(): Buffer;\n        getPublicKey(encoding: BinaryToTextEncoding): string;\n        /**\n         * Returns the Diffie-Hellman private key in the specified `encoding`.\n         * If `encoding` is provided a\n         * string is returned; otherwise a `Buffer` is returned.\n         * @since v0.5.0\n         * @param encoding The `encoding` of the return value.\n         */\n        getPrivateKey(): Buffer;\n        getPrivateKey(encoding: BinaryToTextEncoding): string;\n        /**\n         * Sets the Diffie-Hellman public key. If the `encoding` argument is provided,`publicKey` is expected\n         * to be a string. If no `encoding` is provided, `publicKey` is expected\n         * to be a `Buffer`, `TypedArray`, or `DataView`.\n         * @since v0.5.0\n         * @param encoding The `encoding` of the `publicKey` string.\n         */\n        setPublicKey(publicKey: NodeJS.ArrayBufferView): void;\n        setPublicKey(publicKey: string, encoding: BufferEncoding): void;\n        /**\n         * Sets the Diffie-Hellman private key. If the `encoding` argument is provided,`privateKey` is expected\n         * to be a string. If no `encoding` is provided, `privateKey` is expected\n         * to be a `Buffer`, `TypedArray`, or `DataView`.\n         * @since v0.5.0\n         * @param encoding The `encoding` of the `privateKey` string.\n         */\n        setPrivateKey(privateKey: NodeJS.ArrayBufferView): void;\n        setPrivateKey(privateKey: string, encoding: BufferEncoding): void;\n        /**\n         * A bit field containing any warnings and/or errors resulting from a check\n         * performed during initialization of the `DiffieHellman` object.\n         *\n         * The following values are valid for this property (as defined in `constants`module):\n         *\n         * * `DH_CHECK_P_NOT_SAFE_PRIME`\n         * * `DH_CHECK_P_NOT_PRIME`\n         * * `DH_UNABLE_TO_CHECK_GENERATOR`\n         * * `DH_NOT_SUITABLE_GENERATOR`\n         * @since v0.11.12\n         */\n        verifyError: number;\n    }\n    /**\n     * The `DiffieHellmanGroup` class takes a well-known modp group as its argument.\n     * It works the same as `DiffieHellman`, except that it does not allow changing its keys after creation.\n     * In other words, it does not implement `setPublicKey()` or `setPrivateKey()` methods.\n     *\n     * ```js\n     * const { createDiffieHellmanGroup } = await import('node:crypto');\n     * const dh = createDiffieHellmanGroup('modp1');\n     * ```\n     * The name (e.g. `'modp1'`) is taken from [RFC 2412](https://www.rfc-editor.org/rfc/rfc2412.txt) (modp1 and 2) and [RFC 3526](https://www.rfc-editor.org/rfc/rfc3526.txt):\n     * ```bash\n     * $ perl -ne 'print \"$1\\n\" if /\"(modp\\d+)\"/' src/node_crypto_groups.h\n     * modp1  #  768 bits\n     * modp2  # 1024 bits\n     * modp5  # 1536 bits\n     * modp14 # 2048 bits\n     * modp15 # etc.\n     * modp16\n     * modp17\n     * modp18\n     * ```\n     * @since v0.7.5\n     */\n    const DiffieHellmanGroup: DiffieHellmanGroupConstructor;\n    interface DiffieHellmanGroupConstructor {\n        new(name: string): DiffieHellmanGroup;\n        (name: string): DiffieHellmanGroup;\n        readonly prototype: DiffieHellmanGroup;\n    }\n    type DiffieHellmanGroup = Omit<DiffieHellman, 'setPublicKey' | 'setPrivateKey'>;\n    /**\n     * Creates a predefined `DiffieHellmanGroup` key exchange object. The\n     * supported groups are: `'modp1'`, `'modp2'`, `'modp5'` (defined in [RFC 2412](https://www.rfc-editor.org/rfc/rfc2412.txt), but see `Caveats`) and `'modp14'`, `'modp15'`,`'modp16'`, `'modp17'`,\n     * `'modp18'` (defined in [RFC 3526](https://www.rfc-editor.org/rfc/rfc3526.txt)). The\n     * returned object mimics the interface of objects created by {@link createDiffieHellman}, but will not allow changing\n     * the keys (with `diffieHellman.setPublicKey()`, for example). The\n     * advantage of using this method is that the parties do not have to\n     * generate nor exchange a group modulus beforehand, saving both processor\n     * and communication time.\n     *\n     * Example (obtaining a shared secret):\n     *\n     * ```js\n     * const {\n     *   getDiffieHellman\n     * } = await import('crypto');\n     * const alice = getDiffieHellman('modp14');\n     * const bob = getDiffieHellman('modp14');\n     *\n     * alice.generateKeys();\n     * bob.generateKeys();\n     *\n     * const aliceSecret = alice.computeSecret(bob.getPublicKey(), null, 'hex');\n     * const bobSecret = bob.computeSecret(alice.getPublicKey(), null, 'hex');\n     *\n     * // aliceSecret and bobSecret should be the same\n     * console.log(aliceSecret === bobSecret);\n     * ```\n     * @since v0.7.5\n     */\n    function getDiffieHellman(groupName: string): DiffieHellmanGroup;\n    /**\n     * An alias for {@link getDiffieHellman}\n     * @since v0.9.3\n     */\n    function createDiffieHellmanGroup(name: string): DiffieHellmanGroup;\n    /**\n     * Provides an asynchronous Password-Based Key Derivation Function 2 (PBKDF2)\n     * implementation. A selected HMAC digest algorithm specified by `digest` is\n     * applied to derive a key of the requested byte length (`keylen`) from the`password`, `salt` and `iterations`.\n     *\n     * The supplied `callback` function is called with two arguments: `err` and`derivedKey`. If an error occurs while deriving the key, `err` will be set;\n     * otherwise `err` will be `null`. By default, the successfully generated`derivedKey` will be passed to the callback as a `Buffer`. An error will be\n     * thrown if any of the input arguments specify invalid values or types.\n     *\n     * If `digest` is `null`, `'sha1'` will be used. This behavior is deprecated,\n     * please specify a `digest` explicitly.\n     *\n     * The `iterations` argument must be a number set as high as possible. The\n     * higher the number of iterations, the more secure the derived key will be,\n     * but will take a longer amount of time to complete.\n     *\n     * The `salt` should be as unique as possible. It is recommended that a salt is\n     * random and at least 16 bytes long. See [NIST SP 800-132](https://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-132.pdf) for details.\n     *\n     * When passing strings for `password` or `salt`, please consider `caveats when using strings as inputs to cryptographic APIs`.\n     *\n     * ```js\n     * const {\n     *   pbkdf2\n     * } = await import('crypto');\n     *\n     * pbkdf2('secret', 'salt', 100000, 64, 'sha512', (err, derivedKey) => {\n     *   if (err) throw err;\n     *   console.log(derivedKey.toString('hex'));  // '3745e48...08d59ae'\n     * });\n     * ```\n     *\n     * The `crypto.DEFAULT_ENCODING` property can be used to change the way the`derivedKey` is passed to the callback. This property, however, has been\n     * deprecated and use should be avoided.\n     *\n     * ```js\n     * import crypto from 'crypto';\n     * crypto.DEFAULT_ENCODING = 'hex';\n     * crypto.pbkdf2('secret', 'salt', 100000, 512, 'sha512', (err, derivedKey) => {\n     *   if (err) throw err;\n     *   console.log(derivedKey);  // '3745e48...aa39b34'\n     * });\n     * ```\n     *\n     * An array of supported digest functions can be retrieved using {@link getHashes}.\n     *\n     * This API uses libuv's threadpool, which can have surprising and\n     * negative performance implications for some applications; see the `UV_THREADPOOL_SIZE` documentation for more information.\n     * @since v0.5.5\n     */\n    function pbkdf2(password: BinaryLike, salt: BinaryLike, iterations: number, keylen: number, digest: string, callback: (err: Error | null, derivedKey: Buffer) => void): void;\n    /**\n     * Provides a synchronous Password-Based Key Derivation Function 2 (PBKDF2)\n     * implementation. A selected HMAC digest algorithm specified by `digest` is\n     * applied to derive a key of the requested byte length (`keylen`) from the`password`, `salt` and `iterations`.\n     *\n     * If an error occurs an `Error` will be thrown, otherwise the derived key will be\n     * returned as a `Buffer`.\n     *\n     * If `digest` is `null`, `'sha1'` will be used. This behavior is deprecated,\n     * please specify a `digest` explicitly.\n     *\n     * The `iterations` argument must be a number set as high as possible. The\n     * higher the number of iterations, the more secure the derived key will be,\n     * but will take a longer amount of time to complete.\n     *\n     * The `salt` should be as unique as possible. It is recommended that a salt is\n     * random and at least 16 bytes long. See [NIST SP 800-132](https://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-132.pdf) for details.\n     *\n     * When passing strings for `password` or `salt`, please consider `caveats when using strings as inputs to cryptographic APIs`.\n     *\n     * ```js\n     * const {\n     *   pbkdf2Sync\n     * } = await import('crypto');\n     *\n     * const key = pbkdf2Sync('secret', 'salt', 100000, 64, 'sha512');\n     * console.log(key.toString('hex'));  // '3745e48...08d59ae'\n     * ```\n     *\n     * The `crypto.DEFAULT_ENCODING` property may be used to change the way the`derivedKey` is returned. This property, however, is deprecated and use\n     * should be avoided.\n     *\n     * ```js\n     * import crypto from 'crypto';\n     * crypto.DEFAULT_ENCODING = 'hex';\n     * const key = crypto.pbkdf2Sync('secret', 'salt', 100000, 512, 'sha512');\n     * console.log(key);  // '3745e48...aa39b34'\n     * ```\n     *\n     * An array of supported digest functions can be retrieved using {@link getHashes}.\n     * @since v0.9.3\n     */\n    function pbkdf2Sync(password: BinaryLike, salt: BinaryLike, iterations: number, keylen: number, digest: string): Buffer;\n    /**\n     * Generates cryptographically strong pseudorandom data. The `size` argument\n     * is a number indicating the number of bytes to generate.\n     *\n     * If a `callback` function is provided, the bytes are generated asynchronously\n     * and the `callback` function is invoked with two arguments: `err` and `buf`.\n     * If an error occurs, `err` will be an `Error` object; otherwise it is `null`. The`buf` argument is a `Buffer` containing the generated bytes.\n     *\n     * ```js\n     * // Asynchronous\n     * const {\n     *   randomBytes\n     * } = await import('crypto');\n     *\n     * randomBytes(256, (err, buf) => {\n     *   if (err) throw err;\n     *   console.log(`${buf.length} bytes of random data: ${buf.toString('hex')}`);\n     * });\n     * ```\n     *\n     * If the `callback` function is not provided, the random bytes are generated\n     * synchronously and returned as a `Buffer`. An error will be thrown if\n     * there is a problem generating the bytes.\n     *\n     * ```js\n     * // Synchronous\n     * const {\n     *   randomBytes\n     * } = await import('crypto');\n     *\n     * const buf = randomBytes(256);\n     * console.log(\n     *   `${buf.length} bytes of random data: ${buf.toString('hex')}`);\n     * ```\n     *\n     * The `crypto.randomBytes()` method will not complete until there is\n     * sufficient entropy available.\n     * This should normally never take longer than a few milliseconds. The only time\n     * when generating the random bytes may conceivably block for a longer period of\n     * time is right after boot, when the whole system is still low on entropy.\n     *\n     * This API uses libuv's threadpool, which can have surprising and\n     * negative performance implications for some applications; see the `UV_THREADPOOL_SIZE` documentation for more information.\n     *\n     * The asynchronous version of `crypto.randomBytes()` is carried out in a single\n     * threadpool request. To minimize threadpool task length variation, partition\n     * large `randomBytes` requests when doing so as part of fulfilling a client\n     * request.\n     * @since v0.5.8\n     * @param size The number of bytes to generate. The `size` must not be larger than `2**31 - 1`.\n     * @return if the `callback` function is not provided.\n     */\n    function randomBytes(size: number): Buffer;\n    function randomBytes(size: number, callback: (err: Error | null, buf: Buffer) => void): void;\n    function pseudoRandomBytes(size: number): Buffer;\n    function pseudoRandomBytes(size: number, callback: (err: Error | null, buf: Buffer) => void): void;\n    /**\n     * Return a random integer `n` such that `min <= n < max`.  This\n     * implementation avoids [modulo bias](https://en.wikipedia.org/wiki/Fisher%E2%80%93Yates_shuffle#Modulo_bias).\n     *\n     * The range (`max - min`) must be less than `2**48`. `min` and `max` must\n     * be [safe integers](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/isSafeInteger).\n     *\n     * If the `callback` function is not provided, the random integer is\n     * generated synchronously.\n     *\n     * ```js\n     * // Asynchronous\n     * const {\n     *   randomInt\n     * } = await import('crypto');\n     *\n     * randomInt(3, (err, n) => {\n     *   if (err) throw err;\n     *   console.log(`Random number chosen from (0, 1, 2): ${n}`);\n     * });\n     * ```\n     *\n     * ```js\n     * // Synchronous\n     * const {\n     *   randomInt\n     * } = await import('crypto');\n     *\n     * const n = randomInt(3);\n     * console.log(`Random number chosen from (0, 1, 2): ${n}`);\n     * ```\n     *\n     * ```js\n     * // With `min` argument\n     * const {\n     *   randomInt\n     * } = await import('crypto');\n     *\n     * const n = randomInt(1, 7);\n     * console.log(`The dice rolled: ${n}`);\n     * ```\n     * @since v14.10.0, v12.19.0\n     * @param [min=0] Start of random range (inclusive).\n     * @param max End of random range (exclusive).\n     * @param callback `function(err, n) {}`.\n     */\n    function randomInt(max: number): number;\n    function randomInt(min: number, max: number): number;\n    function randomInt(max: number, callback: (err: Error | null, value: number) => void): void;\n    function randomInt(min: number, max: number, callback: (err: Error | null, value: number) => void): void;\n    /**\n     * Synchronous version of {@link randomFill}.\n     *\n     * ```js\n     * import { Buffer } from 'buffer';\n     * const { randomFillSync } = await import('crypto');\n     *\n     * const buf = Buffer.alloc(10);\n     * console.log(randomFillSync(buf).toString('hex'));\n     *\n     * randomFillSync(buf, 5);\n     * console.log(buf.toString('hex'));\n     *\n     * // The above is equivalent to the following:\n     * randomFillSync(buf, 5, 5);\n     * console.log(buf.toString('hex'));\n     * ```\n     *\n     * Any `ArrayBuffer`, `TypedArray` or `DataView` instance may be passed as`buffer`.\n     *\n     * ```js\n     * import { Buffer } from 'buffer';\n     * const { randomFillSync } = await import('crypto');\n     *\n     * const a = new Uint32Array(10);\n     * console.log(Buffer.from(randomFillSync(a).buffer,\n     *                         a.byteOffset, a.byteLength).toString('hex'));\n     *\n     * const b = new DataView(new ArrayBuffer(10));\n     * console.log(Buffer.from(randomFillSync(b).buffer,\n     *                         b.byteOffset, b.byteLength).toString('hex'));\n     *\n     * const c = new ArrayBuffer(10);\n     * console.log(Buffer.from(randomFillSync(c)).toString('hex'));\n     * ```\n     * @since v7.10.0, v6.13.0\n     * @param buffer Must be supplied. The size of the provided `buffer` must not be larger than `2**31 - 1`.\n     * @param [offset=0]\n     * @param [size=buffer.length - offset]\n     * @return The object passed as `buffer` argument.\n     */\n    function randomFillSync<T extends NodeJS.ArrayBufferView>(buffer: T, offset?: number, size?: number): T;\n    /**\n     * This function is similar to {@link randomBytes} but requires the first\n     * argument to be a `Buffer` that will be filled. It also\n     * requires that a callback is passed in.\n     *\n     * If the `callback` function is not provided, an error will be thrown.\n     *\n     * ```js\n     * import { Buffer } from 'buffer';\n     * const { randomFill } = await import('crypto');\n     *\n     * const buf = Buffer.alloc(10);\n     * randomFill(buf, (err, buf) => {\n     *   if (err) throw err;\n     *   console.log(buf.toString('hex'));\n     * });\n     *\n     * randomFill(buf, 5, (err, buf) => {\n     *   if (err) throw err;\n     *   console.log(buf.toString('hex'));\n     * });\n     *\n     * // The above is equivalent to the following:\n     * randomFill(buf, 5, 5, (err, buf) => {\n     *   if (err) throw err;\n     *   console.log(buf.toString('hex'));\n     * });\n     * ```\n     *\n     * Any `ArrayBuffer`, `TypedArray`, or `DataView` instance may be passed as`buffer`.\n     *\n     * While this includes instances of `Float32Array` and `Float64Array`, this\n     * function should not be used to generate random floating-point numbers. The\n     * result may contain `+Infinity`, `-Infinity`, and `NaN`, and even if the array\n     * contains finite numbers only, they are not drawn from a uniform random\n     * distribution and have no meaningful lower or upper bounds.\n     *\n     * ```js\n     * import { Buffer } from 'buffer';\n     * const { randomFill } = await import('crypto');\n     *\n     * const a = new Uint32Array(10);\n     * randomFill(a, (err, buf) => {\n     *   if (err) throw err;\n     *   console.log(Buffer.from(buf.buffer, buf.byteOffset, buf.byteLength)\n     *     .toString('hex'));\n     * });\n     *\n     * const b = new DataView(new ArrayBuffer(10));\n     * randomFill(b, (err, buf) => {\n     *   if (err) throw err;\n     *   console.log(Buffer.from(buf.buffer, buf.byteOffset, buf.byteLength)\n     *     .toString('hex'));\n     * });\n     *\n     * const c = new ArrayBuffer(10);\n     * randomFill(c, (err, buf) => {\n     *   if (err) throw err;\n     *   console.log(Buffer.from(buf).toString('hex'));\n     * });\n     * ```\n     *\n     * This API uses libuv's threadpool, which can have surprising and\n     * negative performance implications for some applications; see the `UV_THREADPOOL_SIZE` documentation for more information.\n     *\n     * The asynchronous version of `crypto.randomFill()` is carried out in a single\n     * threadpool request. To minimize threadpool task length variation, partition\n     * large `randomFill` requests when doing so as part of fulfilling a client\n     * request.\n     * @since v7.10.0, v6.13.0\n     * @param buffer Must be supplied. The size of the provided `buffer` must not be larger than `2**31 - 1`.\n     * @param [offset=0]\n     * @param [size=buffer.length - offset]\n     * @param callback `function(err, buf) {}`.\n     */\n    function randomFill<T extends NodeJS.ArrayBufferView>(buffer: T, callback: (err: Error | null, buf: T) => void): void;\n    function randomFill<T extends NodeJS.ArrayBufferView>(buffer: T, offset: number, callback: (err: Error | null, buf: T) => void): void;\n    function randomFill<T extends NodeJS.ArrayBufferView>(buffer: T, offset: number, size: number, callback: (err: Error | null, buf: T) => void): void;\n    interface ScryptOptions {\n        cost?: number | undefined;\n        blockSize?: number | undefined;\n        parallelization?: number | undefined;\n        N?: number | undefined;\n        r?: number | undefined;\n        p?: number | undefined;\n        maxmem?: number | undefined;\n    }\n    /**\n     * Provides an asynchronous [scrypt](https://en.wikipedia.org/wiki/Scrypt) implementation. Scrypt is a password-based\n     * key derivation function that is designed to be expensive computationally and\n     * memory-wise in order to make brute-force attacks unrewarding.\n     *\n     * The `salt` should be as unique as possible. It is recommended that a salt is\n     * random and at least 16 bytes long. See [NIST SP 800-132](https://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-132.pdf) for details.\n     *\n     * When passing strings for `password` or `salt`, please consider `caveats when using strings as inputs to cryptographic APIs`.\n     *\n     * The `callback` function is called with two arguments: `err` and `derivedKey`.`err` is an exception object when key derivation fails, otherwise `err` is`null`. `derivedKey` is passed to the\n     * callback as a `Buffer`.\n     *\n     * An exception is thrown when any of the input arguments specify invalid values\n     * or types.\n     *\n     * ```js\n     * const {\n     *   scrypt\n     * } = await import('crypto');\n     *\n     * // Using the factory defaults.\n     * scrypt('password', 'salt', 64, (err, derivedKey) => {\n     *   if (err) throw err;\n     *   console.log(derivedKey.toString('hex'));  // '3745e48...08d59ae'\n     * });\n     * // Using a custom N parameter. Must be a power of two.\n     * scrypt('password', 'salt', 64, { N: 1024 }, (err, derivedKey) => {\n     *   if (err) throw err;\n     *   console.log(derivedKey.toString('hex'));  // '3745e48...aa39b34'\n     * });\n     * ```\n     * @since v10.5.0\n     */\n    function scrypt(password: BinaryLike, salt: BinaryLike, keylen: number, callback: (err: Error | null, derivedKey: Buffer) => void): void;\n    function scrypt(password: BinaryLike, salt: BinaryLike, keylen: number, options: ScryptOptions, callback: (err: Error | null, derivedKey: Buffer) => void): void;\n    /**\n     * Provides a synchronous [scrypt](https://en.wikipedia.org/wiki/Scrypt) implementation. Scrypt is a password-based\n     * key derivation function that is designed to be expensive computationally and\n     * memory-wise in order to make brute-force attacks unrewarding.\n     *\n     * The `salt` should be as unique as possible. It is recommended that a salt is\n     * random and at least 16 bytes long. See [NIST SP 800-132](https://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-132.pdf) for details.\n     *\n     * When passing strings for `password` or `salt`, please consider `caveats when using strings as inputs to cryptographic APIs`.\n     *\n     * An exception is thrown when key derivation fails, otherwise the derived key is\n     * returned as a `Buffer`.\n     *\n     * An exception is thrown when any of the input arguments specify invalid values\n     * or types.\n     *\n     * ```js\n     * const {\n     *   scryptSync\n     * } = await import('crypto');\n     * // Using the factory defaults.\n     *\n     * const key1 = scryptSync('password', 'salt', 64);\n     * console.log(key1.toString('hex'));  // '3745e48...08d59ae'\n     * // Using a custom N parameter. Must be a power of two.\n     * const key2 = scryptSync('password', 'salt', 64, { N: 1024 });\n     * console.log(key2.toString('hex'));  // '3745e48...aa39b34'\n     * ```\n     * @since v10.5.0\n     */\n    function scryptSync(password: BinaryLike, salt: BinaryLike, keylen: number, options?: ScryptOptions): Buffer;\n    interface RsaPublicKey {\n        key: KeyLike;\n        padding?: number | undefined;\n    }\n    interface RsaPrivateKey {\n        key: KeyLike;\n        passphrase?: string | undefined;\n        /**\n         * @default 'sha1'\n         */\n        oaepHash?: string | undefined;\n        oaepLabel?: NodeJS.TypedArray | undefined;\n        padding?: number | undefined;\n    }\n    /**\n     * Encrypts the content of `buffer` with `key` and returns a new `Buffer` with encrypted content. The returned data can be decrypted using\n     * the corresponding private key, for example using {@link privateDecrypt}.\n     *\n     * If `key` is not a `KeyObject`, this function behaves as if`key` had been passed to {@link createPublicKey}. If it is an\n     * object, the `padding` property can be passed. Otherwise, this function uses`RSA_PKCS1_OAEP_PADDING`.\n     *\n     * Because RSA public keys can be derived from private keys, a private key may\n     * be passed instead of a public key.\n     * @since v0.11.14\n     */\n    function publicEncrypt(key: RsaPublicKey | RsaPrivateKey | KeyLike, buffer: NodeJS.ArrayBufferView): Buffer;\n    /**\n     * Decrypts `buffer` with `key`.`buffer` was previously encrypted using\n     * the corresponding private key, for example using {@link privateEncrypt}.\n     *\n     * If `key` is not a `KeyObject`, this function behaves as if`key` had been passed to {@link createPublicKey}. If it is an\n     * object, the `padding` property can be passed. Otherwise, this function uses`RSA_PKCS1_PADDING`.\n     *\n     * Because RSA public keys can be derived from private keys, a private key may\n     * be passed instead of a public key.\n     * @since v1.1.0\n     */\n    function publicDecrypt(key: RsaPublicKey | RsaPrivateKey | KeyLike, buffer: NodeJS.ArrayBufferView): Buffer;\n    /**\n     * Decrypts `buffer` with `privateKey`. `buffer` was previously encrypted using\n     * the corresponding public key, for example using {@link publicEncrypt}.\n     *\n     * If `privateKey` is not a `KeyObject`, this function behaves as if`privateKey` had been passed to {@link createPrivateKey}. If it is an\n     * object, the `padding` property can be passed. Otherwise, this function uses`RSA_PKCS1_OAEP_PADDING`.\n     * @since v0.11.14\n     */\n    function privateDecrypt(privateKey: RsaPrivateKey | KeyLike, buffer: NodeJS.ArrayBufferView): Buffer;\n    /**\n     * Encrypts `buffer` with `privateKey`. The returned data can be decrypted using\n     * the corresponding public key, for example using {@link publicDecrypt}.\n     *\n     * If `privateKey` is not a `KeyObject`, this function behaves as if`privateKey` had been passed to {@link createPrivateKey}. If it is an\n     * object, the `padding` property can be passed. Otherwise, this function uses`RSA_PKCS1_PADDING`.\n     * @since v1.1.0\n     */\n    function privateEncrypt(privateKey: RsaPrivateKey | KeyLike, buffer: NodeJS.ArrayBufferView): Buffer;\n    /**\n     * ```js\n     * const {\n     *   getCiphers\n     * } = await import('crypto');\n     *\n     * console.log(getCiphers()); // ['aes-128-cbc', 'aes-128-ccm', ...]\n     * ```\n     * @since v0.9.3\n     * @return An array with the names of the supported cipher algorithms.\n     */\n    function getCiphers(): string[];\n    /**\n     * ```js\n     * const {\n     *   getCurves\n     * } = await import('crypto');\n     *\n     * console.log(getCurves()); // ['Oakley-EC2N-3', 'Oakley-EC2N-4', ...]\n     * ```\n     * @since v2.3.0\n     * @return An array with the names of the supported elliptic curves.\n     */\n    function getCurves(): string[];\n    /**\n     * @since v10.0.0\n     * @return `1` if and only if a FIPS compliant crypto provider is currently in use, `0` otherwise. A future semver-major release may change the return type of this API to a {boolean}.\n     */\n    function getFips(): 1 | 0;\n    /**\n     * Enables the FIPS compliant crypto provider in a FIPS-enabled Node.js build. Throws an error if FIPS mode is not available.\n     * @since v10.0.0\n     * @param bool `true` to enable FIPS mode.\n     */\n    function setFips(bool: boolean): void;\n    /**\n     * ```js\n     * const {\n     *   getHashes\n     * } = await import('crypto');\n     *\n     * console.log(getHashes()); // ['DSA', 'DSA-SHA', 'DSA-SHA1', ...]\n     * ```\n     * @since v0.9.3\n     * @return An array of the names of the supported hash algorithms, such as `'RSA-SHA256'`. Hash algorithms are also called \"digest\" algorithms.\n     */\n    function getHashes(): string[];\n    /**\n     * The `ECDH` class is a utility for creating Elliptic Curve Diffie-Hellman (ECDH)\n     * key exchanges.\n     *\n     * Instances of the `ECDH` class can be created using the {@link createECDH} function.\n     *\n     * ```js\n     * import assert from 'assert';\n     *\n     * const {\n     *   createECDH\n     * } = await import('crypto');\n     *\n     * // Generate Alice's keys...\n     * const alice = createECDH('secp521r1');\n     * const aliceKey = alice.generateKeys();\n     *\n     * // Generate Bob's keys...\n     * const bob = createECDH('secp521r1');\n     * const bobKey = bob.generateKeys();\n     *\n     * // Exchange and generate the secret...\n     * const aliceSecret = alice.computeSecret(bobKey);\n     * const bobSecret = bob.computeSecret(aliceKey);\n     *\n     * assert.strictEqual(aliceSecret.toString('hex'), bobSecret.toString('hex'));\n     * // OK\n     * ```\n     * @since v0.11.14\n     */\n    class ECDH {\n        private constructor();\n        /**\n         * Converts the EC Diffie-Hellman public key specified by `key` and `curve` to the\n         * format specified by `format`. The `format` argument specifies point encoding\n         * and can be `'compressed'`, `'uncompressed'` or `'hybrid'`. The supplied key is\n         * interpreted using the specified `inputEncoding`, and the returned key is encoded\n         * using the specified `outputEncoding`.\n         *\n         * Use {@link getCurves} to obtain a list of available curve names.\n         * On recent OpenSSL releases, `openssl ecparam -list_curves` will also display\n         * the name and description of each available elliptic curve.\n         *\n         * If `format` is not specified the point will be returned in `'uncompressed'`format.\n         *\n         * If the `inputEncoding` is not provided, `key` is expected to be a `Buffer`,`TypedArray`, or `DataView`.\n         *\n         * Example (uncompressing a key):\n         *\n         * ```js\n         * const {\n         *   createECDH,\n         *   ECDH\n         * } = await import('crypto');\n         *\n         * const ecdh = createECDH('secp256k1');\n         * ecdh.generateKeys();\n         *\n         * const compressedKey = ecdh.getPublicKey('hex', 'compressed');\n         *\n         * const uncompressedKey = ECDH.convertKey(compressedKey,\n         *                                         'secp256k1',\n         *                                         'hex',\n         *                                         'hex',\n         *                                         'uncompressed');\n         *\n         * // The converted key and the uncompressed public key should be the same\n         * console.log(uncompressedKey === ecdh.getPublicKey('hex'));\n         * ```\n         * @since v10.0.0\n         * @param inputEncoding The `encoding` of the `key` string.\n         * @param outputEncoding The `encoding` of the return value.\n         * @param [format='uncompressed']\n         */\n        static convertKey(\n            key: BinaryLike,\n            curve: string,\n            inputEncoding?: BinaryToTextEncoding,\n            outputEncoding?: 'latin1' | 'hex' | 'base64' | 'base64url',\n            format?: 'uncompressed' | 'compressed' | 'hybrid'\n        ): Buffer | string;\n        /**\n         * Generates private and public EC Diffie-Hellman key values, and returns\n         * the public key in the specified `format` and `encoding`. This key should be\n         * transferred to the other party.\n         *\n         * The `format` argument specifies point encoding and can be `'compressed'` or`'uncompressed'`. If `format` is not specified, the point will be returned in`'uncompressed'` format.\n         *\n         * If `encoding` is provided a string is returned; otherwise a `Buffer` is returned.\n         * @since v0.11.14\n         * @param encoding The `encoding` of the return value.\n         * @param [format='uncompressed']\n         */\n        generateKeys(): Buffer;\n        generateKeys(encoding: BinaryToTextEncoding, format?: ECDHKeyFormat): string;\n        /**\n         * Computes the shared secret using `otherPublicKey` as the other\n         * party's public key and returns the computed shared secret. The supplied\n         * key is interpreted using specified `inputEncoding`, and the returned secret\n         * is encoded using the specified `outputEncoding`.\n         * If the `inputEncoding` is not\n         * provided, `otherPublicKey` is expected to be a `Buffer`, `TypedArray`, or`DataView`.\n         *\n         * If `outputEncoding` is given a string will be returned; otherwise a `Buffer` is returned.\n         *\n         * `ecdh.computeSecret` will throw an`ERR_CRYPTO_ECDH_INVALID_PUBLIC_KEY` error when `otherPublicKey`lies outside of the elliptic curve. Since `otherPublicKey` is\n         * usually supplied from a remote user over an insecure network,\n         * be sure to handle this exception accordingly.\n         * @since v0.11.14\n         * @param inputEncoding The `encoding` of the `otherPublicKey` string.\n         * @param outputEncoding The `encoding` of the return value.\n         */\n        computeSecret(otherPublicKey: NodeJS.ArrayBufferView): Buffer;\n        computeSecret(otherPublicKey: string, inputEncoding: BinaryToTextEncoding): Buffer;\n        computeSecret(otherPublicKey: NodeJS.ArrayBufferView, outputEncoding: BinaryToTextEncoding): string;\n        computeSecret(otherPublicKey: string, inputEncoding: BinaryToTextEncoding, outputEncoding: BinaryToTextEncoding): string;\n        /**\n         * If `encoding` is specified, a string is returned; otherwise a `Buffer` is\n         * returned.\n         * @since v0.11.14\n         * @param encoding The `encoding` of the return value.\n         * @return The EC Diffie-Hellman in the specified `encoding`.\n         */\n        getPrivateKey(): Buffer;\n        getPrivateKey(encoding: BinaryToTextEncoding): string;\n        /**\n         * The `format` argument specifies point encoding and can be `'compressed'` or`'uncompressed'`. If `format` is not specified the point will be returned in`'uncompressed'` format.\n         *\n         * If `encoding` is specified, a string is returned; otherwise a `Buffer` is\n         * returned.\n         * @since v0.11.14\n         * @param encoding The `encoding` of the return value.\n         * @param [format='uncompressed']\n         * @return The EC Diffie-Hellman public key in the specified `encoding` and `format`.\n         */\n        getPublicKey(): Buffer;\n        getPublicKey(encoding: BinaryToTextEncoding, format?: ECDHKeyFormat): string;\n        /**\n         * Sets the EC Diffie-Hellman private key.\n         * If `encoding` is provided, `privateKey` is expected\n         * to be a string; otherwise `privateKey` is expected to be a `Buffer`,`TypedArray`, or `DataView`.\n         *\n         * If `privateKey` is not valid for the curve specified when the `ECDH` object was\n         * created, an error is thrown. Upon setting the private key, the associated\n         * public point (key) is also generated and set in the `ECDH` object.\n         * @since v0.11.14\n         * @param encoding The `encoding` of the `privateKey` string.\n         */\n        setPrivateKey(privateKey: NodeJS.ArrayBufferView): void;\n        setPrivateKey(privateKey: string, encoding: BinaryToTextEncoding): void;\n    }\n    /**\n     * Creates an Elliptic Curve Diffie-Hellman (`ECDH`) key exchange object using a\n     * predefined curve specified by the `curveName` string. Use {@link getCurves} to obtain a list of available curve names. On recent\n     * OpenSSL releases, `openssl ecparam -list_curves` will also display the name\n     * and description of each available elliptic curve.\n     * @since v0.11.14\n     */\n    function createECDH(curveName: string): ECDH;\n    /**\n     * This function is based on a constant-time algorithm.\n     * Returns true if `a` is equal to `b`, without leaking timing information that\n     * would allow an attacker to guess one of the values. This is suitable for\n     * comparing HMAC digests or secret values like authentication cookies or [capability urls](https://www.w3.org/TR/capability-urls/).\n     *\n     * `a` and `b` must both be `Buffer`s, `TypedArray`s, or `DataView`s, and they\n     * must have the same byte length.\n     *\n     * If at least one of `a` and `b` is a `TypedArray` with more than one byte per\n     * entry, such as `Uint16Array`, the result will be computed using the platform\n     * byte order.\n     *\n     * Use of `crypto.timingSafeEqual` does not guarantee that the _surrounding_ code\n     * is timing-safe. Care should be taken to ensure that the surrounding code does\n     * not introduce timing vulnerabilities.\n     * @since v6.6.0\n     */\n    function timingSafeEqual(a: NodeJS.ArrayBufferView, b: NodeJS.ArrayBufferView): boolean;\n    /** @deprecated since v10.0.0 */\n    const DEFAULT_ENCODING: BufferEncoding;\n    type KeyType = 'rsa' | 'rsa-pss' | 'dsa' | 'ec' | 'ed25519' | 'ed448' | 'x25519' | 'x448';\n    type KeyFormat = 'pem' | 'der' | 'jwk';\n    interface BasePrivateKeyEncodingOptions<T extends KeyFormat> {\n        format: T;\n        cipher?: string | undefined;\n        passphrase?: string | undefined;\n    }\n    interface KeyPairKeyObjectResult {\n        publicKey: KeyObject;\n        privateKey: KeyObject;\n    }\n    interface ED25519KeyPairKeyObjectOptions {}\n    interface ED448KeyPairKeyObjectOptions {}\n    interface X25519KeyPairKeyObjectOptions {}\n    interface X448KeyPairKeyObjectOptions {}\n    interface ECKeyPairKeyObjectOptions {\n        /**\n         * Name of the curve to use\n         */\n        namedCurve: string;\n    }\n    interface RSAKeyPairKeyObjectOptions {\n        /**\n         * Key size in bits\n         */\n        modulusLength: number;\n        /**\n         * Public exponent\n         * @default 0x10001\n         */\n        publicExponent?: number | undefined;\n    }\n    interface RSAPSSKeyPairKeyObjectOptions {\n        /**\n         * Key size in bits\n         */\n        modulusLength: number;\n        /**\n         * Public exponent\n         * @default 0x10001\n         */\n        publicExponent?: number | undefined;\n        /**\n         * Name of the message digest\n         */\n        hashAlgorithm?: string;\n        /**\n         * Name of the message digest used by MGF1\n         */\n        mgf1HashAlgorithm?: string;\n        /**\n         * Minimal salt length in bytes\n         */\n        saltLength?: string;\n    }\n    interface DSAKeyPairKeyObjectOptions {\n        /**\n         * Key size in bits\n         */\n        modulusLength: number;\n        /**\n         * Size of q in bits\n         */\n        divisorLength: number;\n    }\n    interface RSAKeyPairOptions<PubF extends KeyFormat, PrivF extends KeyFormat> {\n        /**\n         * Key size in bits\n         */\n        modulusLength: number;\n        /**\n         * Public exponent\n         * @default 0x10001\n         */\n        publicExponent?: number | undefined;\n        publicKeyEncoding: {\n            type: 'pkcs1' | 'spki';\n            format: PubF;\n        };\n        privateKeyEncoding: BasePrivateKeyEncodingOptions<PrivF> & {\n            type: 'pkcs1' | 'pkcs8';\n        };\n    }\n    interface RSAPSSKeyPairOptions<PubF extends KeyFormat, PrivF extends KeyFormat> {\n        /**\n         * Key size in bits\n         */\n        modulusLength: number;\n        /**\n         * Public exponent\n         * @default 0x10001\n         */\n        publicExponent?: number | undefined;\n        /**\n         * Name of the message digest\n         */\n        hashAlgorithm?: string;\n        /**\n         * Name of the message digest used by MGF1\n         */\n        mgf1HashAlgorithm?: string;\n        /**\n         * Minimal salt length in bytes\n         */\n        saltLength?: string;\n        publicKeyEncoding: {\n            type: 'spki';\n            format: PubF;\n        };\n        privateKeyEncoding: BasePrivateKeyEncodingOptions<PrivF> & {\n            type: 'pkcs8';\n        };\n    }\n    interface DSAKeyPairOptions<PubF extends KeyFormat, PrivF extends KeyFormat> {\n        /**\n         * Key size in bits\n         */\n        modulusLength: number;\n        /**\n         * Size of q in bits\n         */\n        divisorLength: number;\n        publicKeyEncoding: {\n            type: 'spki';\n            format: PubF;\n        };\n        privateKeyEncoding: BasePrivateKeyEncodingOptions<PrivF> & {\n            type: 'pkcs8';\n        };\n    }\n    interface ECKeyPairOptions<PubF extends KeyFormat, PrivF extends KeyFormat> {\n        /**\n         * Name of the curve to use.\n         */\n        namedCurve: string;\n        publicKeyEncoding: {\n            type: 'pkcs1' | 'spki';\n            format: PubF;\n        };\n        privateKeyEncoding: BasePrivateKeyEncodingOptions<PrivF> & {\n            type: 'sec1' | 'pkcs8';\n        };\n    }\n    interface ED25519KeyPairOptions<PubF extends KeyFormat, PrivF extends KeyFormat> {\n        publicKeyEncoding: {\n            type: 'spki';\n            format: PubF;\n        };\n        privateKeyEncoding: BasePrivateKeyEncodingOptions<PrivF> & {\n            type: 'pkcs8';\n        };\n    }\n    interface ED448KeyPairOptions<PubF extends KeyFormat, PrivF extends KeyFormat> {\n        publicKeyEncoding: {\n            type: 'spki';\n            format: PubF;\n        };\n        privateKeyEncoding: BasePrivateKeyEncodingOptions<PrivF> & {\n            type: 'pkcs8';\n        };\n    }\n    interface X25519KeyPairOptions<PubF extends KeyFormat, PrivF extends KeyFormat> {\n        publicKeyEncoding: {\n            type: 'spki';\n            format: PubF;\n        };\n        privateKeyEncoding: BasePrivateKeyEncodingOptions<PrivF> & {\n            type: 'pkcs8';\n        };\n    }\n    interface X448KeyPairOptions<PubF extends KeyFormat, PrivF extends KeyFormat> {\n        publicKeyEncoding: {\n            type: 'spki';\n            format: PubF;\n        };\n        privateKeyEncoding: BasePrivateKeyEncodingOptions<PrivF> & {\n            type: 'pkcs8';\n        };\n    }\n    interface KeyPairSyncResult<T1 extends string | Buffer, T2 extends string | Buffer> {\n        publicKey: T1;\n        privateKey: T2;\n    }\n    /**\n     * Generates a new asymmetric key pair of the given `type`. RSA, RSA-PSS, DSA, EC,\n     * Ed25519, Ed448, X25519, X448, and DH are currently supported.\n     *\n     * If a `publicKeyEncoding` or `privateKeyEncoding` was specified, this function\n     * behaves as if `keyObject.export()` had been called on its result. Otherwise,\n     * the respective part of the key is returned as a `KeyObject`.\n     *\n     * When encoding public keys, it is recommended to use `'spki'`. When encoding\n     * private keys, it is recommended to use `'pkcs8'` with a strong passphrase,\n     * and to keep the passphrase confidential.\n     *\n     * ```js\n     * const {\n     *   generateKeyPairSync\n     * } = await import('crypto');\n     *\n     * const {\n     *   publicKey,\n     *   privateKey,\n     * } = generateKeyPairSync('rsa', {\n     *   modulusLength: 4096,\n     *   publicKeyEncoding: {\n     *     type: 'spki',\n     *     format: 'pem'\n     *   },\n     *   privateKeyEncoding: {\n     *     type: 'pkcs8',\n     *     format: 'pem',\n     *     cipher: 'aes-256-cbc',\n     *     passphrase: 'top secret'\n     *   }\n     * });\n     * ```\n     *\n     * The return value `{ publicKey, privateKey }` represents the generated key pair.\n     * When PEM encoding was selected, the respective key will be a string, otherwise\n     * it will be a buffer containing the data encoded as DER.\n     * @since v10.12.0\n     * @param type Must be `'rsa'`, `'rsa-pss'`, `'dsa'`, `'ec'`, `'ed25519'`, `'ed448'`, `'x25519'`, `'x448'`, or `'dh'`.\n     */\n    function generateKeyPairSync(type: 'rsa', options: RSAKeyPairOptions<'pem', 'pem'>): KeyPairSyncResult<string, string>;\n    function generateKeyPairSync(type: 'rsa', options: RSAKeyPairOptions<'pem', 'der'>): KeyPairSyncResult<string, Buffer>;\n    function generateKeyPairSync(type: 'rsa', options: RSAKeyPairOptions<'der', 'pem'>): KeyPairSyncResult<Buffer, string>;\n    function generateKeyPairSync(type: 'rsa', options: RSAKeyPairOptions<'der', 'der'>): KeyPairSyncResult<Buffer, Buffer>;\n    function generateKeyPairSync(type: 'rsa', options: RSAKeyPairKeyObjectOptions): KeyPairKeyObjectResult;\n    function generateKeyPairSync(type: 'rsa-pss', options: RSAPSSKeyPairOptions<'pem', 'pem'>): KeyPairSyncResult<string, string>;\n    function generateKeyPairSync(type: 'rsa-pss', options: RSAPSSKeyPairOptions<'pem', 'der'>): KeyPairSyncResult<string, Buffer>;\n    function generateKeyPairSync(type: 'rsa-pss', options: RSAPSSKeyPairOptions<'der', 'pem'>): KeyPairSyncResult<Buffer, string>;\n    function generateKeyPairSync(type: 'rsa-pss', options: RSAPSSKeyPairOptions<'der', 'der'>): KeyPairSyncResult<Buffer, Buffer>;\n    function generateKeyPairSync(type: 'rsa-pss', options: RSAPSSKeyPairKeyObjectOptions): KeyPairKeyObjectResult;\n    function generateKeyPairSync(type: 'dsa', options: DSAKeyPairOptions<'pem', 'pem'>): KeyPairSyncResult<string, string>;\n    function generateKeyPairSync(type: 'dsa', options: DSAKeyPairOptions<'pem', 'der'>): KeyPairSyncResult<string, Buffer>;\n    function generateKeyPairSync(type: 'dsa', options: DSAKeyPairOptions<'der', 'pem'>): KeyPairSyncResult<Buffer, string>;\n    function generateKeyPairSync(type: 'dsa', options: DSAKeyPairOptions<'der', 'der'>): KeyPairSyncResult<Buffer, Buffer>;\n    function generateKeyPairSync(type: 'dsa', options: DSAKeyPairKeyObjectOptions): KeyPairKeyObjectResult;\n    function generateKeyPairSync(type: 'ec', options: ECKeyPairOptions<'pem', 'pem'>): KeyPairSyncResult<string, string>;\n    function generateKeyPairSync(type: 'ec', options: ECKeyPairOptions<'pem', 'der'>): KeyPairSyncResult<string, Buffer>;\n    function generateKeyPairSync(type: 'ec', options: ECKeyPairOptions<'der', 'pem'>): KeyPairSyncResult<Buffer, string>;\n    function generateKeyPairSync(type: 'ec', options: ECKeyPairOptions<'der', 'der'>): KeyPairSyncResult<Buffer, Buffer>;\n    function generateKeyPairSync(type: 'ec', options: ECKeyPairKeyObjectOptions): KeyPairKeyObjectResult;\n    function generateKeyPairSync(type: 'ed25519', options: ED25519KeyPairOptions<'pem', 'pem'>): KeyPairSyncResult<string, string>;\n    function generateKeyPairSync(type: 'ed25519', options: ED25519KeyPairOptions<'pem', 'der'>): KeyPairSyncResult<string, Buffer>;\n    function generateKeyPairSync(type: 'ed25519', options: ED25519KeyPairOptions<'der', 'pem'>): KeyPairSyncResult<Buffer, string>;\n    function generateKeyPairSync(type: 'ed25519', options: ED25519KeyPairOptions<'der', 'der'>): KeyPairSyncResult<Buffer, Buffer>;\n    function generateKeyPairSync(type: 'ed25519', options?: ED25519KeyPairKeyObjectOptions): KeyPairKeyObjectResult;\n    function generateKeyPairSync(type: 'ed448', options: ED448KeyPairOptions<'pem', 'pem'>): KeyPairSyncResult<string, string>;\n    function generateKeyPairSync(type: 'ed448', options: ED448KeyPairOptions<'pem', 'der'>): KeyPairSyncResult<string, Buffer>;\n    function generateKeyPairSync(type: 'ed448', options: ED448KeyPairOptions<'der', 'pem'>): KeyPairSyncResult<Buffer, string>;\n    function generateKeyPairSync(type: 'ed448', options: ED448KeyPairOptions<'der', 'der'>): KeyPairSyncResult<Buffer, Buffer>;\n    function generateKeyPairSync(type: 'ed448', options?: ED448KeyPairKeyObjectOptions): KeyPairKeyObjectResult;\n    function generateKeyPairSync(type: 'x25519', options: X25519KeyPairOptions<'pem', 'pem'>): KeyPairSyncResult<string, string>;\n    function generateKeyPairSync(type: 'x25519', options: X25519KeyPairOptions<'pem', 'der'>): KeyPairSyncResult<string, Buffer>;\n    function generateKeyPairSync(type: 'x25519', options: X25519KeyPairOptions<'der', 'pem'>): KeyPairSyncResult<Buffer, string>;\n    function generateKeyPairSync(type: 'x25519', options: X25519KeyPairOptions<'der', 'der'>): KeyPairSyncResult<Buffer, Buffer>;\n    function generateKeyPairSync(type: 'x25519', options?: X25519KeyPairKeyObjectOptions): KeyPairKeyObjectResult;\n    function generateKeyPairSync(type: 'x448', options: X448KeyPairOptions<'pem', 'pem'>): KeyPairSyncResult<string, string>;\n    function generateKeyPairSync(type: 'x448', options: X448KeyPairOptions<'pem', 'der'>): KeyPairSyncResult<string, Buffer>;\n    function generateKeyPairSync(type: 'x448', options: X448KeyPairOptions<'der', 'pem'>): KeyPairSyncResult<Buffer, string>;\n    function generateKeyPairSync(type: 'x448', options: X448KeyPairOptions<'der', 'der'>): KeyPairSyncResult<Buffer, Buffer>;\n    function generateKeyPairSync(type: 'x448', options?: X448KeyPairKeyObjectOptions): KeyPairKeyObjectResult;\n    /**\n     * Generates a new asymmetric key pair of the given `type`. RSA, RSA-PSS, DSA, EC,\n     * Ed25519, Ed448, X25519, X448, and DH are currently supported.\n     *\n     * If a `publicKeyEncoding` or `privateKeyEncoding` was specified, this function\n     * behaves as if `keyObject.export()` had been called on its result. Otherwise,\n     * the respective part of the key is returned as a `KeyObject`.\n     *\n     * It is recommended to encode public keys as `'spki'` and private keys as`'pkcs8'` with encryption for long-term storage:\n     *\n     * ```js\n     * const {\n     *   generateKeyPair\n     * } = await import('crypto');\n     *\n     * generateKeyPair('rsa', {\n     *   modulusLength: 4096,\n     *   publicKeyEncoding: {\n     *     type: 'spki',\n     *     format: 'pem'\n     *   },\n     *   privateKeyEncoding: {\n     *     type: 'pkcs8',\n     *     format: 'pem',\n     *     cipher: 'aes-256-cbc',\n     *     passphrase: 'top secret'\n     *   }\n     * }, (err, publicKey, privateKey) => {\n     *   // Handle errors and use the generated key pair.\n     * });\n     * ```\n     *\n     * On completion, `callback` will be called with `err` set to `undefined` and`publicKey` / `privateKey` representing the generated key pair.\n     *\n     * If this method is invoked as its `util.promisify()` ed version, it returns\n     * a `Promise` for an `Object` with `publicKey` and `privateKey` properties.\n     * @since v10.12.0\n     * @param type Must be `'rsa'`, `'rsa-pss'`, `'dsa'`, `'ec'`, `'ed25519'`, `'ed448'`, `'x25519'`, `'x448'`, or `'dh'`.\n     */\n    function generateKeyPair(type: 'rsa', options: RSAKeyPairOptions<'pem', 'pem'>, callback: (err: Error | null, publicKey: string, privateKey: string) => void): void;\n    function generateKeyPair(type: 'rsa', options: RSAKeyPairOptions<'pem', 'der'>, callback: (err: Error | null, publicKey: string, privateKey: Buffer) => void): void;\n    function generateKeyPair(type: 'rsa', options: RSAKeyPairOptions<'der', 'pem'>, callback: (err: Error | null, publicKey: Buffer, privateKey: string) => void): void;\n    function generateKeyPair(type: 'rsa', options: RSAKeyPairOptions<'der', 'der'>, callback: (err: Error | null, publicKey: Buffer, privateKey: Buffer) => void): void;\n    function generateKeyPair(type: 'rsa', options: RSAKeyPairKeyObjectOptions, callback: (err: Error | null, publicKey: KeyObject, privateKey: KeyObject) => void): void;\n    function generateKeyPair(type: 'rsa-pss', options: RSAPSSKeyPairOptions<'pem', 'pem'>, callback: (err: Error | null, publicKey: string, privateKey: string) => void): void;\n    function generateKeyPair(type: 'rsa-pss', options: RSAPSSKeyPairOptions<'pem', 'der'>, callback: (err: Error | null, publicKey: string, privateKey: Buffer) => void): void;\n    function generateKeyPair(type: 'rsa-pss', options: RSAPSSKeyPairOptions<'der', 'pem'>, callback: (err: Error | null, publicKey: Buffer, privateKey: string) => void): void;\n    function generateKeyPair(type: 'rsa-pss', options: RSAPSSKeyPairOptions<'der', 'der'>, callback: (err: Error | null, publicKey: Buffer, privateKey: Buffer) => void): void;\n    function generateKeyPair(type: 'rsa-pss', options: RSAPSSKeyPairKeyObjectOptions, callback: (err: Error | null, publicKey: KeyObject, privateKey: KeyObject) => void): void;\n    function generateKeyPair(type: 'dsa', options: DSAKeyPairOptions<'pem', 'pem'>, callback: (err: Error | null, publicKey: string, privateKey: string) => void): void;\n    function generateKeyPair(type: 'dsa', options: DSAKeyPairOptions<'pem', 'der'>, callback: (err: Error | null, publicKey: string, privateKey: Buffer) => void): void;\n    function generateKeyPair(type: 'dsa', options: DSAKeyPairOptions<'der', 'pem'>, callback: (err: Error | null, publicKey: Buffer, privateKey: string) => void): void;\n    function generateKeyPair(type: 'dsa', options: DSAKeyPairOptions<'der', 'der'>, callback: (err: Error | null, publicKey: Buffer, privateKey: Buffer) => void): void;\n    function generateKeyPair(type: 'dsa', options: DSAKeyPairKeyObjectOptions, callback: (err: Error | null, publicKey: KeyObject, privateKey: KeyObject) => void): void;\n    function generateKeyPair(type: 'ec', options: ECKeyPairOptions<'pem', 'pem'>, callback: (err: Error | null, publicKey: string, privateKey: string) => void): void;\n    function generateKeyPair(type: 'ec', options: ECKeyPairOptions<'pem', 'der'>, callback: (err: Error | null, publicKey: string, privateKey: Buffer) => void): void;\n    function generateKeyPair(type: 'ec', options: ECKeyPairOptions<'der', 'pem'>, callback: (err: Error | null, publicKey: Buffer, privateKey: string) => void): void;\n    function generateKeyPair(type: 'ec', options: ECKeyPairOptions<'der', 'der'>, callback: (err: Error | null, publicKey: Buffer, privateKey: Buffer) => void): void;\n    function generateKeyPair(type: 'ec', options: ECKeyPairKeyObjectOptions, callback: (err: Error | null, publicKey: KeyObject, privateKey: KeyObject) => void): void;\n    function generateKeyPair(type: 'ed25519', options: ED25519KeyPairOptions<'pem', 'pem'>, callback: (err: Error | null, publicKey: string, privateKey: string) => void): void;\n    function generateKeyPair(type: 'ed25519', options: ED25519KeyPairOptions<'pem', 'der'>, callback: (err: Error | null, publicKey: string, privateKey: Buffer) => void): void;\n    function generateKeyPair(type: 'ed25519', options: ED25519KeyPairOptions<'der', 'pem'>, callback: (err: Error | null, publicKey: Buffer, privateKey: string) => void): void;\n    function generateKeyPair(type: 'ed25519', options: ED25519KeyPairOptions<'der', 'der'>, callback: (err: Error | null, publicKey: Buffer, privateKey: Buffer) => void): void;\n    function generateKeyPair(type: 'ed25519', options: ED25519KeyPairKeyObjectOptions | undefined, callback: (err: Error | null, publicKey: KeyObject, privateKey: KeyObject) => void): void;\n    function generateKeyPair(type: 'ed448', options: ED448KeyPairOptions<'pem', 'pem'>, callback: (err: Error | null, publicKey: string, privateKey: string) => void): void;\n    function generateKeyPair(type: 'ed448', options: ED448KeyPairOptions<'pem', 'der'>, callback: (err: Error | null, publicKey: string, privateKey: Buffer) => void): void;\n    function generateKeyPair(type: 'ed448', options: ED448KeyPairOptions<'der', 'pem'>, callback: (err: Error | null, publicKey: Buffer, privateKey: string) => void): void;\n    function generateKeyPair(type: 'ed448', options: ED448KeyPairOptions<'der', 'der'>, callback: (err: Error | null, publicKey: Buffer, privateKey: Buffer) => void): void;\n    function generateKeyPair(type: 'ed448', options: ED448KeyPairKeyObjectOptions | undefined, callback: (err: Error | null, publicKey: KeyObject, privateKey: KeyObject) => void): void;\n    function generateKeyPair(type: 'x25519', options: X25519KeyPairOptions<'pem', 'pem'>, callback: (err: Error | null, publicKey: string, privateKey: string) => void): void;\n    function generateKeyPair(type: 'x25519', options: X25519KeyPairOptions<'pem', 'der'>, callback: (err: Error | null, publicKey: string, privateKey: Buffer) => void): void;\n    function generateKeyPair(type: 'x25519', options: X25519KeyPairOptions<'der', 'pem'>, callback: (err: Error | null, publicKey: Buffer, privateKey: string) => void): void;\n    function generateKeyPair(type: 'x25519', options: X25519KeyPairOptions<'der', 'der'>, callback: (err: Error | null, publicKey: Buffer, privateKey: Buffer) => void): void;\n    function generateKeyPair(type: 'x25519', options: X25519KeyPairKeyObjectOptions | undefined, callback: (err: Error | null, publicKey: KeyObject, privateKey: KeyObject) => void): void;\n    function generateKeyPair(type: 'x448', options: X448KeyPairOptions<'pem', 'pem'>, callback: (err: Error | null, publicKey: string, privateKey: string) => void): void;\n    function generateKeyPair(type: 'x448', options: X448KeyPairOptions<'pem', 'der'>, callback: (err: Error | null, publicKey: string, privateKey: Buffer) => void): void;\n    function generateKeyPair(type: 'x448', options: X448KeyPairOptions<'der', 'pem'>, callback: (err: Error | null, publicKey: Buffer, privateKey: string) => void): void;\n    function generateKeyPair(type: 'x448', options: X448KeyPairOptions<'der', 'der'>, callback: (err: Error | null, publicKey: Buffer, privateKey: Buffer) => void): void;\n    function generateKeyPair(type: 'x448', options: X448KeyPairKeyObjectOptions | undefined, callback: (err: Error | null, publicKey: KeyObject, privateKey: KeyObject) => void): void;\n    namespace generateKeyPair {\n        function __promisify__(\n            type: 'rsa',\n            options: RSAKeyPairOptions<'pem', 'pem'>\n        ): Promise<{\n            publicKey: string;\n            privateKey: string;\n        }>;\n        function __promisify__(\n            type: 'rsa',\n            options: RSAKeyPairOptions<'pem', 'der'>\n        ): Promise<{\n            publicKey: string;\n            privateKey: Buffer;\n        }>;\n        function __promisify__(\n            type: 'rsa',\n            options: RSAKeyPairOptions<'der', 'pem'>\n        ): Promise<{\n            publicKey: Buffer;\n            privateKey: string;\n        }>;\n        function __promisify__(\n            type: 'rsa',\n            options: RSAKeyPairOptions<'der', 'der'>\n        ): Promise<{\n            publicKey: Buffer;\n            privateKey: Buffer;\n        }>;\n        function __promisify__(type: 'rsa', options: RSAKeyPairKeyObjectOptions): Promise<KeyPairKeyObjectResult>;\n        function __promisify__(\n            type: 'rsa-pss',\n            options: RSAPSSKeyPairOptions<'pem', 'pem'>\n        ): Promise<{\n            publicKey: string;\n            privateKey: string;\n        }>;\n        function __promisify__(\n            type: 'rsa-pss',\n            options: RSAPSSKeyPairOptions<'pem', 'der'>\n        ): Promise<{\n            publicKey: string;\n            privateKey: Buffer;\n        }>;\n        function __promisify__(\n            type: 'rsa-pss',\n            options: RSAPSSKeyPairOptions<'der', 'pem'>\n        ): Promise<{\n            publicKey: Buffer;\n            privateKey: string;\n        }>;\n        function __promisify__(\n            type: 'rsa-pss',\n            options: RSAPSSKeyPairOptions<'der', 'der'>\n        ): Promise<{\n            publicKey: Buffer;\n            privateKey: Buffer;\n        }>;\n        function __promisify__(type: 'rsa-pss', options: RSAPSSKeyPairKeyObjectOptions): Promise<KeyPairKeyObjectResult>;\n        function __promisify__(\n            type: 'dsa',\n            options: DSAKeyPairOptions<'pem', 'pem'>\n        ): Promise<{\n            publicKey: string;\n            privateKey: string;\n        }>;\n        function __promisify__(\n            type: 'dsa',\n            options: DSAKeyPairOptions<'pem', 'der'>\n        ): Promise<{\n            publicKey: string;\n            privateKey: Buffer;\n        }>;\n        function __promisify__(\n            type: 'dsa',\n            options: DSAKeyPairOptions<'der', 'pem'>\n        ): Promise<{\n            publicKey: Buffer;\n            privateKey: string;\n        }>;\n        function __promisify__(\n            type: 'dsa',\n            options: DSAKeyPairOptions<'der', 'der'>\n        ): Promise<{\n            publicKey: Buffer;\n            privateKey: Buffer;\n        }>;\n        function __promisify__(type: 'dsa', options: DSAKeyPairKeyObjectOptions): Promise<KeyPairKeyObjectResult>;\n        function __promisify__(\n            type: 'ec',\n            options: ECKeyPairOptions<'pem', 'pem'>\n        ): Promise<{\n            publicKey: string;\n            privateKey: string;\n        }>;\n        function __promisify__(\n            type: 'ec',\n            options: ECKeyPairOptions<'pem', 'der'>\n        ): Promise<{\n            publicKey: string;\n            privateKey: Buffer;\n        }>;\n        function __promisify__(\n            type: 'ec',\n            options: ECKeyPairOptions<'der', 'pem'>\n        ): Promise<{\n            publicKey: Buffer;\n            privateKey: string;\n        }>;\n        function __promisify__(\n            type: 'ec',\n            options: ECKeyPairOptions<'der', 'der'>\n        ): Promise<{\n            publicKey: Buffer;\n            privateKey: Buffer;\n        }>;\n        function __promisify__(type: 'ec', options: ECKeyPairKeyObjectOptions): Promise<KeyPairKeyObjectResult>;\n        function __promisify__(\n            type: 'ed25519',\n            options: ED25519KeyPairOptions<'pem', 'pem'>\n        ): Promise<{\n            publicKey: string;\n            privateKey: string;\n        }>;\n        function __promisify__(\n            type: 'ed25519',\n            options: ED25519KeyPairOptions<'pem', 'der'>\n        ): Promise<{\n            publicKey: string;\n            privateKey: Buffer;\n        }>;\n        function __promisify__(\n            type: 'ed25519',\n            options: ED25519KeyPairOptions<'der', 'pem'>\n        ): Promise<{\n            publicKey: Buffer;\n            privateKey: string;\n        }>;\n        function __promisify__(\n            type: 'ed25519',\n            options: ED25519KeyPairOptions<'der', 'der'>\n        ): Promise<{\n            publicKey: Buffer;\n            privateKey: Buffer;\n        }>;\n        function __promisify__(type: 'ed25519', options?: ED25519KeyPairKeyObjectOptions): Promise<KeyPairKeyObjectResult>;\n        function __promisify__(\n            type: 'ed448',\n            options: ED448KeyPairOptions<'pem', 'pem'>\n        ): Promise<{\n            publicKey: string;\n            privateKey: string;\n        }>;\n        function __promisify__(\n            type: 'ed448',\n            options: ED448KeyPairOptions<'pem', 'der'>\n        ): Promise<{\n            publicKey: string;\n            privateKey: Buffer;\n        }>;\n        function __promisify__(\n            type: 'ed448',\n            options: ED448KeyPairOptions<'der', 'pem'>\n        ): Promise<{\n            publicKey: Buffer;\n            privateKey: string;\n        }>;\n        function __promisify__(\n            type: 'ed448',\n            options: ED448KeyPairOptions<'der', 'der'>\n        ): Promise<{\n            publicKey: Buffer;\n            privateKey: Buffer;\n        }>;\n        function __promisify__(type: 'ed448', options?: ED448KeyPairKeyObjectOptions): Promise<KeyPairKeyObjectResult>;\n        function __promisify__(\n            type: 'x25519',\n            options: X25519KeyPairOptions<'pem', 'pem'>\n        ): Promise<{\n            publicKey: string;\n            privateKey: string;\n        }>;\n        function __promisify__(\n            type: 'x25519',\n            options: X25519KeyPairOptions<'pem', 'der'>\n        ): Promise<{\n            publicKey: string;\n            privateKey: Buffer;\n        }>;\n        function __promisify__(\n            type: 'x25519',\n            options: X25519KeyPairOptions<'der', 'pem'>\n        ): Promise<{\n            publicKey: Buffer;\n            privateKey: string;\n        }>;\n        function __promisify__(\n            type: 'x25519',\n            options: X25519KeyPairOptions<'der', 'der'>\n        ): Promise<{\n            publicKey: Buffer;\n            privateKey: Buffer;\n        }>;\n        function __promisify__(type: 'x25519', options?: X25519KeyPairKeyObjectOptions): Promise<KeyPairKeyObjectResult>;\n        function __promisify__(\n            type: 'x448',\n            options: X448KeyPairOptions<'pem', 'pem'>\n        ): Promise<{\n            publicKey: string;\n            privateKey: string;\n        }>;\n        function __promisify__(\n            type: 'x448',\n            options: X448KeyPairOptions<'pem', 'der'>\n        ): Promise<{\n            publicKey: string;\n            privateKey: Buffer;\n        }>;\n        function __promisify__(\n            type: 'x448',\n            options: X448KeyPairOptions<'der', 'pem'>\n        ): Promise<{\n            publicKey: Buffer;\n            privateKey: string;\n        }>;\n        function __promisify__(\n            type: 'x448',\n            options: X448KeyPairOptions<'der', 'der'>\n        ): Promise<{\n            publicKey: Buffer;\n            privateKey: Buffer;\n        }>;\n        function __promisify__(type: 'x448', options?: X448KeyPairKeyObjectOptions): Promise<KeyPairKeyObjectResult>;\n    }\n    /**\n     * Calculates and returns the signature for `data` using the given private key and\n     * algorithm. If `algorithm` is `null` or `undefined`, then the algorithm is\n     * dependent upon the key type (especially Ed25519 and Ed448).\n     *\n     * If `key` is not a `KeyObject`, this function behaves as if `key` had been\n     * passed to {@link createPrivateKey}. If it is an object, the following\n     * additional properties can be passed:\n     *\n     * If the `callback` function is provided this function uses libuv's threadpool.\n     * @since v12.0.0\n     */\n    function sign(algorithm: string | null | undefined, data: NodeJS.ArrayBufferView, key: KeyLike | SignKeyObjectInput | SignPrivateKeyInput): Buffer;\n    function sign(\n        algorithm: string | null | undefined,\n        data: NodeJS.ArrayBufferView,\n        key: KeyLike | SignKeyObjectInput | SignPrivateKeyInput,\n        callback: (error: Error | null, data: Buffer) => void\n    ): void;\n    /**\n     * Verifies the given signature for `data` using the given key and algorithm. If`algorithm` is `null` or `undefined`, then the algorithm is dependent upon the\n     * key type (especially Ed25519 and Ed448).\n     *\n     * If `key` is not a `KeyObject`, this function behaves as if `key` had been\n     * passed to {@link createPublicKey}. If it is an object, the following\n     * additional properties can be passed:\n     *\n     * The `signature` argument is the previously calculated signature for the `data`.\n     *\n     * Because public keys can be derived from private keys, a private key or a public\n     * key may be passed for `key`.\n     *\n     * If the `callback` function is provided this function uses libuv's threadpool.\n     * @since v12.0.0\n     */\n    function verify(algorithm: string | null | undefined, data: NodeJS.ArrayBufferView, key: KeyLike | VerifyKeyObjectInput | VerifyPublicKeyInput, signature: NodeJS.ArrayBufferView): boolean;\n    function verify(\n        algorithm: string | null | undefined,\n        data: NodeJS.ArrayBufferView,\n        key: KeyLike | VerifyKeyObjectInput | VerifyPublicKeyInput,\n        signature: NodeJS.ArrayBufferView,\n        callback: (error: Error | null, result: boolean) => void\n    ): void;\n    /**\n     * Computes the Diffie-Hellman secret based on a `privateKey` and a `publicKey`.\n     * Both keys must have the same `asymmetricKeyType`, which must be one of `'dh'`(for Diffie-Hellman), `'ec'` (for ECDH), `'x448'`, or `'x25519'` (for ECDH-ES).\n     * @since v13.9.0, v12.17.0\n     */\n    function diffieHellman(options: { privateKey: KeyObject; publicKey: KeyObject }): Buffer;\n    type CipherMode = 'cbc' | 'ccm' | 'cfb' | 'ctr' | 'ecb' | 'gcm' | 'ocb' | 'ofb' | 'stream' | 'wrap' | 'xts';\n    interface CipherInfoOptions {\n        /**\n         * A test key length.\n         */\n        keyLength?: number | undefined;\n        /**\n         * A test IV length.\n         */\n        ivLength?: number | undefined;\n    }\n    interface CipherInfo {\n        /**\n         * The name of the cipher.\n         */\n        name: string;\n        /**\n         * The nid of the cipher.\n         */\n        nid: number;\n        /**\n         * The block size of the cipher in bytes.\n         * This property is omitted when mode is 'stream'.\n         */\n        blockSize?: number | undefined;\n        /**\n         * The expected or default initialization vector length in bytes.\n         * This property is omitted if the cipher does not use an initialization vector.\n         */\n        ivLength?: number | undefined;\n        /**\n         * The expected or default key length in bytes.\n         */\n        keyLength: number;\n        /**\n         * The cipher mode.\n         */\n        mode: CipherMode;\n    }\n    /**\n     * Returns information about a given cipher.\n     *\n     * Some ciphers accept variable length keys and initialization vectors. By default,\n     * the `crypto.getCipherInfo()` method will return the default values for these\n     * ciphers. To test if a given key length or iv length is acceptable for given\n     * cipher, use the `keyLength` and `ivLength` options. If the given values are\n     * unacceptable, `undefined` will be returned.\n     * @since v15.0.0\n     * @param nameOrNid The name or nid of the cipher to query.\n     */\n    function getCipherInfo(nameOrNid: string | number, options?: CipherInfoOptions): CipherInfo | undefined;\n    /**\n     * HKDF is a simple key derivation function defined in RFC 5869\\. The given `ikm`,`salt` and `info` are used with the `digest` to derive a key of `keylen` bytes.\n     *\n     * The supplied `callback` function is called with two arguments: `err` and`derivedKey`. If an errors occurs while deriving the key, `err` will be set;\n     * otherwise `err` will be `null`. The successfully generated `derivedKey` will\n     * be passed to the callback as an [ArrayBuffer](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer). An error will be thrown if any\n     * of the input arguments specify invalid values or types.\n     *\n     * ```js\n     * import { Buffer } from 'buffer';\n     * const {\n     *   hkdf\n     * } = await import('crypto');\n     *\n     * hkdf('sha512', 'key', 'salt', 'info', 64, (err, derivedKey) => {\n     *   if (err) throw err;\n     *   console.log(Buffer.from(derivedKey).toString('hex'));  // '24156e2...5391653'\n     * });\n     * ```\n     * @since v15.0.0\n     * @param digest The digest algorithm to use.\n     * @param ikm The input keying material. It must be at least one byte in length.\n     * @param salt The salt value. Must be provided but can be zero-length.\n     * @param info Additional info value. Must be provided but can be zero-length, and cannot be more than 1024 bytes.\n     * @param keylen The length of the key to generate. Must be greater than 0. The maximum allowable value is `255` times the number of bytes produced by the selected digest function (e.g. `sha512`\n     * generates 64-byte hashes, making the maximum HKDF output 16320 bytes).\n     */\n    function hkdf(digest: string, irm: BinaryLike | KeyObject, salt: BinaryLike, info: BinaryLike, keylen: number, callback: (err: Error | null, derivedKey: ArrayBuffer) => void): void;\n    /**\n     * Provides a synchronous HKDF key derivation function as defined in RFC 5869\\. The\n     * given `ikm`, `salt` and `info` are used with the `digest` to derive a key of`keylen` bytes.\n     *\n     * The successfully generated `derivedKey` will be returned as an [ArrayBuffer](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer).\n     *\n     * An error will be thrown if any of the input arguments specify invalid values or\n     * types, or if the derived key cannot be generated.\n     *\n     * ```js\n     * import { Buffer } from 'buffer';\n     * const {\n     *   hkdfSync\n     * } = await import('crypto');\n     *\n     * const derivedKey = hkdfSync('sha512', 'key', 'salt', 'info', 64);\n     * console.log(Buffer.from(derivedKey).toString('hex'));  // '24156e2...5391653'\n     * ```\n     * @since v15.0.0\n     * @param digest The digest algorithm to use.\n     * @param ikm The input keying material. It must be at least one byte in length.\n     * @param salt The salt value. Must be provided but can be zero-length.\n     * @param info Additional info value. Must be provided but can be zero-length, and cannot be more than 1024 bytes.\n     * @param keylen The length of the key to generate. Must be greater than 0. The maximum allowable value is `255` times the number of bytes produced by the selected digest function (e.g. `sha512`\n     * generates 64-byte hashes, making the maximum HKDF output 16320 bytes).\n     */\n    function hkdfSync(digest: string, ikm: BinaryLike | KeyObject, salt: BinaryLike, info: BinaryLike, keylen: number): ArrayBuffer;\n    interface SecureHeapUsage {\n        /**\n         * The total allocated secure heap size as specified using the `--secure-heap=n` command-line flag.\n         */\n        total: number;\n        /**\n         * The minimum allocation from the secure heap as specified using the `--secure-heap-min` command-line flag.\n         */\n        min: number;\n        /**\n         * The total number of bytes currently allocated from the secure heap.\n         */\n        used: number;\n        /**\n         * The calculated ratio of `used` to `total` allocated bytes.\n         */\n        utilization: number;\n    }\n    /**\n     * @since v15.6.0\n     */\n    function secureHeapUsed(): SecureHeapUsage;\n    interface RandomUUIDOptions {\n        /**\n         * By default, to improve performance,\n         * Node.js will pre-emptively generate and persistently cache enough\n         * random data to generate up to 128 random UUIDs. To generate a UUID\n         * without using the cache, set `disableEntropyCache` to `true`.\n         *\n         * @default `false`\n         */\n        disableEntropyCache?: boolean | undefined;\n    }\n    /**\n     * Generates a random [RFC 4122](https://www.rfc-editor.org/rfc/rfc4122.txt) version 4 UUID. The UUID is generated using a\n     * cryptographic pseudorandom number generator.\n     * @since v15.6.0\n     */\n    function randomUUID(options?: RandomUUIDOptions): string;\n    interface X509CheckOptions {\n        /**\n         * @default 'always'\n         */\n        subject?: 'always' | 'default' | 'never';\n        /**\n         * @default true\n         */\n        wildcards?: boolean;\n        /**\n         * @default true\n         */\n        partialWildcards?: boolean;\n        /**\n         * @default false\n         */\n        multiLabelWildcards?: boolean;\n        /**\n         * @default false\n         */\n        singleLabelSubdomains?: boolean;\n    }\n    /**\n     * Encapsulates an X509 certificate and provides read-only access to\n     * its information.\n     *\n     * ```js\n     * const { X509Certificate } = await import('crypto');\n     *\n     * const x509 = new X509Certificate('{... pem encoded cert ...}');\n     *\n     * console.log(x509.subject);\n     * ```\n     * @since v15.6.0\n     */\n    class X509Certificate {\n        /**\n         * Will be \\`true\\` if this is a Certificate Authority (ca) certificate.\n         * @since v15.6.0\n         */\n        readonly ca: boolean;\n        /**\n         * The SHA-1 fingerprint of this certificate.\n         * @since v15.6.0\n         */\n        readonly fingerprint: string;\n        /**\n         * The SHA-256 fingerprint of this certificate.\n         * @since v15.6.0\n         */\n        readonly fingerprint256: string;\n        /**\n         * The SHA-512 fingerprint of this certificate.\n         * @since v16.14.0\n         */\n         readonly fingerprint512: string;\n        /**\n         * The complete subject of this certificate.\n         * @since v15.6.0\n         */\n        readonly subject: string;\n        /**\n         * The subject alternative name specified for this certificate or `undefined`\n         * if not available.\n         * @since v15.6.0\n         */\n        readonly subjectAltName: string | undefined;\n        /**\n         * The information access content of this certificate or `undefined` if not\n         * available.\n         * @since v15.6.0\n         */\n        readonly infoAccess: string | undefined;\n        /**\n         * An array detailing the key usages for this certificate.\n         * @since v15.6.0\n         */\n        readonly keyUsage: string[];\n        /**\n         * The issuer identification included in this certificate.\n         * @since v15.6.0\n         */\n        readonly issuer: string;\n        /**\n         * The issuer certificate or `undefined` if the issuer certificate is not\n         * available.\n         * @since v15.9.0\n         */\n        readonly issuerCertificate?: X509Certificate | undefined;\n        /**\n         * The public key `KeyObject` for this certificate.\n         * @since v15.6.0\n         */\n        readonly publicKey: KeyObject;\n        /**\n         * A `Buffer` containing the DER encoding of this certificate.\n         * @since v15.6.0\n         */\n        readonly raw: Buffer;\n        /**\n         * The serial number of this certificate.\n         * @since v15.6.0\n         */\n        readonly serialNumber: string;\n        /**\n         * The date/time from which this certificate is considered valid.\n         * @since v15.6.0\n         */\n        readonly validFrom: string;\n        /**\n         * The date/time until which this certificate is considered valid.\n         * @since v15.6.0\n         */\n        readonly validTo: string;\n        constructor(buffer: BinaryLike);\n        /**\n         * Checks whether the certificate matches the given email address.\n         * @since v15.6.0\n         * @return Returns `email` if the certificate matches, `undefined` if it does not.\n         */\n        checkEmail(email: string, options?: Pick<X509CheckOptions, 'subject'>): string | undefined;\n        /**\n         * Checks whether the certificate matches the given host name.\n         * @since v15.6.0\n         * @return Returns `name` if the certificate matches, `undefined` if it does not.\n         */\n        checkHost(name: string, options?: X509CheckOptions): string | undefined;\n        /**\n         * Checks whether the certificate matches the given IP address (IPv4 or IPv6).\n         * @since v15.6.0\n         * @return Returns `ip` if the certificate matches, `undefined` if it does not.\n         */\n        checkIP(ip: string): string | undefined;\n        /**\n         * Checks whether this certificate was issued by the given `otherCert`.\n         * @since v15.6.0\n         */\n        checkIssued(otherCert: X509Certificate): boolean;\n        /**\n         * Checks whether the public key for this certificate is consistent with\n         * the given private key.\n         * @since v15.6.0\n         * @param privateKey A private key.\n         */\n        checkPrivateKey(privateKey: KeyObject): boolean;\n        /**\n         * There is no standard JSON encoding for X509 certificates. The`toJSON()` method returns a string containing the PEM encoded\n         * certificate.\n         * @since v15.6.0\n         */\n        toJSON(): string;\n        /**\n         * Returns information about this certificate using the legacy `certificate object` encoding.\n         * @since v15.6.0\n         */\n        toLegacyObject(): PeerCertificate;\n        /**\n         * Returns the PEM-encoded certificate.\n         * @since v15.6.0\n         */\n        toString(): string;\n        /**\n         * Verifies that this certificate was signed by the given public key.\n         * Does not perform any other validation checks on the certificate.\n         * @since v15.6.0\n         * @param publicKey A public key.\n         */\n        verify(publicKey: KeyObject): boolean;\n    }\n    type LargeNumberLike = NodeJS.ArrayBufferView | SharedArrayBuffer | ArrayBuffer | bigint;\n    interface GeneratePrimeOptions {\n        add?: LargeNumberLike | undefined;\n        rem?: LargeNumberLike | undefined;\n        /**\n         * @default false\n         */\n        safe?: boolean | undefined;\n        bigint?: boolean | undefined;\n    }\n    interface GeneratePrimeOptionsBigInt extends GeneratePrimeOptions {\n        bigint: true;\n    }\n    interface GeneratePrimeOptionsArrayBuffer extends GeneratePrimeOptions {\n        bigint?: false | undefined;\n    }\n    /**\n     * Generates a pseudorandom prime of `size` bits.\n     *\n     * If `options.safe` is `true`, the prime will be a safe prime -- that is,`(prime - 1) / 2` will also be a prime.\n     *\n     * The `options.add` and `options.rem` parameters can be used to enforce additional\n     * requirements, e.g., for Diffie-Hellman:\n     *\n     * * If `options.add` and `options.rem` are both set, the prime will satisfy the\n     * condition that `prime % add = rem`.\n     * * If only `options.add` is set and `options.safe` is not `true`, the prime will\n     * satisfy the condition that `prime % add = 1`.\n     * * If only `options.add` is set and `options.safe` is set to `true`, the prime\n     * will instead satisfy the condition that `prime % add = 3`. This is necessary\n     * because `prime % add = 1` for `options.add > 2` would contradict the condition\n     * enforced by `options.safe`.\n     * * `options.rem` is ignored if `options.add` is not given.\n     *\n     * Both `options.add` and `options.rem` must be encoded as big-endian sequences\n     * if given as an `ArrayBuffer`, `SharedArrayBuffer`, `TypedArray`, `Buffer`, or`DataView`.\n     *\n     * By default, the prime is encoded as a big-endian sequence of octets\n     * in an [ArrayBuffer](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer). If the `bigint` option is `true`, then a\n     * [bigint](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/BigInt) is provided.\n     * @since v15.8.0\n     * @param size The size (in bits) of the prime to generate.\n     */\n    function generatePrime(size: number, callback: (err: Error | null, prime: ArrayBuffer) => void): void;\n    function generatePrime(size: number, options: GeneratePrimeOptionsBigInt, callback: (err: Error | null, prime: bigint) => void): void;\n    function generatePrime(size: number, options: GeneratePrimeOptionsArrayBuffer, callback: (err: Error | null, prime: ArrayBuffer) => void): void;\n    function generatePrime(size: number, options: GeneratePrimeOptions, callback: (err: Error | null, prime: ArrayBuffer | bigint) => void): void;\n    /**\n     * Generates a pseudorandom prime of `size` bits.\n     *\n     * If `options.safe` is `true`, the prime will be a safe prime -- that is,`(prime - 1) / 2` will also be a prime.\n     *\n     * The `options.add` and `options.rem` parameters can be used to enforce additional\n     * requirements, e.g., for Diffie-Hellman:\n     *\n     * * If `options.add` and `options.rem` are both set, the prime will satisfy the\n     * condition that `prime % add = rem`.\n     * * If only `options.add` is set and `options.safe` is not `true`, the prime will\n     * satisfy the condition that `prime % add = 1`.\n     * * If only `options.add` is set and `options.safe` is set to `true`, the prime\n     * will instead satisfy the condition that `prime % add = 3`. This is necessary\n     * because `prime % add = 1` for `options.add > 2` would contradict the condition\n     * enforced by `options.safe`.\n     * * `options.rem` is ignored if `options.add` is not given.\n     *\n     * Both `options.add` and `options.rem` must be encoded as big-endian sequences\n     * if given as an `ArrayBuffer`, `SharedArrayBuffer`, `TypedArray`, `Buffer`, or`DataView`.\n     *\n     * By default, the prime is encoded as a big-endian sequence of octets\n     * in an [ArrayBuffer](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer). If the `bigint` option is `true`, then a\n     * [bigint](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/BigInt) is provided.\n     * @since v15.8.0\n     * @param size The size (in bits) of the prime to generate.\n     */\n    function generatePrimeSync(size: number): ArrayBuffer;\n    function generatePrimeSync(size: number, options: GeneratePrimeOptionsBigInt): bigint;\n    function generatePrimeSync(size: number, options: GeneratePrimeOptionsArrayBuffer): ArrayBuffer;\n    function generatePrimeSync(size: number, options: GeneratePrimeOptions): ArrayBuffer | bigint;\n    interface CheckPrimeOptions {\n        /**\n         * The number of Miller-Rabin probabilistic primality iterations to perform.\n         * When the value is 0 (zero), a number of checks is used that yields a false positive rate of at most `2**-64` for random input.\n         * Care must be used when selecting a number of checks.\n         * Refer to the OpenSSL documentation for the BN_is_prime_ex function nchecks options for more details.\n         *\n         * @default 0\n         */\n        checks?: number | undefined;\n    }\n    /**\n     * Checks the primality of the `candidate`.\n     * @since v15.8.0\n     * @param candidate A possible prime encoded as a sequence of big endian octets of arbitrary length.\n     */\n    function checkPrime(value: LargeNumberLike, callback: (err: Error | null, result: boolean) => void): void;\n    function checkPrime(value: LargeNumberLike, options: CheckPrimeOptions, callback: (err: Error | null, result: boolean) => void): void;\n    /**\n     * Checks the primality of the `candidate`.\n     * @since v15.8.0\n     * @param candidate A possible prime encoded as a sequence of big endian octets of arbitrary length.\n     * @return `true` if the candidate is a prime with an error probability less than `0.25 ** options.checks`.\n     */\n    function checkPrimeSync(candidate: LargeNumberLike, options?: CheckPrimeOptions): boolean;\n    /**\n     * Load and set the `engine` for some or all OpenSSL functions (selected by flags).\n     *\n     * `engine` could be either an id or a path to the engine's shared library.\n     *\n     * The optional `flags` argument uses `ENGINE_METHOD_ALL` by default.\n     * The `flags` is a bit field taking one of or a mix of the following flags (defined in `crypto.constants`):\n     *\n     * - `crypto.constants.ENGINE_METHOD_RSA`\n     * - `crypto.constants.ENGINE_METHOD_DSA`\n     * - `crypto.constants.ENGINE_METHOD_DH`\n     * - `crypto.constants.ENGINE_METHOD_RAND`\n     * - `crypto.constants.ENGINE_METHOD_EC`\n     * - `crypto.constants.ENGINE_METHOD_CIPHERS`\n     * - `crypto.constants.ENGINE_METHOD_DIGESTS`\n     * - `crypto.constants.ENGINE_METHOD_PKEY_METHS`\n     * - `crypto.constants.ENGINE_METHOD_PKEY_ASN1_METHS`\n     * - `crypto.constants.ENGINE_METHOD_ALL`\n     * - `crypto.constants.ENGINE_METHOD_NONE`\n     *\n     * The flags below are deprecated in OpenSSL-1.1.0.\n     *\n     * - `crypto.constants.ENGINE_METHOD_ECDH`\n     * - `crypto.constants.ENGINE_METHOD_ECDSA`\n     * - `crypto.constants.ENGINE_METHOD_STORE`\n     * @since v0.11.11\n     * @param [flags=crypto.constants.ENGINE_METHOD_ALL]\n     */\n    function setEngine(engine: string, flags?: number): void;\n    /**\n     * An implementation of the Web Crypto API standard.\n     *\n     * See the {@link https://nodejs.org/docs/latest/api/webcrypto.html Web Crypto API documentation} for details.\n     * @since v15.0.0\n     */\n    const webcrypto: webcrypto.Crypto;\n    namespace webcrypto {\n        type BufferSource = ArrayBufferView | ArrayBuffer;\n        type KeyFormat = 'jwk' | 'pkcs8' | 'raw' | 'spki';\n        type KeyType = 'private' | 'public' | 'secret';\n        type KeyUsage = 'decrypt' | 'deriveBits' | 'deriveKey' | 'encrypt' | 'sign' | 'unwrapKey' | 'verify' | 'wrapKey';\n        type AlgorithmIdentifier = Algorithm | string;\n        type HashAlgorithmIdentifier = AlgorithmIdentifier;\n        type NamedCurve = string;\n        type BigInteger = Uint8Array;\n        interface AesCbcParams extends Algorithm {\n            iv: BufferSource;\n        }\n        interface AesCtrParams extends Algorithm {\n            counter: BufferSource;\n            length: number;\n        }\n        interface AesDerivedKeyParams extends Algorithm {\n            length: number;\n        }\n        interface AesGcmParams extends Algorithm {\n            additionalData?: BufferSource;\n            iv: BufferSource;\n            tagLength?: number;\n        }\n        interface AesKeyAlgorithm extends KeyAlgorithm {\n            length: number;\n        }\n        interface AesKeyGenParams extends Algorithm {\n            length: number;\n        }\n        interface Algorithm {\n            name: string;\n        }\n        interface EcKeyAlgorithm extends KeyAlgorithm {\n            namedCurve: NamedCurve;\n        }\n        interface EcKeyGenParams extends Algorithm {\n            namedCurve: NamedCurve;\n        }\n        interface EcKeyImportParams extends Algorithm {\n            namedCurve: NamedCurve;\n        }\n        interface EcdhKeyDeriveParams extends Algorithm {\n            public: CryptoKey;\n        }\n        interface EcdsaParams extends Algorithm {\n            hash: HashAlgorithmIdentifier;\n        }\n        interface Ed448Params extends Algorithm {\n            context?: BufferSource;\n        }\n        interface HkdfParams extends Algorithm {\n            hash: HashAlgorithmIdentifier;\n            info: BufferSource;\n            salt: BufferSource;\n        }\n        interface HmacImportParams extends Algorithm {\n            hash: HashAlgorithmIdentifier;\n            length?: number;\n        }\n        interface HmacKeyAlgorithm extends KeyAlgorithm {\n            hash: KeyAlgorithm;\n            length: number;\n        }\n        interface HmacKeyGenParams extends Algorithm {\n            hash: HashAlgorithmIdentifier;\n            length?: number;\n        }\n        interface JsonWebKey {\n            alg?: string;\n            crv?: string;\n            d?: string;\n            dp?: string;\n            dq?: string;\n            e?: string;\n            ext?: boolean;\n            k?: string;\n            key_ops?: string[];\n            kty?: string;\n            n?: string;\n            oth?: RsaOtherPrimesInfo[];\n            p?: string;\n            q?: string;\n            qi?: string;\n            use?: string;\n            x?: string;\n            y?: string;\n        }\n        interface KeyAlgorithm {\n            name: string;\n        }\n        interface Pbkdf2Params extends Algorithm {\n            hash: HashAlgorithmIdentifier;\n            iterations: number;\n            salt: BufferSource;\n        }\n        interface RsaHashedImportParams extends Algorithm {\n            hash: HashAlgorithmIdentifier;\n        }\n        interface RsaHashedKeyAlgorithm extends RsaKeyAlgorithm {\n            hash: KeyAlgorithm;\n        }\n        interface RsaHashedKeyGenParams extends RsaKeyGenParams {\n            hash: HashAlgorithmIdentifier;\n        }\n        interface RsaKeyAlgorithm extends KeyAlgorithm {\n            modulusLength: number;\n            publicExponent: BigInteger;\n        }\n        interface RsaKeyGenParams extends Algorithm {\n            modulusLength: number;\n            publicExponent: BigInteger;\n        }\n        interface RsaOaepParams extends Algorithm {\n            label?: BufferSource;\n        }\n        interface RsaOtherPrimesInfo {\n            d?: string;\n            r?: string;\n            t?: string;\n        }\n        interface RsaPssParams extends Algorithm {\n            saltLength: number;\n        }\n        /**\n         * Calling `require('node:crypto').webcrypto` returns an instance of the `Crypto` class.\n         * `Crypto` is a singleton that provides access to the remainder of the crypto API.\n         * @since v15.0.0\n         */\n        interface Crypto {\n            /**\n             * Provides access to the `SubtleCrypto` API.\n             * @since v15.0.0\n             */\n            readonly subtle: SubtleCrypto;\n            /**\n             * Generates cryptographically strong random values.\n             * The given `typedArray` is filled with random values, and a reference to `typedArray` is returned.\n             *\n             * The given `typedArray` must be an integer-based instance of {@link NodeJS.TypedArray}, i.e. `Float32Array` and `Float64Array` are not accepted.\n             *\n             * An error will be thrown if the given `typedArray` is larger than 65,536 bytes.\n             * @since v15.0.0\n             */\n            getRandomValues<T extends Exclude<NodeJS.TypedArray, Float32Array | Float64Array>>(typedArray: T): T;\n            /**\n             * Generates a random {@link https://www.rfc-editor.org/rfc/rfc4122.txt RFC 4122} version 4 UUID.\n             * The UUID is generated using a cryptographic pseudorandom number generator.\n             * @since v16.7.0\n             */\n            randomUUID(): string;\n            CryptoKey: CryptoKeyConstructor;\n        }\n        // This constructor throws ILLEGAL_CONSTRUCTOR so it should not be newable.\n        interface CryptoKeyConstructor {\n            /** Illegal constructor */\n            (_: { readonly _: unique symbol }): never; // Allows instanceof to work but not be callable by the user.\n            readonly length: 0;\n            readonly name: 'CryptoKey';\n            readonly prototype: CryptoKey;\n        }\n        /**\n         * @since v15.0.0\n         */\n        interface CryptoKey {\n            /**\n             * An object detailing the algorithm for which the key can be used along with additional algorithm-specific parameters.\n             * @since v15.0.0\n             */\n            readonly algorithm: KeyAlgorithm;\n            /**\n             * When `true`, the {@link CryptoKey} can be extracted using either `subtleCrypto.exportKey()` or `subtleCrypto.wrapKey()`.\n             * @since v15.0.0\n             */\n            readonly extractable: boolean;\n            /**\n             * A string identifying whether the key is a symmetric (`'secret'`) or asymmetric (`'private'` or `'public'`) key.\n             * @since v15.0.0\n             */\n            readonly type: KeyType;\n            /**\n             * An array of strings identifying the operations for which the key may be used.\n             *\n             * The possible usages are:\n             * - `'encrypt'` - The key may be used to encrypt data.\n             * - `'decrypt'` - The key may be used to decrypt data.\n             * - `'sign'` - The key may be used to generate digital signatures.\n             * - `'verify'` - The key may be used to verify digital signatures.\n             * - `'deriveKey'` - The key may be used to derive a new key.\n             * - `'deriveBits'` - The key may be used to derive bits.\n             * - `'wrapKey'` - The key may be used to wrap another key.\n             * - `'unwrapKey'` - The key may be used to unwrap another key.\n             *\n             * Valid key usages depend on the key algorithm (identified by `cryptokey.algorithm.name`).\n             * @since v15.0.0\n             */\n            readonly usages: KeyUsage[];\n        }\n        /**\n         * The `CryptoKeyPair` is a simple dictionary object with `publicKey` and `privateKey` properties, representing an asymmetric key pair.\n         * @since v15.0.0\n         */\n        interface CryptoKeyPair {\n            /**\n             * A {@link CryptoKey} whose type will be `'private'`.\n             * @since v15.0.0\n             */\n            privateKey: CryptoKey;\n            /**\n             * A {@link CryptoKey} whose type will be `'public'`.\n             * @since v15.0.0\n             */\n            publicKey: CryptoKey;\n        }\n        /**\n         * @since v15.0.0\n         */\n        interface SubtleCrypto {\n            /**\n             * Using the method and parameters specified in `algorithm` and the keying material provided by `key`,\n             * `subtle.decrypt()` attempts to decipher the provided `data`. If successful,\n             * the returned promise will be resolved with an `<ArrayBuffer>` containing the plaintext result.\n             *\n             * The algorithms currently supported include:\n             *\n             * - `'RSA-OAEP'`\n             * - `'AES-CTR'`\n             * - `'AES-CBC'`\n             * - `'AES-GCM'`\n             * @since v15.0.0\n             */\n            decrypt(algorithm: AlgorithmIdentifier | RsaOaepParams | AesCtrParams | AesCbcParams | AesGcmParams, key: CryptoKey, data: BufferSource): Promise<ArrayBuffer>;\n            /**\n             * Using the method and parameters specified in `algorithm` and the keying material provided by `baseKey`,\n             * `subtle.deriveBits()` attempts to generate `length` bits.\n             * The Node.js implementation requires that `length` is a multiple of `8`.\n             * If successful, the returned promise will be resolved with an `<ArrayBuffer>` containing the generated data.\n             *\n             * The algorithms currently supported include:\n             *\n             * - `'ECDH'`\n             * - `'HKDF'`\n             * - `'PBKDF2'`\n             * @since v15.0.0\n             */\n            deriveBits(algorithm: AlgorithmIdentifier | EcdhKeyDeriveParams | HkdfParams | Pbkdf2Params, baseKey: CryptoKey, length: number): Promise<ArrayBuffer>;\n            /**\n             * Using the method and parameters specified in `algorithm`, and the keying material provided by `baseKey`,\n             * `subtle.deriveKey()` attempts to generate a new <CryptoKey>` based on the method and parameters in `derivedKeyAlgorithm`.\n             *\n             * Calling `subtle.deriveKey()` is equivalent to calling `subtle.deriveBits()` to generate raw keying material,\n             * then passing the result into the `subtle.importKey()` method using the `deriveKeyAlgorithm`, `extractable`, and `keyUsages` parameters as input.\n             *\n             * The algorithms currently supported include:\n             *\n             * - `'ECDH'`\n             * - `'HKDF'`\n             * - `'PBKDF2'`\n             * @param keyUsages See {@link https://nodejs.org/docs/latest/api/webcrypto.html#cryptokeyusages Key usages}.\n             * @since v15.0.0\n             */\n            deriveKey(\n                algorithm: AlgorithmIdentifier | EcdhKeyDeriveParams | HkdfParams | Pbkdf2Params,\n                baseKey: CryptoKey,\n                derivedKeyAlgorithm: AlgorithmIdentifier | AesDerivedKeyParams | HmacImportParams | HkdfParams | Pbkdf2Params,\n                extractable: boolean,\n                keyUsages: ReadonlyArray<KeyUsage>\n            ): Promise<CryptoKey>;\n            /**\n             * Using the method identified by `algorithm`, `subtle.digest()` attempts to generate a digest of `data`.\n             * If successful, the returned promise is resolved with an `<ArrayBuffer>` containing the computed digest.\n             *\n             * If `algorithm` is provided as a `<string>`, it must be one of:\n             *\n             * - `'SHA-1'`\n             * - `'SHA-256'`\n             * - `'SHA-384'`\n             * - `'SHA-512'`\n             *\n             * If `algorithm` is provided as an `<Object>`, it must have a `name` property whose value is one of the above.\n             * @since v15.0.0\n             */\n            digest(algorithm: AlgorithmIdentifier, data: BufferSource): Promise<ArrayBuffer>;\n            /**\n             * Using the method and parameters specified by `algorithm` and the keying material provided by `key`,\n             * `subtle.encrypt()` attempts to encipher `data`. If successful,\n             * the returned promise is resolved with an `<ArrayBuffer>` containing the encrypted result.\n             *\n             * The algorithms currently supported include:\n             *\n             * - `'RSA-OAEP'`\n             * - `'AES-CTR'`\n             * - `'AES-CBC'`\n             * - `'AES-GCM'`\n             * @since v15.0.0\n             */\n            encrypt(algorithm: AlgorithmIdentifier | RsaOaepParams | AesCtrParams | AesCbcParams | AesGcmParams, key: CryptoKey, data: BufferSource): Promise<ArrayBuffer>;\n            /**\n             * Exports the given key into the specified format, if supported.\n             *\n             * If the `<CryptoKey>` is not extractable, the returned promise will reject.\n             *\n             * When `format` is either `'pkcs8'` or `'spki'` and the export is successful,\n             * the returned promise will be resolved with an `<ArrayBuffer>` containing the exported key data.\n             *\n             * When `format` is `'jwk'` and the export is successful, the returned promise will be resolved with a\n             * JavaScript object conforming to the {@link https://tools.ietf.org/html/rfc7517 JSON Web Key} specification.\n             * @param format Must be one of `'raw'`, `'pkcs8'`, `'spki'`, or `'jwk'`.\n             * @returns `<Promise>` containing `<ArrayBuffer>`.\n             * @since v15.0.0\n             */\n            exportKey(format: 'jwk', key: CryptoKey): Promise<JsonWebKey>;\n            exportKey(format: Exclude<KeyFormat, 'jwk'>, key: CryptoKey): Promise<ArrayBuffer>;\n            /**\n             * Using the method and parameters provided in `algorithm`,\n             * `subtle.generateKey()` attempts to generate new keying material.\n             * Depending the method used, the method may generate either a single `<CryptoKey>` or a `<CryptoKeyPair>`.\n             *\n             * The `<CryptoKeyPair>` (public and private key) generating algorithms supported include:\n             *\n             * - `'RSASSA-PKCS1-v1_5'`\n             * - `'RSA-PSS'`\n             * - `'RSA-OAEP'`\n             * - `'ECDSA'`\n             * - `'ECDH'`\n             * The `<CryptoKey>` (secret key) generating algorithms supported include:\n             *\n             * - `'HMAC'`\n             * - `'AES-CTR'`\n             * - `'AES-CBC'`\n             * - `'AES-GCM'`\n             * - `'AES-KW'`\n             * @param keyUsages See {@link https://nodejs.org/docs/latest/api/webcrypto.html#cryptokeyusages Key usages}.\n             * @since v15.0.0\n             */\n            generateKey(algorithm: RsaHashedKeyGenParams | EcKeyGenParams, extractable: boolean, keyUsages: ReadonlyArray<KeyUsage>): Promise<CryptoKeyPair>;\n            generateKey(algorithm: AesKeyGenParams | HmacKeyGenParams | Pbkdf2Params, extractable: boolean, keyUsages: ReadonlyArray<KeyUsage>): Promise<CryptoKey>;\n            generateKey(algorithm: AlgorithmIdentifier, extractable: boolean, keyUsages: KeyUsage[]): Promise<CryptoKeyPair | CryptoKey>;\n            /**\n             * The `subtle.importKey()` method attempts to interpret the provided `keyData` as the given `format`\n             * to create a `<CryptoKey>` instance using the provided `algorithm`, `extractable`, and `keyUsages` arguments.\n             * If the import is successful, the returned promise will be resolved with the created `<CryptoKey>`.\n             *\n             * If importing a `'PBKDF2'` key, `extractable` must be `false`.\n             * @param format Must be one of `'raw'`, `'pkcs8'`, `'spki'`, or `'jwk'`.\n             * @param keyUsages See {@link https://nodejs.org/docs/latest/api/webcrypto.html#cryptokeyusages Key usages}.\n             * @since v15.0.0\n             */\n            importKey(\n                format: 'jwk',\n                keyData: JsonWebKey,\n                algorithm: AlgorithmIdentifier | RsaHashedImportParams | EcKeyImportParams | HmacImportParams | AesKeyAlgorithm,\n                extractable: boolean,\n                keyUsages: ReadonlyArray<KeyUsage>\n            ): Promise<CryptoKey>;\n            importKey(\n                format: Exclude<KeyFormat, 'jwk'>,\n                keyData: BufferSource,\n                algorithm: AlgorithmIdentifier | RsaHashedImportParams | EcKeyImportParams | HmacImportParams | AesKeyAlgorithm,\n                extractable: boolean,\n                keyUsages: KeyUsage[]\n            ): Promise<CryptoKey>;\n            /**\n             * Using the method and parameters given by `algorithm` and the keying material provided by `key`,\n             * `subtle.sign()` attempts to generate a cryptographic signature of `data`. If successful,\n             * the returned promise is resolved with an `<ArrayBuffer>` containing the generated signature.\n             *\n             * The algorithms currently supported include:\n             *\n             * - `'RSASSA-PKCS1-v1_5'`\n             * - `'RSA-PSS'`\n             * - `'ECDSA'`\n             * - `'HMAC'`\n             * @since v15.0.0\n             */\n            sign(algorithm: AlgorithmIdentifier | RsaPssParams | EcdsaParams | Ed448Params, key: CryptoKey, data: BufferSource): Promise<ArrayBuffer>;\n            /**\n             * In cryptography, \"wrapping a key\" refers to exporting and then encrypting the keying material.\n             * The `subtle.unwrapKey()` method attempts to decrypt a wrapped key and create a `<CryptoKey>` instance.\n             * It is equivalent to calling `subtle.decrypt()` first on the encrypted key data (using the `wrappedKey`, `unwrapAlgo`, and `unwrappingKey` arguments as input)\n             * then passing the results in to the `subtle.importKey()` method using the `unwrappedKeyAlgo`, `extractable`, and `keyUsages` arguments as inputs.\n             * If successful, the returned promise is resolved with a `<CryptoKey>` object.\n             *\n             * The wrapping algorithms currently supported include:\n             *\n             * - `'RSA-OAEP'`\n             * - `'AES-CTR'`\n             * - `'AES-CBC'`\n             * - `'AES-GCM'`\n             * - `'AES-KW'`\n             *\n             * The unwrapped key algorithms supported include:\n             *\n             * - `'RSASSA-PKCS1-v1_5'`\n             * - `'RSA-PSS'`\n             * - `'RSA-OAEP'`\n             * - `'ECDSA'`\n             * - `'ECDH'`\n             * - `'HMAC'`\n             * - `'AES-CTR'`\n             * - `'AES-CBC'`\n             * - `'AES-GCM'`\n             * - `'AES-KW'`\n             * @param format Must be one of `'raw'`, `'pkcs8'`, `'spki'`, or `'jwk'`.\n             * @param keyUsages See {@link https://nodejs.org/docs/latest/api/webcrypto.html#cryptokeyusages Key usages}.\n             * @since v15.0.0\n             */\n            unwrapKey(\n                format: KeyFormat,\n                wrappedKey: BufferSource,\n                unwrappingKey: CryptoKey,\n                unwrapAlgorithm: AlgorithmIdentifier | RsaOaepParams | AesCtrParams | AesCbcParams | AesGcmParams,\n                unwrappedKeyAlgorithm: AlgorithmIdentifier | RsaHashedImportParams | EcKeyImportParams | HmacImportParams | AesKeyAlgorithm,\n                extractable: boolean,\n                keyUsages: KeyUsage[]\n            ): Promise<CryptoKey>;\n            /**\n             * Using the method and parameters given in `algorithm` and the keying material provided by `key`,\n             * `subtle.verify()` attempts to verify that `signature` is a valid cryptographic signature of `data`.\n             * The returned promise is resolved with either `true` or `false`.\n             *\n             * The algorithms currently supported include:\n             *\n             * - `'RSASSA-PKCS1-v1_5'`\n             * - `'RSA-PSS'`\n             * - `'ECDSA'`\n             * - `'HMAC'`\n             * @since v15.0.0\n             */\n            verify(algorithm: AlgorithmIdentifier | RsaPssParams | EcdsaParams | Ed448Params, key: CryptoKey, signature: BufferSource, data: BufferSource): Promise<boolean>;\n            /**\n             * In cryptography, \"wrapping a key\" refers to exporting and then encrypting the keying material.\n             * The `subtle.wrapKey()` method exports the keying material into the format identified by `format`,\n             * then encrypts it using the method and parameters specified by `wrapAlgo` and the keying material provided by `wrappingKey`.\n             * It is the equivalent to calling `subtle.exportKey()` using `format` and `key` as the arguments,\n             * then passing the result to the `subtle.encrypt()` method using `wrappingKey` and `wrapAlgo` as inputs.\n             * If successful, the returned promise will be resolved with an `<ArrayBuffer>` containing the encrypted key data.\n             *\n             * The wrapping algorithms currently supported include:\n             *\n             * - `'RSA-OAEP'`\n             * - `'AES-CTR'`\n             * - `'AES-CBC'`\n             * - `'AES-GCM'`\n             * - `'AES-KW'`\n             * @param format Must be one of `'raw'`, `'pkcs8'`, `'spki'`, or `'jwk'`.\n             * @since v15.0.0\n             */\n            wrapKey(format: KeyFormat, key: CryptoKey, wrappingKey: CryptoKey, wrapAlgorithm: AlgorithmIdentifier | RsaOaepParams | AesCtrParams | AesCbcParams | AesGcmParams): Promise<ArrayBuffer>;\n        }\n    }\n}\ndeclare module 'node:crypto' {\n    export * from 'crypto';\n}\n"
    },
    {
      "path": "/node_modules/@types/node/dgram.d.ts",
      "content": "/**\n * The `dgram` module provides an implementation of UDP datagram sockets.\n *\n * ```js\n * import dgram from 'dgram';\n *\n * const server = dgram.createSocket('udp4');\n *\n * server.on('error', (err) => {\n *   console.log(`server error:\\n${err.stack}`);\n *   server.close();\n * });\n *\n * server.on('message', (msg, rinfo) => {\n *   console.log(`server got: ${msg} from ${rinfo.address}:${rinfo.port}`);\n * });\n *\n * server.on('listening', () => {\n *   const address = server.address();\n *   console.log(`server listening ${address.address}:${address.port}`);\n * });\n *\n * server.bind(41234);\n * // Prints: server listening 0.0.0.0:41234\n * ```\n * @see [source](https://github.com/nodejs/node/blob/v16.9.0/lib/dgram.js)\n */\ndeclare module 'dgram' {\n    import { AddressInfo } from 'node:net';\n    import * as dns from 'node:dns';\n    import { EventEmitter, Abortable } from 'node:events';\n    interface RemoteInfo {\n        address: string;\n        family: 'IPv4' | 'IPv6';\n        port: number;\n        size: number;\n    }\n    interface BindOptions {\n        port?: number | undefined;\n        address?: string | undefined;\n        exclusive?: boolean | undefined;\n        fd?: number | undefined;\n    }\n    type SocketType = 'udp4' | 'udp6';\n    interface SocketOptions extends Abortable {\n        type: SocketType;\n        reuseAddr?: boolean | undefined;\n        /**\n         * @default false\n         */\n        ipv6Only?: boolean | undefined;\n        recvBufferSize?: number | undefined;\n        sendBufferSize?: number | undefined;\n        lookup?: ((hostname: string, options: dns.LookupOneOptions, callback: (err: NodeJS.ErrnoException | null, address: string, family: number) => void) => void) | undefined;\n    }\n    /**\n     * Creates a `dgram.Socket` object. Once the socket is created, calling `socket.bind()` will instruct the socket to begin listening for datagram\n     * messages. When `address` and `port` are not passed to `socket.bind()` the\n     * method will bind the socket to the \"all interfaces\" address on a random port\n     * (it does the right thing for both `udp4` and `udp6` sockets). The bound address\n     * and port can be retrieved using `socket.address().address` and `socket.address().port`.\n     *\n     * If the `signal` option is enabled, calling `.abort()` on the corresponding`AbortController` is similar to calling `.close()` on the socket:\n     *\n     * ```js\n     * const controller = new AbortController();\n     * const { signal } = controller;\n     * const server = dgram.createSocket({ type: 'udp4', signal });\n     * server.on('message', (msg, rinfo) => {\n     *   console.log(`server got: ${msg} from ${rinfo.address}:${rinfo.port}`);\n     * });\n     * // Later, when you want to close the server.\n     * controller.abort();\n     * ```\n     * @since v0.11.13\n     * @param options Available options are:\n     * @param callback Attached as a listener for `'message'` events. Optional.\n     */\n    function createSocket(type: SocketType, callback?: (msg: Buffer, rinfo: RemoteInfo) => void): Socket;\n    function createSocket(options: SocketOptions, callback?: (msg: Buffer, rinfo: RemoteInfo) => void): Socket;\n    /**\n     * Encapsulates the datagram functionality.\n     *\n     * New instances of `dgram.Socket` are created using {@link createSocket}.\n     * The `new` keyword is not to be used to create `dgram.Socket` instances.\n     * @since v0.1.99\n     */\n    class Socket extends EventEmitter {\n        /**\n         * Tells the kernel to join a multicast group at the given `multicastAddress` and`multicastInterface` using the `IP_ADD_MEMBERSHIP` socket option. If the`multicastInterface` argument is not\n         * specified, the operating system will choose\n         * one interface and will add membership to it. To add membership to every\n         * available interface, call `addMembership` multiple times, once per interface.\n         *\n         * When called on an unbound socket, this method will implicitly bind to a random\n         * port, listening on all interfaces.\n         *\n         * When sharing a UDP socket across multiple `cluster` workers, the`socket.addMembership()` function must be called only once or an`EADDRINUSE` error will occur:\n         *\n         * ```js\n         * import cluster from 'cluster';\n         * import dgram from 'dgram';\n         *\n         * if (cluster.isPrimary) {\n         *   cluster.fork(); // Works ok.\n         *   cluster.fork(); // Fails with EADDRINUSE.\n         * } else {\n         *   const s = dgram.createSocket('udp4');\n         *   s.bind(1234, () => {\n         *     s.addMembership('224.0.0.114');\n         *   });\n         * }\n         * ```\n         * @since v0.6.9\n         */\n        addMembership(multicastAddress: string, multicastInterface?: string): void;\n        /**\n         * Returns an object containing the address information for a socket.\n         * For UDP sockets, this object will contain `address`, `family` and `port`properties.\n         *\n         * This method throws `EBADF` if called on an unbound socket.\n         * @since v0.1.99\n         */\n        address(): AddressInfo;\n        /**\n         * For UDP sockets, causes the `dgram.Socket` to listen for datagram\n         * messages on a named `port` and optional `address`. If `port` is not\n         * specified or is `0`, the operating system will attempt to bind to a\n         * random port. If `address` is not specified, the operating system will\n         * attempt to listen on all addresses. Once binding is complete, a`'listening'` event is emitted and the optional `callback` function is\n         * called.\n         *\n         * Specifying both a `'listening'` event listener and passing a`callback` to the `socket.bind()` method is not harmful but not very\n         * useful.\n         *\n         * A bound datagram socket keeps the Node.js process running to receive\n         * datagram messages.\n         *\n         * If binding fails, an `'error'` event is generated. In rare case (e.g.\n         * attempting to bind with a closed socket), an `Error` may be thrown.\n         *\n         * Example of a UDP server listening on port 41234:\n         *\n         * ```js\n         * import dgram from 'dgram';\n         *\n         * const server = dgram.createSocket('udp4');\n         *\n         * server.on('error', (err) => {\n         *   console.log(`server error:\\n${err.stack}`);\n         *   server.close();\n         * });\n         *\n         * server.on('message', (msg, rinfo) => {\n         *   console.log(`server got: ${msg} from ${rinfo.address}:${rinfo.port}`);\n         * });\n         *\n         * server.on('listening', () => {\n         *   const address = server.address();\n         *   console.log(`server listening ${address.address}:${address.port}`);\n         * });\n         *\n         * server.bind(41234);\n         * // Prints: server listening 0.0.0.0:41234\n         * ```\n         * @since v0.1.99\n         * @param callback with no parameters. Called when binding is complete.\n         */\n        bind(port?: number, address?: string, callback?: () => void): this;\n        bind(port?: number, callback?: () => void): this;\n        bind(callback?: () => void): this;\n        bind(options: BindOptions, callback?: () => void): this;\n        /**\n         * Close the underlying socket and stop listening for data on it. If a callback is\n         * provided, it is added as a listener for the `'close'` event.\n         * @since v0.1.99\n         * @param callback Called when the socket has been closed.\n         */\n        close(callback?: () => void): this;\n        /**\n         * Associates the `dgram.Socket` to a remote address and port. Every\n         * message sent by this handle is automatically sent to that destination. Also,\n         * the socket will only receive messages from that remote peer.\n         * Trying to call `connect()` on an already connected socket will result\n         * in an `ERR_SOCKET_DGRAM_IS_CONNECTED` exception. If `address` is not\n         * provided, `'127.0.0.1'` (for `udp4` sockets) or `'::1'` (for `udp6` sockets)\n         * will be used by default. Once the connection is complete, a `'connect'` event\n         * is emitted and the optional `callback` function is called. In case of failure,\n         * the `callback` is called or, failing this, an `'error'` event is emitted.\n         * @since v12.0.0\n         * @param callback Called when the connection is completed or on error.\n         */\n        connect(port: number, address?: string, callback?: () => void): void;\n        connect(port: number, callback: () => void): void;\n        /**\n         * A synchronous function that disassociates a connected `dgram.Socket` from\n         * its remote address. Trying to call `disconnect()` on an unbound or already\n         * disconnected socket will result in an `ERR_SOCKET_DGRAM_NOT_CONNECTED` exception.\n         * @since v12.0.0\n         */\n        disconnect(): void;\n        /**\n         * Instructs the kernel to leave a multicast group at `multicastAddress` using the`IP_DROP_MEMBERSHIP` socket option. This method is automatically called by the\n         * kernel when the socket is closed or the process terminates, so most apps will\n         * never have reason to call this.\n         *\n         * If `multicastInterface` is not specified, the operating system will attempt to\n         * drop membership on all valid interfaces.\n         * @since v0.6.9\n         */\n        dropMembership(multicastAddress: string, multicastInterface?: string): void;\n        /**\n         * This method throws `ERR_SOCKET_BUFFER_SIZE` if called on an unbound socket.\n         * @since v8.7.0\n         * @return the `SO_RCVBUF` socket receive buffer size in bytes.\n         */\n        getRecvBufferSize(): number;\n        /**\n         * This method throws `ERR_SOCKET_BUFFER_SIZE` if called on an unbound socket.\n         * @since v8.7.0\n         * @return the `SO_SNDBUF` socket send buffer size in bytes.\n         */\n        getSendBufferSize(): number;\n        /**\n         * By default, binding a socket will cause it to block the Node.js process from\n         * exiting as long as the socket is open. The `socket.unref()` method can be used\n         * to exclude the socket from the reference counting that keeps the Node.js\n         * process active. The `socket.ref()` method adds the socket back to the reference\n         * counting and restores the default behavior.\n         *\n         * Calling `socket.ref()` multiples times will have no additional effect.\n         *\n         * The `socket.ref()` method returns a reference to the socket so calls can be\n         * chained.\n         * @since v0.9.1\n         */\n        ref(): this;\n        /**\n         * Returns an object containing the `address`, `family`, and `port` of the remote\n         * endpoint. This method throws an `ERR_SOCKET_DGRAM_NOT_CONNECTED` exception\n         * if the socket is not connected.\n         * @since v12.0.0\n         */\n        remoteAddress(): AddressInfo;\n        /**\n         * Broadcasts a datagram on the socket.\n         * For connectionless sockets, the destination `port` and `address` must be\n         * specified. Connected sockets, on the other hand, will use their associated\n         * remote endpoint, so the `port` and `address` arguments must not be set.\n         *\n         * The `msg` argument contains the message to be sent.\n         * Depending on its type, different behavior can apply. If `msg` is a `Buffer`,\n         * any `TypedArray` or a `DataView`,\n         * the `offset` and `length` specify the offset within the `Buffer` where the\n         * message begins and the number of bytes in the message, respectively.\n         * If `msg` is a `String`, then it is automatically converted to a `Buffer`with `'utf8'` encoding. With messages that\n         * contain multi-byte characters, `offset` and `length` will be calculated with\n         * respect to `byte length` and not the character position.\n         * If `msg` is an array, `offset` and `length` must not be specified.\n         *\n         * The `address` argument is a string. If the value of `address` is a host name,\n         * DNS will be used to resolve the address of the host. If `address` is not\n         * provided or otherwise falsy, `'127.0.0.1'` (for `udp4` sockets) or `'::1'`(for `udp6` sockets) will be used by default.\n         *\n         * If the socket has not been previously bound with a call to `bind`, the socket\n         * is assigned a random port number and is bound to the \"all interfaces\" address\n         * (`'0.0.0.0'` for `udp4` sockets, `'::0'` for `udp6` sockets.)\n         *\n         * An optional `callback` function may be specified to as a way of reporting\n         * DNS errors or for determining when it is safe to reuse the `buf` object.\n         * DNS lookups delay the time to send for at least one tick of the\n         * Node.js event loop.\n         *\n         * The only way to know for sure that the datagram has been sent is by using a`callback`. If an error occurs and a `callback` is given, the error will be\n         * passed as the first argument to the `callback`. If a `callback` is not given,\n         * the error is emitted as an `'error'` event on the `socket` object.\n         *\n         * Offset and length are optional but both _must_ be set if either are used.\n         * They are supported only when the first argument is a `Buffer`, a `TypedArray`,\n         * or a `DataView`.\n         *\n         * This method throws `ERR_SOCKET_BAD_PORT` if called on an unbound socket.\n         *\n         * Example of sending a UDP packet to a port on `localhost`;\n         *\n         * ```js\n         * import dgram from 'dgram';\n         * import { Buffer } from 'buffer';\n         *\n         * const message = Buffer.from('Some bytes');\n         * const client = dgram.createSocket('udp4');\n         * client.send(message, 41234, 'localhost', (err) => {\n         *   client.close();\n         * });\n         * ```\n         *\n         * Example of sending a UDP packet composed of multiple buffers to a port on`127.0.0.1`;\n         *\n         * ```js\n         * import dgram from 'dgram';\n         * import { Buffer } from 'buffer';\n         *\n         * const buf1 = Buffer.from('Some ');\n         * const buf2 = Buffer.from('bytes');\n         * const client = dgram.createSocket('udp4');\n         * client.send([buf1, buf2], 41234, (err) => {\n         *   client.close();\n         * });\n         * ```\n         *\n         * Sending multiple buffers might be faster or slower depending on the\n         * application and operating system. Run benchmarks to\n         * determine the optimal strategy on a case-by-case basis. Generally speaking,\n         * however, sending multiple buffers is faster.\n         *\n         * Example of sending a UDP packet using a socket connected to a port on`localhost`:\n         *\n         * ```js\n         * import dgram from 'dgram';\n         * import { Buffer } from 'buffer';\n         *\n         * const message = Buffer.from('Some bytes');\n         * const client = dgram.createSocket('udp4');\n         * client.connect(41234, 'localhost', (err) => {\n         *   client.send(message, (err) => {\n         *     client.close();\n         *   });\n         * });\n         * ```\n         * @since v0.1.99\n         * @param msg Message to be sent.\n         * @param offset Offset in the buffer where the message starts.\n         * @param length Number of bytes in the message.\n         * @param port Destination port.\n         * @param address Destination host name or IP address.\n         * @param callback Called when the message has been sent.\n         */\n        send(msg: string | Uint8Array | ReadonlyArray<any>, port?: number, address?: string, callback?: (error: Error | null, bytes: number) => void): void;\n        send(msg: string | Uint8Array | ReadonlyArray<any>, port?: number, callback?: (error: Error | null, bytes: number) => void): void;\n        send(msg: string | Uint8Array | ReadonlyArray<any>, callback?: (error: Error | null, bytes: number) => void): void;\n        send(msg: string | Uint8Array, offset: number, length: number, port?: number, address?: string, callback?: (error: Error | null, bytes: number) => void): void;\n        send(msg: string | Uint8Array, offset: number, length: number, port?: number, callback?: (error: Error | null, bytes: number) => void): void;\n        send(msg: string | Uint8Array, offset: number, length: number, callback?: (error: Error | null, bytes: number) => void): void;\n        /**\n         * Sets or clears the `SO_BROADCAST` socket option. When set to `true`, UDP\n         * packets may be sent to a local interface's broadcast address.\n         *\n         * This method throws `EBADF` if called on an unbound socket.\n         * @since v0.6.9\n         */\n        setBroadcast(flag: boolean): void;\n        /**\n         * _All references to scope in this section are referring to [IPv6 Zone Indices](https://en.wikipedia.org/wiki/IPv6_address#Scoped_literal_IPv6_addresses), which are defined by [RFC\n         * 4007](https://tools.ietf.org/html/rfc4007). In string form, an IP_\n         * _with a scope index is written as `'IP%scope'` where scope is an interface name_\n         * _or interface number._\n         *\n         * Sets the default outgoing multicast interface of the socket to a chosen\n         * interface or back to system interface selection. The `multicastInterface` must\n         * be a valid string representation of an IP from the socket's family.\n         *\n         * For IPv4 sockets, this should be the IP configured for the desired physical\n         * interface. All packets sent to multicast on the socket will be sent on the\n         * interface determined by the most recent successful use of this call.\n         *\n         * For IPv6 sockets, `multicastInterface` should include a scope to indicate the\n         * interface as in the examples that follow. In IPv6, individual `send` calls can\n         * also use explicit scope in addresses, so only packets sent to a multicast\n         * address without specifying an explicit scope are affected by the most recent\n         * successful use of this call.\n         *\n         * This method throws `EBADF` if called on an unbound socket.\n         *\n         * #### Example: IPv6 outgoing multicast interface\n         *\n         * On most systems, where scope format uses the interface name:\n         *\n         * ```js\n         * const socket = dgram.createSocket('udp6');\n         *\n         * socket.bind(1234, () => {\n         *   socket.setMulticastInterface('::%eth1');\n         * });\n         * ```\n         *\n         * On Windows, where scope format uses an interface number:\n         *\n         * ```js\n         * const socket = dgram.createSocket('udp6');\n         *\n         * socket.bind(1234, () => {\n         *   socket.setMulticastInterface('::%2');\n         * });\n         * ```\n         *\n         * #### Example: IPv4 outgoing multicast interface\n         *\n         * All systems use an IP of the host on the desired physical interface:\n         *\n         * ```js\n         * const socket = dgram.createSocket('udp4');\n         *\n         * socket.bind(1234, () => {\n         *   socket.setMulticastInterface('10.0.0.2');\n         * });\n         * ```\n         * @since v8.6.0\n         */\n        setMulticastInterface(multicastInterface: string): void;\n        /**\n         * Sets or clears the `IP_MULTICAST_LOOP` socket option. When set to `true`,\n         * multicast packets will also be received on the local interface.\n         *\n         * This method throws `EBADF` if called on an unbound socket.\n         * @since v0.3.8\n         */\n        setMulticastLoopback(flag: boolean): boolean;\n        /**\n         * Sets the `IP_MULTICAST_TTL` socket option. While TTL generally stands for\n         * \"Time to Live\", in this context it specifies the number of IP hops that a\n         * packet is allowed to travel through, specifically for multicast traffic. Each\n         * router or gateway that forwards a packet decrements the TTL. If the TTL is\n         * decremented to 0 by a router, it will not be forwarded.\n         *\n         * The `ttl` argument may be between 0 and 255\\. The default on most systems is `1`.\n         *\n         * This method throws `EBADF` if called on an unbound socket.\n         * @since v0.3.8\n         */\n        setMulticastTTL(ttl: number): number;\n        /**\n         * Sets the `SO_RCVBUF` socket option. Sets the maximum socket receive buffer\n         * in bytes.\n         *\n         * This method throws `ERR_SOCKET_BUFFER_SIZE` if called on an unbound socket.\n         * @since v8.7.0\n         */\n        setRecvBufferSize(size: number): void;\n        /**\n         * Sets the `SO_SNDBUF` socket option. Sets the maximum socket send buffer\n         * in bytes.\n         *\n         * This method throws `ERR_SOCKET_BUFFER_SIZE` if called on an unbound socket.\n         * @since v8.7.0\n         */\n        setSendBufferSize(size: number): void;\n        /**\n         * Sets the `IP_TTL` socket option. While TTL generally stands for \"Time to Live\",\n         * in this context it specifies the number of IP hops that a packet is allowed to\n         * travel through. Each router or gateway that forwards a packet decrements the\n         * TTL. If the TTL is decremented to 0 by a router, it will not be forwarded.\n         * Changing TTL values is typically done for network probes or when multicasting.\n         *\n         * The `ttl` argument may be between between 1 and 255\\. The default on most systems\n         * is 64.\n         *\n         * This method throws `EBADF` if called on an unbound socket.\n         * @since v0.1.101\n         */\n        setTTL(ttl: number): number;\n        /**\n         * By default, binding a socket will cause it to block the Node.js process from\n         * exiting as long as the socket is open. The `socket.unref()` method can be used\n         * to exclude the socket from the reference counting that keeps the Node.js\n         * process active, allowing the process to exit even if the socket is still\n         * listening.\n         *\n         * Calling `socket.unref()` multiple times will have no addition effect.\n         *\n         * The `socket.unref()` method returns a reference to the socket so calls can be\n         * chained.\n         * @since v0.9.1\n         */\n        unref(): this;\n        /**\n         * Tells the kernel to join a source-specific multicast channel at the given`sourceAddress` and `groupAddress`, using the `multicastInterface` with the`IP_ADD_SOURCE_MEMBERSHIP` socket\n         * option. If the `multicastInterface` argument\n         * is not specified, the operating system will choose one interface and will add\n         * membership to it. To add membership to every available interface, call`socket.addSourceSpecificMembership()` multiple times, once per interface.\n         *\n         * When called on an unbound socket, this method will implicitly bind to a random\n         * port, listening on all interfaces.\n         * @since v13.1.0, v12.16.0\n         */\n        addSourceSpecificMembership(sourceAddress: string, groupAddress: string, multicastInterface?: string): void;\n        /**\n         * Instructs the kernel to leave a source-specific multicast channel at the given`sourceAddress` and `groupAddress` using the `IP_DROP_SOURCE_MEMBERSHIP`socket option. This method is\n         * automatically called by the kernel when the\n         * socket is closed or the process terminates, so most apps will never have\n         * reason to call this.\n         *\n         * If `multicastInterface` is not specified, the operating system will attempt to\n         * drop membership on all valid interfaces.\n         * @since v13.1.0, v12.16.0\n         */\n        dropSourceSpecificMembership(sourceAddress: string, groupAddress: string, multicastInterface?: string): void;\n        /**\n         * events.EventEmitter\n         * 1. close\n         * 2. connect\n         * 3. error\n         * 4. listening\n         * 5. message\n         */\n        addListener(event: string, listener: (...args: any[]) => void): this;\n        addListener(event: 'close', listener: () => void): this;\n        addListener(event: 'connect', listener: () => void): this;\n        addListener(event: 'error', listener: (err: Error) => void): this;\n        addListener(event: 'listening', listener: () => void): this;\n        addListener(event: 'message', listener: (msg: Buffer, rinfo: RemoteInfo) => void): this;\n        emit(event: string | symbol, ...args: any[]): boolean;\n        emit(event: 'close'): boolean;\n        emit(event: 'connect'): boolean;\n        emit(event: 'error', err: Error): boolean;\n        emit(event: 'listening'): boolean;\n        emit(event: 'message', msg: Buffer, rinfo: RemoteInfo): boolean;\n        on(event: string, listener: (...args: any[]) => void): this;\n        on(event: 'close', listener: () => void): this;\n        on(event: 'connect', listener: () => void): this;\n        on(event: 'error', listener: (err: Error) => void): this;\n        on(event: 'listening', listener: () => void): this;\n        on(event: 'message', listener: (msg: Buffer, rinfo: RemoteInfo) => void): this;\n        once(event: string, listener: (...args: any[]) => void): this;\n        once(event: 'close', listener: () => void): this;\n        once(event: 'connect', listener: () => void): this;\n        once(event: 'error', listener: (err: Error) => void): this;\n        once(event: 'listening', listener: () => void): this;\n        once(event: 'message', listener: (msg: Buffer, rinfo: RemoteInfo) => void): this;\n        prependListener(event: string, listener: (...args: any[]) => void): this;\n        prependListener(event: 'close', listener: () => void): this;\n        prependListener(event: 'connect', listener: () => void): this;\n        prependListener(event: 'error', listener: (err: Error) => void): this;\n        prependListener(event: 'listening', listener: () => void): this;\n        prependListener(event: 'message', listener: (msg: Buffer, rinfo: RemoteInfo) => void): this;\n        prependOnceListener(event: string, listener: (...args: any[]) => void): this;\n        prependOnceListener(event: 'close', listener: () => void): this;\n        prependOnceListener(event: 'connect', listener: () => void): this;\n        prependOnceListener(event: 'error', listener: (err: Error) => void): this;\n        prependOnceListener(event: 'listening', listener: () => void): this;\n        prependOnceListener(event: 'message', listener: (msg: Buffer, rinfo: RemoteInfo) => void): this;\n    }\n}\ndeclare module 'node:dgram' {\n    export * from 'dgram';\n}\n"
    },
    {
      "path": "/node_modules/@types/node/diagnostics_channel.d.ts",
      "content": "/**\n * The `diagnostics_channel` module provides an API to create named channels\n * to report arbitrary message data for diagnostics purposes.\n *\n * It can be accessed using:\n *\n * ```js\n * import diagnostics_channel from 'diagnostics_channel';\n * ```\n *\n * It is intended that a module writer wanting to report diagnostics messages\n * will create one or many top-level channels to report messages through.\n * Channels may also be acquired at runtime but it is not encouraged\n * due to the additional overhead of doing so. Channels may be exported for\n * convenience, but as long as the name is known it can be acquired anywhere.\n *\n * If you intend for your module to produce diagnostics data for others to\n * consume it is recommended that you include documentation of what named\n * channels are used along with the shape of the message data. Channel names\n * should generally include the module name to avoid collisions with data from\n * other modules.\n * @experimental\n * @see [source](https://github.com/nodejs/node/blob/v16.9.0/lib/diagnostics_channel.js)\n */\ndeclare module 'diagnostics_channel' {\n    /**\n     * Check if there are active subscribers to the named channel. This is helpful if\n     * the message you want to send might be expensive to prepare.\n     *\n     * This API is optional but helpful when trying to publish messages from very\n     * performance-sensitive code.\n     *\n     * ```js\n     * import diagnostics_channel from 'diagnostics_channel';\n     *\n     * if (diagnostics_channel.hasSubscribers('my-channel')) {\n     *   // There are subscribers, prepare and publish message\n     * }\n     * ```\n     * @since v15.1.0, v14.17.0\n     * @param name The channel name\n     * @return If there are active subscribers\n     */\n    function hasSubscribers(name: string | symbol): boolean;\n    /**\n     * This is the primary entry-point for anyone wanting to interact with a named\n     * channel. It produces a channel object which is optimized to reduce overhead at\n     * publish time as much as possible.\n     *\n     * ```js\n     * import diagnostics_channel from 'diagnostics_channel';\n     *\n     * const channel = diagnostics_channel.channel('my-channel');\n     * ```\n     * @since v15.1.0, v14.17.0\n     * @param name The channel name\n     * @return The named channel object\n     */\n    function channel(name: string | symbol): Channel;\n    type ChannelListener = (message: unknown, name: string | symbol) => void;\n    /**\n     * The class `Channel` represents an individual named channel within the data\n     * pipeline. It is use to track subscribers and to publish messages when there\n     * are subscribers present. It exists as a separate object to avoid channel\n     * lookups at publish time, enabling very fast publish speeds and allowing\n     * for heavy use while incurring very minimal cost. Channels are created with {@link channel}, constructing a channel directly\n     * with `new Channel(name)` is not supported.\n     * @since v15.1.0, v14.17.0\n     */\n    class Channel {\n        readonly name: string | symbol;\n        /**\n         * Check if there are active subscribers to this channel. This is helpful if\n         * the message you want to send might be expensive to prepare.\n         *\n         * This API is optional but helpful when trying to publish messages from very\n         * performance-sensitive code.\n         *\n         * ```js\n         * import diagnostics_channel from 'diagnostics_channel';\n         *\n         * const channel = diagnostics_channel.channel('my-channel');\n         *\n         * if (channel.hasSubscribers) {\n         *   // There are subscribers, prepare and publish message\n         * }\n         * ```\n         * @since v15.1.0, v14.17.0\n         */\n        readonly hasSubscribers: boolean;\n        private constructor(name: string | symbol);\n        /**\n         * Publish a message to any subscribers to the channel. This will\n         * trigger message handlers synchronously so they will execute within\n         * the same context.\n         *\n         * ```js\n         * import diagnostics_channel from 'diagnostics_channel';\n         *\n         * const channel = diagnostics_channel.channel('my-channel');\n         *\n         * channel.publish({\n         *   some: 'message'\n         * });\n         * ```\n         * @since v15.1.0, v14.17.0\n         * @param message The message to send to the channel subscribers\n         */\n        publish(message: unknown): void;\n        /**\n         * Register a message handler to subscribe to this channel. This message handler\n         * will be run synchronously whenever a message is published to the channel. Any\n         * errors thrown in the message handler will trigger an `'uncaughtException'`.\n         *\n         * ```js\n         * import diagnostics_channel from 'diagnostics_channel';\n         *\n         * const channel = diagnostics_channel.channel('my-channel');\n         *\n         * channel.subscribe((message, name) => {\n         *   // Received data\n         * });\n         * ```\n         * @since v15.1.0, v14.17.0\n         * @param onMessage The handler to receive channel messages\n         */\n        subscribe(onMessage: ChannelListener): void;\n        /**\n         * Remove a message handler previously registered to this channel with `channel.subscribe(onMessage)`.\n         *\n         * ```js\n         * import diagnostics_channel from 'diagnostics_channel';\n         *\n         * const channel = diagnostics_channel.channel('my-channel');\n         *\n         * function onMessage(message, name) {\n         *   // Received data\n         * }\n         *\n         * channel.subscribe(onMessage);\n         *\n         * channel.unsubscribe(onMessage);\n         * ```\n         * @since v15.1.0, v14.17.0\n         * @param onMessage The previous subscribed handler to remove\n         */\n        unsubscribe(onMessage: ChannelListener): void;\n    }\n}\ndeclare module 'node:diagnostics_channel' {\n    export * from 'diagnostics_channel';\n}\n"
    },
    {
      "path": "/node_modules/@types/node/dns.d.ts",
      "content": "/**\n * The `dns` module enables name resolution. For example, use it to look up IP\n * addresses of host names.\n *\n * Although named for the [Domain Name System (DNS)](https://en.wikipedia.org/wiki/Domain_Name_System), it does not always use the\n * DNS protocol for lookups. {@link lookup} uses the operating system\n * facilities to perform name resolution. It may not need to perform any network\n * communication. To perform name resolution the way other applications on the same\n * system do, use {@link lookup}.\n *\n * ```js\n * const dns = require('dns');\n *\n * dns.lookup('example.org', (err, address, family) => {\n *   console.log('address: %j family: IPv%s', address, family);\n * });\n * // address: \"93.184.216.34\" family: IPv4\n * ```\n *\n * All other functions in the `dns` module connect to an actual DNS server to\n * perform name resolution. They will always use the network to perform DNS\n * queries. These functions do not use the same set of configuration files used by {@link lookup} (e.g. `/etc/hosts`). Use these functions to always perform\n * DNS queries, bypassing other name-resolution facilities.\n *\n * ```js\n * const dns = require('dns');\n *\n * dns.resolve4('archive.org', (err, addresses) => {\n *   if (err) throw err;\n *\n *   console.log(`addresses: ${JSON.stringify(addresses)}`);\n *\n *   addresses.forEach((a) => {\n *     dns.reverse(a, (err, hostnames) => {\n *       if (err) {\n *         throw err;\n *       }\n *       console.log(`reverse for ${a}: ${JSON.stringify(hostnames)}`);\n *     });\n *   });\n * });\n * ```\n *\n * See the `Implementation considerations section` for more information.\n * @see [source](https://github.com/nodejs/node/blob/v16.9.0/lib/dns.js)\n */\ndeclare module 'dns' {\n    import * as dnsPromises from 'node:dns/promises';\n    // Supported getaddrinfo flags.\n    export const ADDRCONFIG: number;\n    export const V4MAPPED: number;\n    /**\n     * If `dns.V4MAPPED` is specified, return resolved IPv6 addresses as\n     * well as IPv4 mapped IPv6 addresses.\n     */\n    export const ALL: number;\n    export interface LookupOptions {\n        family?: number | undefined;\n        hints?: number | undefined;\n        all?: boolean | undefined;\n        verbatim?: boolean | undefined;\n    }\n    export interface LookupOneOptions extends LookupOptions {\n        all?: false | undefined;\n    }\n    export interface LookupAllOptions extends LookupOptions {\n        all: true;\n    }\n    export interface LookupAddress {\n        address: string;\n        family: number;\n    }\n    /**\n     * Resolves a host name (e.g. `'nodejs.org'`) into the first found A (IPv4) or\n     * AAAA (IPv6) record. All `option` properties are optional. If `options` is an\n     * integer, then it must be `4` or `6` – if `options` is not provided, then IPv4\n     * and IPv6 addresses are both returned if found.\n     *\n     * With the `all` option set to `true`, the arguments for `callback` change to`(err, addresses)`, with `addresses` being an array of objects with the\n     * properties `address` and `family`.\n     *\n     * On error, `err` is an `Error` object, where `err.code` is the error code.\n     * Keep in mind that `err.code` will be set to `'ENOTFOUND'` not only when\n     * the host name does not exist but also when the lookup fails in other ways\n     * such as no available file descriptors.\n     *\n     * `dns.lookup()` does not necessarily have anything to do with the DNS protocol.\n     * The implementation uses an operating system facility that can associate names\n     * with addresses, and vice versa. This implementation can have subtle but\n     * important consequences on the behavior of any Node.js program. Please take some\n     * time to consult the `Implementation considerations section` before using`dns.lookup()`.\n     *\n     * Example usage:\n     *\n     * ```js\n     * const dns = require('dns');\n     * const options = {\n     *   family: 6,\n     *   hints: dns.ADDRCONFIG | dns.V4MAPPED,\n     * };\n     * dns.lookup('example.com', options, (err, address, family) =>\n     *   console.log('address: %j family: IPv%s', address, family));\n     * // address: \"2606:2800:220:1:248:1893:25c8:1946\" family: IPv6\n     *\n     * // When options.all is true, the result will be an Array.\n     * options.all = true;\n     * dns.lookup('example.com', options, (err, addresses) =>\n     *   console.log('addresses: %j', addresses));\n     * // addresses: [{\"address\":\"2606:2800:220:1:248:1893:25c8:1946\",\"family\":6}]\n     * ```\n     *\n     * If this method is invoked as its `util.promisify()` ed version, and `all`is not set to `true`, it returns a `Promise` for an `Object` with `address` and`family` properties.\n     * @since v0.1.90\n     */\n    export function lookup(hostname: string, family: number, callback: (err: NodeJS.ErrnoException | null, address: string, family: number) => void): void;\n    export function lookup(hostname: string, options: LookupOneOptions, callback: (err: NodeJS.ErrnoException | null, address: string, family: number) => void): void;\n    export function lookup(hostname: string, options: LookupAllOptions, callback: (err: NodeJS.ErrnoException | null, addresses: LookupAddress[]) => void): void;\n    export function lookup(hostname: string, options: LookupOptions, callback: (err: NodeJS.ErrnoException | null, address: string | LookupAddress[], family: number) => void): void;\n    export function lookup(hostname: string, callback: (err: NodeJS.ErrnoException | null, address: string, family: number) => void): void;\n    export namespace lookup {\n        function __promisify__(hostname: string, options: LookupAllOptions): Promise<LookupAddress[]>;\n        function __promisify__(hostname: string, options?: LookupOneOptions | number): Promise<LookupAddress>;\n        function __promisify__(hostname: string, options: LookupOptions): Promise<LookupAddress | LookupAddress[]>;\n    }\n    /**\n     * Resolves the given `address` and `port` into a host name and service using\n     * the operating system's underlying `getnameinfo` implementation.\n     *\n     * If `address` is not a valid IP address, a `TypeError` will be thrown.\n     * The `port` will be coerced to a number. If it is not a legal port, a `TypeError`will be thrown.\n     *\n     * On an error, `err` is an `Error` object, where `err.code` is the error code.\n     *\n     * ```js\n     * const dns = require('dns');\n     * dns.lookupService('127.0.0.1', 22, (err, hostname, service) => {\n     *   console.log(hostname, service);\n     *   // Prints: localhost ssh\n     * });\n     * ```\n     *\n     * If this method is invoked as its `util.promisify()` ed version, it returns a`Promise` for an `Object` with `hostname` and `service` properties.\n     * @since v0.11.14\n     */\n    export function lookupService(address: string, port: number, callback: (err: NodeJS.ErrnoException | null, hostname: string, service: string) => void): void;\n    export namespace lookupService {\n        function __promisify__(\n            address: string,\n            port: number\n        ): Promise<{\n            hostname: string;\n            service: string;\n        }>;\n    }\n    export interface ResolveOptions {\n        ttl: boolean;\n    }\n    export interface ResolveWithTtlOptions extends ResolveOptions {\n        ttl: true;\n    }\n    export interface RecordWithTtl {\n        address: string;\n        ttl: number;\n    }\n    /** @deprecated Use `AnyARecord` or `AnyAaaaRecord` instead. */\n    export type AnyRecordWithTtl = AnyARecord | AnyAaaaRecord;\n    export interface AnyARecord extends RecordWithTtl {\n        type: 'A';\n    }\n    export interface AnyAaaaRecord extends RecordWithTtl {\n        type: 'AAAA';\n    }\n    export interface CaaRecord {\n        critial: number;\n        issue?: string | undefined;\n        issuewild?: string | undefined;\n        iodef?: string | undefined;\n        contactemail?: string | undefined;\n        contactphone?: string | undefined;\n    }\n    export interface MxRecord {\n        priority: number;\n        exchange: string;\n    }\n    export interface AnyMxRecord extends MxRecord {\n        type: 'MX';\n    }\n    export interface NaptrRecord {\n        flags: string;\n        service: string;\n        regexp: string;\n        replacement: string;\n        order: number;\n        preference: number;\n    }\n    export interface AnyNaptrRecord extends NaptrRecord {\n        type: 'NAPTR';\n    }\n    export interface SoaRecord {\n        nsname: string;\n        hostmaster: string;\n        serial: number;\n        refresh: number;\n        retry: number;\n        expire: number;\n        minttl: number;\n    }\n    export interface AnySoaRecord extends SoaRecord {\n        type: 'SOA';\n    }\n    export interface SrvRecord {\n        priority: number;\n        weight: number;\n        port: number;\n        name: string;\n    }\n    export interface AnySrvRecord extends SrvRecord {\n        type: 'SRV';\n    }\n    export interface AnyTxtRecord {\n        type: 'TXT';\n        entries: string[];\n    }\n    export interface AnyNsRecord {\n        type: 'NS';\n        value: string;\n    }\n    export interface AnyPtrRecord {\n        type: 'PTR';\n        value: string;\n    }\n    export interface AnyCnameRecord {\n        type: 'CNAME';\n        value: string;\n    }\n    export type AnyRecord = AnyARecord | AnyAaaaRecord | AnyCnameRecord | AnyMxRecord | AnyNaptrRecord | AnyNsRecord | AnyPtrRecord | AnySoaRecord | AnySrvRecord | AnyTxtRecord;\n    /**\n     * Uses the DNS protocol to resolve a host name (e.g. `'nodejs.org'`) into an array\n     * of the resource records. The `callback` function has arguments`(err, records)`. When successful, `records` will be an array of resource\n     * records. The type and structure of individual results varies based on `rrtype`:\n     *\n     * <omitted>\n     *\n     * On error, `err` is an `Error` object, where `err.code` is one of the `DNS error codes`.\n     * @since v0.1.27\n     * @param hostname Host name to resolve.\n     * @param [rrtype='A'] Resource record type.\n     */\n    export function resolve(hostname: string, callback: (err: NodeJS.ErrnoException | null, addresses: string[]) => void): void;\n    export function resolve(hostname: string, rrtype: 'A', callback: (err: NodeJS.ErrnoException | null, addresses: string[]) => void): void;\n    export function resolve(hostname: string, rrtype: 'AAAA', callback: (err: NodeJS.ErrnoException | null, addresses: string[]) => void): void;\n    export function resolve(hostname: string, rrtype: 'ANY', callback: (err: NodeJS.ErrnoException | null, addresses: AnyRecord[]) => void): void;\n    export function resolve(hostname: string, rrtype: 'CNAME', callback: (err: NodeJS.ErrnoException | null, addresses: string[]) => void): void;\n    export function resolve(hostname: string, rrtype: 'MX', callback: (err: NodeJS.ErrnoException | null, addresses: MxRecord[]) => void): void;\n    export function resolve(hostname: string, rrtype: 'NAPTR', callback: (err: NodeJS.ErrnoException | null, addresses: NaptrRecord[]) => void): void;\n    export function resolve(hostname: string, rrtype: 'NS', callback: (err: NodeJS.ErrnoException | null, addresses: string[]) => void): void;\n    export function resolve(hostname: string, rrtype: 'PTR', callback: (err: NodeJS.ErrnoException | null, addresses: string[]) => void): void;\n    export function resolve(hostname: string, rrtype: 'SOA', callback: (err: NodeJS.ErrnoException | null, addresses: SoaRecord) => void): void;\n    export function resolve(hostname: string, rrtype: 'SRV', callback: (err: NodeJS.ErrnoException | null, addresses: SrvRecord[]) => void): void;\n    export function resolve(hostname: string, rrtype: 'TXT', callback: (err: NodeJS.ErrnoException | null, addresses: string[][]) => void): void;\n    export function resolve(\n        hostname: string,\n        rrtype: string,\n        callback: (err: NodeJS.ErrnoException | null, addresses: string[] | MxRecord[] | NaptrRecord[] | SoaRecord | SrvRecord[] | string[][] | AnyRecord[]) => void\n    ): void;\n    export namespace resolve {\n        function __promisify__(hostname: string, rrtype?: 'A' | 'AAAA' | 'CNAME' | 'NS' | 'PTR'): Promise<string[]>;\n        function __promisify__(hostname: string, rrtype: 'ANY'): Promise<AnyRecord[]>;\n        function __promisify__(hostname: string, rrtype: 'MX'): Promise<MxRecord[]>;\n        function __promisify__(hostname: string, rrtype: 'NAPTR'): Promise<NaptrRecord[]>;\n        function __promisify__(hostname: string, rrtype: 'SOA'): Promise<SoaRecord>;\n        function __promisify__(hostname: string, rrtype: 'SRV'): Promise<SrvRecord[]>;\n        function __promisify__(hostname: string, rrtype: 'TXT'): Promise<string[][]>;\n        function __promisify__(hostname: string, rrtype: string): Promise<string[] | MxRecord[] | NaptrRecord[] | SoaRecord | SrvRecord[] | string[][] | AnyRecord[]>;\n    }\n    /**\n     * Uses the DNS protocol to resolve a IPv4 addresses (`A` records) for the`hostname`. The `addresses` argument passed to the `callback` function\n     * will contain an array of IPv4 addresses (e.g.`['74.125.79.104', '74.125.79.105', '74.125.79.106']`).\n     * @since v0.1.16\n     * @param hostname Host name to resolve.\n     */\n    export function resolve4(hostname: string, callback: (err: NodeJS.ErrnoException | null, addresses: string[]) => void): void;\n    export function resolve4(hostname: string, options: ResolveWithTtlOptions, callback: (err: NodeJS.ErrnoException | null, addresses: RecordWithTtl[]) => void): void;\n    export function resolve4(hostname: string, options: ResolveOptions, callback: (err: NodeJS.ErrnoException | null, addresses: string[] | RecordWithTtl[]) => void): void;\n    export namespace resolve4 {\n        function __promisify__(hostname: string): Promise<string[]>;\n        function __promisify__(hostname: string, options: ResolveWithTtlOptions): Promise<RecordWithTtl[]>;\n        function __promisify__(hostname: string, options?: ResolveOptions): Promise<string[] | RecordWithTtl[]>;\n    }\n    /**\n     * Uses the DNS protocol to resolve a IPv6 addresses (`AAAA` records) for the`hostname`. The `addresses` argument passed to the `callback` function\n     * will contain an array of IPv6 addresses.\n     * @since v0.1.16\n     * @param hostname Host name to resolve.\n     */\n    export function resolve6(hostname: string, callback: (err: NodeJS.ErrnoException | null, addresses: string[]) => void): void;\n    export function resolve6(hostname: string, options: ResolveWithTtlOptions, callback: (err: NodeJS.ErrnoException | null, addresses: RecordWithTtl[]) => void): void;\n    export function resolve6(hostname: string, options: ResolveOptions, callback: (err: NodeJS.ErrnoException | null, addresses: string[] | RecordWithTtl[]) => void): void;\n    export namespace resolve6 {\n        function __promisify__(hostname: string): Promise<string[]>;\n        function __promisify__(hostname: string, options: ResolveWithTtlOptions): Promise<RecordWithTtl[]>;\n        function __promisify__(hostname: string, options?: ResolveOptions): Promise<string[] | RecordWithTtl[]>;\n    }\n    /**\n     * Uses the DNS protocol to resolve `CNAME` records for the `hostname`. The`addresses` argument passed to the `callback` function\n     * will contain an array of canonical name records available for the `hostname`(e.g. `['bar.example.com']`).\n     * @since v0.3.2\n     */\n    export function resolveCname(hostname: string, callback: (err: NodeJS.ErrnoException | null, addresses: string[]) => void): void;\n    export namespace resolveCname {\n        function __promisify__(hostname: string): Promise<string[]>;\n    }\n    /**\n     * Uses the DNS protocol to resolve `CAA` records for the `hostname`. The`addresses` argument passed to the `callback` function\n     * will contain an array of certification authority authorization records\n     * available for the `hostname` (e.g. `[{critical: 0, iodef: 'mailto:pki@example.com'}, {critical: 128, issue: 'pki.example.com'}]`).\n     * @since v15.0.0\n     */\n    export function resolveCaa(hostname: string, callback: (err: NodeJS.ErrnoException | null, records: CaaRecord[]) => void): void;\n    export namespace resolveCaa {\n        function __promisify__(hostname: string): Promise<CaaRecord[]>;\n    }\n    /**\n     * Uses the DNS protocol to resolve mail exchange records (`MX` records) for the`hostname`. The `addresses` argument passed to the `callback` function will\n     * contain an array of objects containing both a `priority` and `exchange`property (e.g. `[{priority: 10, exchange: 'mx.example.com'}, ...]`).\n     * @since v0.1.27\n     */\n    export function resolveMx(hostname: string, callback: (err: NodeJS.ErrnoException | null, addresses: MxRecord[]) => void): void;\n    export namespace resolveMx {\n        function __promisify__(hostname: string): Promise<MxRecord[]>;\n    }\n    /**\n     * Uses the DNS protocol to resolve regular expression based records (`NAPTR`records) for the `hostname`. The `addresses` argument passed to the `callback`function will contain an array of\n     * objects with the following properties:\n     *\n     * * `flags`\n     * * `service`\n     * * `regexp`\n     * * `replacement`\n     * * `order`\n     * * `preference`\n     *\n     * ```js\n     * {\n     *   flags: 's',\n     *   service: 'SIP+D2U',\n     *   regexp: '',\n     *   replacement: '_sip._udp.example.com',\n     *   order: 30,\n     *   preference: 100\n     * }\n     * ```\n     * @since v0.9.12\n     */\n    export function resolveNaptr(hostname: string, callback: (err: NodeJS.ErrnoException | null, addresses: NaptrRecord[]) => void): void;\n    export namespace resolveNaptr {\n        function __promisify__(hostname: string): Promise<NaptrRecord[]>;\n    }\n    /**\n     * Uses the DNS protocol to resolve name server records (`NS` records) for the`hostname`. The `addresses` argument passed to the `callback` function will\n     * contain an array of name server records available for `hostname`(e.g. `['ns1.example.com', 'ns2.example.com']`).\n     * @since v0.1.90\n     */\n    export function resolveNs(hostname: string, callback: (err: NodeJS.ErrnoException | null, addresses: string[]) => void): void;\n    export namespace resolveNs {\n        function __promisify__(hostname: string): Promise<string[]>;\n    }\n    /**\n     * Uses the DNS protocol to resolve pointer records (`PTR` records) for the`hostname`. The `addresses` argument passed to the `callback` function will\n     * be an array of strings containing the reply records.\n     * @since v6.0.0\n     */\n    export function resolvePtr(hostname: string, callback: (err: NodeJS.ErrnoException | null, addresses: string[]) => void): void;\n    export namespace resolvePtr {\n        function __promisify__(hostname: string): Promise<string[]>;\n    }\n    /**\n     * Uses the DNS protocol to resolve a start of authority record (`SOA` record) for\n     * the `hostname`. The `address` argument passed to the `callback` function will\n     * be an object with the following properties:\n     *\n     * * `nsname`\n     * * `hostmaster`\n     * * `serial`\n     * * `refresh`\n     * * `retry`\n     * * `expire`\n     * * `minttl`\n     *\n     * ```js\n     * {\n     *   nsname: 'ns.example.com',\n     *   hostmaster: 'root.example.com',\n     *   serial: 2013101809,\n     *   refresh: 10000,\n     *   retry: 2400,\n     *   expire: 604800,\n     *   minttl: 3600\n     * }\n     * ```\n     * @since v0.11.10\n     */\n    export function resolveSoa(hostname: string, callback: (err: NodeJS.ErrnoException | null, address: SoaRecord) => void): void;\n    export namespace resolveSoa {\n        function __promisify__(hostname: string): Promise<SoaRecord>;\n    }\n    /**\n     * Uses the DNS protocol to resolve service records (`SRV` records) for the`hostname`. The `addresses` argument passed to the `callback` function will\n     * be an array of objects with the following properties:\n     *\n     * * `priority`\n     * * `weight`\n     * * `port`\n     * * `name`\n     *\n     * ```js\n     * {\n     *   priority: 10,\n     *   weight: 5,\n     *   port: 21223,\n     *   name: 'service.example.com'\n     * }\n     * ```\n     * @since v0.1.27\n     */\n    export function resolveSrv(hostname: string, callback: (err: NodeJS.ErrnoException | null, addresses: SrvRecord[]) => void): void;\n    export namespace resolveSrv {\n        function __promisify__(hostname: string): Promise<SrvRecord[]>;\n    }\n    /**\n     * Uses the DNS protocol to resolve text queries (`TXT` records) for the`hostname`. The `records` argument passed to the `callback` function is a\n     * two-dimensional array of the text records available for `hostname` (e.g.`[ ['v=spf1 ip4:0.0.0.0 ', '~all' ] ]`). Each sub-array contains TXT chunks of\n     * one record. Depending on the use case, these could be either joined together or\n     * treated separately.\n     * @since v0.1.27\n     */\n    export function resolveTxt(hostname: string, callback: (err: NodeJS.ErrnoException | null, addresses: string[][]) => void): void;\n    export namespace resolveTxt {\n        function __promisify__(hostname: string): Promise<string[][]>;\n    }\n    /**\n     * Uses the DNS protocol to resolve all records (also known as `ANY` or `*` query).\n     * The `ret` argument passed to the `callback` function will be an array containing\n     * various types of records. Each object has a property `type` that indicates the\n     * type of the current record. And depending on the `type`, additional properties\n     * will be present on the object:\n     *\n     * <omitted>\n     *\n     * Here is an example of the `ret` object passed to the callback:\n     *\n     * ```js\n     * [ { type: 'A', address: '127.0.0.1', ttl: 299 },\n     *   { type: 'CNAME', value: 'example.com' },\n     *   { type: 'MX', exchange: 'alt4.aspmx.l.example.com', priority: 50 },\n     *   { type: 'NS', value: 'ns1.example.com' },\n     *   { type: 'TXT', entries: [ 'v=spf1 include:_spf.example.com ~all' ] },\n     *   { type: 'SOA',\n     *     nsname: 'ns1.example.com',\n     *     hostmaster: 'admin.example.com',\n     *     serial: 156696742,\n     *     refresh: 900,\n     *     retry: 900,\n     *     expire: 1800,\n     *     minttl: 60 } ]\n     * ```\n     *\n     * DNS server operators may choose not to respond to `ANY`queries. It may be better to call individual methods like {@link resolve4},{@link resolveMx}, and so on. For more details, see [RFC\n     * 8482](https://tools.ietf.org/html/rfc8482).\n     */\n    export function resolveAny(hostname: string, callback: (err: NodeJS.ErrnoException | null, addresses: AnyRecord[]) => void): void;\n    export namespace resolveAny {\n        function __promisify__(hostname: string): Promise<AnyRecord[]>;\n    }\n    /**\n     * Performs a reverse DNS query that resolves an IPv4 or IPv6 address to an\n     * array of host names.\n     *\n     * On error, `err` is an `Error` object, where `err.code` is\n     * one of the `DNS error codes`.\n     * @since v0.1.16\n     */\n    export function reverse(ip: string, callback: (err: NodeJS.ErrnoException | null, hostnames: string[]) => void): void;\n    /**\n     * Sets the IP address and port of servers to be used when performing DNS\n     * resolution. The `servers` argument is an array of [RFC 5952](https://tools.ietf.org/html/rfc5952#section-6) formatted\n     * addresses. If the port is the IANA default DNS port (53) it can be omitted.\n     *\n     * ```js\n     * dns.setServers([\n     *   '4.4.4.4',\n     *   '[2001:4860:4860::8888]',\n     *   '4.4.4.4:1053',\n     *   '[2001:4860:4860::8888]:1053',\n     * ]);\n     * ```\n     *\n     * An error will be thrown if an invalid address is provided.\n     *\n     * The `dns.setServers()` method must not be called while a DNS query is in\n     * progress.\n     *\n     * The {@link setServers} method affects only {@link resolve},`dns.resolve*()` and {@link reverse} (and specifically _not_ {@link lookup}).\n     *\n     * This method works much like [resolve.conf](https://man7.org/linux/man-pages/man5/resolv.conf.5.html).\n     * That is, if attempting to resolve with the first server provided results in a`NOTFOUND` error, the `resolve()` method will _not_ attempt to resolve with\n     * subsequent servers provided. Fallback DNS servers will only be used if the\n     * earlier ones time out or result in some other error.\n     * @since v0.11.3\n     * @param servers array of `RFC 5952` formatted addresses\n     */\n    export function setServers(servers: ReadonlyArray<string>): void;\n    /**\n     * Returns an array of IP address strings, formatted according to [RFC 5952](https://tools.ietf.org/html/rfc5952#section-6),\n     * that are currently configured for DNS resolution. A string will include a port\n     * section if a custom port is used.\n     *\n     * ```js\n     * [\n     *   '4.4.4.4',\n     *   '2001:4860:4860::8888',\n     *   '4.4.4.4:1053',\n     *   '[2001:4860:4860::8888]:1053',\n     * ]\n     * ```\n     * @since v0.11.3\n     */\n    export function getServers(): string[];\n    /**\n     * Set the default value of `verbatim` in {@link lookup}. The value could be:\n     * - `ipv4first`: sets default `verbatim` `false`.\n     * - `verbatim`: sets default `verbatim` `true`.\n     *\n     * The default is `ipv4first` and {@link setDefaultResultOrder} have higher priority than `--dns-result-order`.\n     * When using worker threads, {@link setDefaultResultOrder} from the main thread won't affect the default dns orders in workers.\n     * @since v14.18.0\n     * @param order must be 'ipv4first' or 'verbatim'.\n     */\n    export function setDefaultResultOrder(order: 'ipv4first' | 'verbatim'): void;\n    // Error codes\n    export const NODATA: string;\n    export const FORMERR: string;\n    export const SERVFAIL: string;\n    export const NOTFOUND: string;\n    export const NOTIMP: string;\n    export const REFUSED: string;\n    export const BADQUERY: string;\n    export const BADNAME: string;\n    export const BADFAMILY: string;\n    export const BADRESP: string;\n    export const CONNREFUSED: string;\n    export const TIMEOUT: string;\n    export const EOF: string;\n    export const FILE: string;\n    export const NOMEM: string;\n    export const DESTRUCTION: string;\n    export const BADSTR: string;\n    export const BADFLAGS: string;\n    export const NONAME: string;\n    export const BADHINTS: string;\n    export const NOTINITIALIZED: string;\n    export const LOADIPHLPAPI: string;\n    export const ADDRGETNETWORKPARAMS: string;\n    export const CANCELLED: string;\n    export interface ResolverOptions {\n        timeout?: number | undefined;\n        /**\n         * @default 4\n         */\n        tries?: number;\n    }\n    /**\n     * An independent resolver for DNS requests.\n     *\n     * Creating a new resolver uses the default server settings. Setting\n     * the servers used for a resolver using `resolver.setServers()` does not affect\n     * other resolvers:\n     *\n     * ```js\n     * const { Resolver } = require('dns');\n     * const resolver = new Resolver();\n     * resolver.setServers(['4.4.4.4']);\n     *\n     * // This request will use the server at 4.4.4.4, independent of global settings.\n     * resolver.resolve4('example.org', (err, addresses) => {\n     *   // ...\n     * });\n     * ```\n     *\n     * The following methods from the `dns` module are available:\n     *\n     * * `resolver.getServers()`\n     * * `resolver.resolve()`\n     * * `resolver.resolve4()`\n     * * `resolver.resolve6()`\n     * * `resolver.resolveAny()`\n     * * `resolver.resolveCaa()`\n     * * `resolver.resolveCname()`\n     * * `resolver.resolveMx()`\n     * * `resolver.resolveNaptr()`\n     * * `resolver.resolveNs()`\n     * * `resolver.resolvePtr()`\n     * * `resolver.resolveSoa()`\n     * * `resolver.resolveSrv()`\n     * * `resolver.resolveTxt()`\n     * * `resolver.reverse()`\n     * * `resolver.setServers()`\n     * @since v8.3.0\n     */\n    export class Resolver {\n        constructor(options?: ResolverOptions);\n        /**\n         * Cancel all outstanding DNS queries made by this resolver. The corresponding\n         * callbacks will be called with an error with code `ECANCELLED`.\n         * @since v8.3.0\n         */\n        cancel(): void;\n        getServers: typeof getServers;\n        resolve: typeof resolve;\n        resolve4: typeof resolve4;\n        resolve6: typeof resolve6;\n        resolveAny: typeof resolveAny;\n        resolveCname: typeof resolveCname;\n        resolveMx: typeof resolveMx;\n        resolveNaptr: typeof resolveNaptr;\n        resolveNs: typeof resolveNs;\n        resolvePtr: typeof resolvePtr;\n        resolveSoa: typeof resolveSoa;\n        resolveSrv: typeof resolveSrv;\n        resolveTxt: typeof resolveTxt;\n        reverse: typeof reverse;\n        /**\n         * The resolver instance will send its requests from the specified IP address.\n         * This allows programs to specify outbound interfaces when used on multi-homed\n         * systems.\n         *\n         * If a v4 or v6 address is not specified, it is set to the default, and the\n         * operating system will choose a local address automatically.\n         *\n         * The resolver will use the v4 local address when making requests to IPv4 DNS\n         * servers, and the v6 local address when making requests to IPv6 DNS servers.\n         * The `rrtype` of resolution requests has no impact on the local address used.\n         * @since v15.1.0\n         * @param [ipv4='0.0.0.0'] A string representation of an IPv4 address.\n         * @param [ipv6='::0'] A string representation of an IPv6 address.\n         */\n        setLocalAddress(ipv4?: string, ipv6?: string): void;\n        setServers: typeof setServers;\n    }\n    export { dnsPromises as promises };\n}\ndeclare module 'node:dns' {\n    export * from 'dns';\n}\n"
    },
    {
      "path": "/node_modules/@types/node/dns/promises.d.ts",
      "content": "/**\n * The `dns.promises` API provides an alternative set of asynchronous DNS methods\n * that return `Promise` objects rather than using callbacks. The API is accessible\n * via `require('dns').promises` or `require('dns/promises')`.\n * @since v10.6.0\n */\ndeclare module 'dns/promises' {\n    import {\n        LookupAddress,\n        LookupOneOptions,\n        LookupAllOptions,\n        LookupOptions,\n        AnyRecord,\n        CaaRecord,\n        MxRecord,\n        NaptrRecord,\n        SoaRecord,\n        SrvRecord,\n        ResolveWithTtlOptions,\n        RecordWithTtl,\n        ResolveOptions,\n        ResolverOptions,\n    } from 'node:dns';\n    /**\n     * Returns an array of IP address strings, formatted according to [RFC 5952](https://tools.ietf.org/html/rfc5952#section-6),\n     * that are currently configured for DNS resolution. A string will include a port\n     * section if a custom port is used.\n     *\n     * ```js\n     * [\n     *   '4.4.4.4',\n     *   '2001:4860:4860::8888',\n     *   '4.4.4.4:1053',\n     *   '[2001:4860:4860::8888]:1053',\n     * ]\n     * ```\n     * @since v10.6.0\n     */\n    function getServers(): string[];\n    /**\n     * Resolves a host name (e.g. `'nodejs.org'`) into the first found A (IPv4) or\n     * AAAA (IPv6) record. All `option` properties are optional. If `options` is an\n     * integer, then it must be `4` or `6` – if `options` is not provided, then IPv4\n     * and IPv6 addresses are both returned if found.\n     *\n     * With the `all` option set to `true`, the `Promise` is resolved with `addresses`being an array of objects with the properties `address` and `family`.\n     *\n     * On error, the `Promise` is rejected with an `Error` object, where `err.code`is the error code.\n     * Keep in mind that `err.code` will be set to `'ENOTFOUND'` not only when\n     * the host name does not exist but also when the lookup fails in other ways\n     * such as no available file descriptors.\n     *\n     * `dnsPromises.lookup()` does not necessarily have anything to do with the DNS\n     * protocol. The implementation uses an operating system facility that can\n     * associate names with addresses, and vice versa. This implementation can have\n     * subtle but important consequences on the behavior of any Node.js program. Please\n     * take some time to consult the `Implementation considerations section` before\n     * using `dnsPromises.lookup()`.\n     *\n     * Example usage:\n     *\n     * ```js\n     * const dns = require('dns');\n     * const dnsPromises = dns.promises;\n     * const options = {\n     *   family: 6,\n     *   hints: dns.ADDRCONFIG | dns.V4MAPPED,\n     * };\n     *\n     * dnsPromises.lookup('example.com', options).then((result) => {\n     *   console.log('address: %j family: IPv%s', result.address, result.family);\n     *   // address: \"2606:2800:220:1:248:1893:25c8:1946\" family: IPv6\n     * });\n     *\n     * // When options.all is true, the result will be an Array.\n     * options.all = true;\n     * dnsPromises.lookup('example.com', options).then((result) => {\n     *   console.log('addresses: %j', result);\n     *   // addresses: [{\"address\":\"2606:2800:220:1:248:1893:25c8:1946\",\"family\":6}]\n     * });\n     * ```\n     * @since v10.6.0\n     */\n    function lookup(hostname: string, family: number): Promise<LookupAddress>;\n    function lookup(hostname: string, options: LookupOneOptions): Promise<LookupAddress>;\n    function lookup(hostname: string, options: LookupAllOptions): Promise<LookupAddress[]>;\n    function lookup(hostname: string, options: LookupOptions): Promise<LookupAddress | LookupAddress[]>;\n    function lookup(hostname: string): Promise<LookupAddress>;\n    /**\n     * Resolves the given `address` and `port` into a host name and service using\n     * the operating system's underlying `getnameinfo` implementation.\n     *\n     * If `address` is not a valid IP address, a `TypeError` will be thrown.\n     * The `port` will be coerced to a number. If it is not a legal port, a `TypeError`will be thrown.\n     *\n     * On error, the `Promise` is rejected with an `Error` object, where `err.code`is the error code.\n     *\n     * ```js\n     * const dnsPromises = require('dns').promises;\n     * dnsPromises.lookupService('127.0.0.1', 22).then((result) => {\n     *   console.log(result.hostname, result.service);\n     *   // Prints: localhost ssh\n     * });\n     * ```\n     * @since v10.6.0\n     */\n    function lookupService(\n        address: string,\n        port: number\n    ): Promise<{\n        hostname: string;\n        service: string;\n    }>;\n    /**\n     * Uses the DNS protocol to resolve a host name (e.g. `'nodejs.org'`) into an array\n     * of the resource records. When successful, the `Promise` is resolved with an\n     * array of resource records. The type and structure of individual results vary\n     * based on `rrtype`:\n     *\n     * <omitted>\n     *\n     * On error, the `Promise` is rejected with an `Error` object, where `err.code`is one of the `DNS error codes`.\n     * @since v10.6.0\n     * @param hostname Host name to resolve.\n     * @param [rrtype='A'] Resource record type.\n     */\n    function resolve(hostname: string): Promise<string[]>;\n    function resolve(hostname: string, rrtype: 'A'): Promise<string[]>;\n    function resolve(hostname: string, rrtype: 'AAAA'): Promise<string[]>;\n    function resolve(hostname: string, rrtype: 'ANY'): Promise<AnyRecord[]>;\n    function resolve(hostname: string, rrtype: 'CAA'): Promise<CaaRecord[]>;\n    function resolve(hostname: string, rrtype: 'CNAME'): Promise<string[]>;\n    function resolve(hostname: string, rrtype: 'MX'): Promise<MxRecord[]>;\n    function resolve(hostname: string, rrtype: 'NAPTR'): Promise<NaptrRecord[]>;\n    function resolve(hostname: string, rrtype: 'NS'): Promise<string[]>;\n    function resolve(hostname: string, rrtype: 'PTR'): Promise<string[]>;\n    function resolve(hostname: string, rrtype: 'SOA'): Promise<SoaRecord>;\n    function resolve(hostname: string, rrtype: 'SRV'): Promise<SrvRecord[]>;\n    function resolve(hostname: string, rrtype: 'TXT'): Promise<string[][]>;\n    function resolve(hostname: string, rrtype: string): Promise<string[] | MxRecord[] | NaptrRecord[] | SoaRecord | SrvRecord[] | string[][] | AnyRecord[]>;\n    /**\n     * Uses the DNS protocol to resolve IPv4 addresses (`A` records) for the`hostname`. On success, the `Promise` is resolved with an array of IPv4\n     * addresses (e.g. `['74.125.79.104', '74.125.79.105', '74.125.79.106']`).\n     * @since v10.6.0\n     * @param hostname Host name to resolve.\n     */\n    function resolve4(hostname: string): Promise<string[]>;\n    function resolve4(hostname: string, options: ResolveWithTtlOptions): Promise<RecordWithTtl[]>;\n    function resolve4(hostname: string, options: ResolveOptions): Promise<string[] | RecordWithTtl[]>;\n    /**\n     * Uses the DNS protocol to resolve IPv6 addresses (`AAAA` records) for the`hostname`. On success, the `Promise` is resolved with an array of IPv6\n     * addresses.\n     * @since v10.6.0\n     * @param hostname Host name to resolve.\n     */\n    function resolve6(hostname: string): Promise<string[]>;\n    function resolve6(hostname: string, options: ResolveWithTtlOptions): Promise<RecordWithTtl[]>;\n    function resolve6(hostname: string, options: ResolveOptions): Promise<string[] | RecordWithTtl[]>;\n    /**\n     * Uses the DNS protocol to resolve all records (also known as `ANY` or `*` query).\n     * On success, the `Promise` is resolved with an array containing various types of\n     * records. Each object has a property `type` that indicates the type of the\n     * current record. And depending on the `type`, additional properties will be\n     * present on the object:\n     *\n     * <omitted>\n     *\n     * Here is an example of the result object:\n     *\n     * ```js\n     * [ { type: 'A', address: '127.0.0.1', ttl: 299 },\n     *   { type: 'CNAME', value: 'example.com' },\n     *   { type: 'MX', exchange: 'alt4.aspmx.l.example.com', priority: 50 },\n     *   { type: 'NS', value: 'ns1.example.com' },\n     *   { type: 'TXT', entries: [ 'v=spf1 include:_spf.example.com ~all' ] },\n     *   { type: 'SOA',\n     *     nsname: 'ns1.example.com',\n     *     hostmaster: 'admin.example.com',\n     *     serial: 156696742,\n     *     refresh: 900,\n     *     retry: 900,\n     *     expire: 1800,\n     *     minttl: 60 } ]\n     * ```\n     * @since v10.6.0\n     */\n    function resolveAny(hostname: string): Promise<AnyRecord[]>;\n    /**\n     * Uses the DNS protocol to resolve `CAA` records for the `hostname`. On success,\n     * the `Promise` is resolved with an array of objects containing available\n     * certification authority authorization records available for the `hostname`(e.g. `[{critical: 0, iodef: 'mailto:pki@example.com'},{critical: 128, issue: 'pki.example.com'}]`).\n     * @since v15.0.0\n     */\n    function resolveCaa(hostname: string): Promise<CaaRecord[]>;\n    /**\n     * Uses the DNS protocol to resolve `CNAME` records for the `hostname`. On success,\n     * the `Promise` is resolved with an array of canonical name records available for\n     * the `hostname` (e.g. `['bar.example.com']`).\n     * @since v10.6.0\n     */\n    function resolveCname(hostname: string): Promise<string[]>;\n    /**\n     * Uses the DNS protocol to resolve mail exchange records (`MX` records) for the`hostname`. On success, the `Promise` is resolved with an array of objects\n     * containing both a `priority` and `exchange` property (e.g.`[{priority: 10, exchange: 'mx.example.com'}, ...]`).\n     * @since v10.6.0\n     */\n    function resolveMx(hostname: string): Promise<MxRecord[]>;\n    /**\n     * Uses the DNS protocol to resolve regular expression based records (`NAPTR`records) for the `hostname`. On success, the `Promise` is resolved with an array\n     * of objects with the following properties:\n     *\n     * * `flags`\n     * * `service`\n     * * `regexp`\n     * * `replacement`\n     * * `order`\n     * * `preference`\n     *\n     * ```js\n     * {\n     *   flags: 's',\n     *   service: 'SIP+D2U',\n     *   regexp: '',\n     *   replacement: '_sip._udp.example.com',\n     *   order: 30,\n     *   preference: 100\n     * }\n     * ```\n     * @since v10.6.0\n     */\n    function resolveNaptr(hostname: string): Promise<NaptrRecord[]>;\n    /**\n     * Uses the DNS protocol to resolve name server records (`NS` records) for the`hostname`. On success, the `Promise` is resolved with an array of name server\n     * records available for `hostname` (e.g.`['ns1.example.com', 'ns2.example.com']`).\n     * @since v10.6.0\n     */\n    function resolveNs(hostname: string): Promise<string[]>;\n    /**\n     * Uses the DNS protocol to resolve pointer records (`PTR` records) for the`hostname`. On success, the `Promise` is resolved with an array of strings\n     * containing the reply records.\n     * @since v10.6.0\n     */\n    function resolvePtr(hostname: string): Promise<string[]>;\n    /**\n     * Uses the DNS protocol to resolve a start of authority record (`SOA` record) for\n     * the `hostname`. On success, the `Promise` is resolved with an object with the\n     * following properties:\n     *\n     * * `nsname`\n     * * `hostmaster`\n     * * `serial`\n     * * `refresh`\n     * * `retry`\n     * * `expire`\n     * * `minttl`\n     *\n     * ```js\n     * {\n     *   nsname: 'ns.example.com',\n     *   hostmaster: 'root.example.com',\n     *   serial: 2013101809,\n     *   refresh: 10000,\n     *   retry: 2400,\n     *   expire: 604800,\n     *   minttl: 3600\n     * }\n     * ```\n     * @since v10.6.0\n     */\n    function resolveSoa(hostname: string): Promise<SoaRecord>;\n    /**\n     * Uses the DNS protocol to resolve service records (`SRV` records) for the`hostname`. On success, the `Promise` is resolved with an array of objects with\n     * the following properties:\n     *\n     * * `priority`\n     * * `weight`\n     * * `port`\n     * * `name`\n     *\n     * ```js\n     * {\n     *   priority: 10,\n     *   weight: 5,\n     *   port: 21223,\n     *   name: 'service.example.com'\n     * }\n     * ```\n     * @since v10.6.0\n     */\n    function resolveSrv(hostname: string): Promise<SrvRecord[]>;\n    /**\n     * Uses the DNS protocol to resolve text queries (`TXT` records) for the`hostname`. On success, the `Promise` is resolved with a two-dimensional array\n     * of the text records available for `hostname` (e.g.`[ ['v=spf1 ip4:0.0.0.0 ', '~all' ] ]`). Each sub-array contains TXT chunks of\n     * one record. Depending on the use case, these could be either joined together or\n     * treated separately.\n     * @since v10.6.0\n     */\n    function resolveTxt(hostname: string): Promise<string[][]>;\n    /**\n     * Performs a reverse DNS query that resolves an IPv4 or IPv6 address to an\n     * array of host names.\n     *\n     * On error, the `Promise` is rejected with an `Error` object, where `err.code`is one of the `DNS error codes`.\n     * @since v10.6.0\n     */\n    function reverse(ip: string): Promise<string[]>;\n    /**\n     * Sets the IP address and port of servers to be used when performing DNS\n     * resolution. The `servers` argument is an array of [RFC 5952](https://tools.ietf.org/html/rfc5952#section-6) formatted\n     * addresses. If the port is the IANA default DNS port (53) it can be omitted.\n     *\n     * ```js\n     * dnsPromises.setServers([\n     *   '4.4.4.4',\n     *   '[2001:4860:4860::8888]',\n     *   '4.4.4.4:1053',\n     *   '[2001:4860:4860::8888]:1053',\n     * ]);\n     * ```\n     *\n     * An error will be thrown if an invalid address is provided.\n     *\n     * The `dnsPromises.setServers()` method must not be called while a DNS query is in\n     * progress.\n     *\n     * This method works much like [resolve.conf](https://man7.org/linux/man-pages/man5/resolv.conf.5.html).\n     * That is, if attempting to resolve with the first server provided results in a`NOTFOUND` error, the `resolve()` method will _not_ attempt to resolve with\n     * subsequent servers provided. Fallback DNS servers will only be used if the\n     * earlier ones time out or result in some other error.\n     * @since v10.6.0\n     * @param servers array of `RFC 5952` formatted addresses\n     */\n    function setServers(servers: ReadonlyArray<string>): void;\n    /**\n     * Set the default value of `verbatim` in {@link lookup}. The value could be:\n     * - `ipv4first`: sets default `verbatim` `false`.\n     * - `verbatim`: sets default `verbatim` `true`.\n     *\n     * The default is `ipv4first` and {@link setDefaultResultOrder} have higher priority than `--dns-result-order`.\n     * When using worker threads, {@link setDefaultResultOrder} from the main thread won't affect the default dns orders in workers.\n     * @since v14.18.0\n     * @param order must be 'ipv4first' or 'verbatim'.\n     */\n    function setDefaultResultOrder(order: 'ipv4first' | 'verbatim'): void;\n    class Resolver {\n        constructor(options?: ResolverOptions);\n        cancel(): void;\n        getServers: typeof getServers;\n        resolve: typeof resolve;\n        resolve4: typeof resolve4;\n        resolve6: typeof resolve6;\n        resolveAny: typeof resolveAny;\n        resolveCname: typeof resolveCname;\n        resolveMx: typeof resolveMx;\n        resolveNaptr: typeof resolveNaptr;\n        resolveNs: typeof resolveNs;\n        resolvePtr: typeof resolvePtr;\n        resolveSoa: typeof resolveSoa;\n        resolveSrv: typeof resolveSrv;\n        resolveTxt: typeof resolveTxt;\n        reverse: typeof reverse;\n        setLocalAddress(ipv4?: string, ipv6?: string): void;\n        setServers: typeof setServers;\n    }\n}\ndeclare module 'node:dns/promises' {\n    export * from 'dns/promises';\n}\n"
    },
    {
      "path": "/node_modules/@types/node/domain.d.ts",
      "content": "/**\n * **This module is pending deprecation.** Once a replacement API has been\n * finalized, this module will be fully deprecated. Most developers should\n * **not** have cause to use this module. Users who absolutely must have\n * the functionality that domains provide may rely on it for the time being\n * but should expect to have to migrate to a different solution\n * in the future.\n *\n * Domains provide a way to handle multiple different IO operations as a\n * single group. If any of the event emitters or callbacks registered to a\n * domain emit an `'error'` event, or throw an error, then the domain object\n * will be notified, rather than losing the context of the error in the`process.on('uncaughtException')` handler, or causing the program to\n * exit immediately with an error code.\n * @deprecated Since v1.4.2 - Deprecated\n * @see [source](https://github.com/nodejs/node/blob/v16.9.0/lib/domain.js)\n */\ndeclare module 'domain' {\n    import EventEmitter = require('node:events');\n    /**\n     * The `Domain` class encapsulates the functionality of routing errors and\n     * uncaught exceptions to the active `Domain` object.\n     *\n     * To handle the errors that it catches, listen to its `'error'` event.\n     */\n    class Domain extends EventEmitter {\n        /**\n         * An array of timers and event emitters that have been explicitly added\n         * to the domain.\n         */\n        members: Array<EventEmitter | NodeJS.Timer>;\n        /**\n         * The `enter()` method is plumbing used by the `run()`, `bind()`, and`intercept()` methods to set the active domain. It sets `domain.active` and`process.domain` to the domain, and implicitly\n         * pushes the domain onto the domain\n         * stack managed by the domain module (see {@link exit} for details on the\n         * domain stack). The call to `enter()` delimits the beginning of a chain of\n         * asynchronous calls and I/O operations bound to a domain.\n         *\n         * Calling `enter()` changes only the active domain, and does not alter the domain\n         * itself. `enter()` and `exit()` can be called an arbitrary number of times on a\n         * single domain.\n         */\n        enter(): void;\n        /**\n         * The `exit()` method exits the current domain, popping it off the domain stack.\n         * Any time execution is going to switch to the context of a different chain of\n         * asynchronous calls, it's important to ensure that the current domain is exited.\n         * The call to `exit()` delimits either the end of or an interruption to the chain\n         * of asynchronous calls and I/O operations bound to a domain.\n         *\n         * If there are multiple, nested domains bound to the current execution context,`exit()` will exit any domains nested within this domain.\n         *\n         * Calling `exit()` changes only the active domain, and does not alter the domain\n         * itself. `enter()` and `exit()` can be called an arbitrary number of times on a\n         * single domain.\n         */\n        exit(): void;\n        /**\n         * Run the supplied function in the context of the domain, implicitly\n         * binding all event emitters, timers, and lowlevel requests that are\n         * created in that context. Optionally, arguments can be passed to\n         * the function.\n         *\n         * This is the most basic way to use a domain.\n         *\n         * ```js\n         * const domain = require('domain');\n         * const fs = require('fs');\n         * const d = domain.create();\n         * d.on('error', (er) => {\n         *   console.error('Caught error!', er);\n         * });\n         * d.run(() => {\n         *   process.nextTick(() => {\n         *     setTimeout(() => { // Simulating some various async stuff\n         *       fs.open('non-existent file', 'r', (er, fd) => {\n         *         if (er) throw er;\n         *         // proceed...\n         *       });\n         *     }, 100);\n         *   });\n         * });\n         * ```\n         *\n         * In this example, the `d.on('error')` handler will be triggered, rather\n         * than crashing the program.\n         */\n        run<T>(fn: (...args: any[]) => T, ...args: any[]): T;\n        /**\n         * Explicitly adds an emitter to the domain. If any event handlers called by\n         * the emitter throw an error, or if the emitter emits an `'error'` event, it\n         * will be routed to the domain's `'error'` event, just like with implicit\n         * binding.\n         *\n         * This also works with timers that are returned from `setInterval()` and `setTimeout()`. If their callback function throws, it will be caught by\n         * the domain `'error'` handler.\n         *\n         * If the Timer or `EventEmitter` was already bound to a domain, it is removed\n         * from that one, and bound to this one instead.\n         * @param emitter emitter or timer to be added to the domain\n         */\n        add(emitter: EventEmitter | NodeJS.Timer): void;\n        /**\n         * The opposite of {@link add}. Removes domain handling from the\n         * specified emitter.\n         * @param emitter emitter or timer to be removed from the domain\n         */\n        remove(emitter: EventEmitter | NodeJS.Timer): void;\n        /**\n         * The returned function will be a wrapper around the supplied callback\n         * function. When the returned function is called, any errors that are\n         * thrown will be routed to the domain's `'error'` event.\n         *\n         * ```js\n         * const d = domain.create();\n         *\n         * function readSomeFile(filename, cb) {\n         *   fs.readFile(filename, 'utf8', d.bind((er, data) => {\n         *     // If this throws, it will also be passed to the domain.\n         *     return cb(er, data ? JSON.parse(data) : null);\n         *   }));\n         * }\n         *\n         * d.on('error', (er) => {\n         *   // An error occurred somewhere. If we throw it now, it will crash the program\n         *   // with the normal line number and stack message.\n         * });\n         * ```\n         * @param callback The callback function\n         * @return The bound function\n         */\n        bind<T extends Function>(callback: T): T;\n        /**\n         * This method is almost identical to {@link bind}. However, in\n         * addition to catching thrown errors, it will also intercept `Error` objects sent as the first argument to the function.\n         *\n         * In this way, the common `if (err) return callback(err);` pattern can be replaced\n         * with a single error handler in a single place.\n         *\n         * ```js\n         * const d = domain.create();\n         *\n         * function readSomeFile(filename, cb) {\n         *   fs.readFile(filename, 'utf8', d.intercept((data) => {\n         *     // Note, the first argument is never passed to the\n         *     // callback since it is assumed to be the 'Error' argument\n         *     // and thus intercepted by the domain.\n         *\n         *     // If this throws, it will also be passed to the domain\n         *     // so the error-handling logic can be moved to the 'error'\n         *     // event on the domain instead of being repeated throughout\n         *     // the program.\n         *     return cb(null, JSON.parse(data));\n         *   }));\n         * }\n         *\n         * d.on('error', (er) => {\n         *   // An error occurred somewhere. If we throw it now, it will crash the program\n         *   // with the normal line number and stack message.\n         * });\n         * ```\n         * @param callback The callback function\n         * @return The intercepted function\n         */\n        intercept<T extends Function>(callback: T): T;\n    }\n    function create(): Domain;\n}\ndeclare module 'node:domain' {\n    export * from 'domain';\n}\n"
    },
    {
      "path": "/node_modules/@types/node/events.d.ts",
      "content": "/**\n * Much of the Node.js core API is built around an idiomatic asynchronous\n * event-driven architecture in which certain kinds of objects (called \"emitters\")\n * emit named events that cause `Function` objects (\"listeners\") to be called.\n *\n * For instance: a `net.Server` object emits an event each time a peer\n * connects to it; a `fs.ReadStream` emits an event when the file is opened;\n * a `stream` emits an event whenever data is available to be read.\n *\n * All objects that emit events are instances of the `EventEmitter` class. These\n * objects expose an `eventEmitter.on()` function that allows one or more\n * functions to be attached to named events emitted by the object. Typically,\n * event names are camel-cased strings but any valid JavaScript property key\n * can be used.\n *\n * When the `EventEmitter` object emits an event, all of the functions attached\n * to that specific event are called _synchronously_. Any values returned by the\n * called listeners are _ignored_ and discarded.\n *\n * The following example shows a simple `EventEmitter` instance with a single\n * listener. The `eventEmitter.on()` method is used to register listeners, while\n * the `eventEmitter.emit()` method is used to trigger the event.\n *\n * ```js\n * const EventEmitter = require('events');\n *\n * class MyEmitter extends EventEmitter {}\n *\n * const myEmitter = new MyEmitter();\n * myEmitter.on('event', () => {\n *   console.log('an event occurred!');\n * });\n * myEmitter.emit('event');\n * ```\n * @see [source](https://github.com/nodejs/node/blob/v16.9.0/lib/events.js)\n */\ndeclare module 'events' {\n    interface EventEmitterOptions {\n        /**\n         * Enables automatic capturing of promise rejection.\n         */\n        captureRejections?: boolean | undefined;\n    }\n    interface NodeEventTarget {\n        once(eventName: string | symbol, listener: (...args: any[]) => void): this;\n    }\n    interface DOMEventTarget {\n        addEventListener(\n            eventName: string,\n            listener: (...args: any[]) => void,\n            opts?: {\n                once: boolean;\n            }\n        ): any;\n    }\n    interface StaticEventEmitterOptions {\n        signal?: AbortSignal | undefined;\n    }\n    interface EventEmitter extends NodeJS.EventEmitter {}\n    /**\n     * The `EventEmitter` class is defined and exposed by the `events` module:\n     *\n     * ```js\n     * const EventEmitter = require('events');\n     * ```\n     *\n     * All `EventEmitter`s emit the event `'newListener'` when new listeners are\n     * added and `'removeListener'` when existing listeners are removed.\n     *\n     * It supports the following option:\n     * @since v0.1.26\n     */\n    class EventEmitter {\n        constructor(options?: EventEmitterOptions);\n        /**\n         * Creates a `Promise` that is fulfilled when the `EventEmitter` emits the given\n         * event or that is rejected if the `EventEmitter` emits `'error'` while waiting.\n         * The `Promise` will resolve with an array of all the arguments emitted to the\n         * given event.\n         *\n         * This method is intentionally generic and works with the web platform [EventTarget](https://dom.spec.whatwg.org/#interface-eventtarget) interface, which has no special`'error'` event\n         * semantics and does not listen to the `'error'` event.\n         *\n         * ```js\n         * const { once, EventEmitter } = require('events');\n         *\n         * async function run() {\n         *   const ee = new EventEmitter();\n         *\n         *   process.nextTick(() => {\n         *     ee.emit('myevent', 42);\n         *   });\n         *\n         *   const [value] = await once(ee, 'myevent');\n         *   console.log(value);\n         *\n         *   const err = new Error('kaboom');\n         *   process.nextTick(() => {\n         *     ee.emit('error', err);\n         *   });\n         *\n         *   try {\n         *     await once(ee, 'myevent');\n         *   } catch (err) {\n         *     console.log('error happened', err);\n         *   }\n         * }\n         *\n         * run();\n         * ```\n         *\n         * The special handling of the `'error'` event is only used when `events.once()`is used to wait for another event. If `events.once()` is used to wait for the\n         * '`error'` event itself, then it is treated as any other kind of event without\n         * special handling:\n         *\n         * ```js\n         * const { EventEmitter, once } = require('events');\n         *\n         * const ee = new EventEmitter();\n         *\n         * once(ee, 'error')\n         *   .then(([err]) => console.log('ok', err.message))\n         *   .catch((err) => console.log('error', err.message));\n         *\n         * ee.emit('error', new Error('boom'));\n         *\n         * // Prints: ok boom\n         * ```\n         *\n         * An `AbortSignal` can be used to cancel waiting for the event:\n         *\n         * ```js\n         * const { EventEmitter, once } = require('events');\n         *\n         * const ee = new EventEmitter();\n         * const ac = new AbortController();\n         *\n         * async function foo(emitter, event, signal) {\n         *   try {\n         *     await once(emitter, event, { signal });\n         *     console.log('event emitted!');\n         *   } catch (error) {\n         *     if (error.name === 'AbortError') {\n         *       console.error('Waiting for the event was canceled!');\n         *     } else {\n         *       console.error('There was an error', error.message);\n         *     }\n         *   }\n         * }\n         *\n         * foo(ee, 'foo', ac.signal);\n         * ac.abort(); // Abort waiting for the event\n         * ee.emit('foo'); // Prints: Waiting for the event was canceled!\n         * ```\n         * @since v11.13.0, v10.16.0\n         */\n        static once(emitter: NodeEventTarget, eventName: string | symbol, options?: StaticEventEmitterOptions): Promise<any[]>;\n        static once(emitter: DOMEventTarget, eventName: string, options?: StaticEventEmitterOptions): Promise<any[]>;\n        /**\n         * ```js\n         * const { on, EventEmitter } = require('events');\n         *\n         * (async () => {\n         *   const ee = new EventEmitter();\n         *\n         *   // Emit later on\n         *   process.nextTick(() => {\n         *     ee.emit('foo', 'bar');\n         *     ee.emit('foo', 42);\n         *   });\n         *\n         *   for await (const event of on(ee, 'foo')) {\n         *     // The execution of this inner block is synchronous and it\n         *     // processes one event at a time (even with await). Do not use\n         *     // if concurrent execution is required.\n         *     console.log(event); // prints ['bar'] [42]\n         *   }\n         *   // Unreachable here\n         * })();\n         * ```\n         *\n         * Returns an `AsyncIterator` that iterates `eventName` events. It will throw\n         * if the `EventEmitter` emits `'error'`. It removes all listeners when\n         * exiting the loop. The `value` returned by each iteration is an array\n         * composed of the emitted event arguments.\n         *\n         * An `AbortSignal` can be used to cancel waiting on events:\n         *\n         * ```js\n         * const { on, EventEmitter } = require('events');\n         * const ac = new AbortController();\n         *\n         * (async () => {\n         *   const ee = new EventEmitter();\n         *\n         *   // Emit later on\n         *   process.nextTick(() => {\n         *     ee.emit('foo', 'bar');\n         *     ee.emit('foo', 42);\n         *   });\n         *\n         *   for await (const event of on(ee, 'foo', { signal: ac.signal })) {\n         *     // The execution of this inner block is synchronous and it\n         *     // processes one event at a time (even with await). Do not use\n         *     // if concurrent execution is required.\n         *     console.log(event); // prints ['bar'] [42]\n         *   }\n         *   // Unreachable here\n         * })();\n         *\n         * process.nextTick(() => ac.abort());\n         * ```\n         * @since v13.6.0, v12.16.0\n         * @param eventName The name of the event being listened for\n         * @return that iterates `eventName` events emitted by the `emitter`\n         */\n        static on(emitter: NodeJS.EventEmitter, eventName: string, options?: StaticEventEmitterOptions): AsyncIterableIterator<any>;\n        /**\n         * A class method that returns the number of listeners for the given `eventName`registered on the given `emitter`.\n         *\n         * ```js\n         * const { EventEmitter, listenerCount } = require('events');\n         * const myEmitter = new EventEmitter();\n         * myEmitter.on('event', () => {});\n         * myEmitter.on('event', () => {});\n         * console.log(listenerCount(myEmitter, 'event'));\n         * // Prints: 2\n         * ```\n         * @since v0.9.12\n         * @deprecated Since v3.2.0 - Use `listenerCount` instead.\n         * @param emitter The emitter to query\n         * @param eventName The event name\n         */\n        static listenerCount(emitter: NodeJS.EventEmitter, eventName: string | symbol): number;\n        /**\n         * Returns a copy of the array of listeners for the event named `eventName`.\n         *\n         * For `EventEmitter`s this behaves exactly the same as calling `.listeners` on\n         * the emitter.\n         *\n         * For `EventTarget`s this is the only way to get the event listeners for the\n         * event target. This is useful for debugging and diagnostic purposes.\n         *\n         * ```js\n         * const { getEventListeners, EventEmitter } = require('events');\n         *\n         * {\n         *   const ee = new EventEmitter();\n         *   const listener = () => console.log('Events are fun');\n         *   ee.on('foo', listener);\n         *   getEventListeners(ee, 'foo'); // [listener]\n         * }\n         * {\n         *   const et = new EventTarget();\n         *   const listener = () => console.log('Events are fun');\n         *   et.addEventListener('foo', listener);\n         *   getEventListeners(et, 'foo'); // [listener]\n         * }\n         * ```\n         * @since v15.2.0\n         */\n        static getEventListeners(emitter: DOMEventTarget | NodeJS.EventEmitter, name: string | symbol): Function[];\n        /**\n         * ```js\n         * const {\n         *   setMaxListeners,\n         *   EventEmitter\n         * } = require('events');\n         *\n         * const target = new EventTarget();\n         * const emitter = new EventEmitter();\n         *\n         * setMaxListeners(5, target, emitter);\n         * ```\n         * @since v15.4.0\n         * @param n A non-negative number. The maximum number of listeners per `EventTarget` event.\n         * @param eventsTargets Zero or more {EventTarget} or {EventEmitter} instances. If none are specified, `n` is set as the default max for all newly created {EventTarget} and {EventEmitter}\n         * objects.\n         */\n        static setMaxListeners(n?: number, ...eventTargets: Array<DOMEventTarget | NodeJS.EventEmitter>): void;\n        /**\n         * This symbol shall be used to install a listener for only monitoring `'error'`\n         * events. Listeners installed using this symbol are called before the regular\n         * `'error'` listeners are called.\n         *\n         * Installing a listener using this symbol does not change the behavior once an\n         * `'error'` event is emitted, therefore the process will still crash if no\n         * regular `'error'` listener is installed.\n         */\n        static readonly errorMonitor: unique symbol;\n        static readonly captureRejectionSymbol: unique symbol;\n        /**\n         * Sets or gets the default captureRejection value for all emitters.\n         */\n        // TODO: These should be described using static getter/setter pairs:\n        static captureRejections: boolean;\n        static defaultMaxListeners: number;\n    }\n    import internal = require('node:events');\n    namespace EventEmitter {\n        // Should just be `export { EventEmitter }`, but that doesn't work in TypeScript 3.4\n        export { internal as EventEmitter };\n        export interface Abortable {\n            /**\n             * When provided the corresponding `AbortController` can be used to cancel an asynchronous action.\n             */\n            signal?: AbortSignal | undefined;\n        }\n    }\n    global {\n        namespace NodeJS {\n            interface EventEmitter {\n                /**\n                 * Alias for `emitter.on(eventName, listener)`.\n                 * @since v0.1.26\n                 */\n                addListener(eventName: string | symbol, listener: (...args: any[]) => void): this;\n                /**\n                 * Adds the `listener` function to the end of the listeners array for the\n                 * event named `eventName`. No checks are made to see if the `listener` has\n                 * already been added. Multiple calls passing the same combination of `eventName`and `listener` will result in the `listener` being added, and called, multiple\n                 * times.\n                 *\n                 * ```js\n                 * server.on('connection', (stream) => {\n                 *   console.log('someone connected!');\n                 * });\n                 * ```\n                 *\n                 * Returns a reference to the `EventEmitter`, so that calls can be chained.\n                 *\n                 * By default, event listeners are invoked in the order they are added. The`emitter.prependListener()` method can be used as an alternative to add the\n                 * event listener to the beginning of the listeners array.\n                 *\n                 * ```js\n                 * const myEE = new EventEmitter();\n                 * myEE.on('foo', () => console.log('a'));\n                 * myEE.prependListener('foo', () => console.log('b'));\n                 * myEE.emit('foo');\n                 * // Prints:\n                 * //   b\n                 * //   a\n                 * ```\n                 * @since v0.1.101\n                 * @param eventName The name of the event.\n                 * @param listener The callback function\n                 */\n                on(eventName: string | symbol, listener: (...args: any[]) => void): this;\n                /**\n                 * Adds a **one-time**`listener` function for the event named `eventName`. The\n                 * next time `eventName` is triggered, this listener is removed and then invoked.\n                 *\n                 * ```js\n                 * server.once('connection', (stream) => {\n                 *   console.log('Ah, we have our first user!');\n                 * });\n                 * ```\n                 *\n                 * Returns a reference to the `EventEmitter`, so that calls can be chained.\n                 *\n                 * By default, event listeners are invoked in the order they are added. The`emitter.prependOnceListener()` method can be used as an alternative to add the\n                 * event listener to the beginning of the listeners array.\n                 *\n                 * ```js\n                 * const myEE = new EventEmitter();\n                 * myEE.once('foo', () => console.log('a'));\n                 * myEE.prependOnceListener('foo', () => console.log('b'));\n                 * myEE.emit('foo');\n                 * // Prints:\n                 * //   b\n                 * //   a\n                 * ```\n                 * @since v0.3.0\n                 * @param eventName The name of the event.\n                 * @param listener The callback function\n                 */\n                once(eventName: string | symbol, listener: (...args: any[]) => void): this;\n                /**\n                 * Removes the specified `listener` from the listener array for the event named`eventName`.\n                 *\n                 * ```js\n                 * const callback = (stream) => {\n                 *   console.log('someone connected!');\n                 * };\n                 * server.on('connection', callback);\n                 * // ...\n                 * server.removeListener('connection', callback);\n                 * ```\n                 *\n                 * `removeListener()` will remove, at most, one instance of a listener from the\n                 * listener array. If any single listener has been added multiple times to the\n                 * listener array for the specified `eventName`, then `removeListener()` must be\n                 * called multiple times to remove each instance.\n                 *\n                 * Once an event is emitted, all listeners attached to it at the\n                 * time of emitting are called in order. This implies that any`removeListener()` or `removeAllListeners()` calls _after_ emitting and_before_ the last listener finishes execution will\n                 * not remove them from`emit()` in progress. Subsequent events behave as expected.\n                 *\n                 * ```js\n                 * const myEmitter = new MyEmitter();\n                 *\n                 * const callbackA = () => {\n                 *   console.log('A');\n                 *   myEmitter.removeListener('event', callbackB);\n                 * };\n                 *\n                 * const callbackB = () => {\n                 *   console.log('B');\n                 * };\n                 *\n                 * myEmitter.on('event', callbackA);\n                 *\n                 * myEmitter.on('event', callbackB);\n                 *\n                 * // callbackA removes listener callbackB but it will still be called.\n                 * // Internal listener array at time of emit [callbackA, callbackB]\n                 * myEmitter.emit('event');\n                 * // Prints:\n                 * //   A\n                 * //   B\n                 *\n                 * // callbackB is now removed.\n                 * // Internal listener array [callbackA]\n                 * myEmitter.emit('event');\n                 * // Prints:\n                 * //   A\n                 * ```\n                 *\n                 * Because listeners are managed using an internal array, calling this will\n                 * change the position indices of any listener registered _after_ the listener\n                 * being removed. This will not impact the order in which listeners are called,\n                 * but it means that any copies of the listener array as returned by\n                 * the `emitter.listeners()` method will need to be recreated.\n                 *\n                 * When a single function has been added as a handler multiple times for a single\n                 * event (as in the example below), `removeListener()` will remove the most\n                 * recently added instance. In the example the `once('ping')`listener is removed:\n                 *\n                 * ```js\n                 * const ee = new EventEmitter();\n                 *\n                 * function pong() {\n                 *   console.log('pong');\n                 * }\n                 *\n                 * ee.on('ping', pong);\n                 * ee.once('ping', pong);\n                 * ee.removeListener('ping', pong);\n                 *\n                 * ee.emit('ping');\n                 * ee.emit('ping');\n                 * ```\n                 *\n                 * Returns a reference to the `EventEmitter`, so that calls can be chained.\n                 * @since v0.1.26\n                 */\n                removeListener(eventName: string | symbol, listener: (...args: any[]) => void): this;\n                /**\n                 * Alias for `emitter.removeListener()`.\n                 * @since v10.0.0\n                 */\n                off(eventName: string | symbol, listener: (...args: any[]) => void): this;\n                /**\n                 * Removes all listeners, or those of the specified `eventName`.\n                 *\n                 * It is bad practice to remove listeners added elsewhere in the code,\n                 * particularly when the `EventEmitter` instance was created by some other\n                 * component or module (e.g. sockets or file streams).\n                 *\n                 * Returns a reference to the `EventEmitter`, so that calls can be chained.\n                 * @since v0.1.26\n                 */\n                removeAllListeners(event?: string | symbol): this;\n                /**\n                 * By default `EventEmitter`s will print a warning if more than `10` listeners are\n                 * added for a particular event. This is a useful default that helps finding\n                 * memory leaks. The `emitter.setMaxListeners()` method allows the limit to be\n                 * modified for this specific `EventEmitter` instance. The value can be set to`Infinity` (or `0`) to indicate an unlimited number of listeners.\n                 *\n                 * Returns a reference to the `EventEmitter`, so that calls can be chained.\n                 * @since v0.3.5\n                 */\n                setMaxListeners(n: number): this;\n                /**\n                 * Returns the current max listener value for the `EventEmitter` which is either\n                 * set by `emitter.setMaxListeners(n)` or defaults to {@link defaultMaxListeners}.\n                 * @since v1.0.0\n                 */\n                getMaxListeners(): number;\n                /**\n                 * Returns a copy of the array of listeners for the event named `eventName`.\n                 *\n                 * ```js\n                 * server.on('connection', (stream) => {\n                 *   console.log('someone connected!');\n                 * });\n                 * console.log(util.inspect(server.listeners('connection')));\n                 * // Prints: [ [Function] ]\n                 * ```\n                 * @since v0.1.26\n                 */\n                listeners(eventName: string | symbol): Function[];\n                /**\n                 * Returns a copy of the array of listeners for the event named `eventName`,\n                 * including any wrappers (such as those created by `.once()`).\n                 *\n                 * ```js\n                 * const emitter = new EventEmitter();\n                 * emitter.once('log', () => console.log('log once'));\n                 *\n                 * // Returns a new Array with a function `onceWrapper` which has a property\n                 * // `listener` which contains the original listener bound above\n                 * const listeners = emitter.rawListeners('log');\n                 * const logFnWrapper = listeners[0];\n                 *\n                 * // Logs \"log once\" to the console and does not unbind the `once` event\n                 * logFnWrapper.listener();\n                 *\n                 * // Logs \"log once\" to the console and removes the listener\n                 * logFnWrapper();\n                 *\n                 * emitter.on('log', () => console.log('log persistently'));\n                 * // Will return a new Array with a single function bound by `.on()` above\n                 * const newListeners = emitter.rawListeners('log');\n                 *\n                 * // Logs \"log persistently\" twice\n                 * newListeners[0]();\n                 * emitter.emit('log');\n                 * ```\n                 * @since v9.4.0\n                 */\n                rawListeners(eventName: string | symbol): Function[];\n                /**\n                 * Synchronously calls each of the listeners registered for the event named`eventName`, in the order they were registered, passing the supplied arguments\n                 * to each.\n                 *\n                 * Returns `true` if the event had listeners, `false` otherwise.\n                 *\n                 * ```js\n                 * const EventEmitter = require('events');\n                 * const myEmitter = new EventEmitter();\n                 *\n                 * // First listener\n                 * myEmitter.on('event', function firstListener() {\n                 *   console.log('Helloooo! first listener');\n                 * });\n                 * // Second listener\n                 * myEmitter.on('event', function secondListener(arg1, arg2) {\n                 *   console.log(`event with parameters ${arg1}, ${arg2} in second listener`);\n                 * });\n                 * // Third listener\n                 * myEmitter.on('event', function thirdListener(...args) {\n                 *   const parameters = args.join(', ');\n                 *   console.log(`event with parameters ${parameters} in third listener`);\n                 * });\n                 *\n                 * console.log(myEmitter.listeners('event'));\n                 *\n                 * myEmitter.emit('event', 1, 2, 3, 4, 5);\n                 *\n                 * // Prints:\n                 * // [\n                 * //   [Function: firstListener],\n                 * //   [Function: secondListener],\n                 * //   [Function: thirdListener]\n                 * // ]\n                 * // Helloooo! first listener\n                 * // event with parameters 1, 2 in second listener\n                 * // event with parameters 1, 2, 3, 4, 5 in third listener\n                 * ```\n                 * @since v0.1.26\n                 */\n                emit(eventName: string | symbol, ...args: any[]): boolean;\n                /**\n                 * Returns the number of listeners listening to the event named `eventName`.\n                 * @since v3.2.0\n                 * @param eventName The name of the event being listened for\n                 */\n                listenerCount(eventName: string | symbol): number;\n                /**\n                 * Adds the `listener` function to the _beginning_ of the listeners array for the\n                 * event named `eventName`. No checks are made to see if the `listener` has\n                 * already been added. Multiple calls passing the same combination of `eventName`and `listener` will result in the `listener` being added, and called, multiple\n                 * times.\n                 *\n                 * ```js\n                 * server.prependListener('connection', (stream) => {\n                 *   console.log('someone connected!');\n                 * });\n                 * ```\n                 *\n                 * Returns a reference to the `EventEmitter`, so that calls can be chained.\n                 * @since v6.0.0\n                 * @param eventName The name of the event.\n                 * @param listener The callback function\n                 */\n                prependListener(eventName: string | symbol, listener: (...args: any[]) => void): this;\n                /**\n                 * Adds a **one-time**`listener` function for the event named `eventName` to the_beginning_ of the listeners array. The next time `eventName` is triggered, this\n                 * listener is removed, and then invoked.\n                 *\n                 * ```js\n                 * server.prependOnceListener('connection', (stream) => {\n                 *   console.log('Ah, we have our first user!');\n                 * });\n                 * ```\n                 *\n                 * Returns a reference to the `EventEmitter`, so that calls can be chained.\n                 * @since v6.0.0\n                 * @param eventName The name of the event.\n                 * @param listener The callback function\n                 */\n                prependOnceListener(eventName: string | symbol, listener: (...args: any[]) => void): this;\n                /**\n                 * Returns an array listing the events for which the emitter has registered\n                 * listeners. The values in the array are strings or `Symbol`s.\n                 *\n                 * ```js\n                 * const EventEmitter = require('events');\n                 * const myEE = new EventEmitter();\n                 * myEE.on('foo', () => {});\n                 * myEE.on('bar', () => {});\n                 *\n                 * const sym = Symbol('symbol');\n                 * myEE.on(sym, () => {});\n                 *\n                 * console.log(myEE.eventNames());\n                 * // Prints: [ 'foo', 'bar', Symbol(symbol) ]\n                 * ```\n                 * @since v6.0.0\n                 */\n                eventNames(): Array<string | symbol>;\n            }\n        }\n    }\n    export = EventEmitter;\n}\ndeclare module 'node:events' {\n    import events = require('events');\n    export = events;\n}\n"
    },
    {
      "path": "/node_modules/@types/node/fs.d.ts",
      "content": "/**\n * The `fs` module enables interacting with the file system in a\n * way modeled on standard POSIX functions.\n *\n * To use the promise-based APIs:\n *\n * ```js\n * import * as fs from 'fs/promises';\n * ```\n *\n * To use the callback and sync APIs:\n *\n * ```js\n * import * as fs from 'fs';\n * ```\n *\n * All file system operations have synchronous, callback, and promise-based\n * forms, and are accessible using both CommonJS syntax and ES6 Modules (ESM).\n * @see [source](https://github.com/nodejs/node/blob/v16.9.0/lib/fs.js)\n */\ndeclare module 'fs' {\n    import * as stream from 'node:stream';\n    import { Abortable, EventEmitter } from 'node:events';\n    import { URL } from 'node:url';\n    import * as promises from 'node:fs/promises';\n    export { promises };\n    /**\n     * Valid types for path values in \"fs\".\n     */\n    export type PathLike = string | Buffer | URL;\n    export type PathOrFileDescriptor = PathLike | number;\n    export type TimeLike = string | number | Date;\n    export type NoParamCallback = (err: NodeJS.ErrnoException | null) => void;\n    export type BufferEncodingOption =\n        | 'buffer'\n        | {\n              encoding: 'buffer';\n          };\n    export interface ObjectEncodingOptions {\n        encoding?: BufferEncoding | null | undefined;\n    }\n    export type EncodingOption = ObjectEncodingOptions | BufferEncoding | undefined | null;\n    export type OpenMode = number | string;\n    export type Mode = number | string;\n    export interface StatsBase<T> {\n        isFile(): boolean;\n        isDirectory(): boolean;\n        isBlockDevice(): boolean;\n        isCharacterDevice(): boolean;\n        isSymbolicLink(): boolean;\n        isFIFO(): boolean;\n        isSocket(): boolean;\n        dev: T;\n        ino: T;\n        mode: T;\n        nlink: T;\n        uid: T;\n        gid: T;\n        rdev: T;\n        size: T;\n        blksize: T;\n        blocks: T;\n        atimeMs: T;\n        mtimeMs: T;\n        ctimeMs: T;\n        birthtimeMs: T;\n        atime: Date;\n        mtime: Date;\n        ctime: Date;\n        birthtime: Date;\n    }\n    export interface Stats extends StatsBase<number> {}\n    /**\n     * A `fs.Stats` object provides information about a file.\n     *\n     * Objects returned from {@link stat}, {@link lstat} and {@link fstat} and\n     * their synchronous counterparts are of this type.\n     * If `bigint` in the `options` passed to those methods is true, the numeric values\n     * will be `bigint` instead of `number`, and the object will contain additional\n     * nanosecond-precision properties suffixed with `Ns`.\n     *\n     * ```console\n     * Stats {\n     *   dev: 2114,\n     *   ino: 48064969,\n     *   mode: 33188,\n     *   nlink: 1,\n     *   uid: 85,\n     *   gid: 100,\n     *   rdev: 0,\n     *   size: 527,\n     *   blksize: 4096,\n     *   blocks: 8,\n     *   atimeMs: 1318289051000.1,\n     *   mtimeMs: 1318289051000.1,\n     *   ctimeMs: 1318289051000.1,\n     *   birthtimeMs: 1318289051000.1,\n     *   atime: Mon, 10 Oct 2011 23:24:11 GMT,\n     *   mtime: Mon, 10 Oct 2011 23:24:11 GMT,\n     *   ctime: Mon, 10 Oct 2011 23:24:11 GMT,\n     *   birthtime: Mon, 10 Oct 2011 23:24:11 GMT }\n     * ```\n     *\n     * `bigint` version:\n     *\n     * ```console\n     * BigIntStats {\n     *   dev: 2114n,\n     *   ino: 48064969n,\n     *   mode: 33188n,\n     *   nlink: 1n,\n     *   uid: 85n,\n     *   gid: 100n,\n     *   rdev: 0n,\n     *   size: 527n,\n     *   blksize: 4096n,\n     *   blocks: 8n,\n     *   atimeMs: 1318289051000n,\n     *   mtimeMs: 1318289051000n,\n     *   ctimeMs: 1318289051000n,\n     *   birthtimeMs: 1318289051000n,\n     *   atimeNs: 1318289051000000000n,\n     *   mtimeNs: 1318289051000000000n,\n     *   ctimeNs: 1318289051000000000n,\n     *   birthtimeNs: 1318289051000000000n,\n     *   atime: Mon, 10 Oct 2011 23:24:11 GMT,\n     *   mtime: Mon, 10 Oct 2011 23:24:11 GMT,\n     *   ctime: Mon, 10 Oct 2011 23:24:11 GMT,\n     *   birthtime: Mon, 10 Oct 2011 23:24:11 GMT }\n     * ```\n     * @since v0.1.21\n     */\n    export class Stats {}\n    /**\n     * A representation of a directory entry, which can be a file or a subdirectory\n     * within the directory, as returned by reading from an `fs.Dir`. The\n     * directory entry is a combination of the file name and file type pairs.\n     *\n     * Additionally, when {@link readdir} or {@link readdirSync} is called with\n     * the `withFileTypes` option set to `true`, the resulting array is filled with `fs.Dirent` objects, rather than strings or `Buffer` s.\n     * @since v10.10.0\n     */\n    export class Dirent {\n        /**\n         * Returns `true` if the `fs.Dirent` object describes a regular file.\n         * @since v10.10.0\n         */\n        isFile(): boolean;\n        /**\n         * Returns `true` if the `fs.Dirent` object describes a file system\n         * directory.\n         * @since v10.10.0\n         */\n        isDirectory(): boolean;\n        /**\n         * Returns `true` if the `fs.Dirent` object describes a block device.\n         * @since v10.10.0\n         */\n        isBlockDevice(): boolean;\n        /**\n         * Returns `true` if the `fs.Dirent` object describes a character device.\n         * @since v10.10.0\n         */\n        isCharacterDevice(): boolean;\n        /**\n         * Returns `true` if the `fs.Dirent` object describes a symbolic link.\n         * @since v10.10.0\n         */\n        isSymbolicLink(): boolean;\n        /**\n         * Returns `true` if the `fs.Dirent` object describes a first-in-first-out\n         * (FIFO) pipe.\n         * @since v10.10.0\n         */\n        isFIFO(): boolean;\n        /**\n         * Returns `true` if the `fs.Dirent` object describes a socket.\n         * @since v10.10.0\n         */\n        isSocket(): boolean;\n        /**\n         * The file name that this `fs.Dirent` object refers to. The type of this\n         * value is determined by the `options.encoding` passed to {@link readdir} or {@link readdirSync}.\n         * @since v10.10.0\n         */\n        name: string;\n    }\n    /**\n     * A class representing a directory stream.\n     *\n     * Created by {@link opendir}, {@link opendirSync}, or `fsPromises.opendir()`.\n     *\n     * ```js\n     * import { opendir } from 'fs/promises';\n     *\n     * try {\n     *   const dir = await opendir('./');\n     *   for await (const dirent of dir)\n     *     console.log(dirent.name);\n     * } catch (err) {\n     *   console.error(err);\n     * }\n     * ```\n     *\n     * When using the async iterator, the `fs.Dir` object will be automatically\n     * closed after the iterator exits.\n     * @since v12.12.0\n     */\n    export class Dir implements AsyncIterable<Dirent> {\n        /**\n         * The read-only path of this directory as was provided to {@link opendir},{@link opendirSync}, or `fsPromises.opendir()`.\n         * @since v12.12.0\n         */\n        readonly path: string;\n        /**\n         * Asynchronously iterates over the directory via `readdir(3)` until all entries have been read.\n         */\n        [Symbol.asyncIterator](): AsyncIterableIterator<Dirent>;\n        /**\n         * Asynchronously close the directory's underlying resource handle.\n         * Subsequent reads will result in errors.\n         *\n         * A promise is returned that will be resolved after the resource has been\n         * closed.\n         * @since v12.12.0\n         */\n        close(): Promise<void>;\n        close(cb: NoParamCallback): void;\n        /**\n         * Synchronously close the directory's underlying resource handle.\n         * Subsequent reads will result in errors.\n         * @since v12.12.0\n         */\n        closeSync(): void;\n        /**\n         * Asynchronously read the next directory entry via [`readdir(3)`](http://man7.org/linux/man-pages/man3/readdir.3.html) as an `fs.Dirent`.\n         *\n         * A promise is returned that will be resolved with an `fs.Dirent`, or `null`if there are no more directory entries to read.\n         *\n         * Directory entries returned by this function are in no particular order as\n         * provided by the operating system's underlying directory mechanisms.\n         * Entries added or removed while iterating over the directory might not be\n         * included in the iteration results.\n         * @since v12.12.0\n         * @return containing {fs.Dirent|null}\n         */\n        read(): Promise<Dirent | null>;\n        read(cb: (err: NodeJS.ErrnoException | null, dirEnt: Dirent | null) => void): void;\n        /**\n         * Synchronously read the next directory entry as an `fs.Dirent`. See the\n         * POSIX [`readdir(3)`](http://man7.org/linux/man-pages/man3/readdir.3.html) documentation for more detail.\n         *\n         * If there are no more directory entries to read, `null` will be returned.\n         *\n         * Directory entries returned by this function are in no particular order as\n         * provided by the operating system's underlying directory mechanisms.\n         * Entries added or removed while iterating over the directory might not be\n         * included in the iteration results.\n         * @since v12.12.0\n         */\n        readSync(): Dirent | null;\n    }\n    /**\n     * Class: fs.StatWatcher\n     * @since v14.3.0, v12.20.0\n     * Extends `EventEmitter`\n     * A successful call to {@link watchFile} method will return a new fs.StatWatcher object.\n     */\n    export interface StatWatcher extends EventEmitter {\n        /**\n         * @since v14.3.0, v12.20.0\n         * When called, requests that the Node.js event loop not exit so long as the `fs.StatWatcher` is active.\n         * Calling `watcher.ref()` multiple times will have no effect.\n         * By default, all `fs.StatWatcher`` objects are \"ref'ed\", making it normally unnecessary to call `watcher.ref()`\n         * unless `watcher.unref()` had been called previously.\n         */\n        ref(): this;\n        /**\n         * @since v14.3.0, v12.20.0\n         * When called, the active `fs.StatWatcher`` object will not require the Node.js event loop to remain active.\n         * If there is no other activity keeping the event loop running, the process may exit before the `fs.StatWatcher`` object's callback is invoked.\n         * `Calling watcher.unref()` multiple times will have no effect.\n         */\n        unref(): this;\n    }\n    export interface FSWatcher extends EventEmitter {\n        /**\n         * Stop watching for changes on the given `fs.FSWatcher`. Once stopped, the `fs.FSWatcher` object is no longer usable.\n         * @since v0.5.8\n         */\n        close(): void;\n        /**\n         * events.EventEmitter\n         *   1. change\n         *   2. error\n         */\n        addListener(event: string, listener: (...args: any[]) => void): this;\n        addListener(event: 'change', listener: (eventType: string, filename: string | Buffer) => void): this;\n        addListener(event: 'error', listener: (error: Error) => void): this;\n        addListener(event: 'close', listener: () => void): this;\n        on(event: string, listener: (...args: any[]) => void): this;\n        on(event: 'change', listener: (eventType: string, filename: string | Buffer) => void): this;\n        on(event: 'error', listener: (error: Error) => void): this;\n        on(event: 'close', listener: () => void): this;\n        once(event: string, listener: (...args: any[]) => void): this;\n        once(event: 'change', listener: (eventType: string, filename: string | Buffer) => void): this;\n        once(event: 'error', listener: (error: Error) => void): this;\n        once(event: 'close', listener: () => void): this;\n        prependListener(event: string, listener: (...args: any[]) => void): this;\n        prependListener(event: 'change', listener: (eventType: string, filename: string | Buffer) => void): this;\n        prependListener(event: 'error', listener: (error: Error) => void): this;\n        prependListener(event: 'close', listener: () => void): this;\n        prependOnceListener(event: string, listener: (...args: any[]) => void): this;\n        prependOnceListener(event: 'change', listener: (eventType: string, filename: string | Buffer) => void): this;\n        prependOnceListener(event: 'error', listener: (error: Error) => void): this;\n        prependOnceListener(event: 'close', listener: () => void): this;\n    }\n    /**\n     * Instances of `fs.ReadStream` are created and returned using the {@link createReadStream} function.\n     * @since v0.1.93\n     */\n    export class ReadStream extends stream.Readable {\n        close(callback?: (err?: NodeJS.ErrnoException | null) => void): void;\n        /**\n         * The number of bytes that have been read so far.\n         * @since v6.4.0\n         */\n        bytesRead: number;\n        /**\n         * The path to the file the stream is reading from as specified in the first\n         * argument to `fs.createReadStream()`. If `path` is passed as a string, then`readStream.path` will be a string. If `path` is passed as a `Buffer`, then`readStream.path` will be a\n         * `Buffer`. If `fd` is specified, then`readStream.path` will be `undefined`.\n         * @since v0.1.93\n         */\n        path: string | Buffer;\n        /**\n         * This property is `true` if the underlying file has not been opened yet,\n         * i.e. before the `'ready'` event is emitted.\n         * @since v11.2.0, v10.16.0\n         */\n        pending: boolean;\n        /**\n         * events.EventEmitter\n         *   1. open\n         *   2. close\n         *   3. ready\n         */\n        addListener(event: 'close', listener: () => void): this;\n        addListener(event: 'data', listener: (chunk: Buffer | string) => void): this;\n        addListener(event: 'end', listener: () => void): this;\n        addListener(event: 'error', listener: (err: Error) => void): this;\n        addListener(event: 'open', listener: (fd: number) => void): this;\n        addListener(event: 'pause', listener: () => void): this;\n        addListener(event: 'readable', listener: () => void): this;\n        addListener(event: 'ready', listener: () => void): this;\n        addListener(event: 'resume', listener: () => void): this;\n        addListener(event: string | symbol, listener: (...args: any[]) => void): this;\n        on(event: 'close', listener: () => void): this;\n        on(event: 'data', listener: (chunk: Buffer | string) => void): this;\n        on(event: 'end', listener: () => void): this;\n        on(event: 'error', listener: (err: Error) => void): this;\n        on(event: 'open', listener: (fd: number) => void): this;\n        on(event: 'pause', listener: () => void): this;\n        on(event: 'readable', listener: () => void): this;\n        on(event: 'ready', listener: () => void): this;\n        on(event: 'resume', listener: () => void): this;\n        on(event: string | symbol, listener: (...args: any[]) => void): this;\n        once(event: 'close', listener: () => void): this;\n        once(event: 'data', listener: (chunk: Buffer | string) => void): this;\n        once(event: 'end', listener: () => void): this;\n        once(event: 'error', listener: (err: Error) => void): this;\n        once(event: 'open', listener: (fd: number) => void): this;\n        once(event: 'pause', listener: () => void): this;\n        once(event: 'readable', listener: () => void): this;\n        once(event: 'ready', listener: () => void): this;\n        once(event: 'resume', listener: () => void): this;\n        once(event: string | symbol, listener: (...args: any[]) => void): this;\n        prependListener(event: 'close', listener: () => void): this;\n        prependListener(event: 'data', listener: (chunk: Buffer | string) => void): this;\n        prependListener(event: 'end', listener: () => void): this;\n        prependListener(event: 'error', listener: (err: Error) => void): this;\n        prependListener(event: 'open', listener: (fd: number) => void): this;\n        prependListener(event: 'pause', listener: () => void): this;\n        prependListener(event: 'readable', listener: () => void): this;\n        prependListener(event: 'ready', listener: () => void): this;\n        prependListener(event: 'resume', listener: () => void): this;\n        prependListener(event: string | symbol, listener: (...args: any[]) => void): this;\n        prependOnceListener(event: 'close', listener: () => void): this;\n        prependOnceListener(event: 'data', listener: (chunk: Buffer | string) => void): this;\n        prependOnceListener(event: 'end', listener: () => void): this;\n        prependOnceListener(event: 'error', listener: (err: Error) => void): this;\n        prependOnceListener(event: 'open', listener: (fd: number) => void): this;\n        prependOnceListener(event: 'pause', listener: () => void): this;\n        prependOnceListener(event: 'readable', listener: () => void): this;\n        prependOnceListener(event: 'ready', listener: () => void): this;\n        prependOnceListener(event: 'resume', listener: () => void): this;\n        prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this;\n    }\n    /**\n     * * Extends `stream.Writable`\n     *\n     * Instances of `fs.WriteStream` are created and returned using the {@link createWriteStream} function.\n     * @since v0.1.93\n     */\n    export class WriteStream extends stream.Writable {\n        /**\n         * Closes `writeStream`. Optionally accepts a\n         * callback that will be executed once the `writeStream`is closed.\n         * @since v0.9.4\n         */\n        close(callback?: (err?: NodeJS.ErrnoException | null) => void): void;\n        /**\n         * The number of bytes written so far. Does not include data that is still queued\n         * for writing.\n         * @since v0.4.7\n         */\n        bytesWritten: number;\n        /**\n         * The path to the file the stream is writing to as specified in the first\n         * argument to {@link createWriteStream}. If `path` is passed as a string, then`writeStream.path` will be a string. If `path` is passed as a `Buffer`, then`writeStream.path` will be a\n         * `Buffer`.\n         * @since v0.1.93\n         */\n        path: string | Buffer;\n        /**\n         * This property is `true` if the underlying file has not been opened yet,\n         * i.e. before the `'ready'` event is emitted.\n         * @since v11.2.0\n         */\n        pending: boolean;\n        /**\n         * events.EventEmitter\n         *   1. open\n         *   2. close\n         *   3. ready\n         */\n        addListener(event: 'close', listener: () => void): this;\n        addListener(event: 'drain', listener: () => void): this;\n        addListener(event: 'error', listener: (err: Error) => void): this;\n        addListener(event: 'finish', listener: () => void): this;\n        addListener(event: 'open', listener: (fd: number) => void): this;\n        addListener(event: 'pipe', listener: (src: stream.Readable) => void): this;\n        addListener(event: 'ready', listener: () => void): this;\n        addListener(event: 'unpipe', listener: (src: stream.Readable) => void): this;\n        addListener(event: string | symbol, listener: (...args: any[]) => void): this;\n        on(event: 'close', listener: () => void): this;\n        on(event: 'drain', listener: () => void): this;\n        on(event: 'error', listener: (err: Error) => void): this;\n        on(event: 'finish', listener: () => void): this;\n        on(event: 'open', listener: (fd: number) => void): this;\n        on(event: 'pipe', listener: (src: stream.Readable) => void): this;\n        on(event: 'ready', listener: () => void): this;\n        on(event: 'unpipe', listener: (src: stream.Readable) => void): this;\n        on(event: string | symbol, listener: (...args: any[]) => void): this;\n        once(event: 'close', listener: () => void): this;\n        once(event: 'drain', listener: () => void): this;\n        once(event: 'error', listener: (err: Error) => void): this;\n        once(event: 'finish', listener: () => void): this;\n        once(event: 'open', listener: (fd: number) => void): this;\n        once(event: 'pipe', listener: (src: stream.Readable) => void): this;\n        once(event: 'ready', listener: () => void): this;\n        once(event: 'unpipe', listener: (src: stream.Readable) => void): this;\n        once(event: string | symbol, listener: (...args: any[]) => void): this;\n        prependListener(event: 'close', listener: () => void): this;\n        prependListener(event: 'drain', listener: () => void): this;\n        prependListener(event: 'error', listener: (err: Error) => void): this;\n        prependListener(event: 'finish', listener: () => void): this;\n        prependListener(event: 'open', listener: (fd: number) => void): this;\n        prependListener(event: 'pipe', listener: (src: stream.Readable) => void): this;\n        prependListener(event: 'ready', listener: () => void): this;\n        prependListener(event: 'unpipe', listener: (src: stream.Readable) => void): this;\n        prependListener(event: string | symbol, listener: (...args: any[]) => void): this;\n        prependOnceListener(event: 'close', listener: () => void): this;\n        prependOnceListener(event: 'drain', listener: () => void): this;\n        prependOnceListener(event: 'error', listener: (err: Error) => void): this;\n        prependOnceListener(event: 'finish', listener: () => void): this;\n        prependOnceListener(event: 'open', listener: (fd: number) => void): this;\n        prependOnceListener(event: 'pipe', listener: (src: stream.Readable) => void): this;\n        prependOnceListener(event: 'ready', listener: () => void): this;\n        prependOnceListener(event: 'unpipe', listener: (src: stream.Readable) => void): this;\n        prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this;\n    }\n    /**\n     * Asynchronously rename file at `oldPath` to the pathname provided\n     * as `newPath`. In the case that `newPath` already exists, it will\n     * be overwritten. If there is a directory at `newPath`, an error will\n     * be raised instead. No arguments other than a possible exception are\n     * given to the completion callback.\n     *\n     * See also: [`rename(2)`](http://man7.org/linux/man-pages/man2/rename.2.html).\n     *\n     * ```js\n     * import { rename } from 'fs';\n     *\n     * rename('oldFile.txt', 'newFile.txt', (err) => {\n     *   if (err) throw err;\n     *   console.log('Rename complete!');\n     * });\n     * ```\n     * @since v0.0.2\n     */\n    export function rename(oldPath: PathLike, newPath: PathLike, callback: NoParamCallback): void;\n    export namespace rename {\n        /**\n         * Asynchronous rename(2) - Change the name or location of a file or directory.\n         * @param oldPath A path to a file. If a URL is provided, it must use the `file:` protocol.\n         * URL support is _experimental_.\n         * @param newPath A path to a file. If a URL is provided, it must use the `file:` protocol.\n         * URL support is _experimental_.\n         */\n        function __promisify__(oldPath: PathLike, newPath: PathLike): Promise<void>;\n    }\n    /**\n     * Renames the file from `oldPath` to `newPath`. Returns `undefined`.\n     *\n     * See the POSIX [`rename(2)`](http://man7.org/linux/man-pages/man2/rename.2.html) documentation for more details.\n     * @since v0.1.21\n     */\n    export function renameSync(oldPath: PathLike, newPath: PathLike): void;\n    /**\n     * Truncates the file. No arguments other than a possible exception are\n     * given to the completion callback. A file descriptor can also be passed as the\n     * first argument. In this case, `fs.ftruncate()` is called.\n     *\n     * ```js\n     * import { truncate } from 'fs';\n     * // Assuming that 'path/file.txt' is a regular file.\n     * truncate('path/file.txt', (err) => {\n     *   if (err) throw err;\n     *   console.log('path/file.txt was truncated');\n     * });\n     * ```\n     *\n     * Passing a file descriptor is deprecated and may result in an error being thrown\n     * in the future.\n     *\n     * See the POSIX [`truncate(2)`](http://man7.org/linux/man-pages/man2/truncate.2.html) documentation for more details.\n     * @since v0.8.6\n     * @param [len=0]\n     */\n    export function truncate(path: PathLike, len: number | undefined | null, callback: NoParamCallback): void;\n    /**\n     * Asynchronous truncate(2) - Truncate a file to a specified length.\n     * @param path A path to a file. If a URL is provided, it must use the `file:` protocol.\n     */\n    export function truncate(path: PathLike, callback: NoParamCallback): void;\n    export namespace truncate {\n        /**\n         * Asynchronous truncate(2) - Truncate a file to a specified length.\n         * @param path A path to a file. If a URL is provided, it must use the `file:` protocol.\n         * @param len If not specified, defaults to `0`.\n         */\n        function __promisify__(path: PathLike, len?: number | null): Promise<void>;\n    }\n    /**\n     * Truncates the file. Returns `undefined`. A file descriptor can also be\n     * passed as the first argument. In this case, `fs.ftruncateSync()` is called.\n     *\n     * Passing a file descriptor is deprecated and may result in an error being thrown\n     * in the future.\n     * @since v0.8.6\n     * @param [len=0]\n     */\n    export function truncateSync(path: PathLike, len?: number | null): void;\n    /**\n     * Truncates the file descriptor. No arguments other than a possible exception are\n     * given to the completion callback.\n     *\n     * See the POSIX [`ftruncate(2)`](http://man7.org/linux/man-pages/man2/ftruncate.2.html) documentation for more detail.\n     *\n     * If the file referred to by the file descriptor was larger than `len` bytes, only\n     * the first `len` bytes will be retained in the file.\n     *\n     * For example, the following program retains only the first four bytes of the\n     * file:\n     *\n     * ```js\n     * import { open, close, ftruncate } from 'fs';\n     *\n     * function closeFd(fd) {\n     *   close(fd, (err) => {\n     *     if (err) throw err;\n     *   });\n     * }\n     *\n     * open('temp.txt', 'r+', (err, fd) => {\n     *   if (err) throw err;\n     *\n     *   try {\n     *     ftruncate(fd, 4, (err) => {\n     *       closeFd(fd);\n     *       if (err) throw err;\n     *     });\n     *   } catch (err) {\n     *     closeFd(fd);\n     *     if (err) throw err;\n     *   }\n     * });\n     * ```\n     *\n     * If the file previously was shorter than `len` bytes, it is extended, and the\n     * extended part is filled with null bytes (`'\\0'`):\n     *\n     * If `len` is negative then `0` will be used.\n     * @since v0.8.6\n     * @param [len=0]\n     */\n    export function ftruncate(fd: number, len: number | undefined | null, callback: NoParamCallback): void;\n    /**\n     * Asynchronous ftruncate(2) - Truncate a file to a specified length.\n     * @param fd A file descriptor.\n     */\n    export function ftruncate(fd: number, callback: NoParamCallback): void;\n    export namespace ftruncate {\n        /**\n         * Asynchronous ftruncate(2) - Truncate a file to a specified length.\n         * @param fd A file descriptor.\n         * @param len If not specified, defaults to `0`.\n         */\n        function __promisify__(fd: number, len?: number | null): Promise<void>;\n    }\n    /**\n     * Truncates the file descriptor. Returns `undefined`.\n     *\n     * For detailed information, see the documentation of the asynchronous version of\n     * this API: {@link ftruncate}.\n     * @since v0.8.6\n     * @param [len=0]\n     */\n    export function ftruncateSync(fd: number, len?: number | null): void;\n    /**\n     * Asynchronously changes owner and group of a file. No arguments other than a\n     * possible exception are given to the completion callback.\n     *\n     * See the POSIX [`chown(2)`](http://man7.org/linux/man-pages/man2/chown.2.html) documentation for more detail.\n     * @since v0.1.97\n     */\n    export function chown(path: PathLike, uid: number, gid: number, callback: NoParamCallback): void;\n    export namespace chown {\n        /**\n         * Asynchronous chown(2) - Change ownership of a file.\n         * @param path A path to a file. If a URL is provided, it must use the `file:` protocol.\n         */\n        function __promisify__(path: PathLike, uid: number, gid: number): Promise<void>;\n    }\n    /**\n     * Synchronously changes owner and group of a file. Returns `undefined`.\n     * This is the synchronous version of {@link chown}.\n     *\n     * See the POSIX [`chown(2)`](http://man7.org/linux/man-pages/man2/chown.2.html) documentation for more detail.\n     * @since v0.1.97\n     */\n    export function chownSync(path: PathLike, uid: number, gid: number): void;\n    /**\n     * Sets the owner of the file. No arguments other than a possible exception are\n     * given to the completion callback.\n     *\n     * See the POSIX [`fchown(2)`](http://man7.org/linux/man-pages/man2/fchown.2.html) documentation for more detail.\n     * @since v0.4.7\n     */\n    export function fchown(fd: number, uid: number, gid: number, callback: NoParamCallback): void;\n    export namespace fchown {\n        /**\n         * Asynchronous fchown(2) - Change ownership of a file.\n         * @param fd A file descriptor.\n         */\n        function __promisify__(fd: number, uid: number, gid: number): Promise<void>;\n    }\n    /**\n     * Sets the owner of the file. Returns `undefined`.\n     *\n     * See the POSIX [`fchown(2)`](http://man7.org/linux/man-pages/man2/fchown.2.html) documentation for more detail.\n     * @since v0.4.7\n     * @param uid The file's new owner's user id.\n     * @param gid The file's new group's group id.\n     */\n    export function fchownSync(fd: number, uid: number, gid: number): void;\n    /**\n     * Set the owner of the symbolic link. No arguments other than a possible\n     * exception are given to the completion callback.\n     *\n     * See the POSIX [`lchown(2)`](http://man7.org/linux/man-pages/man2/lchown.2.html) documentation for more detail.\n     */\n    export function lchown(path: PathLike, uid: number, gid: number, callback: NoParamCallback): void;\n    export namespace lchown {\n        /**\n         * Asynchronous lchown(2) - Change ownership of a file. Does not dereference symbolic links.\n         * @param path A path to a file. If a URL is provided, it must use the `file:` protocol.\n         */\n        function __promisify__(path: PathLike, uid: number, gid: number): Promise<void>;\n    }\n    /**\n     * Set the owner for the path. Returns `undefined`.\n     *\n     * See the POSIX [`lchown(2)`](http://man7.org/linux/man-pages/man2/lchown.2.html) documentation for more details.\n     * @param uid The file's new owner's user id.\n     * @param gid The file's new group's group id.\n     */\n    export function lchownSync(path: PathLike, uid: number, gid: number): void;\n    /**\n     * Changes the access and modification times of a file in the same way as {@link utimes}, with the difference that if the path refers to a symbolic\n     * link, then the link is not dereferenced: instead, the timestamps of the\n     * symbolic link itself are changed.\n     *\n     * No arguments other than a possible exception are given to the completion\n     * callback.\n     * @since v14.5.0, v12.19.0\n     */\n    export function lutimes(path: PathLike, atime: TimeLike, mtime: TimeLike, callback: NoParamCallback): void;\n    export namespace lutimes {\n        /**\n         * Changes the access and modification times of a file in the same way as `fsPromises.utimes()`,\n         * with the difference that if the path refers to a symbolic link, then the link is not\n         * dereferenced: instead, the timestamps of the symbolic link itself are changed.\n         * @param path A path to a file. If a URL is provided, it must use the `file:` protocol.\n         * @param atime The last access time. If a string is provided, it will be coerced to number.\n         * @param mtime The last modified time. If a string is provided, it will be coerced to number.\n         */\n        function __promisify__(path: PathLike, atime: TimeLike, mtime: TimeLike): Promise<void>;\n    }\n    /**\n     * Change the file system timestamps of the symbolic link referenced by `path`.\n     * Returns `undefined`, or throws an exception when parameters are incorrect or\n     * the operation fails. This is the synchronous version of {@link lutimes}.\n     * @since v14.5.0, v12.19.0\n     */\n    export function lutimesSync(path: PathLike, atime: TimeLike, mtime: TimeLike): void;\n    /**\n     * Asynchronously changes the permissions of a file. No arguments other than a\n     * possible exception are given to the completion callback.\n     *\n     * See the POSIX [`chmod(2)`](http://man7.org/linux/man-pages/man2/chmod.2.html) documentation for more detail.\n     *\n     * ```js\n     * import { chmod } from 'fs';\n     *\n     * chmod('my_file.txt', 0o775, (err) => {\n     *   if (err) throw err;\n     *   console.log('The permissions for file \"my_file.txt\" have been changed!');\n     * });\n     * ```\n     * @since v0.1.30\n     */\n    export function chmod(path: PathLike, mode: Mode, callback: NoParamCallback): void;\n    export namespace chmod {\n        /**\n         * Asynchronous chmod(2) - Change permissions of a file.\n         * @param path A path to a file. If a URL is provided, it must use the `file:` protocol.\n         * @param mode A file mode. If a string is passed, it is parsed as an octal integer.\n         */\n        function __promisify__(path: PathLike, mode: Mode): Promise<void>;\n    }\n    /**\n     * For detailed information, see the documentation of the asynchronous version of\n     * this API: {@link chmod}.\n     *\n     * See the POSIX [`chmod(2)`](http://man7.org/linux/man-pages/man2/chmod.2.html) documentation for more detail.\n     * @since v0.6.7\n     */\n    export function chmodSync(path: PathLike, mode: Mode): void;\n    /**\n     * Sets the permissions on the file. No arguments other than a possible exception\n     * are given to the completion callback.\n     *\n     * See the POSIX [`fchmod(2)`](http://man7.org/linux/man-pages/man2/fchmod.2.html) documentation for more detail.\n     * @since v0.4.7\n     */\n    export function fchmod(fd: number, mode: Mode, callback: NoParamCallback): void;\n    export namespace fchmod {\n        /**\n         * Asynchronous fchmod(2) - Change permissions of a file.\n         * @param fd A file descriptor.\n         * @param mode A file mode. If a string is passed, it is parsed as an octal integer.\n         */\n        function __promisify__(fd: number, mode: Mode): Promise<void>;\n    }\n    /**\n     * Sets the permissions on the file. Returns `undefined`.\n     *\n     * See the POSIX [`fchmod(2)`](http://man7.org/linux/man-pages/man2/fchmod.2.html) documentation for more detail.\n     * @since v0.4.7\n     */\n    export function fchmodSync(fd: number, mode: Mode): void;\n    /**\n     * Changes the permissions on a symbolic link. No arguments other than a possible\n     * exception are given to the completion callback.\n     *\n     * This method is only implemented on macOS.\n     *\n     * See the POSIX [`lchmod(2)`](https://www.freebsd.org/cgi/man.cgi?query=lchmod&sektion=2) documentation for more detail.\n     * @deprecated Since v0.4.7\n     */\n    export function lchmod(path: PathLike, mode: Mode, callback: NoParamCallback): void;\n    /** @deprecated */\n    export namespace lchmod {\n        /**\n         * Asynchronous lchmod(2) - Change permissions of a file. Does not dereference symbolic links.\n         * @param path A path to a file. If a URL is provided, it must use the `file:` protocol.\n         * @param mode A file mode. If a string is passed, it is parsed as an octal integer.\n         */\n        function __promisify__(path: PathLike, mode: Mode): Promise<void>;\n    }\n    /**\n     * Changes the permissions on a symbolic link. Returns `undefined`.\n     *\n     * This method is only implemented on macOS.\n     *\n     * See the POSIX [`lchmod(2)`](https://www.freebsd.org/cgi/man.cgi?query=lchmod&sektion=2) documentation for more detail.\n     * @deprecated Since v0.4.7\n     */\n    export function lchmodSync(path: PathLike, mode: Mode): void;\n    /**\n     * Asynchronous [`stat(2)`](http://man7.org/linux/man-pages/man2/stat.2.html). The callback gets two arguments `(err, stats)` where`stats` is an `fs.Stats` object.\n     *\n     * In case of an error, the `err.code` will be one of `Common System Errors`.\n     *\n     * Using `fs.stat()` to check for the existence of a file before calling`fs.open()`, `fs.readFile()` or `fs.writeFile()` is not recommended.\n     * Instead, user code should open/read/write the file directly and handle the\n     * error raised if the file is not available.\n     *\n     * To check if a file exists without manipulating it afterwards, {@link access} is recommended.\n     *\n     * For example, given the following directory structure:\n     *\n     * ```text\n     * - txtDir\n     * -- file.txt\n     * - app.js\n     * ```\n     *\n     * The next program will check for the stats of the given paths:\n     *\n     * ```js\n     * import { stat } from 'fs';\n     *\n     * const pathsToCheck = ['./txtDir', './txtDir/file.txt'];\n     *\n     * for (let i = 0; i < pathsToCheck.length; i++) {\n     *   stat(pathsToCheck[i], (err, stats) => {\n     *     console.log(stats.isDirectory());\n     *     console.log(stats);\n     *   });\n     * }\n     * ```\n     *\n     * The resulting output will resemble:\n     *\n     * ```console\n     * true\n     * Stats {\n     *   dev: 16777220,\n     *   mode: 16877,\n     *   nlink: 3,\n     *   uid: 501,\n     *   gid: 20,\n     *   rdev: 0,\n     *   blksize: 4096,\n     *   ino: 14214262,\n     *   size: 96,\n     *   blocks: 0,\n     *   atimeMs: 1561174653071.963,\n     *   mtimeMs: 1561174614583.3518,\n     *   ctimeMs: 1561174626623.5366,\n     *   birthtimeMs: 1561174126937.2893,\n     *   atime: 2019-06-22T03:37:33.072Z,\n     *   mtime: 2019-06-22T03:36:54.583Z,\n     *   ctime: 2019-06-22T03:37:06.624Z,\n     *   birthtime: 2019-06-22T03:28:46.937Z\n     * }\n     * false\n     * Stats {\n     *   dev: 16777220,\n     *   mode: 33188,\n     *   nlink: 1,\n     *   uid: 501,\n     *   gid: 20,\n     *   rdev: 0,\n     *   blksize: 4096,\n     *   ino: 14214074,\n     *   size: 8,\n     *   blocks: 8,\n     *   atimeMs: 1561174616618.8555,\n     *   mtimeMs: 1561174614584,\n     *   ctimeMs: 1561174614583.8145,\n     *   birthtimeMs: 1561174007710.7478,\n     *   atime: 2019-06-22T03:36:56.619Z,\n     *   mtime: 2019-06-22T03:36:54.584Z,\n     *   ctime: 2019-06-22T03:36:54.584Z,\n     *   birthtime: 2019-06-22T03:26:47.711Z\n     * }\n     * ```\n     * @since v0.0.2\n     */\n    export function stat(path: PathLike, callback: (err: NodeJS.ErrnoException | null, stats: Stats) => void): void;\n    export function stat(\n        path: PathLike,\n        options:\n            | (StatOptions & {\n                  bigint?: false | undefined;\n              })\n            | undefined,\n        callback: (err: NodeJS.ErrnoException | null, stats: Stats) => void\n    ): void;\n    export function stat(\n        path: PathLike,\n        options: StatOptions & {\n            bigint: true;\n        },\n        callback: (err: NodeJS.ErrnoException | null, stats: BigIntStats) => void\n    ): void;\n    export function stat(path: PathLike, options: StatOptions | undefined, callback: (err: NodeJS.ErrnoException | null, stats: Stats | BigIntStats) => void): void;\n    export namespace stat {\n        /**\n         * Asynchronous stat(2) - Get file status.\n         * @param path A path to a file. If a URL is provided, it must use the `file:` protocol.\n         */\n        function __promisify__(\n            path: PathLike,\n            options?: StatOptions & {\n                bigint?: false | undefined;\n            }\n        ): Promise<Stats>;\n        function __promisify__(\n            path: PathLike,\n            options: StatOptions & {\n                bigint: true;\n            }\n        ): Promise<BigIntStats>;\n        function __promisify__(path: PathLike, options?: StatOptions): Promise<Stats | BigIntStats>;\n    }\n    export interface StatSyncFn extends Function {\n        (path: PathLike, options?: undefined): Stats;\n        (\n            path: PathLike,\n            options?: StatSyncOptions & {\n                bigint?: false | undefined;\n                throwIfNoEntry: false;\n            }\n        ): Stats | undefined;\n        (\n            path: PathLike,\n            options: StatSyncOptions & {\n                bigint: true;\n                throwIfNoEntry: false;\n            }\n        ): BigIntStats | undefined;\n        (\n            path: PathLike,\n            options?: StatSyncOptions & {\n                bigint?: false | undefined;\n            }\n        ): Stats;\n        (\n            path: PathLike,\n            options: StatSyncOptions & {\n                bigint: true;\n            }\n        ): BigIntStats;\n        (\n            path: PathLike,\n            options: StatSyncOptions & {\n                bigint: boolean;\n                throwIfNoEntry?: false | undefined;\n            }\n        ): Stats | BigIntStats;\n        (path: PathLike, options?: StatSyncOptions): Stats | BigIntStats | undefined;\n    }\n    /**\n     * Synchronous stat(2) - Get file status.\n     * @param path A path to a file. If a URL is provided, it must use the `file:` protocol.\n     */\n    export const statSync: StatSyncFn;\n    /**\n     * Invokes the callback with the `fs.Stats` for the file descriptor.\n     *\n     * See the POSIX [`fstat(2)`](http://man7.org/linux/man-pages/man2/fstat.2.html) documentation for more detail.\n     * @since v0.1.95\n     */\n    export function fstat(fd: number, callback: (err: NodeJS.ErrnoException | null, stats: Stats) => void): void;\n    export function fstat(\n        fd: number,\n        options:\n            | (StatOptions & {\n                  bigint?: false | undefined;\n              })\n            | undefined,\n        callback: (err: NodeJS.ErrnoException | null, stats: Stats) => void\n    ): void;\n    export function fstat(\n        fd: number,\n        options: StatOptions & {\n            bigint: true;\n        },\n        callback: (err: NodeJS.ErrnoException | null, stats: BigIntStats) => void\n    ): void;\n    export function fstat(fd: number, options: StatOptions | undefined, callback: (err: NodeJS.ErrnoException | null, stats: Stats | BigIntStats) => void): void;\n    export namespace fstat {\n        /**\n         * Asynchronous fstat(2) - Get file status.\n         * @param fd A file descriptor.\n         */\n        function __promisify__(\n            fd: number,\n            options?: StatOptions & {\n                bigint?: false | undefined;\n            }\n        ): Promise<Stats>;\n        function __promisify__(\n            fd: number,\n            options: StatOptions & {\n                bigint: true;\n            }\n        ): Promise<BigIntStats>;\n        function __promisify__(fd: number, options?: StatOptions): Promise<Stats | BigIntStats>;\n    }\n    /**\n     * Synchronous fstat(2) - Get file status.\n     * @param fd A file descriptor.\n     */\n    export function fstatSync(\n        fd: number,\n        options?: StatOptions & {\n            bigint?: false | undefined;\n        }\n    ): Stats;\n    export function fstatSync(\n        fd: number,\n        options: StatOptions & {\n            bigint: true;\n        }\n    ): BigIntStats;\n    export function fstatSync(fd: number, options?: StatOptions): Stats | BigIntStats;\n\n    /**\n     * Retrieves the `fs.Stats` for the symbolic link referred to by the path.\n     * The callback gets two arguments `(err, stats)` where `stats` is a `fs.Stats` object. `lstat()` is identical to `stat()`, except that if `path` is a symbolic\n     * link, then the link itself is stat-ed, not the file that it refers to.\n     *\n     * See the POSIX [`lstat(2)`](http://man7.org/linux/man-pages/man2/lstat.2.html) documentation for more details.\n     * @since v0.1.30\n     */\n    export function lstat(path: PathLike, callback: (err: NodeJS.ErrnoException | null, stats: Stats) => void): void;\n    export function lstat(\n        path: PathLike,\n        options:\n            | (StatOptions & {\n                  bigint?: false | undefined;\n              })\n            | undefined,\n        callback: (err: NodeJS.ErrnoException | null, stats: Stats) => void\n    ): void;\n    export function lstat(\n        path: PathLike,\n        options: StatOptions & {\n            bigint: true;\n        },\n        callback: (err: NodeJS.ErrnoException | null, stats: BigIntStats) => void\n    ): void;\n    export function lstat(path: PathLike, options: StatOptions | undefined, callback: (err: NodeJS.ErrnoException | null, stats: Stats | BigIntStats) => void): void;\n    export namespace lstat {\n        /**\n         * Asynchronous lstat(2) - Get file status. Does not dereference symbolic links.\n         * @param path A path to a file. If a URL is provided, it must use the `file:` protocol.\n         */\n        function __promisify__(\n            path: PathLike,\n            options?: StatOptions & {\n                bigint?: false | undefined;\n            }\n        ): Promise<Stats>;\n        function __promisify__(\n            path: PathLike,\n            options: StatOptions & {\n                bigint: true;\n            }\n        ): Promise<BigIntStats>;\n        function __promisify__(path: PathLike, options?: StatOptions): Promise<Stats | BigIntStats>;\n    }\n    /**\n     * Synchronous lstat(2) - Get file status. Does not dereference symbolic links.\n     * @param path A path to a file. If a URL is provided, it must use the `file:` protocol.\n     */\n    export const lstatSync: StatSyncFn;\n    /**\n     * Creates a new link from the `existingPath` to the `newPath`. See the POSIX [`link(2)`](http://man7.org/linux/man-pages/man2/link.2.html) documentation for more detail. No arguments other than\n     * a possible\n     * exception are given to the completion callback.\n     * @since v0.1.31\n     */\n    export function link(existingPath: PathLike, newPath: PathLike, callback: NoParamCallback): void;\n    export namespace link {\n        /**\n         * Asynchronous link(2) - Create a new link (also known as a hard link) to an existing file.\n         * @param existingPath A path to a file. If a URL is provided, it must use the `file:` protocol.\n         * @param newPath A path to a file. If a URL is provided, it must use the `file:` protocol.\n         */\n        function __promisify__(existingPath: PathLike, newPath: PathLike): Promise<void>;\n    }\n    /**\n     * Creates a new link from the `existingPath` to the `newPath`. See the POSIX [`link(2)`](http://man7.org/linux/man-pages/man2/link.2.html) documentation for more detail. Returns `undefined`.\n     * @since v0.1.31\n     */\n    export function linkSync(existingPath: PathLike, newPath: PathLike): void;\n    /**\n     * Creates the link called `path` pointing to `target`. No arguments other than a\n     * possible exception are given to the completion callback.\n     *\n     * See the POSIX [`symlink(2)`](http://man7.org/linux/man-pages/man2/symlink.2.html) documentation for more details.\n     *\n     * The `type` argument is only available on Windows and ignored on other platforms.\n     * It can be set to `'dir'`, `'file'`, or `'junction'`. If the `type` argument is\n     * not set, Node.js will autodetect `target` type and use `'file'` or `'dir'`. If\n     * the `target` does not exist, `'file'` will be used. Windows junction points\n     * require the destination path to be absolute. When using `'junction'`, the`target` argument will automatically be normalized to absolute path.\n     *\n     * Relative targets are relative to the link’s parent directory.\n     *\n     * ```js\n     * import { symlink } from 'fs';\n     *\n     * symlink('./mew', './example/mewtwo', callback);\n     * ```\n     *\n     * The above example creates a symbolic link `mewtwo` in the `example` which points\n     * to `mew` in the same directory:\n     *\n     * ```bash\n     * $ tree example/\n     * example/\n     * ├── mew\n     * └── mewtwo -> ./mew\n     * ```\n     * @since v0.1.31\n     */\n    export function symlink(target: PathLike, path: PathLike, type: symlink.Type | undefined | null, callback: NoParamCallback): void;\n    /**\n     * Asynchronous symlink(2) - Create a new symbolic link to an existing file.\n     * @param target A path to an existing file. If a URL is provided, it must use the `file:` protocol.\n     * @param path A path to the new symlink. If a URL is provided, it must use the `file:` protocol.\n     */\n    export function symlink(target: PathLike, path: PathLike, callback: NoParamCallback): void;\n    export namespace symlink {\n        /**\n         * Asynchronous symlink(2) - Create a new symbolic link to an existing file.\n         * @param target A path to an existing file. If a URL is provided, it must use the `file:` protocol.\n         * @param path A path to the new symlink. If a URL is provided, it must use the `file:` protocol.\n         * @param type May be set to `'dir'`, `'file'`, or `'junction'` (default is `'file'`) and is only available on Windows (ignored on other platforms).\n         * When using `'junction'`, the `target` argument will automatically be normalized to an absolute path.\n         */\n        function __promisify__(target: PathLike, path: PathLike, type?: string | null): Promise<void>;\n        type Type = 'dir' | 'file' | 'junction';\n    }\n    /**\n     * Returns `undefined`.\n     *\n     * For detailed information, see the documentation of the asynchronous version of\n     * this API: {@link symlink}.\n     * @since v0.1.31\n     */\n    export function symlinkSync(target: PathLike, path: PathLike, type?: symlink.Type | null): void;\n    /**\n     * Reads the contents of the symbolic link referred to by `path`. The callback gets\n     * two arguments `(err, linkString)`.\n     *\n     * See the POSIX [`readlink(2)`](http://man7.org/linux/man-pages/man2/readlink.2.html) documentation for more details.\n     *\n     * The optional `options` argument can be a string specifying an encoding, or an\n     * object with an `encoding` property specifying the character encoding to use for\n     * the link path passed to the callback. If the `encoding` is set to `'buffer'`,\n     * the link path returned will be passed as a `Buffer` object.\n     * @since v0.1.31\n     */\n    export function readlink(path: PathLike, options: EncodingOption, callback: (err: NodeJS.ErrnoException | null, linkString: string) => void): void;\n    /**\n     * Asynchronous readlink(2) - read value of a symbolic link.\n     * @param path A path to a file. If a URL is provided, it must use the `file:` protocol.\n     * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used.\n     */\n    export function readlink(path: PathLike, options: BufferEncodingOption, callback: (err: NodeJS.ErrnoException | null, linkString: Buffer) => void): void;\n    /**\n     * Asynchronous readlink(2) - read value of a symbolic link.\n     * @param path A path to a file. If a URL is provided, it must use the `file:` protocol.\n     * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used.\n     */\n    export function readlink(path: PathLike, options: EncodingOption, callback: (err: NodeJS.ErrnoException | null, linkString: string | Buffer) => void): void;\n    /**\n     * Asynchronous readlink(2) - read value of a symbolic link.\n     * @param path A path to a file. If a URL is provided, it must use the `file:` protocol.\n     */\n    export function readlink(path: PathLike, callback: (err: NodeJS.ErrnoException | null, linkString: string) => void): void;\n    export namespace readlink {\n        /**\n         * Asynchronous readlink(2) - read value of a symbolic link.\n         * @param path A path to a file. If a URL is provided, it must use the `file:` protocol.\n         * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used.\n         */\n        function __promisify__(path: PathLike, options?: EncodingOption): Promise<string>;\n        /**\n         * Asynchronous readlink(2) - read value of a symbolic link.\n         * @param path A path to a file. If a URL is provided, it must use the `file:` protocol.\n         * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used.\n         */\n        function __promisify__(path: PathLike, options: BufferEncodingOption): Promise<Buffer>;\n        /**\n         * Asynchronous readlink(2) - read value of a symbolic link.\n         * @param path A path to a file. If a URL is provided, it must use the `file:` protocol.\n         * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used.\n         */\n        function __promisify__(path: PathLike, options?: EncodingOption): Promise<string | Buffer>;\n    }\n    /**\n     * Returns the symbolic link's string value.\n     *\n     * See the POSIX [`readlink(2)`](http://man7.org/linux/man-pages/man2/readlink.2.html) documentation for more details.\n     *\n     * The optional `options` argument can be a string specifying an encoding, or an\n     * object with an `encoding` property specifying the character encoding to use for\n     * the link path returned. If the `encoding` is set to `'buffer'`,\n     * the link path returned will be passed as a `Buffer` object.\n     * @since v0.1.31\n     */\n    export function readlinkSync(path: PathLike, options?: EncodingOption): string;\n    /**\n     * Synchronous readlink(2) - read value of a symbolic link.\n     * @param path A path to a file. If a URL is provided, it must use the `file:` protocol.\n     * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used.\n     */\n    export function readlinkSync(path: PathLike, options: BufferEncodingOption): Buffer;\n    /**\n     * Synchronous readlink(2) - read value of a symbolic link.\n     * @param path A path to a file. If a URL is provided, it must use the `file:` protocol.\n     * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used.\n     */\n    export function readlinkSync(path: PathLike, options?: EncodingOption): string | Buffer;\n    /**\n     * Asynchronously computes the canonical pathname by resolving `.`, `..` and\n     * symbolic links.\n     *\n     * A canonical pathname is not necessarily unique. Hard links and bind mounts can\n     * expose a file system entity through many pathnames.\n     *\n     * This function behaves like [`realpath(3)`](http://man7.org/linux/man-pages/man3/realpath.3.html), with some exceptions:\n     *\n     * 1. No case conversion is performed on case-insensitive file systems.\n     * 2. The maximum number of symbolic links is platform-independent and generally\n     * (much) higher than what the native [`realpath(3)`](http://man7.org/linux/man-pages/man3/realpath.3.html) implementation supports.\n     *\n     * The `callback` gets two arguments `(err, resolvedPath)`. May use `process.cwd`to resolve relative paths.\n     *\n     * Only paths that can be converted to UTF8 strings are supported.\n     *\n     * The optional `options` argument can be a string specifying an encoding, or an\n     * object with an `encoding` property specifying the character encoding to use for\n     * the path passed to the callback. If the `encoding` is set to `'buffer'`,\n     * the path returned will be passed as a `Buffer` object.\n     *\n     * If `path` resolves to a socket or a pipe, the function will return a system\n     * dependent name for that object.\n     * @since v0.1.31\n     */\n    export function realpath(path: PathLike, options: EncodingOption, callback: (err: NodeJS.ErrnoException | null, resolvedPath: string) => void): void;\n    /**\n     * Asynchronous realpath(3) - return the canonicalized absolute pathname.\n     * @param path A path to a file. If a URL is provided, it must use the `file:` protocol.\n     * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used.\n     */\n    export function realpath(path: PathLike, options: BufferEncodingOption, callback: (err: NodeJS.ErrnoException | null, resolvedPath: Buffer) => void): void;\n    /**\n     * Asynchronous realpath(3) - return the canonicalized absolute pathname.\n     * @param path A path to a file. If a URL is provided, it must use the `file:` protocol.\n     * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used.\n     */\n    export function realpath(path: PathLike, options: EncodingOption, callback: (err: NodeJS.ErrnoException | null, resolvedPath: string | Buffer) => void): void;\n    /**\n     * Asynchronous realpath(3) - return the canonicalized absolute pathname.\n     * @param path A path to a file. If a URL is provided, it must use the `file:` protocol.\n     */\n    export function realpath(path: PathLike, callback: (err: NodeJS.ErrnoException | null, resolvedPath: string) => void): void;\n    export namespace realpath {\n        /**\n         * Asynchronous realpath(3) - return the canonicalized absolute pathname.\n         * @param path A path to a file. If a URL is provided, it must use the `file:` protocol.\n         * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used.\n         */\n        function __promisify__(path: PathLike, options?: EncodingOption): Promise<string>;\n        /**\n         * Asynchronous realpath(3) - return the canonicalized absolute pathname.\n         * @param path A path to a file. If a URL is provided, it must use the `file:` protocol.\n         * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used.\n         */\n        function __promisify__(path: PathLike, options: BufferEncodingOption): Promise<Buffer>;\n        /**\n         * Asynchronous realpath(3) - return the canonicalized absolute pathname.\n         * @param path A path to a file. If a URL is provided, it must use the `file:` protocol.\n         * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used.\n         */\n        function __promisify__(path: PathLike, options?: EncodingOption): Promise<string | Buffer>;\n        /**\n         * Asynchronous [`realpath(3)`](http://man7.org/linux/man-pages/man3/realpath.3.html).\n         *\n         * The `callback` gets two arguments `(err, resolvedPath)`.\n         *\n         * Only paths that can be converted to UTF8 strings are supported.\n         *\n         * The optional `options` argument can be a string specifying an encoding, or an\n         * object with an `encoding` property specifying the character encoding to use for\n         * the path passed to the callback. If the `encoding` is set to `'buffer'`,\n         * the path returned will be passed as a `Buffer` object.\n         *\n         * On Linux, when Node.js is linked against musl libc, the procfs file system must\n         * be mounted on `/proc` in order for this function to work. Glibc does not have\n         * this restriction.\n         * @since v9.2.0\n         */\n        function native(path: PathLike, options: EncodingOption, callback: (err: NodeJS.ErrnoException | null, resolvedPath: string) => void): void;\n        function native(path: PathLike, options: BufferEncodingOption, callback: (err: NodeJS.ErrnoException | null, resolvedPath: Buffer) => void): void;\n        function native(path: PathLike, options: EncodingOption, callback: (err: NodeJS.ErrnoException | null, resolvedPath: string | Buffer) => void): void;\n        function native(path: PathLike, callback: (err: NodeJS.ErrnoException | null, resolvedPath: string) => void): void;\n    }\n    /**\n     * Returns the resolved pathname.\n     *\n     * For detailed information, see the documentation of the asynchronous version of\n     * this API: {@link realpath}.\n     * @since v0.1.31\n     */\n    export function realpathSync(path: PathLike, options?: EncodingOption): string;\n    /**\n     * Synchronous realpath(3) - return the canonicalized absolute pathname.\n     * @param path A path to a file. If a URL is provided, it must use the `file:` protocol.\n     * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used.\n     */\n    export function realpathSync(path: PathLike, options: BufferEncodingOption): Buffer;\n    /**\n     * Synchronous realpath(3) - return the canonicalized absolute pathname.\n     * @param path A path to a file. If a URL is provided, it must use the `file:` protocol.\n     * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used.\n     */\n    export function realpathSync(path: PathLike, options?: EncodingOption): string | Buffer;\n    export namespace realpathSync {\n        function native(path: PathLike, options?: EncodingOption): string;\n        function native(path: PathLike, options: BufferEncodingOption): Buffer;\n        function native(path: PathLike, options?: EncodingOption): string | Buffer;\n    }\n    /**\n     * Asynchronously removes a file or symbolic link. No arguments other than a\n     * possible exception are given to the completion callback.\n     *\n     * ```js\n     * import { unlink } from 'fs';\n     * // Assuming that 'path/file.txt' is a regular file.\n     * unlink('path/file.txt', (err) => {\n     *   if (err) throw err;\n     *   console.log('path/file.txt was deleted');\n     * });\n     * ```\n     *\n     * `fs.unlink()` will not work on a directory, empty or otherwise. To remove a\n     * directory, use {@link rmdir}.\n     *\n     * See the POSIX [`unlink(2)`](http://man7.org/linux/man-pages/man2/unlink.2.html) documentation for more details.\n     * @since v0.0.2\n     */\n    export function unlink(path: PathLike, callback: NoParamCallback): void;\n    export namespace unlink {\n        /**\n         * Asynchronous unlink(2) - delete a name and possibly the file it refers to.\n         * @param path A path to a file. If a URL is provided, it must use the `file:` protocol.\n         */\n        function __promisify__(path: PathLike): Promise<void>;\n    }\n    /**\n     * Synchronous [`unlink(2)`](http://man7.org/linux/man-pages/man2/unlink.2.html). Returns `undefined`.\n     * @since v0.1.21\n     */\n    export function unlinkSync(path: PathLike): void;\n    export interface RmDirOptions {\n        /**\n         * If an `EBUSY`, `EMFILE`, `ENFILE`, `ENOTEMPTY`, or\n         * `EPERM` error is encountered, Node.js will retry the operation with a linear\n         * backoff wait of `retryDelay` ms longer on each try. This option represents the\n         * number of retries. This option is ignored if the `recursive` option is not\n         * `true`.\n         * @default 0\n         */\n        maxRetries?: number | undefined;\n        /**\n         * @deprecated since v14.14.0 In future versions of Node.js and will trigger a warning\n         * `fs.rmdir(path, { recursive: true })` will throw if `path` does not exist or is a file.\n         * Use `fs.rm(path, { recursive: true, force: true })` instead.\n         *\n         * If `true`, perform a recursive directory removal. In\n         * recursive mode soperations are retried on failure.\n         * @default false\n         */\n        recursive?: boolean | undefined;\n        /**\n         * The amount of time in milliseconds to wait between retries.\n         * This option is ignored if the `recursive` option is not `true`.\n         * @default 100\n         */\n        retryDelay?: number | undefined;\n    }\n    /**\n     * Asynchronous [`rmdir(2)`](http://man7.org/linux/man-pages/man2/rmdir.2.html). No arguments other than a possible exception are given\n     * to the completion callback.\n     *\n     * Using `fs.rmdir()` on a file (not a directory) results in an `ENOENT` error on\n     * Windows and an `ENOTDIR` error on POSIX.\n     *\n     * To get a behavior similar to the `rm -rf` Unix command, use {@link rm} with options `{ recursive: true, force: true }`.\n     * @since v0.0.2\n     */\n    export function rmdir(path: PathLike, callback: NoParamCallback): void;\n    export function rmdir(path: PathLike, options: RmDirOptions, callback: NoParamCallback): void;\n    export namespace rmdir {\n        /**\n         * Asynchronous rmdir(2) - delete a directory.\n         * @param path A path to a file. If a URL is provided, it must use the `file:` protocol.\n         */\n        function __promisify__(path: PathLike, options?: RmDirOptions): Promise<void>;\n    }\n    /**\n     * Synchronous [`rmdir(2)`](http://man7.org/linux/man-pages/man2/rmdir.2.html). Returns `undefined`.\n     *\n     * Using `fs.rmdirSync()` on a file (not a directory) results in an `ENOENT` error\n     * on Windows and an `ENOTDIR` error on POSIX.\n     *\n     * To get a behavior similar to the `rm -rf` Unix command, use {@link rmSync} with options `{ recursive: true, force: true }`.\n     * @since v0.1.21\n     */\n    export function rmdirSync(path: PathLike, options?: RmDirOptions): void;\n    export interface RmOptions {\n        /**\n         * When `true`, exceptions will be ignored if `path` does not exist.\n         * @default false\n         */\n        force?: boolean | undefined;\n        /**\n         * If an `EBUSY`, `EMFILE`, `ENFILE`, `ENOTEMPTY`, or\n         * `EPERM` error is encountered, Node.js will retry the operation with a linear\n         * backoff wait of `retryDelay` ms longer on each try. This option represents the\n         * number of retries. This option is ignored if the `recursive` option is not\n         * `true`.\n         * @default 0\n         */\n        maxRetries?: number | undefined;\n        /**\n         * If `true`, perform a recursive directory removal. In\n         * recursive mode, operations are retried on failure.\n         * @default false\n         */\n        recursive?: boolean | undefined;\n        /**\n         * The amount of time in milliseconds to wait between retries.\n         * This option is ignored if the `recursive` option is not `true`.\n         * @default 100\n         */\n        retryDelay?: number | undefined;\n    }\n    /**\n     * Asynchronously removes files and directories (modeled on the standard POSIX `rm`utility). No arguments other than a possible exception are given to the\n     * completion callback.\n     * @since v14.14.0\n     */\n    export function rm(path: PathLike, callback: NoParamCallback): void;\n    export function rm(path: PathLike, options: RmOptions, callback: NoParamCallback): void;\n    export namespace rm {\n        /**\n         * Asynchronously removes files and directories (modeled on the standard POSIX `rm` utility).\n         */\n        function __promisify__(path: PathLike, options?: RmOptions): Promise<void>;\n    }\n    /**\n     * Synchronously removes files and directories (modeled on the standard POSIX `rm`utility). Returns `undefined`.\n     * @since v14.14.0\n     */\n    export function rmSync(path: PathLike, options?: RmOptions): void;\n    export interface MakeDirectoryOptions {\n        /**\n         * Indicates whether parent folders should be created.\n         * If a folder was created, the path to the first created folder will be returned.\n         * @default false\n         */\n        recursive?: boolean | undefined;\n        /**\n         * A file mode. If a string is passed, it is parsed as an octal integer. If not specified\n         * @default 0o777\n         */\n        mode?: Mode | undefined;\n    }\n    /**\n     * Asynchronously creates a directory.\n     *\n     * The callback is given a possible exception and, if `recursive` is `true`, the\n     * first directory path created, `(err[, path])`.`path` can still be `undefined` when `recursive` is `true`, if no directory was\n     * created.\n     *\n     * The optional `options` argument can be an integer specifying `mode` (permission\n     * and sticky bits), or an object with a `mode` property and a `recursive`property indicating whether parent directories should be created. Calling`fs.mkdir()` when `path` is a directory that\n     * exists results in an error only\n     * when `recursive` is false.\n     *\n     * ```js\n     * import { mkdir } from 'fs';\n     *\n     * // Creates /tmp/a/apple, regardless of whether `/tmp` and /tmp/a exist.\n     * mkdir('/tmp/a/apple', { recursive: true }, (err) => {\n     *   if (err) throw err;\n     * });\n     * ```\n     *\n     * On Windows, using `fs.mkdir()` on the root directory even with recursion will\n     * result in an error:\n     *\n     * ```js\n     * import { mkdir } from 'fs';\n     *\n     * mkdir('/', { recursive: true }, (err) => {\n     *   // => [Error: EPERM: operation not permitted, mkdir 'C:\\']\n     * });\n     * ```\n     *\n     * See the POSIX [`mkdir(2)`](http://man7.org/linux/man-pages/man2/mkdir.2.html) documentation for more details.\n     * @since v0.1.8\n     */\n    export function mkdir(\n        path: PathLike,\n        options: MakeDirectoryOptions & {\n            recursive: true;\n        },\n        callback: (err: NodeJS.ErrnoException | null, path?: string) => void\n    ): void;\n    /**\n     * Asynchronous mkdir(2) - create a directory.\n     * @param path A path to a file. If a URL is provided, it must use the `file:` protocol.\n     * @param options Either the file mode, or an object optionally specifying the file mode and whether parent folders\n     * should be created. If a string is passed, it is parsed as an octal integer. If not specified, defaults to `0o777`.\n     */\n    export function mkdir(\n        path: PathLike,\n        options:\n            | Mode\n            | (MakeDirectoryOptions & {\n                  recursive?: false | undefined;\n              })\n            | null\n            | undefined,\n        callback: NoParamCallback\n    ): void;\n    /**\n     * Asynchronous mkdir(2) - create a directory.\n     * @param path A path to a file. If a URL is provided, it must use the `file:` protocol.\n     * @param options Either the file mode, or an object optionally specifying the file mode and whether parent folders\n     * should be created. If a string is passed, it is parsed as an octal integer. If not specified, defaults to `0o777`.\n     */\n    export function mkdir(path: PathLike, options: Mode | MakeDirectoryOptions | null | undefined, callback: (err: NodeJS.ErrnoException | null, path?: string) => void): void;\n    /**\n     * Asynchronous mkdir(2) - create a directory with a mode of `0o777`.\n     * @param path A path to a file. If a URL is provided, it must use the `file:` protocol.\n     */\n    export function mkdir(path: PathLike, callback: NoParamCallback): void;\n    export namespace mkdir {\n        /**\n         * Asynchronous mkdir(2) - create a directory.\n         * @param path A path to a file. If a URL is provided, it must use the `file:` protocol.\n         * @param options Either the file mode, or an object optionally specifying the file mode and whether parent folders\n         * should be created. If a string is passed, it is parsed as an octal integer. If not specified, defaults to `0o777`.\n         */\n        function __promisify__(\n            path: PathLike,\n            options: MakeDirectoryOptions & {\n                recursive: true;\n            }\n        ): Promise<string | undefined>;\n        /**\n         * Asynchronous mkdir(2) - create a directory.\n         * @param path A path to a file. If a URL is provided, it must use the `file:` protocol.\n         * @param options Either the file mode, or an object optionally specifying the file mode and whether parent folders\n         * should be created. If a string is passed, it is parsed as an octal integer. If not specified, defaults to `0o777`.\n         */\n        function __promisify__(\n            path: PathLike,\n            options?:\n                | Mode\n                | (MakeDirectoryOptions & {\n                      recursive?: false | undefined;\n                  })\n                | null\n        ): Promise<void>;\n        /**\n         * Asynchronous mkdir(2) - create a directory.\n         * @param path A path to a file. If a URL is provided, it must use the `file:` protocol.\n         * @param options Either the file mode, or an object optionally specifying the file mode and whether parent folders\n         * should be created. If a string is passed, it is parsed as an octal integer. If not specified, defaults to `0o777`.\n         */\n        function __promisify__(path: PathLike, options?: Mode | MakeDirectoryOptions | null): Promise<string | undefined>;\n    }\n    /**\n     * Synchronously creates a directory. Returns `undefined`, or if `recursive` is`true`, the first directory path created.\n     * This is the synchronous version of {@link mkdir}.\n     *\n     * See the POSIX [`mkdir(2)`](http://man7.org/linux/man-pages/man2/mkdir.2.html) documentation for more details.\n     * @since v0.1.21\n     */\n    export function mkdirSync(\n        path: PathLike,\n        options: MakeDirectoryOptions & {\n            recursive: true;\n        }\n    ): string | undefined;\n    /**\n     * Synchronous mkdir(2) - create a directory.\n     * @param path A path to a file. If a URL is provided, it must use the `file:` protocol.\n     * @param options Either the file mode, or an object optionally specifying the file mode and whether parent folders\n     * should be created. If a string is passed, it is parsed as an octal integer. If not specified, defaults to `0o777`.\n     */\n    export function mkdirSync(\n        path: PathLike,\n        options?:\n            | Mode\n            | (MakeDirectoryOptions & {\n                  recursive?: false | undefined;\n              })\n            | null\n    ): void;\n    /**\n     * Synchronous mkdir(2) - create a directory.\n     * @param path A path to a file. If a URL is provided, it must use the `file:` protocol.\n     * @param options Either the file mode, or an object optionally specifying the file mode and whether parent folders\n     * should be created. If a string is passed, it is parsed as an octal integer. If not specified, defaults to `0o777`.\n     */\n    export function mkdirSync(path: PathLike, options?: Mode | MakeDirectoryOptions | null): string | undefined;\n    /**\n     * Creates a unique temporary directory.\n     *\n     * Generates six random characters to be appended behind a required`prefix` to create a unique temporary directory. Due to platform\n     * inconsistencies, avoid trailing `X` characters in `prefix`. Some platforms,\n     * notably the BSDs, can return more than six random characters, and replace\n     * trailing `X` characters in `prefix` with random characters.\n     *\n     * The created directory path is passed as a string to the callback's second\n     * parameter.\n     *\n     * The optional `options` argument can be a string specifying an encoding, or an\n     * object with an `encoding` property specifying the character encoding to use.\n     *\n     * ```js\n     * import { mkdtemp } from 'fs';\n     *\n     * mkdtemp(path.join(os.tmpdir(), 'foo-'), (err, directory) => {\n     *   if (err) throw err;\n     *   console.log(directory);\n     *   // Prints: /tmp/foo-itXde2 or C:\\Users\\...\\AppData\\Local\\Temp\\foo-itXde2\n     * });\n     * ```\n     *\n     * The `fs.mkdtemp()` method will append the six randomly selected characters\n     * directly to the `prefix` string. For instance, given a directory `/tmp`, if the\n     * intention is to create a temporary directory _within_`/tmp`, the `prefix`must end with a trailing platform-specific path separator\n     * (`require('path').sep`).\n     *\n     * ```js\n     * import { tmpdir } from 'os';\n     * import { mkdtemp } from 'fs';\n     *\n     * // The parent directory for the new temporary directory\n     * const tmpDir = tmpdir();\n     *\n     * // This method is *INCORRECT*:\n     * mkdtemp(tmpDir, (err, directory) => {\n     *   if (err) throw err;\n     *   console.log(directory);\n     *   // Will print something similar to `/tmpabc123`.\n     *   // A new temporary directory is created at the file system root\n     *   // rather than *within* the /tmp directory.\n     * });\n     *\n     * // This method is *CORRECT*:\n     * import { sep } from 'path';\n     * mkdtemp(`${tmpDir}${sep}`, (err, directory) => {\n     *   if (err) throw err;\n     *   console.log(directory);\n     *   // Will print something similar to `/tmp/abc123`.\n     *   // A new temporary directory is created within\n     *   // the /tmp directory.\n     * });\n     * ```\n     * @since v5.10.0\n     */\n    export function mkdtemp(prefix: string, options: EncodingOption, callback: (err: NodeJS.ErrnoException | null, folder: string) => void): void;\n    /**\n     * Asynchronously creates a unique temporary directory.\n     * Generates six random characters to be appended behind a required prefix to create a unique temporary directory.\n     * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used.\n     */\n    export function mkdtemp(\n        prefix: string,\n        options:\n            | 'buffer'\n            | {\n                  encoding: 'buffer';\n              },\n        callback: (err: NodeJS.ErrnoException | null, folder: Buffer) => void\n    ): void;\n    /**\n     * Asynchronously creates a unique temporary directory.\n     * Generates six random characters to be appended behind a required prefix to create a unique temporary directory.\n     * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used.\n     */\n    export function mkdtemp(prefix: string, options: EncodingOption, callback: (err: NodeJS.ErrnoException | null, folder: string | Buffer) => void): void;\n    /**\n     * Asynchronously creates a unique temporary directory.\n     * Generates six random characters to be appended behind a required prefix to create a unique temporary directory.\n     */\n    export function mkdtemp(prefix: string, callback: (err: NodeJS.ErrnoException | null, folder: string) => void): void;\n    export namespace mkdtemp {\n        /**\n         * Asynchronously creates a unique temporary directory.\n         * Generates six random characters to be appended behind a required prefix to create a unique temporary directory.\n         * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used.\n         */\n        function __promisify__(prefix: string, options?: EncodingOption): Promise<string>;\n        /**\n         * Asynchronously creates a unique temporary directory.\n         * Generates six random characters to be appended behind a required prefix to create a unique temporary directory.\n         * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used.\n         */\n        function __promisify__(prefix: string, options: BufferEncodingOption): Promise<Buffer>;\n        /**\n         * Asynchronously creates a unique temporary directory.\n         * Generates six random characters to be appended behind a required prefix to create a unique temporary directory.\n         * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used.\n         */\n        function __promisify__(prefix: string, options?: EncodingOption): Promise<string | Buffer>;\n    }\n    /**\n     * Returns the created directory path.\n     *\n     * For detailed information, see the documentation of the asynchronous version of\n     * this API: {@link mkdtemp}.\n     *\n     * The optional `options` argument can be a string specifying an encoding, or an\n     * object with an `encoding` property specifying the character encoding to use.\n     * @since v5.10.0\n     */\n    export function mkdtempSync(prefix: string, options?: EncodingOption): string;\n    /**\n     * Synchronously creates a unique temporary directory.\n     * Generates six random characters to be appended behind a required prefix to create a unique temporary directory.\n     * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used.\n     */\n    export function mkdtempSync(prefix: string, options: BufferEncodingOption): Buffer;\n    /**\n     * Synchronously creates a unique temporary directory.\n     * Generates six random characters to be appended behind a required prefix to create a unique temporary directory.\n     * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used.\n     */\n    export function mkdtempSync(prefix: string, options?: EncodingOption): string | Buffer;\n    /**\n     * Reads the contents of a directory. The callback gets two arguments `(err, files)`where `files` is an array of the names of the files in the directory excluding`'.'` and `'..'`.\n     *\n     * See the POSIX [`readdir(3)`](http://man7.org/linux/man-pages/man3/readdir.3.html) documentation for more details.\n     *\n     * The optional `options` argument can be a string specifying an encoding, or an\n     * object with an `encoding` property specifying the character encoding to use for\n     * the filenames passed to the callback. If the `encoding` is set to `'buffer'`,\n     * the filenames returned will be passed as `Buffer` objects.\n     *\n     * If `options.withFileTypes` is set to `true`, the `files` array will contain `fs.Dirent` objects.\n     * @since v0.1.8\n     */\n    export function readdir(\n        path: PathLike,\n        options:\n            | {\n                  encoding: BufferEncoding | null;\n                  withFileTypes?: false | undefined;\n              }\n            | BufferEncoding\n            | undefined\n            | null,\n        callback: (err: NodeJS.ErrnoException | null, files: string[]) => void\n    ): void;\n    /**\n     * Asynchronous readdir(3) - read a directory.\n     * @param path A path to a file. If a URL is provided, it must use the `file:` protocol.\n     * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used.\n     */\n    export function readdir(\n        path: PathLike,\n        options:\n            | {\n                  encoding: 'buffer';\n                  withFileTypes?: false | undefined;\n              }\n            | 'buffer',\n        callback: (err: NodeJS.ErrnoException | null, files: Buffer[]) => void\n    ): void;\n    /**\n     * Asynchronous readdir(3) - read a directory.\n     * @param path A path to a file. If a URL is provided, it must use the `file:` protocol.\n     * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used.\n     */\n    export function readdir(\n        path: PathLike,\n        options:\n            | (ObjectEncodingOptions & {\n                  withFileTypes?: false | undefined;\n              })\n            | BufferEncoding\n            | undefined\n            | null,\n        callback: (err: NodeJS.ErrnoException | null, files: string[] | Buffer[]) => void\n    ): void;\n    /**\n     * Asynchronous readdir(3) - read a directory.\n     * @param path A path to a file. If a URL is provided, it must use the `file:` protocol.\n     */\n    export function readdir(path: PathLike, callback: (err: NodeJS.ErrnoException | null, files: string[]) => void): void;\n    /**\n     * Asynchronous readdir(3) - read a directory.\n     * @param path A path to a file. If a URL is provided, it must use the `file:` protocol.\n     * @param options If called with `withFileTypes: true` the result data will be an array of Dirent.\n     */\n    export function readdir(\n        path: PathLike,\n        options: ObjectEncodingOptions & {\n            withFileTypes: true;\n        },\n        callback: (err: NodeJS.ErrnoException | null, files: Dirent[]) => void\n    ): void;\n    export namespace readdir {\n        /**\n         * Asynchronous readdir(3) - read a directory.\n         * @param path A path to a file. If a URL is provided, it must use the `file:` protocol.\n         * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used.\n         */\n        function __promisify__(\n            path: PathLike,\n            options?:\n                | {\n                      encoding: BufferEncoding | null;\n                      withFileTypes?: false | undefined;\n                  }\n                | BufferEncoding\n                | null\n        ): Promise<string[]>;\n        /**\n         * Asynchronous readdir(3) - read a directory.\n         * @param path A path to a file. If a URL is provided, it must use the `file:` protocol.\n         * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used.\n         */\n        function __promisify__(\n            path: PathLike,\n            options:\n                | 'buffer'\n                | {\n                      encoding: 'buffer';\n                      withFileTypes?: false | undefined;\n                  }\n        ): Promise<Buffer[]>;\n        /**\n         * Asynchronous readdir(3) - read a directory.\n         * @param path A path to a file. If a URL is provided, it must use the `file:` protocol.\n         * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used.\n         */\n        function __promisify__(\n            path: PathLike,\n            options?:\n                | (ObjectEncodingOptions & {\n                      withFileTypes?: false | undefined;\n                  })\n                | BufferEncoding\n                | null\n        ): Promise<string[] | Buffer[]>;\n        /**\n         * Asynchronous readdir(3) - read a directory.\n         * @param path A path to a file. If a URL is provided, it must use the `file:` protocol.\n         * @param options If called with `withFileTypes: true` the result data will be an array of Dirent\n         */\n        function __promisify__(\n            path: PathLike,\n            options: ObjectEncodingOptions & {\n                withFileTypes: true;\n            }\n        ): Promise<Dirent[]>;\n    }\n    /**\n     * Reads the contents of the directory.\n     *\n     * See the POSIX [`readdir(3)`](http://man7.org/linux/man-pages/man3/readdir.3.html) documentation for more details.\n     *\n     * The optional `options` argument can be a string specifying an encoding, or an\n     * object with an `encoding` property specifying the character encoding to use for\n     * the filenames returned. If the `encoding` is set to `'buffer'`,\n     * the filenames returned will be passed as `Buffer` objects.\n     *\n     * If `options.withFileTypes` is set to `true`, the result will contain `fs.Dirent` objects.\n     * @since v0.1.21\n     */\n    export function readdirSync(\n        path: PathLike,\n        options?:\n            | {\n                  encoding: BufferEncoding | null;\n                  withFileTypes?: false | undefined;\n              }\n            | BufferEncoding\n            | null\n    ): string[];\n    /**\n     * Synchronous readdir(3) - read a directory.\n     * @param path A path to a file. If a URL is provided, it must use the `file:` protocol.\n     * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used.\n     */\n    export function readdirSync(\n        path: PathLike,\n        options:\n            | {\n                  encoding: 'buffer';\n                  withFileTypes?: false | undefined;\n              }\n            | 'buffer'\n    ): Buffer[];\n    /**\n     * Synchronous readdir(3) - read a directory.\n     * @param path A path to a file. If a URL is provided, it must use the `file:` protocol.\n     * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used.\n     */\n    export function readdirSync(\n        path: PathLike,\n        options?:\n            | (ObjectEncodingOptions & {\n                  withFileTypes?: false | undefined;\n              })\n            | BufferEncoding\n            | null\n    ): string[] | Buffer[];\n    /**\n     * Synchronous readdir(3) - read a directory.\n     * @param path A path to a file. If a URL is provided, it must use the `file:` protocol.\n     * @param options If called with `withFileTypes: true` the result data will be an array of Dirent.\n     */\n    export function readdirSync(\n        path: PathLike,\n        options: ObjectEncodingOptions & {\n            withFileTypes: true;\n        }\n    ): Dirent[];\n    /**\n     * Closes the file descriptor. No arguments other than a possible exception are\n     * given to the completion callback.\n     *\n     * Calling `fs.close()` on any file descriptor (`fd`) that is currently in use\n     * through any other `fs` operation may lead to undefined behavior.\n     *\n     * See the POSIX [`close(2)`](http://man7.org/linux/man-pages/man2/close.2.html) documentation for more detail.\n     * @since v0.0.2\n     */\n    export function close(fd: number, callback?: NoParamCallback): void;\n    export namespace close {\n        /**\n         * Asynchronous close(2) - close a file descriptor.\n         * @param fd A file descriptor.\n         */\n        function __promisify__(fd: number): Promise<void>;\n    }\n    /**\n     * Closes the file descriptor. Returns `undefined`.\n     *\n     * Calling `fs.closeSync()` on any file descriptor (`fd`) that is currently in use\n     * through any other `fs` operation may lead to undefined behavior.\n     *\n     * See the POSIX [`close(2)`](http://man7.org/linux/man-pages/man2/close.2.html) documentation for more detail.\n     * @since v0.1.21\n     */\n    export function closeSync(fd: number): void;\n    /**\n     * Asynchronous file open. See the POSIX [`open(2)`](http://man7.org/linux/man-pages/man2/open.2.html) documentation for more details.\n     *\n     * `mode` sets the file mode (permission and sticky bits), but only if the file was\n     * created. On Windows, only the write permission can be manipulated; see {@link chmod}.\n     *\n     * The callback gets two arguments `(err, fd)`.\n     *\n     * Some characters (`< > : \" / \\ | ? *`) are reserved under Windows as documented\n     * by [Naming Files, Paths, and Namespaces](https://docs.microsoft.com/en-us/windows/desktop/FileIO/naming-a-file). Under NTFS, if the filename contains\n     * a colon, Node.js will open a file system stream, as described by [this MSDN page](https://docs.microsoft.com/en-us/windows/desktop/FileIO/using-streams).\n     *\n     * Functions based on `fs.open()` exhibit this behavior as well:`fs.writeFile()`, `fs.readFile()`, etc.\n     * @since v0.0.2\n     * @param [flags='r'] See `support of file system `flags``.\n     * @param [mode=0o666]\n     */\n    export function open(path: PathLike, flags: OpenMode | undefined, mode: Mode | undefined | null, callback: (err: NodeJS.ErrnoException | null, fd: number) => void): void;\n    /**\n     * Asynchronous open(2) - open and possibly create a file. If the file is created, its mode will be `0o666`.\n     * @param [flags='r'] See `support of file system `flags``.\n     * @param path A path to a file. If a URL is provided, it must use the `file:` protocol.\n     */\n    export function open(path: PathLike, flags: OpenMode | undefined, callback: (err: NodeJS.ErrnoException | null, fd: number) => void): void;\n    /**\n     * Asynchronous open(2) - open and possibly create a file. If the file is created, its mode will be `0o666`.\n     * @param path A path to a file. If a URL is provided, it must use the `file:` protocol.\n     */\n    export function open(path: PathLike, callback: (err: NodeJS.ErrnoException | null, fd: number) => void): void;\n    export namespace open {\n        /**\n         * Asynchronous open(2) - open and possibly create a file.\n         * @param path A path to a file. If a URL is provided, it must use the `file:` protocol.\n         * @param mode A file mode. If a string is passed, it is parsed as an octal integer. If not supplied, defaults to `0o666`.\n         */\n        function __promisify__(path: PathLike, flags: OpenMode, mode?: Mode | null): Promise<number>;\n    }\n    /**\n     * Returns an integer representing the file descriptor.\n     *\n     * For detailed information, see the documentation of the asynchronous version of\n     * this API: {@link open}.\n     * @since v0.1.21\n     * @param [flags='r']\n     * @param [mode=0o666]\n     */\n    export function openSync(path: PathLike, flags: OpenMode, mode?: Mode | null): number;\n    /**\n     * Change the file system timestamps of the object referenced by `path`.\n     *\n     * The `atime` and `mtime` arguments follow these rules:\n     *\n     * * Values can be either numbers representing Unix epoch time in seconds,`Date`s, or a numeric string like `'123456789.0'`.\n     * * If the value can not be converted to a number, or is `NaN`, `Infinity` or`-Infinity`, an `Error` will be thrown.\n     * @since v0.4.2\n     */\n    export function utimes(path: PathLike, atime: TimeLike, mtime: TimeLike, callback: NoParamCallback): void;\n    export namespace utimes {\n        /**\n         * Asynchronously change file timestamps of the file referenced by the supplied path.\n         * @param path A path to a file. If a URL is provided, it must use the `file:` protocol.\n         * @param atime The last access time. If a string is provided, it will be coerced to number.\n         * @param mtime The last modified time. If a string is provided, it will be coerced to number.\n         */\n        function __promisify__(path: PathLike, atime: TimeLike, mtime: TimeLike): Promise<void>;\n    }\n    /**\n     * Returns `undefined`.\n     *\n     * For detailed information, see the documentation of the asynchronous version of\n     * this API: {@link utimes}.\n     * @since v0.4.2\n     */\n    export function utimesSync(path: PathLike, atime: TimeLike, mtime: TimeLike): void;\n    /**\n     * Change the file system timestamps of the object referenced by the supplied file\n     * descriptor. See {@link utimes}.\n     * @since v0.4.2\n     */\n    export function futimes(fd: number, atime: TimeLike, mtime: TimeLike, callback: NoParamCallback): void;\n    export namespace futimes {\n        /**\n         * Asynchronously change file timestamps of the file referenced by the supplied file descriptor.\n         * @param fd A file descriptor.\n         * @param atime The last access time. If a string is provided, it will be coerced to number.\n         * @param mtime The last modified time. If a string is provided, it will be coerced to number.\n         */\n        function __promisify__(fd: number, atime: TimeLike, mtime: TimeLike): Promise<void>;\n    }\n    /**\n     * Synchronous version of {@link futimes}. Returns `undefined`.\n     * @since v0.4.2\n     */\n    export function futimesSync(fd: number, atime: TimeLike, mtime: TimeLike): void;\n    /**\n     * Request that all data for the open file descriptor is flushed to the storage\n     * device. The specific implementation is operating system and device specific.\n     * Refer to the POSIX [`fsync(2)`](http://man7.org/linux/man-pages/man2/fsync.2.html) documentation for more detail. No arguments other\n     * than a possible exception are given to the completion callback.\n     * @since v0.1.96\n     */\n    export function fsync(fd: number, callback: NoParamCallback): void;\n    export namespace fsync {\n        /**\n         * Asynchronous fsync(2) - synchronize a file's in-core state with the underlying storage device.\n         * @param fd A file descriptor.\n         */\n        function __promisify__(fd: number): Promise<void>;\n    }\n    /**\n     * Request that all data for the open file descriptor is flushed to the storage\n     * device. The specific implementation is operating system and device specific.\n     * Refer to the POSIX [`fsync(2)`](http://man7.org/linux/man-pages/man2/fsync.2.html) documentation for more detail. Returns `undefined`.\n     * @since v0.1.96\n     */\n    export function fsyncSync(fd: number): void;\n    /**\n     * Write `buffer` to the file specified by `fd`. If `buffer` is a normal object, it\n     * must have an own `toString` function property.\n     *\n     * `offset` determines the part of the buffer to be written, and `length` is\n     * an integer specifying the number of bytes to write.\n     *\n     * `position` refers to the offset from the beginning of the file where this data\n     * should be written. If `typeof position !== 'number'`, the data will be written\n     * at the current position. See [`pwrite(2)`](http://man7.org/linux/man-pages/man2/pwrite.2.html).\n     *\n     * The callback will be given three arguments `(err, bytesWritten, buffer)` where`bytesWritten` specifies how many _bytes_ were written from `buffer`.\n     *\n     * If this method is invoked as its `util.promisify()` ed version, it returns\n     * a promise for an `Object` with `bytesWritten` and `buffer` properties.\n     *\n     * It is unsafe to use `fs.write()` multiple times on the same file without waiting\n     * for the callback. For this scenario, {@link createWriteStream} is\n     * recommended.\n     *\n     * On Linux, positional writes don't work when the file is opened in append mode.\n     * The kernel ignores the position argument and always appends the data to\n     * the end of the file.\n     * @since v0.0.2\n     */\n    export function write<TBuffer extends NodeJS.ArrayBufferView>(\n        fd: number,\n        buffer: TBuffer,\n        offset: number | undefined | null,\n        length: number | undefined | null,\n        position: number | undefined | null,\n        callback: (err: NodeJS.ErrnoException | null, written: number, buffer: TBuffer) => void\n    ): void;\n    /**\n     * Asynchronously writes `buffer` to the file referenced by the supplied file descriptor.\n     * @param fd A file descriptor.\n     * @param offset The part of the buffer to be written. If not supplied, defaults to `0`.\n     * @param length The number of bytes to write. If not supplied, defaults to `buffer.length - offset`.\n     */\n    export function write<TBuffer extends NodeJS.ArrayBufferView>(\n        fd: number,\n        buffer: TBuffer,\n        offset: number | undefined | null,\n        length: number | undefined | null,\n        callback: (err: NodeJS.ErrnoException | null, written: number, buffer: TBuffer) => void\n    ): void;\n    /**\n     * Asynchronously writes `buffer` to the file referenced by the supplied file descriptor.\n     * @param fd A file descriptor.\n     * @param offset The part of the buffer to be written. If not supplied, defaults to `0`.\n     */\n    export function write<TBuffer extends NodeJS.ArrayBufferView>(\n        fd: number,\n        buffer: TBuffer,\n        offset: number | undefined | null,\n        callback: (err: NodeJS.ErrnoException | null, written: number, buffer: TBuffer) => void\n    ): void;\n    /**\n     * Asynchronously writes `buffer` to the file referenced by the supplied file descriptor.\n     * @param fd A file descriptor.\n     */\n    export function write<TBuffer extends NodeJS.ArrayBufferView>(fd: number, buffer: TBuffer, callback: (err: NodeJS.ErrnoException | null, written: number, buffer: TBuffer) => void): void;\n    /**\n     * Asynchronously writes `string` to the file referenced by the supplied file descriptor.\n     * @param fd A file descriptor.\n     * @param string A string to write.\n     * @param position The offset from the beginning of the file where this data should be written. If not supplied, defaults to the current position.\n     * @param encoding The expected string encoding.\n     */\n    export function write(\n        fd: number,\n        string: string,\n        position: number | undefined | null,\n        encoding: BufferEncoding | undefined | null,\n        callback: (err: NodeJS.ErrnoException | null, written: number, str: string) => void\n    ): void;\n    /**\n     * Asynchronously writes `string` to the file referenced by the supplied file descriptor.\n     * @param fd A file descriptor.\n     * @param string A string to write.\n     * @param position The offset from the beginning of the file where this data should be written. If not supplied, defaults to the current position.\n     */\n    export function write(fd: number, string: string, position: number | undefined | null, callback: (err: NodeJS.ErrnoException | null, written: number, str: string) => void): void;\n    /**\n     * Asynchronously writes `string` to the file referenced by the supplied file descriptor.\n     * @param fd A file descriptor.\n     * @param string A string to write.\n     */\n    export function write(fd: number, string: string, callback: (err: NodeJS.ErrnoException | null, written: number, str: string) => void): void;\n    export namespace write {\n        /**\n         * Asynchronously writes `buffer` to the file referenced by the supplied file descriptor.\n         * @param fd A file descriptor.\n         * @param offset The part of the buffer to be written. If not supplied, defaults to `0`.\n         * @param length The number of bytes to write. If not supplied, defaults to `buffer.length - offset`.\n         * @param position The offset from the beginning of the file where this data should be written. If not supplied, defaults to the current position.\n         */\n        function __promisify__<TBuffer extends NodeJS.ArrayBufferView>(\n            fd: number,\n            buffer?: TBuffer,\n            offset?: number,\n            length?: number,\n            position?: number | null\n        ): Promise<{\n            bytesWritten: number;\n            buffer: TBuffer;\n        }>;\n        /**\n         * Asynchronously writes `string` to the file referenced by the supplied file descriptor.\n         * @param fd A file descriptor.\n         * @param string A string to write.\n         * @param position The offset from the beginning of the file where this data should be written. If not supplied, defaults to the current position.\n         * @param encoding The expected string encoding.\n         */\n        function __promisify__(\n            fd: number,\n            string: string,\n            position?: number | null,\n            encoding?: BufferEncoding | null\n        ): Promise<{\n            bytesWritten: number;\n            buffer: string;\n        }>;\n    }\n    /**\n     * If `buffer` is a plain object, it must have an own (not inherited) `toString`function property.\n     *\n     * For detailed information, see the documentation of the asynchronous version of\n     * this API: {@link write}.\n     * @since v0.1.21\n     * @return The number of bytes written.\n     */\n    export function writeSync(fd: number, buffer: NodeJS.ArrayBufferView, offset?: number | null, length?: number | null, position?: number | null): number;\n    /**\n     * Synchronously writes `string` to the file referenced by the supplied file descriptor, returning the number of bytes written.\n     * @param fd A file descriptor.\n     * @param string A string to write.\n     * @param position The offset from the beginning of the file where this data should be written. If not supplied, defaults to the current position.\n     * @param encoding The expected string encoding.\n     */\n    export function writeSync(fd: number, string: string, position?: number | null, encoding?: BufferEncoding | null): number;\n    export type ReadPosition = number | bigint;\n    /**\n     * Read data from the file specified by `fd`.\n     *\n     * The callback is given the three arguments, `(err, bytesRead, buffer)`.\n     *\n     * If the file is not modified concurrently, the end-of-file is reached when the\n     * number of bytes read is zero.\n     *\n     * If this method is invoked as its `util.promisify()` ed version, it returns\n     * a promise for an `Object` with `bytesRead` and `buffer` properties.\n     * @since v0.0.2\n     * @param buffer The buffer that the data will be written to.\n     * @param offset The position in `buffer` to write the data to.\n     * @param length The number of bytes to read.\n     * @param position Specifies where to begin reading from in the file. If `position` is `null` or `-1 `, data will be read from the current file position, and the file position will be updated. If\n     * `position` is an integer, the file position will be unchanged.\n     */\n    export function read<TBuffer extends NodeJS.ArrayBufferView>(\n        fd: number,\n        buffer: TBuffer,\n        offset: number,\n        length: number,\n        position: ReadPosition | null,\n        callback: (err: NodeJS.ErrnoException | null, bytesRead: number, buffer: TBuffer) => void\n    ): void;\n    export namespace read {\n        /**\n         * @param fd A file descriptor.\n         * @param buffer The buffer that the data will be written to.\n         * @param offset The offset in the buffer at which to start writing.\n         * @param length The number of bytes to read.\n         * @param position The offset from the beginning of the file from which data should be read. If `null`, data will be read from the current position.\n         */\n        function __promisify__<TBuffer extends NodeJS.ArrayBufferView>(\n            fd: number,\n            buffer: TBuffer,\n            offset: number,\n            length: number,\n            position: number | null\n        ): Promise<{\n            bytesRead: number;\n            buffer: TBuffer;\n        }>;\n    }\n    export interface ReadSyncOptions {\n        /**\n         * @default 0\n         */\n        offset?: number | undefined;\n        /**\n         * @default `length of buffer`\n         */\n        length?: number | undefined;\n        /**\n         * @default null\n         */\n        position?: ReadPosition | null | undefined;\n    }\n    /**\n     * Returns the number of `bytesRead`.\n     *\n     * For detailed information, see the documentation of the asynchronous version of\n     * this API: {@link read}.\n     * @since v0.1.21\n     */\n    export function readSync(fd: number, buffer: NodeJS.ArrayBufferView, offset: number, length: number, position: ReadPosition | null): number;\n    /**\n     * Similar to the above `fs.readSync` function, this version takes an optional `options` object.\n     * If no `options` object is specified, it will default with the above values.\n     */\n    export function readSync(fd: number, buffer: NodeJS.ArrayBufferView, opts?: ReadSyncOptions): number;\n    /**\n     * Asynchronously reads the entire contents of a file.\n     *\n     * ```js\n     * import { readFile } from 'fs';\n     *\n     * readFile('/etc/passwd', (err, data) => {\n     *   if (err) throw err;\n     *   console.log(data);\n     * });\n     * ```\n     *\n     * The callback is passed two arguments `(err, data)`, where `data` is the\n     * contents of the file.\n     *\n     * If no encoding is specified, then the raw buffer is returned.\n     *\n     * If `options` is a string, then it specifies the encoding:\n     *\n     * ```js\n     * import { readFile } from 'fs';\n     *\n     * readFile('/etc/passwd', 'utf8', callback);\n     * ```\n     *\n     * When the path is a directory, the behavior of `fs.readFile()` and {@link readFileSync} is platform-specific. On macOS, Linux, and Windows, an\n     * error will be returned. On FreeBSD, a representation of the directory's contents\n     * will be returned.\n     *\n     * ```js\n     * import { readFile } from 'fs';\n     *\n     * // macOS, Linux, and Windows\n     * readFile('<directory>', (err, data) => {\n     *   // => [Error: EISDIR: illegal operation on a directory, read <directory>]\n     * });\n     *\n     * //  FreeBSD\n     * readFile('<directory>', (err, data) => {\n     *   // => null, <data>\n     * });\n     * ```\n     *\n     * It is possible to abort an ongoing request using an `AbortSignal`. If a\n     * request is aborted the callback is called with an `AbortError`:\n     *\n     * ```js\n     * import { readFile } from 'fs';\n     *\n     * const controller = new AbortController();\n     * const signal = controller.signal;\n     * readFile(fileInfo[0].name, { signal }, (err, buf) => {\n     *   // ...\n     * });\n     * // When you want to abort the request\n     * controller.abort();\n     * ```\n     *\n     * The `fs.readFile()` function buffers the entire file. To minimize memory costs,\n     * when possible prefer streaming via `fs.createReadStream()`.\n     *\n     * Aborting an ongoing request does not abort individual operating\n     * system requests but rather the internal buffering `fs.readFile` performs.\n     * @since v0.1.29\n     * @param path filename or file descriptor\n     */\n    export function readFile(\n        path: PathOrFileDescriptor,\n        options:\n            | ({\n                  encoding?: null | undefined;\n                  flag?: string | undefined;\n              } & Abortable)\n            | undefined\n            | null,\n        callback: (err: NodeJS.ErrnoException | null, data: Buffer) => void\n    ): void;\n    /**\n     * Asynchronously reads the entire contents of a file.\n     * @param path A path to a file. If a URL is provided, it must use the `file:` protocol.\n     * If a file descriptor is provided, the underlying file will _not_ be closed automatically.\n     * @param options Either the encoding for the result, or an object that contains the encoding and an optional flag.\n     * If a flag is not provided, it defaults to `'r'`.\n     */\n    export function readFile(\n        path: PathOrFileDescriptor,\n        options:\n            | ({\n                  encoding: BufferEncoding;\n                  flag?: string | undefined;\n              } & Abortable)\n            | BufferEncoding,\n        callback: (err: NodeJS.ErrnoException | null, data: string) => void\n    ): void;\n    /**\n     * Asynchronously reads the entire contents of a file.\n     * @param path A path to a file. If a URL is provided, it must use the `file:` protocol.\n     * If a file descriptor is provided, the underlying file will _not_ be closed automatically.\n     * @param options Either the encoding for the result, or an object that contains the encoding and an optional flag.\n     * If a flag is not provided, it defaults to `'r'`.\n     */\n    export function readFile(\n        path: PathOrFileDescriptor,\n        options:\n            | (ObjectEncodingOptions & {\n                  flag?: string | undefined;\n              } & Abortable)\n            | BufferEncoding\n            | undefined\n            | null,\n        callback: (err: NodeJS.ErrnoException | null, data: string | Buffer) => void\n    ): void;\n    /**\n     * Asynchronously reads the entire contents of a file.\n     * @param path A path to a file. If a URL is provided, it must use the `file:` protocol.\n     * If a file descriptor is provided, the underlying file will _not_ be closed automatically.\n     */\n    export function readFile(path: PathOrFileDescriptor, callback: (err: NodeJS.ErrnoException | null, data: Buffer) => void): void;\n    export namespace readFile {\n        /**\n         * Asynchronously reads the entire contents of a file.\n         * @param path A path to a file. If a URL is provided, it must use the `file:` protocol.\n         * If a file descriptor is provided, the underlying file will _not_ be closed automatically.\n         * @param options An object that may contain an optional flag.\n         * If a flag is not provided, it defaults to `'r'`.\n         */\n        function __promisify__(\n            path: PathOrFileDescriptor,\n            options?: {\n                encoding?: null | undefined;\n                flag?: string | undefined;\n            } | null\n        ): Promise<Buffer>;\n        /**\n         * Asynchronously reads the entire contents of a file.\n         * @param path A path to a file. If a URL is provided, it must use the `file:` protocol.\n         * URL support is _experimental_.\n         * If a file descriptor is provided, the underlying file will _not_ be closed automatically.\n         * @param options Either the encoding for the result, or an object that contains the encoding and an optional flag.\n         * If a flag is not provided, it defaults to `'r'`.\n         */\n        function __promisify__(\n            path: PathOrFileDescriptor,\n            options:\n                | {\n                      encoding: BufferEncoding;\n                      flag?: string | undefined;\n                  }\n                | BufferEncoding\n        ): Promise<string>;\n        /**\n         * Asynchronously reads the entire contents of a file.\n         * @param path A path to a file. If a URL is provided, it must use the `file:` protocol.\n         * URL support is _experimental_.\n         * If a file descriptor is provided, the underlying file will _not_ be closed automatically.\n         * @param options Either the encoding for the result, or an object that contains the encoding and an optional flag.\n         * If a flag is not provided, it defaults to `'r'`.\n         */\n        function __promisify__(\n            path: PathOrFileDescriptor,\n            options?:\n                | (ObjectEncodingOptions & {\n                      flag?: string | undefined;\n                  })\n                | BufferEncoding\n                | null\n        ): Promise<string | Buffer>;\n    }\n    /**\n     * Returns the contents of the `path`.\n     *\n     * For detailed information, see the documentation of the asynchronous version of\n     * this API: {@link readFile}.\n     *\n     * If the `encoding` option is specified then this function returns a\n     * string. Otherwise it returns a buffer.\n     *\n     * Similar to {@link readFile}, when the path is a directory, the behavior of`fs.readFileSync()` is platform-specific.\n     *\n     * ```js\n     * import { readFileSync } from 'fs';\n     *\n     * // macOS, Linux, and Windows\n     * readFileSync('<directory>');\n     * // => [Error: EISDIR: illegal operation on a directory, read <directory>]\n     *\n     * //  FreeBSD\n     * readFileSync('<directory>'); // => <data>\n     * ```\n     * @since v0.1.8\n     * @param path filename or file descriptor\n     */\n    export function readFileSync(\n        path: PathOrFileDescriptor,\n        options?: {\n            encoding?: null | undefined;\n            flag?: string | undefined;\n        } | null\n    ): Buffer;\n    /**\n     * Synchronously reads the entire contents of a file.\n     * @param path A path to a file. If a URL is provided, it must use the `file:` protocol.\n     * If a file descriptor is provided, the underlying file will _not_ be closed automatically.\n     * @param options Either the encoding for the result, or an object that contains the encoding and an optional flag.\n     * If a flag is not provided, it defaults to `'r'`.\n     */\n    export function readFileSync(\n        path: PathOrFileDescriptor,\n        options:\n            | {\n                  encoding: BufferEncoding;\n                  flag?: string | undefined;\n              }\n            | BufferEncoding\n    ): string;\n    /**\n     * Synchronously reads the entire contents of a file.\n     * @param path A path to a file. If a URL is provided, it must use the `file:` protocol.\n     * If a file descriptor is provided, the underlying file will _not_ be closed automatically.\n     * @param options Either the encoding for the result, or an object that contains the encoding and an optional flag.\n     * If a flag is not provided, it defaults to `'r'`.\n     */\n    export function readFileSync(\n        path: PathOrFileDescriptor,\n        options?:\n            | (ObjectEncodingOptions & {\n                  flag?: string | undefined;\n              })\n            | BufferEncoding\n            | null\n    ): string | Buffer;\n    export type WriteFileOptions =\n        | (ObjectEncodingOptions &\n              Abortable & {\n                  mode?: Mode | undefined;\n                  flag?: string | undefined;\n              })\n        | BufferEncoding\n        | null;\n    /**\n     * When `file` is a filename, asynchronously writes data to the file, replacing the\n     * file if it already exists. `data` can be a string or a buffer.\n     *\n     * When `file` is a file descriptor, the behavior is similar to calling`fs.write()` directly (which is recommended). See the notes below on using\n     * a file descriptor.\n     *\n     * The `encoding` option is ignored if `data` is a buffer.\n     *\n     * The `mode` option only affects the newly created file. See {@link open} for more details.\n     *\n     * If `data` is a plain object, it must have an own (not inherited) `toString`function property.\n     *\n     * ```js\n     * import { writeFile } from 'fs';\n     * import { Buffer } from 'buffer';\n     *\n     * const data = new Uint8Array(Buffer.from('Hello Node.js'));\n     * writeFile('message.txt', data, (err) => {\n     *   if (err) throw err;\n     *   console.log('The file has been saved!');\n     * });\n     * ```\n     *\n     * If `options` is a string, then it specifies the encoding:\n     *\n     * ```js\n     * import { writeFile } from 'fs';\n     *\n     * writeFile('message.txt', 'Hello Node.js', 'utf8', callback);\n     * ```\n     *\n     * It is unsafe to use `fs.writeFile()` multiple times on the same file without\n     * waiting for the callback. For this scenario, {@link createWriteStream} is\n     * recommended.\n     *\n     * Similarly to `fs.readFile` \\- `fs.writeFile` is a convenience method that\n     * performs multiple `write` calls internally to write the buffer passed to it.\n     * For performance sensitive code consider using {@link createWriteStream}.\n     *\n     * It is possible to use an `AbortSignal` to cancel an `fs.writeFile()`.\n     * Cancelation is \"best effort\", and some amount of data is likely still\n     * to be written.\n     *\n     * ```js\n     * import { writeFile } from 'fs';\n     * import { Buffer } from 'buffer';\n     *\n     * const controller = new AbortController();\n     * const { signal } = controller;\n     * const data = new Uint8Array(Buffer.from('Hello Node.js'));\n     * writeFile('message.txt', data, { signal }, (err) => {\n     *   // When a request is aborted - the callback is called with an AbortError\n     * });\n     * // When the request should be aborted\n     * controller.abort();\n     * ```\n     *\n     * Aborting an ongoing request does not abort individual operating\n     * system requests but rather the internal buffering `fs.writeFile` performs.\n     * @since v0.1.29\n     * @param file filename or file descriptor\n     */\n    export function writeFile(file: PathOrFileDescriptor, data: string | NodeJS.ArrayBufferView, options: WriteFileOptions, callback: NoParamCallback): void;\n    /**\n     * Asynchronously writes data to a file, replacing the file if it already exists.\n     * @param path A path to a file. If a URL is provided, it must use the `file:` protocol.\n     * If a file descriptor is provided, the underlying file will _not_ be closed automatically.\n     * @param data The data to write. If something other than a Buffer or Uint8Array is provided, the value is coerced to a string.\n     */\n    export function writeFile(path: PathOrFileDescriptor, data: string | NodeJS.ArrayBufferView, callback: NoParamCallback): void;\n    export namespace writeFile {\n        /**\n         * Asynchronously writes data to a file, replacing the file if it already exists.\n         * @param path A path to a file. If a URL is provided, it must use the `file:` protocol.\n         * URL support is _experimental_.\n         * If a file descriptor is provided, the underlying file will _not_ be closed automatically.\n         * @param data The data to write. If something other than a Buffer or Uint8Array is provided, the value is coerced to a string.\n         * @param options Either the encoding for the file, or an object optionally specifying the encoding, file mode, and flag.\n         * If `encoding` is not supplied, the default of `'utf8'` is used.\n         * If `mode` is not supplied, the default of `0o666` is used.\n         * If `mode` is a string, it is parsed as an octal integer.\n         * If `flag` is not supplied, the default of `'w'` is used.\n         */\n        function __promisify__(path: PathOrFileDescriptor, data: string | NodeJS.ArrayBufferView, options?: WriteFileOptions): Promise<void>;\n    }\n    /**\n     * Returns `undefined`.\n     *\n     * If `data` is a plain object, it must have an own (not inherited) `toString`function property.\n     *\n     * The `mode` option only affects the newly created file. See {@link open} for more details.\n     *\n     * For detailed information, see the documentation of the asynchronous version of\n     * this API: {@link writeFile}.\n     * @since v0.1.29\n     * @param file filename or file descriptor\n     */\n    export function writeFileSync(file: PathOrFileDescriptor, data: string | NodeJS.ArrayBufferView, options?: WriteFileOptions): void;\n    /**\n     * Asynchronously append data to a file, creating the file if it does not yet\n     * exist. `data` can be a string or a `Buffer`.\n     *\n     * The `mode` option only affects the newly created file. See {@link open} for more details.\n     *\n     * ```js\n     * import { appendFile } from 'fs';\n     *\n     * appendFile('message.txt', 'data to append', (err) => {\n     *   if (err) throw err;\n     *   console.log('The \"data to append\" was appended to file!');\n     * });\n     * ```\n     *\n     * If `options` is a string, then it specifies the encoding:\n     *\n     * ```js\n     * import { appendFile } from 'fs';\n     *\n     * appendFile('message.txt', 'data to append', 'utf8', callback);\n     * ```\n     *\n     * The `path` may be specified as a numeric file descriptor that has been opened\n     * for appending (using `fs.open()` or `fs.openSync()`). The file descriptor will\n     * not be closed automatically.\n     *\n     * ```js\n     * import { open, close, appendFile } from 'fs';\n     *\n     * function closeFd(fd) {\n     *   close(fd, (err) => {\n     *     if (err) throw err;\n     *   });\n     * }\n     *\n     * open('message.txt', 'a', (err, fd) => {\n     *   if (err) throw err;\n     *\n     *   try {\n     *     appendFile(fd, 'data to append', 'utf8', (err) => {\n     *       closeFd(fd);\n     *       if (err) throw err;\n     *     });\n     *   } catch (err) {\n     *     closeFd(fd);\n     *     throw err;\n     *   }\n     * });\n     * ```\n     * @since v0.6.7\n     * @param path filename or file descriptor\n     */\n    export function appendFile(path: PathOrFileDescriptor, data: string | Uint8Array, options: WriteFileOptions, callback: NoParamCallback): void;\n    /**\n     * Asynchronously append data to a file, creating the file if it does not exist.\n     * @param file A path to a file. If a URL is provided, it must use the `file:` protocol.\n     * If a file descriptor is provided, the underlying file will _not_ be closed automatically.\n     * @param data The data to write. If something other than a Buffer or Uint8Array is provided, the value is coerced to a string.\n     */\n    export function appendFile(file: PathOrFileDescriptor, data: string | Uint8Array, callback: NoParamCallback): void;\n    export namespace appendFile {\n        /**\n         * Asynchronously append data to a file, creating the file if it does not exist.\n         * @param file A path to a file. If a URL is provided, it must use the `file:` protocol.\n         * URL support is _experimental_.\n         * If a file descriptor is provided, the underlying file will _not_ be closed automatically.\n         * @param data The data to write. If something other than a Buffer or Uint8Array is provided, the value is coerced to a string.\n         * @param options Either the encoding for the file, or an object optionally specifying the encoding, file mode, and flag.\n         * If `encoding` is not supplied, the default of `'utf8'` is used.\n         * If `mode` is not supplied, the default of `0o666` is used.\n         * If `mode` is a string, it is parsed as an octal integer.\n         * If `flag` is not supplied, the default of `'a'` is used.\n         */\n        function __promisify__(file: PathOrFileDescriptor, data: string | Uint8Array, options?: WriteFileOptions): Promise<void>;\n    }\n    /**\n     * Synchronously append data to a file, creating the file if it does not yet\n     * exist. `data` can be a string or a `Buffer`.\n     *\n     * The `mode` option only affects the newly created file. See {@link open} for more details.\n     *\n     * ```js\n     * import { appendFileSync } from 'fs';\n     *\n     * try {\n     *   appendFileSync('message.txt', 'data to append');\n     *   console.log('The \"data to append\" was appended to file!');\n     * } catch (err) {\n     *   // Handle the error\n     * }\n     * ```\n     *\n     * If `options` is a string, then it specifies the encoding:\n     *\n     * ```js\n     * import { appendFileSync } from 'fs';\n     *\n     * appendFileSync('message.txt', 'data to append', 'utf8');\n     * ```\n     *\n     * The `path` may be specified as a numeric file descriptor that has been opened\n     * for appending (using `fs.open()` or `fs.openSync()`). The file descriptor will\n     * not be closed automatically.\n     *\n     * ```js\n     * import { openSync, closeSync, appendFileSync } from 'fs';\n     *\n     * let fd;\n     *\n     * try {\n     *   fd = openSync('message.txt', 'a');\n     *   appendFileSync(fd, 'data to append', 'utf8');\n     * } catch (err) {\n     *   // Handle the error\n     * } finally {\n     *   if (fd !== undefined)\n     *     closeSync(fd);\n     * }\n     * ```\n     * @since v0.6.7\n     * @param path filename or file descriptor\n     */\n    export function appendFileSync(path: PathOrFileDescriptor, data: string | Uint8Array, options?: WriteFileOptions): void;\n    /**\n     * Watch for changes on `filename`. The callback `listener` will be called each\n     * time the file is accessed.\n     *\n     * The `options` argument may be omitted. If provided, it should be an object. The`options` object may contain a boolean named `persistent` that indicates\n     * whether the process should continue to run as long as files are being watched.\n     * The `options` object may specify an `interval` property indicating how often the\n     * target should be polled in milliseconds.\n     *\n     * The `listener` gets two arguments the current stat object and the previous\n     * stat object:\n     *\n     * ```js\n     * import { watchFile } from 'fs';\n     *\n     * watchFile('message.text', (curr, prev) => {\n     *   console.log(`the current mtime is: ${curr.mtime}`);\n     *   console.log(`the previous mtime was: ${prev.mtime}`);\n     * });\n     * ```\n     *\n     * These stat objects are instances of `fs.Stat`. If the `bigint` option is `true`,\n     * the numeric values in these objects are specified as `BigInt`s.\n     *\n     * To be notified when the file was modified, not just accessed, it is necessary\n     * to compare `curr.mtimeMs` and `prev.mtimeMs`.\n     *\n     * When an `fs.watchFile` operation results in an `ENOENT` error, it\n     * will invoke the listener once, with all the fields zeroed (or, for dates, the\n     * Unix Epoch). If the file is created later on, the listener will be called\n     * again, with the latest stat objects. This is a change in functionality since\n     * v0.10.\n     *\n     * Using {@link watch} is more efficient than `fs.watchFile` and`fs.unwatchFile`. `fs.watch` should be used instead of `fs.watchFile` and`fs.unwatchFile` when possible.\n     *\n     * When a file being watched by `fs.watchFile()` disappears and reappears,\n     * then the contents of `previous` in the second callback event (the file's\n     * reappearance) will be the same as the contents of `previous` in the first\n     * callback event (its disappearance).\n     *\n     * This happens when:\n     *\n     * * the file is deleted, followed by a restore\n     * * the file is renamed and then renamed a second time back to its original name\n     * @since v0.1.31\n     */\n    export interface WatchFileOptions {\n        bigint?: boolean | undefined;\n        persistent?: boolean | undefined;\n        interval?: number | undefined;\n    }\n    export function watchFile(\n        filename: PathLike,\n        options:\n            | (WatchFileOptions & {\n                  bigint?: false | undefined;\n              })\n            | undefined,\n        listener: (curr: Stats, prev: Stats) => void\n    ): StatWatcher;\n    export function watchFile(\n        filename: PathLike,\n        options:\n            | (WatchFileOptions & {\n                  bigint: true;\n              })\n            | undefined,\n        listener: (curr: BigIntStats, prev: BigIntStats) => void\n    ): StatWatcher;\n    /**\n     * Watch for changes on `filename`. The callback `listener` will be called each time the file is accessed.\n     * @param filename A path to a file or directory. If a URL is provided, it must use the `file:` protocol.\n     */\n    export function watchFile(filename: PathLike, listener: (curr: Stats, prev: Stats) => void): StatWatcher;\n    /**\n     * Stop watching for changes on `filename`. If `listener` is specified, only that\n     * particular listener is removed. Otherwise, _all_ listeners are removed,\n     * effectively stopping watching of `filename`.\n     *\n     * Calling `fs.unwatchFile()` with a filename that is not being watched is a\n     * no-op, not an error.\n     *\n     * Using {@link watch} is more efficient than `fs.watchFile()` and`fs.unwatchFile()`. `fs.watch()` should be used instead of `fs.watchFile()`and `fs.unwatchFile()` when possible.\n     * @since v0.1.31\n     * @param listener Optional, a listener previously attached using `fs.watchFile()`\n     */\n    export function unwatchFile(filename: PathLike, listener?: (curr: Stats, prev: Stats) => void): void;\n    export interface WatchOptions extends Abortable {\n        encoding?: BufferEncoding | 'buffer' | undefined;\n        persistent?: boolean | undefined;\n        recursive?: boolean | undefined;\n    }\n    export type WatchEventType = 'rename' | 'change';\n    export type WatchListener<T> = (event: WatchEventType, filename: T) => void;\n    /**\n     * Watch for changes on `filename`, where `filename` is either a file or a\n     * directory.\n     *\n     * The second argument is optional. If `options` is provided as a string, it\n     * specifies the `encoding`. Otherwise `options` should be passed as an object.\n     *\n     * The listener callback gets two arguments `(eventType, filename)`. `eventType`is either `'rename'` or `'change'`, and `filename` is the name of the file\n     * which triggered the event.\n     *\n     * On most platforms, `'rename'` is emitted whenever a filename appears or\n     * disappears in the directory.\n     *\n     * The listener callback is attached to the `'change'` event fired by `fs.FSWatcher`, but it is not the same thing as the `'change'` value of`eventType`.\n     *\n     * If a `signal` is passed, aborting the corresponding AbortController will close\n     * the returned `fs.FSWatcher`.\n     * @since v0.5.10\n     * @param listener\n     */\n    export function watch(\n        filename: PathLike,\n        options:\n            | (WatchOptions & {\n                  encoding: 'buffer';\n              })\n            | 'buffer',\n        listener?: WatchListener<Buffer>\n    ): FSWatcher;\n    /**\n     * Watch for changes on `filename`, where `filename` is either a file or a directory, returning an `FSWatcher`.\n     * @param filename A path to a file or directory. If a URL is provided, it must use the `file:` protocol.\n     * @param options Either the encoding for the filename provided to the listener, or an object optionally specifying encoding, persistent, and recursive options.\n     * If `encoding` is not supplied, the default of `'utf8'` is used.\n     * If `persistent` is not supplied, the default of `true` is used.\n     * If `recursive` is not supplied, the default of `false` is used.\n     */\n    export function watch(filename: PathLike, options?: WatchOptions | BufferEncoding | null, listener?: WatchListener<string>): FSWatcher;\n    /**\n     * Watch for changes on `filename`, where `filename` is either a file or a directory, returning an `FSWatcher`.\n     * @param filename A path to a file or directory. If a URL is provided, it must use the `file:` protocol.\n     * @param options Either the encoding for the filename provided to the listener, or an object optionally specifying encoding, persistent, and recursive options.\n     * If `encoding` is not supplied, the default of `'utf8'` is used.\n     * If `persistent` is not supplied, the default of `true` is used.\n     * If `recursive` is not supplied, the default of `false` is used.\n     */\n    export function watch(filename: PathLike, options: WatchOptions | string, listener?: WatchListener<string | Buffer>): FSWatcher;\n    /**\n     * Watch for changes on `filename`, where `filename` is either a file or a directory, returning an `FSWatcher`.\n     * @param filename A path to a file or directory. If a URL is provided, it must use the `file:` protocol.\n     */\n    export function watch(filename: PathLike, listener?: WatchListener<string>): FSWatcher;\n    /**\n     * Test whether or not the given path exists by checking with the file system.\n     * Then call the `callback` argument with either true or false:\n     *\n     * ```js\n     * import { exists } from 'fs';\n     *\n     * exists('/etc/passwd', (e) => {\n     *   console.log(e ? 'it exists' : 'no passwd!');\n     * });\n     * ```\n     *\n     * **The parameters for this callback are not consistent with other Node.js**\n     * **callbacks.** Normally, the first parameter to a Node.js callback is an `err`parameter, optionally followed by other parameters. The `fs.exists()` callback\n     * has only one boolean parameter. This is one reason `fs.access()` is recommended\n     * instead of `fs.exists()`.\n     *\n     * Using `fs.exists()` to check for the existence of a file before calling`fs.open()`, `fs.readFile()` or `fs.writeFile()` is not recommended. Doing\n     * so introduces a race condition, since other processes may change the file's\n     * state between the two calls. Instead, user code should open/read/write the\n     * file directly and handle the error raised if the file does not exist.\n     *\n     * **write (NOT RECOMMENDED)**\n     *\n     * ```js\n     * import { exists, open, close } from 'fs';\n     *\n     * exists('myfile', (e) => {\n     *   if (e) {\n     *     console.error('myfile already exists');\n     *   } else {\n     *     open('myfile', 'wx', (err, fd) => {\n     *       if (err) throw err;\n     *\n     *       try {\n     *         writeMyData(fd);\n     *       } finally {\n     *         close(fd, (err) => {\n     *           if (err) throw err;\n     *         });\n     *       }\n     *     });\n     *   }\n     * });\n     * ```\n     *\n     * **write (RECOMMENDED)**\n     *\n     * ```js\n     * import { open, close } from 'fs';\n     * open('myfile', 'wx', (err, fd) => {\n     *   if (err) {\n     *     if (err.code === 'EEXIST') {\n     *       console.error('myfile already exists');\n     *       return;\n     *     }\n     *\n     *     throw err;\n     *   }\n     *\n     *   try {\n     *     writeMyData(fd);\n     *   } finally {\n     *     close(fd, (err) => {\n     *       if (err) throw err;\n     *     });\n     *   }\n     * });\n     * ```\n     *\n     * **read (NOT RECOMMENDED)**\n     *\n     * ```js\n     * import { open, close, exists } from 'fs';\n     *\n     * exists('myfile', (e) => {\n     *   if (e) {\n     *     open('myfile', 'r', (err, fd) => {\n     *       if (err) throw err;\n     *\n     *       try {\n     *         readMyData(fd);\n     *       } finally {\n     *         close(fd, (err) => {\n     *           if (err) throw err;\n     *         });\n     *       }\n     *     });\n     *   } else {\n     *     console.error('myfile does not exist');\n     *   }\n     * });\n     * ```\n     *\n     * **read (RECOMMENDED)**\n     *\n     * ```js\n     * import { open, close } from 'fs';\n     *\n     * open('myfile', 'r', (err, fd) => {\n     *   if (err) {\n     *     if (err.code === 'ENOENT') {\n     *       console.error('myfile does not exist');\n     *       return;\n     *     }\n     *\n     *     throw err;\n     *   }\n     *\n     *   try {\n     *     readMyData(fd);\n     *   } finally {\n     *     close(fd, (err) => {\n     *       if (err) throw err;\n     *     });\n     *   }\n     * });\n     * ```\n     *\n     * The \"not recommended\" examples above check for existence and then use the\n     * file; the \"recommended\" examples are better because they use the file directly\n     * and handle the error, if any.\n     *\n     * In general, check for the existence of a file only if the file won’t be\n     * used directly, for example when its existence is a signal from another\n     * process.\n     * @since v0.0.2\n     * @deprecated Since v1.0.0 - Use {@link stat} or {@link access} instead.\n     */\n    export function exists(path: PathLike, callback: (exists: boolean) => void): void;\n    /** @deprecated */\n    export namespace exists {\n        /**\n         * @param path A path to a file or directory. If a URL is provided, it must use the `file:` protocol.\n         * URL support is _experimental_.\n         */\n        function __promisify__(path: PathLike): Promise<boolean>;\n    }\n    /**\n     * Returns `true` if the path exists, `false` otherwise.\n     *\n     * For detailed information, see the documentation of the asynchronous version of\n     * this API: {@link exists}.\n     *\n     * `fs.exists()` is deprecated, but `fs.existsSync()` is not. The `callback`parameter to `fs.exists()` accepts parameters that are inconsistent with other\n     * Node.js callbacks. `fs.existsSync()` does not use a callback.\n     *\n     * ```js\n     * import { existsSync } from 'fs';\n     *\n     * if (existsSync('/etc/passwd'))\n     *   console.log('The path exists.');\n     * ```\n     * @since v0.1.21\n     */\n    export function existsSync(path: PathLike): boolean;\n    export namespace constants {\n        // File Access Constants\n        /** Constant for fs.access(). File is visible to the calling process. */\n        const F_OK: number;\n        /** Constant for fs.access(). File can be read by the calling process. */\n        const R_OK: number;\n        /** Constant for fs.access(). File can be written by the calling process. */\n        const W_OK: number;\n        /** Constant for fs.access(). File can be executed by the calling process. */\n        const X_OK: number;\n        // File Copy Constants\n        /** Constant for fs.copyFile. Flag indicating the destination file should not be overwritten if it already exists. */\n        const COPYFILE_EXCL: number;\n        /**\n         * Constant for fs.copyFile. copy operation will attempt to create a copy-on-write reflink.\n         * If the underlying platform does not support copy-on-write, then a fallback copy mechanism is used.\n         */\n        const COPYFILE_FICLONE: number;\n        /**\n         * Constant for fs.copyFile. Copy operation will attempt to create a copy-on-write reflink.\n         * If the underlying platform does not support copy-on-write, then the operation will fail with an error.\n         */\n        const COPYFILE_FICLONE_FORCE: number;\n        // File Open Constants\n        /** Constant for fs.open(). Flag indicating to open a file for read-only access. */\n        const O_RDONLY: number;\n        /** Constant for fs.open(). Flag indicating to open a file for write-only access. */\n        const O_WRONLY: number;\n        /** Constant for fs.open(). Flag indicating to open a file for read-write access. */\n        const O_RDWR: number;\n        /** Constant for fs.open(). Flag indicating to create the file if it does not already exist. */\n        const O_CREAT: number;\n        /** Constant for fs.open(). Flag indicating that opening a file should fail if the O_CREAT flag is set and the file already exists. */\n        const O_EXCL: number;\n        /**\n         * Constant for fs.open(). Flag indicating that if path identifies a terminal device,\n         * opening the path shall not cause that terminal to become the controlling terminal for the process\n         * (if the process does not already have one).\n         */\n        const O_NOCTTY: number;\n        /** Constant for fs.open(). Flag indicating that if the file exists and is a regular file, and the file is opened successfully for write access, its length shall be truncated to zero. */\n        const O_TRUNC: number;\n        /** Constant for fs.open(). Flag indicating that data will be appended to the end of the file. */\n        const O_APPEND: number;\n        /** Constant for fs.open(). Flag indicating that the open should fail if the path is not a directory. */\n        const O_DIRECTORY: number;\n        /**\n         * constant for fs.open().\n         * Flag indicating reading accesses to the file system will no longer result in\n         * an update to the atime information associated with the file.\n         * This flag is available on Linux operating systems only.\n         */\n        const O_NOATIME: number;\n        /** Constant for fs.open(). Flag indicating that the open should fail if the path is a symbolic link. */\n        const O_NOFOLLOW: number;\n        /** Constant for fs.open(). Flag indicating that the file is opened for synchronous I/O. */\n        const O_SYNC: number;\n        /** Constant for fs.open(). Flag indicating that the file is opened for synchronous I/O with write operations waiting for data integrity. */\n        const O_DSYNC: number;\n        /** Constant for fs.open(). Flag indicating to open the symbolic link itself rather than the resource it is pointing to. */\n        const O_SYMLINK: number;\n        /** Constant for fs.open(). When set, an attempt will be made to minimize caching effects of file I/O. */\n        const O_DIRECT: number;\n        /** Constant for fs.open(). Flag indicating to open the file in nonblocking mode when possible. */\n        const O_NONBLOCK: number;\n        // File Type Constants\n        /** Constant for fs.Stats mode property for determining a file's type. Bit mask used to extract the file type code. */\n        const S_IFMT: number;\n        /** Constant for fs.Stats mode property for determining a file's type. File type constant for a regular file. */\n        const S_IFREG: number;\n        /** Constant for fs.Stats mode property for determining a file's type. File type constant for a directory. */\n        const S_IFDIR: number;\n        /** Constant for fs.Stats mode property for determining a file's type. File type constant for a character-oriented device file. */\n        const S_IFCHR: number;\n        /** Constant for fs.Stats mode property for determining a file's type. File type constant for a block-oriented device file. */\n        const S_IFBLK: number;\n        /** Constant for fs.Stats mode property for determining a file's type. File type constant for a FIFO/pipe. */\n        const S_IFIFO: number;\n        /** Constant for fs.Stats mode property for determining a file's type. File type constant for a symbolic link. */\n        const S_IFLNK: number;\n        /** Constant for fs.Stats mode property for determining a file's type. File type constant for a socket. */\n        const S_IFSOCK: number;\n        // File Mode Constants\n        /** Constant for fs.Stats mode property for determining access permissions for a file. File mode indicating readable, writable and executable by owner. */\n        const S_IRWXU: number;\n        /** Constant for fs.Stats mode property for determining access permissions for a file. File mode indicating readable by owner. */\n        const S_IRUSR: number;\n        /** Constant for fs.Stats mode property for determining access permissions for a file. File mode indicating writable by owner. */\n        const S_IWUSR: number;\n        /** Constant for fs.Stats mode property for determining access permissions for a file. File mode indicating executable by owner. */\n        const S_IXUSR: number;\n        /** Constant for fs.Stats mode property for determining access permissions for a file. File mode indicating readable, writable and executable by group. */\n        const S_IRWXG: number;\n        /** Constant for fs.Stats mode property for determining access permissions for a file. File mode indicating readable by group. */\n        const S_IRGRP: number;\n        /** Constant for fs.Stats mode property for determining access permissions for a file. File mode indicating writable by group. */\n        const S_IWGRP: number;\n        /** Constant for fs.Stats mode property for determining access permissions for a file. File mode indicating executable by group. */\n        const S_IXGRP: number;\n        /** Constant for fs.Stats mode property for determining access permissions for a file. File mode indicating readable, writable and executable by others. */\n        const S_IRWXO: number;\n        /** Constant for fs.Stats mode property for determining access permissions for a file. File mode indicating readable by others. */\n        const S_IROTH: number;\n        /** Constant for fs.Stats mode property for determining access permissions for a file. File mode indicating writable by others. */\n        const S_IWOTH: number;\n        /** Constant for fs.Stats mode property for determining access permissions for a file. File mode indicating executable by others. */\n        const S_IXOTH: number;\n        /**\n         * When set, a memory file mapping is used to access the file. This flag\n         * is available on Windows operating systems only. On other operating systems,\n         * this flag is ignored.\n         */\n        const UV_FS_O_FILEMAP: number;\n    }\n    /**\n     * Tests a user's permissions for the file or directory specified by `path`.\n     * The `mode` argument is an optional integer that specifies the accessibility\n     * checks to be performed. Check `File access constants` for possible values\n     * of `mode`. It is possible to create a mask consisting of the bitwise OR of\n     * two or more values (e.g. `fs.constants.W_OK | fs.constants.R_OK`).\n     *\n     * The final argument, `callback`, is a callback function that is invoked with\n     * a possible error argument. If any of the accessibility checks fail, the error\n     * argument will be an `Error` object. The following examples check if`package.json` exists, and if it is readable or writable.\n     *\n     * ```js\n     * import { access, constants } from 'fs';\n     *\n     * const file = 'package.json';\n     *\n     * // Check if the file exists in the current directory.\n     * access(file, constants.F_OK, (err) => {\n     *   console.log(`${file} ${err ? 'does not exist' : 'exists'}`);\n     * });\n     *\n     * // Check if the file is readable.\n     * access(file, constants.R_OK, (err) => {\n     *   console.log(`${file} ${err ? 'is not readable' : 'is readable'}`);\n     * });\n     *\n     * // Check if the file is writable.\n     * access(file, constants.W_OK, (err) => {\n     *   console.log(`${file} ${err ? 'is not writable' : 'is writable'}`);\n     * });\n     *\n     * // Check if the file exists in the current directory, and if it is writable.\n     * access(file, constants.F_OK | constants.W_OK, (err) => {\n     *   if (err) {\n     *     console.error(\n     *       `${file} ${err.code === 'ENOENT' ? 'does not exist' : 'is read-only'}`);\n     *   } else {\n     *     console.log(`${file} exists, and it is writable`);\n     *   }\n     * });\n     * ```\n     *\n     * Do not use `fs.access()` to check for the accessibility of a file before calling`fs.open()`, `fs.readFile()` or `fs.writeFile()`. Doing\n     * so introduces a race condition, since other processes may change the file's\n     * state between the two calls. Instead, user code should open/read/write the\n     * file directly and handle the error raised if the file is not accessible.\n     *\n     * **write (NOT RECOMMENDED)**\n     *\n     * ```js\n     * import { access, open, close } from 'fs';\n     *\n     * access('myfile', (err) => {\n     *   if (!err) {\n     *     console.error('myfile already exists');\n     *     return;\n     *   }\n     *\n     *   open('myfile', 'wx', (err, fd) => {\n     *     if (err) throw err;\n     *\n     *     try {\n     *       writeMyData(fd);\n     *     } finally {\n     *       close(fd, (err) => {\n     *         if (err) throw err;\n     *       });\n     *     }\n     *   });\n     * });\n     * ```\n     *\n     * **write (RECOMMENDED)**\n     *\n     * ```js\n     * import { open, close } from 'fs';\n     *\n     * open('myfile', 'wx', (err, fd) => {\n     *   if (err) {\n     *     if (err.code === 'EEXIST') {\n     *       console.error('myfile already exists');\n     *       return;\n     *     }\n     *\n     *     throw err;\n     *   }\n     *\n     *   try {\n     *     writeMyData(fd);\n     *   } finally {\n     *     close(fd, (err) => {\n     *       if (err) throw err;\n     *     });\n     *   }\n     * });\n     * ```\n     *\n     * **read (NOT RECOMMENDED)**\n     *\n     * ```js\n     * import { access, open, close } from 'fs';\n     * access('myfile', (err) => {\n     *   if (err) {\n     *     if (err.code === 'ENOENT') {\n     *       console.error('myfile does not exist');\n     *       return;\n     *     }\n     *\n     *     throw err;\n     *   }\n     *\n     *   open('myfile', 'r', (err, fd) => {\n     *     if (err) throw err;\n     *\n     *     try {\n     *       readMyData(fd);\n     *     } finally {\n     *       close(fd, (err) => {\n     *         if (err) throw err;\n     *       });\n     *     }\n     *   });\n     * });\n     * ```\n     *\n     * **read (RECOMMENDED)**\n     *\n     * ```js\n     * import { open, close } from 'fs';\n     *\n     * open('myfile', 'r', (err, fd) => {\n     *   if (err) {\n     *     if (err.code === 'ENOENT') {\n     *       console.error('myfile does not exist');\n     *       return;\n     *     }\n     *\n     *     throw err;\n     *   }\n     *\n     *   try {\n     *     readMyData(fd);\n     *   } finally {\n     *     close(fd, (err) => {\n     *       if (err) throw err;\n     *     });\n     *   }\n     * });\n     * ```\n     *\n     * The \"not recommended\" examples above check for accessibility and then use the\n     * file; the \"recommended\" examples are better because they use the file directly\n     * and handle the error, if any.\n     *\n     * In general, check for the accessibility of a file only if the file will not be\n     * used directly, for example when its accessibility is a signal from another\n     * process.\n     *\n     * On Windows, access-control policies (ACLs) on a directory may limit access to\n     * a file or directory. The `fs.access()` function, however, does not check the\n     * ACL and therefore may report that a path is accessible even if the ACL restricts\n     * the user from reading or writing to it.\n     * @since v0.11.15\n     * @param [mode=fs.constants.F_OK]\n     */\n    export function access(path: PathLike, mode: number | undefined, callback: NoParamCallback): void;\n    /**\n     * Asynchronously tests a user's permissions for the file specified by path.\n     * @param path A path to a file or directory. If a URL is provided, it must use the `file:` protocol.\n     */\n    export function access(path: PathLike, callback: NoParamCallback): void;\n    export namespace access {\n        /**\n         * Asynchronously tests a user's permissions for the file specified by path.\n         * @param path A path to a file or directory. If a URL is provided, it must use the `file:` protocol.\n         * URL support is _experimental_.\n         */\n        function __promisify__(path: PathLike, mode?: number): Promise<void>;\n    }\n    /**\n     * Synchronously tests a user's permissions for the file or directory specified\n     * by `path`. The `mode` argument is an optional integer that specifies the\n     * accessibility checks to be performed. Check `File access constants` for\n     * possible values of `mode`. It is possible to create a mask consisting of\n     * the bitwise OR of two or more values\n     * (e.g. `fs.constants.W_OK | fs.constants.R_OK`).\n     *\n     * If any of the accessibility checks fail, an `Error` will be thrown. Otherwise,\n     * the method will return `undefined`.\n     *\n     * ```js\n     * import { accessSync, constants } from 'fs';\n     *\n     * try {\n     *   accessSync('etc/passwd', constants.R_OK | constants.W_OK);\n     *   console.log('can read/write');\n     * } catch (err) {\n     *   console.error('no access!');\n     * }\n     * ```\n     * @since v0.11.15\n     * @param [mode=fs.constants.F_OK]\n     */\n    export function accessSync(path: PathLike, mode?: number): void;\n    interface StreamOptions {\n        flags?: string | undefined;\n        encoding?: BufferEncoding | undefined;\n        fd?: number | promises.FileHandle | undefined;\n        mode?: number | undefined;\n        autoClose?: boolean | undefined;\n        /**\n         * @default false\n         */\n        emitClose?: boolean | undefined;\n        start?: number | undefined;\n        highWaterMark?: number | undefined;\n    }\n    interface ReadStreamOptions extends StreamOptions {\n        end?: number | undefined;\n    }\n    /**\n     * Unlike the 16 kb default `highWaterMark` for a `stream.Readable`, the stream\n     * returned by this method has a default `highWaterMark` of 64 kb.\n     *\n     * `options` can include `start` and `end` values to read a range of bytes from\n     * the file instead of the entire file. Both `start` and `end` are inclusive and\n     * start counting at 0, allowed values are in the\n     * \\[0, [`Number.MAX_SAFE_INTEGER`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/MAX_SAFE_INTEGER)\\] range. If `fd` is specified and `start` is\n     * omitted or `undefined`, `fs.createReadStream()` reads sequentially from the\n     * current file position. The `encoding` can be any one of those accepted by `Buffer`.\n     *\n     * If `fd` is specified, `ReadStream` will ignore the `path` argument and will use\n     * the specified file descriptor. This means that no `'open'` event will be\n     * emitted. `fd` should be blocking; non-blocking `fd`s should be passed to `net.Socket`.\n     *\n     * If `fd` points to a character device that only supports blocking reads\n     * (such as keyboard or sound card), read operations do not finish until data is\n     * available. This can prevent the process from exiting and the stream from\n     * closing naturally.\n     *\n     * By default, the stream will emit a `'close'` event after it has been\n     * destroyed.  Set the `emitClose` option to `false` to change this behavior.\n     *\n     * By providing the `fs` option, it is possible to override the corresponding `fs`implementations for `open`, `read`, and `close`. When providing the `fs` option,\n     * an override for `read` is required. If no `fd` is provided, an override for`open` is also required. If `autoClose` is `true`, an override for `close` is\n     * also required.\n     *\n     * ```js\n     * import { createReadStream } from 'fs';\n     *\n     * // Create a stream from some character device.\n     * const stream = createReadStream('/dev/input/event0');\n     * setTimeout(() => {\n     *   stream.close(); // This may not close the stream.\n     *   // Artificially marking end-of-stream, as if the underlying resource had\n     *   // indicated end-of-file by itself, allows the stream to close.\n     *   // This does not cancel pending read operations, and if there is such an\n     *   // operation, the process may still not be able to exit successfully\n     *   // until it finishes.\n     *   stream.push(null);\n     *   stream.read(0);\n     * }, 100);\n     * ```\n     *\n     * If `autoClose` is false, then the file descriptor won't be closed, even if\n     * there's an error. It is the application's responsibility to close it and make\n     * sure there's no file descriptor leak. If `autoClose` is set to true (default\n     * behavior), on `'error'` or `'end'` the file descriptor will be closed\n     * automatically.\n     *\n     * `mode` sets the file mode (permission and sticky bits), but only if the\n     * file was created.\n     *\n     * An example to read the last 10 bytes of a file which is 100 bytes long:\n     *\n     * ```js\n     * import { createReadStream } from 'fs';\n     *\n     * createReadStream('sample.txt', { start: 90, end: 99 });\n     * ```\n     *\n     * If `options` is a string, then it specifies the encoding.\n     * @since v0.1.31\n     */\n    export function createReadStream(path: PathLike, options?: BufferEncoding | ReadStreamOptions): ReadStream;\n    /**\n     * `options` may also include a `start` option to allow writing data at some\n     * position past the beginning of the file, allowed values are in the\n     * \\[0, [`Number.MAX_SAFE_INTEGER`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/MAX_SAFE_INTEGER)\\] range. Modifying a file rather than replacing\n     * it may require the `flags` option to be set to `r+` rather than the default `w`.\n     * The `encoding` can be any one of those accepted by `Buffer`.\n     *\n     * If `autoClose` is set to true (default behavior) on `'error'` or `'finish'`the file descriptor will be closed automatically. If `autoClose` is false,\n     * then the file descriptor won't be closed, even if there's an error.\n     * It is the application's responsibility to close it and make sure there's no\n     * file descriptor leak.\n     *\n     * By default, the stream will emit a `'close'` event after it has been\n     * destroyed.  Set the `emitClose` option to `false` to change this behavior.\n     *\n     * By providing the `fs` option it is possible to override the corresponding `fs`implementations for `open`, `write`, `writev` and `close`. Overriding `write()`without `writev()` can reduce\n     * performance as some optimizations (`_writev()`)\n     * will be disabled. When providing the `fs` option, overrides for at least one of`write` and `writev` are required. If no `fd` option is supplied, an override\n     * for `open` is also required. If `autoClose` is `true`, an override for `close`is also required.\n     *\n     * Like `fs.ReadStream`, if `fd` is specified, `fs.WriteStream` will ignore the`path` argument and will use the specified file descriptor. This means that no`'open'` event will be\n     * emitted. `fd` should be blocking; non-blocking `fd`s\n     * should be passed to `net.Socket`.\n     *\n     * If `options` is a string, then it specifies the encoding.\n     * @since v0.1.31\n     */\n    export function createWriteStream(path: PathLike, options?: BufferEncoding | StreamOptions): WriteStream;\n    /**\n     * Forces all currently queued I/O operations associated with the file to the\n     * operating system's synchronized I/O completion state. Refer to the POSIX [`fdatasync(2)`](http://man7.org/linux/man-pages/man2/fdatasync.2.html) documentation for details. No arguments other\n     * than a possible\n     * exception are given to the completion callback.\n     * @since v0.1.96\n     */\n    export function fdatasync(fd: number, callback: NoParamCallback): void;\n    export namespace fdatasync {\n        /**\n         * Asynchronous fdatasync(2) - synchronize a file's in-core state with storage device.\n         * @param fd A file descriptor.\n         */\n        function __promisify__(fd: number): Promise<void>;\n    }\n    /**\n     * Forces all currently queued I/O operations associated with the file to the\n     * operating system's synchronized I/O completion state. Refer to the POSIX [`fdatasync(2)`](http://man7.org/linux/man-pages/man2/fdatasync.2.html) documentation for details. Returns `undefined`.\n     * @since v0.1.96\n     */\n    export function fdatasyncSync(fd: number): void;\n    /**\n     * Asynchronously copies `src` to `dest`. By default, `dest` is overwritten if it\n     * already exists. No arguments other than a possible exception are given to the\n     * callback function. Node.js makes no guarantees about the atomicity of the copy\n     * operation. If an error occurs after the destination file has been opened for\n     * writing, Node.js will attempt to remove the destination.\n     *\n     * `mode` is an optional integer that specifies the behavior\n     * of the copy operation. It is possible to create a mask consisting of the bitwise\n     * OR of two or more values (e.g.`fs.constants.COPYFILE_EXCL | fs.constants.COPYFILE_FICLONE`).\n     *\n     * * `fs.constants.COPYFILE_EXCL`: The copy operation will fail if `dest` already\n     * exists.\n     * * `fs.constants.COPYFILE_FICLONE`: The copy operation will attempt to create a\n     * copy-on-write reflink. If the platform does not support copy-on-write, then a\n     * fallback copy mechanism is used.\n     * * `fs.constants.COPYFILE_FICLONE_FORCE`: The copy operation will attempt to\n     * create a copy-on-write reflink. If the platform does not support\n     * copy-on-write, then the operation will fail.\n     *\n     * ```js\n     * import { copyFile, constants } from 'fs';\n     *\n     * function callback(err) {\n     *   if (err) throw err;\n     *   console.log('source.txt was copied to destination.txt');\n     * }\n     *\n     * // destination.txt will be created or overwritten by default.\n     * copyFile('source.txt', 'destination.txt', callback);\n     *\n     * // By using COPYFILE_EXCL, the operation will fail if destination.txt exists.\n     * copyFile('source.txt', 'destination.txt', constants.COPYFILE_EXCL, callback);\n     * ```\n     * @since v8.5.0\n     * @param src source filename to copy\n     * @param dest destination filename of the copy operation\n     * @param [mode=0] modifiers for copy operation.\n     */\n    export function copyFile(src: PathLike, dest: PathLike, callback: NoParamCallback): void;\n    export function copyFile(src: PathLike, dest: PathLike, mode: number, callback: NoParamCallback): void;\n    export namespace copyFile {\n        function __promisify__(src: PathLike, dst: PathLike, mode?: number): Promise<void>;\n    }\n    /**\n     * Synchronously copies `src` to `dest`. By default, `dest` is overwritten if it\n     * already exists. Returns `undefined`. Node.js makes no guarantees about the\n     * atomicity of the copy operation. If an error occurs after the destination file\n     * has been opened for writing, Node.js will attempt to remove the destination.\n     *\n     * `mode` is an optional integer that specifies the behavior\n     * of the copy operation. It is possible to create a mask consisting of the bitwise\n     * OR of two or more values (e.g.`fs.constants.COPYFILE_EXCL | fs.constants.COPYFILE_FICLONE`).\n     *\n     * * `fs.constants.COPYFILE_EXCL`: The copy operation will fail if `dest` already\n     * exists.\n     * * `fs.constants.COPYFILE_FICLONE`: The copy operation will attempt to create a\n     * copy-on-write reflink. If the platform does not support copy-on-write, then a\n     * fallback copy mechanism is used.\n     * * `fs.constants.COPYFILE_FICLONE_FORCE`: The copy operation will attempt to\n     * create a copy-on-write reflink. If the platform does not support\n     * copy-on-write, then the operation will fail.\n     *\n     * ```js\n     * import { copyFileSync, constants } from 'fs';\n     *\n     * // destination.txt will be created or overwritten by default.\n     * copyFileSync('source.txt', 'destination.txt');\n     * console.log('source.txt was copied to destination.txt');\n     *\n     * // By using COPYFILE_EXCL, the operation will fail if destination.txt exists.\n     * copyFileSync('source.txt', 'destination.txt', constants.COPYFILE_EXCL);\n     * ```\n     * @since v8.5.0\n     * @param src source filename to copy\n     * @param dest destination filename of the copy operation\n     * @param [mode=0] modifiers for copy operation.\n     */\n    export function copyFileSync(src: PathLike, dest: PathLike, mode?: number): void;\n    /**\n     * Write an array of `ArrayBufferView`s to the file specified by `fd` using`writev()`.\n     *\n     * `position` is the offset from the beginning of the file where this data\n     * should be written. If `typeof position !== 'number'`, the data will be written\n     * at the current position.\n     *\n     * The callback will be given three arguments: `err`, `bytesWritten`, and`buffers`. `bytesWritten` is how many bytes were written from `buffers`.\n     *\n     * If this method is `util.promisify()` ed, it returns a promise for an`Object` with `bytesWritten` and `buffers` properties.\n     *\n     * It is unsafe to use `fs.writev()` multiple times on the same file without\n     * waiting for the callback. For this scenario, use {@link createWriteStream}.\n     *\n     * On Linux, positional writes don't work when the file is opened in append mode.\n     * The kernel ignores the position argument and always appends the data to\n     * the end of the file.\n     * @since v12.9.0\n     */\n    export function writev(fd: number, buffers: ReadonlyArray<NodeJS.ArrayBufferView>, cb: (err: NodeJS.ErrnoException | null, bytesWritten: number, buffers: NodeJS.ArrayBufferView[]) => void): void;\n    export function writev(\n        fd: number,\n        buffers: ReadonlyArray<NodeJS.ArrayBufferView>,\n        position: number,\n        cb: (err: NodeJS.ErrnoException | null, bytesWritten: number, buffers: NodeJS.ArrayBufferView[]) => void\n    ): void;\n    export interface WriteVResult {\n        bytesWritten: number;\n        buffers: NodeJS.ArrayBufferView[];\n    }\n    export namespace writev {\n        function __promisify__(fd: number, buffers: ReadonlyArray<NodeJS.ArrayBufferView>, position?: number): Promise<WriteVResult>;\n    }\n    /**\n     * For detailed information, see the documentation of the asynchronous version of\n     * this API: {@link writev}.\n     * @since v12.9.0\n     * @return The number of bytes written.\n     */\n    export function writevSync(fd: number, buffers: ReadonlyArray<NodeJS.ArrayBufferView>, position?: number): number;\n    /**\n     * Read from a file specified by `fd` and write to an array of `ArrayBufferView`s\n     * using `readv()`.\n     *\n     * `position` is the offset from the beginning of the file from where data\n     * should be read. If `typeof position !== 'number'`, the data will be read\n     * from the current position.\n     *\n     * The callback will be given three arguments: `err`, `bytesRead`, and`buffers`. `bytesRead` is how many bytes were read from the file.\n     *\n     * If this method is invoked as its `util.promisify()` ed version, it returns\n     * a promise for an `Object` with `bytesRead` and `buffers` properties.\n     * @since v13.13.0, v12.17.0\n     */\n    export function readv(fd: number, buffers: ReadonlyArray<NodeJS.ArrayBufferView>, cb: (err: NodeJS.ErrnoException | null, bytesRead: number, buffers: NodeJS.ArrayBufferView[]) => void): void;\n    export function readv(\n        fd: number,\n        buffers: ReadonlyArray<NodeJS.ArrayBufferView>,\n        position: number,\n        cb: (err: NodeJS.ErrnoException | null, bytesRead: number, buffers: NodeJS.ArrayBufferView[]) => void\n    ): void;\n    export interface ReadVResult {\n        bytesRead: number;\n        buffers: NodeJS.ArrayBufferView[];\n    }\n    export namespace readv {\n        function __promisify__(fd: number, buffers: ReadonlyArray<NodeJS.ArrayBufferView>, position?: number): Promise<ReadVResult>;\n    }\n    /**\n     * For detailed information, see the documentation of the asynchronous version of\n     * this API: {@link readv}.\n     * @since v13.13.0, v12.17.0\n     * @return The number of bytes read.\n     */\n    export function readvSync(fd: number, buffers: ReadonlyArray<NodeJS.ArrayBufferView>, position?: number): number;\n    export interface OpenDirOptions {\n        encoding?: BufferEncoding | undefined;\n        /**\n         * Number of directory entries that are buffered\n         * internally when reading from the directory. Higher values lead to better\n         * performance but higher memory usage.\n         * @default 32\n         */\n        bufferSize?: number | undefined;\n    }\n    /**\n     * Synchronously open a directory. See [`opendir(3)`](http://man7.org/linux/man-pages/man3/opendir.3.html).\n     *\n     * Creates an `fs.Dir`, which contains all further functions for reading from\n     * and cleaning up the directory.\n     *\n     * The `encoding` option sets the encoding for the `path` while opening the\n     * directory and subsequent read operations.\n     * @since v12.12.0\n     */\n    export function opendirSync(path: PathLike, options?: OpenDirOptions): Dir;\n    /**\n     * Asynchronously open a directory. See the POSIX [`opendir(3)`](http://man7.org/linux/man-pages/man3/opendir.3.html) documentation for\n     * more details.\n     *\n     * Creates an `fs.Dir`, which contains all further functions for reading from\n     * and cleaning up the directory.\n     *\n     * The `encoding` option sets the encoding for the `path` while opening the\n     * directory and subsequent read operations.\n     * @since v12.12.0\n     */\n    export function opendir(path: PathLike, cb: (err: NodeJS.ErrnoException | null, dir: Dir) => void): void;\n    export function opendir(path: PathLike, options: OpenDirOptions, cb: (err: NodeJS.ErrnoException | null, dir: Dir) => void): void;\n    export namespace opendir {\n        function __promisify__(path: PathLike, options?: OpenDirOptions): Promise<Dir>;\n    }\n    export interface BigIntStats extends StatsBase<bigint> {\n        atimeNs: bigint;\n        mtimeNs: bigint;\n        ctimeNs: bigint;\n        birthtimeNs: bigint;\n    }\n    export interface BigIntOptions {\n        bigint: true;\n    }\n    export interface StatOptions {\n        bigint?: boolean | undefined;\n    }\n    export interface StatSyncOptions extends StatOptions {\n        throwIfNoEntry?: boolean | undefined;\n    }\n    interface CopyOptionsBase {\n        /**\n         * Dereference symlinks\n         * @default false\n         */\n        dereference?: boolean;\n        /**\n         * When `force` is `false`, and the destination\n         * exists, throw an error.\n         * @default false\n         */\n        errorOnExist?: boolean;\n        /**\n         * Overwrite existing file or directory. _The copy\n         * operation will ignore errors if you set this to false and the destination\n         * exists. Use the `errorOnExist` option to change this behavior.\n         * @default true\n         */\n        force?: boolean;\n        /**\n         * When `true` timestamps from `src` will\n         * be preserved.\n         * @default false\n         */\n        preserveTimestamps?: boolean;\n        /**\n         * Copy directories recursively.\n         * @default false\n         */\n        recursive?: boolean;\n    }\n    export interface CopyOptions extends CopyOptionsBase {\n        /**\n         * Function to filter copied files/directories. Return\n         * `true` to copy the item, `false` to ignore it.\n         */\n        filter?(source: string, destination: string): boolean | Promise<boolean>;\n    }\n    export interface CopySyncOptions extends CopyOptionsBase {\n        /**\n         * Function to filter copied files/directories. Return\n         * `true` to copy the item, `false` to ignore it.\n         */\n        filter?(source: string, destination: string): boolean;\n    }\n    /**\n     * Asynchronously copies the entire directory structure from `src` to `dest`,\n     * including subdirectories and files.\n     *\n     * When copying a directory to another directory, globs are not supported and\n     * behavior is similar to `cp dir1/ dir2/`.\n     * @since v16.7.0\n     * @experimental\n     * @param src source path to copy.\n     * @param dest destination path to copy to.\n     */\n    export function cp(source: string | URL, destination: string | URL, callback: (err: NodeJS.ErrnoException | null) => void): void;\n    export function cp(source: string | URL, destination: string | URL, opts: CopyOptions, callback: (err: NodeJS.ErrnoException | null) => void): void;\n    /**\n     * Synchronously copies the entire directory structure from `src` to `dest`,\n     * including subdirectories and files.\n     *\n     * When copying a directory to another directory, globs are not supported and\n     * behavior is similar to `cp dir1/ dir2/`.\n     * @since v16.7.0\n     * @experimental\n     * @param src source path to copy.\n     * @param dest destination path to copy to.\n     */\n    export function cpSync(source: string | URL, destination: string | URL, opts?: CopySyncOptions): void;\n}\ndeclare module 'node:fs' {\n    export * from 'fs';\n}\n"
    },
    {
      "path": "/node_modules/@types/node/fs/promises.d.ts",
      "content": "/**\n * The `fs/promises` API provides asynchronous file system methods that return\n * promises.\n *\n * The promise APIs use the underlying Node.js threadpool to perform file\n * system operations off the event loop thread. These operations are not\n * synchronized or threadsafe. Care must be taken when performing multiple\n * concurrent modifications on the same file or data corruption may occur.\n * @since v10.0.0\n */\ndeclare module 'fs/promises' {\n    import { Abortable } from 'node:events';\n    import { Stream } from 'node:stream';\n    import {\n        BigIntStats,\n        BufferEncodingOption,\n        constants as fsConstants,\n        CopyOptions,\n        Dir,\n        Dirent,\n        MakeDirectoryOptions,\n        Mode,\n        ObjectEncodingOptions,\n        OpenDirOptions,\n        OpenMode,\n        PathLike,\n        ReadStream,\n        ReadVResult,\n        RmDirOptions,\n        RmOptions,\n        StatOptions,\n        Stats,\n        WatchEventType,\n        WatchOptions,\n        WriteStream,\n        WriteVResult,\n    } from 'node:fs';\n    interface FileChangeInfo<T extends string | Buffer> {\n        eventType: WatchEventType;\n        filename: T;\n    }\n    interface FlagAndOpenMode {\n        mode?: Mode | undefined;\n        flag?: OpenMode | undefined;\n    }\n    interface FileReadResult<T extends ArrayBufferView> {\n        bytesRead: number;\n        buffer: T;\n    }\n    interface FileReadOptions<T extends ArrayBufferView = Buffer> {\n        /**\n         * @default `Buffer.alloc(0xffff)`\n         */\n        buffer?: T;\n        /**\n         * @default 0\n         */\n        offset?: number | null;\n        /**\n         * @default `buffer.byteLength`\n         */\n        length?: number | null;\n        position?: number | null;\n    }\n    interface CreateReadStreamOptions {\n        encoding?: BufferEncoding | null | undefined;\n        autoClose?: boolean | undefined;\n        emitClose?: boolean | undefined;\n        start?: number | undefined;\n        end?: number | undefined;\n        highWaterMark?: number | undefined;\n    }\n    interface CreateWriteStreamOptions {\n        encoding?: BufferEncoding | null | undefined;\n        autoClose?: boolean | undefined;\n        emitClose?: boolean | undefined;\n        start?: number | undefined;\n    }\n    // TODO: Add `EventEmitter` close\n    interface FileHandle {\n        /**\n         * The numeric file descriptor managed by the {FileHandle} object.\n         * @since v10.0.0\n         */\n        readonly fd: number;\n        /**\n         * Alias of `filehandle.writeFile()`.\n         *\n         * When operating on file handles, the mode cannot be changed from what it was set\n         * to with `fsPromises.open()`. Therefore, this is equivalent to `filehandle.writeFile()`.\n         * @since v10.0.0\n         * @return Fulfills with `undefined` upon success.\n         */\n        appendFile(data: string | Uint8Array, options?: (ObjectEncodingOptions & FlagAndOpenMode) | BufferEncoding | null): Promise<void>;\n        /**\n         * Changes the ownership of the file. A wrapper for [`chown(2)`](http://man7.org/linux/man-pages/man2/chown.2.html).\n         * @since v10.0.0\n         * @param uid The file's new owner's user id.\n         * @param gid The file's new group's group id.\n         * @return Fulfills with `undefined` upon success.\n         */\n        chown(uid: number, gid: number): Promise<void>;\n        /**\n         * Modifies the permissions on the file. See [`chmod(2)`](http://man7.org/linux/man-pages/man2/chmod.2.html).\n         * @since v10.0.0\n         * @param mode the file mode bit mask.\n         * @return Fulfills with `undefined` upon success.\n         */\n        chmod(mode: Mode): Promise<void>;\n        /**\n         * Unlike the 16 kb default `highWaterMark` for a `stream.Readable`, the stream\n         * returned by this method has a default `highWaterMark` of 64 kb.\n         *\n         * `options` can include `start` and `end` values to read a range of bytes from\n         * the file instead of the entire file. Both `start` and `end` are inclusive and\n         * start counting at 0, allowed values are in the\n         * \\[0, [`Number.MAX_SAFE_INTEGER`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/MAX_SAFE_INTEGER)\\] range. If `start` is\n         * omitted or `undefined`, `filehandle.createReadStream()` reads sequentially from\n         * the current file position. The `encoding` can be any one of those accepted by `Buffer`.\n         *\n         * If the `FileHandle` points to a character device that only supports blocking\n         * reads (such as keyboard or sound card), read operations do not finish until data\n         * is available. This can prevent the process from exiting and the stream from\n         * closing naturally.\n         *\n         * By default, the stream will emit a `'close'` event after it has been\n         * destroyed.  Set the `emitClose` option to `false` to change this behavior.\n         *\n         * ```js\n         * import { open } from 'fs/promises';\n         *\n         * const fd = await open('/dev/input/event0');\n         * // Create a stream from some character device.\n         * const stream = fd.createReadStream();\n         * setTimeout(() => {\n         *   stream.close(); // This may not close the stream.\n         *   // Artificially marking end-of-stream, as if the underlying resource had\n         *   // indicated end-of-file by itself, allows the stream to close.\n         *   // This does not cancel pending read operations, and if there is such an\n         *   // operation, the process may still not be able to exit successfully\n         *   // until it finishes.\n         *   stream.push(null);\n         *   stream.read(0);\n         * }, 100);\n         * ```\n         *\n         * If `autoClose` is false, then the file descriptor won't be closed, even if\n         * there's an error. It is the application's responsibility to close it and make\n         * sure there's no file descriptor leak. If `autoClose` is set to true (default\n         * behavior), on `'error'` or `'end'` the file descriptor will be closed\n         * automatically.\n         *\n         * An example to read the last 10 bytes of a file which is 100 bytes long:\n         *\n         * ```js\n         * import { open } from 'fs/promises';\n         *\n         * const fd = await open('sample.txt');\n         * fd.createReadStream({ start: 90, end: 99 });\n         * ```\n         * @since v16.11.0\n         */\n        createReadStream(options?: CreateReadStreamOptions): ReadStream;\n        /**\n         * `options` may also include a `start` option to allow writing data at some\n         * position past the beginning of the file, allowed values are in the\n         * \\[0, [`Number.MAX_SAFE_INTEGER`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/MAX_SAFE_INTEGER)\\] range. Modifying a file rather than replacing\n         * it may require the `flags` `open` option to be set to `r+` rather than the\n         * default `r`. The `encoding` can be any one of those accepted by `Buffer`.\n         *\n         * If `autoClose` is set to true (default behavior) on `'error'` or `'finish'`the file descriptor will be closed automatically. If `autoClose` is false,\n         * then the file descriptor won't be closed, even if there's an error.\n         * It is the application's responsibility to close it and make sure there's no\n         * file descriptor leak.\n         *\n         * By default, the stream will emit a `'close'` event after it has been\n         * destroyed.  Set the `emitClose` option to `false` to change this behavior.\n         * @since v16.11.0\n         */\n        createWriteStream(options?: CreateWriteStreamOptions): WriteStream;\n        /**\n         * Forces all currently queued I/O operations associated with the file to the\n         * operating system's synchronized I/O completion state. Refer to the POSIX [`fdatasync(2)`](http://man7.org/linux/man-pages/man2/fdatasync.2.html) documentation for details.\n         *\n         * Unlike `filehandle.sync` this method does not flush modified metadata.\n         * @since v10.0.0\n         * @return Fulfills with `undefined` upon success.\n         */\n        datasync(): Promise<void>;\n        /**\n         * Request that all data for the open file descriptor is flushed to the storage\n         * device. The specific implementation is operating system and device specific.\n         * Refer to the POSIX [`fsync(2)`](http://man7.org/linux/man-pages/man2/fsync.2.html) documentation for more detail.\n         * @since v10.0.0\n         * @return Fufills with `undefined` upon success.\n         */\n        sync(): Promise<void>;\n        /**\n         * Reads data from the file and stores that in the given buffer.\n         *\n         * If the file is not modified concurrently, the end-of-file is reached when the\n         * number of bytes read is zero.\n         * @since v10.0.0\n         * @param buffer A buffer that will be filled with the file data read.\n         * @param offset The location in the buffer at which to start filling.\n         * @param length The number of bytes to read.\n         * @param position The location where to begin reading data from the file. If `null`, data will be read from the current file position, and the position will be updated. If `position` is an\n         * integer, the current file position will remain unchanged.\n         * @return Fulfills upon success with an object with two properties:\n         */\n        read<T extends ArrayBufferView>(buffer: T, offset?: number | null, length?: number | null, position?: number | null): Promise<FileReadResult<T>>;\n        read<T extends ArrayBufferView = Buffer>(options?: FileReadOptions<T>): Promise<FileReadResult<T>>;\n        /**\n         * Asynchronously reads the entire contents of a file.\n         *\n         * If `options` is a string, then it specifies the `encoding`.\n         *\n         * The `FileHandle` has to support reading.\n         *\n         * If one or more `filehandle.read()` calls are made on a file handle and then a`filehandle.readFile()` call is made, the data will be read from the current\n         * position till the end of the file. It doesn't always read from the beginning\n         * of the file.\n         * @since v10.0.0\n         * @return Fulfills upon a successful read with the contents of the file. If no encoding is specified (using `options.encoding`), the data is returned as a {Buffer} object. Otherwise, the\n         * data will be a string.\n         */\n        readFile(\n            options?: {\n                encoding?: null | undefined;\n                flag?: OpenMode | undefined;\n            } | null\n        ): Promise<Buffer>;\n        /**\n         * Asynchronously reads the entire contents of a file. The underlying file will _not_ be closed automatically.\n         * The `FileHandle` must have been opened for reading.\n         * @param options An object that may contain an optional flag.\n         * If a flag is not provided, it defaults to `'r'`.\n         */\n        readFile(\n            options:\n                | {\n                      encoding: BufferEncoding;\n                      flag?: OpenMode | undefined;\n                  }\n                | BufferEncoding\n        ): Promise<string>;\n        /**\n         * Asynchronously reads the entire contents of a file. The underlying file will _not_ be closed automatically.\n         * The `FileHandle` must have been opened for reading.\n         * @param options An object that may contain an optional flag.\n         * If a flag is not provided, it defaults to `'r'`.\n         */\n        readFile(\n            options?:\n                | (ObjectEncodingOptions & {\n                      flag?: OpenMode | undefined;\n                  })\n                | BufferEncoding\n                | null\n        ): Promise<string | Buffer>;\n        /**\n         * @since v10.0.0\n         * @return Fulfills with an {fs.Stats} for the file.\n         */\n        stat(\n            opts?: StatOptions & {\n                bigint?: false | undefined;\n            }\n        ): Promise<Stats>;\n        stat(\n            opts: StatOptions & {\n                bigint: true;\n            }\n        ): Promise<BigIntStats>;\n        stat(opts?: StatOptions): Promise<Stats | BigIntStats>;\n        /**\n         * Truncates the file.\n         *\n         * If the file was larger than `len` bytes, only the first `len` bytes will be\n         * retained in the file.\n         *\n         * The following example retains only the first four bytes of the file:\n         *\n         * ```js\n         * import { open } from 'fs/promises';\n         *\n         * let filehandle = null;\n         * try {\n         *   filehandle = await open('temp.txt', 'r+');\n         *   await filehandle.truncate(4);\n         * } finally {\n         *   await filehandle?.close();\n         * }\n         * ```\n         *\n         * If the file previously was shorter than `len` bytes, it is extended, and the\n         * extended part is filled with null bytes (`'\\0'`):\n         *\n         * If `len` is negative then `0` will be used.\n         * @since v10.0.0\n         * @param [len=0]\n         * @return Fulfills with `undefined` upon success.\n         */\n        truncate(len?: number): Promise<void>;\n        /**\n         * Change the file system timestamps of the object referenced by the `FileHandle` then resolves the promise with no arguments upon success.\n         * @since v10.0.0\n         */\n        utimes(atime: string | number | Date, mtime: string | number | Date): Promise<void>;\n        /**\n         * Asynchronously writes data to a file, replacing the file if it already exists.`data` can be a string, a buffer, an\n         * [AsyncIterable](https://tc39.github.io/ecma262/#sec-asynciterable-interface) or\n         * [Iterable](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols#The_iterable_protocol) object, or an\n         * object with an own `toString` function\n         * property. The promise is resolved with no arguments upon success.\n         *\n         * If `options` is a string, then it specifies the `encoding`.\n         *\n         * The `FileHandle` has to support writing.\n         *\n         * It is unsafe to use `filehandle.writeFile()` multiple times on the same file\n         * without waiting for the promise to be resolved (or rejected).\n         *\n         * If one or more `filehandle.write()` calls are made on a file handle and then a`filehandle.writeFile()` call is made, the data will be written from the\n         * current position till the end of the file. It doesn't always write from the\n         * beginning of the file.\n         * @since v10.0.0\n         */\n        writeFile(data: string | Uint8Array, options?: (ObjectEncodingOptions & FlagAndOpenMode & Abortable) | BufferEncoding | null): Promise<void>;\n        /**\n         * Write `buffer` to the file.\n         *\n         * If `buffer` is a plain object, it must have an own (not inherited) `toString`function property.\n         *\n         * The promise is resolved with an object containing two properties:\n         *\n         * It is unsafe to use `filehandle.write()` multiple times on the same file\n         * without waiting for the promise to be resolved (or rejected). For this\n         * scenario, use `fs.createWriteStream()`.\n         *\n         * On Linux, positional writes do not work when the file is opened in append mode.\n         * The kernel ignores the position argument and always appends the data to\n         * the end of the file.\n         * @since v10.0.0\n         * @param [offset=0] The start position from within `buffer` where the data to write begins.\n         * @param [length=buffer.byteLength] The number of bytes from `buffer` to write.\n         * @param position The offset from the beginning of the file where the data from `buffer` should be written. If `position` is not a `number`, the data will be written at the current position.\n         * See the POSIX pwrite(2) documentation for more detail.\n         */\n        write<TBuffer extends Uint8Array>(\n            buffer: TBuffer,\n            offset?: number | null,\n            length?: number | null,\n            position?: number | null\n        ): Promise<{\n            bytesWritten: number;\n            buffer: TBuffer;\n        }>;\n        write(\n            data: string,\n            position?: number | null,\n            encoding?: BufferEncoding | null\n        ): Promise<{\n            bytesWritten: number;\n            buffer: string;\n        }>;\n        /**\n         * Write an array of [ArrayBufferView](https://developer.mozilla.org/en-US/docs/Web/API/ArrayBufferView) s to the file.\n         *\n         * The promise is resolved with an object containing a two properties:\n         *\n         * It is unsafe to call `writev()` multiple times on the same file without waiting\n         * for the promise to be resolved (or rejected).\n         *\n         * On Linux, positional writes don't work when the file is opened in append mode.\n         * The kernel ignores the position argument and always appends the data to\n         * the end of the file.\n         * @since v12.9.0\n         * @param position The offset from the beginning of the file where the data from `buffers` should be written. If `position` is not a `number`, the data will be written at the current\n         * position.\n         */\n        writev(buffers: ReadonlyArray<NodeJS.ArrayBufferView>, position?: number): Promise<WriteVResult>;\n        /**\n         * Read from a file and write to an array of [ArrayBufferView](https://developer.mozilla.org/en-US/docs/Web/API/ArrayBufferView) s\n         * @since v13.13.0, v12.17.0\n         * @param position The offset from the beginning of the file where the data should be read from. If `position` is not a `number`, the data will be read from the current position.\n         * @return Fulfills upon success an object containing two properties:\n         */\n        readv(buffers: ReadonlyArray<NodeJS.ArrayBufferView>, position?: number): Promise<ReadVResult>;\n        /**\n         * Closes the file handle after waiting for any pending operation on the handle to\n         * complete.\n         *\n         * ```js\n         * import { open } from 'fs/promises';\n         *\n         * let filehandle;\n         * try {\n         *   filehandle = await open('thefile.txt', 'r');\n         * } finally {\n         *   await filehandle?.close();\n         * }\n         * ```\n         * @since v10.0.0\n         * @return Fulfills with `undefined` upon success.\n         */\n        close(): Promise<void>;\n    }\n\n    const constants: typeof fsConstants;\n    /**\n     * Tests a user's permissions for the file or directory specified by `path`.\n     * The `mode` argument is an optional integer that specifies the accessibility\n     * checks to be performed. Check `File access constants` for possible values\n     * of `mode`. It is possible to create a mask consisting of the bitwise OR of\n     * two or more values (e.g. `fs.constants.W_OK | fs.constants.R_OK`).\n     *\n     * If the accessibility check is successful, the promise is resolved with no\n     * value. If any of the accessibility checks fail, the promise is rejected\n     * with an [Error](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error) object. The following example checks if the file`/etc/passwd` can be read and\n     * written by the current process.\n     *\n     * ```js\n     * import { access } from 'fs/promises';\n     * import { constants } from 'fs';\n     *\n     * try {\n     *   await access('/etc/passwd', constants.R_OK | constants.W_OK);\n     *   console.log('can access');\n     * } catch {\n     *   console.error('cannot access');\n     * }\n     * ```\n     *\n     * Using `fsPromises.access()` to check for the accessibility of a file before\n     * calling `fsPromises.open()` is not recommended. Doing so introduces a race\n     * condition, since other processes may change the file's state between the two\n     * calls. Instead, user code should open/read/write the file directly and handle\n     * the error raised if the file is not accessible.\n     * @since v10.0.0\n     * @param [mode=fs.constants.F_OK]\n     * @return Fulfills with `undefined` upon success.\n     */\n    function access(path: PathLike, mode?: number): Promise<void>;\n    /**\n     * Asynchronously copies `src` to `dest`. By default, `dest` is overwritten if it\n     * already exists.\n     *\n     * No guarantees are made about the atomicity of the copy operation. If an\n     * error occurs after the destination file has been opened for writing, an attempt\n     * will be made to remove the destination.\n     *\n     * ```js\n     * import { constants } from 'fs';\n     * import { copyFile } from 'fs/promises';\n     *\n     * try {\n     *   await copyFile('source.txt', 'destination.txt');\n     *   console.log('source.txt was copied to destination.txt');\n     * } catch {\n     *   console.log('The file could not be copied');\n     * }\n     *\n     * // By using COPYFILE_EXCL, the operation will fail if destination.txt exists.\n     * try {\n     *   await copyFile('source.txt', 'destination.txt', constants.COPYFILE_EXCL);\n     *   console.log('source.txt was copied to destination.txt');\n     * } catch {\n     *   console.log('The file could not be copied');\n     * }\n     * ```\n     * @since v10.0.0\n     * @param src source filename to copy\n     * @param dest destination filename of the copy operation\n     * @param [mode=0] Optional modifiers that specify the behavior of the copy operation. It is possible to create a mask consisting of the bitwise OR of two or more values (e.g.\n     * `fs.constants.COPYFILE_EXCL | fs.constants.COPYFILE_FICLONE`)\n     * @return Fulfills with `undefined` upon success.\n     */\n    function copyFile(src: PathLike, dest: PathLike, mode?: number): Promise<void>;\n    /**\n     * Opens a `FileHandle`.\n     *\n     * Refer to the POSIX [`open(2)`](http://man7.org/linux/man-pages/man2/open.2.html) documentation for more detail.\n     *\n     * Some characters (`< > : \" / \\ | ? *`) are reserved under Windows as documented\n     * by [Naming Files, Paths, and Namespaces](https://docs.microsoft.com/en-us/windows/desktop/FileIO/naming-a-file). Under NTFS, if the filename contains\n     * a colon, Node.js will open a file system stream, as described by [this MSDN page](https://docs.microsoft.com/en-us/windows/desktop/FileIO/using-streams).\n     * @since v10.0.0\n     * @param [flags='r'] See `support of file system `flags``.\n     * @param [mode=0o666] Sets the file mode (permission and sticky bits) if the file is created.\n     * @return Fulfills with a {FileHandle} object.\n     */\n    function open(path: PathLike, flags?: string | number, mode?: Mode): Promise<FileHandle>;\n    /**\n     * Renames `oldPath` to `newPath`.\n     * @since v10.0.0\n     * @return Fulfills with `undefined` upon success.\n     */\n    function rename(oldPath: PathLike, newPath: PathLike): Promise<void>;\n    /**\n     * Truncates (shortens or extends the length) of the content at `path` to `len`bytes.\n     * @since v10.0.0\n     * @param [len=0]\n     * @return Fulfills with `undefined` upon success.\n     */\n    function truncate(path: PathLike, len?: number): Promise<void>;\n    /**\n     * Removes the directory identified by `path`.\n     *\n     * Using `fsPromises.rmdir()` on a file (not a directory) results in the\n     * promise being rejected with an `ENOENT` error on Windows and an `ENOTDIR`error on POSIX.\n     *\n     * To get a behavior similar to the `rm -rf` Unix command, use `fsPromises.rm()` with options `{ recursive: true, force: true }`.\n     * @since v10.0.0\n     * @return Fulfills with `undefined` upon success.\n     */\n    function rmdir(path: PathLike, options?: RmDirOptions): Promise<void>;\n    /**\n     * Removes files and directories (modeled on the standard POSIX `rm` utility).\n     * @since v14.14.0\n     * @return Fulfills with `undefined` upon success.\n     */\n    function rm(path: PathLike, options?: RmOptions): Promise<void>;\n    /**\n     * Asynchronously creates a directory.\n     *\n     * The optional `options` argument can be an integer specifying `mode` (permission\n     * and sticky bits), or an object with a `mode` property and a `recursive`property indicating whether parent directories should be created. Calling`fsPromises.mkdir()` when `path` is a directory\n     * that exists results in a\n     * rejection only when `recursive` is false.\n     * @since v10.0.0\n     * @return Upon success, fulfills with `undefined` if `recursive` is `false`, or the first directory path created if `recursive` is `true`.\n     */\n    function mkdir(\n        path: PathLike,\n        options: MakeDirectoryOptions & {\n            recursive: true;\n        }\n    ): Promise<string | undefined>;\n    /**\n     * Asynchronous mkdir(2) - create a directory.\n     * @param path A path to a file. If a URL is provided, it must use the `file:` protocol.\n     * @param options Either the file mode, or an object optionally specifying the file mode and whether parent folders\n     * should be created. If a string is passed, it is parsed as an octal integer. If not specified, defaults to `0o777`.\n     */\n    function mkdir(\n        path: PathLike,\n        options?:\n            | Mode\n            | (MakeDirectoryOptions & {\n                  recursive?: false | undefined;\n              })\n            | null\n    ): Promise<void>;\n    /**\n     * Asynchronous mkdir(2) - create a directory.\n     * @param path A path to a file. If a URL is provided, it must use the `file:` protocol.\n     * @param options Either the file mode, or an object optionally specifying the file mode and whether parent folders\n     * should be created. If a string is passed, it is parsed as an octal integer. If not specified, defaults to `0o777`.\n     */\n    function mkdir(path: PathLike, options?: Mode | MakeDirectoryOptions | null): Promise<string | undefined>;\n    /**\n     * Reads the contents of a directory.\n     *\n     * The optional `options` argument can be a string specifying an encoding, or an\n     * object with an `encoding` property specifying the character encoding to use for\n     * the filenames. If the `encoding` is set to `'buffer'`, the filenames returned\n     * will be passed as `Buffer` objects.\n     *\n     * If `options.withFileTypes` is set to `true`, the resolved array will contain `fs.Dirent` objects.\n     *\n     * ```js\n     * import { readdir } from 'fs/promises';\n     *\n     * try {\n     *   const files = await readdir(path);\n     *   for (const file of files)\n     *     console.log(file);\n     * } catch (err) {\n     *   console.error(err);\n     * }\n     * ```\n     * @since v10.0.0\n     * @return Fulfills with an array of the names of the files in the directory excluding `'.'` and `'..'`.\n     */\n    function readdir(\n        path: PathLike,\n        options?:\n            | (ObjectEncodingOptions & {\n                  withFileTypes?: false | undefined;\n              })\n            | BufferEncoding\n            | null\n    ): Promise<string[]>;\n    /**\n     * Asynchronous readdir(3) - read a directory.\n     * @param path A path to a file. If a URL is provided, it must use the `file:` protocol.\n     * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used.\n     */\n    function readdir(\n        path: PathLike,\n        options:\n            | {\n                  encoding: 'buffer';\n                  withFileTypes?: false | undefined;\n              }\n            | 'buffer'\n    ): Promise<Buffer[]>;\n    /**\n     * Asynchronous readdir(3) - read a directory.\n     * @param path A path to a file. If a URL is provided, it must use the `file:` protocol.\n     * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used.\n     */\n    function readdir(\n        path: PathLike,\n        options?:\n            | (ObjectEncodingOptions & {\n                  withFileTypes?: false | undefined;\n              })\n            | BufferEncoding\n            | null\n    ): Promise<string[] | Buffer[]>;\n    /**\n     * Asynchronous readdir(3) - read a directory.\n     * @param path A path to a file. If a URL is provided, it must use the `file:` protocol.\n     * @param options If called with `withFileTypes: true` the result data will be an array of Dirent.\n     */\n    function readdir(\n        path: PathLike,\n        options: ObjectEncodingOptions & {\n            withFileTypes: true;\n        }\n    ): Promise<Dirent[]>;\n    /**\n     * Reads the contents of the symbolic link referred to by `path`. See the POSIX [`readlink(2)`](http://man7.org/linux/man-pages/man2/readlink.2.html) documentation for more detail. The promise is\n     * resolved with the`linkString` upon success.\n     *\n     * The optional `options` argument can be a string specifying an encoding, or an\n     * object with an `encoding` property specifying the character encoding to use for\n     * the link path returned. If the `encoding` is set to `'buffer'`, the link path\n     * returned will be passed as a `Buffer` object.\n     * @since v10.0.0\n     * @return Fulfills with the `linkString` upon success.\n     */\n    function readlink(path: PathLike, options?: ObjectEncodingOptions | BufferEncoding | null): Promise<string>;\n    /**\n     * Asynchronous readlink(2) - read value of a symbolic link.\n     * @param path A path to a file. If a URL is provided, it must use the `file:` protocol.\n     * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used.\n     */\n    function readlink(path: PathLike, options: BufferEncodingOption): Promise<Buffer>;\n    /**\n     * Asynchronous readlink(2) - read value of a symbolic link.\n     * @param path A path to a file. If a URL is provided, it must use the `file:` protocol.\n     * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used.\n     */\n    function readlink(path: PathLike, options?: ObjectEncodingOptions | string | null): Promise<string | Buffer>;\n    /**\n     * Creates a symbolic link.\n     *\n     * The `type` argument is only used on Windows platforms and can be one of `'dir'`,`'file'`, or `'junction'`. Windows junction points require the destination path\n     * to be absolute. When using `'junction'`, the `target` argument will\n     * automatically be normalized to absolute path.\n     * @since v10.0.0\n     * @param [type='file']\n     * @return Fulfills with `undefined` upon success.\n     */\n    function symlink(target: PathLike, path: PathLike, type?: string | null): Promise<void>;\n    /**\n     * Equivalent to `fsPromises.stat()` unless `path` refers to a symbolic link,\n     * in which case the link itself is stat-ed, not the file that it refers to.\n     * Refer to the POSIX [`lstat(2)`](http://man7.org/linux/man-pages/man2/lstat.2.html) document for more detail.\n     * @since v10.0.0\n     * @return Fulfills with the {fs.Stats} object for the given symbolic link `path`.\n     */\n    function lstat(\n        path: PathLike,\n        opts?: StatOptions & {\n            bigint?: false | undefined;\n        }\n    ): Promise<Stats>;\n    function lstat(\n        path: PathLike,\n        opts: StatOptions & {\n            bigint: true;\n        }\n    ): Promise<BigIntStats>;\n    function lstat(path: PathLike, opts?: StatOptions): Promise<Stats | BigIntStats>;\n    /**\n     * @since v10.0.0\n     * @return Fulfills with the {fs.Stats} object for the given `path`.\n     */\n    function stat(\n        path: PathLike,\n        opts?: StatOptions & {\n            bigint?: false | undefined;\n        }\n    ): Promise<Stats>;\n    function stat(\n        path: PathLike,\n        opts: StatOptions & {\n            bigint: true;\n        }\n    ): Promise<BigIntStats>;\n    function stat(path: PathLike, opts?: StatOptions): Promise<Stats | BigIntStats>;\n    /**\n     * Creates a new link from the `existingPath` to the `newPath`. See the POSIX [`link(2)`](http://man7.org/linux/man-pages/man2/link.2.html) documentation for more detail.\n     * @since v10.0.0\n     * @return Fulfills with `undefined` upon success.\n     */\n    function link(existingPath: PathLike, newPath: PathLike): Promise<void>;\n    /**\n     * If `path` refers to a symbolic link, then the link is removed without affecting\n     * the file or directory to which that link refers. If the `path` refers to a file\n     * path that is not a symbolic link, the file is deleted. See the POSIX [`unlink(2)`](http://man7.org/linux/man-pages/man2/unlink.2.html) documentation for more detail.\n     * @since v10.0.0\n     * @return Fulfills with `undefined` upon success.\n     */\n    function unlink(path: PathLike): Promise<void>;\n    /**\n     * Changes the permissions of a file.\n     * @since v10.0.0\n     * @return Fulfills with `undefined` upon success.\n     */\n    function chmod(path: PathLike, mode: Mode): Promise<void>;\n    /**\n     * Changes the permissions on a symbolic link.\n     *\n     * This method is only implemented on macOS.\n     * @deprecated Since v10.0.0\n     * @return Fulfills with `undefined` upon success.\n     */\n    function lchmod(path: PathLike, mode: Mode): Promise<void>;\n    /**\n     * Changes the ownership on a symbolic link.\n     * @since v10.0.0\n     * @return Fulfills with `undefined` upon success.\n     */\n    function lchown(path: PathLike, uid: number, gid: number): Promise<void>;\n    /**\n     * Changes the access and modification times of a file in the same way as `fsPromises.utimes()`, with the difference that if the path refers to a\n     * symbolic link, then the link is not dereferenced: instead, the timestamps of\n     * the symbolic link itself are changed.\n     * @since v14.5.0, v12.19.0\n     * @return Fulfills with `undefined` upon success.\n     */\n    function lutimes(path: PathLike, atime: string | number | Date, mtime: string | number | Date): Promise<void>;\n    /**\n     * Changes the ownership of a file.\n     * @since v10.0.0\n     * @return Fulfills with `undefined` upon success.\n     */\n    function chown(path: PathLike, uid: number, gid: number): Promise<void>;\n    /**\n     * Change the file system timestamps of the object referenced by `path`.\n     *\n     * The `atime` and `mtime` arguments follow these rules:\n     *\n     * * Values can be either numbers representing Unix epoch time, `Date`s, or a\n     * numeric string like `'123456789.0'`.\n     * * If the value can not be converted to a number, or is `NaN`, `Infinity` or`-Infinity`, an `Error` will be thrown.\n     * @since v10.0.0\n     * @return Fulfills with `undefined` upon success.\n     */\n    function utimes(path: PathLike, atime: string | number | Date, mtime: string | number | Date): Promise<void>;\n    /**\n     * Determines the actual location of `path` using the same semantics as the`fs.realpath.native()` function.\n     *\n     * Only paths that can be converted to UTF8 strings are supported.\n     *\n     * The optional `options` argument can be a string specifying an encoding, or an\n     * object with an `encoding` property specifying the character encoding to use for\n     * the path. If the `encoding` is set to `'buffer'`, the path returned will be\n     * passed as a `Buffer` object.\n     *\n     * On Linux, when Node.js is linked against musl libc, the procfs file system must\n     * be mounted on `/proc` in order for this function to work. Glibc does not have\n     * this restriction.\n     * @since v10.0.0\n     * @return Fulfills with the resolved path upon success.\n     */\n    function realpath(path: PathLike, options?: ObjectEncodingOptions | BufferEncoding | null): Promise<string>;\n    /**\n     * Asynchronous realpath(3) - return the canonicalized absolute pathname.\n     * @param path A path to a file. If a URL is provided, it must use the `file:` protocol.\n     * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used.\n     */\n    function realpath(path: PathLike, options: BufferEncodingOption): Promise<Buffer>;\n    /**\n     * Asynchronous realpath(3) - return the canonicalized absolute pathname.\n     * @param path A path to a file. If a URL is provided, it must use the `file:` protocol.\n     * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used.\n     */\n    function realpath(path: PathLike, options?: ObjectEncodingOptions | BufferEncoding | null): Promise<string | Buffer>;\n    /**\n     * Creates a unique temporary directory. A unique directory name is generated by\n     * appending six random characters to the end of the provided `prefix`. Due to\n     * platform inconsistencies, avoid trailing `X` characters in `prefix`. Some\n     * platforms, notably the BSDs, can return more than six random characters, and\n     * replace trailing `X` characters in `prefix` with random characters.\n     *\n     * The optional `options` argument can be a string specifying an encoding, or an\n     * object with an `encoding` property specifying the character encoding to use.\n     *\n     * ```js\n     * import { mkdtemp } from 'fs/promises';\n     *\n     * try {\n     *   await mkdtemp(path.join(os.tmpdir(), 'foo-'));\n     * } catch (err) {\n     *   console.error(err);\n     * }\n     * ```\n     *\n     * The `fsPromises.mkdtemp()` method will append the six randomly selected\n     * characters directly to the `prefix` string. For instance, given a directory`/tmp`, if the intention is to create a temporary directory _within_`/tmp`, the`prefix` must end with a trailing\n     * platform-specific path separator\n     * (`require('path').sep`).\n     * @since v10.0.0\n     * @return Fulfills with a string containing the filesystem path of the newly created temporary directory.\n     */\n    function mkdtemp(prefix: string, options?: ObjectEncodingOptions | BufferEncoding | null): Promise<string>;\n    /**\n     * Asynchronously creates a unique temporary directory.\n     * Generates six random characters to be appended behind a required `prefix` to create a unique temporary directory.\n     * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used.\n     */\n    function mkdtemp(prefix: string, options: BufferEncodingOption): Promise<Buffer>;\n    /**\n     * Asynchronously creates a unique temporary directory.\n     * Generates six random characters to be appended behind a required `prefix` to create a unique temporary directory.\n     * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used.\n     */\n    function mkdtemp(prefix: string, options?: ObjectEncodingOptions | BufferEncoding | null): Promise<string | Buffer>;\n    /**\n     * Asynchronously writes data to a file, replacing the file if it already exists.`data` can be a string, a `Buffer`, or, an object with an own (not inherited)`toString` function property.\n     *\n     * The `encoding` option is ignored if `data` is a buffer.\n     *\n     * If `options` is a string, then it specifies the encoding.\n     *\n     * The `mode` option only affects the newly created file. See `fs.open()` for more details.\n     *\n     * Any specified `FileHandle` has to support writing.\n     *\n     * It is unsafe to use `fsPromises.writeFile()` multiple times on the same file\n     * without waiting for the promise to be settled.\n     *\n     * Similarly to `fsPromises.readFile` \\- `fsPromises.writeFile` is a convenience\n     * method that performs multiple `write` calls internally to write the buffer\n     * passed to it. For performance sensitive code consider using `fs.createWriteStream()`.\n     *\n     * It is possible to use an `AbortSignal` to cancel an `fsPromises.writeFile()`.\n     * Cancelation is \"best effort\", and some amount of data is likely still\n     * to be written.\n     *\n     * ```js\n     * import { writeFile } from 'fs/promises';\n     * import { Buffer } from 'buffer';\n     *\n     * try {\n     *   const controller = new AbortController();\n     *   const { signal } = controller;\n     *   const data = new Uint8Array(Buffer.from('Hello Node.js'));\n     *   const promise = writeFile('message.txt', data, { signal });\n     *\n     *   // Abort the request before the promise settles.\n     *   controller.abort();\n     *\n     *   await promise;\n     * } catch (err) {\n     *   // When a request is aborted - err is an AbortError\n     *   console.error(err);\n     * }\n     * ```\n     *\n     * Aborting an ongoing request does not abort individual operating\n     * system requests but rather the internal buffering `fs.writeFile` performs.\n     * @since v10.0.0\n     * @param file filename or `FileHandle`\n     * @return Fulfills with `undefined` upon success.\n     */\n    function writeFile(\n        file: PathLike | FileHandle,\n        data: string | NodeJS.ArrayBufferView | Iterable<string | NodeJS.ArrayBufferView> | AsyncIterable<string | NodeJS.ArrayBufferView> | Stream,\n        options?:\n            | (ObjectEncodingOptions & {\n                  mode?: Mode | undefined;\n                  flag?: OpenMode | undefined;\n              } & Abortable)\n            | BufferEncoding\n            | null\n    ): Promise<void>;\n    /**\n     * Asynchronously append data to a file, creating the file if it does not yet\n     * exist. `data` can be a string or a `Buffer`.\n     *\n     * If `options` is a string, then it specifies the `encoding`.\n     *\n     * The `mode` option only affects the newly created file. See `fs.open()` for more details.\n     *\n     * The `path` may be specified as a `FileHandle` that has been opened\n     * for appending (using `fsPromises.open()`).\n     * @since v10.0.0\n     * @param path filename or {FileHandle}\n     * @return Fulfills with `undefined` upon success.\n     */\n    function appendFile(path: PathLike | FileHandle, data: string | Uint8Array, options?: (ObjectEncodingOptions & FlagAndOpenMode) | BufferEncoding | null): Promise<void>;\n    /**\n     * Asynchronously reads the entire contents of a file.\n     *\n     * If no encoding is specified (using `options.encoding`), the data is returned\n     * as a `Buffer` object. Otherwise, the data will be a string.\n     *\n     * If `options` is a string, then it specifies the encoding.\n     *\n     * When the `path` is a directory, the behavior of `fsPromises.readFile()` is\n     * platform-specific. On macOS, Linux, and Windows, the promise will be rejected\n     * with an error. On FreeBSD, a representation of the directory's contents will be\n     * returned.\n     *\n     * It is possible to abort an ongoing `readFile` using an `AbortSignal`. If a\n     * request is aborted the promise returned is rejected with an `AbortError`:\n     *\n     * ```js\n     * import { readFile } from 'fs/promises';\n     *\n     * try {\n     *   const controller = new AbortController();\n     *   const { signal } = controller;\n     *   const promise = readFile(fileName, { signal });\n     *\n     *   // Abort the request before the promise settles.\n     *   controller.abort();\n     *\n     *   await promise;\n     * } catch (err) {\n     *   // When a request is aborted - err is an AbortError\n     *   console.error(err);\n     * }\n     * ```\n     *\n     * Aborting an ongoing request does not abort individual operating\n     * system requests but rather the internal buffering `fs.readFile` performs.\n     *\n     * Any specified `FileHandle` has to support reading.\n     * @since v10.0.0\n     * @param path filename or `FileHandle`\n     * @return Fulfills with the contents of the file.\n     */\n    function readFile(\n        path: PathLike | FileHandle,\n        options?:\n            | ({\n                  encoding?: null | undefined;\n                  flag?: OpenMode | undefined;\n              } & Abortable)\n            | null\n    ): Promise<Buffer>;\n    /**\n     * Asynchronously reads the entire contents of a file.\n     * @param path A path to a file. If a URL is provided, it must use the `file:` protocol.\n     * If a `FileHandle` is provided, the underlying file will _not_ be closed automatically.\n     * @param options An object that may contain an optional flag.\n     * If a flag is not provided, it defaults to `'r'`.\n     */\n    function readFile(\n        path: PathLike | FileHandle,\n        options:\n            | ({\n                  encoding: BufferEncoding;\n                  flag?: OpenMode | undefined;\n              } & Abortable)\n            | BufferEncoding\n    ): Promise<string>;\n    /**\n     * Asynchronously reads the entire contents of a file.\n     * @param path A path to a file. If a URL is provided, it must use the `file:` protocol.\n     * If a `FileHandle` is provided, the underlying file will _not_ be closed automatically.\n     * @param options An object that may contain an optional flag.\n     * If a flag is not provided, it defaults to `'r'`.\n     */\n    function readFile(\n        path: PathLike | FileHandle,\n        options?:\n            | (ObjectEncodingOptions &\n                  Abortable & {\n                      flag?: OpenMode | undefined;\n                  })\n            | BufferEncoding\n            | null\n    ): Promise<string | Buffer>;\n    /**\n     * Asynchronously open a directory for iterative scanning. See the POSIX [`opendir(3)`](http://man7.org/linux/man-pages/man3/opendir.3.html) documentation for more detail.\n     *\n     * Creates an `fs.Dir`, which contains all further functions for reading from\n     * and cleaning up the directory.\n     *\n     * The `encoding` option sets the encoding for the `path` while opening the\n     * directory and subsequent read operations.\n     *\n     * Example using async iteration:\n     *\n     * ```js\n     * import { opendir } from 'fs/promises';\n     *\n     * try {\n     *   const dir = await opendir('./');\n     *   for await (const dirent of dir)\n     *     console.log(dirent.name);\n     * } catch (err) {\n     *   console.error(err);\n     * }\n     * ```\n     *\n     * When using the async iterator, the `fs.Dir` object will be automatically\n     * closed after the iterator exits.\n     * @since v12.12.0\n     * @return Fulfills with an {fs.Dir}.\n     */\n    function opendir(path: PathLike, options?: OpenDirOptions): Promise<Dir>;\n    /**\n     * Returns an async iterator that watches for changes on `filename`, where `filename`is either a file or a directory.\n     *\n     * ```js\n     * const { watch } = require('fs/promises');\n     *\n     * const ac = new AbortController();\n     * const { signal } = ac;\n     * setTimeout(() => ac.abort(), 10000);\n     *\n     * (async () => {\n     *   try {\n     *     const watcher = watch(__filename, { signal });\n     *     for await (const event of watcher)\n     *       console.log(event);\n     *   } catch (err) {\n     *     if (err.name === 'AbortError')\n     *       return;\n     *     throw err;\n     *   }\n     * })();\n     * ```\n     *\n     * On most platforms, `'rename'` is emitted whenever a filename appears or\n     * disappears in the directory.\n     *\n     * All the `caveats` for `fs.watch()` also apply to `fsPromises.watch()`.\n     * @since v15.9.0\n     * @return of objects with the properties:\n     */\n    function watch(\n        filename: PathLike,\n        options:\n            | (WatchOptions & {\n                  encoding: 'buffer';\n              })\n            | 'buffer'\n    ): AsyncIterable<FileChangeInfo<Buffer>>;\n    /**\n     * Watch for changes on `filename`, where `filename` is either a file or a directory, returning an `FSWatcher`.\n     * @param filename A path to a file or directory. If a URL is provided, it must use the `file:` protocol.\n     * @param options Either the encoding for the filename provided to the listener, or an object optionally specifying encoding, persistent, and recursive options.\n     * If `encoding` is not supplied, the default of `'utf8'` is used.\n     * If `persistent` is not supplied, the default of `true` is used.\n     * If `recursive` is not supplied, the default of `false` is used.\n     */\n    function watch(filename: PathLike, options?: WatchOptions | BufferEncoding): AsyncIterable<FileChangeInfo<string>>;\n    /**\n     * Watch for changes on `filename`, where `filename` is either a file or a directory, returning an `FSWatcher`.\n     * @param filename A path to a file or directory. If a URL is provided, it must use the `file:` protocol.\n     * @param options Either the encoding for the filename provided to the listener, or an object optionally specifying encoding, persistent, and recursive options.\n     * If `encoding` is not supplied, the default of `'utf8'` is used.\n     * If `persistent` is not supplied, the default of `true` is used.\n     * If `recursive` is not supplied, the default of `false` is used.\n     */\n    function watch(filename: PathLike, options: WatchOptions | string): AsyncIterable<FileChangeInfo<string>> | AsyncIterable<FileChangeInfo<Buffer>>;\n    /**\n     * Asynchronously copies the entire directory structure from `src` to `dest`,\n     * including subdirectories and files.\n     *\n     * When copying a directory to another directory, globs are not supported and\n     * behavior is similar to `cp dir1/ dir2/`.\n     * @since v16.7.0\n     * @experimental\n     * @param src source path to copy.\n     * @param dest destination path to copy to.\n     * @return Fulfills with `undefined` upon success.\n     */\n    function cp(source: string | URL, destination: string | URL, opts?: CopyOptions): Promise<void>;\n}\ndeclare module 'node:fs/promises' {\n    export * from 'fs/promises';\n}\n"
    },
    {
      "path": "/node_modules/@types/node/http.d.ts",
      "content": "/**\n * To use the HTTP server and client one must `require('http')`.\n *\n * The HTTP interfaces in Node.js are designed to support many features\n * of the protocol which have been traditionally difficult to use.\n * In particular, large, possibly chunk-encoded, messages. The interface is\n * careful to never buffer entire requests or responses, so the\n * user is able to stream data.\n *\n * HTTP message headers are represented by an object like this:\n *\n * ```js\n * { 'content-length': '123',\n *   'content-type': 'text/plain',\n *   'connection': 'keep-alive',\n *   'host': 'mysite.com',\n *   'accept': '*' }\n * ```\n *\n * Keys are lowercased. Values are not modified.\n *\n * In order to support the full spectrum of possible HTTP applications, the Node.js\n * HTTP API is very low-level. It deals with stream handling and message\n * parsing only. It parses a message into headers and body but it does not\n * parse the actual headers or the body.\n *\n * See `message.headers` for details on how duplicate headers are handled.\n *\n * The raw headers as they were received are retained in the `rawHeaders`property, which is an array of `[key, value, key2, value2, ...]`. For\n * example, the previous message header object might have a `rawHeaders`list like the following:\n *\n * ```js\n * [ 'ConTent-Length', '123456',\n *   'content-LENGTH', '123',\n *   'content-type', 'text/plain',\n *   'CONNECTION', 'keep-alive',\n *   'Host', 'mysite.com',\n *   'accepT', '*' ]\n * ```\n * @see [source](https://github.com/nodejs/node/blob/v16.9.0/lib/http.js)\n */\ndeclare module 'http' {\n    import * as stream from 'node:stream';\n    import { URL } from 'node:url';\n    import { TcpSocketConnectOpts, Socket, Server as NetServer, LookupFunction } from 'node:net';\n    // incoming headers will never contain number\n    interface IncomingHttpHeaders extends NodeJS.Dict<string | string[]> {\n        accept?: string | undefined;\n        'accept-language'?: string | undefined;\n        'accept-patch'?: string | undefined;\n        'accept-ranges'?: string | undefined;\n        'access-control-allow-credentials'?: string | undefined;\n        'access-control-allow-headers'?: string | undefined;\n        'access-control-allow-methods'?: string | undefined;\n        'access-control-allow-origin'?: string | undefined;\n        'access-control-expose-headers'?: string | undefined;\n        'access-control-max-age'?: string | undefined;\n        'access-control-request-headers'?: string | undefined;\n        'access-control-request-method'?: string | undefined;\n        age?: string | undefined;\n        allow?: string | undefined;\n        'alt-svc'?: string | undefined;\n        authorization?: string | undefined;\n        'cache-control'?: string | undefined;\n        connection?: string | undefined;\n        'content-disposition'?: string | undefined;\n        'content-encoding'?: string | undefined;\n        'content-language'?: string | undefined;\n        'content-length'?: string | undefined;\n        'content-location'?: string | undefined;\n        'content-range'?: string | undefined;\n        'content-type'?: string | undefined;\n        cookie?: string | undefined;\n        date?: string | undefined;\n        etag?: string | undefined;\n        expect?: string | undefined;\n        expires?: string | undefined;\n        forwarded?: string | undefined;\n        from?: string | undefined;\n        host?: string | undefined;\n        'if-match'?: string | undefined;\n        'if-modified-since'?: string | undefined;\n        'if-none-match'?: string | undefined;\n        'if-unmodified-since'?: string | undefined;\n        'last-modified'?: string | undefined;\n        location?: string | undefined;\n        origin?: string | undefined;\n        pragma?: string | undefined;\n        'proxy-authenticate'?: string | undefined;\n        'proxy-authorization'?: string | undefined;\n        'public-key-pins'?: string | undefined;\n        range?: string | undefined;\n        referer?: string | undefined;\n        'retry-after'?: string | undefined;\n        'sec-websocket-accept'?: string | undefined;\n        'sec-websocket-extensions'?: string | undefined;\n        'sec-websocket-key'?: string | undefined;\n        'sec-websocket-protocol'?: string | undefined;\n        'sec-websocket-version'?: string | undefined;\n        'set-cookie'?: string[] | undefined;\n        'strict-transport-security'?: string | undefined;\n        tk?: string | undefined;\n        trailer?: string | undefined;\n        'transfer-encoding'?: string | undefined;\n        upgrade?: string | undefined;\n        'user-agent'?: string | undefined;\n        vary?: string | undefined;\n        via?: string | undefined;\n        warning?: string | undefined;\n        'www-authenticate'?: string | undefined;\n    }\n    // outgoing headers allows numbers (as they are converted internally to strings)\n    type OutgoingHttpHeader = number | string | string[];\n    interface OutgoingHttpHeaders extends NodeJS.Dict<OutgoingHttpHeader> {}\n    interface ClientRequestArgs {\n        signal?: AbortSignal | undefined;\n        protocol?: string | null | undefined;\n        host?: string | null | undefined;\n        hostname?: string | null | undefined;\n        family?: number | undefined;\n        port?: number | string | null | undefined;\n        defaultPort?: number | string | undefined;\n        localAddress?: string | undefined;\n        socketPath?: string | undefined;\n        /**\n         * @default 8192\n         */\n        maxHeaderSize?: number | undefined;\n        method?: string | undefined;\n        path?: string | null | undefined;\n        headers?: OutgoingHttpHeaders | undefined;\n        auth?: string | null | undefined;\n        agent?: Agent | boolean | undefined;\n        _defaultAgent?: Agent | undefined;\n        timeout?: number | undefined;\n        setHost?: boolean | undefined;\n        // https://github.com/nodejs/node/blob/master/lib/_http_client.js#L278\n        createConnection?:\n            | ((options: ClientRequestArgs, oncreate: (err: Error, socket: Socket) => void) => Socket)\n            | undefined;\n        lookup?: LookupFunction | undefined;\n    }\n    interface ServerOptions<\n        Request extends typeof IncomingMessage = typeof IncomingMessage,\n        Response extends typeof ServerResponse = typeof ServerResponse,\n    > {\n        IncomingMessage?: Request | undefined;\n        ServerResponse?: Response | undefined;\n        /**\n         * Optionally overrides the value of\n         * `--max-http-header-size` for requests received by this server, i.e.\n         * the maximum length of request headers in bytes.\n         * @default 8192\n         */\n        maxHeaderSize?: number | undefined;\n        /**\n         * Use an insecure HTTP parser that accepts invalid HTTP headers when true.\n         * Using the insecure parser should be avoided.\n         * See --insecure-http-parser for more information.\n         * @default false\n         */\n        insecureHTTPParser?: boolean | undefined;\n        /**\n         * If set to `true`, it disables the use of Nagle's algorithm immediately after a new incoming connection is received.\n         * @default false\n         * @since v16.5.0\n         */\n        noDelay?: boolean | undefined;\n        /**\n         * If set to `true`, it enables keep-alive functionality on the socket immediately after a new incoming connection is received,\n         * similarly on what is done in `socket.setKeepAlive([enable][, initialDelay])`.\n         * @default false\n         * @since v16.5.0\n         */\n        keepAlive?: boolean | undefined;\n        /**\n         * If set to a positive number, it sets the initial delay before the first keepalive probe is sent on an idle socket.\n         * @default 0\n         * @since v16.5.0\n         */\n        keepAliveInitialDelay?: number | undefined;\n    }\n    type RequestListener<\n        Request extends typeof IncomingMessage = typeof IncomingMessage,\n        Response extends typeof ServerResponse = typeof ServerResponse,\n    > = (req: InstanceType<Request>, res: InstanceType<Response> & { req: InstanceType<Request> }) => void;\n    /**\n     * @since v0.1.17\n     */\n    class Server<\n        Request extends typeof IncomingMessage = typeof IncomingMessage,\n        Response extends typeof ServerResponse = typeof ServerResponse,\n    > extends NetServer {\n        constructor(requestListener?: RequestListener<Request, Response>);\n        constructor(options: ServerOptions<Request, Response>, requestListener?: RequestListener<Request, Response>);\n        /**\n         * Sets the timeout value for sockets, and emits a `'timeout'` event on\n         * the Server object, passing the socket as an argument, if a timeout\n         * occurs.\n         *\n         * If there is a `'timeout'` event listener on the Server object, then it\n         * will be called with the timed-out socket as an argument.\n         *\n         * By default, the Server does not timeout sockets. However, if a callback\n         * is assigned to the Server's `'timeout'` event, timeouts must be handled\n         * explicitly.\n         * @since v0.9.12\n         * @param [msecs=0 (no timeout)]\n         */\n        setTimeout(msecs?: number, callback?: () => void): this;\n        setTimeout(callback: () => void): this;\n        /**\n         * Limits maximum incoming headers count. If set to 0, no limit will be applied.\n         * @since v0.7.0\n         */\n        maxHeadersCount: number | null;\n        /**\n         * The maximum number of requests socket can handle\n         * before closing keep alive connection.\n         *\n         * A value of `0` will disable the limit.\n         *\n         * When the limit is reached it will set the `Connection` header value to `close`,\n         * but will not actually close the connection, subsequent requests sent\n         * after the limit is reached will get `503 Service Unavailable` as a response.\n         * @since v16.10.0\n         */\n        maxRequestsPerSocket: number | null;\n        /**\n         * The number of milliseconds of inactivity before a socket is presumed\n         * to have timed out.\n         *\n         * A value of `0` will disable the timeout behavior on incoming connections.\n         *\n         * The socket timeout logic is set up on connection, so changing this\n         * value only affects new connections to the server, not any existing connections.\n         * @since v0.9.12\n         */\n        timeout: number;\n        /**\n         * Limit the amount of time the parser will wait to receive the complete HTTP\n         * headers.\n         *\n         * In case of inactivity, the rules defined in `server.timeout` apply. However,\n         * that inactivity based timeout would still allow the connection to be kept open\n         * if the headers are being sent very slowly (by default, up to a byte per 2\n         * minutes). In order to prevent this, whenever header data arrives an additional\n         * check is made that more than `server.headersTimeout` milliseconds has not\n         * passed since the connection was established. If the check fails, a `'timeout'`event is emitted on the server object, and (by default) the socket is destroyed.\n         * See `server.timeout` for more information on how timeout behavior can be\n         * customized.\n         * @since v11.3.0, v10.14.0\n         */\n        headersTimeout: number;\n        /**\n         * The number of milliseconds of inactivity a server needs to wait for additional\n         * incoming data, after it has finished writing the last response, before a socket\n         * will be destroyed. If the server receives new data before the keep-alive\n         * timeout has fired, it will reset the regular inactivity timeout, i.e.,`server.timeout`.\n         *\n         * A value of `0` will disable the keep-alive timeout behavior on incoming\n         * connections.\n         * A value of `0` makes the http server behave similarly to Node.js versions prior\n         * to 8.0.0, which did not have a keep-alive timeout.\n         *\n         * The socket timeout logic is set up on connection, so changing this value only\n         * affects new connections to the server, not any existing connections.\n         * @since v8.0.0\n         */\n        keepAliveTimeout: number;\n        /**\n         * Sets the timeout value in milliseconds for receiving the entire request from\n         * the client.\n         *\n         * If the timeout expires, the server responds with status 408 without\n         * forwarding the request to the request listener and then closes the connection.\n         *\n         * It must be set to a non-zero value (e.g. 120 seconds) to protect against\n         * potential Denial-of-Service attacks in case the server is deployed without a\n         * reverse proxy in front.\n         * @since v14.11.0\n         */\n        requestTimeout: number;\n        addListener(event: string, listener: (...args: any[]) => void): this;\n        addListener(event: 'close', listener: () => void): this;\n        addListener(event: 'connection', listener: (socket: Socket) => void): this;\n        addListener(event: 'error', listener: (err: Error) => void): this;\n        addListener(event: 'listening', listener: () => void): this;\n        addListener(event: 'checkContinue', listener: RequestListener<Request, Response>): this;\n        addListener(event: 'checkExpectation', listener: RequestListener<Request, Response>): this;\n        addListener(event: 'clientError', listener: (err: Error, socket: stream.Duplex) => void): this;\n        addListener(\n            event: 'connect',\n            listener: (req: InstanceType<Request>, socket: stream.Duplex, head: Buffer) => void,\n        ): this;\n        addListener(event: 'request', listener: RequestListener<Request, Response>): this;\n        addListener(\n            event: 'upgrade',\n            listener: (req: InstanceType<Request>, socket: stream.Duplex, head: Buffer) => void,\n        ): this;\n        emit(event: string, ...args: any[]): boolean;\n        emit(event: 'close'): boolean;\n        emit(event: 'connection', socket: Socket): boolean;\n        emit(event: 'error', err: Error): boolean;\n        emit(event: 'listening'): boolean;\n        emit(\n            event: 'checkContinue',\n            req: InstanceType<Request>,\n            res: InstanceType<Response> & { req: InstanceType<Request> },\n        ): boolean;\n        emit(\n            event: 'checkExpectation',\n            req: InstanceType<Request>,\n            res: InstanceType<Response> & { req: InstanceType<Request> },\n        ): boolean;\n        emit(event: 'clientError', err: Error, socket: stream.Duplex): boolean;\n        emit(event: 'connect', req: InstanceType<Request>, socket: stream.Duplex, head: Buffer): boolean;\n        emit(\n            event: 'request',\n            req: InstanceType<Request>,\n            res: InstanceType<Response> & { req: InstanceType<Request> },\n        ): boolean;\n        emit(event: 'upgrade', req: InstanceType<Request>, socket: stream.Duplex, head: Buffer): boolean;\n        on(event: string, listener: (...args: any[]) => void): this;\n        on(event: 'close', listener: () => void): this;\n        on(event: 'connection', listener: (socket: Socket) => void): this;\n        on(event: 'error', listener: (err: Error) => void): this;\n        on(event: 'listening', listener: () => void): this;\n        on(event: 'checkContinue', listener: RequestListener<Request, Response>): this;\n        on(event: 'checkExpectation', listener: RequestListener<Request, Response>): this;\n        on(event: 'clientError', listener: (err: Error, socket: stream.Duplex) => void): this;\n        on(event: 'connect', listener: (req: InstanceType<Request>, socket: stream.Duplex, head: Buffer) => void): this;\n        on(event: 'request', listener: RequestListener<Request, Response>): this;\n        on(event: 'upgrade', listener: (req: InstanceType<Request>, socket: stream.Duplex, head: Buffer) => void): this;\n        once(event: string, listener: (...args: any[]) => void): this;\n        once(event: 'close', listener: () => void): this;\n        once(event: 'connection', listener: (socket: Socket) => void): this;\n        once(event: 'error', listener: (err: Error) => void): this;\n        once(event: 'listening', listener: () => void): this;\n        once(event: 'checkContinue', listener: RequestListener<Request, Response>): this;\n        once(event: 'checkExpectation', listener: RequestListener<Request, Response>): this;\n        once(event: 'clientError', listener: (err: Error, socket: stream.Duplex) => void): this;\n        once(\n            event: 'connect',\n            listener: (req: InstanceType<Request>, socket: stream.Duplex, head: Buffer) => void,\n        ): this;\n        once(event: 'request', listener: RequestListener<Request, Response>): this;\n        once(\n            event: 'upgrade',\n            listener: (req: InstanceType<Request>, socket: stream.Duplex, head: Buffer) => void,\n        ): this;\n        prependListener(event: string, listener: (...args: any[]) => void): this;\n        prependListener(event: 'close', listener: () => void): this;\n        prependListener(event: 'connection', listener: (socket: Socket) => void): this;\n        prependListener(event: 'error', listener: (err: Error) => void): this;\n        prependListener(event: 'listening', listener: () => void): this;\n        prependListener(event: 'checkContinue', listener: RequestListener<Request, Response>): this;\n        prependListener(event: 'checkExpectation', listener: RequestListener<Request, Response>): this;\n        prependListener(event: 'clientError', listener: (err: Error, socket: stream.Duplex) => void): this;\n        prependListener(\n            event: 'connect',\n            listener: (req: InstanceType<Request>, socket: stream.Duplex, head: Buffer) => void,\n        ): this;\n        prependListener(event: 'request', listener: RequestListener<Request, Response>): this;\n        prependListener(\n            event: 'upgrade',\n            listener: (req: InstanceType<Request>, socket: stream.Duplex, head: Buffer) => void,\n        ): this;\n        prependOnceListener(event: string, listener: (...args: any[]) => void): this;\n        prependOnceListener(event: 'close', listener: () => void): this;\n        prependOnceListener(event: 'connection', listener: (socket: Socket) => void): this;\n        prependOnceListener(event: 'error', listener: (err: Error) => void): this;\n        prependOnceListener(event: 'listening', listener: () => void): this;\n        prependOnceListener(event: 'checkContinue', listener: RequestListener<Request, Response>): this;\n        prependOnceListener(event: 'checkExpectation', listener: RequestListener<Request, Response>): this;\n        prependOnceListener(event: 'clientError', listener: (err: Error, socket: stream.Duplex) => void): this;\n        prependOnceListener(\n            event: 'connect',\n            listener: (req: InstanceType<Request>, socket: stream.Duplex, head: Buffer) => void,\n        ): this;\n        prependOnceListener(event: 'request', listener: RequestListener<Request, Response>): this;\n        prependOnceListener(\n            event: 'upgrade',\n            listener: (req: InstanceType<Request>, socket: stream.Duplex, head: Buffer) => void,\n        ): this;\n    }\n    /**\n     * This class serves as the parent class of {@link ClientRequest} and {@link ServerResponse}. It is an abstract of outgoing message from\n     * the perspective of the participants of HTTP transaction.\n     * @since v0.1.17\n     */\n    class OutgoingMessage<Request extends IncomingMessage = IncomingMessage> extends stream.Writable {\n        readonly req: Request;\n        chunkedEncoding: boolean;\n        shouldKeepAlive: boolean;\n        useChunkedEncodingByDefault: boolean;\n        sendDate: boolean;\n        /**\n         * @deprecated Use `writableEnded` instead.\n         */\n        finished: boolean;\n        /**\n         * Read-only. `true` if the headers were sent, otherwise `false`.\n         * @since v0.9.3\n         */\n        readonly headersSent: boolean;\n        /**\n         * Aliases of `outgoingMessage.socket`\n         * @since v0.3.0\n         * @deprecated Since v15.12.0 - Use `socket` instead.\n         */\n        readonly connection: Socket | null;\n        /**\n         * Reference to the underlying socket. Usually, users will not want to access\n         * this property.\n         *\n         * After calling `outgoingMessage.end()`, this property will be nulled.\n         * @since v0.3.0\n         */\n        readonly socket: Socket | null;\n        constructor();\n        /**\n         * Once a socket is associated with the message and is connected,`socket.setTimeout()` will be called with `msecs` as the first parameter.\n         * @since v0.9.12\n         * @param callback Optional function to be called when a timeout occurs. Same as binding to the `timeout` event.\n         */\n        setTimeout(msecs: number, callback?: () => void): this;\n        /**\n         * Sets a single header value for the header object.\n         * @since v0.4.0\n         * @param name Header name\n         * @param value Header value\n         */\n        setHeader(name: string, value: number | string | ReadonlyArray<string>): this;\n        /**\n         * Gets the value of HTTP header with the given name. If such a name doesn't\n         * exist in message, it will be `undefined`.\n         * @since v0.4.0\n         * @param name Name of header\n         */\n        getHeader(name: string): number | string | string[] | undefined;\n        /**\n         * Returns a shallow copy of the current outgoing headers. Since a shallow\n         * copy is used, array values may be mutated without additional calls to\n         * various header-related HTTP module methods. The keys of the returned\n         * object are the header names and the values are the respective header\n         * values. All header names are lowercase.\n         *\n         * The object returned by the `outgoingMessage.getHeaders()` method does\n         * not prototypically inherit from the JavaScript Object. This means that\n         * typical Object methods such as `obj.toString()`, `obj.hasOwnProperty()`,\n         * and others are not defined and will not work.\n         *\n         * ```js\n         * outgoingMessage.setHeader('Foo', 'bar');\n         * outgoingMessage.setHeader('Set-Cookie', ['foo=bar', 'bar=baz']);\n         *\n         * const headers = outgoingMessage.getHeaders();\n         * // headers === { foo: 'bar', 'set-cookie': ['foo=bar', 'bar=baz'] }\n         * ```\n         * @since v8.0.0\n         */\n        getHeaders(): OutgoingHttpHeaders;\n        /**\n         * Returns an array of names of headers of the outgoing outgoingMessage. All\n         * names are lowercase.\n         * @since v8.0.0\n         */\n        getHeaderNames(): string[];\n        /**\n         * Returns `true` if the header identified by `name` is currently set in the\n         * outgoing headers. The header name is case-insensitive.\n         *\n         * ```js\n         * const hasContentType = outgoingMessage.hasHeader('content-type');\n         * ```\n         * @since v8.0.0\n         */\n        hasHeader(name: string): boolean;\n        /**\n         * Removes a header that is queued for implicit sending.\n         *\n         * ```js\n         * outgoingMessage.removeHeader('Content-Encoding');\n         * ```\n         * @since v0.4.0\n         */\n        removeHeader(name: string): void;\n        /**\n         * Adds HTTP trailers (headers but at the end of the message) to the message.\n         *\n         * Trailers are **only** be emitted if the message is chunked encoded. If not,\n         * the trailer will be silently discarded.\n         *\n         * HTTP requires the `Trailer` header to be sent to emit trailers,\n         * with a list of header fields in its value, e.g.\n         *\n         * ```js\n         * message.writeHead(200, { 'Content-Type': 'text/plain',\n         *                          'Trailer': 'Content-MD5' });\n         * message.write(fileData);\n         * message.addTrailers({ 'Content-MD5': '7895bf4b8828b55ceaf47747b4bca667' });\n         * message.end();\n         * ```\n         *\n         * Attempting to set a header field name or value that contains invalid characters\n         * will result in a `TypeError` being thrown.\n         * @since v0.3.0\n         */\n        addTrailers(headers: OutgoingHttpHeaders | ReadonlyArray<[string, string]>): void;\n        /**\n         * Compulsorily flushes the message headers\n         *\n         * For efficiency reason, Node.js normally buffers the message headers\n         * until `outgoingMessage.end()` is called or the first chunk of message data\n         * is written. It then tries to pack the headers and data into a single TCP\n         * packet.\n         *\n         * It is usually desired (it saves a TCP round-trip), but not when the first\n         * data is not sent until possibly much later. `outgoingMessage.flushHeaders()`bypasses the optimization and kickstarts the request.\n         * @since v1.6.0\n         */\n        flushHeaders(): void;\n    }\n    /**\n     * This object is created internally by an HTTP server, not by the user. It is\n     * passed as the second parameter to the `'request'` event.\n     * @since v0.1.17\n     */\n    class ServerResponse<Request extends IncomingMessage = IncomingMessage> extends OutgoingMessage<Request> {\n        /**\n         * When using implicit headers (not calling `response.writeHead()` explicitly),\n         * this property controls the status code that will be sent to the client when\n         * the headers get flushed.\n         *\n         * ```js\n         * response.statusCode = 404;\n         * ```\n         *\n         * After response header was sent to the client, this property indicates the\n         * status code which was sent out.\n         * @since v0.4.0\n         */\n        statusCode: number;\n        /**\n         * When using implicit headers (not calling `response.writeHead()` explicitly),\n         * this property controls the status message that will be sent to the client when\n         * the headers get flushed. If this is left as `undefined` then the standard\n         * message for the status code will be used.\n         *\n         * ```js\n         * response.statusMessage = 'Not found';\n         * ```\n         *\n         * After response header was sent to the client, this property indicates the\n         * status message which was sent out.\n         * @since v0.11.8\n         */\n        statusMessage: string;\n        constructor(req: Request);\n        assignSocket(socket: Socket): void;\n        detachSocket(socket: Socket): void;\n        /**\n         * Sends a HTTP/1.1 100 Continue message to the client, indicating that\n         * the request body should be sent. See the `'checkContinue'` event on`Server`.\n         * @since v0.3.0\n         */\n        writeContinue(callback?: () => void): void;\n        /**\n         * Sends a response header to the request. The status code is a 3-digit HTTP\n         * status code, like `404`. The last argument, `headers`, are the response headers.\n         * Optionally one can give a human-readable `statusMessage` as the second\n         * argument.\n         *\n         * `headers` may be an `Array` where the keys and values are in the same list.\n         * It is _not_ a list of tuples. So, the even-numbered offsets are key values,\n         * and the odd-numbered offsets are the associated values. The array is in the same\n         * format as `request.rawHeaders`.\n         *\n         * Returns a reference to the `ServerResponse`, so that calls can be chained.\n         *\n         * ```js\n         * const body = 'hello world';\n         * response\n         *   .writeHead(200, {\n         *     'Content-Length': Buffer.byteLength(body),\n         *     'Content-Type': 'text/plain'\n         *   })\n         *   .end(body);\n         * ```\n         *\n         * This method must only be called once on a message and it must\n         * be called before `response.end()` is called.\n         *\n         * If `response.write()` or `response.end()` are called before calling\n         * this, the implicit/mutable headers will be calculated and call this function.\n         *\n         * When headers have been set with `response.setHeader()`, they will be merged\n         * with any headers passed to `response.writeHead()`, with the headers passed\n         * to `response.writeHead()` given precedence.\n         *\n         * If this method is called and `response.setHeader()` has not been called,\n         * it will directly write the supplied header values onto the network channel\n         * without caching internally, and the `response.getHeader()` on the header\n         * will not yield the expected result. If progressive population of headers is\n         * desired with potential future retrieval and modification, use `response.setHeader()` instead.\n         *\n         * ```js\n         * // Returns content-type = text/plain\n         * const server = http.createServer((req, res) => {\n         *   res.setHeader('Content-Type', 'text/html');\n         *   res.setHeader('X-Foo', 'bar');\n         *   res.writeHead(200, { 'Content-Type': 'text/plain' });\n         *   res.end('ok');\n         * });\n         * ```\n         *\n         * `Content-Length` is given in bytes, not characters. Use `Buffer.byteLength()` to determine the length of the body in bytes. Node.js\n         * does not check whether `Content-Length` and the length of the body which has\n         * been transmitted are equal or not.\n         *\n         * Attempting to set a header field name or value that contains invalid characters\n         * will result in a `TypeError` being thrown.\n         * @since v0.1.30\n         */\n        writeHead(\n            statusCode: number,\n            statusMessage?: string,\n            headers?: OutgoingHttpHeaders | OutgoingHttpHeader[],\n        ): this;\n        writeHead(statusCode: number, headers?: OutgoingHttpHeaders | OutgoingHttpHeader[]): this;\n        /**\n         * Sends a HTTP/1.1 102 Processing message to the client, indicating that\n         * the request body should be sent.\n         * @since v10.0.0\n         */\n        writeProcessing(): void;\n    }\n    interface InformationEvent {\n        statusCode: number;\n        statusMessage: string;\n        httpVersion: string;\n        httpVersionMajor: number;\n        httpVersionMinor: number;\n        headers: IncomingHttpHeaders;\n        rawHeaders: string[];\n    }\n    /**\n     * This object is created internally and returned from {@link request}. It\n     * represents an _in-progress_ request whose header has already been queued. The\n     * header is still mutable using the `setHeader(name, value)`,`getHeader(name)`, `removeHeader(name)` API. The actual header will\n     * be sent along with the first data chunk or when calling `request.end()`.\n     *\n     * To get the response, add a listener for `'response'` to the request object.`'response'` will be emitted from the request object when the response\n     * headers have been received. The `'response'` event is executed with one\n     * argument which is an instance of {@link IncomingMessage}.\n     *\n     * During the `'response'` event, one can add listeners to the\n     * response object; particularly to listen for the `'data'` event.\n     *\n     * If no `'response'` handler is added, then the response will be\n     * entirely discarded. However, if a `'response'` event handler is added,\n     * then the data from the response object **must** be consumed, either by\n     * calling `response.read()` whenever there is a `'readable'` event, or\n     * by adding a `'data'` handler, or by calling the `.resume()` method.\n     * Until the data is consumed, the `'end'` event will not fire. Also, until\n     * the data is read it will consume memory that can eventually lead to a\n     * 'process out of memory' error.\n     *\n     * For backward compatibility, `res` will only emit `'error'` if there is an`'error'` listener registered.\n     *\n     * Node.js does not check whether Content-Length and the length of the\n     * body which has been transmitted are equal or not.\n     * @since v0.1.17\n     */\n    class ClientRequest extends OutgoingMessage {\n        /**\n         * The `request.aborted` property will be `true` if the request has\n         * been aborted.\n         * @since v0.11.14\n         */\n        aborted: boolean;\n        /**\n         * The request host.\n         * @since v14.5.0, v12.19.0\n         */\n        host: string;\n        /**\n         * The request protocol.\n         * @since v14.5.0, v12.19.0\n         */\n        protocol: string;\n        /**\n         * Whether the request is send through a reused socket.\n         * @since v13.0.0, v12.16.0\n         */\n        reusedSocket: boolean;\n        /**\n         * Limits maximum response headers count. If set to 0, no limit will be applied.\n         * @default 2000\n         */\n        maxHeadersCount: number;\n        constructor(url: string | URL | ClientRequestArgs, cb?: (res: IncomingMessage) => void);\n        /**\n         * The request method.\n         * @since v0.1.97\n         */\n        method: string;\n        /**\n         * The request path.\n         * @since v0.4.0\n         */\n        path: string;\n        /**\n         * Marks the request as aborting. Calling this will cause remaining data\n         * in the response to be dropped and the socket to be destroyed.\n         * @since v0.3.8\n         * @deprecated Since v14.1.0,v13.14.0 - Use `destroy` instead.\n         */\n        abort(): void;\n        onSocket(socket: Socket): void;\n        /**\n         * Once a socket is assigned to this request and is connected `socket.setTimeout()` will be called.\n         * @since v0.5.9\n         * @param timeout Milliseconds before a request times out.\n         * @param callback Optional function to be called when a timeout occurs. Same as binding to the `'timeout'` event.\n         */\n        setTimeout(timeout: number, callback?: () => void): this;\n        /**\n         * Once a socket is assigned to this request and is connected `socket.setNoDelay()` will be called.\n         * @since v0.5.9\n         */\n        setNoDelay(noDelay?: boolean): void;\n        /**\n         * Once a socket is assigned to this request and is connected `socket.setKeepAlive()` will be called.\n         * @since v0.5.9\n         */\n        setSocketKeepAlive(enable?: boolean, initialDelay?: number): void;\n        /**\n         * Returns an array containing the unique names of the current outgoing raw\n         * headers. Header names are returned with their exact casing being set.\n         *\n         * ```js\n         * request.setHeader('Foo', 'bar');\n         * request.setHeader('Set-Cookie', ['foo=bar', 'bar=baz']);\n         *\n         * const headerNames = request.getRawHeaderNames();\n         * // headerNames === ['Foo', 'Set-Cookie']\n         * ```\n         * @since v15.13.0\n         */\n        getRawHeaderNames(): string[];\n        addListener(event: 'abort', listener: () => void): this;\n        addListener(\n            event: 'connect',\n            listener: (response: IncomingMessage, socket: Socket, head: Buffer) => void,\n        ): this;\n        addListener(event: 'continue', listener: () => void): this;\n        addListener(event: 'information', listener: (info: InformationEvent) => void): this;\n        addListener(event: 'response', listener: (response: IncomingMessage) => void): this;\n        addListener(event: 'socket', listener: (socket: Socket) => void): this;\n        addListener(event: 'timeout', listener: () => void): this;\n        addListener(\n            event: 'upgrade',\n            listener: (response: IncomingMessage, socket: Socket, head: Buffer) => void,\n        ): this;\n        addListener(event: 'close', listener: () => void): this;\n        addListener(event: 'drain', listener: () => void): this;\n        addListener(event: 'error', listener: (err: Error) => void): this;\n        addListener(event: 'finish', listener: () => void): this;\n        addListener(event: 'pipe', listener: (src: stream.Readable) => void): this;\n        addListener(event: 'unpipe', listener: (src: stream.Readable) => void): this;\n        addListener(event: string | symbol, listener: (...args: any[]) => void): this;\n        on(event: 'abort', listener: () => void): this;\n        on(event: 'connect', listener: (response: IncomingMessage, socket: Socket, head: Buffer) => void): this;\n        on(event: 'continue', listener: () => void): this;\n        on(event: 'information', listener: (info: InformationEvent) => void): this;\n        on(event: 'response', listener: (response: IncomingMessage) => void): this;\n        on(event: 'socket', listener: (socket: Socket) => void): this;\n        on(event: 'timeout', listener: () => void): this;\n        on(event: 'upgrade', listener: (response: IncomingMessage, socket: Socket, head: Buffer) => void): this;\n        on(event: 'close', listener: () => void): this;\n        on(event: 'drain', listener: () => void): this;\n        on(event: 'error', listener: (err: Error) => void): this;\n        on(event: 'finish', listener: () => void): this;\n        on(event: 'pipe', listener: (src: stream.Readable) => void): this;\n        on(event: 'unpipe', listener: (src: stream.Readable) => void): this;\n        on(event: string | symbol, listener: (...args: any[]) => void): this;\n        once(event: 'abort', listener: () => void): this;\n        once(event: 'connect', listener: (response: IncomingMessage, socket: Socket, head: Buffer) => void): this;\n        once(event: 'continue', listener: () => void): this;\n        once(event: 'information', listener: (info: InformationEvent) => void): this;\n        once(event: 'response', listener: (response: IncomingMessage) => void): this;\n        once(event: 'socket', listener: (socket: Socket) => void): this;\n        once(event: 'timeout', listener: () => void): this;\n        once(event: 'upgrade', listener: (response: IncomingMessage, socket: Socket, head: Buffer) => void): this;\n        once(event: 'close', listener: () => void): this;\n        once(event: 'drain', listener: () => void): this;\n        once(event: 'error', listener: (err: Error) => void): this;\n        once(event: 'finish', listener: () => void): this;\n        once(event: 'pipe', listener: (src: stream.Readable) => void): this;\n        once(event: 'unpipe', listener: (src: stream.Readable) => void): this;\n        once(event: string | symbol, listener: (...args: any[]) => void): this;\n        prependListener(event: 'abort', listener: () => void): this;\n        prependListener(\n            event: 'connect',\n            listener: (response: IncomingMessage, socket: Socket, head: Buffer) => void,\n        ): this;\n        prependListener(event: 'continue', listener: () => void): this;\n        prependListener(event: 'information', listener: (info: InformationEvent) => void): this;\n        prependListener(event: 'response', listener: (response: IncomingMessage) => void): this;\n        prependListener(event: 'socket', listener: (socket: Socket) => void): this;\n        prependListener(event: 'timeout', listener: () => void): this;\n        prependListener(\n            event: 'upgrade',\n            listener: (response: IncomingMessage, socket: Socket, head: Buffer) => void,\n        ): this;\n        prependListener(event: 'close', listener: () => void): this;\n        prependListener(event: 'drain', listener: () => void): this;\n        prependListener(event: 'error', listener: (err: Error) => void): this;\n        prependListener(event: 'finish', listener: () => void): this;\n        prependListener(event: 'pipe', listener: (src: stream.Readable) => void): this;\n        prependListener(event: 'unpipe', listener: (src: stream.Readable) => void): this;\n        prependListener(event: string | symbol, listener: (...args: any[]) => void): this;\n        prependOnceListener(event: 'abort', listener: () => void): this;\n        prependOnceListener(\n            event: 'connect',\n            listener: (response: IncomingMessage, socket: Socket, head: Buffer) => void,\n        ): this;\n        prependOnceListener(event: 'continue', listener: () => void): this;\n        prependOnceListener(event: 'information', listener: (info: InformationEvent) => void): this;\n        prependOnceListener(event: 'response', listener: (response: IncomingMessage) => void): this;\n        prependOnceListener(event: 'socket', listener: (socket: Socket) => void): this;\n        prependOnceListener(event: 'timeout', listener: () => void): this;\n        prependOnceListener(\n            event: 'upgrade',\n            listener: (response: IncomingMessage, socket: Socket, head: Buffer) => void,\n        ): this;\n        prependOnceListener(event: 'close', listener: () => void): this;\n        prependOnceListener(event: 'drain', listener: () => void): this;\n        prependOnceListener(event: 'error', listener: (err: Error) => void): this;\n        prependOnceListener(event: 'finish', listener: () => void): this;\n        prependOnceListener(event: 'pipe', listener: (src: stream.Readable) => void): this;\n        prependOnceListener(event: 'unpipe', listener: (src: stream.Readable) => void): this;\n        prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this;\n    }\n    /**\n     * An `IncomingMessage` object is created by {@link Server} or {@link ClientRequest} and passed as the first argument to the `'request'` and `'response'` event respectively. It may be used to\n     * access response\n     * status, headers and data.\n     *\n     * Different from its `socket` value which is a subclass of `stream.Duplex`, the`IncomingMessage` itself extends `stream.Readable` and is created separately to\n     * parse and emit the incoming HTTP headers and payload, as the underlying socket\n     * may be reused multiple times in case of keep-alive.\n     * @since v0.1.17\n     */\n    class IncomingMessage extends stream.Readable {\n        constructor(socket: Socket);\n        /**\n         * The `message.aborted` property will be `true` if the request has\n         * been aborted.\n         * @since v10.1.0\n         */\n        aborted: boolean;\n        /**\n         * In case of server request, the HTTP version sent by the client. In the case of\n         * client response, the HTTP version of the connected-to server.\n         * Probably either `'1.1'` or `'1.0'`.\n         *\n         * Also `message.httpVersionMajor` is the first integer and`message.httpVersionMinor` is the second.\n         * @since v0.1.1\n         */\n        httpVersion: string;\n        httpVersionMajor: number;\n        httpVersionMinor: number;\n        /**\n         * The `message.complete` property will be `true` if a complete HTTP message has\n         * been received and successfully parsed.\n         *\n         * This property is particularly useful as a means of determining if a client or\n         * server fully transmitted a message before a connection was terminated:\n         *\n         * ```js\n         * const req = http.request({\n         *   host: '127.0.0.1',\n         *   port: 8080,\n         *   method: 'POST'\n         * }, (res) => {\n         *   res.resume();\n         *   res.on('end', () => {\n         *     if (!res.complete)\n         *       console.error(\n         *         'The connection was terminated while the message was still being sent');\n         *   });\n         * });\n         * ```\n         * @since v0.3.0\n         */\n        complete: boolean;\n        /**\n         * Alias for `message.socket`.\n         * @since v0.1.90\n         * @deprecated Since v16.0.0 - Use `socket`.\n         */\n        connection: Socket;\n        /**\n         * The `net.Socket` object associated with the connection.\n         *\n         * With HTTPS support, use `request.socket.getPeerCertificate()` to obtain the\n         * client's authentication details.\n         *\n         * This property is guaranteed to be an instance of the `net.Socket` class,\n         * a subclass of `stream.Duplex`, unless the user specified a socket\n         * type other than `net.Socket`.\n         * @since v0.3.0\n         */\n        socket: Socket;\n        /**\n         * The request/response headers object.\n         *\n         * Key-value pairs of header names and values. Header names are lower-cased.\n         *\n         * ```js\n         * // Prints something like:\n         * //\n         * // { 'user-agent': 'curl/7.22.0',\n         * //   host: '127.0.0.1:8000',\n         * //   accept: '*' }\n         * console.log(request.headers);\n         * ```\n         *\n         * Duplicates in raw headers are handled in the following ways, depending on the\n         * header name:\n         *\n         * * Duplicates of `age`, `authorization`, `content-length`, `content-type`,`etag`, `expires`, `from`, `host`, `if-modified-since`, `if-unmodified-since`,`last-modified`, `location`,\n         * `max-forwards`, `proxy-authorization`, `referer`,`retry-after`, `server`, or `user-agent` are discarded.\n         * * `set-cookie` is always an array. Duplicates are added to the array.\n         * * For duplicate `cookie` headers, the values are joined together with '; '.\n         * * For all other headers, the values are joined together with ', '.\n         * @since v0.1.5\n         */\n        headers: IncomingHttpHeaders;\n        /**\n         * The raw request/response headers list exactly as they were received.\n         *\n         * The keys and values are in the same list. It is _not_ a\n         * list of tuples. So, the even-numbered offsets are key values, and the\n         * odd-numbered offsets are the associated values.\n         *\n         * Header names are not lowercased, and duplicates are not merged.\n         *\n         * ```js\n         * // Prints something like:\n         * //\n         * // [ 'user-agent',\n         * //   'this is invalid because there can be only one',\n         * //   'User-Agent',\n         * //   'curl/7.22.0',\n         * //   'Host',\n         * //   '127.0.0.1:8000',\n         * //   'ACCEPT',\n         * //   '*' ]\n         * console.log(request.rawHeaders);\n         * ```\n         * @since v0.11.6\n         */\n        rawHeaders: string[];\n        /**\n         * The request/response trailers object. Only populated at the `'end'` event.\n         * @since v0.3.0\n         */\n        trailers: NodeJS.Dict<string>;\n        /**\n         * The raw request/response trailer keys and values exactly as they were\n         * received. Only populated at the `'end'` event.\n         * @since v0.11.6\n         */\n        rawTrailers: string[];\n        /**\n         * Calls `message.socket.setTimeout(msecs, callback)`.\n         * @since v0.5.9\n         */\n        setTimeout(msecs: number, callback?: () => void): this;\n        /**\n         * **Only valid for request obtained from {@link Server}.**\n         *\n         * The request method as a string. Read only. Examples: `'GET'`, `'DELETE'`.\n         * @since v0.1.1\n         */\n        method?: string | undefined;\n        /**\n         * **Only valid for request obtained from {@link Server}.**\n         *\n         * Request URL string. This contains only the URL that is present in the actual\n         * HTTP request. Take the following request:\n         *\n         * ```http\n         * GET /status?name=ryan HTTP/1.1\n         * Accept: text/plain\n         * ```\n         *\n         * To parse the URL into its parts:\n         *\n         * ```js\n         * new URL(request.url, `http://${request.headers.host}`);\n         * ```\n         *\n         * When `request.url` is `'/status?name=ryan'` and`request.headers.host` is `'localhost:3000'`:\n         *\n         * ```console\n         * $ node\n         * > new URL(request.url, `http://${request.headers.host}`)\n         * URL {\n         *   href: 'http://localhost:3000/status?name=ryan',\n         *   origin: 'http://localhost:3000',\n         *   protocol: 'http:',\n         *   username: '',\n         *   password: '',\n         *   host: 'localhost:3000',\n         *   hostname: 'localhost',\n         *   port: '3000',\n         *   pathname: '/status',\n         *   search: '?name=ryan',\n         *   searchParams: URLSearchParams { 'name' => 'ryan' },\n         *   hash: ''\n         * }\n         * ```\n         * @since v0.1.90\n         */\n        url?: string | undefined;\n        /**\n         * **Only valid for response obtained from {@link ClientRequest}.**\n         *\n         * The 3-digit HTTP response status code. E.G. `404`.\n         * @since v0.1.1\n         */\n        statusCode?: number | undefined;\n        /**\n         * **Only valid for response obtained from {@link ClientRequest}.**\n         *\n         * The HTTP response status message (reason phrase). E.G. `OK` or `Internal Server Error`.\n         * @since v0.11.10\n         */\n        statusMessage?: string | undefined;\n        /**\n         * Calls `destroy()` on the socket that received the `IncomingMessage`. If `error`is provided, an `'error'` event is emitted on the socket and `error` is passed\n         * as an argument to any listeners on the event.\n         * @since v0.3.0\n         */\n        destroy(error?: Error): this;\n    }\n    interface AgentOptions extends Partial<TcpSocketConnectOpts> {\n        /**\n         * Keep sockets around in a pool to be used by other requests in the future. Default = false\n         */\n        keepAlive?: boolean | undefined;\n        /**\n         * When using HTTP KeepAlive, how often to send TCP KeepAlive packets over sockets being kept alive. Default = 1000.\n         * Only relevant if keepAlive is set to true.\n         */\n        keepAliveMsecs?: number | undefined;\n        /**\n         * Maximum number of sockets to allow per host. Default for Node 0.10 is 5, default for Node 0.12 is Infinity\n         */\n        maxSockets?: number | undefined;\n        /**\n         * Maximum number of sockets allowed for all hosts in total. Each request will use a new socket until the maximum is reached. Default: Infinity.\n         */\n        maxTotalSockets?: number | undefined;\n        /**\n         * Maximum number of sockets to leave open in a free state. Only relevant if keepAlive is set to true. Default = 256.\n         */\n        maxFreeSockets?: number | undefined;\n        /**\n         * Socket timeout in milliseconds. This will set the timeout after the socket is connected.\n         */\n        timeout?: number | undefined;\n        /**\n         * Scheduling strategy to apply when picking the next free socket to use.\n         * @default `lifo`\n         */\n        scheduling?: 'fifo' | 'lifo' | undefined;\n    }\n    /**\n     * An `Agent` is responsible for managing connection persistence\n     * and reuse for HTTP clients. It maintains a queue of pending requests\n     * for a given host and port, reusing a single socket connection for each\n     * until the queue is empty, at which time the socket is either destroyed\n     * or put into a pool where it is kept to be used again for requests to the\n     * same host and port. Whether it is destroyed or pooled depends on the`keepAlive` `option`.\n     *\n     * Pooled connections have TCP Keep-Alive enabled for them, but servers may\n     * still close idle connections, in which case they will be removed from the\n     * pool and a new connection will be made when a new HTTP request is made for\n     * that host and port. Servers may also refuse to allow multiple requests\n     * over the same connection, in which case the connection will have to be\n     * remade for every request and cannot be pooled. The `Agent` will still make\n     * the requests to that server, but each one will occur over a new connection.\n     *\n     * When a connection is closed by the client or the server, it is removed\n     * from the pool. Any unused sockets in the pool will be unrefed so as not\n     * to keep the Node.js process running when there are no outstanding requests.\n     * (see `socket.unref()`).\n     *\n     * It is good practice, to `destroy()` an `Agent` instance when it is no\n     * longer in use, because unused sockets consume OS resources.\n     *\n     * Sockets are removed from an agent when the socket emits either\n     * a `'close'` event or an `'agentRemove'` event. When intending to keep one\n     * HTTP request open for a long time without keeping it in the agent, something\n     * like the following may be done:\n     *\n     * ```js\n     * http.get(options, (res) => {\n     *   // Do stuff\n     * }).on('socket', (socket) => {\n     *   socket.emit('agentRemove');\n     * });\n     * ```\n     *\n     * An agent may also be used for an individual request. By providing`{agent: false}` as an option to the `http.get()` or `http.request()`functions, a one-time use `Agent` with default options\n     * will be used\n     * for the client connection.\n     *\n     * `agent:false`:\n     *\n     * ```js\n     * http.get({\n     *   hostname: 'localhost',\n     *   port: 80,\n     *   path: '/',\n     *   agent: false  // Create a new agent just for this one request\n     * }, (res) => {\n     *   // Do stuff with response\n     * });\n     * ```\n     * @since v0.3.4\n     */\n    class Agent {\n        /**\n         * By default set to 256\\. For agents with `keepAlive` enabled, this\n         * sets the maximum number of sockets that will be left open in the free\n         * state.\n         * @since v0.11.7\n         */\n        maxFreeSockets: number;\n        /**\n         * By default set to `Infinity`. Determines how many concurrent sockets the agent\n         * can have open per origin. Origin is the returned value of `agent.getName()`.\n         * @since v0.3.6\n         */\n        maxSockets: number;\n        /**\n         * By default set to `Infinity`. Determines how many concurrent sockets the agent\n         * can have open. Unlike `maxSockets`, this parameter applies across all origins.\n         * @since v14.5.0, v12.19.0\n         */\n        maxTotalSockets: number;\n        /**\n         * An object which contains arrays of sockets currently awaiting use by\n         * the agent when `keepAlive` is enabled. Do not modify.\n         *\n         * Sockets in the `freeSockets` list will be automatically destroyed and\n         * removed from the array on `'timeout'`.\n         * @since v0.11.4\n         */\n        readonly freeSockets: NodeJS.ReadOnlyDict<Socket[]>;\n        /**\n         * An object which contains arrays of sockets currently in use by the\n         * agent. Do not modify.\n         * @since v0.3.6\n         */\n        readonly sockets: NodeJS.ReadOnlyDict<Socket[]>;\n        /**\n         * An object which contains queues of requests that have not yet been assigned to\n         * sockets. Do not modify.\n         * @since v0.5.9\n         */\n        readonly requests: NodeJS.ReadOnlyDict<IncomingMessage[]>;\n        constructor(opts?: AgentOptions);\n        /**\n         * Destroy any sockets that are currently in use by the agent.\n         *\n         * It is usually not necessary to do this. However, if using an\n         * agent with `keepAlive` enabled, then it is best to explicitly shut down\n         * the agent when it is no longer needed. Otherwise,\n         * sockets might stay open for quite a long time before the server\n         * terminates them.\n         * @since v0.11.4\n         */\n        destroy(): void;\n    }\n    const METHODS: string[];\n    const STATUS_CODES: {\n        [errorCode: number]: string | undefined;\n        [errorCode: string]: string | undefined;\n    };\n    /**\n     * Returns a new instance of {@link Server}.\n     *\n     * The `requestListener` is a function which is automatically\n     * added to the `'request'` event.\n     * @since v0.1.13\n     */\n    function createServer<\n        Request extends typeof IncomingMessage = typeof IncomingMessage,\n        Response extends typeof ServerResponse = typeof ServerResponse,\n    >(requestListener?: RequestListener<Request, Response>): Server<Request, Response>;\n    function createServer<\n        Request extends typeof IncomingMessage = typeof IncomingMessage,\n        Response extends typeof ServerResponse = typeof ServerResponse,\n    >(options: ServerOptions, requestListener?: RequestListener<Request, Response>): Server<Request, Response>;\n    // although RequestOptions are passed as ClientRequestArgs to ClientRequest directly,\n    // create interface RequestOptions would make the naming more clear to developers\n    interface RequestOptions extends ClientRequestArgs {}\n    /**\n     * Node.js maintains several connections per server to make HTTP requests.\n     * This function allows one to transparently issue requests.\n     *\n     * `url` can be a string or a `URL` object. If `url` is a\n     * string, it is automatically parsed with `new URL()`. If it is a `URL` object, it will be automatically converted to an ordinary `options` object.\n     *\n     * If both `url` and `options` are specified, the objects are merged, with the`options` properties taking precedence.\n     *\n     * The optional `callback` parameter will be added as a one-time listener for\n     * the `'response'` event.\n     *\n     * `http.request()` returns an instance of the {@link ClientRequest} class. The `ClientRequest` instance is a writable stream. If one needs to\n     * upload a file with a POST request, then write to the `ClientRequest` object.\n     *\n     * ```js\n     * const http = require('http');\n     *\n     * const postData = JSON.stringify({\n     *   'msg': 'Hello World!'\n     * });\n     *\n     * const options = {\n     *   hostname: 'www.google.com',\n     *   port: 80,\n     *   path: '/upload',\n     *   method: 'POST',\n     *   headers: {\n     *     'Content-Type': 'application/json',\n     *     'Content-Length': Buffer.byteLength(postData)\n     *   }\n     * };\n     *\n     * const req = http.request(options, (res) => {\n     *   console.log(`STATUS: ${res.statusCode}`);\n     *   console.log(`HEADERS: ${JSON.stringify(res.headers)}`);\n     *   res.setEncoding('utf8');\n     *   res.on('data', (chunk) => {\n     *     console.log(`BODY: ${chunk}`);\n     *   });\n     *   res.on('end', () => {\n     *     console.log('No more data in response.');\n     *   });\n     * });\n     *\n     * req.on('error', (e) => {\n     *   console.error(`problem with request: ${e.message}`);\n     * });\n     *\n     * // Write data to request body\n     * req.write(postData);\n     * req.end();\n     * ```\n     *\n     * In the example `req.end()` was called. With `http.request()` one\n     * must always call `req.end()` to signify the end of the request -\n     * even if there is no data being written to the request body.\n     *\n     * If any error is encountered during the request (be that with DNS resolution,\n     * TCP level errors, or actual HTTP parse errors) an `'error'` event is emitted\n     * on the returned request object. As with all `'error'` events, if no listeners\n     * are registered the error will be thrown.\n     *\n     * There are a few special headers that should be noted.\n     *\n     * * Sending a 'Connection: keep-alive' will notify Node.js that the connection to\n     * the server should be persisted until the next request.\n     * * Sending a 'Content-Length' header will disable the default chunked encoding.\n     * * Sending an 'Expect' header will immediately send the request headers.\n     * Usually, when sending 'Expect: 100-continue', both a timeout and a listener\n     * for the `'continue'` event should be set. See RFC 2616 Section 8.2.3 for more\n     * information.\n     * * Sending an Authorization header will override using the `auth` option\n     * to compute basic authentication.\n     *\n     * Example using a `URL` as `options`:\n     *\n     * ```js\n     * const options = new URL('http://abc:xyz@example.com');\n     *\n     * const req = http.request(options, (res) => {\n     *   // ...\n     * });\n     * ```\n     *\n     * In a successful request, the following events will be emitted in the following\n     * order:\n     *\n     * * `'socket'`\n     * * `'response'`\n     *    * `'data'` any number of times, on the `res` object\n     *    (`'data'` will not be emitted at all if the response body is empty, for\n     *    instance, in most redirects)\n     *    * `'end'` on the `res` object\n     * * `'close'`\n     *\n     * In the case of a connection error, the following events will be emitted:\n     *\n     * * `'socket'`\n     * * `'error'`\n     * * `'close'`\n     *\n     * In the case of a premature connection close before the response is received,\n     * the following events will be emitted in the following order:\n     *\n     * * `'socket'`\n     * * `'error'` with an error with message `'Error: socket hang up'` and code`'ECONNRESET'`\n     * * `'close'`\n     *\n     * In the case of a premature connection close after the response is received,\n     * the following events will be emitted in the following order:\n     *\n     * * `'socket'`\n     * * `'response'`\n     *    * `'data'` any number of times, on the `res` object\n     * * (connection closed here)\n     * * `'aborted'` on the `res` object\n     * * `'error'` on the `res` object with an error with message`'Error: aborted'` and code `'ECONNRESET'`.\n     * * `'close'`\n     * * `'close'` on the `res` object\n     *\n     * If `req.destroy()` is called before a socket is assigned, the following\n     * events will be emitted in the following order:\n     *\n     * * (`req.destroy()` called here)\n     * * `'error'` with an error with message `'Error: socket hang up'` and code`'ECONNRESET'`\n     * * `'close'`\n     *\n     * If `req.destroy()` is called before the connection succeeds, the following\n     * events will be emitted in the following order:\n     *\n     * * `'socket'`\n     * * (`req.destroy()` called here)\n     * * `'error'` with an error with message `'Error: socket hang up'` and code`'ECONNRESET'`\n     * * `'close'`\n     *\n     * If `req.destroy()` is called after the response is received, the following\n     * events will be emitted in the following order:\n     *\n     * * `'socket'`\n     * * `'response'`\n     *    * `'data'` any number of times, on the `res` object\n     * * (`req.destroy()` called here)\n     * * `'aborted'` on the `res` object\n     * * `'error'` on the `res` object with an error with message`'Error: aborted'` and code `'ECONNRESET'`.\n     * * `'close'`\n     * * `'close'` on the `res` object\n     *\n     * If `req.abort()` is called before a socket is assigned, the following\n     * events will be emitted in the following order:\n     *\n     * * (`req.abort()` called here)\n     * * `'abort'`\n     * * `'close'`\n     *\n     * If `req.abort()` is called before the connection succeeds, the following\n     * events will be emitted in the following order:\n     *\n     * * `'socket'`\n     * * (`req.abort()` called here)\n     * * `'abort'`\n     * * `'error'` with an error with message `'Error: socket hang up'` and code`'ECONNRESET'`\n     * * `'close'`\n     *\n     * If `req.abort()` is called after the response is received, the following\n     * events will be emitted in the following order:\n     *\n     * * `'socket'`\n     * * `'response'`\n     *    * `'data'` any number of times, on the `res` object\n     * * (`req.abort()` called here)\n     * * `'abort'`\n     * * `'aborted'` on the `res` object\n     * * `'error'` on the `res` object with an error with message`'Error: aborted'` and code `'ECONNRESET'`.\n     * * `'close'`\n     * * `'close'` on the `res` object\n     *\n     * Setting the `timeout` option or using the `setTimeout()` function will\n     * not abort the request or do anything besides add a `'timeout'` event.\n     *\n     * Passing an `AbortSignal` and then calling `abort` on the corresponding`AbortController` will behave the same way as calling `.destroy()` on the\n     * request itself.\n     * @since v0.3.6\n     */\n    function request(options: RequestOptions | string | URL, callback?: (res: IncomingMessage) => void): ClientRequest;\n    function request(\n        url: string | URL,\n        options: RequestOptions,\n        callback?: (res: IncomingMessage) => void,\n    ): ClientRequest;\n    /**\n     * Since most requests are GET requests without bodies, Node.js provides this\n     * convenience method. The only difference between this method and {@link request} is that it sets the method to GET and calls `req.end()`automatically. The callback must take care to consume the\n     * response\n     * data for reasons stated in {@link ClientRequest} section.\n     *\n     * The `callback` is invoked with a single argument that is an instance of {@link IncomingMessage}.\n     *\n     * JSON fetching example:\n     *\n     * ```js\n     * http.get('http://localhost:8000/', (res) => {\n     *   const { statusCode } = res;\n     *   const contentType = res.headers['content-type'];\n     *\n     *   let error;\n     *   // Any 2xx status code signals a successful response but\n     *   // here we're only checking for 200.\n     *   if (statusCode !== 200) {\n     *     error = new Error('Request Failed.\\n' +\n     *                       `Status Code: ${statusCode}`);\n     *   } else if (!/^application\\/json/.test(contentType)) {\n     *     error = new Error('Invalid content-type.\\n' +\n     *                       `Expected application/json but received ${contentType}`);\n     *   }\n     *   if (error) {\n     *     console.error(error.message);\n     *     // Consume response data to free up memory\n     *     res.resume();\n     *     return;\n     *   }\n     *\n     *   res.setEncoding('utf8');\n     *   let rawData = '';\n     *   res.on('data', (chunk) => { rawData += chunk; });\n     *   res.on('end', () => {\n     *     try {\n     *       const parsedData = JSON.parse(rawData);\n     *       console.log(parsedData);\n     *     } catch (e) {\n     *       console.error(e.message);\n     *     }\n     *   });\n     * }).on('error', (e) => {\n     *   console.error(`Got error: ${e.message}`);\n     * });\n     *\n     * // Create a local server to receive data from\n     * const server = http.createServer((req, res) => {\n     *   res.writeHead(200, { 'Content-Type': 'application/json' });\n     *   res.end(JSON.stringify({\n     *     data: 'Hello World!'\n     *   }));\n     * });\n     *\n     * server.listen(8000);\n     * ```\n     * @since v0.3.6\n     * @param options Accepts the same `options` as {@link request}, with the `method` always set to `GET`. Properties that are inherited from the prototype are ignored.\n     */\n    function get(options: RequestOptions | string | URL, callback?: (res: IncomingMessage) => void): ClientRequest;\n    function get(url: string | URL, options: RequestOptions, callback?: (res: IncomingMessage) => void): ClientRequest;\n\n    /**\n     * Performs the low-level validations on the provided name that are done when `res.setHeader(name, value)` is called.\n     * Passing illegal value as name will result in a TypeError being thrown, identified by `code: 'ERR_INVALID_HTTP_TOKEN'`.\n     * @param name Header name\n     * @since v14.3.0\n     */\n    function validateHeaderName(name: string): void;\n    /**\n     * Performs the low-level validations on the provided value that are done when `res.setHeader(name, value)` is called.\n     * Passing illegal value as value will result in a TypeError being thrown.\n     * - Undefined value error is identified by `code: 'ERR_HTTP_INVALID_HEADER_VALUE'`.\n     * - Invalid value character error is identified by `code: 'ERR_INVALID_CHAR'`.\n     * @param name Header name\n     * @param value Header value\n     * @since v14.3.0\n     */\n    function validateHeaderValue(name: string, value: string): void;\n\n    /**\n     * Set the maximum number of idle HTTP parsers. Default: 1000.\n     * @param count\n     * @since v18.8.0, v16.18.0\n     */\n    function setMaxIdleHTTPParsers(count: number): void;\n\n    let globalAgent: Agent;\n    /**\n     * Read-only property specifying the maximum allowed size of HTTP headers in bytes.\n     * Defaults to 16KB. Configurable using the `--max-http-header-size` CLI option.\n     */\n    const maxHeaderSize: number;\n}\ndeclare module 'node:http' {\n    export * from 'http';\n}\n"
    },
    {
      "path": "/node_modules/@types/node/http2.d.ts",
      "content": "/**\n * The `http2` module provides an implementation of the [HTTP/2](https://tools.ietf.org/html/rfc7540) protocol. It\n * can be accessed using:\n *\n * ```js\n * const http2 = require('http2');\n * ```\n * @since v8.4.0\n * @see [source](https://github.com/nodejs/node/blob/v16.9.0/lib/http2.js)\n */\ndeclare module 'http2' {\n    import EventEmitter = require('node:events');\n    import * as fs from 'node:fs';\n    import * as net from 'node:net';\n    import * as stream from 'node:stream';\n    import * as tls from 'node:tls';\n    import * as url from 'node:url';\n    import { IncomingHttpHeaders as Http1IncomingHttpHeaders, OutgoingHttpHeaders, IncomingMessage, ServerResponse } from 'node:http';\n    export { OutgoingHttpHeaders } from 'node:http';\n    export interface IncomingHttpStatusHeader {\n        ':status'?: number | undefined;\n    }\n    export interface IncomingHttpHeaders extends Http1IncomingHttpHeaders {\n        ':path'?: string | undefined;\n        ':method'?: string | undefined;\n        ':authority'?: string | undefined;\n        ':scheme'?: string | undefined;\n    }\n    // Http2Stream\n    export interface StreamPriorityOptions {\n        exclusive?: boolean | undefined;\n        parent?: number | undefined;\n        weight?: number | undefined;\n        silent?: boolean | undefined;\n    }\n    export interface StreamState {\n        localWindowSize?: number | undefined;\n        state?: number | undefined;\n        localClose?: number | undefined;\n        remoteClose?: number | undefined;\n        sumDependencyWeight?: number | undefined;\n        weight?: number | undefined;\n    }\n    export interface ServerStreamResponseOptions {\n        endStream?: boolean | undefined;\n        waitForTrailers?: boolean | undefined;\n    }\n    export interface StatOptions {\n        offset: number;\n        length: number;\n    }\n    export interface ServerStreamFileResponseOptions {\n        statCheck?(stats: fs.Stats, headers: OutgoingHttpHeaders, statOptions: StatOptions): void | boolean;\n        waitForTrailers?: boolean | undefined;\n        offset?: number | undefined;\n        length?: number | undefined;\n    }\n    export interface ServerStreamFileResponseOptionsWithError extends ServerStreamFileResponseOptions {\n        onError?(err: NodeJS.ErrnoException): void;\n    }\n    export interface Http2Stream extends stream.Duplex {\n        /**\n         * Set to `true` if the `Http2Stream` instance was aborted abnormally. When set,\n         * the `'aborted'` event will have been emitted.\n         * @since v8.4.0\n         */\n        readonly aborted: boolean;\n        /**\n         * This property shows the number of characters currently buffered to be written.\n         * See `net.Socket.bufferSize` for details.\n         * @since v11.2.0, v10.16.0\n         */\n        readonly bufferSize: number;\n        /**\n         * Set to `true` if the `Http2Stream` instance has been closed.\n         * @since v9.4.0\n         */\n        readonly closed: boolean;\n        /**\n         * Set to `true` if the `Http2Stream` instance has been destroyed and is no longer\n         * usable.\n         * @since v8.4.0\n         */\n        readonly destroyed: boolean;\n        /**\n         * Set the `true` if the `END_STREAM` flag was set in the request or response\n         * HEADERS frame received, indicating that no additional data should be received\n         * and the readable side of the `Http2Stream` will be closed.\n         * @since v10.11.0\n         */\n        readonly endAfterHeaders: boolean;\n        /**\n         * The numeric stream identifier of this `Http2Stream` instance. Set to `undefined`if the stream identifier has not yet been assigned.\n         * @since v8.4.0\n         */\n        readonly id?: number | undefined;\n        /**\n         * Set to `true` if the `Http2Stream` instance has not yet been assigned a\n         * numeric stream identifier.\n         * @since v9.4.0\n         */\n        readonly pending: boolean;\n        /**\n         * Set to the `RST_STREAM` `error code` reported when the `Http2Stream` is\n         * destroyed after either receiving an `RST_STREAM` frame from the connected peer,\n         * calling `http2stream.close()`, or `http2stream.destroy()`. Will be`undefined` if the `Http2Stream` has not been closed.\n         * @since v8.4.0\n         */\n        readonly rstCode: number;\n        /**\n         * An object containing the outbound headers sent for this `Http2Stream`.\n         * @since v9.5.0\n         */\n        readonly sentHeaders: OutgoingHttpHeaders;\n        /**\n         * An array of objects containing the outbound informational (additional) headers\n         * sent for this `Http2Stream`.\n         * @since v9.5.0\n         */\n        readonly sentInfoHeaders?: OutgoingHttpHeaders[] | undefined;\n        /**\n         * An object containing the outbound trailers sent for this `HttpStream`.\n         * @since v9.5.0\n         */\n        readonly sentTrailers?: OutgoingHttpHeaders | undefined;\n        /**\n         * A reference to the `Http2Session` instance that owns this `Http2Stream`. The\n         * value will be `undefined` after the `Http2Stream` instance is destroyed.\n         * @since v8.4.0\n         */\n        readonly session: Http2Session;\n        /**\n         * Provides miscellaneous information about the current state of the`Http2Stream`.\n         *\n         * A current state of this `Http2Stream`.\n         * @since v8.4.0\n         */\n        readonly state: StreamState;\n        /**\n         * Closes the `Http2Stream` instance by sending an `RST_STREAM` frame to the\n         * connected HTTP/2 peer.\n         * @since v8.4.0\n         * @param [code=http2.constants.NGHTTP2_NO_ERROR] Unsigned 32-bit integer identifying the error code.\n         * @param callback An optional function registered to listen for the `'close'` event.\n         */\n        close(code?: number, callback?: () => void): void;\n        /**\n         * Updates the priority for this `Http2Stream` instance.\n         * @since v8.4.0\n         */\n        priority(options: StreamPriorityOptions): void;\n        /**\n         * ```js\n         * const http2 = require('http2');\n         * const client = http2.connect('http://example.org:8000');\n         * const { NGHTTP2_CANCEL } = http2.constants;\n         * const req = client.request({ ':path': '/' });\n         *\n         * // Cancel the stream if there's no activity after 5 seconds\n         * req.setTimeout(5000, () => req.close(NGHTTP2_CANCEL));\n         * ```\n         * @since v8.4.0\n         */\n        setTimeout(msecs: number, callback?: () => void): void;\n        /**\n         * Sends a trailing `HEADERS` frame to the connected HTTP/2 peer. This method\n         * will cause the `Http2Stream` to be immediately closed and must only be\n         * called after the `'wantTrailers'` event has been emitted. When sending a\n         * request or sending a response, the `options.waitForTrailers` option must be set\n         * in order to keep the `Http2Stream` open after the final `DATA` frame so that\n         * trailers can be sent.\n         *\n         * ```js\n         * const http2 = require('http2');\n         * const server = http2.createServer();\n         * server.on('stream', (stream) => {\n         *   stream.respond(undefined, { waitForTrailers: true });\n         *   stream.on('wantTrailers', () => {\n         *     stream.sendTrailers({ xyz: 'abc' });\n         *   });\n         *   stream.end('Hello World');\n         * });\n         * ```\n         *\n         * The HTTP/1 specification forbids trailers from containing HTTP/2 pseudo-header\n         * fields (e.g. `':method'`, `':path'`, etc).\n         * @since v10.0.0\n         */\n        sendTrailers(headers: OutgoingHttpHeaders): void;\n        addListener(event: 'aborted', listener: () => void): this;\n        addListener(event: 'close', listener: () => void): this;\n        addListener(event: 'data', listener: (chunk: Buffer | string) => void): this;\n        addListener(event: 'drain', listener: () => void): this;\n        addListener(event: 'end', listener: () => void): this;\n        addListener(event: 'error', listener: (err: Error) => void): this;\n        addListener(event: 'finish', listener: () => void): this;\n        addListener(event: 'frameError', listener: (frameType: number, errorCode: number) => void): this;\n        addListener(event: 'pipe', listener: (src: stream.Readable) => void): this;\n        addListener(event: 'unpipe', listener: (src: stream.Readable) => void): this;\n        addListener(event: 'streamClosed', listener: (code: number) => void): this;\n        addListener(event: 'timeout', listener: () => void): this;\n        addListener(event: 'trailers', listener: (trailers: IncomingHttpHeaders, flags: number) => void): this;\n        addListener(event: 'wantTrailers', listener: () => void): this;\n        addListener(event: string | symbol, listener: (...args: any[]) => void): this;\n        emit(event: 'aborted'): boolean;\n        emit(event: 'close'): boolean;\n        emit(event: 'data', chunk: Buffer | string): boolean;\n        emit(event: 'drain'): boolean;\n        emit(event: 'end'): boolean;\n        emit(event: 'error', err: Error): boolean;\n        emit(event: 'finish'): boolean;\n        emit(event: 'frameError', frameType: number, errorCode: number): boolean;\n        emit(event: 'pipe', src: stream.Readable): boolean;\n        emit(event: 'unpipe', src: stream.Readable): boolean;\n        emit(event: 'streamClosed', code: number): boolean;\n        emit(event: 'timeout'): boolean;\n        emit(event: 'trailers', trailers: IncomingHttpHeaders, flags: number): boolean;\n        emit(event: 'wantTrailers'): boolean;\n        emit(event: string | symbol, ...args: any[]): boolean;\n        on(event: 'aborted', listener: () => void): this;\n        on(event: 'close', listener: () => void): this;\n        on(event: 'data', listener: (chunk: Buffer | string) => void): this;\n        on(event: 'drain', listener: () => void): this;\n        on(event: 'end', listener: () => void): this;\n        on(event: 'error', listener: (err: Error) => void): this;\n        on(event: 'finish', listener: () => void): this;\n        on(event: 'frameError', listener: (frameType: number, errorCode: number) => void): this;\n        on(event: 'pipe', listener: (src: stream.Readable) => void): this;\n        on(event: 'unpipe', listener: (src: stream.Readable) => void): this;\n        on(event: 'streamClosed', listener: (code: number) => void): this;\n        on(event: 'timeout', listener: () => void): this;\n        on(event: 'trailers', listener: (trailers: IncomingHttpHeaders, flags: number) => void): this;\n        on(event: 'wantTrailers', listener: () => void): this;\n        on(event: string | symbol, listener: (...args: any[]) => void): this;\n        once(event: 'aborted', listener: () => void): this;\n        once(event: 'close', listener: () => void): this;\n        once(event: 'data', listener: (chunk: Buffer | string) => void): this;\n        once(event: 'drain', listener: () => void): this;\n        once(event: 'end', listener: () => void): this;\n        once(event: 'error', listener: (err: Error) => void): this;\n        once(event: 'finish', listener: () => void): this;\n        once(event: 'frameError', listener: (frameType: number, errorCode: number) => void): this;\n        once(event: 'pipe', listener: (src: stream.Readable) => void): this;\n        once(event: 'unpipe', listener: (src: stream.Readable) => void): this;\n        once(event: 'streamClosed', listener: (code: number) => void): this;\n        once(event: 'timeout', listener: () => void): this;\n        once(event: 'trailers', listener: (trailers: IncomingHttpHeaders, flags: number) => void): this;\n        once(event: 'wantTrailers', listener: () => void): this;\n        once(event: string | symbol, listener: (...args: any[]) => void): this;\n        prependListener(event: 'aborted', listener: () => void): this;\n        prependListener(event: 'close', listener: () => void): this;\n        prependListener(event: 'data', listener: (chunk: Buffer | string) => void): this;\n        prependListener(event: 'drain', listener: () => void): this;\n        prependListener(event: 'end', listener: () => void): this;\n        prependListener(event: 'error', listener: (err: Error) => void): this;\n        prependListener(event: 'finish', listener: () => void): this;\n        prependListener(event: 'frameError', listener: (frameType: number, errorCode: number) => void): this;\n        prependListener(event: 'pipe', listener: (src: stream.Readable) => void): this;\n        prependListener(event: 'unpipe', listener: (src: stream.Readable) => void): this;\n        prependListener(event: 'streamClosed', listener: (code: number) => void): this;\n        prependListener(event: 'timeout', listener: () => void): this;\n        prependListener(event: 'trailers', listener: (trailers: IncomingHttpHeaders, flags: number) => void): this;\n        prependListener(event: 'wantTrailers', listener: () => void): this;\n        prependListener(event: string | symbol, listener: (...args: any[]) => void): this;\n        prependOnceListener(event: 'aborted', listener: () => void): this;\n        prependOnceListener(event: 'close', listener: () => void): this;\n        prependOnceListener(event: 'data', listener: (chunk: Buffer | string) => void): this;\n        prependOnceListener(event: 'drain', listener: () => void): this;\n        prependOnceListener(event: 'end', listener: () => void): this;\n        prependOnceListener(event: 'error', listener: (err: Error) => void): this;\n        prependOnceListener(event: 'finish', listener: () => void): this;\n        prependOnceListener(event: 'frameError', listener: (frameType: number, errorCode: number) => void): this;\n        prependOnceListener(event: 'pipe', listener: (src: stream.Readable) => void): this;\n        prependOnceListener(event: 'unpipe', listener: (src: stream.Readable) => void): this;\n        prependOnceListener(event: 'streamClosed', listener: (code: number) => void): this;\n        prependOnceListener(event: 'timeout', listener: () => void): this;\n        prependOnceListener(event: 'trailers', listener: (trailers: IncomingHttpHeaders, flags: number) => void): this;\n        prependOnceListener(event: 'wantTrailers', listener: () => void): this;\n        prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this;\n    }\n    export interface ClientHttp2Stream extends Http2Stream {\n        addListener(event: 'continue', listener: () => {}): this;\n        addListener(event: 'headers', listener: (headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void): this;\n        addListener(event: 'push', listener: (headers: IncomingHttpHeaders, flags: number) => void): this;\n        addListener(event: 'response', listener: (headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void): this;\n        addListener(event: string | symbol, listener: (...args: any[]) => void): this;\n        emit(event: 'continue'): boolean;\n        emit(event: 'headers', headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number): boolean;\n        emit(event: 'push', headers: IncomingHttpHeaders, flags: number): boolean;\n        emit(event: 'response', headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number): boolean;\n        emit(event: string | symbol, ...args: any[]): boolean;\n        on(event: 'continue', listener: () => {}): this;\n        on(event: 'headers', listener: (headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void): this;\n        on(event: 'push', listener: (headers: IncomingHttpHeaders, flags: number) => void): this;\n        on(event: 'response', listener: (headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void): this;\n        on(event: string | symbol, listener: (...args: any[]) => void): this;\n        once(event: 'continue', listener: () => {}): this;\n        once(event: 'headers', listener: (headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void): this;\n        once(event: 'push', listener: (headers: IncomingHttpHeaders, flags: number) => void): this;\n        once(event: 'response', listener: (headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void): this;\n        once(event: string | symbol, listener: (...args: any[]) => void): this;\n        prependListener(event: 'continue', listener: () => {}): this;\n        prependListener(event: 'headers', listener: (headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void): this;\n        prependListener(event: 'push', listener: (headers: IncomingHttpHeaders, flags: number) => void): this;\n        prependListener(event: 'response', listener: (headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void): this;\n        prependListener(event: string | symbol, listener: (...args: any[]) => void): this;\n        prependOnceListener(event: 'continue', listener: () => {}): this;\n        prependOnceListener(event: 'headers', listener: (headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void): this;\n        prependOnceListener(event: 'push', listener: (headers: IncomingHttpHeaders, flags: number) => void): this;\n        prependOnceListener(event: 'response', listener: (headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void): this;\n        prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this;\n    }\n    export interface ServerHttp2Stream extends Http2Stream {\n        /**\n         * True if headers were sent, false otherwise (read-only).\n         * @since v8.4.0\n         */\n        readonly headersSent: boolean;\n        /**\n         * Read-only property mapped to the `SETTINGS_ENABLE_PUSH` flag of the remote\n         * client's most recent `SETTINGS` frame. Will be `true` if the remote peer\n         * accepts push streams, `false` otherwise. Settings are the same for every`Http2Stream` in the same `Http2Session`.\n         * @since v8.4.0\n         */\n        readonly pushAllowed: boolean;\n        /**\n         * Sends an additional informational `HEADERS` frame to the connected HTTP/2 peer.\n         * @since v8.4.0\n         */\n        additionalHeaders(headers: OutgoingHttpHeaders): void;\n        /**\n         * Initiates a push stream. The callback is invoked with the new `Http2Stream`instance created for the push stream passed as the second argument, or an`Error` passed as the first argument.\n         *\n         * ```js\n         * const http2 = require('http2');\n         * const server = http2.createServer();\n         * server.on('stream', (stream) => {\n         *   stream.respond({ ':status': 200 });\n         *   stream.pushStream({ ':path': '/' }, (err, pushStream, headers) => {\n         *     if (err) throw err;\n         *     pushStream.respond({ ':status': 200 });\n         *     pushStream.end('some pushed data');\n         *   });\n         *   stream.end('some data');\n         * });\n         * ```\n         *\n         * Setting the weight of a push stream is not allowed in the `HEADERS` frame. Pass\n         * a `weight` value to `http2stream.priority` with the `silent` option set to`true` to enable server-side bandwidth balancing between concurrent streams.\n         *\n         * Calling `http2stream.pushStream()` from within a pushed stream is not permitted\n         * and will throw an error.\n         * @since v8.4.0\n         * @param callback Callback that is called once the push stream has been initiated.\n         */\n        pushStream(headers: OutgoingHttpHeaders, callback?: (err: Error | null, pushStream: ServerHttp2Stream, headers: OutgoingHttpHeaders) => void): void;\n        pushStream(headers: OutgoingHttpHeaders, options?: StreamPriorityOptions, callback?: (err: Error | null, pushStream: ServerHttp2Stream, headers: OutgoingHttpHeaders) => void): void;\n        /**\n         * ```js\n         * const http2 = require('http2');\n         * const server = http2.createServer();\n         * server.on('stream', (stream) => {\n         *   stream.respond({ ':status': 200 });\n         *   stream.end('some data');\n         * });\n         * ```\n         *\n         * When the `options.waitForTrailers` option is set, the `'wantTrailers'` event\n         * will be emitted immediately after queuing the last chunk of payload data to be\n         * sent. The `http2stream.sendTrailers()` method can then be used to sent trailing\n         * header fields to the peer.\n         *\n         * When `options.waitForTrailers` is set, the `Http2Stream` will not automatically\n         * close when the final `DATA` frame is transmitted. User code must call either`http2stream.sendTrailers()` or `http2stream.close()` to close the`Http2Stream`.\n         *\n         * ```js\n         * const http2 = require('http2');\n         * const server = http2.createServer();\n         * server.on('stream', (stream) => {\n         *   stream.respond({ ':status': 200 }, { waitForTrailers: true });\n         *   stream.on('wantTrailers', () => {\n         *     stream.sendTrailers({ ABC: 'some value to send' });\n         *   });\n         *   stream.end('some data');\n         * });\n         * ```\n         * @since v8.4.0\n         */\n        respond(headers?: OutgoingHttpHeaders, options?: ServerStreamResponseOptions): void;\n        /**\n         * Initiates a response whose data is read from the given file descriptor. No\n         * validation is performed on the given file descriptor. If an error occurs while\n         * attempting to read data using the file descriptor, the `Http2Stream` will be\n         * closed using an `RST_STREAM` frame using the standard `INTERNAL_ERROR` code.\n         *\n         * When used, the `Http2Stream` object's `Duplex` interface will be closed\n         * automatically.\n         *\n         * ```js\n         * const http2 = require('http2');\n         * const fs = require('fs');\n         *\n         * const server = http2.createServer();\n         * server.on('stream', (stream) => {\n         *   const fd = fs.openSync('/some/file', 'r');\n         *\n         *   const stat = fs.fstatSync(fd);\n         *   const headers = {\n         *     'content-length': stat.size,\n         *     'last-modified': stat.mtime.toUTCString(),\n         *     'content-type': 'text/plain; charset=utf-8'\n         *   };\n         *   stream.respondWithFD(fd, headers);\n         *   stream.on('close', () => fs.closeSync(fd));\n         * });\n         * ```\n         *\n         * The optional `options.statCheck` function may be specified to give user code\n         * an opportunity to set additional content headers based on the `fs.Stat` details\n         * of the given fd. If the `statCheck` function is provided, the`http2stream.respondWithFD()` method will perform an `fs.fstat()` call to\n         * collect details on the provided file descriptor.\n         *\n         * The `offset` and `length` options may be used to limit the response to a\n         * specific range subset. This can be used, for instance, to support HTTP Range\n         * requests.\n         *\n         * The file descriptor or `FileHandle` is not closed when the stream is closed,\n         * so it will need to be closed manually once it is no longer needed.\n         * Using the same file descriptor concurrently for multiple streams\n         * is not supported and may result in data loss. Re-using a file descriptor\n         * after a stream has finished is supported.\n         *\n         * When the `options.waitForTrailers` option is set, the `'wantTrailers'` event\n         * will be emitted immediately after queuing the last chunk of payload data to be\n         * sent. The `http2stream.sendTrailers()` method can then be used to sent trailing\n         * header fields to the peer.\n         *\n         * When `options.waitForTrailers` is set, the `Http2Stream` will not automatically\n         * close when the final `DATA` frame is transmitted. User code _must_ call either`http2stream.sendTrailers()` or `http2stream.close()` to close the`Http2Stream`.\n         *\n         * ```js\n         * const http2 = require('http2');\n         * const fs = require('fs');\n         *\n         * const server = http2.createServer();\n         * server.on('stream', (stream) => {\n         *   const fd = fs.openSync('/some/file', 'r');\n         *\n         *   const stat = fs.fstatSync(fd);\n         *   const headers = {\n         *     'content-length': stat.size,\n         *     'last-modified': stat.mtime.toUTCString(),\n         *     'content-type': 'text/plain; charset=utf-8'\n         *   };\n         *   stream.respondWithFD(fd, headers, { waitForTrailers: true });\n         *   stream.on('wantTrailers', () => {\n         *     stream.sendTrailers({ ABC: 'some value to send' });\n         *   });\n         *\n         *   stream.on('close', () => fs.closeSync(fd));\n         * });\n         * ```\n         * @since v8.4.0\n         * @param fd A readable file descriptor.\n         */\n        respondWithFD(fd: number | fs.promises.FileHandle, headers?: OutgoingHttpHeaders, options?: ServerStreamFileResponseOptions): void;\n        /**\n         * Sends a regular file as the response. The `path` must specify a regular file\n         * or an `'error'` event will be emitted on the `Http2Stream` object.\n         *\n         * When used, the `Http2Stream` object's `Duplex` interface will be closed\n         * automatically.\n         *\n         * The optional `options.statCheck` function may be specified to give user code\n         * an opportunity to set additional content headers based on the `fs.Stat` details\n         * of the given file:\n         *\n         * If an error occurs while attempting to read the file data, the `Http2Stream`will be closed using an `RST_STREAM` frame using the standard `INTERNAL_ERROR`code. If the `onError` callback is\n         * defined, then it will be called. Otherwise\n         * the stream will be destroyed.\n         *\n         * Example using a file path:\n         *\n         * ```js\n         * const http2 = require('http2');\n         * const server = http2.createServer();\n         * server.on('stream', (stream) => {\n         *   function statCheck(stat, headers) {\n         *     headers['last-modified'] = stat.mtime.toUTCString();\n         *   }\n         *\n         *   function onError(err) {\n         *     // stream.respond() can throw if the stream has been destroyed by\n         *     // the other side.\n         *     try {\n         *       if (err.code === 'ENOENT') {\n         *         stream.respond({ ':status': 404 });\n         *       } else {\n         *         stream.respond({ ':status': 500 });\n         *       }\n         *     } catch (err) {\n         *       // Perform actual error handling.\n         *       console.log(err);\n         *     }\n         *     stream.end();\n         *   }\n         *\n         *   stream.respondWithFile('/some/file',\n         *                          { 'content-type': 'text/plain; charset=utf-8' },\n         *                          { statCheck, onError });\n         * });\n         * ```\n         *\n         * The `options.statCheck` function may also be used to cancel the send operation\n         * by returning `false`. For instance, a conditional request may check the stat\n         * results to determine if the file has been modified to return an appropriate`304` response:\n         *\n         * ```js\n         * const http2 = require('http2');\n         * const server = http2.createServer();\n         * server.on('stream', (stream) => {\n         *   function statCheck(stat, headers) {\n         *     // Check the stat here...\n         *     stream.respond({ ':status': 304 });\n         *     return false; // Cancel the send operation\n         *   }\n         *   stream.respondWithFile('/some/file',\n         *                          { 'content-type': 'text/plain; charset=utf-8' },\n         *                          { statCheck });\n         * });\n         * ```\n         *\n         * The `content-length` header field will be automatically set.\n         *\n         * The `offset` and `length` options may be used to limit the response to a\n         * specific range subset. This can be used, for instance, to support HTTP Range\n         * requests.\n         *\n         * The `options.onError` function may also be used to handle all the errors\n         * that could happen before the delivery of the file is initiated. The\n         * default behavior is to destroy the stream.\n         *\n         * When the `options.waitForTrailers` option is set, the `'wantTrailers'` event\n         * will be emitted immediately after queuing the last chunk of payload data to be\n         * sent. The `http2stream.sendTrailers()` method can then be used to sent trailing\n         * header fields to the peer.\n         *\n         * When `options.waitForTrailers` is set, the `Http2Stream` will not automatically\n         * close when the final `DATA` frame is transmitted. User code must call either`http2stream.sendTrailers()` or `http2stream.close()` to close the`Http2Stream`.\n         *\n         * ```js\n         * const http2 = require('http2');\n         * const server = http2.createServer();\n         * server.on('stream', (stream) => {\n         *   stream.respondWithFile('/some/file',\n         *                          { 'content-type': 'text/plain; charset=utf-8' },\n         *                          { waitForTrailers: true });\n         *   stream.on('wantTrailers', () => {\n         *     stream.sendTrailers({ ABC: 'some value to send' });\n         *   });\n         * });\n         * ```\n         * @since v8.4.0\n         */\n        respondWithFile(path: string, headers?: OutgoingHttpHeaders, options?: ServerStreamFileResponseOptionsWithError): void;\n    }\n    // Http2Session\n    export interface Settings {\n        headerTableSize?: number | undefined;\n        enablePush?: boolean | undefined;\n        initialWindowSize?: number | undefined;\n        maxFrameSize?: number | undefined;\n        maxConcurrentStreams?: number | undefined;\n        maxHeaderListSize?: number | undefined;\n        enableConnectProtocol?: boolean | undefined;\n    }\n    export interface ClientSessionRequestOptions {\n        endStream?: boolean | undefined;\n        exclusive?: boolean | undefined;\n        parent?: number | undefined;\n        weight?: number | undefined;\n        waitForTrailers?: boolean | undefined;\n        signal?: AbortSignal | undefined;\n    }\n    export interface SessionState {\n        effectiveLocalWindowSize?: number | undefined;\n        effectiveRecvDataLength?: number | undefined;\n        nextStreamID?: number | undefined;\n        localWindowSize?: number | undefined;\n        lastProcStreamID?: number | undefined;\n        remoteWindowSize?: number | undefined;\n        outboundQueueSize?: number | undefined;\n        deflateDynamicTableSize?: number | undefined;\n        inflateDynamicTableSize?: number | undefined;\n    }\n    export interface Http2Session extends EventEmitter {\n        /**\n         * Value will be `undefined` if the `Http2Session` is not yet connected to a\n         * socket, `h2c` if the `Http2Session` is not connected to a `TLSSocket`, or\n         * will return the value of the connected `TLSSocket`'s own `alpnProtocol`property.\n         * @since v9.4.0\n         */\n        readonly alpnProtocol?: string | undefined;\n        /**\n         * Will be `true` if this `Http2Session` instance has been closed, otherwise`false`.\n         * @since v9.4.0\n         */\n        readonly closed: boolean;\n        /**\n         * Will be `true` if this `Http2Session` instance is still connecting, will be set\n         * to `false` before emitting `connect` event and/or calling the `http2.connect`callback.\n         * @since v10.0.0\n         */\n        readonly connecting: boolean;\n        /**\n         * Will be `true` if this `Http2Session` instance has been destroyed and must no\n         * longer be used, otherwise `false`.\n         * @since v8.4.0\n         */\n        readonly destroyed: boolean;\n        /**\n         * Value is `undefined` if the `Http2Session` session socket has not yet been\n         * connected, `true` if the `Http2Session` is connected with a `TLSSocket`,\n         * and `false` if the `Http2Session` is connected to any other kind of socket\n         * or stream.\n         * @since v9.4.0\n         */\n        readonly encrypted?: boolean | undefined;\n        /**\n         * A prototype-less object describing the current local settings of this`Http2Session`. The local settings are local to _this_`Http2Session` instance.\n         * @since v8.4.0\n         */\n        readonly localSettings: Settings;\n        /**\n         * If the `Http2Session` is connected to a `TLSSocket`, the `originSet` property\n         * will return an `Array` of origins for which the `Http2Session` may be\n         * considered authoritative.\n         *\n         * The `originSet` property is only available when using a secure TLS connection.\n         * @since v9.4.0\n         */\n        readonly originSet?: string[] | undefined;\n        /**\n         * Indicates whether the `Http2Session` is currently waiting for acknowledgment of\n         * a sent `SETTINGS` frame. Will be `true` after calling the`http2session.settings()` method. Will be `false` once all sent `SETTINGS`frames have been acknowledged.\n         * @since v8.4.0\n         */\n        readonly pendingSettingsAck: boolean;\n        /**\n         * A prototype-less object describing the current remote settings of this`Http2Session`. The remote settings are set by the _connected_ HTTP/2 peer.\n         * @since v8.4.0\n         */\n        readonly remoteSettings: Settings;\n        /**\n         * Returns a `Proxy` object that acts as a `net.Socket` (or `tls.TLSSocket`) but\n         * limits available methods to ones safe to use with HTTP/2.\n         *\n         * `destroy`, `emit`, `end`, `pause`, `read`, `resume`, and `write` will throw\n         * an error with code `ERR_HTTP2_NO_SOCKET_MANIPULATION`. See `Http2Session and Sockets` for more information.\n         *\n         * `setTimeout` method will be called on this `Http2Session`.\n         *\n         * All other interactions will be routed directly to the socket.\n         * @since v8.4.0\n         */\n        readonly socket: net.Socket | tls.TLSSocket;\n        /**\n         * Provides miscellaneous information about the current state of the`Http2Session`.\n         *\n         * An object describing the current status of this `Http2Session`.\n         * @since v8.4.0\n         */\n        readonly state: SessionState;\n        /**\n         * The `http2session.type` will be equal to`http2.constants.NGHTTP2_SESSION_SERVER` if this `Http2Session` instance is a\n         * server, and `http2.constants.NGHTTP2_SESSION_CLIENT` if the instance is a\n         * client.\n         * @since v8.4.0\n         */\n        readonly type: number;\n        /**\n         * Gracefully closes the `Http2Session`, allowing any existing streams to\n         * complete on their own and preventing new `Http2Stream` instances from being\n         * created. Once closed, `http2session.destroy()`_might_ be called if there\n         * are no open `Http2Stream` instances.\n         *\n         * If specified, the `callback` function is registered as a handler for the`'close'` event.\n         * @since v9.4.0\n         */\n        close(callback?: () => void): void;\n        /**\n         * Immediately terminates the `Http2Session` and the associated `net.Socket` or`tls.TLSSocket`.\n         *\n         * Once destroyed, the `Http2Session` will emit the `'close'` event. If `error`is not undefined, an `'error'` event will be emitted immediately before the`'close'` event.\n         *\n         * If there are any remaining open `Http2Streams` associated with the`Http2Session`, those will also be destroyed.\n         * @since v8.4.0\n         * @param error An `Error` object if the `Http2Session` is being destroyed due to an error.\n         * @param code The HTTP/2 error code to send in the final `GOAWAY` frame. If unspecified, and `error` is not undefined, the default is `INTERNAL_ERROR`, otherwise defaults to `NO_ERROR`.\n         */\n        destroy(error?: Error, code?: number): void;\n        /**\n         * Transmits a `GOAWAY` frame to the connected peer _without_ shutting down the`Http2Session`.\n         * @since v9.4.0\n         * @param code An HTTP/2 error code\n         * @param lastStreamID The numeric ID of the last processed `Http2Stream`\n         * @param opaqueData A `TypedArray` or `DataView` instance containing additional data to be carried within the `GOAWAY` frame.\n         */\n        goaway(code?: number, lastStreamID?: number, opaqueData?: NodeJS.ArrayBufferView): void;\n        /**\n         * Sends a `PING` frame to the connected HTTP/2 peer. A `callback` function must\n         * be provided. The method will return `true` if the `PING` was sent, `false`otherwise.\n         *\n         * The maximum number of outstanding (unacknowledged) pings is determined by the`maxOutstandingPings` configuration option. The default maximum is 10.\n         *\n         * If provided, the `payload` must be a `Buffer`, `TypedArray`, or `DataView`containing 8 bytes of data that will be transmitted with the `PING` and\n         * returned with the ping acknowledgment.\n         *\n         * The callback will be invoked with three arguments: an error argument that will\n         * be `null` if the `PING` was successfully acknowledged, a `duration` argument\n         * that reports the number of milliseconds elapsed since the ping was sent and the\n         * acknowledgment was received, and a `Buffer` containing the 8-byte `PING`payload.\n         *\n         * ```js\n         * session.ping(Buffer.from('abcdefgh'), (err, duration, payload) => {\n         *   if (!err) {\n         *     console.log(`Ping acknowledged in ${duration} milliseconds`);\n         *     console.log(`With payload '${payload.toString()}'`);\n         *   }\n         * });\n         * ```\n         *\n         * If the `payload` argument is not specified, the default payload will be the\n         * 64-bit timestamp (little endian) marking the start of the `PING` duration.\n         * @since v8.9.3\n         * @param payload Optional ping payload.\n         */\n        ping(callback: (err: Error | null, duration: number, payload: Buffer) => void): boolean;\n        ping(payload: NodeJS.ArrayBufferView, callback: (err: Error | null, duration: number, payload: Buffer) => void): boolean;\n        /**\n         * Calls `ref()` on this `Http2Session`instance's underlying `net.Socket`.\n         * @since v9.4.0\n         */\n        ref(): void;\n        /**\n         * Sets the local endpoint's window size.\n         * The `windowSize` is the total window size to set, not\n         * the delta.\n         *\n         * ```js\n         * const http2 = require('http2');\n         *\n         * const server = http2.createServer();\n         * const expectedWindowSize = 2 ** 20;\n         * server.on('connect', (session) => {\n         *\n         *   // Set local window size to be 2 ** 20\n         *   session.setLocalWindowSize(expectedWindowSize);\n         * });\n         * ```\n         * @since v15.3.0\n         */\n        setLocalWindowSize(windowSize: number): void;\n        /**\n         * Used to set a callback function that is called when there is no activity on\n         * the `Http2Session` after `msecs` milliseconds. The given `callback` is\n         * registered as a listener on the `'timeout'` event.\n         * @since v8.4.0\n         */\n        setTimeout(msecs: number, callback?: () => void): void;\n        /**\n         * Updates the current local settings for this `Http2Session` and sends a new`SETTINGS` frame to the connected HTTP/2 peer.\n         *\n         * Once called, the `http2session.pendingSettingsAck` property will be `true`while the session is waiting for the remote peer to acknowledge the new\n         * settings.\n         *\n         * The new settings will not become effective until the `SETTINGS` acknowledgment\n         * is received and the `'localSettings'` event is emitted. It is possible to send\n         * multiple `SETTINGS` frames while acknowledgment is still pending.\n         * @since v8.4.0\n         * @param callback Callback that is called once the session is connected or right away if the session is already connected.\n         */\n        settings(settings: Settings, callback?: (err: Error | null, settings: Settings, duration: number) => void): void;\n        /**\n         * Calls `unref()` on this `Http2Session`instance's underlying `net.Socket`.\n         * @since v9.4.0\n         */\n        unref(): void;\n        addListener(event: 'close', listener: () => void): this;\n        addListener(event: 'error', listener: (err: Error) => void): this;\n        addListener(event: 'frameError', listener: (frameType: number, errorCode: number, streamID: number) => void): this;\n        addListener(event: 'goaway', listener: (errorCode: number, lastStreamID: number, opaqueData: Buffer) => void): this;\n        addListener(event: 'localSettings', listener: (settings: Settings) => void): this;\n        addListener(event: 'ping', listener: () => void): this;\n        addListener(event: 'remoteSettings', listener: (settings: Settings) => void): this;\n        addListener(event: 'timeout', listener: () => void): this;\n        addListener(event: string | symbol, listener: (...args: any[]) => void): this;\n        emit(event: 'close'): boolean;\n        emit(event: 'error', err: Error): boolean;\n        emit(event: 'frameError', frameType: number, errorCode: number, streamID: number): boolean;\n        emit(event: 'goaway', errorCode: number, lastStreamID: number, opaqueData: Buffer): boolean;\n        emit(event: 'localSettings', settings: Settings): boolean;\n        emit(event: 'ping'): boolean;\n        emit(event: 'remoteSettings', settings: Settings): boolean;\n        emit(event: 'timeout'): boolean;\n        emit(event: string | symbol, ...args: any[]): boolean;\n        on(event: 'close', listener: () => void): this;\n        on(event: 'error', listener: (err: Error) => void): this;\n        on(event: 'frameError', listener: (frameType: number, errorCode: number, streamID: number) => void): this;\n        on(event: 'goaway', listener: (errorCode: number, lastStreamID: number, opaqueData: Buffer) => void): this;\n        on(event: 'localSettings', listener: (settings: Settings) => void): this;\n        on(event: 'ping', listener: () => void): this;\n        on(event: 'remoteSettings', listener: (settings: Settings) => void): this;\n        on(event: 'timeout', listener: () => void): this;\n        on(event: string | symbol, listener: (...args: any[]) => void): this;\n        once(event: 'close', listener: () => void): this;\n        once(event: 'error', listener: (err: Error) => void): this;\n        once(event: 'frameError', listener: (frameType: number, errorCode: number, streamID: number) => void): this;\n        once(event: 'goaway', listener: (errorCode: number, lastStreamID: number, opaqueData: Buffer) => void): this;\n        once(event: 'localSettings', listener: (settings: Settings) => void): this;\n        once(event: 'ping', listener: () => void): this;\n        once(event: 'remoteSettings', listener: (settings: Settings) => void): this;\n        once(event: 'timeout', listener: () => void): this;\n        once(event: string | symbol, listener: (...args: any[]) => void): this;\n        prependListener(event: 'close', listener: () => void): this;\n        prependListener(event: 'error', listener: (err: Error) => void): this;\n        prependListener(event: 'frameError', listener: (frameType: number, errorCode: number, streamID: number) => void): this;\n        prependListener(event: 'goaway', listener: (errorCode: number, lastStreamID: number, opaqueData: Buffer) => void): this;\n        prependListener(event: 'localSettings', listener: (settings: Settings) => void): this;\n        prependListener(event: 'ping', listener: () => void): this;\n        prependListener(event: 'remoteSettings', listener: (settings: Settings) => void): this;\n        prependListener(event: 'timeout', listener: () => void): this;\n        prependListener(event: string | symbol, listener: (...args: any[]) => void): this;\n        prependOnceListener(event: 'close', listener: () => void): this;\n        prependOnceListener(event: 'error', listener: (err: Error) => void): this;\n        prependOnceListener(event: 'frameError', listener: (frameType: number, errorCode: number, streamID: number) => void): this;\n        prependOnceListener(event: 'goaway', listener: (errorCode: number, lastStreamID: number, opaqueData: Buffer) => void): this;\n        prependOnceListener(event: 'localSettings', listener: (settings: Settings) => void): this;\n        prependOnceListener(event: 'ping', listener: () => void): this;\n        prependOnceListener(event: 'remoteSettings', listener: (settings: Settings) => void): this;\n        prependOnceListener(event: 'timeout', listener: () => void): this;\n        prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this;\n    }\n    export interface ClientHttp2Session extends Http2Session {\n        /**\n         * For HTTP/2 Client `Http2Session` instances only, the `http2session.request()`creates and returns an `Http2Stream` instance that can be used to send an\n         * HTTP/2 request to the connected server.\n         *\n         * This method is only available if `http2session.type` is equal to`http2.constants.NGHTTP2_SESSION_CLIENT`.\n         *\n         * ```js\n         * const http2 = require('http2');\n         * const clientSession = http2.connect('https://localhost:1234');\n         * const {\n         *   HTTP2_HEADER_PATH,\n         *   HTTP2_HEADER_STATUS\n         * } = http2.constants;\n         *\n         * const req = clientSession.request({ [HTTP2_HEADER_PATH]: '/' });\n         * req.on('response', (headers) => {\n         *   console.log(headers[HTTP2_HEADER_STATUS]);\n         *   req.on('data', (chunk) => { // ..  });\n         *   req.on('end', () => { // ..  });\n         * });\n         * ```\n         *\n         * When the `options.waitForTrailers` option is set, the `'wantTrailers'` event\n         * is emitted immediately after queuing the last chunk of payload data to be sent.\n         * The `http2stream.sendTrailers()` method can then be called to send trailing\n         * headers to the peer.\n         *\n         * When `options.waitForTrailers` is set, the `Http2Stream` will not automatically\n         * close when the final `DATA` frame is transmitted. User code must call either`http2stream.sendTrailers()` or `http2stream.close()` to close the`Http2Stream`.\n         *\n         * When `options.signal` is set with an `AbortSignal` and then `abort` on the\n         * corresponding `AbortController` is called, the request will emit an `'error'`event with an `AbortError` error.\n         *\n         * The `:method` and `:path` pseudo-headers are not specified within `headers`,\n         * they respectively default to:\n         *\n         * * `:method` \\= `'GET'`\n         * * `:path` \\= `/`\n         * @since v8.4.0\n         */\n        request(headers?: OutgoingHttpHeaders, options?: ClientSessionRequestOptions): ClientHttp2Stream;\n        addListener(event: 'altsvc', listener: (alt: string, origin: string, stream: number) => void): this;\n        addListener(event: 'origin', listener: (origins: string[]) => void): this;\n        addListener(event: 'connect', listener: (session: ClientHttp2Session, socket: net.Socket | tls.TLSSocket) => void): this;\n        addListener(event: 'stream', listener: (stream: ClientHttp2Stream, headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void): this;\n        addListener(event: string | symbol, listener: (...args: any[]) => void): this;\n        emit(event: 'altsvc', alt: string, origin: string, stream: number): boolean;\n        emit(event: 'origin', origins: ReadonlyArray<string>): boolean;\n        emit(event: 'connect', session: ClientHttp2Session, socket: net.Socket | tls.TLSSocket): boolean;\n        emit(event: 'stream', stream: ClientHttp2Stream, headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number): boolean;\n        emit(event: string | symbol, ...args: any[]): boolean;\n        on(event: 'altsvc', listener: (alt: string, origin: string, stream: number) => void): this;\n        on(event: 'origin', listener: (origins: string[]) => void): this;\n        on(event: 'connect', listener: (session: ClientHttp2Session, socket: net.Socket | tls.TLSSocket) => void): this;\n        on(event: 'stream', listener: (stream: ClientHttp2Stream, headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void): this;\n        on(event: string | symbol, listener: (...args: any[]) => void): this;\n        once(event: 'altsvc', listener: (alt: string, origin: string, stream: number) => void): this;\n        once(event: 'origin', listener: (origins: string[]) => void): this;\n        once(event: 'connect', listener: (session: ClientHttp2Session, socket: net.Socket | tls.TLSSocket) => void): this;\n        once(event: 'stream', listener: (stream: ClientHttp2Stream, headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void): this;\n        once(event: string | symbol, listener: (...args: any[]) => void): this;\n        prependListener(event: 'altsvc', listener: (alt: string, origin: string, stream: number) => void): this;\n        prependListener(event: 'origin', listener: (origins: string[]) => void): this;\n        prependListener(event: 'connect', listener: (session: ClientHttp2Session, socket: net.Socket | tls.TLSSocket) => void): this;\n        prependListener(event: 'stream', listener: (stream: ClientHttp2Stream, headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void): this;\n        prependListener(event: string | symbol, listener: (...args: any[]) => void): this;\n        prependOnceListener(event: 'altsvc', listener: (alt: string, origin: string, stream: number) => void): this;\n        prependOnceListener(event: 'origin', listener: (origins: string[]) => void): this;\n        prependOnceListener(event: 'connect', listener: (session: ClientHttp2Session, socket: net.Socket | tls.TLSSocket) => void): this;\n        prependOnceListener(event: 'stream', listener: (stream: ClientHttp2Stream, headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void): this;\n        prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this;\n    }\n    export interface AlternativeServiceOptions {\n        origin: number | string | url.URL;\n    }\n    export interface ServerHttp2Session extends Http2Session {\n        readonly server: Http2Server | Http2SecureServer;\n        /**\n         * Submits an `ALTSVC` frame (as defined by [RFC 7838](https://tools.ietf.org/html/rfc7838)) to the connected client.\n         *\n         * ```js\n         * const http2 = require('http2');\n         *\n         * const server = http2.createServer();\n         * server.on('session', (session) => {\n         *   // Set altsvc for origin https://example.org:80\n         *   session.altsvc('h2=\":8000\"', 'https://example.org:80');\n         * });\n         *\n         * server.on('stream', (stream) => {\n         *   // Set altsvc for a specific stream\n         *   stream.session.altsvc('h2=\":8000\"', stream.id);\n         * });\n         * ```\n         *\n         * Sending an `ALTSVC` frame with a specific stream ID indicates that the alternate\n         * service is associated with the origin of the given `Http2Stream`.\n         *\n         * The `alt` and origin string _must_ contain only ASCII bytes and are\n         * strictly interpreted as a sequence of ASCII bytes. The special value `'clear'`may be passed to clear any previously set alternative service for a given\n         * domain.\n         *\n         * When a string is passed for the `originOrStream` argument, it will be parsed as\n         * a URL and the origin will be derived. For instance, the origin for the\n         * HTTP URL `'https://example.org/foo/bar'` is the ASCII string`'https://example.org'`. An error will be thrown if either the given string\n         * cannot be parsed as a URL or if a valid origin cannot be derived.\n         *\n         * A `URL` object, or any object with an `origin` property, may be passed as`originOrStream`, in which case the value of the `origin` property will be\n         * used. The value of the `origin` property _must_ be a properly serialized\n         * ASCII origin.\n         * @since v9.4.0\n         * @param alt A description of the alternative service configuration as defined by `RFC 7838`.\n         * @param originOrStream Either a URL string specifying the origin (or an `Object` with an `origin` property) or the numeric identifier of an active `Http2Stream` as given by the\n         * `http2stream.id` property.\n         */\n        altsvc(alt: string, originOrStream: number | string | url.URL | AlternativeServiceOptions): void;\n        /**\n         * Submits an `ORIGIN` frame (as defined by [RFC 8336](https://tools.ietf.org/html/rfc8336)) to the connected client\n         * to advertise the set of origins for which the server is capable of providing\n         * authoritative responses.\n         *\n         * ```js\n         * const http2 = require('http2');\n         * const options = getSecureOptionsSomehow();\n         * const server = http2.createSecureServer(options);\n         * server.on('stream', (stream) => {\n         *   stream.respond();\n         *   stream.end('ok');\n         * });\n         * server.on('session', (session) => {\n         *   session.origin('https://example.com', 'https://example.org');\n         * });\n         * ```\n         *\n         * When a string is passed as an `origin`, it will be parsed as a URL and the\n         * origin will be derived. For instance, the origin for the HTTP URL`'https://example.org/foo/bar'` is the ASCII string`'https://example.org'`. An error will be thrown if either the given\n         * string\n         * cannot be parsed as a URL or if a valid origin cannot be derived.\n         *\n         * A `URL` object, or any object with an `origin` property, may be passed as\n         * an `origin`, in which case the value of the `origin` property will be\n         * used. The value of the `origin` property _must_ be a properly serialized\n         * ASCII origin.\n         *\n         * Alternatively, the `origins` option may be used when creating a new HTTP/2\n         * server using the `http2.createSecureServer()` method:\n         *\n         * ```js\n         * const http2 = require('http2');\n         * const options = getSecureOptionsSomehow();\n         * options.origins = ['https://example.com', 'https://example.org'];\n         * const server = http2.createSecureServer(options);\n         * server.on('stream', (stream) => {\n         *   stream.respond();\n         *   stream.end('ok');\n         * });\n         * ```\n         * @since v10.12.0\n         * @param origins One or more URL Strings passed as separate arguments.\n         */\n        origin(\n            ...origins: Array<\n                | string\n                | url.URL\n                | {\n                      origin: string;\n                  }\n            >\n        ): void;\n        addListener(event: 'connect', listener: (session: ServerHttp2Session, socket: net.Socket | tls.TLSSocket) => void): this;\n        addListener(event: 'stream', listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void): this;\n        addListener(event: string | symbol, listener: (...args: any[]) => void): this;\n        emit(event: 'connect', session: ServerHttp2Session, socket: net.Socket | tls.TLSSocket): boolean;\n        emit(event: 'stream', stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number): boolean;\n        emit(event: string | symbol, ...args: any[]): boolean;\n        on(event: 'connect', listener: (session: ServerHttp2Session, socket: net.Socket | tls.TLSSocket) => void): this;\n        on(event: 'stream', listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void): this;\n        on(event: string | symbol, listener: (...args: any[]) => void): this;\n        once(event: 'connect', listener: (session: ServerHttp2Session, socket: net.Socket | tls.TLSSocket) => void): this;\n        once(event: 'stream', listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void): this;\n        once(event: string | symbol, listener: (...args: any[]) => void): this;\n        prependListener(event: 'connect', listener: (session: ServerHttp2Session, socket: net.Socket | tls.TLSSocket) => void): this;\n        prependListener(event: 'stream', listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void): this;\n        prependListener(event: string | symbol, listener: (...args: any[]) => void): this;\n        prependOnceListener(event: 'connect', listener: (session: ServerHttp2Session, socket: net.Socket | tls.TLSSocket) => void): this;\n        prependOnceListener(event: 'stream', listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void): this;\n        prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this;\n    }\n    // Http2Server\n    export interface SessionOptions {\n        maxDeflateDynamicTableSize?: number | undefined;\n        maxSessionMemory?: number | undefined;\n        maxHeaderListPairs?: number | undefined;\n        maxOutstandingPings?: number | undefined;\n        maxSendHeaderBlockLength?: number | undefined;\n        paddingStrategy?: number | undefined;\n        peerMaxConcurrentStreams?: number | undefined;\n        settings?: Settings | undefined;\n        /**\n         * Specifies a timeout in milliseconds that\n         * a server should wait when an [`'unknownProtocol'`][] is emitted. If the\n         * socket has not been destroyed by that time the server will destroy it.\n         * @default 100000\n         */\n        unknownProtocolTimeout?: number | undefined;\n        selectPadding?(frameLen: number, maxFrameLen: number): number;\n        createConnection?(authority: url.URL, option: SessionOptions): stream.Duplex;\n    }\n    export interface ClientSessionOptions extends SessionOptions {\n        maxReservedRemoteStreams?: number | undefined;\n        createConnection?: ((authority: url.URL, option: SessionOptions) => stream.Duplex) | undefined;\n        protocol?: 'http:' | 'https:' | undefined;\n    }\n    export interface ServerSessionOptions extends SessionOptions {\n        Http1IncomingMessage?: typeof IncomingMessage | undefined;\n        Http1ServerResponse?: typeof ServerResponse | undefined;\n        Http2ServerRequest?: typeof Http2ServerRequest | undefined;\n        Http2ServerResponse?: typeof Http2ServerResponse | undefined;\n    }\n    export interface SecureClientSessionOptions extends ClientSessionOptions, tls.ConnectionOptions {}\n    export interface SecureServerSessionOptions extends ServerSessionOptions, tls.TlsOptions {}\n    export interface ServerOptions extends ServerSessionOptions {}\n    export interface SecureServerOptions extends SecureServerSessionOptions {\n        allowHTTP1?: boolean | undefined;\n        origins?: string[] | undefined;\n    }\n    interface HTTP2ServerCommon {\n        setTimeout(msec?: number, callback?: () => void): this;\n        /**\n         * Throws ERR_HTTP2_INVALID_SETTING_VALUE for invalid settings values.\n         * Throws ERR_INVALID_ARG_TYPE for invalid settings argument.\n         */\n        updateSettings(settings: Settings): void;\n    }\n    export interface Http2Server extends net.Server, HTTP2ServerCommon {\n        addListener(event: 'checkContinue', listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this;\n        addListener(event: 'request', listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this;\n        addListener(event: 'session', listener: (session: ServerHttp2Session) => void): this;\n        addListener(event: 'sessionError', listener: (err: Error) => void): this;\n        addListener(event: 'stream', listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void): this;\n        addListener(event: 'timeout', listener: () => void): this;\n        addListener(event: string | symbol, listener: (...args: any[]) => void): this;\n        emit(event: 'checkContinue', request: Http2ServerRequest, response: Http2ServerResponse): boolean;\n        emit(event: 'request', request: Http2ServerRequest, response: Http2ServerResponse): boolean;\n        emit(event: 'session', session: ServerHttp2Session): boolean;\n        emit(event: 'sessionError', err: Error): boolean;\n        emit(event: 'stream', stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number): boolean;\n        emit(event: 'timeout'): boolean;\n        emit(event: string | symbol, ...args: any[]): boolean;\n        on(event: 'checkContinue', listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this;\n        on(event: 'request', listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this;\n        on(event: 'session', listener: (session: ServerHttp2Session) => void): this;\n        on(event: 'sessionError', listener: (err: Error) => void): this;\n        on(event: 'stream', listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void): this;\n        on(event: 'timeout', listener: () => void): this;\n        on(event: string | symbol, listener: (...args: any[]) => void): this;\n        once(event: 'checkContinue', listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this;\n        once(event: 'request', listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this;\n        once(event: 'session', listener: (session: ServerHttp2Session) => void): this;\n        once(event: 'sessionError', listener: (err: Error) => void): this;\n        once(event: 'stream', listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void): this;\n        once(event: 'timeout', listener: () => void): this;\n        once(event: string | symbol, listener: (...args: any[]) => void): this;\n        prependListener(event: 'checkContinue', listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this;\n        prependListener(event: 'request', listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this;\n        prependListener(event: 'session', listener: (session: ServerHttp2Session) => void): this;\n        prependListener(event: 'sessionError', listener: (err: Error) => void): this;\n        prependListener(event: 'stream', listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void): this;\n        prependListener(event: 'timeout', listener: () => void): this;\n        prependListener(event: string | symbol, listener: (...args: any[]) => void): this;\n        prependOnceListener(event: 'checkContinue', listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this;\n        prependOnceListener(event: 'request', listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this;\n        prependOnceListener(event: 'session', listener: (session: ServerHttp2Session) => void): this;\n        prependOnceListener(event: 'sessionError', listener: (err: Error) => void): this;\n        prependOnceListener(event: 'stream', listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void): this;\n        prependOnceListener(event: 'timeout', listener: () => void): this;\n        prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this;\n    }\n    export interface Http2SecureServer extends tls.Server, HTTP2ServerCommon {\n        addListener(event: 'checkContinue', listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this;\n        addListener(event: 'request', listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this;\n        addListener(event: 'session', listener: (session: ServerHttp2Session) => void): this;\n        addListener(event: 'sessionError', listener: (err: Error) => void): this;\n        addListener(event: 'stream', listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void): this;\n        addListener(event: 'timeout', listener: () => void): this;\n        addListener(event: 'unknownProtocol', listener: (socket: tls.TLSSocket) => void): this;\n        addListener(event: string | symbol, listener: (...args: any[]) => void): this;\n        emit(event: 'checkContinue', request: Http2ServerRequest, response: Http2ServerResponse): boolean;\n        emit(event: 'request', request: Http2ServerRequest, response: Http2ServerResponse): boolean;\n        emit(event: 'session', session: ServerHttp2Session): boolean;\n        emit(event: 'sessionError', err: Error): boolean;\n        emit(event: 'stream', stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number): boolean;\n        emit(event: 'timeout'): boolean;\n        emit(event: 'unknownProtocol', socket: tls.TLSSocket): boolean;\n        emit(event: string | symbol, ...args: any[]): boolean;\n        on(event: 'checkContinue', listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this;\n        on(event: 'request', listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this;\n        on(event: 'session', listener: (session: ServerHttp2Session) => void): this;\n        on(event: 'sessionError', listener: (err: Error) => void): this;\n        on(event: 'stream', listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void): this;\n        on(event: 'timeout', listener: () => void): this;\n        on(event: 'unknownProtocol', listener: (socket: tls.TLSSocket) => void): this;\n        on(event: string | symbol, listener: (...args: any[]) => void): this;\n        once(event: 'checkContinue', listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this;\n        once(event: 'request', listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this;\n        once(event: 'session', listener: (session: ServerHttp2Session) => void): this;\n        once(event: 'sessionError', listener: (err: Error) => void): this;\n        once(event: 'stream', listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void): this;\n        once(event: 'timeout', listener: () => void): this;\n        once(event: 'unknownProtocol', listener: (socket: tls.TLSSocket) => void): this;\n        once(event: string | symbol, listener: (...args: any[]) => void): this;\n        prependListener(event: 'checkContinue', listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this;\n        prependListener(event: 'request', listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this;\n        prependListener(event: 'session', listener: (session: ServerHttp2Session) => void): this;\n        prependListener(event: 'sessionError', listener: (err: Error) => void): this;\n        prependListener(event: 'stream', listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void): this;\n        prependListener(event: 'timeout', listener: () => void): this;\n        prependListener(event: 'unknownProtocol', listener: (socket: tls.TLSSocket) => void): this;\n        prependListener(event: string | symbol, listener: (...args: any[]) => void): this;\n        prependOnceListener(event: 'checkContinue', listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this;\n        prependOnceListener(event: 'request', listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this;\n        prependOnceListener(event: 'session', listener: (session: ServerHttp2Session) => void): this;\n        prependOnceListener(event: 'sessionError', listener: (err: Error) => void): this;\n        prependOnceListener(event: 'stream', listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void): this;\n        prependOnceListener(event: 'timeout', listener: () => void): this;\n        prependOnceListener(event: 'unknownProtocol', listener: (socket: tls.TLSSocket) => void): this;\n        prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this;\n    }\n    /**\n     * A `Http2ServerRequest` object is created by {@link Server} or {@link SecureServer} and passed as the first argument to the `'request'` event. It may be used to access a request status,\n     * headers, and\n     * data.\n     * @since v8.4.0\n     */\n    export class Http2ServerRequest extends stream.Readable {\n        constructor(stream: ServerHttp2Stream, headers: IncomingHttpHeaders, options: stream.ReadableOptions, rawHeaders: ReadonlyArray<string>);\n        /**\n         * The `request.aborted` property will be `true` if the request has\n         * been aborted.\n         * @since v10.1.0\n         */\n        readonly aborted: boolean;\n        /**\n         * The request authority pseudo header field. Because HTTP/2 allows requests\n         * to set either `:authority` or `host`, this value is derived from`req.headers[':authority']` if present. Otherwise, it is derived from`req.headers['host']`.\n         * @since v8.4.0\n         */\n        readonly authority: string;\n        /**\n         * See `request.socket`.\n         * @since v8.4.0\n         * @deprecated Since v13.0.0 - Use `socket`.\n         */\n        readonly connection: net.Socket | tls.TLSSocket;\n        /**\n         * The `request.complete` property will be `true` if the request has\n         * been completed, aborted, or destroyed.\n         * @since v12.10.0\n         */\n        readonly complete: boolean;\n        /**\n         * The request/response headers object.\n         *\n         * Key-value pairs of header names and values. Header names are lower-cased.\n         *\n         * ```js\n         * // Prints something like:\n         * //\n         * // { 'user-agent': 'curl/7.22.0',\n         * //   host: '127.0.0.1:8000',\n         * //   accept: '*' }\n         * console.log(request.headers);\n         * ```\n         *\n         * See `HTTP/2 Headers Object`.\n         *\n         * In HTTP/2, the request path, host name, protocol, and method are represented as\n         * special headers prefixed with the `:` character (e.g. `':path'`). These special\n         * headers will be included in the `request.headers` object. Care must be taken not\n         * to inadvertently modify these special headers or errors may occur. For instance,\n         * removing all headers from the request will cause errors to occur:\n         *\n         * ```js\n         * removeAllHeaders(request.headers);\n         * assert(request.url);   // Fails because the :path header has been removed\n         * ```\n         * @since v8.4.0\n         */\n        readonly headers: IncomingHttpHeaders;\n        /**\n         * In case of server request, the HTTP version sent by the client. In the case of\n         * client response, the HTTP version of the connected-to server. Returns`'2.0'`.\n         *\n         * Also `message.httpVersionMajor` is the first integer and`message.httpVersionMinor` is the second.\n         * @since v8.4.0\n         */\n        readonly httpVersion: string;\n        readonly httpVersionMinor: number;\n        readonly httpVersionMajor: number;\n        /**\n         * The request method as a string. Read-only. Examples: `'GET'`, `'DELETE'`.\n         * @since v8.4.0\n         */\n        readonly method: string;\n        /**\n         * The raw request/response headers list exactly as they were received.\n         *\n         * The keys and values are in the same list. It is _not_ a\n         * list of tuples. So, the even-numbered offsets are key values, and the\n         * odd-numbered offsets are the associated values.\n         *\n         * Header names are not lowercased, and duplicates are not merged.\n         *\n         * ```js\n         * // Prints something like:\n         * //\n         * // [ 'user-agent',\n         * //   'this is invalid because there can be only one',\n         * //   'User-Agent',\n         * //   'curl/7.22.0',\n         * //   'Host',\n         * //   '127.0.0.1:8000',\n         * //   'ACCEPT',\n         * //   '*' ]\n         * console.log(request.rawHeaders);\n         * ```\n         * @since v8.4.0\n         */\n        readonly rawHeaders: string[];\n        /**\n         * The raw request/response trailer keys and values exactly as they were\n         * received. Only populated at the `'end'` event.\n         * @since v8.4.0\n         */\n        readonly rawTrailers: string[];\n        /**\n         * The request scheme pseudo header field indicating the scheme\n         * portion of the target URL.\n         * @since v8.4.0\n         */\n        readonly scheme: string;\n        /**\n         * Returns a `Proxy` object that acts as a `net.Socket` (or `tls.TLSSocket`) but\n         * applies getters, setters, and methods based on HTTP/2 logic.\n         *\n         * `destroyed`, `readable`, and `writable` properties will be retrieved from and\n         * set on `request.stream`.\n         *\n         * `destroy`, `emit`, `end`, `on` and `once` methods will be called on`request.stream`.\n         *\n         * `setTimeout` method will be called on `request.stream.session`.\n         *\n         * `pause`, `read`, `resume`, and `write` will throw an error with code`ERR_HTTP2_NO_SOCKET_MANIPULATION`. See `Http2Session and Sockets` for\n         * more information.\n         *\n         * All other interactions will be routed directly to the socket. With TLS support,\n         * use `request.socket.getPeerCertificate()` to obtain the client's\n         * authentication details.\n         * @since v8.4.0\n         */\n        readonly socket: net.Socket | tls.TLSSocket;\n        /**\n         * The `Http2Stream` object backing the request.\n         * @since v8.4.0\n         */\n        readonly stream: ServerHttp2Stream;\n        /**\n         * The request/response trailers object. Only populated at the `'end'` event.\n         * @since v8.4.0\n         */\n        readonly trailers: IncomingHttpHeaders;\n        /**\n         * Request URL string. This contains only the URL that is present in the actual\n         * HTTP request. If the request is:\n         *\n         * ```http\n         * GET /status?name=ryan HTTP/1.1\n         * Accept: text/plain\n         * ```\n         *\n         * Then `request.url` will be:\n         *\n         * ```js\n         * '/status?name=ryan'\n         * ```\n         *\n         * To parse the url into its parts, `new URL()` can be used:\n         *\n         * ```console\n         * $ node\n         * > new URL('/status?name=ryan', 'http://example.com')\n         * URL {\n         *   href: 'http://example.com/status?name=ryan',\n         *   origin: 'http://example.com',\n         *   protocol: 'http:',\n         *   username: '',\n         *   password: '',\n         *   host: 'example.com',\n         *   hostname: 'example.com',\n         *   port: '',\n         *   pathname: '/status',\n         *   search: '?name=ryan',\n         *   searchParams: URLSearchParams { 'name' => 'ryan' },\n         *   hash: ''\n         * }\n         * ```\n         * @since v8.4.0\n         */\n        url: string;\n        /**\n         * Sets the `Http2Stream`'s timeout value to `msecs`. If a callback is\n         * provided, then it is added as a listener on the `'timeout'` event on\n         * the response object.\n         *\n         * If no `'timeout'` listener is added to the request, the response, or\n         * the server, then `Http2Stream` s are destroyed when they time out. If a\n         * handler is assigned to the request, the response, or the server's `'timeout'`events, timed out sockets must be handled explicitly.\n         * @since v8.4.0\n         */\n        setTimeout(msecs: number, callback?: () => void): void;\n        read(size?: number): Buffer | string | null;\n        addListener(event: 'aborted', listener: (hadError: boolean, code: number) => void): this;\n        addListener(event: 'close', listener: () => void): this;\n        addListener(event: 'data', listener: (chunk: Buffer | string) => void): this;\n        addListener(event: 'end', listener: () => void): this;\n        addListener(event: 'readable', listener: () => void): this;\n        addListener(event: 'error', listener: (err: Error) => void): this;\n        addListener(event: string | symbol, listener: (...args: any[]) => void): this;\n        emit(event: 'aborted', hadError: boolean, code: number): boolean;\n        emit(event: 'close'): boolean;\n        emit(event: 'data', chunk: Buffer | string): boolean;\n        emit(event: 'end'): boolean;\n        emit(event: 'readable'): boolean;\n        emit(event: 'error', err: Error): boolean;\n        emit(event: string | symbol, ...args: any[]): boolean;\n        on(event: 'aborted', listener: (hadError: boolean, code: number) => void): this;\n        on(event: 'close', listener: () => void): this;\n        on(event: 'data', listener: (chunk: Buffer | string) => void): this;\n        on(event: 'end', listener: () => void): this;\n        on(event: 'readable', listener: () => void): this;\n        on(event: 'error', listener: (err: Error) => void): this;\n        on(event: string | symbol, listener: (...args: any[]) => void): this;\n        once(event: 'aborted', listener: (hadError: boolean, code: number) => void): this;\n        once(event: 'close', listener: () => void): this;\n        once(event: 'data', listener: (chunk: Buffer | string) => void): this;\n        once(event: 'end', listener: () => void): this;\n        once(event: 'readable', listener: () => void): this;\n        once(event: 'error', listener: (err: Error) => void): this;\n        once(event: string | symbol, listener: (...args: any[]) => void): this;\n        prependListener(event: 'aborted', listener: (hadError: boolean, code: number) => void): this;\n        prependListener(event: 'close', listener: () => void): this;\n        prependListener(event: 'data', listener: (chunk: Buffer | string) => void): this;\n        prependListener(event: 'end', listener: () => void): this;\n        prependListener(event: 'readable', listener: () => void): this;\n        prependListener(event: 'error', listener: (err: Error) => void): this;\n        prependListener(event: string | symbol, listener: (...args: any[]) => void): this;\n        prependOnceListener(event: 'aborted', listener: (hadError: boolean, code: number) => void): this;\n        prependOnceListener(event: 'close', listener: () => void): this;\n        prependOnceListener(event: 'data', listener: (chunk: Buffer | string) => void): this;\n        prependOnceListener(event: 'end', listener: () => void): this;\n        prependOnceListener(event: 'readable', listener: () => void): this;\n        prependOnceListener(event: 'error', listener: (err: Error) => void): this;\n        prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this;\n    }\n    /**\n     * This object is created internally by an HTTP server, not by the user. It is\n     * passed as the second parameter to the `'request'` event.\n     * @since v8.4.0\n     */\n    export class Http2ServerResponse extends stream.Writable {\n        constructor(stream: ServerHttp2Stream);\n        /**\n         * See `response.socket`.\n         * @since v8.4.0\n         * @deprecated Since v13.0.0 - Use `socket`.\n         */\n        readonly connection: net.Socket | tls.TLSSocket;\n        /**\n         * Boolean value that indicates whether the response has completed. Starts\n         * as `false`. After `response.end()` executes, the value will be `true`.\n         * @since v8.4.0\n         * @deprecated Since v13.4.0,v12.16.0 - Use `writableEnded`.\n         */\n        readonly finished: boolean;\n        /**\n         * True if headers were sent, false otherwise (read-only).\n         * @since v8.4.0\n         */\n        readonly headersSent: boolean;\n        /**\n         * A reference to the original HTTP2 request object.\n         * @since v15.7.0\n         */\n        readonly req: Http2ServerRequest;\n        /**\n         * Returns a `Proxy` object that acts as a `net.Socket` (or `tls.TLSSocket`) but\n         * applies getters, setters, and methods based on HTTP/2 logic.\n         *\n         * `destroyed`, `readable`, and `writable` properties will be retrieved from and\n         * set on `response.stream`.\n         *\n         * `destroy`, `emit`, `end`, `on` and `once` methods will be called on`response.stream`.\n         *\n         * `setTimeout` method will be called on `response.stream.session`.\n         *\n         * `pause`, `read`, `resume`, and `write` will throw an error with code`ERR_HTTP2_NO_SOCKET_MANIPULATION`. See `Http2Session and Sockets` for\n         * more information.\n         *\n         * All other interactions will be routed directly to the socket.\n         *\n         * ```js\n         * const http2 = require('http2');\n         * const server = http2.createServer((req, res) => {\n         *   const ip = req.socket.remoteAddress;\n         *   const port = req.socket.remotePort;\n         *   res.end(`Your IP address is ${ip} and your source port is ${port}.`);\n         * }).listen(3000);\n         * ```\n         * @since v8.4.0\n         */\n        readonly socket: net.Socket | tls.TLSSocket;\n        /**\n         * The `Http2Stream` object backing the response.\n         * @since v8.4.0\n         */\n        readonly stream: ServerHttp2Stream;\n        /**\n         * When true, the Date header will be automatically generated and sent in\n         * the response if it is not already present in the headers. Defaults to true.\n         *\n         * This should only be disabled for testing; HTTP requires the Date header\n         * in responses.\n         * @since v8.4.0\n         */\n        sendDate: boolean;\n        /**\n         * When using implicit headers (not calling `response.writeHead()` explicitly),\n         * this property controls the status code that will be sent to the client when\n         * the headers get flushed.\n         *\n         * ```js\n         * response.statusCode = 404;\n         * ```\n         *\n         * After response header was sent to the client, this property indicates the\n         * status code which was sent out.\n         * @since v8.4.0\n         */\n        statusCode: number;\n        /**\n         * Status message is not supported by HTTP/2 (RFC 7540 8.1.2.4). It returns\n         * an empty string.\n         * @since v8.4.0\n         */\n        statusMessage: '';\n        /**\n         * This method adds HTTP trailing headers (a header but at the end of the\n         * message) to the response.\n         *\n         * Attempting to set a header field name or value that contains invalid characters\n         * will result in a `TypeError` being thrown.\n         * @since v8.4.0\n         */\n        addTrailers(trailers: OutgoingHttpHeaders): void;\n        /**\n         * This method signals to the server that all of the response headers and body\n         * have been sent; that server should consider this message complete.\n         * The method, `response.end()`, MUST be called on each response.\n         *\n         * If `data` is specified, it is equivalent to calling `response.write(data, encoding)` followed by `response.end(callback)`.\n         *\n         * If `callback` is specified, it will be called when the response stream\n         * is finished.\n         * @since v8.4.0\n         */\n        end(callback?: () => void): this;\n        end(data: string | Uint8Array, callback?: () => void): this;\n        end(data: string | Uint8Array, encoding: BufferEncoding, callback?: () => void): this;\n        /**\n         * Reads out a header that has already been queued but not sent to the client.\n         * The name is case-insensitive.\n         *\n         * ```js\n         * const contentType = response.getHeader('content-type');\n         * ```\n         * @since v8.4.0\n         */\n        getHeader(name: string): string;\n        /**\n         * Returns an array containing the unique names of the current outgoing headers.\n         * All header names are lowercase.\n         *\n         * ```js\n         * response.setHeader('Foo', 'bar');\n         * response.setHeader('Set-Cookie', ['foo=bar', 'bar=baz']);\n         *\n         * const headerNames = response.getHeaderNames();\n         * // headerNames === ['foo', 'set-cookie']\n         * ```\n         * @since v8.4.0\n         */\n        getHeaderNames(): string[];\n        /**\n         * Returns a shallow copy of the current outgoing headers. Since a shallow copy\n         * is used, array values may be mutated without additional calls to various\n         * header-related http module methods. The keys of the returned object are the\n         * header names and the values are the respective header values. All header names\n         * are lowercase.\n         *\n         * The object returned by the `response.getHeaders()` method _does not_prototypically inherit from the JavaScript `Object`. This means that typical`Object` methods such as `obj.toString()`,\n         * `obj.hasOwnProperty()`, and others\n         * are not defined and _will not work_.\n         *\n         * ```js\n         * response.setHeader('Foo', 'bar');\n         * response.setHeader('Set-Cookie', ['foo=bar', 'bar=baz']);\n         *\n         * const headers = response.getHeaders();\n         * // headers === { foo: 'bar', 'set-cookie': ['foo=bar', 'bar=baz'] }\n         * ```\n         * @since v8.4.0\n         */\n        getHeaders(): OutgoingHttpHeaders;\n        /**\n         * Returns `true` if the header identified by `name` is currently set in the\n         * outgoing headers. The header name matching is case-insensitive.\n         *\n         * ```js\n         * const hasContentType = response.hasHeader('content-type');\n         * ```\n         * @since v8.4.0\n         */\n        hasHeader(name: string): boolean;\n        /**\n         * Removes a header that has been queued for implicit sending.\n         *\n         * ```js\n         * response.removeHeader('Content-Encoding');\n         * ```\n         * @since v8.4.0\n         */\n        removeHeader(name: string): void;\n        /**\n         * Sets a single header value for implicit headers. If this header already exists\n         * in the to-be-sent headers, its value will be replaced. Use an array of strings\n         * here to send multiple headers with the same name.\n         *\n         * ```js\n         * response.setHeader('Content-Type', 'text/html; charset=utf-8');\n         * ```\n         *\n         * or\n         *\n         * ```js\n         * response.setHeader('Set-Cookie', ['type=ninja', 'language=javascript']);\n         * ```\n         *\n         * Attempting to set a header field name or value that contains invalid characters\n         * will result in a `TypeError` being thrown.\n         *\n         * When headers have been set with `response.setHeader()`, they will be merged\n         * with any headers passed to `response.writeHead()`, with the headers passed\n         * to `response.writeHead()` given precedence.\n         *\n         * ```js\n         * // Returns content-type = text/plain\n         * const server = http2.createServer((req, res) => {\n         *   res.setHeader('Content-Type', 'text/html; charset=utf-8');\n         *   res.setHeader('X-Foo', 'bar');\n         *   res.writeHead(200, { 'Content-Type': 'text/plain; charset=utf-8' });\n         *   res.end('ok');\n         * });\n         * ```\n         * @since v8.4.0\n         */\n        setHeader(name: string, value: number | string | ReadonlyArray<string>): void;\n        /**\n         * Sets the `Http2Stream`'s timeout value to `msecs`. If a callback is\n         * provided, then it is added as a listener on the `'timeout'` event on\n         * the response object.\n         *\n         * If no `'timeout'` listener is added to the request, the response, or\n         * the server, then `Http2Stream` s are destroyed when they time out. If a\n         * handler is assigned to the request, the response, or the server's `'timeout'`events, timed out sockets must be handled explicitly.\n         * @since v8.4.0\n         */\n        setTimeout(msecs: number, callback?: () => void): void;\n        /**\n         * If this method is called and `response.writeHead()` has not been called,\n         * it will switch to implicit header mode and flush the implicit headers.\n         *\n         * This sends a chunk of the response body. This method may\n         * be called multiple times to provide successive parts of the body.\n         *\n         * In the `http` module, the response body is omitted when the\n         * request is a HEAD request. Similarly, the `204` and `304` responses_must not_ include a message body.\n         *\n         * `chunk` can be a string or a buffer. If `chunk` is a string,\n         * the second parameter specifies how to encode it into a byte stream.\n         * By default the `encoding` is `'utf8'`. `callback` will be called when this chunk\n         * of data is flushed.\n         *\n         * This is the raw HTTP body and has nothing to do with higher-level multi-part\n         * body encodings that may be used.\n         *\n         * The first time `response.write()` is called, it will send the buffered\n         * header information and the first chunk of the body to the client. The second\n         * time `response.write()` is called, Node.js assumes data will be streamed,\n         * and sends the new data separately. That is, the response is buffered up to the\n         * first chunk of the body.\n         *\n         * Returns `true` if the entire data was flushed successfully to the kernel\n         * buffer. Returns `false` if all or part of the data was queued in user memory.`'drain'` will be emitted when the buffer is free again.\n         * @since v8.4.0\n         */\n        write(chunk: string | Uint8Array, callback?: (err: Error) => void): boolean;\n        write(chunk: string | Uint8Array, encoding: BufferEncoding, callback?: (err: Error) => void): boolean;\n        /**\n         * Sends a status `100 Continue` to the client, indicating that the request body\n         * should be sent. See the `'checkContinue'` event on `Http2Server` and`Http2SecureServer`.\n         * @since v8.4.0\n         */\n        writeContinue(): void;\n        /**\n         * Sends a response header to the request. The status code is a 3-digit HTTP\n         * status code, like `404`. The last argument, `headers`, are the response headers.\n         *\n         * Returns a reference to the `Http2ServerResponse`, so that calls can be chained.\n         *\n         * For compatibility with `HTTP/1`, a human-readable `statusMessage` may be\n         * passed as the second argument. However, because the `statusMessage` has no\n         * meaning within HTTP/2, the argument will have no effect and a process warning\n         * will be emitted.\n         *\n         * ```js\n         * const body = 'hello world';\n         * response.writeHead(200, {\n         *   'Content-Length': Buffer.byteLength(body),\n         *   'Content-Type': 'text/plain; charset=utf-8',\n         * });\n         * ```\n         *\n         * `Content-Length` is given in bytes not characters. The`Buffer.byteLength()` API may be used to determine the number of bytes in a\n         * given encoding. On outbound messages, Node.js does not check if Content-Length\n         * and the length of the body being transmitted are equal or not. However, when\n         * receiving messages, Node.js will automatically reject messages when the`Content-Length` does not match the actual payload size.\n         *\n         * This method may be called at most one time on a message before `response.end()` is called.\n         *\n         * If `response.write()` or `response.end()` are called before calling\n         * this, the implicit/mutable headers will be calculated and call this function.\n         *\n         * When headers have been set with `response.setHeader()`, they will be merged\n         * with any headers passed to `response.writeHead()`, with the headers passed\n         * to `response.writeHead()` given precedence.\n         *\n         * ```js\n         * // Returns content-type = text/plain\n         * const server = http2.createServer((req, res) => {\n         *   res.setHeader('Content-Type', 'text/html; charset=utf-8');\n         *   res.setHeader('X-Foo', 'bar');\n         *   res.writeHead(200, { 'Content-Type': 'text/plain; charset=utf-8' });\n         *   res.end('ok');\n         * });\n         * ```\n         *\n         * Attempting to set a header field name or value that contains invalid characters\n         * will result in a `TypeError` being thrown.\n         * @since v8.4.0\n         */\n        writeHead(statusCode: number, headers?: OutgoingHttpHeaders): this;\n        writeHead(statusCode: number, statusMessage: string, headers?: OutgoingHttpHeaders): this;\n        /**\n         * Call `http2stream.pushStream()` with the given headers, and wrap the\n         * given `Http2Stream` on a newly created `Http2ServerResponse` as the callback\n         * parameter if successful. When `Http2ServerRequest` is closed, the callback is\n         * called with an error `ERR_HTTP2_INVALID_STREAM`.\n         * @since v8.4.0\n         * @param headers An object describing the headers\n         * @param callback Called once `http2stream.pushStream()` is finished, or either when the attempt to create the pushed `Http2Stream` has failed or has been rejected, or the state of\n         * `Http2ServerRequest` is closed prior to calling the `http2stream.pushStream()` method\n         */\n        createPushResponse(headers: OutgoingHttpHeaders, callback: (err: Error | null, res: Http2ServerResponse) => void): void;\n        addListener(event: 'close', listener: () => void): this;\n        addListener(event: 'drain', listener: () => void): this;\n        addListener(event: 'error', listener: (error: Error) => void): this;\n        addListener(event: 'finish', listener: () => void): this;\n        addListener(event: 'pipe', listener: (src: stream.Readable) => void): this;\n        addListener(event: 'unpipe', listener: (src: stream.Readable) => void): this;\n        addListener(event: string | symbol, listener: (...args: any[]) => void): this;\n        emit(event: 'close'): boolean;\n        emit(event: 'drain'): boolean;\n        emit(event: 'error', error: Error): boolean;\n        emit(event: 'finish'): boolean;\n        emit(event: 'pipe', src: stream.Readable): boolean;\n        emit(event: 'unpipe', src: stream.Readable): boolean;\n        emit(event: string | symbol, ...args: any[]): boolean;\n        on(event: 'close', listener: () => void): this;\n        on(event: 'drain', listener: () => void): this;\n        on(event: 'error', listener: (error: Error) => void): this;\n        on(event: 'finish', listener: () => void): this;\n        on(event: 'pipe', listener: (src: stream.Readable) => void): this;\n        on(event: 'unpipe', listener: (src: stream.Readable) => void): this;\n        on(event: string | symbol, listener: (...args: any[]) => void): this;\n        once(event: 'close', listener: () => void): this;\n        once(event: 'drain', listener: () => void): this;\n        once(event: 'error', listener: (error: Error) => void): this;\n        once(event: 'finish', listener: () => void): this;\n        once(event: 'pipe', listener: (src: stream.Readable) => void): this;\n        once(event: 'unpipe', listener: (src: stream.Readable) => void): this;\n        once(event: string | symbol, listener: (...args: any[]) => void): this;\n        prependListener(event: 'close', listener: () => void): this;\n        prependListener(event: 'drain', listener: () => void): this;\n        prependListener(event: 'error', listener: (error: Error) => void): this;\n        prependListener(event: 'finish', listener: () => void): this;\n        prependListener(event: 'pipe', listener: (src: stream.Readable) => void): this;\n        prependListener(event: 'unpipe', listener: (src: stream.Readable) => void): this;\n        prependListener(event: string | symbol, listener: (...args: any[]) => void): this;\n        prependOnceListener(event: 'close', listener: () => void): this;\n        prependOnceListener(event: 'drain', listener: () => void): this;\n        prependOnceListener(event: 'error', listener: (error: Error) => void): this;\n        prependOnceListener(event: 'finish', listener: () => void): this;\n        prependOnceListener(event: 'pipe', listener: (src: stream.Readable) => void): this;\n        prependOnceListener(event: 'unpipe', listener: (src: stream.Readable) => void): this;\n        prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this;\n    }\n    export namespace constants {\n        const NGHTTP2_SESSION_SERVER: number;\n        const NGHTTP2_SESSION_CLIENT: number;\n        const NGHTTP2_STREAM_STATE_IDLE: number;\n        const NGHTTP2_STREAM_STATE_OPEN: number;\n        const NGHTTP2_STREAM_STATE_RESERVED_LOCAL: number;\n        const NGHTTP2_STREAM_STATE_RESERVED_REMOTE: number;\n        const NGHTTP2_STREAM_STATE_HALF_CLOSED_LOCAL: number;\n        const NGHTTP2_STREAM_STATE_HALF_CLOSED_REMOTE: number;\n        const NGHTTP2_STREAM_STATE_CLOSED: number;\n        const NGHTTP2_NO_ERROR: number;\n        const NGHTTP2_PROTOCOL_ERROR: number;\n        const NGHTTP2_INTERNAL_ERROR: number;\n        const NGHTTP2_FLOW_CONTROL_ERROR: number;\n        const NGHTTP2_SETTINGS_TIMEOUT: number;\n        const NGHTTP2_STREAM_CLOSED: number;\n        const NGHTTP2_FRAME_SIZE_ERROR: number;\n        const NGHTTP2_REFUSED_STREAM: number;\n        const NGHTTP2_CANCEL: number;\n        const NGHTTP2_COMPRESSION_ERROR: number;\n        const NGHTTP2_CONNECT_ERROR: number;\n        const NGHTTP2_ENHANCE_YOUR_CALM: number;\n        const NGHTTP2_INADEQUATE_SECURITY: number;\n        const NGHTTP2_HTTP_1_1_REQUIRED: number;\n        const NGHTTP2_ERR_FRAME_SIZE_ERROR: number;\n        const NGHTTP2_FLAG_NONE: number;\n        const NGHTTP2_FLAG_END_STREAM: number;\n        const NGHTTP2_FLAG_END_HEADERS: number;\n        const NGHTTP2_FLAG_ACK: number;\n        const NGHTTP2_FLAG_PADDED: number;\n        const NGHTTP2_FLAG_PRIORITY: number;\n        const DEFAULT_SETTINGS_HEADER_TABLE_SIZE: number;\n        const DEFAULT_SETTINGS_ENABLE_PUSH: number;\n        const DEFAULT_SETTINGS_INITIAL_WINDOW_SIZE: number;\n        const DEFAULT_SETTINGS_MAX_FRAME_SIZE: number;\n        const MAX_MAX_FRAME_SIZE: number;\n        const MIN_MAX_FRAME_SIZE: number;\n        const MAX_INITIAL_WINDOW_SIZE: number;\n        const NGHTTP2_DEFAULT_WEIGHT: number;\n        const NGHTTP2_SETTINGS_HEADER_TABLE_SIZE: number;\n        const NGHTTP2_SETTINGS_ENABLE_PUSH: number;\n        const NGHTTP2_SETTINGS_MAX_CONCURRENT_STREAMS: number;\n        const NGHTTP2_SETTINGS_INITIAL_WINDOW_SIZE: number;\n        const NGHTTP2_SETTINGS_MAX_FRAME_SIZE: number;\n        const NGHTTP2_SETTINGS_MAX_HEADER_LIST_SIZE: number;\n        const PADDING_STRATEGY_NONE: number;\n        const PADDING_STRATEGY_MAX: number;\n        const PADDING_STRATEGY_CALLBACK: number;\n        const HTTP2_HEADER_STATUS: string;\n        const HTTP2_HEADER_METHOD: string;\n        const HTTP2_HEADER_AUTHORITY: string;\n        const HTTP2_HEADER_SCHEME: string;\n        const HTTP2_HEADER_PATH: string;\n        const HTTP2_HEADER_ACCEPT_CHARSET: string;\n        const HTTP2_HEADER_ACCEPT_ENCODING: string;\n        const HTTP2_HEADER_ACCEPT_LANGUAGE: string;\n        const HTTP2_HEADER_ACCEPT_RANGES: string;\n        const HTTP2_HEADER_ACCEPT: string;\n        const HTTP2_HEADER_ACCESS_CONTROL_ALLOW_ORIGIN: string;\n        const HTTP2_HEADER_AGE: string;\n        const HTTP2_HEADER_ALLOW: string;\n        const HTTP2_HEADER_AUTHORIZATION: string;\n        const HTTP2_HEADER_CACHE_CONTROL: string;\n        const HTTP2_HEADER_CONNECTION: string;\n        const HTTP2_HEADER_CONTENT_DISPOSITION: string;\n        const HTTP2_HEADER_CONTENT_ENCODING: string;\n        const HTTP2_HEADER_CONTENT_LANGUAGE: string;\n        const HTTP2_HEADER_CONTENT_LENGTH: string;\n        const HTTP2_HEADER_CONTENT_LOCATION: string;\n        const HTTP2_HEADER_CONTENT_MD5: string;\n        const HTTP2_HEADER_CONTENT_RANGE: string;\n        const HTTP2_HEADER_CONTENT_TYPE: string;\n        const HTTP2_HEADER_COOKIE: string;\n        const HTTP2_HEADER_DATE: string;\n        const HTTP2_HEADER_ETAG: string;\n        const HTTP2_HEADER_EXPECT: string;\n        const HTTP2_HEADER_EXPIRES: string;\n        const HTTP2_HEADER_FROM: string;\n        const HTTP2_HEADER_HOST: string;\n        const HTTP2_HEADER_IF_MATCH: string;\n        const HTTP2_HEADER_IF_MODIFIED_SINCE: string;\n        const HTTP2_HEADER_IF_NONE_MATCH: string;\n        const HTTP2_HEADER_IF_RANGE: string;\n        const HTTP2_HEADER_IF_UNMODIFIED_SINCE: string;\n        const HTTP2_HEADER_LAST_MODIFIED: string;\n        const HTTP2_HEADER_LINK: string;\n        const HTTP2_HEADER_LOCATION: string;\n        const HTTP2_HEADER_MAX_FORWARDS: string;\n        const HTTP2_HEADER_PREFER: string;\n        const HTTP2_HEADER_PROXY_AUTHENTICATE: string;\n        const HTTP2_HEADER_PROXY_AUTHORIZATION: string;\n        const HTTP2_HEADER_RANGE: string;\n        const HTTP2_HEADER_REFERER: string;\n        const HTTP2_HEADER_REFRESH: string;\n        const HTTP2_HEADER_RETRY_AFTER: string;\n        const HTTP2_HEADER_SERVER: string;\n        const HTTP2_HEADER_SET_COOKIE: string;\n        const HTTP2_HEADER_STRICT_TRANSPORT_SECURITY: string;\n        const HTTP2_HEADER_TRANSFER_ENCODING: string;\n        const HTTP2_HEADER_TE: string;\n        const HTTP2_HEADER_UPGRADE: string;\n        const HTTP2_HEADER_USER_AGENT: string;\n        const HTTP2_HEADER_VARY: string;\n        const HTTP2_HEADER_VIA: string;\n        const HTTP2_HEADER_WWW_AUTHENTICATE: string;\n        const HTTP2_HEADER_HTTP2_SETTINGS: string;\n        const HTTP2_HEADER_KEEP_ALIVE: string;\n        const HTTP2_HEADER_PROXY_CONNECTION: string;\n        const HTTP2_METHOD_ACL: string;\n        const HTTP2_METHOD_BASELINE_CONTROL: string;\n        const HTTP2_METHOD_BIND: string;\n        const HTTP2_METHOD_CHECKIN: string;\n        const HTTP2_METHOD_CHECKOUT: string;\n        const HTTP2_METHOD_CONNECT: string;\n        const HTTP2_METHOD_COPY: string;\n        const HTTP2_METHOD_DELETE: string;\n        const HTTP2_METHOD_GET: string;\n        const HTTP2_METHOD_HEAD: string;\n        const HTTP2_METHOD_LABEL: string;\n        const HTTP2_METHOD_LINK: string;\n        const HTTP2_METHOD_LOCK: string;\n        const HTTP2_METHOD_MERGE: string;\n        const HTTP2_METHOD_MKACTIVITY: string;\n        const HTTP2_METHOD_MKCALENDAR: string;\n        const HTTP2_METHOD_MKCOL: string;\n        const HTTP2_METHOD_MKREDIRECTREF: string;\n        const HTTP2_METHOD_MKWORKSPACE: string;\n        const HTTP2_METHOD_MOVE: string;\n        const HTTP2_METHOD_OPTIONS: string;\n        const HTTP2_METHOD_ORDERPATCH: string;\n        const HTTP2_METHOD_PATCH: string;\n        const HTTP2_METHOD_POST: string;\n        const HTTP2_METHOD_PRI: string;\n        const HTTP2_METHOD_PROPFIND: string;\n        const HTTP2_METHOD_PROPPATCH: string;\n        const HTTP2_METHOD_PUT: string;\n        const HTTP2_METHOD_REBIND: string;\n        const HTTP2_METHOD_REPORT: string;\n        const HTTP2_METHOD_SEARCH: string;\n        const HTTP2_METHOD_TRACE: string;\n        const HTTP2_METHOD_UNBIND: string;\n        const HTTP2_METHOD_UNCHECKOUT: string;\n        const HTTP2_METHOD_UNLINK: string;\n        const HTTP2_METHOD_UNLOCK: string;\n        const HTTP2_METHOD_UPDATE: string;\n        const HTTP2_METHOD_UPDATEREDIRECTREF: string;\n        const HTTP2_METHOD_VERSION_CONTROL: string;\n        const HTTP_STATUS_CONTINUE: number;\n        const HTTP_STATUS_SWITCHING_PROTOCOLS: number;\n        const HTTP_STATUS_PROCESSING: number;\n        const HTTP_STATUS_OK: number;\n        const HTTP_STATUS_CREATED: number;\n        const HTTP_STATUS_ACCEPTED: number;\n        const HTTP_STATUS_NON_AUTHORITATIVE_INFORMATION: number;\n        const HTTP_STATUS_NO_CONTENT: number;\n        const HTTP_STATUS_RESET_CONTENT: number;\n        const HTTP_STATUS_PARTIAL_CONTENT: number;\n        const HTTP_STATUS_MULTI_STATUS: number;\n        const HTTP_STATUS_ALREADY_REPORTED: number;\n        const HTTP_STATUS_IM_USED: number;\n        const HTTP_STATUS_MULTIPLE_CHOICES: number;\n        const HTTP_STATUS_MOVED_PERMANENTLY: number;\n        const HTTP_STATUS_FOUND: number;\n        const HTTP_STATUS_SEE_OTHER: number;\n        const HTTP_STATUS_NOT_MODIFIED: number;\n        const HTTP_STATUS_USE_PROXY: number;\n        const HTTP_STATUS_TEMPORARY_REDIRECT: number;\n        const HTTP_STATUS_PERMANENT_REDIRECT: number;\n        const HTTP_STATUS_BAD_REQUEST: number;\n        const HTTP_STATUS_UNAUTHORIZED: number;\n        const HTTP_STATUS_PAYMENT_REQUIRED: number;\n        const HTTP_STATUS_FORBIDDEN: number;\n        const HTTP_STATUS_NOT_FOUND: number;\n        const HTTP_STATUS_METHOD_NOT_ALLOWED: number;\n        const HTTP_STATUS_NOT_ACCEPTABLE: number;\n        const HTTP_STATUS_PROXY_AUTHENTICATION_REQUIRED: number;\n        const HTTP_STATUS_REQUEST_TIMEOUT: number;\n        const HTTP_STATUS_CONFLICT: number;\n        const HTTP_STATUS_GONE: number;\n        const HTTP_STATUS_LENGTH_REQUIRED: number;\n        const HTTP_STATUS_PRECONDITION_FAILED: number;\n        const HTTP_STATUS_PAYLOAD_TOO_LARGE: number;\n        const HTTP_STATUS_URI_TOO_LONG: number;\n        const HTTP_STATUS_UNSUPPORTED_MEDIA_TYPE: number;\n        const HTTP_STATUS_RANGE_NOT_SATISFIABLE: number;\n        const HTTP_STATUS_EXPECTATION_FAILED: number;\n        const HTTP_STATUS_TEAPOT: number;\n        const HTTP_STATUS_MISDIRECTED_REQUEST: number;\n        const HTTP_STATUS_UNPROCESSABLE_ENTITY: number;\n        const HTTP_STATUS_LOCKED: number;\n        const HTTP_STATUS_FAILED_DEPENDENCY: number;\n        const HTTP_STATUS_UNORDERED_COLLECTION: number;\n        const HTTP_STATUS_UPGRADE_REQUIRED: number;\n        const HTTP_STATUS_PRECONDITION_REQUIRED: number;\n        const HTTP_STATUS_TOO_MANY_REQUESTS: number;\n        const HTTP_STATUS_REQUEST_HEADER_FIELDS_TOO_LARGE: number;\n        const HTTP_STATUS_UNAVAILABLE_FOR_LEGAL_REASONS: number;\n        const HTTP_STATUS_INTERNAL_SERVER_ERROR: number;\n        const HTTP_STATUS_NOT_IMPLEMENTED: number;\n        const HTTP_STATUS_BAD_GATEWAY: number;\n        const HTTP_STATUS_SERVICE_UNAVAILABLE: number;\n        const HTTP_STATUS_GATEWAY_TIMEOUT: number;\n        const HTTP_STATUS_HTTP_VERSION_NOT_SUPPORTED: number;\n        const HTTP_STATUS_VARIANT_ALSO_NEGOTIATES: number;\n        const HTTP_STATUS_INSUFFICIENT_STORAGE: number;\n        const HTTP_STATUS_LOOP_DETECTED: number;\n        const HTTP_STATUS_BANDWIDTH_LIMIT_EXCEEDED: number;\n        const HTTP_STATUS_NOT_EXTENDED: number;\n        const HTTP_STATUS_NETWORK_AUTHENTICATION_REQUIRED: number;\n    }\n    /**\n     * This symbol can be set as a property on the HTTP/2 headers object with\n     * an array value in order to provide a list of headers considered sensitive.\n     */\n    export const sensitiveHeaders: symbol;\n    /**\n     * Returns an object containing the default settings for an `Http2Session`instance. This method returns a new object instance every time it is called\n     * so instances returned may be safely modified for use.\n     * @since v8.4.0\n     */\n    export function getDefaultSettings(): Settings;\n    /**\n     * Returns a `Buffer` instance containing serialized representation of the given\n     * HTTP/2 settings as specified in the [HTTP/2](https://tools.ietf.org/html/rfc7540) specification. This is intended\n     * for use with the `HTTP2-Settings` header field.\n     *\n     * ```js\n     * const http2 = require('http2');\n     *\n     * const packed = http2.getPackedSettings({ enablePush: false });\n     *\n     * console.log(packed.toString('base64'));\n     * // Prints: AAIAAAAA\n     * ```\n     * @since v8.4.0\n     */\n    export function getPackedSettings(settings: Settings): Buffer;\n    /**\n     * Returns a `HTTP/2 Settings Object` containing the deserialized settings from\n     * the given `Buffer` as generated by `http2.getPackedSettings()`.\n     * @since v8.4.0\n     * @param buf The packed settings.\n     */\n    export function getUnpackedSettings(buf: Uint8Array): Settings;\n    /**\n     * Returns a `net.Server` instance that creates and manages `Http2Session`instances.\n     *\n     * Since there are no browsers known that support [unencrypted HTTP/2](https://http2.github.io/faq/#does-http2-require-encryption), the use of {@link createSecureServer} is necessary when\n     * communicating\n     * with browser clients.\n     *\n     * ```js\n     * const http2 = require('http2');\n     *\n     * // Create an unencrypted HTTP/2 server.\n     * // Since there are no browsers known that support\n     * // unencrypted HTTP/2, the use of `http2.createSecureServer()`\n     * // is necessary when communicating with browser clients.\n     * const server = http2.createServer();\n     *\n     * server.on('stream', (stream, headers) => {\n     *   stream.respond({\n     *     'content-type': 'text/html; charset=utf-8',\n     *     ':status': 200\n     *   });\n     *   stream.end('<h1>Hello World</h1>');\n     * });\n     *\n     * server.listen(80);\n     * ```\n     * @since v8.4.0\n     * @param onRequestHandler See `Compatibility API`\n     */\n    export function createServer(onRequestHandler?: (request: Http2ServerRequest, response: Http2ServerResponse) => void): Http2Server;\n    export function createServer(options: ServerOptions, onRequestHandler?: (request: Http2ServerRequest, response: Http2ServerResponse) => void): Http2Server;\n    /**\n     * Returns a `tls.Server` instance that creates and manages `Http2Session`instances.\n     *\n     * ```js\n     * const http2 = require('http2');\n     * const fs = require('fs');\n     *\n     * const options = {\n     *   key: fs.readFileSync('server-key.pem'),\n     *   cert: fs.readFileSync('server-cert.pem')\n     * };\n     *\n     * // Create a secure HTTP/2 server\n     * const server = http2.createSecureServer(options);\n     *\n     * server.on('stream', (stream, headers) => {\n     *   stream.respond({\n     *     'content-type': 'text/html; charset=utf-8',\n     *     ':status': 200\n     *   });\n     *   stream.end('<h1>Hello World</h1>');\n     * });\n     *\n     * server.listen(80);\n     * ```\n     * @since v8.4.0\n     * @param onRequestHandler See `Compatibility API`\n     */\n    export function createSecureServer(onRequestHandler?: (request: Http2ServerRequest, response: Http2ServerResponse) => void): Http2SecureServer;\n    export function createSecureServer(options: SecureServerOptions, onRequestHandler?: (request: Http2ServerRequest, response: Http2ServerResponse) => void): Http2SecureServer;\n    /**\n     * Returns a `ClientHttp2Session` instance.\n     *\n     * ```js\n     * const http2 = require('http2');\n     * const client = http2.connect('https://localhost:1234');\n     *\n     * // Use the client\n     *\n     * client.close();\n     * ```\n     * @since v8.4.0\n     * @param authority The remote HTTP/2 server to connect to. This must be in the form of a minimal, valid URL with the `http://` or `https://` prefix, host name, and IP port (if a non-default port\n     * is used). Userinfo (user ID and password), path, querystring, and fragment details in the URL will be ignored.\n     * @param listener Will be registered as a one-time listener of the {@link 'connect'} event.\n     */\n    export function connect(authority: string | url.URL, listener: (session: ClientHttp2Session, socket: net.Socket | tls.TLSSocket) => void): ClientHttp2Session;\n    export function connect(\n        authority: string | url.URL,\n        options?: ClientSessionOptions | SecureClientSessionOptions,\n        listener?: (session: ClientHttp2Session, socket: net.Socket | tls.TLSSocket) => void\n    ): ClientHttp2Session;\n}\ndeclare module 'node:http2' {\n    export * from 'http2';\n}\n"
    },
    {
      "path": "/node_modules/@types/node/https.d.ts",
      "content": "/**\n * HTTPS is the HTTP protocol over TLS/SSL. In Node.js this is implemented as a\n * separate module.\n * @see [source](https://github.com/nodejs/node/blob/v16.9.0/lib/https.js)\n */\ndeclare module 'https' {\n    import { Duplex } from 'node:stream';\n    import * as tls from 'node:tls';\n    import * as http from 'node:http';\n    import { URL } from 'node:url';\n    type ServerOptions<\n        Request extends typeof http.IncomingMessage = typeof http.IncomingMessage,\n        Response extends typeof http.ServerResponse = typeof http.ServerResponse,\n    > = tls.SecureContextOptions & tls.TlsOptions & http.ServerOptions<Request, Response>;\n    type RequestOptions = http.RequestOptions &\n        tls.SecureContextOptions & {\n            checkServerIdentity?: typeof tls.checkServerIdentity | undefined;\n            rejectUnauthorized?: boolean | undefined; // Defaults to true\n            servername?: string | undefined; // SNI TLS Extension\n        };\n    interface AgentOptions extends http.AgentOptions, tls.ConnectionOptions {\n        rejectUnauthorized?: boolean | undefined;\n        maxCachedSessions?: number | undefined;\n    }\n    /**\n     * An `Agent` object for HTTPS similar to `http.Agent`. See {@link request} for more information.\n     * @since v0.4.5\n     */\n    class Agent extends http.Agent {\n        constructor(options?: AgentOptions);\n        options: AgentOptions;\n    }\n    interface Server<\n        Request extends typeof http.IncomingMessage = typeof http.IncomingMessage,\n        Response extends typeof http.ServerResponse = typeof http.ServerResponse,\n    > extends http.Server<Request, Response> {}\n    /**\n     * See `http.Server` for more information.\n     * @since v0.3.4\n     */\n    class Server<\n        Request extends typeof http.IncomingMessage = typeof http.IncomingMessage,\n        Response extends typeof http.ServerResponse = typeof http.ServerResponse,\n    > extends tls.Server {\n        constructor(requestListener?: http.RequestListener<Request, Response>);\n        constructor(\n            options: ServerOptions<Request, Response>,\n            requestListener?: http.RequestListener<Request, Response>,\n        );\n        addListener(event: string, listener: (...args: any[]) => void): this;\n        addListener(event: 'keylog', listener: (line: Buffer, tlsSocket: tls.TLSSocket) => void): this;\n        addListener(\n            event: 'newSession',\n            listener: (sessionId: Buffer, sessionData: Buffer, callback: (err: Error, resp: Buffer) => void) => void,\n        ): this;\n        addListener(\n            event: 'OCSPRequest',\n            listener: (\n                certificate: Buffer,\n                issuer: Buffer,\n                callback: (err: Error | null, resp: Buffer) => void,\n            ) => void,\n        ): this;\n        addListener(\n            event: 'resumeSession',\n            listener: (sessionId: Buffer, callback: (err: Error, sessionData: Buffer) => void) => void,\n        ): this;\n        addListener(event: 'secureConnection', listener: (tlsSocket: tls.TLSSocket) => void): this;\n        addListener(event: 'tlsClientError', listener: (err: Error, tlsSocket: tls.TLSSocket) => void): this;\n        addListener(event: 'close', listener: () => void): this;\n        addListener(event: 'connection', listener: (socket: Duplex) => void): this;\n        addListener(event: 'error', listener: (err: Error) => void): this;\n        addListener(event: 'listening', listener: () => void): this;\n        addListener(event: 'checkContinue', listener: http.RequestListener<Request, Response>): this;\n        addListener(event: 'checkExpectation', listener: http.RequestListener<Request, Response>): this;\n        addListener(event: 'clientError', listener: (err: Error, socket: Duplex) => void): this;\n        addListener(\n            event: 'connect',\n            listener: (req: InstanceType<Request>, socket: Duplex, head: Buffer) => void,\n        ): this;\n        addListener(event: 'request', listener: http.RequestListener<Request, Response>): this;\n        addListener(\n            event: 'upgrade',\n            listener: (req: InstanceType<Request>, socket: Duplex, head: Buffer) => void,\n        ): this;\n        emit(event: string, ...args: any[]): boolean;\n        emit(event: 'keylog', line: Buffer, tlsSocket: tls.TLSSocket): boolean;\n        emit(\n            event: 'newSession',\n            sessionId: Buffer,\n            sessionData: Buffer,\n            callback: (err: Error, resp: Buffer) => void,\n        ): boolean;\n        emit(\n            event: 'OCSPRequest',\n            certificate: Buffer,\n            issuer: Buffer,\n            callback: (err: Error | null, resp: Buffer) => void,\n        ): boolean;\n        emit(event: 'resumeSession', sessionId: Buffer, callback: (err: Error, sessionData: Buffer) => void): boolean;\n        emit(event: 'secureConnection', tlsSocket: tls.TLSSocket): boolean;\n        emit(event: 'tlsClientError', err: Error, tlsSocket: tls.TLSSocket): boolean;\n        emit(event: 'close'): boolean;\n        emit(event: 'connection', socket: Duplex): boolean;\n        emit(event: 'error', err: Error): boolean;\n        emit(event: 'listening'): boolean;\n        emit(\n            event: 'checkContinue',\n            req: InstanceType<Request>,\n            res: InstanceType<Response> & { req: InstanceType<Request> },\n        ): boolean;\n        emit(\n            event: 'checkExpectation',\n            req: InstanceType<Request>,\n            res: InstanceType<Response> & { req: InstanceType<Request> },\n        ): boolean;\n        emit(event: 'clientError', err: Error, socket: Duplex): boolean;\n        emit(event: 'connect', req: InstanceType<Request>, socket: Duplex, head: Buffer): boolean;\n        emit(\n            event: 'request',\n            req: InstanceType<Request>,\n            res: InstanceType<Response> & { req: InstanceType<Request> },\n        ): boolean;\n        emit(event: 'upgrade', req: InstanceType<Request>, socket: Duplex, head: Buffer): boolean;\n        on(event: string, listener: (...args: any[]) => void): this;\n        on(event: 'keylog', listener: (line: Buffer, tlsSocket: tls.TLSSocket) => void): this;\n        on(\n            event: 'newSession',\n            listener: (sessionId: Buffer, sessionData: Buffer, callback: (err: Error, resp: Buffer) => void) => void,\n        ): this;\n        on(\n            event: 'OCSPRequest',\n            listener: (\n                certificate: Buffer,\n                issuer: Buffer,\n                callback: (err: Error | null, resp: Buffer) => void,\n            ) => void,\n        ): this;\n        on(\n            event: 'resumeSession',\n            listener: (sessionId: Buffer, callback: (err: Error, sessionData: Buffer) => void) => void,\n        ): this;\n        on(event: 'secureConnection', listener: (tlsSocket: tls.TLSSocket) => void): this;\n        on(event: 'tlsClientError', listener: (err: Error, tlsSocket: tls.TLSSocket) => void): this;\n        on(event: 'close', listener: () => void): this;\n        on(event: 'connection', listener: (socket: Duplex) => void): this;\n        on(event: 'error', listener: (err: Error) => void): this;\n        on(event: 'listening', listener: () => void): this;\n        on(event: 'checkContinue', listener: http.RequestListener<Request, Response>): this;\n        on(event: 'checkExpectation', listener: http.RequestListener<Request, Response>): this;\n        on(event: 'clientError', listener: (err: Error, socket: Duplex) => void): this;\n        on(event: 'connect', listener: (req: InstanceType<Request>, socket: Duplex, head: Buffer) => void): this;\n        on(event: 'request', listener: http.RequestListener<Request, Response>): this;\n        on(event: 'upgrade', listener: (req: InstanceType<Request>, socket: Duplex, head: Buffer) => void): this;\n        once(event: string, listener: (...args: any[]) => void): this;\n        once(event: 'keylog', listener: (line: Buffer, tlsSocket: tls.TLSSocket) => void): this;\n        once(\n            event: 'newSession',\n            listener: (sessionId: Buffer, sessionData: Buffer, callback: (err: Error, resp: Buffer) => void) => void,\n        ): this;\n        once(\n            event: 'OCSPRequest',\n            listener: (\n                certificate: Buffer,\n                issuer: Buffer,\n                callback: (err: Error | null, resp: Buffer) => void,\n            ) => void,\n        ): this;\n        once(\n            event: 'resumeSession',\n            listener: (sessionId: Buffer, callback: (err: Error, sessionData: Buffer) => void) => void,\n        ): this;\n        once(event: 'secureConnection', listener: (tlsSocket: tls.TLSSocket) => void): this;\n        once(event: 'tlsClientError', listener: (err: Error, tlsSocket: tls.TLSSocket) => void): this;\n        once(event: 'close', listener: () => void): this;\n        once(event: 'connection', listener: (socket: Duplex) => void): this;\n        once(event: 'error', listener: (err: Error) => void): this;\n        once(event: 'listening', listener: () => void): this;\n        once(event: 'checkContinue', listener: http.RequestListener<Request, Response>): this;\n        once(event: 'checkExpectation', listener: http.RequestListener<Request, Response>): this;\n        once(event: 'clientError', listener: (err: Error, socket: Duplex) => void): this;\n        once(event: 'connect', listener: (req: InstanceType<Request>, socket: Duplex, head: Buffer) => void): this;\n        once(event: 'request', listener: http.RequestListener<Request, Response>): this;\n        once(event: 'upgrade', listener: (req: InstanceType<Request>, socket: Duplex, head: Buffer) => void): this;\n        prependListener(event: string, listener: (...args: any[]) => void): this;\n        prependListener(event: 'keylog', listener: (line: Buffer, tlsSocket: tls.TLSSocket) => void): this;\n        prependListener(\n            event: 'newSession',\n            listener: (sessionId: Buffer, sessionData: Buffer, callback: (err: Error, resp: Buffer) => void) => void,\n        ): this;\n        prependListener(\n            event: 'OCSPRequest',\n            listener: (\n                certificate: Buffer,\n                issuer: Buffer,\n                callback: (err: Error | null, resp: Buffer) => void,\n            ) => void,\n        ): this;\n        prependListener(\n            event: 'resumeSession',\n            listener: (sessionId: Buffer, callback: (err: Error, sessionData: Buffer) => void) => void,\n        ): this;\n        prependListener(event: 'secureConnection', listener: (tlsSocket: tls.TLSSocket) => void): this;\n        prependListener(event: 'tlsClientError', listener: (err: Error, tlsSocket: tls.TLSSocket) => void): this;\n        prependListener(event: 'close', listener: () => void): this;\n        prependListener(event: 'connection', listener: (socket: Duplex) => void): this;\n        prependListener(event: 'error', listener: (err: Error) => void): this;\n        prependListener(event: 'listening', listener: () => void): this;\n        prependListener(event: 'checkContinue', listener: http.RequestListener<Request, Response>): this;\n        prependListener(event: 'checkExpectation', listener: http.RequestListener<Request, Response>): this;\n        prependListener(event: 'clientError', listener: (err: Error, socket: Duplex) => void): this;\n        prependListener(\n            event: 'connect',\n            listener: (req: InstanceType<Request>, socket: Duplex, head: Buffer) => void,\n        ): this;\n        prependListener(event: 'request', listener: http.RequestListener<Request, Response>): this;\n        prependListener(\n            event: 'upgrade',\n            listener: (req: InstanceType<Request>, socket: Duplex, head: Buffer) => void,\n        ): this;\n        prependOnceListener(event: string, listener: (...args: any[]) => void): this;\n        prependOnceListener(event: 'keylog', listener: (line: Buffer, tlsSocket: tls.TLSSocket) => void): this;\n        prependOnceListener(\n            event: 'newSession',\n            listener: (sessionId: Buffer, sessionData: Buffer, callback: (err: Error, resp: Buffer) => void) => void,\n        ): this;\n        prependOnceListener(\n            event: 'OCSPRequest',\n            listener: (\n                certificate: Buffer,\n                issuer: Buffer,\n                callback: (err: Error | null, resp: Buffer) => void,\n            ) => void,\n        ): this;\n        prependOnceListener(\n            event: 'resumeSession',\n            listener: (sessionId: Buffer, callback: (err: Error, sessionData: Buffer) => void) => void,\n        ): this;\n        prependOnceListener(event: 'secureConnection', listener: (tlsSocket: tls.TLSSocket) => void): this;\n        prependOnceListener(event: 'tlsClientError', listener: (err: Error, tlsSocket: tls.TLSSocket) => void): this;\n        prependOnceListener(event: 'close', listener: () => void): this;\n        prependOnceListener(event: 'connection', listener: (socket: Duplex) => void): this;\n        prependOnceListener(event: 'error', listener: (err: Error) => void): this;\n        prependOnceListener(event: 'listening', listener: () => void): this;\n        prependOnceListener(event: 'checkContinue', listener: http.RequestListener<Request, Response>): this;\n        prependOnceListener(event: 'checkExpectation', listener: http.RequestListener<Request, Response>): this;\n        prependOnceListener(event: 'clientError', listener: (err: Error, socket: Duplex) => void): this;\n        prependOnceListener(\n            event: 'connect',\n            listener: (req: InstanceType<Request>, socket: Duplex, head: Buffer) => void,\n        ): this;\n        prependOnceListener(event: 'request', listener: http.RequestListener<Request, Response>): this;\n        prependOnceListener(\n            event: 'upgrade',\n            listener: (req: InstanceType<Request>, socket: Duplex, head: Buffer) => void,\n        ): this;\n    }\n    /**\n     * ```js\n     * // curl -k https://localhost:8000/\n     * const https = require('https');\n     * const fs = require('fs');\n     *\n     * const options = {\n     *   key: fs.readFileSync('test/fixtures/keys/agent2-key.pem'),\n     *   cert: fs.readFileSync('test/fixtures/keys/agent2-cert.pem')\n     * };\n     *\n     * https.createServer(options, (req, res) => {\n     *   res.writeHead(200);\n     *   res.end('hello world\\n');\n     * }).listen(8000);\n     * ```\n     *\n     * Or\n     *\n     * ```js\n     * const https = require('https');\n     * const fs = require('fs');\n     *\n     * const options = {\n     *   pfx: fs.readFileSync('test/fixtures/test_cert.pfx'),\n     *   passphrase: 'sample'\n     * };\n     *\n     * https.createServer(options, (req, res) => {\n     *   res.writeHead(200);\n     *   res.end('hello world\\n');\n     * }).listen(8000);\n     * ```\n     * @since v0.3.4\n     * @param options Accepts `options` from `createServer`, `createSecureContext` and `createServer`.\n     * @param requestListener A listener to be added to the `'request'` event.\n     */\n    function createServer<\n        Request extends typeof http.IncomingMessage = typeof http.IncomingMessage,\n        Response extends typeof http.ServerResponse = typeof http.ServerResponse,\n    >(requestListener?: http.RequestListener<Request, Response>): Server<Request, Response>;\n    function createServer<\n        Request extends typeof http.IncomingMessage = typeof http.IncomingMessage,\n        Response extends typeof http.ServerResponse = typeof http.ServerResponse,\n    >(\n        options: ServerOptions<Request, Response>,\n        requestListener?: http.RequestListener<Request, Response>,\n    ): Server<Request, Response>;\n    /**\n     * Makes a request to a secure web server.\n     *\n     * The following additional `options` from `tls.connect()` are also accepted:`ca`, `cert`, `ciphers`, `clientCertEngine`, `crl`, `dhparam`, `ecdhCurve`,`honorCipherOrder`, `key`, `passphrase`,\n     * `pfx`, `rejectUnauthorized`,`secureOptions`, `secureProtocol`, `servername`, `sessionIdContext`,`highWaterMark`.\n     *\n     * `options` can be an object, a string, or a `URL` object. If `options` is a\n     * string, it is automatically parsed with `new URL()`. If it is a `URL` object, it will be automatically converted to an ordinary `options` object.\n     *\n     * `https.request()` returns an instance of the `http.ClientRequest` class. The `ClientRequest` instance is a writable stream. If one needs to\n     * upload a file with a POST request, then write to the `ClientRequest` object.\n     *\n     * ```js\n     * const https = require('https');\n     *\n     * const options = {\n     *   hostname: 'encrypted.google.com',\n     *   port: 443,\n     *   path: '/',\n     *   method: 'GET'\n     * };\n     *\n     * const req = https.request(options, (res) => {\n     *   console.log('statusCode:', res.statusCode);\n     *   console.log('headers:', res.headers);\n     *\n     *   res.on('data', (d) => {\n     *     process.stdout.write(d);\n     *   });\n     * });\n     *\n     * req.on('error', (e) => {\n     *   console.error(e);\n     * });\n     * req.end();\n     * ```\n     *\n     * Example using options from `tls.connect()`:\n     *\n     * ```js\n     * const options = {\n     *   hostname: 'encrypted.google.com',\n     *   port: 443,\n     *   path: '/',\n     *   method: 'GET',\n     *   key: fs.readFileSync('test/fixtures/keys/agent2-key.pem'),\n     *   cert: fs.readFileSync('test/fixtures/keys/agent2-cert.pem')\n     * };\n     * options.agent = new https.Agent(options);\n     *\n     * const req = https.request(options, (res) => {\n     *   // ...\n     * });\n     * ```\n     *\n     * Alternatively, opt out of connection pooling by not using an `Agent`.\n     *\n     * ```js\n     * const options = {\n     *   hostname: 'encrypted.google.com',\n     *   port: 443,\n     *   path: '/',\n     *   method: 'GET',\n     *   key: fs.readFileSync('test/fixtures/keys/agent2-key.pem'),\n     *   cert: fs.readFileSync('test/fixtures/keys/agent2-cert.pem'),\n     *   agent: false\n     * };\n     *\n     * const req = https.request(options, (res) => {\n     *   // ...\n     * });\n     * ```\n     *\n     * Example using a `URL` as `options`:\n     *\n     * ```js\n     * const options = new URL('https://abc:xyz@example.com');\n     *\n     * const req = https.request(options, (res) => {\n     *   // ...\n     * });\n     * ```\n     *\n     * Example pinning on certificate fingerprint, or the public key (similar to`pin-sha256`):\n     *\n     * ```js\n     * const tls = require('tls');\n     * const https = require('https');\n     * const crypto = require('crypto');\n     *\n     * function sha256(s) {\n     *   return crypto.createHash('sha256').update(s).digest('base64');\n     * }\n     * const options = {\n     *   hostname: 'github.com',\n     *   port: 443,\n     *   path: '/',\n     *   method: 'GET',\n     *   checkServerIdentity: function(host, cert) {\n     *     // Make sure the certificate is issued to the host we are connected to\n     *     const err = tls.checkServerIdentity(host, cert);\n     *     if (err) {\n     *       return err;\n     *     }\n     *\n     *     // Pin the public key, similar to HPKP pin-sha25 pinning\n     *     const pubkey256 = 'pL1+qb9HTMRZJmuC/bB/ZI9d302BYrrqiVuRyW+DGrU=';\n     *     if (sha256(cert.pubkey) !== pubkey256) {\n     *       const msg = 'Certificate verification error: ' +\n     *         `The public key of '${cert.subject.CN}' ` +\n     *         'does not match our pinned fingerprint';\n     *       return new Error(msg);\n     *     }\n     *\n     *     // Pin the exact certificate, rather than the pub key\n     *     const cert256 = '25:FE:39:32:D9:63:8C:8A:FC:A1:9A:29:87:' +\n     *       'D8:3E:4C:1D:98:DB:71:E4:1A:48:03:98:EA:22:6A:BD:8B:93:16';\n     *     if (cert.fingerprint256 !== cert256) {\n     *       const msg = 'Certificate verification error: ' +\n     *         `The certificate of '${cert.subject.CN}' ` +\n     *         'does not match our pinned fingerprint';\n     *       return new Error(msg);\n     *     }\n     *\n     *     // This loop is informational only.\n     *     // Print the certificate and public key fingerprints of all certs in the\n     *     // chain. Its common to pin the public key of the issuer on the public\n     *     // internet, while pinning the public key of the service in sensitive\n     *     // environments.\n     *     do {\n     *       console.log('Subject Common Name:', cert.subject.CN);\n     *       console.log('  Certificate SHA256 fingerprint:', cert.fingerprint256);\n     *\n     *       hash = crypto.createHash('sha256');\n     *       console.log('  Public key ping-sha256:', sha256(cert.pubkey));\n     *\n     *       lastprint256 = cert.fingerprint256;\n     *       cert = cert.issuerCertificate;\n     *     } while (cert.fingerprint256 !== lastprint256);\n     *\n     *   },\n     * };\n     *\n     * options.agent = new https.Agent(options);\n     * const req = https.request(options, (res) => {\n     *   console.log('All OK. Server matched our pinned cert or public key');\n     *   console.log('statusCode:', res.statusCode);\n     *   // Print the HPKP values\n     *   console.log('headers:', res.headers['public-key-pins']);\n     *\n     *   res.on('data', (d) => {});\n     * });\n     *\n     * req.on('error', (e) => {\n     *   console.error(e.message);\n     * });\n     * req.end();\n     * ```\n     *\n     * Outputs for example:\n     *\n     * ```text\n     * Subject Common Name: github.com\n     *   Certificate SHA256 fingerprint: 25:FE:39:32:D9:63:8C:8A:FC:A1:9A:29:87:D8:3E:4C:1D:98:DB:71:E4:1A:48:03:98:EA:22:6A:BD:8B:93:16\n     *   Public key ping-sha256: pL1+qb9HTMRZJmuC/bB/ZI9d302BYrrqiVuRyW+DGrU=\n     * Subject Common Name: DigiCert SHA2 Extended Validation Server CA\n     *   Certificate SHA256 fingerprint: 40:3E:06:2A:26:53:05:91:13:28:5B:AF:80:A0:D4:AE:42:2C:84:8C:9F:78:FA:D0:1F:C9:4B:C5:B8:7F:EF:1A\n     *   Public key ping-sha256: RRM1dGqnDFsCJXBTHky16vi1obOlCgFFn/yOhI/y+ho=\n     * Subject Common Name: DigiCert High Assurance EV Root CA\n     *   Certificate SHA256 fingerprint: 74:31:E5:F4:C3:C1:CE:46:90:77:4F:0B:61:E0:54:40:88:3B:A9:A0:1E:D0:0B:A6:AB:D7:80:6E:D3:B1:18:CF\n     *   Public key ping-sha256: WoiWRyIOVNa9ihaBciRSC7XHjliYS9VwUGOIud4PB18=\n     * All OK. Server matched our pinned cert or public key\n     * statusCode: 200\n     * headers: max-age=0; pin-sha256=\"WoiWRyIOVNa9ihaBciRSC7XHjliYS9VwUGOIud4PB18=\"; pin-sha256=\"RRM1dGqnDFsCJXBTHky16vi1obOlCgFFn/yOhI/y+ho=\";\n     * pin-sha256=\"k2v657xBsOVe1PQRwOsHsw3bsGT2VzIqz5K+59sNQws=\"; pin-sha256=\"K87oWBWM9UZfyddvDfoxL+8lpNyoUB2ptGtn0fv6G2Q=\"; pin-sha256=\"IQBnNBEiFuhj+8x6X8XLgh01V9Ic5/V3IRQLNFFc7v4=\";\n     * pin-sha256=\"iie1VXtL7HzAMF+/PVPR9xzT80kQxdZeJ+zduCB3uj0=\"; pin-sha256=\"LvRiGEjRqfzurezaWuj8Wie2gyHMrW5Q06LspMnox7A=\"; includeSubDomains\n     * ```\n     * @since v0.3.6\n     * @param options Accepts all `options` from `request`, with some differences in default values:\n     */\n    function request(\n        options: RequestOptions | string | URL,\n        callback?: (res: http.IncomingMessage) => void,\n    ): http.ClientRequest;\n    function request(\n        url: string | URL,\n        options: RequestOptions,\n        callback?: (res: http.IncomingMessage) => void,\n    ): http.ClientRequest;\n    /**\n     * Like `http.get()` but for HTTPS.\n     *\n     * `options` can be an object, a string, or a `URL` object. If `options` is a\n     * string, it is automatically parsed with `new URL()`. If it is a `URL` object, it will be automatically converted to an ordinary `options` object.\n     *\n     * ```js\n     * const https = require('https');\n     *\n     * https.get('https://encrypted.google.com/', (res) => {\n     *   console.log('statusCode:', res.statusCode);\n     *   console.log('headers:', res.headers);\n     *\n     *   res.on('data', (d) => {\n     *     process.stdout.write(d);\n     *   });\n     *\n     * }).on('error', (e) => {\n     *   console.error(e);\n     * });\n     * ```\n     * @since v0.3.6\n     * @param options Accepts the same `options` as {@link request}, with the `method` always set to `GET`.\n     */\n    function get(\n        options: RequestOptions | string | URL,\n        callback?: (res: http.IncomingMessage) => void,\n    ): http.ClientRequest;\n    function get(\n        url: string | URL,\n        options: RequestOptions,\n        callback?: (res: http.IncomingMessage) => void,\n    ): http.ClientRequest;\n    let globalAgent: Agent;\n}\ndeclare module 'node:https' {\n    export * from 'https';\n}\n"
    },
    {
      "path": "/node_modules/@types/node/inspector.d.ts",
      "content": "// eslint-disable-next-line dt-header\n// Type definitions for inspector\n\n// These definitions are auto-generated.\n// Please see https://github.com/DefinitelyTyped/DefinitelyTyped/pull/19330\n// for more information.\n\n// tslint:disable:max-line-length\n\n/**\n * The `inspector` module provides an API for interacting with the V8 inspector.\n *\n * It can be accessed using:\n *\n * ```js\n * const inspector = require('inspector');\n * ```\n * @see [source](https://github.com/nodejs/node/blob/v16.9.0/lib/inspector.js)\n */\ndeclare module 'inspector' {\n    import EventEmitter = require('node:events');\n    interface InspectorNotification<T> {\n        method: string;\n        params: T;\n    }\n    namespace Schema {\n        /**\n         * Description of the protocol domain.\n         */\n        interface Domain {\n            /**\n             * Domain name.\n             */\n            name: string;\n            /**\n             * Domain version.\n             */\n            version: string;\n        }\n        interface GetDomainsReturnType {\n            /**\n             * List of supported domains.\n             */\n            domains: Domain[];\n        }\n    }\n    namespace Runtime {\n        /**\n         * Unique script identifier.\n         */\n        type ScriptId = string;\n        /**\n         * Unique object identifier.\n         */\n        type RemoteObjectId = string;\n        /**\n         * Primitive value which cannot be JSON-stringified.\n         */\n        type UnserializableValue = string;\n        /**\n         * Mirror object referencing original JavaScript object.\n         */\n        interface RemoteObject {\n            /**\n             * Object type.\n             */\n            type: string;\n            /**\n             * Object subtype hint. Specified for <code>object</code> type values only.\n             */\n            subtype?: string | undefined;\n            /**\n             * Object class (constructor) name. Specified for <code>object</code> type values only.\n             */\n            className?: string | undefined;\n            /**\n             * Remote object value in case of primitive values or JSON values (if it was requested).\n             */\n            value?: any;\n            /**\n             * Primitive value which can not be JSON-stringified does not have <code>value</code>, but gets this property.\n             */\n            unserializableValue?: UnserializableValue | undefined;\n            /**\n             * String representation of the object.\n             */\n            description?: string | undefined;\n            /**\n             * Unique object identifier (for non-primitive values).\n             */\n            objectId?: RemoteObjectId | undefined;\n            /**\n             * Preview containing abbreviated property values. Specified for <code>object</code> type values only.\n             * @experimental\n             */\n            preview?: ObjectPreview | undefined;\n            /**\n             * @experimental\n             */\n            customPreview?: CustomPreview | undefined;\n        }\n        /**\n         * @experimental\n         */\n        interface CustomPreview {\n            header: string;\n            hasBody: boolean;\n            formatterObjectId: RemoteObjectId;\n            bindRemoteObjectFunctionId: RemoteObjectId;\n            configObjectId?: RemoteObjectId | undefined;\n        }\n        /**\n         * Object containing abbreviated remote object value.\n         * @experimental\n         */\n        interface ObjectPreview {\n            /**\n             * Object type.\n             */\n            type: string;\n            /**\n             * Object subtype hint. Specified for <code>object</code> type values only.\n             */\n            subtype?: string | undefined;\n            /**\n             * String representation of the object.\n             */\n            description?: string | undefined;\n            /**\n             * True iff some of the properties or entries of the original object did not fit.\n             */\n            overflow: boolean;\n            /**\n             * List of the properties.\n             */\n            properties: PropertyPreview[];\n            /**\n             * List of the entries. Specified for <code>map</code> and <code>set</code> subtype values only.\n             */\n            entries?: EntryPreview[] | undefined;\n        }\n        /**\n         * @experimental\n         */\n        interface PropertyPreview {\n            /**\n             * Property name.\n             */\n            name: string;\n            /**\n             * Object type. Accessor means that the property itself is an accessor property.\n             */\n            type: string;\n            /**\n             * User-friendly property value string.\n             */\n            value?: string | undefined;\n            /**\n             * Nested value preview.\n             */\n            valuePreview?: ObjectPreview | undefined;\n            /**\n             * Object subtype hint. Specified for <code>object</code> type values only.\n             */\n            subtype?: string | undefined;\n        }\n        /**\n         * @experimental\n         */\n        interface EntryPreview {\n            /**\n             * Preview of the key. Specified for map-like collection entries.\n             */\n            key?: ObjectPreview | undefined;\n            /**\n             * Preview of the value.\n             */\n            value: ObjectPreview;\n        }\n        /**\n         * Object property descriptor.\n         */\n        interface PropertyDescriptor {\n            /**\n             * Property name or symbol description.\n             */\n            name: string;\n            /**\n             * The value associated with the property.\n             */\n            value?: RemoteObject | undefined;\n            /**\n             * True if the value associated with the property may be changed (data descriptors only).\n             */\n            writable?: boolean | undefined;\n            /**\n             * A function which serves as a getter for the property, or <code>undefined</code> if there is no getter (accessor descriptors only).\n             */\n            get?: RemoteObject | undefined;\n            /**\n             * A function which serves as a setter for the property, or <code>undefined</code> if there is no setter (accessor descriptors only).\n             */\n            set?: RemoteObject | undefined;\n            /**\n             * True if the type of this property descriptor may be changed and if the property may be deleted from the corresponding object.\n             */\n            configurable: boolean;\n            /**\n             * True if this property shows up during enumeration of the properties on the corresponding object.\n             */\n            enumerable: boolean;\n            /**\n             * True if the result was thrown during the evaluation.\n             */\n            wasThrown?: boolean | undefined;\n            /**\n             * True if the property is owned for the object.\n             */\n            isOwn?: boolean | undefined;\n            /**\n             * Property symbol object, if the property is of the <code>symbol</code> type.\n             */\n            symbol?: RemoteObject | undefined;\n        }\n        /**\n         * Object internal property descriptor. This property isn't normally visible in JavaScript code.\n         */\n        interface InternalPropertyDescriptor {\n            /**\n             * Conventional property name.\n             */\n            name: string;\n            /**\n             * The value associated with the property.\n             */\n            value?: RemoteObject | undefined;\n        }\n        /**\n         * Represents function call argument. Either remote object id <code>objectId</code>, primitive <code>value</code>, unserializable primitive value or neither of (for undefined) them should be specified.\n         */\n        interface CallArgument {\n            /**\n             * Primitive value or serializable javascript object.\n             */\n            value?: any;\n            /**\n             * Primitive value which can not be JSON-stringified.\n             */\n            unserializableValue?: UnserializableValue | undefined;\n            /**\n             * Remote object handle.\n             */\n            objectId?: RemoteObjectId | undefined;\n        }\n        /**\n         * Id of an execution context.\n         */\n        type ExecutionContextId = number;\n        /**\n         * Description of an isolated world.\n         */\n        interface ExecutionContextDescription {\n            /**\n             * Unique id of the execution context. It can be used to specify in which execution context script evaluation should be performed.\n             */\n            id: ExecutionContextId;\n            /**\n             * Execution context origin.\n             */\n            origin: string;\n            /**\n             * Human readable name describing given context.\n             */\n            name: string;\n            /**\n             * Embedder-specific auxiliary data.\n             */\n            auxData?: {} | undefined;\n        }\n        /**\n         * Detailed information about exception (or error) that was thrown during script compilation or execution.\n         */\n        interface ExceptionDetails {\n            /**\n             * Exception id.\n             */\n            exceptionId: number;\n            /**\n             * Exception text, which should be used together with exception object when available.\n             */\n            text: string;\n            /**\n             * Line number of the exception location (0-based).\n             */\n            lineNumber: number;\n            /**\n             * Column number of the exception location (0-based).\n             */\n            columnNumber: number;\n            /**\n             * Script ID of the exception location.\n             */\n            scriptId?: ScriptId | undefined;\n            /**\n             * URL of the exception location, to be used when the script was not reported.\n             */\n            url?: string | undefined;\n            /**\n             * JavaScript stack trace if available.\n             */\n            stackTrace?: StackTrace | undefined;\n            /**\n             * Exception object if available.\n             */\n            exception?: RemoteObject | undefined;\n            /**\n             * Identifier of the context where exception happened.\n             */\n            executionContextId?: ExecutionContextId | undefined;\n        }\n        /**\n         * Number of milliseconds since epoch.\n         */\n        type Timestamp = number;\n        /**\n         * Stack entry for runtime errors and assertions.\n         */\n        interface CallFrame {\n            /**\n             * JavaScript function name.\n             */\n            functionName: string;\n            /**\n             * JavaScript script id.\n             */\n            scriptId: ScriptId;\n            /**\n             * JavaScript script name or url.\n             */\n            url: string;\n            /**\n             * JavaScript script line number (0-based).\n             */\n            lineNumber: number;\n            /**\n             * JavaScript script column number (0-based).\n             */\n            columnNumber: number;\n        }\n        /**\n         * Call frames for assertions or error messages.\n         */\n        interface StackTrace {\n            /**\n             * String label of this stack trace. For async traces this may be a name of the function that initiated the async call.\n             */\n            description?: string | undefined;\n            /**\n             * JavaScript function name.\n             */\n            callFrames: CallFrame[];\n            /**\n             * Asynchronous JavaScript stack trace that preceded this stack, if available.\n             */\n            parent?: StackTrace | undefined;\n            /**\n             * Asynchronous JavaScript stack trace that preceded this stack, if available.\n             * @experimental\n             */\n            parentId?: StackTraceId | undefined;\n        }\n        /**\n         * Unique identifier of current debugger.\n         * @experimental\n         */\n        type UniqueDebuggerId = string;\n        /**\n         * If <code>debuggerId</code> is set stack trace comes from another debugger and can be resolved there. This allows to track cross-debugger calls. See <code>Runtime.StackTrace</code> and <code>Debugger.paused</code> for usages.\n         * @experimental\n         */\n        interface StackTraceId {\n            id: string;\n            debuggerId?: UniqueDebuggerId | undefined;\n        }\n        interface EvaluateParameterType {\n            /**\n             * Expression to evaluate.\n             */\n            expression: string;\n            /**\n             * Symbolic group name that can be used to release multiple objects.\n             */\n            objectGroup?: string | undefined;\n            /**\n             * Determines whether Command Line API should be available during the evaluation.\n             */\n            includeCommandLineAPI?: boolean | undefined;\n            /**\n             * In silent mode exceptions thrown during evaluation are not reported and do not pause execution. Overrides <code>setPauseOnException</code> state.\n             */\n            silent?: boolean | undefined;\n            /**\n             * Specifies in which execution context to perform evaluation. If the parameter is omitted the evaluation will be performed in the context of the inspected page.\n             */\n            contextId?: ExecutionContextId | undefined;\n            /**\n             * Whether the result is expected to be a JSON object that should be sent by value.\n             */\n            returnByValue?: boolean | undefined;\n            /**\n             * Whether preview should be generated for the result.\n             * @experimental\n             */\n            generatePreview?: boolean | undefined;\n            /**\n             * Whether execution should be treated as initiated by user in the UI.\n             */\n            userGesture?: boolean | undefined;\n            /**\n             * Whether execution should <code>await</code> for resulting value and return once awaited promise is resolved.\n             */\n            awaitPromise?: boolean | undefined;\n        }\n        interface AwaitPromiseParameterType {\n            /**\n             * Identifier of the promise.\n             */\n            promiseObjectId: RemoteObjectId;\n            /**\n             * Whether the result is expected to be a JSON object that should be sent by value.\n             */\n            returnByValue?: boolean | undefined;\n            /**\n             * Whether preview should be generated for the result.\n             */\n            generatePreview?: boolean | undefined;\n        }\n        interface CallFunctionOnParameterType {\n            /**\n             * Declaration of the function to call.\n             */\n            functionDeclaration: string;\n            /**\n             * Identifier of the object to call function on. Either objectId or executionContextId should be specified.\n             */\n            objectId?: RemoteObjectId | undefined;\n            /**\n             * Call arguments. All call arguments must belong to the same JavaScript world as the target object.\n             */\n            arguments?: CallArgument[] | undefined;\n            /**\n             * In silent mode exceptions thrown during evaluation are not reported and do not pause execution. Overrides <code>setPauseOnException</code> state.\n             */\n            silent?: boolean | undefined;\n            /**\n             * Whether the result is expected to be a JSON object which should be sent by value.\n             */\n            returnByValue?: boolean | undefined;\n            /**\n             * Whether preview should be generated for the result.\n             * @experimental\n             */\n            generatePreview?: boolean | undefined;\n            /**\n             * Whether execution should be treated as initiated by user in the UI.\n             */\n            userGesture?: boolean | undefined;\n            /**\n             * Whether execution should <code>await</code> for resulting value and return once awaited promise is resolved.\n             */\n            awaitPromise?: boolean | undefined;\n            /**\n             * Specifies execution context which global object will be used to call function on. Either executionContextId or objectId should be specified.\n             */\n            executionContextId?: ExecutionContextId | undefined;\n            /**\n             * Symbolic group name that can be used to release multiple objects. If objectGroup is not specified and objectId is, objectGroup will be inherited from object.\n             */\n            objectGroup?: string | undefined;\n        }\n        interface GetPropertiesParameterType {\n            /**\n             * Identifier of the object to return properties for.\n             */\n            objectId: RemoteObjectId;\n            /**\n             * If true, returns properties belonging only to the element itself, not to its prototype chain.\n             */\n            ownProperties?: boolean | undefined;\n            /**\n             * If true, returns accessor properties (with getter/setter) only; internal properties are not returned either.\n             * @experimental\n             */\n            accessorPropertiesOnly?: boolean | undefined;\n            /**\n             * Whether preview should be generated for the results.\n             * @experimental\n             */\n            generatePreview?: boolean | undefined;\n        }\n        interface ReleaseObjectParameterType {\n            /**\n             * Identifier of the object to release.\n             */\n            objectId: RemoteObjectId;\n        }\n        interface ReleaseObjectGroupParameterType {\n            /**\n             * Symbolic object group name.\n             */\n            objectGroup: string;\n        }\n        interface SetCustomObjectFormatterEnabledParameterType {\n            enabled: boolean;\n        }\n        interface CompileScriptParameterType {\n            /**\n             * Expression to compile.\n             */\n            expression: string;\n            /**\n             * Source url to be set for the script.\n             */\n            sourceURL: string;\n            /**\n             * Specifies whether the compiled script should be persisted.\n             */\n            persistScript: boolean;\n            /**\n             * Specifies in which execution context to perform script run. If the parameter is omitted the evaluation will be performed in the context of the inspected page.\n             */\n            executionContextId?: ExecutionContextId | undefined;\n        }\n        interface RunScriptParameterType {\n            /**\n             * Id of the script to run.\n             */\n            scriptId: ScriptId;\n            /**\n             * Specifies in which execution context to perform script run. If the parameter is omitted the evaluation will be performed in the context of the inspected page.\n             */\n            executionContextId?: ExecutionContextId | undefined;\n            /**\n             * Symbolic group name that can be used to release multiple objects.\n             */\n            objectGroup?: string | undefined;\n            /**\n             * In silent mode exceptions thrown during evaluation are not reported and do not pause execution. Overrides <code>setPauseOnException</code> state.\n             */\n            silent?: boolean | undefined;\n            /**\n             * Determines whether Command Line API should be available during the evaluation.\n             */\n            includeCommandLineAPI?: boolean | undefined;\n            /**\n             * Whether the result is expected to be a JSON object which should be sent by value.\n             */\n            returnByValue?: boolean | undefined;\n            /**\n             * Whether preview should be generated for the result.\n             */\n            generatePreview?: boolean | undefined;\n            /**\n             * Whether execution should <code>await</code> for resulting value and return once awaited promise is resolved.\n             */\n            awaitPromise?: boolean | undefined;\n        }\n        interface QueryObjectsParameterType {\n            /**\n             * Identifier of the prototype to return objects for.\n             */\n            prototypeObjectId: RemoteObjectId;\n        }\n        interface GlobalLexicalScopeNamesParameterType {\n            /**\n             * Specifies in which execution context to lookup global scope variables.\n             */\n            executionContextId?: ExecutionContextId | undefined;\n        }\n        interface EvaluateReturnType {\n            /**\n             * Evaluation result.\n             */\n            result: RemoteObject;\n            /**\n             * Exception details.\n             */\n            exceptionDetails?: ExceptionDetails | undefined;\n        }\n        interface AwaitPromiseReturnType {\n            /**\n             * Promise result. Will contain rejected value if promise was rejected.\n             */\n            result: RemoteObject;\n            /**\n             * Exception details if stack strace is available.\n             */\n            exceptionDetails?: ExceptionDetails | undefined;\n        }\n        interface CallFunctionOnReturnType {\n            /**\n             * Call result.\n             */\n            result: RemoteObject;\n            /**\n             * Exception details.\n             */\n            exceptionDetails?: ExceptionDetails | undefined;\n        }\n        interface GetPropertiesReturnType {\n            /**\n             * Object properties.\n             */\n            result: PropertyDescriptor[];\n            /**\n             * Internal object properties (only of the element itself).\n             */\n            internalProperties?: InternalPropertyDescriptor[] | undefined;\n            /**\n             * Exception details.\n             */\n            exceptionDetails?: ExceptionDetails | undefined;\n        }\n        interface CompileScriptReturnType {\n            /**\n             * Id of the script.\n             */\n            scriptId?: ScriptId | undefined;\n            /**\n             * Exception details.\n             */\n            exceptionDetails?: ExceptionDetails | undefined;\n        }\n        interface RunScriptReturnType {\n            /**\n             * Run result.\n             */\n            result: RemoteObject;\n            /**\n             * Exception details.\n             */\n            exceptionDetails?: ExceptionDetails | undefined;\n        }\n        interface QueryObjectsReturnType {\n            /**\n             * Array with objects.\n             */\n            objects: RemoteObject;\n        }\n        interface GlobalLexicalScopeNamesReturnType {\n            names: string[];\n        }\n        interface ExecutionContextCreatedEventDataType {\n            /**\n             * A newly created execution context.\n             */\n            context: ExecutionContextDescription;\n        }\n        interface ExecutionContextDestroyedEventDataType {\n            /**\n             * Id of the destroyed context\n             */\n            executionContextId: ExecutionContextId;\n        }\n        interface ExceptionThrownEventDataType {\n            /**\n             * Timestamp of the exception.\n             */\n            timestamp: Timestamp;\n            exceptionDetails: ExceptionDetails;\n        }\n        interface ExceptionRevokedEventDataType {\n            /**\n             * Reason describing why exception was revoked.\n             */\n            reason: string;\n            /**\n             * The id of revoked exception, as reported in <code>exceptionThrown</code>.\n             */\n            exceptionId: number;\n        }\n        interface ConsoleAPICalledEventDataType {\n            /**\n             * Type of the call.\n             */\n            type: string;\n            /**\n             * Call arguments.\n             */\n            args: RemoteObject[];\n            /**\n             * Identifier of the context where the call was made.\n             */\n            executionContextId: ExecutionContextId;\n            /**\n             * Call timestamp.\n             */\n            timestamp: Timestamp;\n            /**\n             * Stack trace captured when the call was made.\n             */\n            stackTrace?: StackTrace | undefined;\n            /**\n             * Console context descriptor for calls on non-default console context (not console.*): 'anonymous#unique-logger-id' for call on unnamed context, 'name#unique-logger-id' for call on named context.\n             * @experimental\n             */\n            context?: string | undefined;\n        }\n        interface InspectRequestedEventDataType {\n            object: RemoteObject;\n            hints: {};\n        }\n    }\n    namespace Debugger {\n        /**\n         * Breakpoint identifier.\n         */\n        type BreakpointId = string;\n        /**\n         * Call frame identifier.\n         */\n        type CallFrameId = string;\n        /**\n         * Location in the source code.\n         */\n        interface Location {\n            /**\n             * Script identifier as reported in the <code>Debugger.scriptParsed</code>.\n             */\n            scriptId: Runtime.ScriptId;\n            /**\n             * Line number in the script (0-based).\n             */\n            lineNumber: number;\n            /**\n             * Column number in the script (0-based).\n             */\n            columnNumber?: number | undefined;\n        }\n        /**\n         * Location in the source code.\n         * @experimental\n         */\n        interface ScriptPosition {\n            lineNumber: number;\n            columnNumber: number;\n        }\n        /**\n         * JavaScript call frame. Array of call frames form the call stack.\n         */\n        interface CallFrame {\n            /**\n             * Call frame identifier. This identifier is only valid while the virtual machine is paused.\n             */\n            callFrameId: CallFrameId;\n            /**\n             * Name of the JavaScript function called on this call frame.\n             */\n            functionName: string;\n            /**\n             * Location in the source code.\n             */\n            functionLocation?: Location | undefined;\n            /**\n             * Location in the source code.\n             */\n            location: Location;\n            /**\n             * JavaScript script name or url.\n             */\n            url: string;\n            /**\n             * Scope chain for this call frame.\n             */\n            scopeChain: Scope[];\n            /**\n             * <code>this</code> object for this call frame.\n             */\n            this: Runtime.RemoteObject;\n            /**\n             * The value being returned, if the function is at return point.\n             */\n            returnValue?: Runtime.RemoteObject | undefined;\n        }\n        /**\n         * Scope description.\n         */\n        interface Scope {\n            /**\n             * Scope type.\n             */\n            type: string;\n            /**\n             * Object representing the scope. For <code>global</code> and <code>with</code> scopes it represents the actual object; for the rest of the scopes, it is artificial transient object enumerating scope variables as its properties.\n             */\n            object: Runtime.RemoteObject;\n            name?: string | undefined;\n            /**\n             * Location in the source code where scope starts\n             */\n            startLocation?: Location | undefined;\n            /**\n             * Location in the source code where scope ends\n             */\n            endLocation?: Location | undefined;\n        }\n        /**\n         * Search match for resource.\n         */\n        interface SearchMatch {\n            /**\n             * Line number in resource content.\n             */\n            lineNumber: number;\n            /**\n             * Line with match content.\n             */\n            lineContent: string;\n        }\n        interface BreakLocation {\n            /**\n             * Script identifier as reported in the <code>Debugger.scriptParsed</code>.\n             */\n            scriptId: Runtime.ScriptId;\n            /**\n             * Line number in the script (0-based).\n             */\n            lineNumber: number;\n            /**\n             * Column number in the script (0-based).\n             */\n            columnNumber?: number | undefined;\n            type?: string | undefined;\n        }\n        interface SetBreakpointsActiveParameterType {\n            /**\n             * New value for breakpoints active state.\n             */\n            active: boolean;\n        }\n        interface SetSkipAllPausesParameterType {\n            /**\n             * New value for skip pauses state.\n             */\n            skip: boolean;\n        }\n        interface SetBreakpointByUrlParameterType {\n            /**\n             * Line number to set breakpoint at.\n             */\n            lineNumber: number;\n            /**\n             * URL of the resources to set breakpoint on.\n             */\n            url?: string | undefined;\n            /**\n             * Regex pattern for the URLs of the resources to set breakpoints on. Either <code>url</code> or <code>urlRegex</code> must be specified.\n             */\n            urlRegex?: string | undefined;\n            /**\n             * Script hash of the resources to set breakpoint on.\n             */\n            scriptHash?: string | undefined;\n            /**\n             * Offset in the line to set breakpoint at.\n             */\n            columnNumber?: number | undefined;\n            /**\n             * Expression to use as a breakpoint condition. When specified, debugger will only stop on the breakpoint if this expression evaluates to true.\n             */\n            condition?: string | undefined;\n        }\n        interface SetBreakpointParameterType {\n            /**\n             * Location to set breakpoint in.\n             */\n            location: Location;\n            /**\n             * Expression to use as a breakpoint condition. When specified, debugger will only stop on the breakpoint if this expression evaluates to true.\n             */\n            condition?: string | undefined;\n        }\n        interface RemoveBreakpointParameterType {\n            breakpointId: BreakpointId;\n        }\n        interface GetPossibleBreakpointsParameterType {\n            /**\n             * Start of range to search possible breakpoint locations in.\n             */\n            start: Location;\n            /**\n             * End of range to search possible breakpoint locations in (excluding). When not specified, end of scripts is used as end of range.\n             */\n            end?: Location | undefined;\n            /**\n             * Only consider locations which are in the same (non-nested) function as start.\n             */\n            restrictToFunction?: boolean | undefined;\n        }\n        interface ContinueToLocationParameterType {\n            /**\n             * Location to continue to.\n             */\n            location: Location;\n            targetCallFrames?: string | undefined;\n        }\n        interface PauseOnAsyncCallParameterType {\n            /**\n             * Debugger will pause when async call with given stack trace is started.\n             */\n            parentStackTraceId: Runtime.StackTraceId;\n        }\n        interface StepIntoParameterType {\n            /**\n             * Debugger will issue additional Debugger.paused notification if any async task is scheduled before next pause.\n             * @experimental\n             */\n            breakOnAsyncCall?: boolean | undefined;\n        }\n        interface GetStackTraceParameterType {\n            stackTraceId: Runtime.StackTraceId;\n        }\n        interface SearchInContentParameterType {\n            /**\n             * Id of the script to search in.\n             */\n            scriptId: Runtime.ScriptId;\n            /**\n             * String to search for.\n             */\n            query: string;\n            /**\n             * If true, search is case sensitive.\n             */\n            caseSensitive?: boolean | undefined;\n            /**\n             * If true, treats string parameter as regex.\n             */\n            isRegex?: boolean | undefined;\n        }\n        interface SetScriptSourceParameterType {\n            /**\n             * Id of the script to edit.\n             */\n            scriptId: Runtime.ScriptId;\n            /**\n             * New content of the script.\n             */\n            scriptSource: string;\n            /**\n             *  If true the change will not actually be applied. Dry run may be used to get result description without actually modifying the code.\n             */\n            dryRun?: boolean | undefined;\n        }\n        interface RestartFrameParameterType {\n            /**\n             * Call frame identifier to evaluate on.\n             */\n            callFrameId: CallFrameId;\n        }\n        interface GetScriptSourceParameterType {\n            /**\n             * Id of the script to get source for.\n             */\n            scriptId: Runtime.ScriptId;\n        }\n        interface SetPauseOnExceptionsParameterType {\n            /**\n             * Pause on exceptions mode.\n             */\n            state: string;\n        }\n        interface EvaluateOnCallFrameParameterType {\n            /**\n             * Call frame identifier to evaluate on.\n             */\n            callFrameId: CallFrameId;\n            /**\n             * Expression to evaluate.\n             */\n            expression: string;\n            /**\n             * String object group name to put result into (allows rapid releasing resulting object handles using <code>releaseObjectGroup</code>).\n             */\n            objectGroup?: string | undefined;\n            /**\n             * Specifies whether command line API should be available to the evaluated expression, defaults to false.\n             */\n            includeCommandLineAPI?: boolean | undefined;\n            /**\n             * In silent mode exceptions thrown during evaluation are not reported and do not pause execution. Overrides <code>setPauseOnException</code> state.\n             */\n            silent?: boolean | undefined;\n            /**\n             * Whether the result is expected to be a JSON object that should be sent by value.\n             */\n            returnByValue?: boolean | undefined;\n            /**\n             * Whether preview should be generated for the result.\n             * @experimental\n             */\n            generatePreview?: boolean | undefined;\n            /**\n             * Whether to throw an exception if side effect cannot be ruled out during evaluation.\n             */\n            throwOnSideEffect?: boolean | undefined;\n        }\n        interface SetVariableValueParameterType {\n            /**\n             * 0-based number of scope as was listed in scope chain. Only 'local', 'closure' and 'catch' scope types are allowed. Other scopes could be manipulated manually.\n             */\n            scopeNumber: number;\n            /**\n             * Variable name.\n             */\n            variableName: string;\n            /**\n             * New variable value.\n             */\n            newValue: Runtime.CallArgument;\n            /**\n             * Id of callframe that holds variable.\n             */\n            callFrameId: CallFrameId;\n        }\n        interface SetReturnValueParameterType {\n            /**\n             * New return value.\n             */\n            newValue: Runtime.CallArgument;\n        }\n        interface SetAsyncCallStackDepthParameterType {\n            /**\n             * Maximum depth of async call stacks. Setting to <code>0</code> will effectively disable collecting async call stacks (default).\n             */\n            maxDepth: number;\n        }\n        interface SetBlackboxPatternsParameterType {\n            /**\n             * Array of regexps that will be used to check script url for blackbox state.\n             */\n            patterns: string[];\n        }\n        interface SetBlackboxedRangesParameterType {\n            /**\n             * Id of the script.\n             */\n            scriptId: Runtime.ScriptId;\n            positions: ScriptPosition[];\n        }\n        interface EnableReturnType {\n            /**\n             * Unique identifier of the debugger.\n             * @experimental\n             */\n            debuggerId: Runtime.UniqueDebuggerId;\n        }\n        interface SetBreakpointByUrlReturnType {\n            /**\n             * Id of the created breakpoint for further reference.\n             */\n            breakpointId: BreakpointId;\n            /**\n             * List of the locations this breakpoint resolved into upon addition.\n             */\n            locations: Location[];\n        }\n        interface SetBreakpointReturnType {\n            /**\n             * Id of the created breakpoint for further reference.\n             */\n            breakpointId: BreakpointId;\n            /**\n             * Location this breakpoint resolved into.\n             */\n            actualLocation: Location;\n        }\n        interface GetPossibleBreakpointsReturnType {\n            /**\n             * List of the possible breakpoint locations.\n             */\n            locations: BreakLocation[];\n        }\n        interface GetStackTraceReturnType {\n            stackTrace: Runtime.StackTrace;\n        }\n        interface SearchInContentReturnType {\n            /**\n             * List of search matches.\n             */\n            result: SearchMatch[];\n        }\n        interface SetScriptSourceReturnType {\n            /**\n             * New stack trace in case editing has happened while VM was stopped.\n             */\n            callFrames?: CallFrame[] | undefined;\n            /**\n             * Whether current call stack  was modified after applying the changes.\n             */\n            stackChanged?: boolean | undefined;\n            /**\n             * Async stack trace, if any.\n             */\n            asyncStackTrace?: Runtime.StackTrace | undefined;\n            /**\n             * Async stack trace, if any.\n             * @experimental\n             */\n            asyncStackTraceId?: Runtime.StackTraceId | undefined;\n            /**\n             * Exception details if any.\n             */\n            exceptionDetails?: Runtime.ExceptionDetails | undefined;\n        }\n        interface RestartFrameReturnType {\n            /**\n             * New stack trace.\n             */\n            callFrames: CallFrame[];\n            /**\n             * Async stack trace, if any.\n             */\n            asyncStackTrace?: Runtime.StackTrace | undefined;\n            /**\n             * Async stack trace, if any.\n             * @experimental\n             */\n            asyncStackTraceId?: Runtime.StackTraceId | undefined;\n        }\n        interface GetScriptSourceReturnType {\n            /**\n             * Script source.\n             */\n            scriptSource: string;\n        }\n        interface EvaluateOnCallFrameReturnType {\n            /**\n             * Object wrapper for the evaluation result.\n             */\n            result: Runtime.RemoteObject;\n            /**\n             * Exception details.\n             */\n            exceptionDetails?: Runtime.ExceptionDetails | undefined;\n        }\n        interface ScriptParsedEventDataType {\n            /**\n             * Identifier of the script parsed.\n             */\n            scriptId: Runtime.ScriptId;\n            /**\n             * URL or name of the script parsed (if any).\n             */\n            url: string;\n            /**\n             * Line offset of the script within the resource with given URL (for script tags).\n             */\n            startLine: number;\n            /**\n             * Column offset of the script within the resource with given URL.\n             */\n            startColumn: number;\n            /**\n             * Last line of the script.\n             */\n            endLine: number;\n            /**\n             * Length of the last line of the script.\n             */\n            endColumn: number;\n            /**\n             * Specifies script creation context.\n             */\n            executionContextId: Runtime.ExecutionContextId;\n            /**\n             * Content hash of the script.\n             */\n            hash: string;\n            /**\n             * Embedder-specific auxiliary data.\n             */\n            executionContextAuxData?: {} | undefined;\n            /**\n             * True, if this script is generated as a result of the live edit operation.\n             * @experimental\n             */\n            isLiveEdit?: boolean | undefined;\n            /**\n             * URL of source map associated with script (if any).\n             */\n            sourceMapURL?: string | undefined;\n            /**\n             * True, if this script has sourceURL.\n             */\n            hasSourceURL?: boolean | undefined;\n            /**\n             * True, if this script is ES6 module.\n             */\n            isModule?: boolean | undefined;\n            /**\n             * This script length.\n             */\n            length?: number | undefined;\n            /**\n             * JavaScript top stack frame of where the script parsed event was triggered if available.\n             * @experimental\n             */\n            stackTrace?: Runtime.StackTrace | undefined;\n        }\n        interface ScriptFailedToParseEventDataType {\n            /**\n             * Identifier of the script parsed.\n             */\n            scriptId: Runtime.ScriptId;\n            /**\n             * URL or name of the script parsed (if any).\n             */\n            url: string;\n            /**\n             * Line offset of the script within the resource with given URL (for script tags).\n             */\n            startLine: number;\n            /**\n             * Column offset of the script within the resource with given URL.\n             */\n            startColumn: number;\n            /**\n             * Last line of the script.\n             */\n            endLine: number;\n            /**\n             * Length of the last line of the script.\n             */\n            endColumn: number;\n            /**\n             * Specifies script creation context.\n             */\n            executionContextId: Runtime.ExecutionContextId;\n            /**\n             * Content hash of the script.\n             */\n            hash: string;\n            /**\n             * Embedder-specific auxiliary data.\n             */\n            executionContextAuxData?: {} | undefined;\n            /**\n             * URL of source map associated with script (if any).\n             */\n            sourceMapURL?: string | undefined;\n            /**\n             * True, if this script has sourceURL.\n             */\n            hasSourceURL?: boolean | undefined;\n            /**\n             * True, if this script is ES6 module.\n             */\n            isModule?: boolean | undefined;\n            /**\n             * This script length.\n             */\n            length?: number | undefined;\n            /**\n             * JavaScript top stack frame of where the script parsed event was triggered if available.\n             * @experimental\n             */\n            stackTrace?: Runtime.StackTrace | undefined;\n        }\n        interface BreakpointResolvedEventDataType {\n            /**\n             * Breakpoint unique identifier.\n             */\n            breakpointId: BreakpointId;\n            /**\n             * Actual breakpoint location.\n             */\n            location: Location;\n        }\n        interface PausedEventDataType {\n            /**\n             * Call stack the virtual machine stopped on.\n             */\n            callFrames: CallFrame[];\n            /**\n             * Pause reason.\n             */\n            reason: string;\n            /**\n             * Object containing break-specific auxiliary properties.\n             */\n            data?: {} | undefined;\n            /**\n             * Hit breakpoints IDs\n             */\n            hitBreakpoints?: string[] | undefined;\n            /**\n             * Async stack trace, if any.\n             */\n            asyncStackTrace?: Runtime.StackTrace | undefined;\n            /**\n             * Async stack trace, if any.\n             * @experimental\n             */\n            asyncStackTraceId?: Runtime.StackTraceId | undefined;\n            /**\n             * Just scheduled async call will have this stack trace as parent stack during async execution. This field is available only after <code>Debugger.stepInto</code> call with <code>breakOnAsynCall</code> flag.\n             * @experimental\n             */\n            asyncCallStackTraceId?: Runtime.StackTraceId | undefined;\n        }\n    }\n    namespace Console {\n        /**\n         * Console message.\n         */\n        interface ConsoleMessage {\n            /**\n             * Message source.\n             */\n            source: string;\n            /**\n             * Message severity.\n             */\n            level: string;\n            /**\n             * Message text.\n             */\n            text: string;\n            /**\n             * URL of the message origin.\n             */\n            url?: string | undefined;\n            /**\n             * Line number in the resource that generated this message (1-based).\n             */\n            line?: number | undefined;\n            /**\n             * Column number in the resource that generated this message (1-based).\n             */\n            column?: number | undefined;\n        }\n        interface MessageAddedEventDataType {\n            /**\n             * Console message that has been added.\n             */\n            message: ConsoleMessage;\n        }\n    }\n    namespace Profiler {\n        /**\n         * Profile node. Holds callsite information, execution statistics and child nodes.\n         */\n        interface ProfileNode {\n            /**\n             * Unique id of the node.\n             */\n            id: number;\n            /**\n             * Function location.\n             */\n            callFrame: Runtime.CallFrame;\n            /**\n             * Number of samples where this node was on top of the call stack.\n             */\n            hitCount?: number | undefined;\n            /**\n             * Child node ids.\n             */\n            children?: number[] | undefined;\n            /**\n             * The reason of being not optimized. The function may be deoptimized or marked as don't optimize.\n             */\n            deoptReason?: string | undefined;\n            /**\n             * An array of source position ticks.\n             */\n            positionTicks?: PositionTickInfo[] | undefined;\n        }\n        /**\n         * Profile.\n         */\n        interface Profile {\n            /**\n             * The list of profile nodes. First item is the root node.\n             */\n            nodes: ProfileNode[];\n            /**\n             * Profiling start timestamp in microseconds.\n             */\n            startTime: number;\n            /**\n             * Profiling end timestamp in microseconds.\n             */\n            endTime: number;\n            /**\n             * Ids of samples top nodes.\n             */\n            samples?: number[] | undefined;\n            /**\n             * Time intervals between adjacent samples in microseconds. The first delta is relative to the profile startTime.\n             */\n            timeDeltas?: number[] | undefined;\n        }\n        /**\n         * Specifies a number of samples attributed to a certain source position.\n         */\n        interface PositionTickInfo {\n            /**\n             * Source line number (1-based).\n             */\n            line: number;\n            /**\n             * Number of samples attributed to the source line.\n             */\n            ticks: number;\n        }\n        /**\n         * Coverage data for a source range.\n         */\n        interface CoverageRange {\n            /**\n             * JavaScript script source offset for the range start.\n             */\n            startOffset: number;\n            /**\n             * JavaScript script source offset for the range end.\n             */\n            endOffset: number;\n            /**\n             * Collected execution count of the source range.\n             */\n            count: number;\n        }\n        /**\n         * Coverage data for a JavaScript function.\n         */\n        interface FunctionCoverage {\n            /**\n             * JavaScript function name.\n             */\n            functionName: string;\n            /**\n             * Source ranges inside the function with coverage data.\n             */\n            ranges: CoverageRange[];\n            /**\n             * Whether coverage data for this function has block granularity.\n             */\n            isBlockCoverage: boolean;\n        }\n        /**\n         * Coverage data for a JavaScript script.\n         */\n        interface ScriptCoverage {\n            /**\n             * JavaScript script id.\n             */\n            scriptId: Runtime.ScriptId;\n            /**\n             * JavaScript script name or url.\n             */\n            url: string;\n            /**\n             * Functions contained in the script that has coverage data.\n             */\n            functions: FunctionCoverage[];\n        }\n        /**\n         * Describes a type collected during runtime.\n         * @experimental\n         */\n        interface TypeObject {\n            /**\n             * Name of a type collected with type profiling.\n             */\n            name: string;\n        }\n        /**\n         * Source offset and types for a parameter or return value.\n         * @experimental\n         */\n        interface TypeProfileEntry {\n            /**\n             * Source offset of the parameter or end of function for return values.\n             */\n            offset: number;\n            /**\n             * The types for this parameter or return value.\n             */\n            types: TypeObject[];\n        }\n        /**\n         * Type profile data collected during runtime for a JavaScript script.\n         * @experimental\n         */\n        interface ScriptTypeProfile {\n            /**\n             * JavaScript script id.\n             */\n            scriptId: Runtime.ScriptId;\n            /**\n             * JavaScript script name or url.\n             */\n            url: string;\n            /**\n             * Type profile entries for parameters and return values of the functions in the script.\n             */\n            entries: TypeProfileEntry[];\n        }\n        interface SetSamplingIntervalParameterType {\n            /**\n             * New sampling interval in microseconds.\n             */\n            interval: number;\n        }\n        interface StartPreciseCoverageParameterType {\n            /**\n             * Collect accurate call counts beyond simple 'covered' or 'not covered'.\n             */\n            callCount?: boolean | undefined;\n            /**\n             * Collect block-based coverage.\n             */\n            detailed?: boolean | undefined;\n        }\n        interface StopReturnType {\n            /**\n             * Recorded profile.\n             */\n            profile: Profile;\n        }\n        interface TakePreciseCoverageReturnType {\n            /**\n             * Coverage data for the current isolate.\n             */\n            result: ScriptCoverage[];\n        }\n        interface GetBestEffortCoverageReturnType {\n            /**\n             * Coverage data for the current isolate.\n             */\n            result: ScriptCoverage[];\n        }\n        interface TakeTypeProfileReturnType {\n            /**\n             * Type profile for all scripts since startTypeProfile() was turned on.\n             */\n            result: ScriptTypeProfile[];\n        }\n        interface ConsoleProfileStartedEventDataType {\n            id: string;\n            /**\n             * Location of console.profile().\n             */\n            location: Debugger.Location;\n            /**\n             * Profile title passed as an argument to console.profile().\n             */\n            title?: string | undefined;\n        }\n        interface ConsoleProfileFinishedEventDataType {\n            id: string;\n            /**\n             * Location of console.profileEnd().\n             */\n            location: Debugger.Location;\n            profile: Profile;\n            /**\n             * Profile title passed as an argument to console.profile().\n             */\n            title?: string | undefined;\n        }\n    }\n    namespace HeapProfiler {\n        /**\n         * Heap snapshot object id.\n         */\n        type HeapSnapshotObjectId = string;\n        /**\n         * Sampling Heap Profile node. Holds callsite information, allocation statistics and child nodes.\n         */\n        interface SamplingHeapProfileNode {\n            /**\n             * Function location.\n             */\n            callFrame: Runtime.CallFrame;\n            /**\n             * Allocations size in bytes for the node excluding children.\n             */\n            selfSize: number;\n            /**\n             * Child nodes.\n             */\n            children: SamplingHeapProfileNode[];\n        }\n        /**\n         * Profile.\n         */\n        interface SamplingHeapProfile {\n            head: SamplingHeapProfileNode;\n        }\n        interface StartTrackingHeapObjectsParameterType {\n            trackAllocations?: boolean | undefined;\n        }\n        interface StopTrackingHeapObjectsParameterType {\n            /**\n             * If true 'reportHeapSnapshotProgress' events will be generated while snapshot is being taken when the tracking is stopped.\n             */\n            reportProgress?: boolean | undefined;\n        }\n        interface TakeHeapSnapshotParameterType {\n            /**\n             * If true 'reportHeapSnapshotProgress' events will be generated while snapshot is being taken.\n             */\n            reportProgress?: boolean | undefined;\n        }\n        interface GetObjectByHeapObjectIdParameterType {\n            objectId: HeapSnapshotObjectId;\n            /**\n             * Symbolic group name that can be used to release multiple objects.\n             */\n            objectGroup?: string | undefined;\n        }\n        interface AddInspectedHeapObjectParameterType {\n            /**\n             * Heap snapshot object id to be accessible by means of $x command line API.\n             */\n            heapObjectId: HeapSnapshotObjectId;\n        }\n        interface GetHeapObjectIdParameterType {\n            /**\n             * Identifier of the object to get heap object id for.\n             */\n            objectId: Runtime.RemoteObjectId;\n        }\n        interface StartSamplingParameterType {\n            /**\n             * Average sample interval in bytes. Poisson distribution is used for the intervals. The default value is 32768 bytes.\n             */\n            samplingInterval?: number | undefined;\n        }\n        interface GetObjectByHeapObjectIdReturnType {\n            /**\n             * Evaluation result.\n             */\n            result: Runtime.RemoteObject;\n        }\n        interface GetHeapObjectIdReturnType {\n            /**\n             * Id of the heap snapshot object corresponding to the passed remote object id.\n             */\n            heapSnapshotObjectId: HeapSnapshotObjectId;\n        }\n        interface StopSamplingReturnType {\n            /**\n             * Recorded sampling heap profile.\n             */\n            profile: SamplingHeapProfile;\n        }\n        interface GetSamplingProfileReturnType {\n            /**\n             * Return the sampling profile being collected.\n             */\n            profile: SamplingHeapProfile;\n        }\n        interface AddHeapSnapshotChunkEventDataType {\n            chunk: string;\n        }\n        interface ReportHeapSnapshotProgressEventDataType {\n            done: number;\n            total: number;\n            finished?: boolean | undefined;\n        }\n        interface LastSeenObjectIdEventDataType {\n            lastSeenObjectId: number;\n            timestamp: number;\n        }\n        interface HeapStatsUpdateEventDataType {\n            /**\n             * An array of triplets. Each triplet describes a fragment. The first integer is the fragment index, the second integer is a total count of objects for the fragment, the third integer is a total size of the objects for the fragment.\n             */\n            statsUpdate: number[];\n        }\n    }\n    namespace NodeTracing {\n        interface TraceConfig {\n            /**\n             * Controls how the trace buffer stores data.\n             */\n            recordMode?: string;\n            /**\n             * Included category filters.\n             */\n            includedCategories: string[];\n        }\n        interface StartParameterType {\n            traceConfig: TraceConfig;\n        }\n        interface GetCategoriesReturnType {\n            /**\n             * A list of supported tracing categories.\n             */\n            categories: string[];\n        }\n        interface DataCollectedEventDataType {\n            value: Array<{}>;\n        }\n    }\n    namespace NodeWorker {\n        type WorkerID = string;\n        /**\n         * Unique identifier of attached debugging session.\n         */\n        type SessionID = string;\n        interface WorkerInfo {\n            workerId: WorkerID;\n            type: string;\n            title: string;\n            url: string;\n        }\n        interface SendMessageToWorkerParameterType {\n            message: string;\n            /**\n             * Identifier of the session.\n             */\n            sessionId: SessionID;\n        }\n        interface EnableParameterType {\n            /**\n             * Whether to new workers should be paused until the frontend sends `Runtime.runIfWaitingForDebugger`\n             * message to run them.\n             */\n            waitForDebuggerOnStart: boolean;\n        }\n        interface DetachParameterType {\n            sessionId: SessionID;\n        }\n        interface AttachedToWorkerEventDataType {\n            /**\n             * Identifier assigned to the session used to send/receive messages.\n             */\n            sessionId: SessionID;\n            workerInfo: WorkerInfo;\n            waitingForDebugger: boolean;\n        }\n        interface DetachedFromWorkerEventDataType {\n            /**\n             * Detached session identifier.\n             */\n            sessionId: SessionID;\n        }\n        interface ReceivedMessageFromWorkerEventDataType {\n            /**\n             * Identifier of a session which sends a message.\n             */\n            sessionId: SessionID;\n            message: string;\n        }\n    }\n    namespace NodeRuntime {\n        interface NotifyWhenWaitingForDisconnectParameterType {\n            enabled: boolean;\n        }\n    }\n    /**\n     * The `inspector.Session` is used for dispatching messages to the V8 inspector\n     * back-end and receiving message responses and notifications.\n     */\n    class Session extends EventEmitter {\n        /**\n         * Create a new instance of the inspector.Session class.\n         * The inspector session needs to be connected through session.connect() before the messages can be dispatched to the inspector backend.\n         */\n        constructor();\n        /**\n         * Connects a session to the inspector back-end.\n         * @since v8.0.0\n         */\n        connect(): void;\n        /**\n         * Connects a session to the main thread inspector back-end.\n         * An exception will be thrown if this API was not called on a Worker\n         * thread.\n         * @since v12.11.0\n         */\n        connectToMainThread(): void;\n        /**\n         * Immediately close the session. All pending message callbacks will be called\n         * with an error. `session.connect()` will need to be called to be able to send\n         * messages again. Reconnected session will lose all inspector state, such as\n         * enabled agents or configured breakpoints.\n         * @since v8.0.0\n         */\n        disconnect(): void;\n        /**\n         * Posts a message to the inspector back-end. `callback` will be notified when\n         * a response is received. `callback` is a function that accepts two optional\n         * arguments: error and message-specific result.\n         *\n         * ```js\n         * session.post('Runtime.evaluate', { expression: '2 + 2' },\n         *              (error, { result }) => console.log(result));\n         * // Output: { type: 'number', value: 4, description: '4' }\n         * ```\n         *\n         * The latest version of the V8 inspector protocol is published on the [Chrome DevTools Protocol Viewer](https://chromedevtools.github.io/devtools-protocol/v8/).\n         *\n         * Node.js inspector supports all the Chrome DevTools Protocol domains declared\n         * by V8\\. Chrome DevTools Protocol domain provides an interface for interacting\n         * with one of the runtime agents used to inspect the application state and listen\n         * to the run-time events.\n         *\n         * ## Example usage\n         *\n         * Apart from the debugger, various V8 Profilers are available through the DevTools\n         * protocol.\n         * @since v8.0.0\n         */\n        post(method: string, params?: {}, callback?: (err: Error | null, params?: {}) => void): void;\n        post(method: string, callback?: (err: Error | null, params?: {}) => void): void;\n        /**\n         * Returns supported domains.\n         */\n        post(method: 'Schema.getDomains', callback?: (err: Error | null, params: Schema.GetDomainsReturnType) => void): void;\n        /**\n         * Evaluates expression on global object.\n         */\n        post(method: 'Runtime.evaluate', params?: Runtime.EvaluateParameterType, callback?: (err: Error | null, params: Runtime.EvaluateReturnType) => void): void;\n        post(method: 'Runtime.evaluate', callback?: (err: Error | null, params: Runtime.EvaluateReturnType) => void): void;\n        /**\n         * Add handler to promise with given promise object id.\n         */\n        post(method: 'Runtime.awaitPromise', params?: Runtime.AwaitPromiseParameterType, callback?: (err: Error | null, params: Runtime.AwaitPromiseReturnType) => void): void;\n        post(method: 'Runtime.awaitPromise', callback?: (err: Error | null, params: Runtime.AwaitPromiseReturnType) => void): void;\n        /**\n         * Calls function with given declaration on the given object. Object group of the result is inherited from the target object.\n         */\n        post(method: 'Runtime.callFunctionOn', params?: Runtime.CallFunctionOnParameterType, callback?: (err: Error | null, params: Runtime.CallFunctionOnReturnType) => void): void;\n        post(method: 'Runtime.callFunctionOn', callback?: (err: Error | null, params: Runtime.CallFunctionOnReturnType) => void): void;\n        /**\n         * Returns properties of a given object. Object group of the result is inherited from the target object.\n         */\n        post(method: 'Runtime.getProperties', params?: Runtime.GetPropertiesParameterType, callback?: (err: Error | null, params: Runtime.GetPropertiesReturnType) => void): void;\n        post(method: 'Runtime.getProperties', callback?: (err: Error | null, params: Runtime.GetPropertiesReturnType) => void): void;\n        /**\n         * Releases remote object with given id.\n         */\n        post(method: 'Runtime.releaseObject', params?: Runtime.ReleaseObjectParameterType, callback?: (err: Error | null) => void): void;\n        post(method: 'Runtime.releaseObject', callback?: (err: Error | null) => void): void;\n        /**\n         * Releases all remote objects that belong to a given group.\n         */\n        post(method: 'Runtime.releaseObjectGroup', params?: Runtime.ReleaseObjectGroupParameterType, callback?: (err: Error | null) => void): void;\n        post(method: 'Runtime.releaseObjectGroup', callback?: (err: Error | null) => void): void;\n        /**\n         * Tells inspected instance to run if it was waiting for debugger to attach.\n         */\n        post(method: 'Runtime.runIfWaitingForDebugger', callback?: (err: Error | null) => void): void;\n        /**\n         * Enables reporting of execution contexts creation by means of <code>executionContextCreated</code> event. When the reporting gets enabled the event will be sent immediately for each existing execution context.\n         */\n        post(method: 'Runtime.enable', callback?: (err: Error | null) => void): void;\n        /**\n         * Disables reporting of execution contexts creation.\n         */\n        post(method: 'Runtime.disable', callback?: (err: Error | null) => void): void;\n        /**\n         * Discards collected exceptions and console API calls.\n         */\n        post(method: 'Runtime.discardConsoleEntries', callback?: (err: Error | null) => void): void;\n        /**\n         * @experimental\n         */\n        post(method: 'Runtime.setCustomObjectFormatterEnabled', params?: Runtime.SetCustomObjectFormatterEnabledParameterType, callback?: (err: Error | null) => void): void;\n        post(method: 'Runtime.setCustomObjectFormatterEnabled', callback?: (err: Error | null) => void): void;\n        /**\n         * Compiles expression.\n         */\n        post(method: 'Runtime.compileScript', params?: Runtime.CompileScriptParameterType, callback?: (err: Error | null, params: Runtime.CompileScriptReturnType) => void): void;\n        post(method: 'Runtime.compileScript', callback?: (err: Error | null, params: Runtime.CompileScriptReturnType) => void): void;\n        /**\n         * Runs script with given id in a given context.\n         */\n        post(method: 'Runtime.runScript', params?: Runtime.RunScriptParameterType, callback?: (err: Error | null, params: Runtime.RunScriptReturnType) => void): void;\n        post(method: 'Runtime.runScript', callback?: (err: Error | null, params: Runtime.RunScriptReturnType) => void): void;\n        post(method: 'Runtime.queryObjects', params?: Runtime.QueryObjectsParameterType, callback?: (err: Error | null, params: Runtime.QueryObjectsReturnType) => void): void;\n        post(method: 'Runtime.queryObjects', callback?: (err: Error | null, params: Runtime.QueryObjectsReturnType) => void): void;\n        /**\n         * Returns all let, const and class variables from global scope.\n         */\n        post(\n            method: 'Runtime.globalLexicalScopeNames',\n            params?: Runtime.GlobalLexicalScopeNamesParameterType,\n            callback?: (err: Error | null, params: Runtime.GlobalLexicalScopeNamesReturnType) => void\n        ): void;\n        post(method: 'Runtime.globalLexicalScopeNames', callback?: (err: Error | null, params: Runtime.GlobalLexicalScopeNamesReturnType) => void): void;\n        /**\n         * Enables debugger for the given page. Clients should not assume that the debugging has been enabled until the result for this command is received.\n         */\n        post(method: 'Debugger.enable', callback?: (err: Error | null, params: Debugger.EnableReturnType) => void): void;\n        /**\n         * Disables debugger for given page.\n         */\n        post(method: 'Debugger.disable', callback?: (err: Error | null) => void): void;\n        /**\n         * Activates / deactivates all breakpoints on the page.\n         */\n        post(method: 'Debugger.setBreakpointsActive', params?: Debugger.SetBreakpointsActiveParameterType, callback?: (err: Error | null) => void): void;\n        post(method: 'Debugger.setBreakpointsActive', callback?: (err: Error | null) => void): void;\n        /**\n         * Makes page not interrupt on any pauses (breakpoint, exception, dom exception etc).\n         */\n        post(method: 'Debugger.setSkipAllPauses', params?: Debugger.SetSkipAllPausesParameterType, callback?: (err: Error | null) => void): void;\n        post(method: 'Debugger.setSkipAllPauses', callback?: (err: Error | null) => void): void;\n        /**\n         * Sets JavaScript breakpoint at given location specified either by URL or URL regex. Once this command is issued, all existing parsed scripts will have breakpoints resolved and returned in <code>locations</code> property. Further matching script parsing will result in subsequent <code>breakpointResolved</code> events issued. This logical breakpoint will survive page reloads.\n         */\n        post(method: 'Debugger.setBreakpointByUrl', params?: Debugger.SetBreakpointByUrlParameterType, callback?: (err: Error | null, params: Debugger.SetBreakpointByUrlReturnType) => void): void;\n        post(method: 'Debugger.setBreakpointByUrl', callback?: (err: Error | null, params: Debugger.SetBreakpointByUrlReturnType) => void): void;\n        /**\n         * Sets JavaScript breakpoint at a given location.\n         */\n        post(method: 'Debugger.setBreakpoint', params?: Debugger.SetBreakpointParameterType, callback?: (err: Error | null, params: Debugger.SetBreakpointReturnType) => void): void;\n        post(method: 'Debugger.setBreakpoint', callback?: (err: Error | null, params: Debugger.SetBreakpointReturnType) => void): void;\n        /**\n         * Removes JavaScript breakpoint.\n         */\n        post(method: 'Debugger.removeBreakpoint', params?: Debugger.RemoveBreakpointParameterType, callback?: (err: Error | null) => void): void;\n        post(method: 'Debugger.removeBreakpoint', callback?: (err: Error | null) => void): void;\n        /**\n         * Returns possible locations for breakpoint. scriptId in start and end range locations should be the same.\n         */\n        post(\n            method: 'Debugger.getPossibleBreakpoints',\n            params?: Debugger.GetPossibleBreakpointsParameterType,\n            callback?: (err: Error | null, params: Debugger.GetPossibleBreakpointsReturnType) => void\n        ): void;\n        post(method: 'Debugger.getPossibleBreakpoints', callback?: (err: Error | null, params: Debugger.GetPossibleBreakpointsReturnType) => void): void;\n        /**\n         * Continues execution until specific location is reached.\n         */\n        post(method: 'Debugger.continueToLocation', params?: Debugger.ContinueToLocationParameterType, callback?: (err: Error | null) => void): void;\n        post(method: 'Debugger.continueToLocation', callback?: (err: Error | null) => void): void;\n        /**\n         * @experimental\n         */\n        post(method: 'Debugger.pauseOnAsyncCall', params?: Debugger.PauseOnAsyncCallParameterType, callback?: (err: Error | null) => void): void;\n        post(method: 'Debugger.pauseOnAsyncCall', callback?: (err: Error | null) => void): void;\n        /**\n         * Steps over the statement.\n         */\n        post(method: 'Debugger.stepOver', callback?: (err: Error | null) => void): void;\n        /**\n         * Steps into the function call.\n         */\n        post(method: 'Debugger.stepInto', params?: Debugger.StepIntoParameterType, callback?: (err: Error | null) => void): void;\n        post(method: 'Debugger.stepInto', callback?: (err: Error | null) => void): void;\n        /**\n         * Steps out of the function call.\n         */\n        post(method: 'Debugger.stepOut', callback?: (err: Error | null) => void): void;\n        /**\n         * Stops on the next JavaScript statement.\n         */\n        post(method: 'Debugger.pause', callback?: (err: Error | null) => void): void;\n        /**\n         * This method is deprecated - use Debugger.stepInto with breakOnAsyncCall and Debugger.pauseOnAsyncTask instead. Steps into next scheduled async task if any is scheduled before next pause. Returns success when async task is actually scheduled, returns error if no task were scheduled or another scheduleStepIntoAsync was called.\n         * @experimental\n         */\n        post(method: 'Debugger.scheduleStepIntoAsync', callback?: (err: Error | null) => void): void;\n        /**\n         * Resumes JavaScript execution.\n         */\n        post(method: 'Debugger.resume', callback?: (err: Error | null) => void): void;\n        /**\n         * Returns stack trace with given <code>stackTraceId</code>.\n         * @experimental\n         */\n        post(method: 'Debugger.getStackTrace', params?: Debugger.GetStackTraceParameterType, callback?: (err: Error | null, params: Debugger.GetStackTraceReturnType) => void): void;\n        post(method: 'Debugger.getStackTrace', callback?: (err: Error | null, params: Debugger.GetStackTraceReturnType) => void): void;\n        /**\n         * Searches for given string in script content.\n         */\n        post(method: 'Debugger.searchInContent', params?: Debugger.SearchInContentParameterType, callback?: (err: Error | null, params: Debugger.SearchInContentReturnType) => void): void;\n        post(method: 'Debugger.searchInContent', callback?: (err: Error | null, params: Debugger.SearchInContentReturnType) => void): void;\n        /**\n         * Edits JavaScript source live.\n         */\n        post(method: 'Debugger.setScriptSource', params?: Debugger.SetScriptSourceParameterType, callback?: (err: Error | null, params: Debugger.SetScriptSourceReturnType) => void): void;\n        post(method: 'Debugger.setScriptSource', callback?: (err: Error | null, params: Debugger.SetScriptSourceReturnType) => void): void;\n        /**\n         * Restarts particular call frame from the beginning.\n         */\n        post(method: 'Debugger.restartFrame', params?: Debugger.RestartFrameParameterType, callback?: (err: Error | null, params: Debugger.RestartFrameReturnType) => void): void;\n        post(method: 'Debugger.restartFrame', callback?: (err: Error | null, params: Debugger.RestartFrameReturnType) => void): void;\n        /**\n         * Returns source for the script with given id.\n         */\n        post(method: 'Debugger.getScriptSource', params?: Debugger.GetScriptSourceParameterType, callback?: (err: Error | null, params: Debugger.GetScriptSourceReturnType) => void): void;\n        post(method: 'Debugger.getScriptSource', callback?: (err: Error | null, params: Debugger.GetScriptSourceReturnType) => void): void;\n        /**\n         * Defines pause on exceptions state. Can be set to stop on all exceptions, uncaught exceptions or no exceptions. Initial pause on exceptions state is <code>none</code>.\n         */\n        post(method: 'Debugger.setPauseOnExceptions', params?: Debugger.SetPauseOnExceptionsParameterType, callback?: (err: Error | null) => void): void;\n        post(method: 'Debugger.setPauseOnExceptions', callback?: (err: Error | null) => void): void;\n        /**\n         * Evaluates expression on a given call frame.\n         */\n        post(method: 'Debugger.evaluateOnCallFrame', params?: Debugger.EvaluateOnCallFrameParameterType, callback?: (err: Error | null, params: Debugger.EvaluateOnCallFrameReturnType) => void): void;\n        post(method: 'Debugger.evaluateOnCallFrame', callback?: (err: Error | null, params: Debugger.EvaluateOnCallFrameReturnType) => void): void;\n        /**\n         * Changes value of variable in a callframe. Object-based scopes are not supported and must be mutated manually.\n         */\n        post(method: 'Debugger.setVariableValue', params?: Debugger.SetVariableValueParameterType, callback?: (err: Error | null) => void): void;\n        post(method: 'Debugger.setVariableValue', callback?: (err: Error | null) => void): void;\n        /**\n         * Changes return value in top frame. Available only at return break position.\n         * @experimental\n         */\n        post(method: 'Debugger.setReturnValue', params?: Debugger.SetReturnValueParameterType, callback?: (err: Error | null) => void): void;\n        post(method: 'Debugger.setReturnValue', callback?: (err: Error | null) => void): void;\n        /**\n         * Enables or disables async call stacks tracking.\n         */\n        post(method: 'Debugger.setAsyncCallStackDepth', params?: Debugger.SetAsyncCallStackDepthParameterType, callback?: (err: Error | null) => void): void;\n        post(method: 'Debugger.setAsyncCallStackDepth', callback?: (err: Error | null) => void): void;\n        /**\n         * Replace previous blackbox patterns with passed ones. Forces backend to skip stepping/pausing in scripts with url matching one of the patterns. VM will try to leave blackboxed script by performing 'step in' several times, finally resorting to 'step out' if unsuccessful.\n         * @experimental\n         */\n        post(method: 'Debugger.setBlackboxPatterns', params?: Debugger.SetBlackboxPatternsParameterType, callback?: (err: Error | null) => void): void;\n        post(method: 'Debugger.setBlackboxPatterns', callback?: (err: Error | null) => void): void;\n        /**\n         * Makes backend skip steps in the script in blackboxed ranges. VM will try leave blacklisted scripts by performing 'step in' several times, finally resorting to 'step out' if unsuccessful. Positions array contains positions where blackbox state is changed. First interval isn't blackboxed. Array should be sorted.\n         * @experimental\n         */\n        post(method: 'Debugger.setBlackboxedRanges', params?: Debugger.SetBlackboxedRangesParameterType, callback?: (err: Error | null) => void): void;\n        post(method: 'Debugger.setBlackboxedRanges', callback?: (err: Error | null) => void): void;\n        /**\n         * Enables console domain, sends the messages collected so far to the client by means of the <code>messageAdded</code> notification.\n         */\n        post(method: 'Console.enable', callback?: (err: Error | null) => void): void;\n        /**\n         * Disables console domain, prevents further console messages from being reported to the client.\n         */\n        post(method: 'Console.disable', callback?: (err: Error | null) => void): void;\n        /**\n         * Does nothing.\n         */\n        post(method: 'Console.clearMessages', callback?: (err: Error | null) => void): void;\n        post(method: 'Profiler.enable', callback?: (err: Error | null) => void): void;\n        post(method: 'Profiler.disable', callback?: (err: Error | null) => void): void;\n        /**\n         * Changes CPU profiler sampling interval. Must be called before CPU profiles recording started.\n         */\n        post(method: 'Profiler.setSamplingInterval', params?: Profiler.SetSamplingIntervalParameterType, callback?: (err: Error | null) => void): void;\n        post(method: 'Profiler.setSamplingInterval', callback?: (err: Error | null) => void): void;\n        post(method: 'Profiler.start', callback?: (err: Error | null) => void): void;\n        post(method: 'Profiler.stop', callback?: (err: Error | null, params: Profiler.StopReturnType) => void): void;\n        /**\n         * Enable precise code coverage. Coverage data for JavaScript executed before enabling precise code coverage may be incomplete. Enabling prevents running optimized code and resets execution counters.\n         */\n        post(method: 'Profiler.startPreciseCoverage', params?: Profiler.StartPreciseCoverageParameterType, callback?: (err: Error | null) => void): void;\n        post(method: 'Profiler.startPreciseCoverage', callback?: (err: Error | null) => void): void;\n        /**\n         * Disable precise code coverage. Disabling releases unnecessary execution count records and allows executing optimized code.\n         */\n        post(method: 'Profiler.stopPreciseCoverage', callback?: (err: Error | null) => void): void;\n        /**\n         * Collect coverage data for the current isolate, and resets execution counters. Precise code coverage needs to have started.\n         */\n        post(method: 'Profiler.takePreciseCoverage', callback?: (err: Error | null, params: Profiler.TakePreciseCoverageReturnType) => void): void;\n        /**\n         * Collect coverage data for the current isolate. The coverage data may be incomplete due to garbage collection.\n         */\n        post(method: 'Profiler.getBestEffortCoverage', callback?: (err: Error | null, params: Profiler.GetBestEffortCoverageReturnType) => void): void;\n        /**\n         * Enable type profile.\n         * @experimental\n         */\n        post(method: 'Profiler.startTypeProfile', callback?: (err: Error | null) => void): void;\n        /**\n         * Disable type profile. Disabling releases type profile data collected so far.\n         * @experimental\n         */\n        post(method: 'Profiler.stopTypeProfile', callback?: (err: Error | null) => void): void;\n        /**\n         * Collect type profile.\n         * @experimental\n         */\n        post(method: 'Profiler.takeTypeProfile', callback?: (err: Error | null, params: Profiler.TakeTypeProfileReturnType) => void): void;\n        post(method: 'HeapProfiler.enable', callback?: (err: Error | null) => void): void;\n        post(method: 'HeapProfiler.disable', callback?: (err: Error | null) => void): void;\n        post(method: 'HeapProfiler.startTrackingHeapObjects', params?: HeapProfiler.StartTrackingHeapObjectsParameterType, callback?: (err: Error | null) => void): void;\n        post(method: 'HeapProfiler.startTrackingHeapObjects', callback?: (err: Error | null) => void): void;\n        post(method: 'HeapProfiler.stopTrackingHeapObjects', params?: HeapProfiler.StopTrackingHeapObjectsParameterType, callback?: (err: Error | null) => void): void;\n        post(method: 'HeapProfiler.stopTrackingHeapObjects', callback?: (err: Error | null) => void): void;\n        post(method: 'HeapProfiler.takeHeapSnapshot', params?: HeapProfiler.TakeHeapSnapshotParameterType, callback?: (err: Error | null) => void): void;\n        post(method: 'HeapProfiler.takeHeapSnapshot', callback?: (err: Error | null) => void): void;\n        post(method: 'HeapProfiler.collectGarbage', callback?: (err: Error | null) => void): void;\n        post(\n            method: 'HeapProfiler.getObjectByHeapObjectId',\n            params?: HeapProfiler.GetObjectByHeapObjectIdParameterType,\n            callback?: (err: Error | null, params: HeapProfiler.GetObjectByHeapObjectIdReturnType) => void\n        ): void;\n        post(method: 'HeapProfiler.getObjectByHeapObjectId', callback?: (err: Error | null, params: HeapProfiler.GetObjectByHeapObjectIdReturnType) => void): void;\n        /**\n         * Enables console to refer to the node with given id via $x (see Command Line API for more details $x functions).\n         */\n        post(method: 'HeapProfiler.addInspectedHeapObject', params?: HeapProfiler.AddInspectedHeapObjectParameterType, callback?: (err: Error | null) => void): void;\n        post(method: 'HeapProfiler.addInspectedHeapObject', callback?: (err: Error | null) => void): void;\n        post(method: 'HeapProfiler.getHeapObjectId', params?: HeapProfiler.GetHeapObjectIdParameterType, callback?: (err: Error | null, params: HeapProfiler.GetHeapObjectIdReturnType) => void): void;\n        post(method: 'HeapProfiler.getHeapObjectId', callback?: (err: Error | null, params: HeapProfiler.GetHeapObjectIdReturnType) => void): void;\n        post(method: 'HeapProfiler.startSampling', params?: HeapProfiler.StartSamplingParameterType, callback?: (err: Error | null) => void): void;\n        post(method: 'HeapProfiler.startSampling', callback?: (err: Error | null) => void): void;\n        post(method: 'HeapProfiler.stopSampling', callback?: (err: Error | null, params: HeapProfiler.StopSamplingReturnType) => void): void;\n        post(method: 'HeapProfiler.getSamplingProfile', callback?: (err: Error | null, params: HeapProfiler.GetSamplingProfileReturnType) => void): void;\n        /**\n         * Gets supported tracing categories.\n         */\n        post(method: 'NodeTracing.getCategories', callback?: (err: Error | null, params: NodeTracing.GetCategoriesReturnType) => void): void;\n        /**\n         * Start trace events collection.\n         */\n        post(method: 'NodeTracing.start', params?: NodeTracing.StartParameterType, callback?: (err: Error | null) => void): void;\n        post(method: 'NodeTracing.start', callback?: (err: Error | null) => void): void;\n        /**\n         * Stop trace events collection. Remaining collected events will be sent as a sequence of\n         * dataCollected events followed by tracingComplete event.\n         */\n        post(method: 'NodeTracing.stop', callback?: (err: Error | null) => void): void;\n        /**\n         * Sends protocol message over session with given id.\n         */\n        post(method: 'NodeWorker.sendMessageToWorker', params?: NodeWorker.SendMessageToWorkerParameterType, callback?: (err: Error | null) => void): void;\n        post(method: 'NodeWorker.sendMessageToWorker', callback?: (err: Error | null) => void): void;\n        /**\n         * Instructs the inspector to attach to running workers. Will also attach to new workers\n         * as they start\n         */\n        post(method: 'NodeWorker.enable', params?: NodeWorker.EnableParameterType, callback?: (err: Error | null) => void): void;\n        post(method: 'NodeWorker.enable', callback?: (err: Error | null) => void): void;\n        /**\n         * Detaches from all running workers and disables attaching to new workers as they are started.\n         */\n        post(method: 'NodeWorker.disable', callback?: (err: Error | null) => void): void;\n        /**\n         * Detached from the worker with given sessionId.\n         */\n        post(method: 'NodeWorker.detach', params?: NodeWorker.DetachParameterType, callback?: (err: Error | null) => void): void;\n        post(method: 'NodeWorker.detach', callback?: (err: Error | null) => void): void;\n        /**\n         * Enable the `NodeRuntime.waitingForDisconnect`.\n         */\n        post(method: 'NodeRuntime.notifyWhenWaitingForDisconnect', params?: NodeRuntime.NotifyWhenWaitingForDisconnectParameterType, callback?: (err: Error | null) => void): void;\n        post(method: 'NodeRuntime.notifyWhenWaitingForDisconnect', callback?: (err: Error | null) => void): void;\n        // Events\n        addListener(event: string, listener: (...args: any[]) => void): this;\n        /**\n         * Emitted when any notification from the V8 Inspector is received.\n         */\n        addListener(event: 'inspectorNotification', listener: (message: InspectorNotification<{}>) => void): this;\n        /**\n         * Issued when new execution context is created.\n         */\n        addListener(event: 'Runtime.executionContextCreated', listener: (message: InspectorNotification<Runtime.ExecutionContextCreatedEventDataType>) => void): this;\n        /**\n         * Issued when execution context is destroyed.\n         */\n        addListener(event: 'Runtime.executionContextDestroyed', listener: (message: InspectorNotification<Runtime.ExecutionContextDestroyedEventDataType>) => void): this;\n        /**\n         * Issued when all executionContexts were cleared in browser\n         */\n        addListener(event: 'Runtime.executionContextsCleared', listener: () => void): this;\n        /**\n         * Issued when exception was thrown and unhandled.\n         */\n        addListener(event: 'Runtime.exceptionThrown', listener: (message: InspectorNotification<Runtime.ExceptionThrownEventDataType>) => void): this;\n        /**\n         * Issued when unhandled exception was revoked.\n         */\n        addListener(event: 'Runtime.exceptionRevoked', listener: (message: InspectorNotification<Runtime.ExceptionRevokedEventDataType>) => void): this;\n        /**\n         * Issued when console API was called.\n         */\n        addListener(event: 'Runtime.consoleAPICalled', listener: (message: InspectorNotification<Runtime.ConsoleAPICalledEventDataType>) => void): this;\n        /**\n         * Issued when object should be inspected (for example, as a result of inspect() command line API call).\n         */\n        addListener(event: 'Runtime.inspectRequested', listener: (message: InspectorNotification<Runtime.InspectRequestedEventDataType>) => void): this;\n        /**\n         * Fired when virtual machine parses script. This event is also fired for all known and uncollected scripts upon enabling debugger.\n         */\n        addListener(event: 'Debugger.scriptParsed', listener: (message: InspectorNotification<Debugger.ScriptParsedEventDataType>) => void): this;\n        /**\n         * Fired when virtual machine fails to parse the script.\n         */\n        addListener(event: 'Debugger.scriptFailedToParse', listener: (message: InspectorNotification<Debugger.ScriptFailedToParseEventDataType>) => void): this;\n        /**\n         * Fired when breakpoint is resolved to an actual script and location.\n         */\n        addListener(event: 'Debugger.breakpointResolved', listener: (message: InspectorNotification<Debugger.BreakpointResolvedEventDataType>) => void): this;\n        /**\n         * Fired when the virtual machine stopped on breakpoint or exception or any other stop criteria.\n         */\n        addListener(event: 'Debugger.paused', listener: (message: InspectorNotification<Debugger.PausedEventDataType>) => void): this;\n        /**\n         * Fired when the virtual machine resumed execution.\n         */\n        addListener(event: 'Debugger.resumed', listener: () => void): this;\n        /**\n         * Issued when new console message is added.\n         */\n        addListener(event: 'Console.messageAdded', listener: (message: InspectorNotification<Console.MessageAddedEventDataType>) => void): this;\n        /**\n         * Sent when new profile recording is started using console.profile() call.\n         */\n        addListener(event: 'Profiler.consoleProfileStarted', listener: (message: InspectorNotification<Profiler.ConsoleProfileStartedEventDataType>) => void): this;\n        addListener(event: 'Profiler.consoleProfileFinished', listener: (message: InspectorNotification<Profiler.ConsoleProfileFinishedEventDataType>) => void): this;\n        addListener(event: 'HeapProfiler.addHeapSnapshotChunk', listener: (message: InspectorNotification<HeapProfiler.AddHeapSnapshotChunkEventDataType>) => void): this;\n        addListener(event: 'HeapProfiler.resetProfiles', listener: () => void): this;\n        addListener(event: 'HeapProfiler.reportHeapSnapshotProgress', listener: (message: InspectorNotification<HeapProfiler.ReportHeapSnapshotProgressEventDataType>) => void): this;\n        /**\n         * If heap objects tracking has been started then backend regularly sends a current value for last seen object id and corresponding timestamp. If the were changes in the heap since last event then one or more heapStatsUpdate events will be sent before a new lastSeenObjectId event.\n         */\n        addListener(event: 'HeapProfiler.lastSeenObjectId', listener: (message: InspectorNotification<HeapProfiler.LastSeenObjectIdEventDataType>) => void): this;\n        /**\n         * If heap objects tracking has been started then backend may send update for one or more fragments\n         */\n        addListener(event: 'HeapProfiler.heapStatsUpdate', listener: (message: InspectorNotification<HeapProfiler.HeapStatsUpdateEventDataType>) => void): this;\n        /**\n         * Contains an bucket of collected trace events.\n         */\n        addListener(event: 'NodeTracing.dataCollected', listener: (message: InspectorNotification<NodeTracing.DataCollectedEventDataType>) => void): this;\n        /**\n         * Signals that tracing is stopped and there is no trace buffers pending flush, all data were\n         * delivered via dataCollected events.\n         */\n        addListener(event: 'NodeTracing.tracingComplete', listener: () => void): this;\n        /**\n         * Issued when attached to a worker.\n         */\n        addListener(event: 'NodeWorker.attachedToWorker', listener: (message: InspectorNotification<NodeWorker.AttachedToWorkerEventDataType>) => void): this;\n        /**\n         * Issued when detached from the worker.\n         */\n        addListener(event: 'NodeWorker.detachedFromWorker', listener: (message: InspectorNotification<NodeWorker.DetachedFromWorkerEventDataType>) => void): this;\n        /**\n         * Notifies about a new protocol message received from the session\n         * (session ID is provided in attachedToWorker notification).\n         */\n        addListener(event: 'NodeWorker.receivedMessageFromWorker', listener: (message: InspectorNotification<NodeWorker.ReceivedMessageFromWorkerEventDataType>) => void): this;\n        /**\n         * This event is fired instead of `Runtime.executionContextDestroyed` when\n         * enabled.\n         * It is fired when the Node process finished all code execution and is\n         * waiting for all frontends to disconnect.\n         */\n        addListener(event: 'NodeRuntime.waitingForDisconnect', listener: () => void): this;\n        emit(event: string | symbol, ...args: any[]): boolean;\n        emit(event: 'inspectorNotification', message: InspectorNotification<{}>): boolean;\n        emit(event: 'Runtime.executionContextCreated', message: InspectorNotification<Runtime.ExecutionContextCreatedEventDataType>): boolean;\n        emit(event: 'Runtime.executionContextDestroyed', message: InspectorNotification<Runtime.ExecutionContextDestroyedEventDataType>): boolean;\n        emit(event: 'Runtime.executionContextsCleared'): boolean;\n        emit(event: 'Runtime.exceptionThrown', message: InspectorNotification<Runtime.ExceptionThrownEventDataType>): boolean;\n        emit(event: 'Runtime.exceptionRevoked', message: InspectorNotification<Runtime.ExceptionRevokedEventDataType>): boolean;\n        emit(event: 'Runtime.consoleAPICalled', message: InspectorNotification<Runtime.ConsoleAPICalledEventDataType>): boolean;\n        emit(event: 'Runtime.inspectRequested', message: InspectorNotification<Runtime.InspectRequestedEventDataType>): boolean;\n        emit(event: 'Debugger.scriptParsed', message: InspectorNotification<Debugger.ScriptParsedEventDataType>): boolean;\n        emit(event: 'Debugger.scriptFailedToParse', message: InspectorNotification<Debugger.ScriptFailedToParseEventDataType>): boolean;\n        emit(event: 'Debugger.breakpointResolved', message: InspectorNotification<Debugger.BreakpointResolvedEventDataType>): boolean;\n        emit(event: 'Debugger.paused', message: InspectorNotification<Debugger.PausedEventDataType>): boolean;\n        emit(event: 'Debugger.resumed'): boolean;\n        emit(event: 'Console.messageAdded', message: InspectorNotification<Console.MessageAddedEventDataType>): boolean;\n        emit(event: 'Profiler.consoleProfileStarted', message: InspectorNotification<Profiler.ConsoleProfileStartedEventDataType>): boolean;\n        emit(event: 'Profiler.consoleProfileFinished', message: InspectorNotification<Profiler.ConsoleProfileFinishedEventDataType>): boolean;\n        emit(event: 'HeapProfiler.addHeapSnapshotChunk', message: InspectorNotification<HeapProfiler.AddHeapSnapshotChunkEventDataType>): boolean;\n        emit(event: 'HeapProfiler.resetProfiles'): boolean;\n        emit(event: 'HeapProfiler.reportHeapSnapshotProgress', message: InspectorNotification<HeapProfiler.ReportHeapSnapshotProgressEventDataType>): boolean;\n        emit(event: 'HeapProfiler.lastSeenObjectId', message: InspectorNotification<HeapProfiler.LastSeenObjectIdEventDataType>): boolean;\n        emit(event: 'HeapProfiler.heapStatsUpdate', message: InspectorNotification<HeapProfiler.HeapStatsUpdateEventDataType>): boolean;\n        emit(event: 'NodeTracing.dataCollected', message: InspectorNotification<NodeTracing.DataCollectedEventDataType>): boolean;\n        emit(event: 'NodeTracing.tracingComplete'): boolean;\n        emit(event: 'NodeWorker.attachedToWorker', message: InspectorNotification<NodeWorker.AttachedToWorkerEventDataType>): boolean;\n        emit(event: 'NodeWorker.detachedFromWorker', message: InspectorNotification<NodeWorker.DetachedFromWorkerEventDataType>): boolean;\n        emit(event: 'NodeWorker.receivedMessageFromWorker', message: InspectorNotification<NodeWorker.ReceivedMessageFromWorkerEventDataType>): boolean;\n        emit(event: 'NodeRuntime.waitingForDisconnect'): boolean;\n        on(event: string, listener: (...args: any[]) => void): this;\n        /**\n         * Emitted when any notification from the V8 Inspector is received.\n         */\n        on(event: 'inspectorNotification', listener: (message: InspectorNotification<{}>) => void): this;\n        /**\n         * Issued when new execution context is created.\n         */\n        on(event: 'Runtime.executionContextCreated', listener: (message: InspectorNotification<Runtime.ExecutionContextCreatedEventDataType>) => void): this;\n        /**\n         * Issued when execution context is destroyed.\n         */\n        on(event: 'Runtime.executionContextDestroyed', listener: (message: InspectorNotification<Runtime.ExecutionContextDestroyedEventDataType>) => void): this;\n        /**\n         * Issued when all executionContexts were cleared in browser\n         */\n        on(event: 'Runtime.executionContextsCleared', listener: () => void): this;\n        /**\n         * Issued when exception was thrown and unhandled.\n         */\n        on(event: 'Runtime.exceptionThrown', listener: (message: InspectorNotification<Runtime.ExceptionThrownEventDataType>) => void): this;\n        /**\n         * Issued when unhandled exception was revoked.\n         */\n        on(event: 'Runtime.exceptionRevoked', listener: (message: InspectorNotification<Runtime.ExceptionRevokedEventDataType>) => void): this;\n        /**\n         * Issued when console API was called.\n         */\n        on(event: 'Runtime.consoleAPICalled', listener: (message: InspectorNotification<Runtime.ConsoleAPICalledEventDataType>) => void): this;\n        /**\n         * Issued when object should be inspected (for example, as a result of inspect() command line API call).\n         */\n        on(event: 'Runtime.inspectRequested', listener: (message: InspectorNotification<Runtime.InspectRequestedEventDataType>) => void): this;\n        /**\n         * Fired when virtual machine parses script. This event is also fired for all known and uncollected scripts upon enabling debugger.\n         */\n        on(event: 'Debugger.scriptParsed', listener: (message: InspectorNotification<Debugger.ScriptParsedEventDataType>) => void): this;\n        /**\n         * Fired when virtual machine fails to parse the script.\n         */\n        on(event: 'Debugger.scriptFailedToParse', listener: (message: InspectorNotification<Debugger.ScriptFailedToParseEventDataType>) => void): this;\n        /**\n         * Fired when breakpoint is resolved to an actual script and location.\n         */\n        on(event: 'Debugger.breakpointResolved', listener: (message: InspectorNotification<Debugger.BreakpointResolvedEventDataType>) => void): this;\n        /**\n         * Fired when the virtual machine stopped on breakpoint or exception or any other stop criteria.\n         */\n        on(event: 'Debugger.paused', listener: (message: InspectorNotification<Debugger.PausedEventDataType>) => void): this;\n        /**\n         * Fired when the virtual machine resumed execution.\n         */\n        on(event: 'Debugger.resumed', listener: () => void): this;\n        /**\n         * Issued when new console message is added.\n         */\n        on(event: 'Console.messageAdded', listener: (message: InspectorNotification<Console.MessageAddedEventDataType>) => void): this;\n        /**\n         * Sent when new profile recording is started using console.profile() call.\n         */\n        on(event: 'Profiler.consoleProfileStarted', listener: (message: InspectorNotification<Profiler.ConsoleProfileStartedEventDataType>) => void): this;\n        on(event: 'Profiler.consoleProfileFinished', listener: (message: InspectorNotification<Profiler.ConsoleProfileFinishedEventDataType>) => void): this;\n        on(event: 'HeapProfiler.addHeapSnapshotChunk', listener: (message: InspectorNotification<HeapProfiler.AddHeapSnapshotChunkEventDataType>) => void): this;\n        on(event: 'HeapProfiler.resetProfiles', listener: () => void): this;\n        on(event: 'HeapProfiler.reportHeapSnapshotProgress', listener: (message: InspectorNotification<HeapProfiler.ReportHeapSnapshotProgressEventDataType>) => void): this;\n        /**\n         * If heap objects tracking has been started then backend regularly sends a current value for last seen object id and corresponding timestamp. If the were changes in the heap since last event then one or more heapStatsUpdate events will be sent before a new lastSeenObjectId event.\n         */\n        on(event: 'HeapProfiler.lastSeenObjectId', listener: (message: InspectorNotification<HeapProfiler.LastSeenObjectIdEventDataType>) => void): this;\n        /**\n         * If heap objects tracking has been started then backend may send update for one or more fragments\n         */\n        on(event: 'HeapProfiler.heapStatsUpdate', listener: (message: InspectorNotification<HeapProfiler.HeapStatsUpdateEventDataType>) => void): this;\n        /**\n         * Contains an bucket of collected trace events.\n         */\n        on(event: 'NodeTracing.dataCollected', listener: (message: InspectorNotification<NodeTracing.DataCollectedEventDataType>) => void): this;\n        /**\n         * Signals that tracing is stopped and there is no trace buffers pending flush, all data were\n         * delivered via dataCollected events.\n         */\n        on(event: 'NodeTracing.tracingComplete', listener: () => void): this;\n        /**\n         * Issued when attached to a worker.\n         */\n        on(event: 'NodeWorker.attachedToWorker', listener: (message: InspectorNotification<NodeWorker.AttachedToWorkerEventDataType>) => void): this;\n        /**\n         * Issued when detached from the worker.\n         */\n        on(event: 'NodeWorker.detachedFromWorker', listener: (message: InspectorNotification<NodeWorker.DetachedFromWorkerEventDataType>) => void): this;\n        /**\n         * Notifies about a new protocol message received from the session\n         * (session ID is provided in attachedToWorker notification).\n         */\n        on(event: 'NodeWorker.receivedMessageFromWorker', listener: (message: InspectorNotification<NodeWorker.ReceivedMessageFromWorkerEventDataType>) => void): this;\n        /**\n         * This event is fired instead of `Runtime.executionContextDestroyed` when\n         * enabled.\n         * It is fired when the Node process finished all code execution and is\n         * waiting for all frontends to disconnect.\n         */\n        on(event: 'NodeRuntime.waitingForDisconnect', listener: () => void): this;\n        once(event: string, listener: (...args: any[]) => void): this;\n        /**\n         * Emitted when any notification from the V8 Inspector is received.\n         */\n        once(event: 'inspectorNotification', listener: (message: InspectorNotification<{}>) => void): this;\n        /**\n         * Issued when new execution context is created.\n         */\n        once(event: 'Runtime.executionContextCreated', listener: (message: InspectorNotification<Runtime.ExecutionContextCreatedEventDataType>) => void): this;\n        /**\n         * Issued when execution context is destroyed.\n         */\n        once(event: 'Runtime.executionContextDestroyed', listener: (message: InspectorNotification<Runtime.ExecutionContextDestroyedEventDataType>) => void): this;\n        /**\n         * Issued when all executionContexts were cleared in browser\n         */\n        once(event: 'Runtime.executionContextsCleared', listener: () => void): this;\n        /**\n         * Issued when exception was thrown and unhandled.\n         */\n        once(event: 'Runtime.exceptionThrown', listener: (message: InspectorNotification<Runtime.ExceptionThrownEventDataType>) => void): this;\n        /**\n         * Issued when unhandled exception was revoked.\n         */\n        once(event: 'Runtime.exceptionRevoked', listener: (message: InspectorNotification<Runtime.ExceptionRevokedEventDataType>) => void): this;\n        /**\n         * Issued when console API was called.\n         */\n        once(event: 'Runtime.consoleAPICalled', listener: (message: InspectorNotification<Runtime.ConsoleAPICalledEventDataType>) => void): this;\n        /**\n         * Issued when object should be inspected (for example, as a result of inspect() command line API call).\n         */\n        once(event: 'Runtime.inspectRequested', listener: (message: InspectorNotification<Runtime.InspectRequestedEventDataType>) => void): this;\n        /**\n         * Fired when virtual machine parses script. This event is also fired for all known and uncollected scripts upon enabling debugger.\n         */\n        once(event: 'Debugger.scriptParsed', listener: (message: InspectorNotification<Debugger.ScriptParsedEventDataType>) => void): this;\n        /**\n         * Fired when virtual machine fails to parse the script.\n         */\n        once(event: 'Debugger.scriptFailedToParse', listener: (message: InspectorNotification<Debugger.ScriptFailedToParseEventDataType>) => void): this;\n        /**\n         * Fired when breakpoint is resolved to an actual script and location.\n         */\n        once(event: 'Debugger.breakpointResolved', listener: (message: InspectorNotification<Debugger.BreakpointResolvedEventDataType>) => void): this;\n        /**\n         * Fired when the virtual machine stopped on breakpoint or exception or any other stop criteria.\n         */\n        once(event: 'Debugger.paused', listener: (message: InspectorNotification<Debugger.PausedEventDataType>) => void): this;\n        /**\n         * Fired when the virtual machine resumed execution.\n         */\n        once(event: 'Debugger.resumed', listener: () => void): this;\n        /**\n         * Issued when new console message is added.\n         */\n        once(event: 'Console.messageAdded', listener: (message: InspectorNotification<Console.MessageAddedEventDataType>) => void): this;\n        /**\n         * Sent when new profile recording is started using console.profile() call.\n         */\n        once(event: 'Profiler.consoleProfileStarted', listener: (message: InspectorNotification<Profiler.ConsoleProfileStartedEventDataType>) => void): this;\n        once(event: 'Profiler.consoleProfileFinished', listener: (message: InspectorNotification<Profiler.ConsoleProfileFinishedEventDataType>) => void): this;\n        once(event: 'HeapProfiler.addHeapSnapshotChunk', listener: (message: InspectorNotification<HeapProfiler.AddHeapSnapshotChunkEventDataType>) => void): this;\n        once(event: 'HeapProfiler.resetProfiles', listener: () => void): this;\n        once(event: 'HeapProfiler.reportHeapSnapshotProgress', listener: (message: InspectorNotification<HeapProfiler.ReportHeapSnapshotProgressEventDataType>) => void): this;\n        /**\n         * If heap objects tracking has been started then backend regularly sends a current value for last seen object id and corresponding timestamp. If the were changes in the heap since last event then one or more heapStatsUpdate events will be sent before a new lastSeenObjectId event.\n         */\n        once(event: 'HeapProfiler.lastSeenObjectId', listener: (message: InspectorNotification<HeapProfiler.LastSeenObjectIdEventDataType>) => void): this;\n        /**\n         * If heap objects tracking has been started then backend may send update for one or more fragments\n         */\n        once(event: 'HeapProfiler.heapStatsUpdate', listener: (message: InspectorNotification<HeapProfiler.HeapStatsUpdateEventDataType>) => void): this;\n        /**\n         * Contains an bucket of collected trace events.\n         */\n        once(event: 'NodeTracing.dataCollected', listener: (message: InspectorNotification<NodeTracing.DataCollectedEventDataType>) => void): this;\n        /**\n         * Signals that tracing is stopped and there is no trace buffers pending flush, all data were\n         * delivered via dataCollected events.\n         */\n        once(event: 'NodeTracing.tracingComplete', listener: () => void): this;\n        /**\n         * Issued when attached to a worker.\n         */\n        once(event: 'NodeWorker.attachedToWorker', listener: (message: InspectorNotification<NodeWorker.AttachedToWorkerEventDataType>) => void): this;\n        /**\n         * Issued when detached from the worker.\n         */\n        once(event: 'NodeWorker.detachedFromWorker', listener: (message: InspectorNotification<NodeWorker.DetachedFromWorkerEventDataType>) => void): this;\n        /**\n         * Notifies about a new protocol message received from the session\n         * (session ID is provided in attachedToWorker notification).\n         */\n        once(event: 'NodeWorker.receivedMessageFromWorker', listener: (message: InspectorNotification<NodeWorker.ReceivedMessageFromWorkerEventDataType>) => void): this;\n        /**\n         * This event is fired instead of `Runtime.executionContextDestroyed` when\n         * enabled.\n         * It is fired when the Node process finished all code execution and is\n         * waiting for all frontends to disconnect.\n         */\n        once(event: 'NodeRuntime.waitingForDisconnect', listener: () => void): this;\n        prependListener(event: string, listener: (...args: any[]) => void): this;\n        /**\n         * Emitted when any notification from the V8 Inspector is received.\n         */\n        prependListener(event: 'inspectorNotification', listener: (message: InspectorNotification<{}>) => void): this;\n        /**\n         * Issued when new execution context is created.\n         */\n        prependListener(event: 'Runtime.executionContextCreated', listener: (message: InspectorNotification<Runtime.ExecutionContextCreatedEventDataType>) => void): this;\n        /**\n         * Issued when execution context is destroyed.\n         */\n        prependListener(event: 'Runtime.executionContextDestroyed', listener: (message: InspectorNotification<Runtime.ExecutionContextDestroyedEventDataType>) => void): this;\n        /**\n         * Issued when all executionContexts were cleared in browser\n         */\n        prependListener(event: 'Runtime.executionContextsCleared', listener: () => void): this;\n        /**\n         * Issued when exception was thrown and unhandled.\n         */\n        prependListener(event: 'Runtime.exceptionThrown', listener: (message: InspectorNotification<Runtime.ExceptionThrownEventDataType>) => void): this;\n        /**\n         * Issued when unhandled exception was revoked.\n         */\n        prependListener(event: 'Runtime.exceptionRevoked', listener: (message: InspectorNotification<Runtime.ExceptionRevokedEventDataType>) => void): this;\n        /**\n         * Issued when console API was called.\n         */\n        prependListener(event: 'Runtime.consoleAPICalled', listener: (message: InspectorNotification<Runtime.ConsoleAPICalledEventDataType>) => void): this;\n        /**\n         * Issued when object should be inspected (for example, as a result of inspect() command line API call).\n         */\n        prependListener(event: 'Runtime.inspectRequested', listener: (message: InspectorNotification<Runtime.InspectRequestedEventDataType>) => void): this;\n        /**\n         * Fired when virtual machine parses script. This event is also fired for all known and uncollected scripts upon enabling debugger.\n         */\n        prependListener(event: 'Debugger.scriptParsed', listener: (message: InspectorNotification<Debugger.ScriptParsedEventDataType>) => void): this;\n        /**\n         * Fired when virtual machine fails to parse the script.\n         */\n        prependListener(event: 'Debugger.scriptFailedToParse', listener: (message: InspectorNotification<Debugger.ScriptFailedToParseEventDataType>) => void): this;\n        /**\n         * Fired when breakpoint is resolved to an actual script and location.\n         */\n        prependListener(event: 'Debugger.breakpointResolved', listener: (message: InspectorNotification<Debugger.BreakpointResolvedEventDataType>) => void): this;\n        /**\n         * Fired when the virtual machine stopped on breakpoint or exception or any other stop criteria.\n         */\n        prependListener(event: 'Debugger.paused', listener: (message: InspectorNotification<Debugger.PausedEventDataType>) => void): this;\n        /**\n         * Fired when the virtual machine resumed execution.\n         */\n        prependListener(event: 'Debugger.resumed', listener: () => void): this;\n        /**\n         * Issued when new console message is added.\n         */\n        prependListener(event: 'Console.messageAdded', listener: (message: InspectorNotification<Console.MessageAddedEventDataType>) => void): this;\n        /**\n         * Sent when new profile recording is started using console.profile() call.\n         */\n        prependListener(event: 'Profiler.consoleProfileStarted', listener: (message: InspectorNotification<Profiler.ConsoleProfileStartedEventDataType>) => void): this;\n        prependListener(event: 'Profiler.consoleProfileFinished', listener: (message: InspectorNotification<Profiler.ConsoleProfileFinishedEventDataType>) => void): this;\n        prependListener(event: 'HeapProfiler.addHeapSnapshotChunk', listener: (message: InspectorNotification<HeapProfiler.AddHeapSnapshotChunkEventDataType>) => void): this;\n        prependListener(event: 'HeapProfiler.resetProfiles', listener: () => void): this;\n        prependListener(event: 'HeapProfiler.reportHeapSnapshotProgress', listener: (message: InspectorNotification<HeapProfiler.ReportHeapSnapshotProgressEventDataType>) => void): this;\n        /**\n         * If heap objects tracking has been started then backend regularly sends a current value for last seen object id and corresponding timestamp. If the were changes in the heap since last event then one or more heapStatsUpdate events will be sent before a new lastSeenObjectId event.\n         */\n        prependListener(event: 'HeapProfiler.lastSeenObjectId', listener: (message: InspectorNotification<HeapProfiler.LastSeenObjectIdEventDataType>) => void): this;\n        /**\n         * If heap objects tracking has been started then backend may send update for one or more fragments\n         */\n        prependListener(event: 'HeapProfiler.heapStatsUpdate', listener: (message: InspectorNotification<HeapProfiler.HeapStatsUpdateEventDataType>) => void): this;\n        /**\n         * Contains an bucket of collected trace events.\n         */\n        prependListener(event: 'NodeTracing.dataCollected', listener: (message: InspectorNotification<NodeTracing.DataCollectedEventDataType>) => void): this;\n        /**\n         * Signals that tracing is stopped and there is no trace buffers pending flush, all data were\n         * delivered via dataCollected events.\n         */\n        prependListener(event: 'NodeTracing.tracingComplete', listener: () => void): this;\n        /**\n         * Issued when attached to a worker.\n         */\n        prependListener(event: 'NodeWorker.attachedToWorker', listener: (message: InspectorNotification<NodeWorker.AttachedToWorkerEventDataType>) => void): this;\n        /**\n         * Issued when detached from the worker.\n         */\n        prependListener(event: 'NodeWorker.detachedFromWorker', listener: (message: InspectorNotification<NodeWorker.DetachedFromWorkerEventDataType>) => void): this;\n        /**\n         * Notifies about a new protocol message received from the session\n         * (session ID is provided in attachedToWorker notification).\n         */\n        prependListener(event: 'NodeWorker.receivedMessageFromWorker', listener: (message: InspectorNotification<NodeWorker.ReceivedMessageFromWorkerEventDataType>) => void): this;\n        /**\n         * This event is fired instead of `Runtime.executionContextDestroyed` when\n         * enabled.\n         * It is fired when the Node process finished all code execution and is\n         * waiting for all frontends to disconnect.\n         */\n        prependListener(event: 'NodeRuntime.waitingForDisconnect', listener: () => void): this;\n        prependOnceListener(event: string, listener: (...args: any[]) => void): this;\n        /**\n         * Emitted when any notification from the V8 Inspector is received.\n         */\n        prependOnceListener(event: 'inspectorNotification', listener: (message: InspectorNotification<{}>) => void): this;\n        /**\n         * Issued when new execution context is created.\n         */\n        prependOnceListener(event: 'Runtime.executionContextCreated', listener: (message: InspectorNotification<Runtime.ExecutionContextCreatedEventDataType>) => void): this;\n        /**\n         * Issued when execution context is destroyed.\n         */\n        prependOnceListener(event: 'Runtime.executionContextDestroyed', listener: (message: InspectorNotification<Runtime.ExecutionContextDestroyedEventDataType>) => void): this;\n        /**\n         * Issued when all executionContexts were cleared in browser\n         */\n        prependOnceListener(event: 'Runtime.executionContextsCleared', listener: () => void): this;\n        /**\n         * Issued when exception was thrown and unhandled.\n         */\n        prependOnceListener(event: 'Runtime.exceptionThrown', listener: (message: InspectorNotification<Runtime.ExceptionThrownEventDataType>) => void): this;\n        /**\n         * Issued when unhandled exception was revoked.\n         */\n        prependOnceListener(event: 'Runtime.exceptionRevoked', listener: (message: InspectorNotification<Runtime.ExceptionRevokedEventDataType>) => void): this;\n        /**\n         * Issued when console API was called.\n         */\n        prependOnceListener(event: 'Runtime.consoleAPICalled', listener: (message: InspectorNotification<Runtime.ConsoleAPICalledEventDataType>) => void): this;\n        /**\n         * Issued when object should be inspected (for example, as a result of inspect() command line API call).\n         */\n        prependOnceListener(event: 'Runtime.inspectRequested', listener: (message: InspectorNotification<Runtime.InspectRequestedEventDataType>) => void): this;\n        /**\n         * Fired when virtual machine parses script. This event is also fired for all known and uncollected scripts upon enabling debugger.\n         */\n        prependOnceListener(event: 'Debugger.scriptParsed', listener: (message: InspectorNotification<Debugger.ScriptParsedEventDataType>) => void): this;\n        /**\n         * Fired when virtual machine fails to parse the script.\n         */\n        prependOnceListener(event: 'Debugger.scriptFailedToParse', listener: (message: InspectorNotification<Debugger.ScriptFailedToParseEventDataType>) => void): this;\n        /**\n         * Fired when breakpoint is resolved to an actual script and location.\n         */\n        prependOnceListener(event: 'Debugger.breakpointResolved', listener: (message: InspectorNotification<Debugger.BreakpointResolvedEventDataType>) => void): this;\n        /**\n         * Fired when the virtual machine stopped on breakpoint or exception or any other stop criteria.\n         */\n        prependOnceListener(event: 'Debugger.paused', listener: (message: InspectorNotification<Debugger.PausedEventDataType>) => void): this;\n        /**\n         * Fired when the virtual machine resumed execution.\n         */\n        prependOnceListener(event: 'Debugger.resumed', listener: () => void): this;\n        /**\n         * Issued when new console message is added.\n         */\n        prependOnceListener(event: 'Console.messageAdded', listener: (message: InspectorNotification<Console.MessageAddedEventDataType>) => void): this;\n        /**\n         * Sent when new profile recording is started using console.profile() call.\n         */\n        prependOnceListener(event: 'Profiler.consoleProfileStarted', listener: (message: InspectorNotification<Profiler.ConsoleProfileStartedEventDataType>) => void): this;\n        prependOnceListener(event: 'Profiler.consoleProfileFinished', listener: (message: InspectorNotification<Profiler.ConsoleProfileFinishedEventDataType>) => void): this;\n        prependOnceListener(event: 'HeapProfiler.addHeapSnapshotChunk', listener: (message: InspectorNotification<HeapProfiler.AddHeapSnapshotChunkEventDataType>) => void): this;\n        prependOnceListener(event: 'HeapProfiler.resetProfiles', listener: () => void): this;\n        prependOnceListener(event: 'HeapProfiler.reportHeapSnapshotProgress', listener: (message: InspectorNotification<HeapProfiler.ReportHeapSnapshotProgressEventDataType>) => void): this;\n        /**\n         * If heap objects tracking has been started then backend regularly sends a current value for last seen object id and corresponding timestamp. If the were changes in the heap since last event then one or more heapStatsUpdate events will be sent before a new lastSeenObjectId event.\n         */\n        prependOnceListener(event: 'HeapProfiler.lastSeenObjectId', listener: (message: InspectorNotification<HeapProfiler.LastSeenObjectIdEventDataType>) => void): this;\n        /**\n         * If heap objects tracking has been started then backend may send update for one or more fragments\n         */\n        prependOnceListener(event: 'HeapProfiler.heapStatsUpdate', listener: (message: InspectorNotification<HeapProfiler.HeapStatsUpdateEventDataType>) => void): this;\n        /**\n         * Contains an bucket of collected trace events.\n         */\n        prependOnceListener(event: 'NodeTracing.dataCollected', listener: (message: InspectorNotification<NodeTracing.DataCollectedEventDataType>) => void): this;\n        /**\n         * Signals that tracing is stopped and there is no trace buffers pending flush, all data were\n         * delivered via dataCollected events.\n         */\n        prependOnceListener(event: 'NodeTracing.tracingComplete', listener: () => void): this;\n        /**\n         * Issued when attached to a worker.\n         */\n        prependOnceListener(event: 'NodeWorker.attachedToWorker', listener: (message: InspectorNotification<NodeWorker.AttachedToWorkerEventDataType>) => void): this;\n        /**\n         * Issued when detached from the worker.\n         */\n        prependOnceListener(event: 'NodeWorker.detachedFromWorker', listener: (message: InspectorNotification<NodeWorker.DetachedFromWorkerEventDataType>) => void): this;\n        /**\n         * Notifies about a new protocol message received from the session\n         * (session ID is provided in attachedToWorker notification).\n         */\n        prependOnceListener(event: 'NodeWorker.receivedMessageFromWorker', listener: (message: InspectorNotification<NodeWorker.ReceivedMessageFromWorkerEventDataType>) => void): this;\n        /**\n         * This event is fired instead of `Runtime.executionContextDestroyed` when\n         * enabled.\n         * It is fired when the Node process finished all code execution and is\n         * waiting for all frontends to disconnect.\n         */\n        prependOnceListener(event: 'NodeRuntime.waitingForDisconnect', listener: () => void): this;\n    }\n    /**\n     * Activate inspector on host and port. Equivalent to `node --inspect=[[host:]port]`, but can be done programmatically after node has\n     * started.\n     *\n     * If wait is `true`, will block until a client has connected to the inspect port\n     * and flow control has been passed to the debugger client.\n     *\n     * See the `security warning` regarding the `host`parameter usage.\n     * @param [port='what was specified on the CLI'] Port to listen on for inspector connections. Optional.\n     * @param [host='what was specified on the CLI'] Host to listen on for inspector connections. Optional.\n     * @param [wait=false] Block until a client has connected. Optional.\n     */\n    function open(port?: number, host?: string, wait?: boolean): void;\n    /**\n     * Deactivate the inspector. Blocks until there are no active connections.\n     */\n    function close(): void;\n    /**\n     * Return the URL of the active inspector, or `undefined` if there is none.\n     *\n     * ```console\n     * $ node --inspect -p 'inspector.url()'\n     * Debugger listening on ws://127.0.0.1:9229/166e272e-7a30-4d09-97ce-f1c012b43c34\n     * For help see https://nodejs.org/en/docs/inspector\n     * ws://127.0.0.1:9229/166e272e-7a30-4d09-97ce-f1c012b43c34\n     *\n     * $ node --inspect=localhost:3000 -p 'inspector.url()'\n     * Debugger listening on ws://localhost:3000/51cf8d0e-3c36-4c59-8efd-54519839e56a\n     * For help see https://nodejs.org/en/docs/inspector\n     * ws://localhost:3000/51cf8d0e-3c36-4c59-8efd-54519839e56a\n     *\n     * $ node -p 'inspector.url()'\n     * undefined\n     * ```\n     */\n    function url(): string | undefined;\n    /**\n     * Blocks until a client (existing or connected later) has sent`Runtime.runIfWaitingForDebugger` command.\n     *\n     * An exception will be thrown if there is no active inspector.\n     * @since v12.7.0\n     */\n    function waitForDebugger(): void;\n}\ndeclare module 'node:inspector' {\n    import EventEmitter = require('inspector');\n    export = EventEmitter;\n}\n"
    },
    {
      "path": "/node_modules/@types/node/module.d.ts",
      "content": "/**\n * @since v0.3.7\n */\ndeclare module 'module' {\n    import { URL } from 'node:url';\n    namespace Module {\n        /**\n         * The `module.syncBuiltinESMExports()` method updates all the live bindings for\n         * builtin `ES Modules` to match the properties of the `CommonJS` exports. It\n         * does not add or remove exported names from the `ES Modules`.\n         *\n         * ```js\n         * const fs = require('fs');\n         * const assert = require('assert');\n         * const { syncBuiltinESMExports } = require('module');\n         *\n         * fs.readFile = newAPI;\n         *\n         * delete fs.readFileSync;\n         *\n         * function newAPI() {\n         *   // ...\n         * }\n         *\n         * fs.newAPI = newAPI;\n         *\n         * syncBuiltinESMExports();\n         *\n         * import('fs').then((esmFS) => {\n         *   // It syncs the existing readFile property with the new value\n         *   assert.strictEqual(esmFS.readFile, newAPI);\n         *   // readFileSync has been deleted from the required fs\n         *   assert.strictEqual('readFileSync' in fs, false);\n         *   // syncBuiltinESMExports() does not remove readFileSync from esmFS\n         *   assert.strictEqual('readFileSync' in esmFS, true);\n         *   // syncBuiltinESMExports() does not add names\n         *   assert.strictEqual(esmFS.newAPI, undefined);\n         * });\n         * ```\n         * @since v12.12.0\n         */\n        function syncBuiltinESMExports(): void;\n        /**\n         * `path` is the resolved path for the file for which a corresponding source map\n         * should be fetched.\n         * @since v13.7.0, v12.17.0\n         */\n        function findSourceMap(path: string, error?: Error): SourceMap;\n        interface SourceMapPayload {\n            file: string;\n            version: number;\n            sources: string[];\n            sourcesContent: string[];\n            names: string[];\n            mappings: string;\n            sourceRoot: string;\n        }\n        interface SourceMapping {\n            generatedLine: number;\n            generatedColumn: number;\n            originalSource: string;\n            originalLine: number;\n            originalColumn: number;\n        }\n        /**\n         * @since v13.7.0, v12.17.0\n         */\n        class SourceMap {\n            /**\n             * Getter for the payload used to construct the `SourceMap` instance.\n             */\n            readonly payload: SourceMapPayload;\n            constructor(payload: SourceMapPayload);\n            /**\n             * Given a line number and column number in the generated source file, returns\n             * an object representing the position in the original file. The object returned\n             * consists of the following keys:\n             */\n            findEntry(line: number, column: number): SourceMapping;\n        }\n    }\n    interface Module extends NodeModule {}\n    class Module {\n        static runMain(): void;\n        static wrap(code: string): string;\n        static createRequire(path: string | URL): NodeRequire;\n        static builtinModules: string[];\n        static Module: typeof Module;\n        constructor(id: string, parent?: Module);\n    }\n    global {\n        interface ImportMeta {\n            url: string;\n            /**\n             * @experimental\n             * This feature is only available with the `--experimental-import-meta-resolve`\n             * command flag enabled.\n             *\n             * Provides a module-relative resolution function scoped to each module, returning\n             * the URL string.\n             *\n             * @param specified The module specifier to resolve relative to `parent`.\n             * @param parent The absolute parent module URL to resolve from. If none\n             * is specified, the value of `import.meta.url` is used as the default.\n             */\n            resolve?(specified: string, parent?: string | URL): Promise<string>;\n        }\n    }\n    export = Module;\n}\ndeclare module 'node:module' {\n    import module = require('module');\n    export = module;\n}\n"
    },
    {
      "path": "/node_modules/@types/node/net.d.ts",
      "content": "/**\n * > Stability: 2 - Stable\n *\n * The `net` module provides an asynchronous network API for creating stream-based\n * TCP or `IPC` servers ({@link createServer}) and clients\n * ({@link createConnection}).\n *\n * It can be accessed using:\n *\n * ```js\n * const net = require('net');\n * ```\n * @see [source](https://github.com/nodejs/node/blob/v16.9.0/lib/net.js)\n */\ndeclare module 'net' {\n    import * as stream from 'node:stream';\n    import { Abortable, EventEmitter } from 'node:events';\n    import * as dns from 'node:dns';\n    type LookupFunction = (hostname: string, options: dns.LookupOneOptions, callback: (err: NodeJS.ErrnoException | null, address: string, family: number) => void) => void;\n    interface AddressInfo {\n        address: string;\n        family: string;\n        port: number;\n    }\n    interface SocketConstructorOpts {\n        fd?: number | undefined;\n        allowHalfOpen?: boolean | undefined;\n        readable?: boolean | undefined;\n        writable?: boolean | undefined;\n        signal?: AbortSignal;\n    }\n    interface OnReadOpts {\n        buffer: Uint8Array | (() => Uint8Array);\n        /**\n         * This function is called for every chunk of incoming data.\n         * Two arguments are passed to it: the number of bytes written to buffer and a reference to buffer.\n         * Return false from this function to implicitly pause() the socket.\n         */\n        callback(bytesWritten: number, buf: Uint8Array): boolean;\n    }\n    interface ConnectOpts {\n        /**\n         * If specified, incoming data is stored in a single buffer and passed to the supplied callback when data arrives on the socket.\n         * Note: this will cause the streaming functionality to not provide any data, however events like 'error', 'end', and 'close' will\n         * still be emitted as normal and methods like pause() and resume() will also behave as expected.\n         */\n        onread?: OnReadOpts | undefined;\n    }\n    interface TcpSocketConnectOpts extends ConnectOpts {\n        port: number;\n        host?: string | undefined;\n        localAddress?: string | undefined;\n        localPort?: number | undefined;\n        hints?: number | undefined;\n        family?: number | undefined;\n        lookup?: LookupFunction | undefined;\n        noDelay?: boolean | undefined;\n        keepAlive?: boolean | undefined;\n        keepAliveInitialDelay?: number | undefined;\n    }\n    interface IpcSocketConnectOpts extends ConnectOpts {\n        path: string;\n    }\n    type SocketConnectOpts = TcpSocketConnectOpts | IpcSocketConnectOpts;\n    type SocketReadyState = 'opening' | 'open' | 'readOnly' | 'writeOnly' | 'closed';\n    /**\n     * This class is an abstraction of a TCP socket or a streaming `IPC` endpoint\n     * (uses named pipes on Windows, and Unix domain sockets otherwise). It is also\n     * an `EventEmitter`.\n     *\n     * A `net.Socket` can be created by the user and used directly to interact with\n     * a server. For example, it is returned by {@link createConnection},\n     * so the user can use it to talk to the server.\n     *\n     * It can also be created by Node.js and passed to the user when a connection\n     * is received. For example, it is passed to the listeners of a `'connection'` event emitted on a {@link Server}, so the user can use\n     * it to interact with the client.\n     * @since v0.3.4\n     */\n    class Socket extends stream.Duplex {\n        constructor(options?: SocketConstructorOpts);\n        /**\n         * Sends data on the socket. The second parameter specifies the encoding in the\n         * case of a string. It defaults to UTF8 encoding.\n         *\n         * Returns `true` if the entire data was flushed successfully to the kernel\n         * buffer. Returns `false` if all or part of the data was queued in user memory.`'drain'` will be emitted when the buffer is again free.\n         *\n         * The optional `callback` parameter will be executed when the data is finally\n         * written out, which may not be immediately.\n         *\n         * See `Writable` stream `write()` method for more\n         * information.\n         * @since v0.1.90\n         * @param [encoding='utf8'] Only used when data is `string`.\n         */\n        write(buffer: Uint8Array | string, cb?: (err?: Error) => void): boolean;\n        write(str: Uint8Array | string, encoding?: BufferEncoding, cb?: (err?: Error) => void): boolean;\n        /**\n         * Initiate a connection on a given socket.\n         *\n         * Possible signatures:\n         *\n         * * `socket.connect(options[, connectListener])`\n         * * `socket.connect(path[, connectListener])` for `IPC` connections.\n         * * `socket.connect(port[, host][, connectListener])` for TCP connections.\n         * * Returns: `net.Socket` The socket itself.\n         *\n         * This function is asynchronous. When the connection is established, the `'connect'` event will be emitted. If there is a problem connecting,\n         * instead of a `'connect'` event, an `'error'` event will be emitted with\n         * the error passed to the `'error'` listener.\n         * The last parameter `connectListener`, if supplied, will be added as a listener\n         * for the `'connect'` event **once**.\n         *\n         * This function should only be used for reconnecting a socket after`'close'` has been emitted or otherwise it may lead to undefined\n         * behavior.\n         */\n        connect(options: SocketConnectOpts, connectionListener?: () => void): this;\n        connect(port: number, host: string, connectionListener?: () => void): this;\n        connect(port: number, connectionListener?: () => void): this;\n        connect(path: string, connectionListener?: () => void): this;\n        /**\n         * Set the encoding for the socket as a `Readable Stream`. See `readable.setEncoding()` for more information.\n         * @since v0.1.90\n         * @return The socket itself.\n         */\n        setEncoding(encoding?: BufferEncoding): this;\n        /**\n         * Pauses the reading of data. That is, `'data'` events will not be emitted.\n         * Useful to throttle back an upload.\n         * @return The socket itself.\n         */\n        pause(): this;\n        /**\n         * Resumes reading after a call to `socket.pause()`.\n         * @return The socket itself.\n         */\n        resume(): this;\n        /**\n         * Sets the socket to timeout after `timeout` milliseconds of inactivity on\n         * the socket. By default `net.Socket` do not have a timeout.\n         *\n         * When an idle timeout is triggered the socket will receive a `'timeout'` event but the connection will not be severed. The user must manually call `socket.end()` or `socket.destroy()` to\n         * end the connection.\n         *\n         * ```js\n         * socket.setTimeout(3000);\n         * socket.on('timeout', () => {\n         *   console.log('socket timeout');\n         *   socket.end();\n         * });\n         * ```\n         *\n         * If `timeout` is 0, then the existing idle timeout is disabled.\n         *\n         * The optional `callback` parameter will be added as a one-time listener for the `'timeout'` event.\n         * @since v0.1.90\n         * @return The socket itself.\n         */\n        setTimeout(timeout: number, callback?: () => void): this;\n        /**\n         * Enable/disable the use of Nagle's algorithm.\n         *\n         * When a TCP connection is created, it will have Nagle's algorithm enabled.\n         *\n         * Nagle's algorithm delays data before it is sent via the network. It attempts\n         * to optimize throughput at the expense of latency.\n         *\n         * Passing `true` for `noDelay` or not passing an argument will disable Nagle's\n         * algorithm for the socket. Passing `false` for `noDelay` will enable Nagle's\n         * algorithm.\n         * @since v0.1.90\n         * @param [noDelay=true]\n         * @return The socket itself.\n         */\n        setNoDelay(noDelay?: boolean): this;\n        /**\n         * Enable/disable keep-alive functionality, and optionally set the initial\n         * delay before the first keepalive probe is sent on an idle socket.\n         *\n         * Set `initialDelay` (in milliseconds) to set the delay between the last\n         * data packet received and the first keepalive probe. Setting `0` for`initialDelay` will leave the value unchanged from the default\n         * (or previous) setting.\n         *\n         * Enabling the keep-alive functionality will set the following socket options:\n         *\n         * * `SO_KEEPALIVE=1`\n         * * `TCP_KEEPIDLE=initialDelay`\n         * * `TCP_KEEPCNT=10`\n         * * `TCP_KEEPINTVL=1`\n         * @since v0.1.92\n         * @param [enable=false]\n         * @param [initialDelay=0]\n         * @return The socket itself.\n         */\n        setKeepAlive(enable?: boolean, initialDelay?: number): this;\n        /**\n         * Returns the bound `address`, the address `family` name and `port` of the\n         * socket as reported by the operating system:`{ port: 12346, family: 'IPv4', address: '127.0.0.1' }`\n         * @since v0.1.90\n         */\n        address(): AddressInfo | {};\n        /**\n         * Calling `unref()` on a socket will allow the program to exit if this is the only\n         * active socket in the event system. If the socket is already `unref`ed calling`unref()` again will have no effect.\n         * @since v0.9.1\n         * @return The socket itself.\n         */\n        unref(): this;\n        /**\n         * Opposite of `unref()`, calling `ref()` on a previously `unref`ed socket will_not_ let the program exit if it's the only socket left (the default behavior).\n         * If the socket is `ref`ed calling `ref` again will have no effect.\n         * @since v0.9.1\n         * @return The socket itself.\n         */\n        ref(): this;\n        /**\n         * This property shows the number of characters buffered for writing. The buffer\n         * may contain strings whose length after encoding is not yet known. So this number\n         * is only an approximation of the number of bytes in the buffer.\n         *\n         * `net.Socket` has the property that `socket.write()` always works. This is to\n         * help users get up and running quickly. The computer cannot always keep up\n         * with the amount of data that is written to a socket. The network connection\n         * simply might be too slow. Node.js will internally queue up the data written to a\n         * socket and send it out over the wire when it is possible.\n         *\n         * The consequence of this internal buffering is that memory may grow.\n         * Users who experience large or growing `bufferSize` should attempt to\n         * \"throttle\" the data flows in their program with `socket.pause()` and `socket.resume()`.\n         * @since v0.3.8\n         * @deprecated Since v14.6.0 - Use `writableLength` instead.\n         */\n        readonly bufferSize: number;\n        /**\n         * The amount of received bytes.\n         * @since v0.5.3\n         */\n        readonly bytesRead: number;\n        /**\n         * The amount of bytes sent.\n         * @since v0.5.3\n         */\n        readonly bytesWritten: number;\n        /**\n         * If `true`,`socket.connect(options[, connectListener])` was\n         * called and has not yet finished. It will stay `true` until the socket becomes\n         * connected, then it is set to `false` and the `'connect'` event is emitted. Note\n         * that the `socket.connect(options[, connectListener])` callback is a listener for the `'connect'` event.\n         * @since v6.1.0\n         */\n        readonly connecting: boolean;\n        /**\n         * See `writable.destroyed` for further details.\n         */\n        readonly destroyed: boolean;\n        /**\n         * The string representation of the local IP address the remote client is\n         * connecting on. For example, in a server listening on `'0.0.0.0'`, if a client\n         * connects on `'192.168.1.1'`, the value of `socket.localAddress` would be`'192.168.1.1'`.\n         * @since v0.9.6\n         */\n        readonly localAddress?: string;\n        /**\n         * The numeric representation of the local port. For example, `80` or `21`.\n         * @since v0.9.6\n         */\n        readonly localPort?: number;\n        /**\n         * The string representation of the local IP family. `'IPv4'` or `'IPv6'`.\n         * @since v18.8.0, v16.18.0\n         */\n        readonly localFamily?: string;\n        /**\n         * This property represents the state of the connection as a string.\n         * @see {https://nodejs.org/api/net.html#socketreadystate}\n         * @since v0.5.0\n         */\n        readonly readyState: SocketReadyState;\n        /**\n         * The string representation of the remote IP address. For example,`'74.125.127.100'` or `'2001:4860:a005::68'`. Value may be `undefined` if\n         * the socket is destroyed (for example, if the client disconnected).\n         * @since v0.5.10\n         */\n        readonly remoteAddress?: string | undefined;\n        /**\n         * The string representation of the remote IP family. `'IPv4'` or `'IPv6'`.\n         * @since v0.11.14\n         */\n        readonly remoteFamily?: string | undefined;\n        /**\n         * The numeric representation of the remote port. For example, `80` or `21`.\n         * @since v0.5.10\n         */\n        readonly remotePort?: number | undefined;\n        /**\n         * The socket timeout in milliseconds as set by socket.setTimeout(). It is undefined if a timeout has not been set.\n         * @since v10.7.0\n         */\n        readonly timeout?: number | undefined;\n        /**\n         * Half-closes the socket. i.e., it sends a FIN packet. It is possible the\n         * server will still send some data.\n         *\n         * See `writable.end()` for further details.\n         * @since v0.1.90\n         * @param [encoding='utf8'] Only used when data is `string`.\n         * @param callback Optional callback for when the socket is finished.\n         * @return The socket itself.\n         */\n        end(callback?: () => void): this;\n        end(buffer: Uint8Array | string, callback?: () => void): this;\n        end(str: Uint8Array | string, encoding?: BufferEncoding, callback?: () => void): this;\n        /**\n         * events.EventEmitter\n         *   1. close\n         *   2. connect\n         *   3. data\n         *   4. drain\n         *   5. end\n         *   6. error\n         *   7. lookup\n         *   8. timeout\n         */\n        addListener(event: string, listener: (...args: any[]) => void): this;\n        addListener(event: 'close', listener: (hadError: boolean) => void): this;\n        addListener(event: 'connect', listener: () => void): this;\n        addListener(event: 'data', listener: (data: Buffer) => void): this;\n        addListener(event: 'drain', listener: () => void): this;\n        addListener(event: 'end', listener: () => void): this;\n        addListener(event: 'error', listener: (err: Error) => void): this;\n        addListener(event: 'lookup', listener: (err: Error, address: string, family: string | number, host: string) => void): this;\n        addListener(event: 'ready', listener: () => void): this;\n        addListener(event: 'timeout', listener: () => void): this;\n        emit(event: string | symbol, ...args: any[]): boolean;\n        emit(event: 'close', hadError: boolean): boolean;\n        emit(event: 'connect'): boolean;\n        emit(event: 'data', data: Buffer): boolean;\n        emit(event: 'drain'): boolean;\n        emit(event: 'end'): boolean;\n        emit(event: 'error', err: Error): boolean;\n        emit(event: 'lookup', err: Error, address: string, family: string | number, host: string): boolean;\n        emit(event: 'ready'): boolean;\n        emit(event: 'timeout'): boolean;\n        on(event: string, listener: (...args: any[]) => void): this;\n        on(event: 'close', listener: (hadError: boolean) => void): this;\n        on(event: 'connect', listener: () => void): this;\n        on(event: 'data', listener: (data: Buffer) => void): this;\n        on(event: 'drain', listener: () => void): this;\n        on(event: 'end', listener: () => void): this;\n        on(event: 'error', listener: (err: Error) => void): this;\n        on(event: 'lookup', listener: (err: Error, address: string, family: string | number, host: string) => void): this;\n        on(event: 'ready', listener: () => void): this;\n        on(event: 'timeout', listener: () => void): this;\n        once(event: string, listener: (...args: any[]) => void): this;\n        once(event: 'close', listener: (hadError: boolean) => void): this;\n        once(event: 'connect', listener: () => void): this;\n        once(event: 'data', listener: (data: Buffer) => void): this;\n        once(event: 'drain', listener: () => void): this;\n        once(event: 'end', listener: () => void): this;\n        once(event: 'error', listener: (err: Error) => void): this;\n        once(event: 'lookup', listener: (err: Error, address: string, family: string | number, host: string) => void): this;\n        once(event: 'ready', listener: () => void): this;\n        once(event: 'timeout', listener: () => void): this;\n        prependListener(event: string, listener: (...args: any[]) => void): this;\n        prependListener(event: 'close', listener: (hadError: boolean) => void): this;\n        prependListener(event: 'connect', listener: () => void): this;\n        prependListener(event: 'data', listener: (data: Buffer) => void): this;\n        prependListener(event: 'drain', listener: () => void): this;\n        prependListener(event: 'end', listener: () => void): this;\n        prependListener(event: 'error', listener: (err: Error) => void): this;\n        prependListener(event: 'lookup', listener: (err: Error, address: string, family: string | number, host: string) => void): this;\n        prependListener(event: 'ready', listener: () => void): this;\n        prependListener(event: 'timeout', listener: () => void): this;\n        prependOnceListener(event: string, listener: (...args: any[]) => void): this;\n        prependOnceListener(event: 'close', listener: (hadError: boolean) => void): this;\n        prependOnceListener(event: 'connect', listener: () => void): this;\n        prependOnceListener(event: 'data', listener: (data: Buffer) => void): this;\n        prependOnceListener(event: 'drain', listener: () => void): this;\n        prependOnceListener(event: 'end', listener: () => void): this;\n        prependOnceListener(event: 'error', listener: (err: Error) => void): this;\n        prependOnceListener(event: 'lookup', listener: (err: Error, address: string, family: string | number, host: string) => void): this;\n        prependOnceListener(event: 'ready', listener: () => void): this;\n        prependOnceListener(event: 'timeout', listener: () => void): this;\n    }\n    interface ListenOptions extends Abortable {\n        port?: number | undefined;\n        host?: string | undefined;\n        backlog?: number | undefined;\n        path?: string | undefined;\n        exclusive?: boolean | undefined;\n        readableAll?: boolean | undefined;\n        writableAll?: boolean | undefined;\n        /**\n         * @default false\n         */\n        ipv6Only?: boolean | undefined;\n    }\n    interface ServerOpts {\n        /**\n         * Indicates whether half-opened TCP connections are allowed.\n         * @default false\n         */\n        allowHalfOpen?: boolean | undefined;\n        /**\n         * Indicates whether the socket should be paused on incoming connections.\n         * @default false\n         */\n        pauseOnConnect?: boolean | undefined;\n        /**\n         * If set to `true`, it disables the use of Nagle's algorithm immediately after a new incoming connection is received.\n         * @default false\n         * @since v16.5.0\n         */\n        noDelay?: boolean | undefined;\n        /**\n         * If set to `true`, it enables keep-alive functionality on the socket immediately after a new incoming connection is received,\n         * similarly on what is done in `socket.setKeepAlive([enable][, initialDelay])`.\n         * @default false\n         * @since v16.5.0\n         */\n        keepAlive?: boolean | undefined;\n        /**\n         * If set to a positive number, it sets the initial delay before the first keepalive probe is sent on an idle socket.\n         * @default 0\n         * @since v16.5.0\n         */\n        keepAliveInitialDelay?: number | undefined;\n    }\n    /**\n     * This class is used to create a TCP or `IPC` server.\n     * @since v0.1.90\n     */\n    class Server extends EventEmitter {\n        constructor(connectionListener?: (socket: Socket) => void);\n        constructor(options?: ServerOpts, connectionListener?: (socket: Socket) => void);\n        /**\n         * Start a server listening for connections. A `net.Server` can be a TCP or\n         * an `IPC` server depending on what it listens to.\n         *\n         * Possible signatures:\n         *\n         * * `server.listen(handle[, backlog][, callback])`\n         * * `server.listen(options[, callback])`\n         * * `server.listen(path[, backlog][, callback])` for `IPC` servers\n         * * `server.listen([port[, host[, backlog]]][, callback])` for TCP servers\n         *\n         * This function is asynchronous. When the server starts listening, the `'listening'` event will be emitted. The last parameter `callback`will be added as a listener for the `'listening'`\n         * event.\n         *\n         * All `listen()` methods can take a `backlog` parameter to specify the maximum\n         * length of the queue of pending connections. The actual length will be determined\n         * by the OS through sysctl settings such as `tcp_max_syn_backlog` and `somaxconn`on Linux. The default value of this parameter is 511 (not 512).\n         *\n         * All {@link Socket} are set to `SO_REUSEADDR` (see [`socket(7)`](https://man7.org/linux/man-pages/man7/socket.7.html) for\n         * details).\n         *\n         * The `server.listen()` method can be called again if and only if there was an\n         * error during the first `server.listen()` call or `server.close()` has been\n         * called. Otherwise, an `ERR_SERVER_ALREADY_LISTEN` error will be thrown.\n         *\n         * One of the most common errors raised when listening is `EADDRINUSE`.\n         * This happens when another server is already listening on the requested`port`/`path`/`handle`. One way to handle this would be to retry\n         * after a certain amount of time:\n         *\n         * ```js\n         * server.on('error', (e) => {\n         *   if (e.code === 'EADDRINUSE') {\n         *     console.log('Address in use, retrying...');\n         *     setTimeout(() => {\n         *       server.close();\n         *       server.listen(PORT, HOST);\n         *     }, 1000);\n         *   }\n         * });\n         * ```\n         */\n        listen(port?: number, hostname?: string, backlog?: number, listeningListener?: () => void): this;\n        listen(port?: number, hostname?: string, listeningListener?: () => void): this;\n        listen(port?: number, backlog?: number, listeningListener?: () => void): this;\n        listen(port?: number, listeningListener?: () => void): this;\n        listen(path: string, backlog?: number, listeningListener?: () => void): this;\n        listen(path: string, listeningListener?: () => void): this;\n        listen(options: ListenOptions, listeningListener?: () => void): this;\n        listen(handle: any, backlog?: number, listeningListener?: () => void): this;\n        listen(handle: any, listeningListener?: () => void): this;\n        /**\n         * Stops the server from accepting new connections and keeps existing\n         * connections. This function is asynchronous, the server is finally closed\n         * when all connections are ended and the server emits a `'close'` event.\n         * The optional `callback` will be called once the `'close'` event occurs. Unlike\n         * that event, it will be called with an `Error` as its only argument if the server\n         * was not open when it was closed.\n         * @since v0.1.90\n         * @param callback Called when the server is closed.\n         */\n        close(callback?: (err?: Error) => void): this;\n        /**\n         * Returns the bound `address`, the address `family` name, and `port` of the server\n         * as reported by the operating system if listening on an IP socket\n         * (useful to find which port was assigned when getting an OS-assigned address):`{ port: 12346, family: 'IPv4', address: '127.0.0.1' }`.\n         *\n         * For a server listening on a pipe or Unix domain socket, the name is returned\n         * as a string.\n         *\n         * ```js\n         * const server = net.createServer((socket) => {\n         *   socket.end('goodbye\\n');\n         * }).on('error', (err) => {\n         *   // Handle errors here.\n         *   throw err;\n         * });\n         *\n         * // Grab an arbitrary unused port.\n         * server.listen(() => {\n         *   console.log('opened server on', server.address());\n         * });\n         * ```\n         *\n         * `server.address()` returns `null` before the `'listening'` event has been\n         * emitted or after calling `server.close()`.\n         * @since v0.1.90\n         */\n        address(): AddressInfo | string | null;\n        /**\n         * Asynchronously get the number of concurrent connections on the server. Works\n         * when sockets were sent to forks.\n         *\n         * Callback should take two arguments `err` and `count`.\n         * @since v0.9.7\n         */\n        getConnections(cb: (error: Error | null, count: number) => void): void;\n        /**\n         * Opposite of `unref()`, calling `ref()` on a previously `unref`ed server will_not_ let the program exit if it's the only server left (the default behavior).\n         * If the server is `ref`ed calling `ref()` again will have no effect.\n         * @since v0.9.1\n         */\n        ref(): this;\n        /**\n         * Calling `unref()` on a server will allow the program to exit if this is the only\n         * active server in the event system. If the server is already `unref`ed calling`unref()` again will have no effect.\n         * @since v0.9.1\n         */\n        unref(): this;\n        /**\n         * Set this property to reject connections when the server's connection count gets\n         * high.\n         *\n         * It is not recommended to use this option once a socket has been sent to a child\n         * with `child_process.fork()`.\n         * @since v0.2.0\n         */\n        maxConnections: number;\n        connections: number;\n        /**\n         * Indicates whether or not the server is listening for connections.\n         * @since v5.7.0\n         */\n        listening: boolean;\n        /**\n         * events.EventEmitter\n         *   1. close\n         *   2. connection\n         *   3. error\n         *   4. listening\n         */\n        addListener(event: string, listener: (...args: any[]) => void): this;\n        addListener(event: 'close', listener: () => void): this;\n        addListener(event: 'connection', listener: (socket: Socket) => void): this;\n        addListener(event: 'error', listener: (err: Error) => void): this;\n        addListener(event: 'listening', listener: () => void): this;\n        emit(event: string | symbol, ...args: any[]): boolean;\n        emit(event: 'close'): boolean;\n        emit(event: 'connection', socket: Socket): boolean;\n        emit(event: 'error', err: Error): boolean;\n        emit(event: 'listening'): boolean;\n        on(event: string, listener: (...args: any[]) => void): this;\n        on(event: 'close', listener: () => void): this;\n        on(event: 'connection', listener: (socket: Socket) => void): this;\n        on(event: 'error', listener: (err: Error) => void): this;\n        on(event: 'listening', listener: () => void): this;\n        once(event: string, listener: (...args: any[]) => void): this;\n        once(event: 'close', listener: () => void): this;\n        once(event: 'connection', listener: (socket: Socket) => void): this;\n        once(event: 'error', listener: (err: Error) => void): this;\n        once(event: 'listening', listener: () => void): this;\n        prependListener(event: string, listener: (...args: any[]) => void): this;\n        prependListener(event: 'close', listener: () => void): this;\n        prependListener(event: 'connection', listener: (socket: Socket) => void): this;\n        prependListener(event: 'error', listener: (err: Error) => void): this;\n        prependListener(event: 'listening', listener: () => void): this;\n        prependOnceListener(event: string, listener: (...args: any[]) => void): this;\n        prependOnceListener(event: 'close', listener: () => void): this;\n        prependOnceListener(event: 'connection', listener: (socket: Socket) => void): this;\n        prependOnceListener(event: 'error', listener: (err: Error) => void): this;\n        prependOnceListener(event: 'listening', listener: () => void): this;\n    }\n    type IPVersion = 'ipv4' | 'ipv6';\n    /**\n     * The `BlockList` object can be used with some network APIs to specify rules for\n     * disabling inbound or outbound access to specific IP addresses, IP ranges, or\n     * IP subnets.\n     * @since v15.0.0\n     */\n    class BlockList {\n        /**\n         * Adds a rule to block the given IP address.\n         * @since v15.0.0\n         * @param address An IPv4 or IPv6 address.\n         * @param [type='ipv4'] Either `'ipv4'` or `'ipv6'`.\n         */\n        addAddress(address: string, type?: IPVersion): void;\n        addAddress(address: SocketAddress): void;\n        /**\n         * Adds a rule to block a range of IP addresses from `start` (inclusive) to`end` (inclusive).\n         * @since v15.0.0\n         * @param start The starting IPv4 or IPv6 address in the range.\n         * @param end The ending IPv4 or IPv6 address in the range.\n         * @param [type='ipv4'] Either `'ipv4'` or `'ipv6'`.\n         */\n        addRange(start: string, end: string, type?: IPVersion): void;\n        addRange(start: SocketAddress, end: SocketAddress): void;\n        /**\n         * Adds a rule to block a range of IP addresses specified as a subnet mask.\n         * @since v15.0.0\n         * @param net The network IPv4 or IPv6 address.\n         * @param prefix The number of CIDR prefix bits. For IPv4, this must be a value between `0` and `32`. For IPv6, this must be between `0` and `128`.\n         * @param [type='ipv4'] Either `'ipv4'` or `'ipv6'`.\n         */\n        addSubnet(net: SocketAddress, prefix: number): void;\n        addSubnet(net: string, prefix: number, type?: IPVersion): void;\n        /**\n         * Returns `true` if the given IP address matches any of the rules added to the`BlockList`.\n         *\n         * ```js\n         * const blockList = new net.BlockList();\n         * blockList.addAddress('123.123.123.123');\n         * blockList.addRange('10.0.0.1', '10.0.0.10');\n         * blockList.addSubnet('8592:757c:efae:4e45::', 64, 'ipv6');\n         *\n         * console.log(blockList.check('123.123.123.123'));  // Prints: true\n         * console.log(blockList.check('10.0.0.3'));  // Prints: true\n         * console.log(blockList.check('222.111.111.222'));  // Prints: false\n         *\n         * // IPv6 notation for IPv4 addresses works:\n         * console.log(blockList.check('::ffff:7b7b:7b7b', 'ipv6')); // Prints: true\n         * console.log(blockList.check('::ffff:123.123.123.123', 'ipv6')); // Prints: true\n         * ```\n         * @since v15.0.0\n         * @param address The IP address to check\n         * @param [type='ipv4'] Either `'ipv4'` or `'ipv6'`.\n         */\n        check(address: SocketAddress): boolean;\n        check(address: string, type?: IPVersion): boolean;\n    }\n    interface TcpNetConnectOpts extends TcpSocketConnectOpts, SocketConstructorOpts {\n        timeout?: number | undefined;\n    }\n    interface IpcNetConnectOpts extends IpcSocketConnectOpts, SocketConstructorOpts {\n        timeout?: number | undefined;\n    }\n    type NetConnectOpts = TcpNetConnectOpts | IpcNetConnectOpts;\n    /**\n     * Creates a new TCP or `IPC` server.\n     *\n     * If `allowHalfOpen` is set to `true`, when the other end of the socket\n     * signals the end of transmission, the server will only send back the end of\n     * transmission when `socket.end()` is explicitly called. For example, in the\n     * context of TCP, when a FIN packed is received, a FIN packed is sent\n     * back only when `socket.end()` is explicitly called. Until then the\n     * connection is half-closed (non-readable but still writable). See `'end'` event and [RFC 1122](https://tools.ietf.org/html/rfc1122) (section 4.2.2.13) for more information.\n     *\n     * If `pauseOnConnect` is set to `true`, then the socket associated with each\n     * incoming connection will be paused, and no data will be read from its handle.\n     * This allows connections to be passed between processes without any data being\n     * read by the original process. To begin reading data from a paused socket, call `socket.resume()`.\n     *\n     * The server can be a TCP server or an `IPC` server, depending on what it `listen()` to.\n     *\n     * Here is an example of an TCP echo server which listens for connections\n     * on port 8124:\n     *\n     * ```js\n     * const net = require('net');\n     * const server = net.createServer((c) => {\n     *   // 'connection' listener.\n     *   console.log('client connected');\n     *   c.on('end', () => {\n     *     console.log('client disconnected');\n     *   });\n     *   c.write('hello\\r\\n');\n     *   c.pipe(c);\n     * });\n     * server.on('error', (err) => {\n     *   throw err;\n     * });\n     * server.listen(8124, () => {\n     *   console.log('server bound');\n     * });\n     * ```\n     *\n     * Test this by using `telnet`:\n     *\n     * ```console\n     * $ telnet localhost 8124\n     * ```\n     *\n     * To listen on the socket `/tmp/echo.sock`:\n     *\n     * ```js\n     * server.listen('/tmp/echo.sock', () => {\n     *   console.log('server bound');\n     * });\n     * ```\n     *\n     * Use `nc` to connect to a Unix domain socket server:\n     *\n     * ```console\n     * $ nc -U /tmp/echo.sock\n     * ```\n     * @since v0.5.0\n     * @param connectionListener Automatically set as a listener for the {@link 'connection'} event.\n     */\n    function createServer(connectionListener?: (socket: Socket) => void): Server;\n    function createServer(options?: ServerOpts, connectionListener?: (socket: Socket) => void): Server;\n    /**\n     * Aliases to {@link createConnection}.\n     *\n     * Possible signatures:\n     *\n     * * {@link connect}\n     * * {@link connect} for `IPC` connections.\n     * * {@link connect} for TCP connections.\n     */\n    function connect(options: NetConnectOpts, connectionListener?: () => void): Socket;\n    function connect(port: number, host?: string, connectionListener?: () => void): Socket;\n    function connect(path: string, connectionListener?: () => void): Socket;\n    /**\n     * A factory function, which creates a new {@link Socket},\n     * immediately initiates connection with `socket.connect()`,\n     * then returns the `net.Socket` that starts the connection.\n     *\n     * When the connection is established, a `'connect'` event will be emitted\n     * on the returned socket. The last parameter `connectListener`, if supplied,\n     * will be added as a listener for the `'connect'` event **once**.\n     *\n     * Possible signatures:\n     *\n     * * {@link createConnection}\n     * * {@link createConnection} for `IPC` connections.\n     * * {@link createConnection} for TCP connections.\n     *\n     * The {@link connect} function is an alias to this function.\n     */\n    function createConnection(options: NetConnectOpts, connectionListener?: () => void): Socket;\n    function createConnection(port: number, host?: string, connectionListener?: () => void): Socket;\n    function createConnection(path: string, connectionListener?: () => void): Socket;\n    /**\n     * Tests if input is an IP address. Returns `0` for invalid strings,\n     * returns `4` for IP version 4 addresses, and returns `6` for IP version 6\n     * addresses.\n     * @since v0.3.0\n     */\n    function isIP(input: string): number;\n    /**\n     * Returns `true` if input is a version 4 IP address, otherwise returns `false`.\n     * @since v0.3.0\n     */\n    function isIPv4(input: string): boolean;\n    /**\n     * Returns `true` if input is a version 6 IP address, otherwise returns `false`.\n     * @since v0.3.0\n     */\n    function isIPv6(input: string): boolean;\n    interface SocketAddressInitOptions {\n        /**\n         * The network address as either an IPv4 or IPv6 string.\n         * @default 127.0.0.1\n         */\n        address?: string | undefined;\n        /**\n         * @default `'ipv4'`\n         */\n        family?: IPVersion | undefined;\n        /**\n         * An IPv6 flow-label used only if `family` is `'ipv6'`.\n         * @default 0\n         */\n        flowlabel?: number | undefined;\n        /**\n         * An IP port.\n         * @default 0\n         */\n        port?: number | undefined;\n    }\n    /**\n     * @since v15.14.0\n     */\n    class SocketAddress {\n        constructor(options: SocketAddressInitOptions);\n        /**\n         * @since v15.14.0\n         */\n        readonly address: string;\n        /**\n         * Either \\`'ipv4'\\` or \\`'ipv6'\\`.\n         * @since v15.14.0\n         */\n        readonly family: IPVersion;\n        /**\n         * @since v15.14.0\n         */\n        readonly port: number;\n        /**\n         * @since v15.14.0\n         */\n        readonly flowlabel: number;\n    }\n}\ndeclare module 'node:net' {\n    export * from 'net';\n}\n"
    },
    {
      "path": "/node_modules/@types/node/os.d.ts",
      "content": "/**\n * The `os` module provides operating system-related utility methods and\n * properties. It can be accessed using:\n *\n * ```js\n * const os = require('os');\n * ```\n * @see [source](https://github.com/nodejs/node/blob/v16.9.0/lib/os.js)\n */\ndeclare module 'os' {\n    interface CpuInfo {\n        model: string;\n        speed: number;\n        times: {\n            user: number;\n            nice: number;\n            sys: number;\n            idle: number;\n            irq: number;\n        };\n    }\n    interface NetworkInterfaceBase {\n        address: string;\n        netmask: string;\n        mac: string;\n        internal: boolean;\n        cidr: string | null;\n    }\n    interface NetworkInterfaceInfoIPv4 extends NetworkInterfaceBase {\n        family: 'IPv4';\n    }\n    interface NetworkInterfaceInfoIPv6 extends NetworkInterfaceBase {\n        family: 'IPv6';\n        scopeid: number;\n    }\n    interface UserInfo<T> {\n        username: T;\n        uid: number;\n        gid: number;\n        shell: T;\n        homedir: T;\n    }\n    type NetworkInterfaceInfo = NetworkInterfaceInfoIPv4 | NetworkInterfaceInfoIPv6;\n    /**\n     * Returns the host name of the operating system as a string.\n     * @since v0.3.3\n     */\n    function hostname(): string;\n    /**\n     * Returns an array containing the 1, 5, and 15 minute load averages.\n     *\n     * The load average is a measure of system activity calculated by the operating\n     * system and expressed as a fractional number.\n     *\n     * The load average is a Unix-specific concept. On Windows, the return value is\n     * always `[0, 0, 0]`.\n     * @since v0.3.3\n     */\n    function loadavg(): number[];\n    /**\n     * Returns the system uptime in number of seconds.\n     * @since v0.3.3\n     */\n    function uptime(): number;\n    /**\n     * Returns the amount of free system memory in bytes as an integer.\n     * @since v0.3.3\n     */\n    function freemem(): number;\n    /**\n     * Returns the total amount of system memory in bytes as an integer.\n     * @since v0.3.3\n     */\n    function totalmem(): number;\n    /**\n     * Returns an array of objects containing information about each logical CPU core.\n     *\n     * The properties included on each object include:\n     *\n     * ```js\n     * [\n     *   {\n     *     model: 'Intel(R) Core(TM) i7 CPU         860  @ 2.80GHz',\n     *     speed: 2926,\n     *     times: {\n     *       user: 252020,\n     *       nice: 0,\n     *       sys: 30340,\n     *       idle: 1070356870,\n     *       irq: 0\n     *     }\n     *   },\n     *   {\n     *     model: 'Intel(R) Core(TM) i7 CPU         860  @ 2.80GHz',\n     *     speed: 2926,\n     *     times: {\n     *       user: 306960,\n     *       nice: 0,\n     *       sys: 26980,\n     *       idle: 1071569080,\n     *       irq: 0\n     *     }\n     *   },\n     *   {\n     *     model: 'Intel(R) Core(TM) i7 CPU         860  @ 2.80GHz',\n     *     speed: 2926,\n     *     times: {\n     *       user: 248450,\n     *       nice: 0,\n     *       sys: 21750,\n     *       idle: 1070919370,\n     *       irq: 0\n     *     }\n     *   },\n     *   {\n     *     model: 'Intel(R) Core(TM) i7 CPU         860  @ 2.80GHz',\n     *     speed: 2926,\n     *     times: {\n     *       user: 256880,\n     *       nice: 0,\n     *       sys: 19430,\n     *       idle: 1070905480,\n     *       irq: 20\n     *     }\n     *   },\n     * ]\n     * ```\n     *\n     * `nice` values are POSIX-only. On Windows, the `nice` values of all processors\n     * are always 0.\n     * @since v0.3.3\n     */\n    function cpus(): CpuInfo[];\n    /**\n     * Returns the operating system name as returned by [`uname(3)`](https://linux.die.net/man/3/uname). For example, it\n     * returns `'Linux'` on Linux, `'Darwin'` on macOS, and `'Windows_NT'` on Windows.\n     *\n     * See [https://en.wikipedia.org/wiki/Uname#Examples](https://en.wikipedia.org/wiki/Uname#Examples) for additional information\n     * about the output of running [`uname(3)`](https://linux.die.net/man/3/uname) on various operating systems.\n     * @since v0.3.3\n     */\n    function type(): string;\n    /**\n     * Returns the operating system as a string.\n     *\n     * On POSIX systems, the operating system release is determined by calling [`uname(3)`](https://linux.die.net/man/3/uname). On Windows, `GetVersionExW()` is used. See\n     * [https://en.wikipedia.org/wiki/Uname#Examples](https://en.wikipedia.org/wiki/Uname#Examples) for more information.\n     * @since v0.3.3\n     */\n    function release(): string;\n    /**\n     * Returns an object containing network interfaces that have been assigned a\n     * network address.\n     *\n     * Each key on the returned object identifies a network interface. The associated\n     * value is an array of objects that each describe an assigned network address.\n     *\n     * The properties available on the assigned network address object include:\n     *\n     * ```js\n     * {\n     *   lo: [\n     *     {\n     *       address: '127.0.0.1',\n     *       netmask: '255.0.0.0',\n     *       family: 'IPv4',\n     *       mac: '00:00:00:00:00:00',\n     *       internal: true,\n     *       cidr: '127.0.0.1/8'\n     *     },\n     *     {\n     *       address: '::1',\n     *       netmask: 'ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff',\n     *       family: 'IPv6',\n     *       mac: '00:00:00:00:00:00',\n     *       scopeid: 0,\n     *       internal: true,\n     *       cidr: '::1/128'\n     *     }\n     *   ],\n     *   eth0: [\n     *     {\n     *       address: '192.168.1.108',\n     *       netmask: '255.255.255.0',\n     *       family: 'IPv4',\n     *       mac: '01:02:03:0a:0b:0c',\n     *       internal: false,\n     *       cidr: '192.168.1.108/24'\n     *     },\n     *     {\n     *       address: 'fe80::a00:27ff:fe4e:66a1',\n     *       netmask: 'ffff:ffff:ffff:ffff::',\n     *       family: 'IPv6',\n     *       mac: '01:02:03:0a:0b:0c',\n     *       scopeid: 1,\n     *       internal: false,\n     *       cidr: 'fe80::a00:27ff:fe4e:66a1/64'\n     *     }\n     *   ]\n     * }\n     * ```\n     * @since v0.6.0\n     */\n    function networkInterfaces(): NodeJS.Dict<NetworkInterfaceInfo[]>;\n    /**\n     * Returns the string path of the current user's home directory.\n     *\n     * On POSIX, it uses the `$HOME` environment variable if defined. Otherwise it\n     * uses the [effective UID](https://en.wikipedia.org/wiki/User_identifier#Effective_user_ID) to look up the user's home directory.\n     *\n     * On Windows, it uses the `USERPROFILE` environment variable if defined.\n     * Otherwise it uses the path to the profile directory of the current user.\n     * @since v2.3.0\n     */\n    function homedir(): string;\n    /**\n     * Returns information about the currently effective user. On POSIX platforms,\n     * this is typically a subset of the password file. The returned object includes\n     * the `username`, `uid`, `gid`, `shell`, and `homedir`. On Windows, the `uid` and`gid` fields are `-1`, and `shell` is `null`.\n     *\n     * The value of `homedir` returned by `os.userInfo()` is provided by the operating\n     * system. This differs from the result of `os.homedir()`, which queries\n     * environment variables for the home directory before falling back to the\n     * operating system response.\n     *\n     * Throws a `SystemError` if a user has no `username` or `homedir`.\n     * @since v6.0.0\n     */\n    function userInfo(options: { encoding: 'buffer' }): UserInfo<Buffer>;\n    function userInfo(options?: { encoding: BufferEncoding }): UserInfo<string>;\n    type SignalConstants = {\n        [key in NodeJS.Signals]: number;\n    };\n    namespace constants {\n        const UV_UDP_REUSEADDR: number;\n        namespace signals {}\n        const signals: SignalConstants;\n        namespace errno {\n            const E2BIG: number;\n            const EACCES: number;\n            const EADDRINUSE: number;\n            const EADDRNOTAVAIL: number;\n            const EAFNOSUPPORT: number;\n            const EAGAIN: number;\n            const EALREADY: number;\n            const EBADF: number;\n            const EBADMSG: number;\n            const EBUSY: number;\n            const ECANCELED: number;\n            const ECHILD: number;\n            const ECONNABORTED: number;\n            const ECONNREFUSED: number;\n            const ECONNRESET: number;\n            const EDEADLK: number;\n            const EDESTADDRREQ: number;\n            const EDOM: number;\n            const EDQUOT: number;\n            const EEXIST: number;\n            const EFAULT: number;\n            const EFBIG: number;\n            const EHOSTUNREACH: number;\n            const EIDRM: number;\n            const EILSEQ: number;\n            const EINPROGRESS: number;\n            const EINTR: number;\n            const EINVAL: number;\n            const EIO: number;\n            const EISCONN: number;\n            const EISDIR: number;\n            const ELOOP: number;\n            const EMFILE: number;\n            const EMLINK: number;\n            const EMSGSIZE: number;\n            const EMULTIHOP: number;\n            const ENAMETOOLONG: number;\n            const ENETDOWN: number;\n            const ENETRESET: number;\n            const ENETUNREACH: number;\n            const ENFILE: number;\n            const ENOBUFS: number;\n            const ENODATA: number;\n            const ENODEV: number;\n            const ENOENT: number;\n            const ENOEXEC: number;\n            const ENOLCK: number;\n            const ENOLINK: number;\n            const ENOMEM: number;\n            const ENOMSG: number;\n            const ENOPROTOOPT: number;\n            const ENOSPC: number;\n            const ENOSR: number;\n            const ENOSTR: number;\n            const ENOSYS: number;\n            const ENOTCONN: number;\n            const ENOTDIR: number;\n            const ENOTEMPTY: number;\n            const ENOTSOCK: number;\n            const ENOTSUP: number;\n            const ENOTTY: number;\n            const ENXIO: number;\n            const EOPNOTSUPP: number;\n            const EOVERFLOW: number;\n            const EPERM: number;\n            const EPIPE: number;\n            const EPROTO: number;\n            const EPROTONOSUPPORT: number;\n            const EPROTOTYPE: number;\n            const ERANGE: number;\n            const EROFS: number;\n            const ESPIPE: number;\n            const ESRCH: number;\n            const ESTALE: number;\n            const ETIME: number;\n            const ETIMEDOUT: number;\n            const ETXTBSY: number;\n            const EWOULDBLOCK: number;\n            const EXDEV: number;\n            const WSAEINTR: number;\n            const WSAEBADF: number;\n            const WSAEACCES: number;\n            const WSAEFAULT: number;\n            const WSAEINVAL: number;\n            const WSAEMFILE: number;\n            const WSAEWOULDBLOCK: number;\n            const WSAEINPROGRESS: number;\n            const WSAEALREADY: number;\n            const WSAENOTSOCK: number;\n            const WSAEDESTADDRREQ: number;\n            const WSAEMSGSIZE: number;\n            const WSAEPROTOTYPE: number;\n            const WSAENOPROTOOPT: number;\n            const WSAEPROTONOSUPPORT: number;\n            const WSAESOCKTNOSUPPORT: number;\n            const WSAEOPNOTSUPP: number;\n            const WSAEPFNOSUPPORT: number;\n            const WSAEAFNOSUPPORT: number;\n            const WSAEADDRINUSE: number;\n            const WSAEADDRNOTAVAIL: number;\n            const WSAENETDOWN: number;\n            const WSAENETUNREACH: number;\n            const WSAENETRESET: number;\n            const WSAECONNABORTED: number;\n            const WSAECONNRESET: number;\n            const WSAENOBUFS: number;\n            const WSAEISCONN: number;\n            const WSAENOTCONN: number;\n            const WSAESHUTDOWN: number;\n            const WSAETOOMANYREFS: number;\n            const WSAETIMEDOUT: number;\n            const WSAECONNREFUSED: number;\n            const WSAELOOP: number;\n            const WSAENAMETOOLONG: number;\n            const WSAEHOSTDOWN: number;\n            const WSAEHOSTUNREACH: number;\n            const WSAENOTEMPTY: number;\n            const WSAEPROCLIM: number;\n            const WSAEUSERS: number;\n            const WSAEDQUOT: number;\n            const WSAESTALE: number;\n            const WSAEREMOTE: number;\n            const WSASYSNOTREADY: number;\n            const WSAVERNOTSUPPORTED: number;\n            const WSANOTINITIALISED: number;\n            const WSAEDISCON: number;\n            const WSAENOMORE: number;\n            const WSAECANCELLED: number;\n            const WSAEINVALIDPROCTABLE: number;\n            const WSAEINVALIDPROVIDER: number;\n            const WSAEPROVIDERFAILEDINIT: number;\n            const WSASYSCALLFAILURE: number;\n            const WSASERVICE_NOT_FOUND: number;\n            const WSATYPE_NOT_FOUND: number;\n            const WSA_E_NO_MORE: number;\n            const WSA_E_CANCELLED: number;\n            const WSAEREFUSED: number;\n        }\n        namespace priority {\n            const PRIORITY_LOW: number;\n            const PRIORITY_BELOW_NORMAL: number;\n            const PRIORITY_NORMAL: number;\n            const PRIORITY_ABOVE_NORMAL: number;\n            const PRIORITY_HIGH: number;\n            const PRIORITY_HIGHEST: number;\n        }\n    }\n    const devNull: string;\n    const EOL: string;\n    /**\n     * Returns the operating system CPU architecture for which the Node.js binary was\n     * compiled. Possible values are `'arm'`, `'arm64'`, `'ia32'`, `'mips'`,`'mipsel'`, `'ppc'`, `'ppc64'`, `'s390'`, `'s390x'`, `'x32'`, and `'x64'`.\n     *\n     * The return value is equivalent to `process.arch`.\n     * @since v0.5.0\n     */\n    function arch(): string;\n    /**\n     * Returns a string identifying the kernel version.\n     *\n     * On POSIX systems, the operating system release is determined by calling [`uname(3)`](https://linux.die.net/man/3/uname). On Windows, `RtlGetVersion()` is used, and if it is not\n     * available, `GetVersionExW()` will be used. See [https://en.wikipedia.org/wiki/Uname#Examples](https://en.wikipedia.org/wiki/Uname#Examples) for more information.\n     * @since v13.11.0, v12.17.0\n     */\n    function version(): string;\n    /**\n     * Returns a string identifying the operating system platform. The value is set\n     * at compile time. Possible values are `'aix'`, `'darwin'`, `'freebsd'`,`'linux'`, `'openbsd'`, `'sunos'`, and `'win32'`.\n     *\n     * The return value is equivalent to `process.platform`.\n     *\n     * The value `'android'` may also be returned if Node.js is built on the Android\n     * operating system. [Android support is experimental](https://github.com/nodejs/node/blob/HEAD/BUILDING.md#androidandroid-based-devices-eg-firefox-os).\n     * @since v0.5.0\n     */\n    function platform(): NodeJS.Platform;\n    /**\n     * Returns the operating system's default directory for temporary files as a\n     * string.\n     * @since v0.9.9\n     */\n    function tmpdir(): string;\n    /**\n     * Returns a string identifying the endianness of the CPU for which the Node.js\n     * binary was compiled.\n     *\n     * Possible values are `'BE'` for big endian and `'LE'` for little endian.\n     * @since v0.9.4\n     */\n    function endianness(): 'BE' | 'LE';\n    /**\n     * Returns the scheduling priority for the process specified by `pid`. If `pid` is\n     * not provided or is `0`, the priority of the current process is returned.\n     * @since v10.10.0\n     * @param [pid=0] The process ID to retrieve scheduling priority for.\n     */\n    function getPriority(pid?: number): number;\n    /**\n     * Attempts to set the scheduling priority for the process specified by `pid`. If`pid` is not provided or is `0`, the process ID of the current process is used.\n     *\n     * The `priority` input must be an integer between `-20` (high priority) and `19`(low priority). Due to differences between Unix priority levels and Windows\n     * priority classes, `priority` is mapped to one of six priority constants in`os.constants.priority`. When retrieving a process priority level, this range\n     * mapping may cause the return value to be slightly different on Windows. To avoid\n     * confusion, set `priority` to one of the priority constants.\n     *\n     * On Windows, setting priority to `PRIORITY_HIGHEST` requires elevated user\n     * privileges. Otherwise the set priority will be silently reduced to`PRIORITY_HIGH`.\n     * @since v10.10.0\n     * @param [pid=0] The process ID to set scheduling priority for.\n     * @param priority The scheduling priority to assign to the process.\n     */\n    function setPriority(priority: number): void;\n    function setPriority(pid: number, priority: number): void;\n}\ndeclare module 'node:os' {\n    export * from 'os';\n}\n"
    },
    {
      "path": "/node_modules/@types/node/path.d.ts",
      "content": "declare module 'path/posix' {\n    import path = require('path');\n    export = path;\n}\ndeclare module 'path/win32' {\n    import path = require('path');\n    export = path;\n}\n/**\n * The `path` module provides utilities for working with file and directory paths.\n * It can be accessed using:\n *\n * ```js\n * const path = require('path');\n * ```\n * @see [source](https://github.com/nodejs/node/blob/v16.9.0/lib/path.js)\n */\ndeclare module 'path' {\n    namespace path {\n        /**\n         * A parsed path object generated by path.parse() or consumed by path.format().\n         */\n        interface ParsedPath {\n            /**\n             * The root of the path such as '/' or 'c:\\'\n             */\n            root: string;\n            /**\n             * The full directory path such as '/home/user/dir' or 'c:\\path\\dir'\n             */\n            dir: string;\n            /**\n             * The file name including extension (if any) such as 'index.html'\n             */\n            base: string;\n            /**\n             * The file extension (if any) such as '.html'\n             */\n            ext: string;\n            /**\n             * The file name without extension (if any) such as 'index'\n             */\n            name: string;\n        }\n        interface FormatInputPathObject {\n            /**\n             * The root of the path such as '/' or 'c:\\'\n             */\n            root?: string | undefined;\n            /**\n             * The full directory path such as '/home/user/dir' or 'c:\\path\\dir'\n             */\n            dir?: string | undefined;\n            /**\n             * The file name including extension (if any) such as 'index.html'\n             */\n            base?: string | undefined;\n            /**\n             * The file extension (if any) such as '.html'\n             */\n            ext?: string | undefined;\n            /**\n             * The file name without extension (if any) such as 'index'\n             */\n            name?: string | undefined;\n        }\n        interface PlatformPath {\n            /**\n             * Normalize a string path, reducing '..' and '.' parts.\n             * When multiple slashes are found, they're replaced by a single one; when the path contains a trailing slash, it is preserved. On Windows backslashes are used.\n             *\n             * @param path string path to normalize.\n             * @throws {TypeError} if `path` is not a string.\n             */\n            normalize(path: string): string;\n            /**\n             * Join all arguments together and normalize the resulting path.\n             *\n             * @param paths paths to join.\n             * @throws {TypeError} if any of the path segments is not a string.\n             */\n            join(...paths: string[]): string;\n            /**\n             * The right-most parameter is considered {to}. Other parameters are considered an array of {from}.\n             *\n             * Starting from leftmost {from} parameter, resolves {to} to an absolute path.\n             *\n             * If {to} isn't already absolute, {from} arguments are prepended in right to left order,\n             * until an absolute path is found. If after using all {from} paths still no absolute path is found,\n             * the current working directory is used as well. The resulting path is normalized,\n             * and trailing slashes are removed unless the path gets resolved to the root directory.\n             *\n             * @param paths string paths to join.\n             * @throws {TypeError} if any of the arguments is not a string.\n             */\n            resolve(...paths: string[]): string;\n            /**\n             * Determines whether {path} is an absolute path. An absolute path will always resolve to the same location, regardless of the working directory.\n             *\n             * If the given {path} is a zero-length string, `false` will be returned.\n             *\n             * @param path path to test.\n             * @throws {TypeError} if `path` is not a string.\n             */\n            isAbsolute(path: string): boolean;\n            /**\n             * Solve the relative path from {from} to {to} based on the current working directory.\n             * At times we have two absolute paths, and we need to derive the relative path from one to the other. This is actually the reverse transform of path.resolve.\n             *\n             * @throws {TypeError} if either `from` or `to` is not a string.\n             */\n            relative(from: string, to: string): string;\n            /**\n             * Return the directory name of a path. Similar to the Unix dirname command.\n             *\n             * @param path the path to evaluate.\n             * @throws {TypeError} if `path` is not a string.\n             */\n            dirname(path: string): string;\n            /**\n             * Return the last portion of a path. Similar to the Unix basename command.\n             * Often used to extract the file name from a fully qualified path.\n             *\n             * @param path the path to evaluate.\n             * @param ext optionally, an extension to remove from the result.\n             * @throws {TypeError} if `path` is not a string or if `ext` is given and is not a string.\n             */\n            basename(path: string, ext?: string): string;\n            /**\n             * Return the extension of the path, from the last '.' to end of string in the last portion of the path.\n             * If there is no '.' in the last portion of the path or the first character of it is '.', then it returns an empty string.\n             *\n             * @param path the path to evaluate.\n             * @throws {TypeError} if `path` is not a string.\n             */\n            extname(path: string): string;\n            /**\n             * The platform-specific file separator. '\\\\' or '/'.\n             */\n            readonly sep: '\\\\' | '/';\n            /**\n             * The platform-specific file delimiter. ';' or ':'.\n             */\n            readonly delimiter: ';' | ':';\n            /**\n             * Returns an object from a path string - the opposite of format().\n             *\n             * @param path path to evaluate.\n             * @throws {TypeError} if `path` is not a string.\n             */\n            parse(path: string): ParsedPath;\n            /**\n             * Returns a path string from an object - the opposite of parse().\n             *\n             * @param pathObject path to evaluate.\n             */\n            format(pathObject: FormatInputPathObject): string;\n            /**\n             * On Windows systems only, returns an equivalent namespace-prefixed path for the given path.\n             * If path is not a string, path will be returned without modifications.\n             * This method is meaningful only on Windows system.\n             * On POSIX systems, the method is non-operational and always returns path without modifications.\n             */\n            toNamespacedPath(path: string): string;\n            /**\n             * Posix specific pathing.\n             * Same as parent object on posix.\n             */\n            readonly posix: PlatformPath;\n            /**\n             * Windows specific pathing.\n             * Same as parent object on windows\n             */\n            readonly win32: PlatformPath;\n        }\n    }\n    const path: path.PlatformPath;\n    export = path;\n}\ndeclare module 'node:path' {\n    import path = require('path');\n    export = path;\n}\ndeclare module 'node:path/posix' {\n    import path = require('path/posix');\n    export = path;\n}\ndeclare module 'node:path/win32' {\n    import path = require('path/win32');\n    export = path;\n}\n"
    },
    {
      "path": "/node_modules/@types/node/perf_hooks.d.ts",
      "content": "/**\n * This module provides an implementation of a subset of the W3C [Web Performance APIs](https://w3c.github.io/perf-timing-primer/) as well as additional APIs for\n * Node.js-specific performance measurements.\n *\n * Node.js supports the following [Web Performance APIs](https://w3c.github.io/perf-timing-primer/):\n *\n * * [High Resolution Time](https://www.w3.org/TR/hr-time-2)\n * * [Performance Timeline](https://w3c.github.io/performance-timeline/)\n * * [User Timing](https://www.w3.org/TR/user-timing/)\n *\n * ```js\n * const { PerformanceObserver, performance } = require('perf_hooks');\n *\n * const obs = new PerformanceObserver((items) => {\n *   console.log(items.getEntries()[0].duration);\n *   performance.clearMarks();\n * });\n * obs.observe({ type: 'measure' });\n * performance.measure('Start to Now');\n *\n * performance.mark('A');\n * doSomeLongRunningProcess(() => {\n *   performance.measure('A to Now', 'A');\n *\n *   performance.mark('B');\n *   performance.measure('A to B', 'A', 'B');\n * });\n * ```\n * @see [source](https://github.com/nodejs/node/blob/v16.9.0/lib/perf_hooks.js)\n */\ndeclare module 'perf_hooks' {\n    import { AsyncResource } from 'node:async_hooks';\n    type EntryType = 'node' | 'mark' | 'measure' | 'gc' | 'function' | 'http2' | 'http';\n    interface NodeGCPerformanceDetail {\n        /**\n         * When `performanceEntry.entryType` is equal to 'gc', `the performance.kind` property identifies\n         * the type of garbage collection operation that occurred.\n         * See perf_hooks.constants for valid values.\n         */\n        readonly kind?: number | undefined;\n        /**\n         * When `performanceEntry.entryType` is equal to 'gc', the `performance.flags`\n         * property contains additional information about garbage collection operation.\n         * See perf_hooks.constants for valid values.\n         */\n        readonly flags?: number | undefined;\n    }\n    /**\n     * @since v8.5.0\n     */\n    class PerformanceEntry {\n        protected constructor();\n        /**\n         * The total number of milliseconds elapsed for this entry. This value will not\n         * be meaningful for all Performance Entry types.\n         * @since v8.5.0\n         */\n        readonly duration: number;\n        /**\n         * The name of the performance entry.\n         * @since v8.5.0\n         */\n        readonly name: string;\n        /**\n         * The high resolution millisecond timestamp marking the starting time of the\n         * Performance Entry.\n         * @since v8.5.0\n         */\n        readonly startTime: number;\n        /**\n         * The type of the performance entry. It may be one of:\n         *\n         * * `'node'` (Node.js only)\n         * * `'mark'` (available on the Web)\n         * * `'measure'` (available on the Web)\n         * * `'gc'` (Node.js only)\n         * * `'function'` (Node.js only)\n         * * `'http2'` (Node.js only)\n         * * `'http'` (Node.js only)\n         * @since v8.5.0\n         */\n        readonly entryType: EntryType;\n        /**\n         * Additional detail specific to the `entryType`.\n         * @since v16.0.0\n         */\n        readonly detail?: NodeGCPerformanceDetail | unknown | undefined; // TODO: Narrow this based on entry type.\n    }\n    /**\n     * _This property is an extension by Node.js. It is not available in Web browsers._\n     *\n     * Provides timing details for Node.js itself. The constructor of this class\n     * is not exposed to users.\n     * @since v8.5.0\n     */\n    class PerformanceNodeTiming extends PerformanceEntry {\n        /**\n         * The high resolution millisecond timestamp at which the Node.js process\n         * completed bootstrapping. If bootstrapping has not yet finished, the property\n         * has the value of -1.\n         * @since v8.5.0\n         */\n        readonly bootstrapComplete: number;\n        /**\n         * The high resolution millisecond timestamp at which the Node.js environment was\n         * initialized.\n         * @since v8.5.0\n         */\n        readonly environment: number;\n        /**\n         * The high resolution millisecond timestamp of the amount of time the event loop\n         * has been idle within the event loop's event provider (e.g. `epoll_wait`). This\n         * does not take CPU usage into consideration. If the event loop has not yet\n         * started (e.g., in the first tick of the main script), the property has the\n         * value of 0.\n         * @since v14.10.0, v12.19.0\n         */\n        readonly idleTime: number;\n        /**\n         * The high resolution millisecond timestamp at which the Node.js event loop\n         * exited. If the event loop has not yet exited, the property has the value of -1\\.\n         * It can only have a value of not -1 in a handler of the `'exit'` event.\n         * @since v8.5.0\n         */\n        readonly loopExit: number;\n        /**\n         * The high resolution millisecond timestamp at which the Node.js event loop\n         * started. If the event loop has not yet started (e.g., in the first tick of the\n         * main script), the property has the value of -1.\n         * @since v8.5.0\n         */\n        readonly loopStart: number;\n        /**\n         * The high resolution millisecond timestamp at which the V8 platform was\n         * initialized.\n         * @since v8.5.0\n         */\n        readonly v8Start: number;\n    }\n    interface EventLoopUtilization {\n        idle: number;\n        active: number;\n        utilization: number;\n    }\n    /**\n     * @param util1 The result of a previous call to eventLoopUtilization()\n     * @param util2 The result of a previous call to eventLoopUtilization() prior to util1\n     */\n    type EventLoopUtilityFunction = (util1?: EventLoopUtilization, util2?: EventLoopUtilization) => EventLoopUtilization;\n    interface MarkOptions {\n        /**\n         * Additional optional detail to include with the mark.\n         */\n        detail?: unknown | undefined;\n        /**\n         * An optional timestamp to be used as the mark time.\n         * @default `performance.now()`.\n         */\n        startTime?: number | undefined;\n    }\n    interface MeasureOptions {\n        /**\n         * Additional optional detail to include with the mark.\n         */\n        detail?: unknown | undefined;\n        /**\n         * Duration between start and end times.\n         */\n        duration?: number | undefined;\n        /**\n         * Timestamp to be used as the end time, or a string identifying a previously recorded mark.\n         */\n        end?: number | string | undefined;\n        /**\n         * Timestamp to be used as the start time, or a string identifying a previously recorded mark.\n         */\n        start?: number | string | undefined;\n    }\n    interface TimerifyOptions {\n        /**\n         * A histogram object created using\n         * `perf_hooks.createHistogram()` that will record runtime durations in\n         * nanoseconds.\n         */\n        histogram?: RecordableHistogram | undefined;\n    }\n    interface Performance {\n        /**\n         * If name is not provided, removes all PerformanceMark objects from the Performance Timeline.\n         * If name is provided, removes only the named mark.\n         * @param name\n         */\n        clearMarks(name?: string): void;\n        /**\n         * If name is not provided, removes all PerformanceMeasure objects from the Performance Timeline.\n         * If name is provided, removes only the named measure.\n         * @param name\n         * @since v16.7.0\n         */\n        clearMeasures(name?: string): void;\n        /**\n         * Returns a list of `PerformanceEntry` objects in chronological order with respect to `performanceEntry.startTime`.\n         * If you are only interested in performance entries of certain types or that have certain names, see\n         * `performance.getEntriesByType()` and `performance.getEntriesByName()`.\n         * @since v16.7.0\n         */\n        getEntries(): PerformanceEntry[];\n        /**\n         * Returns a list of `PerformanceEntry` objects in chronological order with respect to `performanceEntry.startTime`\n         * whose `performanceEntry.name` is equal to `name`, and optionally, whose `performanceEntry.entryType` is equal to `type`.\n         * @param name\n         * @param type\n         * @since v16.7.0\n         */\n        getEntriesByName(name: string, type?: EntryType): PerformanceEntry[];\n        /**\n         * Returns a list of `PerformanceEntry` objects in chronological order with respect to `performanceEntry.startTime`\n         * whose `performanceEntry.entryType` is equal to `type`.\n         * @param type\n         * @since v16.7.0\n         */\n        getEntriesByType(type: EntryType): PerformanceEntry[];\n        /**\n         * Creates a new PerformanceMark entry in the Performance Timeline.\n         * A PerformanceMark is a subclass of PerformanceEntry whose performanceEntry.entryType is always 'mark',\n         * and whose performanceEntry.duration is always 0.\n         * Performance marks are used to mark specific significant moments in the Performance Timeline.\n         * @param name\n         */\n        mark(name?: string, options?: MarkOptions): void;\n        /**\n         * Creates a new PerformanceMeasure entry in the Performance Timeline.\n         * A PerformanceMeasure is a subclass of PerformanceEntry whose performanceEntry.entryType is always 'measure',\n         * and whose performanceEntry.duration measures the number of milliseconds elapsed since startMark and endMark.\n         *\n         * The startMark argument may identify any existing PerformanceMark in the the Performance Timeline, or may identify\n         * any of the timestamp properties provided by the PerformanceNodeTiming class. If the named startMark does not exist,\n         * then startMark is set to timeOrigin by default.\n         *\n         * The endMark argument must identify any existing PerformanceMark in the the Performance Timeline or any of the timestamp\n         * properties provided by the PerformanceNodeTiming class. If the named endMark does not exist, an error will be thrown.\n         * @param name\n         * @param startMark\n         * @param endMark\n         */\n        measure(name: string, startMark?: string, endMark?: string): void;\n        measure(name: string, options: MeasureOptions): void;\n        /**\n         * An instance of the PerformanceNodeTiming class that provides performance metrics for specific Node.js operational milestones.\n         */\n        readonly nodeTiming: PerformanceNodeTiming;\n        /**\n         * @return the current high resolution millisecond timestamp\n         */\n        now(): number;\n        /**\n         * The timeOrigin specifies the high resolution millisecond timestamp from which all performance metric durations are measured.\n         */\n        readonly timeOrigin: number;\n        /**\n         * Wraps a function within a new function that measures the running time of the wrapped function.\n         * A PerformanceObserver must be subscribed to the 'function' event type in order for the timing details to be accessed.\n         * @param fn\n         */\n        timerify<T extends (...params: any[]) => any>(fn: T, options?: TimerifyOptions): T;\n        /**\n         * eventLoopUtilization is similar to CPU utilization except that it is calculated using high precision wall-clock time.\n         * It represents the percentage of time the event loop has spent outside the event loop's event provider (e.g. epoll_wait).\n         * No other CPU idle time is taken into consideration.\n         */\n        eventLoopUtilization: EventLoopUtilityFunction;\n    }\n    interface PerformanceObserverEntryList {\n        /**\n         * Returns a list of `PerformanceEntry` objects in chronological order\n         * with respect to `performanceEntry.startTime`.\n         *\n         * ```js\n         * const {\n         *   performance,\n         *   PerformanceObserver\n         * } = require('perf_hooks');\n         *\n         * const obs = new PerformanceObserver((perfObserverList, observer) => {\n         *   console.log(perfObserverList.getEntries());\n         *\n         *    * [\n         *    *   PerformanceEntry {\n         *    *     name: 'test',\n         *    *     entryType: 'mark',\n         *    *     startTime: 81.465639,\n         *    *     duration: 0\n         *    *   },\n         *    *   PerformanceEntry {\n         *    *     name: 'meow',\n         *    *     entryType: 'mark',\n         *    *     startTime: 81.860064,\n         *    *     duration: 0\n         *    *   }\n         *    * ]\n         *\n         *   observer.disconnect();\n         * });\n         * obs.observe({ type: 'mark' });\n         *\n         * performance.mark('test');\n         * performance.mark('meow');\n         * ```\n         * @since v8.5.0\n         */\n        getEntries(): PerformanceEntry[];\n        /**\n         * Returns a list of `PerformanceEntry` objects in chronological order\n         * with respect to `performanceEntry.startTime` whose `performanceEntry.name` is\n         * equal to `name`, and optionally, whose `performanceEntry.entryType` is equal to`type`.\n         *\n         * ```js\n         * const {\n         *   performance,\n         *   PerformanceObserver\n         * } = require('perf_hooks');\n         *\n         * const obs = new PerformanceObserver((perfObserverList, observer) => {\n         *   console.log(perfObserverList.getEntriesByName('meow'));\n         *\n         *    * [\n         *    *   PerformanceEntry {\n         *    *     name: 'meow',\n         *    *     entryType: 'mark',\n         *    *     startTime: 98.545991,\n         *    *     duration: 0\n         *    *   }\n         *    * ]\n         *\n         *   console.log(perfObserverList.getEntriesByName('nope')); // []\n         *\n         *   console.log(perfObserverList.getEntriesByName('test', 'mark'));\n         *\n         *    * [\n         *    *   PerformanceEntry {\n         *    *     name: 'test',\n         *    *     entryType: 'mark',\n         *    *     startTime: 63.518931,\n         *    *     duration: 0\n         *    *   }\n         *    * ]\n         *\n         *   console.log(perfObserverList.getEntriesByName('test', 'measure')); // []\n         *   observer.disconnect();\n         * });\n         * obs.observe({ entryTypes: ['mark', 'measure'] });\n         *\n         * performance.mark('test');\n         * performance.mark('meow');\n         * ```\n         * @since v8.5.0\n         */\n        getEntriesByName(name: string, type?: EntryType): PerformanceEntry[];\n        /**\n         * Returns a list of `PerformanceEntry` objects in chronological order\n         * with respect to `performanceEntry.startTime` whose `performanceEntry.entryType`is equal to `type`.\n         *\n         * ```js\n         * const {\n         *   performance,\n         *   PerformanceObserver\n         * } = require('perf_hooks');\n         *\n         * const obs = new PerformanceObserver((perfObserverList, observer) => {\n         *   console.log(perfObserverList.getEntriesByType('mark'));\n         *\n         *    * [\n         *    *   PerformanceEntry {\n         *    *     name: 'test',\n         *    *     entryType: 'mark',\n         *    *     startTime: 55.897834,\n         *    *     duration: 0\n         *    *   },\n         *    *   PerformanceEntry {\n         *    *     name: 'meow',\n         *    *     entryType: 'mark',\n         *    *     startTime: 56.350146,\n         *    *     duration: 0\n         *    *   }\n         *    * ]\n         *\n         *   observer.disconnect();\n         * });\n         * obs.observe({ type: 'mark' });\n         *\n         * performance.mark('test');\n         * performance.mark('meow');\n         * ```\n         * @since v8.5.0\n         */\n        getEntriesByType(type: EntryType): PerformanceEntry[];\n    }\n    type PerformanceObserverCallback = (list: PerformanceObserverEntryList, observer: PerformanceObserver) => void;\n    class PerformanceObserver extends AsyncResource {\n        constructor(callback: PerformanceObserverCallback);\n        /**\n         * Disconnects the `PerformanceObserver` instance from all notifications.\n         * @since v8.5.0\n         */\n        disconnect(): void;\n        /**\n         * Subscribes the `PerformanceObserver` instance to notifications of new `PerformanceEntry` instances identified either by `options.entryTypes`or `options.type`:\n         *\n         * ```js\n         * const {\n         *   performance,\n         *   PerformanceObserver\n         * } = require('perf_hooks');\n         *\n         * const obs = new PerformanceObserver((list, observer) => {\n         *   // Called three times synchronously. `list` contains one item.\n         * });\n         * obs.observe({ type: 'mark' });\n         *\n         * for (let n = 0; n < 3; n++)\n         *   performance.mark(`test${n}`);\n         * ```\n         * @since v8.5.0\n         */\n        observe(\n            options:\n                | {\n                      entryTypes: ReadonlyArray<EntryType>;\n                      buffered?: boolean | undefined;\n                  }\n                | {\n                      type: EntryType;\n                      buffered?: boolean | undefined;\n                  }\n        ): void;\n    }\n    namespace constants {\n        const NODE_PERFORMANCE_GC_MAJOR: number;\n        const NODE_PERFORMANCE_GC_MINOR: number;\n        const NODE_PERFORMANCE_GC_INCREMENTAL: number;\n        const NODE_PERFORMANCE_GC_WEAKCB: number;\n        const NODE_PERFORMANCE_GC_FLAGS_NO: number;\n        const NODE_PERFORMANCE_GC_FLAGS_CONSTRUCT_RETAINED: number;\n        const NODE_PERFORMANCE_GC_FLAGS_FORCED: number;\n        const NODE_PERFORMANCE_GC_FLAGS_SYNCHRONOUS_PHANTOM_PROCESSING: number;\n        const NODE_PERFORMANCE_GC_FLAGS_ALL_AVAILABLE_GARBAGE: number;\n        const NODE_PERFORMANCE_GC_FLAGS_ALL_EXTERNAL_MEMORY: number;\n        const NODE_PERFORMANCE_GC_FLAGS_SCHEDULE_IDLE: number;\n    }\n    const performance: Performance;\n    interface EventLoopMonitorOptions {\n        /**\n         * The sampling rate in milliseconds.\n         * Must be greater than zero.\n         * @default 10\n         */\n        resolution?: number | undefined;\n    }\n    interface Histogram {\n        /**\n         * Returns a `Map` object detailing the accumulated percentile distribution.\n         * @since v11.10.0\n         */\n        readonly percentiles: Map<number, number>;\n        /**\n         * The number of times the event loop delay exceeded the maximum 1 hour event\n         * loop delay threshold.\n         * @since v11.10.0\n         */\n        readonly exceeds: number;\n        /**\n         * The minimum recorded event loop delay.\n         * @since v11.10.0\n         */\n        readonly min: number;\n        /**\n         * The maximum recorded event loop delay.\n         * @since v11.10.0\n         */\n        readonly max: number;\n        /**\n         * The mean of the recorded event loop delays.\n         * @since v11.10.0\n         */\n        readonly mean: number;\n        /**\n         * The standard deviation of the recorded event loop delays.\n         * @since v11.10.0\n         */\n        readonly stddev: number;\n        /**\n         * Resets the collected histogram data.\n         * @since v11.10.0\n         */\n        reset(): void;\n        /**\n         * Returns the value at the given percentile.\n         * @since v11.10.0\n         * @param percentile A percentile value in the range (0, 100].\n         */\n        percentile(percentile: number): number;\n    }\n    interface IntervalHistogram extends Histogram {\n        /**\n         * Enables the update interval timer. Returns `true` if the timer was\n         * started, `false` if it was already started.\n         * @since v11.10.0\n         */\n        enable(): boolean;\n        /**\n         * Disables the update interval timer. Returns `true` if the timer was\n         * stopped, `false` if it was already stopped.\n         * @since v11.10.0\n         */\n        disable(): boolean;\n    }\n    interface RecordableHistogram extends Histogram {\n        /**\n         * @since v15.9.0\n         * @param val The amount to record in the histogram.\n         */\n        record(val: number | bigint): void;\n        /**\n         * Calculates the amount of time (in nanoseconds) that has passed since the\n         * previous call to `recordDelta()` and records that amount in the histogram.\n         *\n         * ## Examples\n         * @since v15.9.0\n         */\n        recordDelta(): void;\n    }\n    /**\n     * _This property is an extension by Node.js. It is not available in Web browsers._\n     *\n     * Creates an `IntervalHistogram` object that samples and reports the event loop\n     * delay over time. The delays will be reported in nanoseconds.\n     *\n     * Using a timer to detect approximate event loop delay works because the\n     * execution of timers is tied specifically to the lifecycle of the libuv\n     * event loop. That is, a delay in the loop will cause a delay in the execution\n     * of the timer, and those delays are specifically what this API is intended to\n     * detect.\n     *\n     * ```js\n     * const { monitorEventLoopDelay } = require('perf_hooks');\n     * const h = monitorEventLoopDelay({ resolution: 20 });\n     * h.enable();\n     * // Do something.\n     * h.disable();\n     * console.log(h.min);\n     * console.log(h.max);\n     * console.log(h.mean);\n     * console.log(h.stddev);\n     * console.log(h.percentiles);\n     * console.log(h.percentile(50));\n     * console.log(h.percentile(99));\n     * ```\n     * @since v11.10.0\n     */\n    function monitorEventLoopDelay(options?: EventLoopMonitorOptions): IntervalHistogram;\n    interface CreateHistogramOptions {\n        /**\n         * The minimum recordable value. Must be an integer value greater than 0.\n         * @default 1\n         */\n        min?: number | bigint | undefined;\n        /**\n         * The maximum recordable value. Must be an integer value greater than min.\n         * @default Number.MAX_SAFE_INTEGER\n         */\n        max?: number | bigint | undefined;\n        /**\n         * The number of accuracy digits. Must be a number between 1 and 5.\n         * @default 3\n         */\n        figures?: number | undefined;\n    }\n    /**\n     * Returns a `RecordableHistogram`.\n     * @since v15.9.0\n     */\n    function createHistogram(options?: CreateHistogramOptions): RecordableHistogram;\n}\ndeclare module 'node:perf_hooks' {\n    export * from 'perf_hooks';\n}\n"
    },
    {
      "path": "/node_modules/@types/node/process.d.ts",
      "content": "declare module 'process' {\n    import * as tty from 'node:tty';\n    import { Worker } from 'node:worker_threads';\n    global {\n        var process: NodeJS.Process;\n        namespace NodeJS {\n            // this namespace merge is here because these are specifically used\n            // as the type for process.stdin, process.stdout, and process.stderr.\n            // they can't live in tty.d.ts because we need to disambiguate the imported name.\n            interface ReadStream extends tty.ReadStream {}\n            interface WriteStream extends tty.WriteStream {}\n            interface MemoryUsageFn {\n                /**\n                 * The `process.memoryUsage()` method iterate over each page to gather informations about memory\n                 * usage which can be slow depending on the program memory allocations.\n                 */\n                (): MemoryUsage;\n                /**\n                 * method returns an integer representing the Resident Set Size (RSS) in bytes.\n                 */\n                rss(): number;\n            }\n            interface MemoryUsage {\n                rss: number;\n                heapTotal: number;\n                heapUsed: number;\n                external: number;\n                arrayBuffers: number;\n            }\n            interface CpuUsage {\n                user: number;\n                system: number;\n            }\n            interface ProcessRelease {\n                name: string;\n                sourceUrl?: string | undefined;\n                headersUrl?: string | undefined;\n                libUrl?: string | undefined;\n                lts?: string | undefined;\n            }\n            interface ProcessVersions extends Dict<string> {\n                http_parser: string;\n                node: string;\n                v8: string;\n                ares: string;\n                uv: string;\n                zlib: string;\n                modules: string;\n                openssl: string;\n            }\n            type Platform = 'aix' | 'android' | 'darwin' | 'freebsd' | 'haiku' | 'linux' | 'openbsd' | 'sunos' | 'win32' | 'cygwin' | 'netbsd';\n            type Signals =\n                | 'SIGABRT'\n                | 'SIGALRM'\n                | 'SIGBUS'\n                | 'SIGCHLD'\n                | 'SIGCONT'\n                | 'SIGFPE'\n                | 'SIGHUP'\n                | 'SIGILL'\n                | 'SIGINT'\n                | 'SIGIO'\n                | 'SIGIOT'\n                | 'SIGKILL'\n                | 'SIGPIPE'\n                | 'SIGPOLL'\n                | 'SIGPROF'\n                | 'SIGPWR'\n                | 'SIGQUIT'\n                | 'SIGSEGV'\n                | 'SIGSTKFLT'\n                | 'SIGSTOP'\n                | 'SIGSYS'\n                | 'SIGTERM'\n                | 'SIGTRAP'\n                | 'SIGTSTP'\n                | 'SIGTTIN'\n                | 'SIGTTOU'\n                | 'SIGUNUSED'\n                | 'SIGURG'\n                | 'SIGUSR1'\n                | 'SIGUSR2'\n                | 'SIGVTALRM'\n                | 'SIGWINCH'\n                | 'SIGXCPU'\n                | 'SIGXFSZ'\n                | 'SIGBREAK'\n                | 'SIGLOST'\n                | 'SIGINFO';\n            type UncaughtExceptionOrigin = 'uncaughtException' | 'unhandledRejection';\n            type MultipleResolveType = 'resolve' | 'reject';\n            type BeforeExitListener = (code: number) => void;\n            type DisconnectListener = () => void;\n            type ExitListener = (code: number) => void;\n            type RejectionHandledListener = (promise: Promise<unknown>) => void;\n            type UncaughtExceptionListener = (error: Error, origin: UncaughtExceptionOrigin) => void;\n            /**\n             * Most of the time the unhandledRejection will be an Error, but this should not be relied upon\n             * as *anything* can be thrown/rejected, it is therefore unsafe to assume the the value is an Error.\n             */\n            type UnhandledRejectionListener = (reason: unknown, promise: Promise<unknown>) => void;\n            type WarningListener = (warning: Error) => void;\n            type MessageListener = (message: unknown, sendHandle: unknown) => void;\n            type SignalsListener = (signal: Signals) => void;\n            type MultipleResolveListener = (type: MultipleResolveType, promise: Promise<unknown>, value: unknown) => void;\n            type WorkerListener = (worker: Worker) => void;\n            interface Socket extends ReadWriteStream {\n                isTTY?: true | undefined;\n            }\n            // Alias for compatibility\n            interface ProcessEnv extends Dict<string> {\n                /**\n                 * Can be used to change the default timezone at runtime\n                 */\n                TZ?: string;\n            }\n            interface HRTime {\n                (time?: [number, number]): [number, number];\n                bigint(): bigint;\n            }\n            interface ProcessReport {\n                /**\n                 * Directory where the report is written.\n                 * working directory of the Node.js process.\n                 * @default '' indicating that reports are written to the current\n                 */\n                directory: string;\n                /**\n                 * Filename where the report is written.\n                 * The default value is the empty string.\n                 * @default '' the output filename will be comprised of a timestamp,\n                 * PID, and sequence number.\n                 */\n                filename: string;\n                /**\n                 * Returns a JSON-formatted diagnostic report for the running process.\n                 * The report's JavaScript stack trace is taken from err, if present.\n                 */\n                getReport(err?: Error): string;\n                /**\n                 * If true, a diagnostic report is generated on fatal errors,\n                 * such as out of memory errors or failed C++ assertions.\n                 * @default false\n                 */\n                reportOnFatalError: boolean;\n                /**\n                 * If true, a diagnostic report is generated when the process\n                 * receives the signal specified by process.report.signal.\n                 * @default false\n                 */\n                reportOnSignal: boolean;\n                /**\n                 * If true, a diagnostic report is generated on uncaught exception.\n                 * @default false\n                 */\n                reportOnUncaughtException: boolean;\n                /**\n                 * The signal used to trigger the creation of a diagnostic report.\n                 * @default 'SIGUSR2'\n                 */\n                signal: Signals;\n                /**\n                 * Writes a diagnostic report to a file. If filename is not provided, the default filename\n                 * includes the date, time, PID, and a sequence number.\n                 * The report's JavaScript stack trace is taken from err, if present.\n                 *\n                 * @param fileName Name of the file where the report is written.\n                 * This should be a relative path, that will be appended to the directory specified in\n                 * `process.report.directory`, or the current working directory of the Node.js process,\n                 * if unspecified.\n                 * @param error A custom error used for reporting the JavaScript stack.\n                 * @return Filename of the generated report.\n                 */\n                writeReport(fileName?: string): string;\n                writeReport(error?: Error): string;\n                writeReport(fileName?: string, err?: Error): string;\n            }\n            interface ResourceUsage {\n                fsRead: number;\n                fsWrite: number;\n                involuntaryContextSwitches: number;\n                ipcReceived: number;\n                ipcSent: number;\n                majorPageFault: number;\n                maxRSS: number;\n                minorPageFault: number;\n                sharedMemorySize: number;\n                signalsCount: number;\n                swappedOut: number;\n                systemCPUTime: number;\n                unsharedDataSize: number;\n                unsharedStackSize: number;\n                userCPUTime: number;\n                voluntaryContextSwitches: number;\n            }\n            interface EmitWarningOptions {\n                /**\n                 * When `warning` is a `string`, `type` is the name to use for the _type_ of warning being emitted.\n                 *\n                 * @default 'Warning'\n                 */\n                type?: string | undefined;\n                /**\n                 * A unique identifier for the warning instance being emitted.\n                 */\n                code?: string | undefined;\n                /**\n                 * When `warning` is a `string`, `ctor` is an optional function used to limit the generated stack trace.\n                 *\n                 * @default process.emitWarning\n                 */\n                ctor?: Function | undefined;\n                /**\n                 * Additional text to include with the error.\n                 */\n                detail?: string | undefined;\n            }\n            interface ProcessConfig {\n                readonly target_defaults: {\n                    readonly cflags: any[];\n                    readonly default_configuration: string;\n                    readonly defines: string[];\n                    readonly include_dirs: string[];\n                    readonly libraries: string[];\n                };\n                readonly variables: {\n                    readonly clang: number;\n                    readonly host_arch: string;\n                    readonly node_install_npm: boolean;\n                    readonly node_install_waf: boolean;\n                    readonly node_prefix: string;\n                    readonly node_shared_openssl: boolean;\n                    readonly node_shared_v8: boolean;\n                    readonly node_shared_zlib: boolean;\n                    readonly node_use_dtrace: boolean;\n                    readonly node_use_etw: boolean;\n                    readonly node_use_openssl: boolean;\n                    readonly target_arch: string;\n                    readonly v8_no_strict_aliasing: number;\n                    readonly v8_use_snapshot: boolean;\n                    readonly visibility: string;\n                };\n            }\n            interface Process extends EventEmitter {\n                /**\n                 * The `process.stdout` property returns a stream connected to`stdout` (fd `1`). It is a `net.Socket` (which is a `Duplex` stream) unless fd `1` refers to a file, in which case it is\n                 * a `Writable` stream.\n                 *\n                 * For example, to copy `process.stdin` to `process.stdout`:\n                 *\n                 * ```js\n                 * import { stdin, stdout } from 'process';\n                 *\n                 * stdin.pipe(stdout);\n                 * ```\n                 *\n                 * `process.stdout` differs from other Node.js streams in important ways. See `note on process I/O` for more information.\n                 */\n                stdout: WriteStream & {\n                    fd: 1;\n                };\n                /**\n                 * The `process.stderr` property returns a stream connected to`stderr` (fd `2`). It is a `net.Socket` (which is a `Duplex` stream) unless fd `2` refers to a file, in which case it is\n                 * a `Writable` stream.\n                 *\n                 * `process.stderr` differs from other Node.js streams in important ways. See `note on process I/O` for more information.\n                 */\n                stderr: WriteStream & {\n                    fd: 2;\n                };\n                /**\n                 * The `process.stdin` property returns a stream connected to`stdin` (fd `0`). It is a `net.Socket` (which is a `Duplex` stream) unless fd `0` refers to a file, in which case it is\n                 * a `Readable` stream.\n                 *\n                 * For details of how to read from `stdin` see `readable.read()`.\n                 *\n                 * As a `Duplex` stream, `process.stdin` can also be used in \"old\" mode that\n                 * is compatible with scripts written for Node.js prior to v0.10\\.\n                 * For more information see `Stream compatibility`.\n                 *\n                 * In \"old\" streams mode the `stdin` stream is paused by default, so one\n                 * must call `process.stdin.resume()` to read from it. Note also that calling`process.stdin.resume()` itself would switch stream to \"old\" mode.\n                 */\n                stdin: ReadStream & {\n                    fd: 0;\n                };\n                openStdin(): Socket;\n                /**\n                 * The `process.argv` property returns an array containing the command-line\n                 * arguments passed when the Node.js process was launched. The first element will\n                 * be {@link execPath}. See `process.argv0` if access to the original value\n                 * of `argv[0]` is needed. The second element will be the path to the JavaScript\n                 * file being executed. The remaining elements will be any additional command-line\n                 * arguments.\n                 *\n                 * For example, assuming the following script for `process-args.js`:\n                 *\n                 * ```js\n                 * import { argv } from 'process';\n                 *\n                 * // print process.argv\n                 * argv.forEach((val, index) => {\n                 *   console.log(`${index}: ${val}`);\n                 * });\n                 * ```\n                 *\n                 * Launching the Node.js process as:\n                 *\n                 * ```console\n                 * $ node process-args.js one two=three four\n                 * ```\n                 *\n                 * Would generate the output:\n                 *\n                 * ```text\n                 * 0: /usr/local/bin/node\n                 * 1: /Users/mjr/work/node/process-args.js\n                 * 2: one\n                 * 3: two=three\n                 * 4: four\n                 * ```\n                 * @since v0.1.27\n                 */\n                argv: string[];\n                /**\n                 * The `process.argv0` property stores a read-only copy of the original value of`argv[0]` passed when Node.js starts.\n                 *\n                 * ```console\n                 * $ bash -c 'exec -a customArgv0 ./node'\n                 * > process.argv[0]\n                 * '/Volumes/code/external/node/out/Release/node'\n                 * > process.argv0\n                 * 'customArgv0'\n                 * ```\n                 * @since v6.4.0\n                 */\n                argv0: string;\n                /**\n                 * The `process.execArgv` property returns the set of Node.js-specific command-line\n                 * options passed when the Node.js process was launched. These options do not\n                 * appear in the array returned by the {@link argv} property, and do not\n                 * include the Node.js executable, the name of the script, or any options following\n                 * the script name. These options are useful in order to spawn child processes with\n                 * the same execution environment as the parent.\n                 *\n                 * ```console\n                 * $ node --harmony script.js --version\n                 * ```\n                 *\n                 * Results in `process.execArgv`:\n                 *\n                 * ```js\n                 * ['--harmony']\n                 * ```\n                 *\n                 * And `process.argv`:\n                 *\n                 * ```js\n                 * ['/usr/local/bin/node', 'script.js', '--version']\n                 * ```\n                 *\n                 * Refer to `Worker constructor` for the detailed behavior of worker\n                 * threads with this property.\n                 * @since v0.7.7\n                 */\n                execArgv: string[];\n                /**\n                 * The `process.execPath` property returns the absolute pathname of the executable\n                 * that started the Node.js process. Symbolic links, if any, are resolved.\n                 *\n                 * ```js\n                 * '/usr/local/bin/node'\n                 * ```\n                 * @since v0.1.100\n                 */\n                execPath: string;\n                /**\n                 * The `process.abort()` method causes the Node.js process to exit immediately and\n                 * generate a core file.\n                 *\n                 * This feature is not available in `Worker` threads.\n                 * @since v0.7.0\n                 */\n                abort(): never;\n                /**\n                 * The `process.chdir()` method changes the current working directory of the\n                 * Node.js process or throws an exception if doing so fails (for instance, if\n                 * the specified `directory` does not exist).\n                 *\n                 * ```js\n                 * import { chdir, cwd } from 'process';\n                 *\n                 * console.log(`Starting directory: ${cwd()}`);\n                 * try {\n                 *   chdir('/tmp');\n                 *   console.log(`New directory: ${cwd()}`);\n                 * } catch (err) {\n                 *   console.error(`chdir: ${err}`);\n                 * }\n                 * ```\n                 *\n                 * This feature is not available in `Worker` threads.\n                 * @since v0.1.17\n                 */\n                chdir(directory: string): void;\n                /**\n                 * The `process.cwd()` method returns the current working directory of the Node.js\n                 * process.\n                 *\n                 * ```js\n                 * import { cwd } from 'process';\n                 *\n                 * console.log(`Current directory: ${cwd()}`);\n                 * ```\n                 * @since v0.1.8\n                 */\n                cwd(): string;\n                /**\n                 * The port used by the Node.js debugger when enabled.\n                 *\n                 * ```js\n                 * import process from 'process';\n                 *\n                 * process.debugPort = 5858;\n                 * ```\n                 * @since v0.7.2\n                 */\n                debugPort: number;\n                /**\n                 * The `process.emitWarning()` method can be used to emit custom or application\n                 * specific process warnings. These can be listened for by adding a handler to the `'warning'` event.\n                 *\n                 * ```js\n                 * import { emitWarning } from 'process';\n                 *\n                 * // Emit a warning with a code and additional detail.\n                 * emitWarning('Something happened!', {\n                 *   code: 'MY_WARNING',\n                 *   detail: 'This is some additional information'\n                 * });\n                 * // Emits:\n                 * // (node:56338) [MY_WARNING] Warning: Something happened!\n                 * // This is some additional information\n                 * ```\n                 *\n                 * In this example, an `Error` object is generated internally by`process.emitWarning()` and passed through to the `'warning'` handler.\n                 *\n                 * ```js\n                 * import process from 'process';\n                 *\n                 * process.on('warning', (warning) => {\n                 *   console.warn(warning.name);    // 'Warning'\n                 *   console.warn(warning.message); // 'Something happened!'\n                 *   console.warn(warning.code);    // 'MY_WARNING'\n                 *   console.warn(warning.stack);   // Stack trace\n                 *   console.warn(warning.detail);  // 'This is some additional information'\n                 * });\n                 * ```\n                 *\n                 * If `warning` is passed as an `Error` object, the `options` argument is ignored.\n                 * @since v8.0.0\n                 * @param warning The warning to emit.\n                 */\n                emitWarning(warning: string | Error, ctor?: Function): void;\n                emitWarning(warning: string | Error, type?: string, ctor?: Function): void;\n                emitWarning(warning: string | Error, type?: string, code?: string, ctor?: Function): void;\n                emitWarning(warning: string | Error, options?: EmitWarningOptions): void;\n                /**\n                 * The `process.env` property returns an object containing the user environment.\n                 * See [`environ(7)`](http://man7.org/linux/man-pages/man7/environ.7.html).\n                 *\n                 * An example of this object looks like:\n                 *\n                 * ```js\n                 * {\n                 *   TERM: 'xterm-256color',\n                 *   SHELL: '/usr/local/bin/bash',\n                 *   USER: 'maciej',\n                 *   PATH: '~/.bin/:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin',\n                 *   PWD: '/Users/maciej',\n                 *   EDITOR: 'vim',\n                 *   SHLVL: '1',\n                 *   HOME: '/Users/maciej',\n                 *   LOGNAME: 'maciej',\n                 *   _: '/usr/local/bin/node'\n                 * }\n                 * ```\n                 *\n                 * It is possible to modify this object, but such modifications will not be\n                 * reflected outside the Node.js process, or (unless explicitly requested)\n                 * to other `Worker` threads.\n                 * In other words, the following example would not work:\n                 *\n                 * ```console\n                 * $ node -e 'process.env.foo = \"bar\"' &#x26;&#x26; echo $foo\n                 * ```\n                 *\n                 * While the following will:\n                 *\n                 * ```js\n                 * import { env } from 'process';\n                 *\n                 * env.foo = 'bar';\n                 * console.log(env.foo);\n                 * ```\n                 *\n                 * Assigning a property on `process.env` will implicitly convert the value\n                 * to a string. **This behavior is deprecated.** Future versions of Node.js may\n                 * throw an error when the value is not a string, number, or boolean.\n                 *\n                 * ```js\n                 * import { env } from 'process';\n                 *\n                 * env.test = null;\n                 * console.log(env.test);\n                 * // => 'null'\n                 * env.test = undefined;\n                 * console.log(env.test);\n                 * // => 'undefined'\n                 * ```\n                 *\n                 * Use `delete` to delete a property from `process.env`.\n                 *\n                 * ```js\n                 * import { env } from 'process';\n                 *\n                 * env.TEST = 1;\n                 * delete env.TEST;\n                 * console.log(env.TEST);\n                 * // => undefined\n                 * ```\n                 *\n                 * On Windows operating systems, environment variables are case-insensitive.\n                 *\n                 * ```js\n                 * import { env } from 'process';\n                 *\n                 * env.TEST = 1;\n                 * console.log(env.test);\n                 * // => 1\n                 * ```\n                 *\n                 * Unless explicitly specified when creating a `Worker` instance,\n                 * each `Worker` thread has its own copy of `process.env`, based on its\n                 * parent thread’s `process.env`, or whatever was specified as the `env` option\n                 * to the `Worker` constructor. Changes to `process.env` will not be visible\n                 * across `Worker` threads, and only the main thread can make changes that\n                 * are visible to the operating system or to native add-ons.\n                 * @since v0.1.27\n                 */\n                env: ProcessEnv;\n                /**\n                 * The `process.exit()` method instructs Node.js to terminate the process\n                 * synchronously with an exit status of `code`. If `code` is omitted, exit uses\n                 * either the 'success' code `0` or the value of `process.exitCode` if it has been\n                 * set. Node.js will not terminate until all the `'exit'` event listeners are\n                 * called.\n                 *\n                 * To exit with a 'failure' code:\n                 *\n                 * ```js\n                 * import { exit } from 'process';\n                 *\n                 * exit(1);\n                 * ```\n                 *\n                 * The shell that executed Node.js should see the exit code as `1`.\n                 *\n                 * Calling `process.exit()` will force the process to exit as quickly as possible\n                 * even if there are still asynchronous operations pending that have not yet\n                 * completed fully, including I/O operations to `process.stdout` and`process.stderr`.\n                 *\n                 * In most situations, it is not actually necessary to call `process.exit()`explicitly. The Node.js process will exit on its own _if there is no additional_\n                 * _work pending_ in the event loop. The `process.exitCode` property can be set to\n                 * tell the process which exit code to use when the process exits gracefully.\n                 *\n                 * For instance, the following example illustrates a _misuse_ of the`process.exit()` method that could lead to data printed to stdout being\n                 * truncated and lost:\n                 *\n                 * ```js\n                 * import { exit } from 'process';\n                 *\n                 * // This is an example of what *not* to do:\n                 * if (someConditionNotMet()) {\n                 *   printUsageToStdout();\n                 *   exit(1);\n                 * }\n                 * ```\n                 *\n                 * The reason this is problematic is because writes to `process.stdout` in Node.js\n                 * are sometimes _asynchronous_ and may occur over multiple ticks of the Node.js\n                 * event loop. Calling `process.exit()`, however, forces the process to exit_before_ those additional writes to `stdout` can be performed.\n                 *\n                 * Rather than calling `process.exit()` directly, the code _should_ set the`process.exitCode` and allow the process to exit naturally by avoiding\n                 * scheduling any additional work for the event loop:\n                 *\n                 * ```js\n                 * import process from 'process';\n                 *\n                 * // How to properly set the exit code while letting\n                 * // the process exit gracefully.\n                 * if (someConditionNotMet()) {\n                 *   printUsageToStdout();\n                 *   process.exitCode = 1;\n                 * }\n                 * ```\n                 *\n                 * If it is necessary to terminate the Node.js process due to an error condition,\n                 * throwing an _uncaught_ error and allowing the process to terminate accordingly\n                 * is safer than calling `process.exit()`.\n                 *\n                 * In `Worker` threads, this function stops the current thread rather\n                 * than the current process.\n                 * @since v0.1.13\n                 * @param [code=0] The exit code.\n                 */\n                exit(code?: number): never;\n                /**\n                 * A number which will be the process exit code, when the process either\n                 * exits gracefully, or is exited via {@link exit} without specifying\n                 * a code.\n                 *\n                 * Specifying a code to {@link exit} will override any\n                 * previous setting of `process.exitCode`.\n                 * @since v0.11.8\n                 */\n                exitCode?: number | undefined;\n                /**\n                 * The `process.getgid()` method returns the numerical group identity of the\n                 * process. (See [`getgid(2)`](http://man7.org/linux/man-pages/man2/getgid.2.html).)\n                 *\n                 * ```js\n                 * import process from 'process';\n                 *\n                 * if (process.getgid) {\n                 *   console.log(`Current gid: ${process.getgid()}`);\n                 * }\n                 * ```\n                 *\n                 * This function is only available on POSIX platforms (i.e. not Windows or\n                 * Android).\n                 * @since v0.1.31\n                 */\n                getgid(): number;\n                /**\n                 * The `process.setgid()` method sets the group identity of the process. (See [`setgid(2)`](http://man7.org/linux/man-pages/man2/setgid.2.html).) The `id` can be passed as either a\n                 * numeric ID or a group name\n                 * string. If a group name is specified, this method blocks while resolving the\n                 * associated numeric ID.\n                 *\n                 * ```js\n                 * import process from 'process';\n                 *\n                 * if (process.getgid &#x26;&#x26; process.setgid) {\n                 *   console.log(`Current gid: ${process.getgid()}`);\n                 *   try {\n                 *     process.setgid(501);\n                 *     console.log(`New gid: ${process.getgid()}`);\n                 *   } catch (err) {\n                 *     console.log(`Failed to set gid: ${err}`);\n                 *   }\n                 * }\n                 * ```\n                 *\n                 * This function is only available on POSIX platforms (i.e. not Windows or\n                 * Android).\n                 * This feature is not available in `Worker` threads.\n                 * @since v0.1.31\n                 * @param id The group name or ID\n                 */\n                setgid(id: number | string): void;\n                /**\n                 * The `process.getuid()` method returns the numeric user identity of the process.\n                 * (See [`getuid(2)`](http://man7.org/linux/man-pages/man2/getuid.2.html).)\n                 *\n                 * ```js\n                 * import process from 'process';\n                 *\n                 * if (process.getuid) {\n                 *   console.log(`Current uid: ${process.getuid()}`);\n                 * }\n                 * ```\n                 *\n                 * This function is only available on POSIX platforms (i.e. not Windows or\n                 * Android).\n                 * @since v0.1.28\n                 */\n                getuid(): number;\n                /**\n                 * The `process.setuid(id)` method sets the user identity of the process. (See [`setuid(2)`](http://man7.org/linux/man-pages/man2/setuid.2.html).) The `id` can be passed as either a\n                 * numeric ID or a username string.\n                 * If a username is specified, the method blocks while resolving the associated\n                 * numeric ID.\n                 *\n                 * ```js\n                 * import process from 'process';\n                 *\n                 * if (process.getuid &#x26;&#x26; process.setuid) {\n                 *   console.log(`Current uid: ${process.getuid()}`);\n                 *   try {\n                 *     process.setuid(501);\n                 *     console.log(`New uid: ${process.getuid()}`);\n                 *   } catch (err) {\n                 *     console.log(`Failed to set uid: ${err}`);\n                 *   }\n                 * }\n                 * ```\n                 *\n                 * This function is only available on POSIX platforms (i.e. not Windows or\n                 * Android).\n                 * This feature is not available in `Worker` threads.\n                 * @since v0.1.28\n                 */\n                setuid(id: number | string): void;\n                /**\n                 * The `process.geteuid()` method returns the numerical effective user identity of\n                 * the process. (See [`geteuid(2)`](http://man7.org/linux/man-pages/man2/geteuid.2.html).)\n                 *\n                 * ```js\n                 * import process from 'process';\n                 *\n                 * if (process.geteuid) {\n                 *   console.log(`Current uid: ${process.geteuid()}`);\n                 * }\n                 * ```\n                 *\n                 * This function is only available on POSIX platforms (i.e. not Windows or\n                 * Android).\n                 * @since v2.0.0\n                 */\n                geteuid(): number;\n                /**\n                 * The `process.seteuid()` method sets the effective user identity of the process.\n                 * (See [`seteuid(2)`](http://man7.org/linux/man-pages/man2/seteuid.2.html).) The `id` can be passed as either a numeric ID or a username\n                 * string. If a username is specified, the method blocks while resolving the\n                 * associated numeric ID.\n                 *\n                 * ```js\n                 * import process from 'process';\n                 *\n                 * if (process.geteuid &#x26;&#x26; process.seteuid) {\n                 *   console.log(`Current uid: ${process.geteuid()}`);\n                 *   try {\n                 *     process.seteuid(501);\n                 *     console.log(`New uid: ${process.geteuid()}`);\n                 *   } catch (err) {\n                 *     console.log(`Failed to set uid: ${err}`);\n                 *   }\n                 * }\n                 * ```\n                 *\n                 * This function is only available on POSIX platforms (i.e. not Windows or\n                 * Android).\n                 * This feature is not available in `Worker` threads.\n                 * @since v2.0.0\n                 * @param id A user name or ID\n                 */\n                seteuid(id: number | string): void;\n                /**\n                 * The `process.getegid()` method returns the numerical effective group identity\n                 * of the Node.js process. (See [`getegid(2)`](http://man7.org/linux/man-pages/man2/getegid.2.html).)\n                 *\n                 * ```js\n                 * import process from 'process';\n                 *\n                 * if (process.getegid) {\n                 *   console.log(`Current gid: ${process.getegid()}`);\n                 * }\n                 * ```\n                 *\n                 * This function is only available on POSIX platforms (i.e. not Windows or\n                 * Android).\n                 * @since v2.0.0\n                 */\n                getegid(): number;\n                /**\n                 * The `process.setegid()` method sets the effective group identity of the process.\n                 * (See [`setegid(2)`](http://man7.org/linux/man-pages/man2/setegid.2.html).) The `id` can be passed as either a numeric ID or a group\n                 * name string. If a group name is specified, this method blocks while resolving\n                 * the associated a numeric ID.\n                 *\n                 * ```js\n                 * import process from 'process';\n                 *\n                 * if (process.getegid &#x26;&#x26; process.setegid) {\n                 *   console.log(`Current gid: ${process.getegid()}`);\n                 *   try {\n                 *     process.setegid(501);\n                 *     console.log(`New gid: ${process.getegid()}`);\n                 *   } catch (err) {\n                 *     console.log(`Failed to set gid: ${err}`);\n                 *   }\n                 * }\n                 * ```\n                 *\n                 * This function is only available on POSIX platforms (i.e. not Windows or\n                 * Android).\n                 * This feature is not available in `Worker` threads.\n                 * @since v2.0.0\n                 * @param id A group name or ID\n                 */\n                setegid(id: number | string): void;\n                /**\n                 * The `process.getgroups()` method returns an array with the supplementary group\n                 * IDs. POSIX leaves it unspecified if the effective group ID is included but\n                 * Node.js ensures it always is.\n                 *\n                 * ```js\n                 * import process from 'process';\n                 *\n                 * if (process.getgroups) {\n                 *   console.log(process.getgroups()); // [ 16, 21, 297 ]\n                 * }\n                 * ```\n                 *\n                 * This function is only available on POSIX platforms (i.e. not Windows or\n                 * Android).\n                 * @since v0.9.4\n                 */\n                getgroups(): number[];\n                /**\n                 * The `process.setgroups()` method sets the supplementary group IDs for the\n                 * Node.js process. This is a privileged operation that requires the Node.js\n                 * process to have `root` or the `CAP_SETGID` capability.\n                 *\n                 * The `groups` array can contain numeric group IDs, group names, or both.\n                 *\n                 * ```js\n                 * import process from 'process';\n                 *\n                 * if (process.getgroups &#x26;&#x26; process.setgroups) {\n                 *   try {\n                 *     process.setgroups([501]);\n                 *     console.log(process.getgroups()); // new groups\n                 *   } catch (err) {\n                 *     console.log(`Failed to set groups: ${err}`);\n                 *   }\n                 * }\n                 * ```\n                 *\n                 * This function is only available on POSIX platforms (i.e. not Windows or\n                 * Android).\n                 * This feature is not available in `Worker` threads.\n                 * @since v0.9.4\n                 */\n                setgroups(groups: ReadonlyArray<string | number>): void;\n                /**\n                 * The `process.setUncaughtExceptionCaptureCallback()` function sets a function\n                 * that will be invoked when an uncaught exception occurs, which will receive the\n                 * exception value itself as its first argument.\n                 *\n                 * If such a function is set, the `'uncaughtException'` event will\n                 * not be emitted. If `--abort-on-uncaught-exception` was passed from the\n                 * command line or set through `v8.setFlagsFromString()`, the process will\n                 * not abort. Actions configured to take place on exceptions such as report\n                 * generations will be affected too\n                 *\n                 * To unset the capture function,`process.setUncaughtExceptionCaptureCallback(null)` may be used. Calling this\n                 * method with a non-`null` argument while another capture function is set will\n                 * throw an error.\n                 *\n                 * Using this function is mutually exclusive with using the deprecated `domain` built-in module.\n                 * @since v9.3.0\n                 */\n                setUncaughtExceptionCaptureCallback(cb: ((err: Error) => void) | null): void;\n                /**\n                 * Indicates whether a callback has been set using {@link setUncaughtExceptionCaptureCallback}.\n                 * @since v9.3.0\n                 */\n                hasUncaughtExceptionCaptureCallback(): boolean;\n                /**\n                 * The `process.version` property contains the Node.js version string.\n                 *\n                 * ```js\n                 * import { version } from 'process';\n                 *\n                 * console.log(`Version: ${version}`);\n                 * // Version: v14.8.0\n                 * ```\n                 *\n                 * To get the version string without the prepended _v_, use`process.versions.node`.\n                 * @since v0.1.3\n                 */\n                readonly version: string;\n                /**\n                 * The `process.versions` property returns an object listing the version strings of\n                 * Node.js and its dependencies. `process.versions.modules` indicates the current\n                 * ABI version, which is increased whenever a C++ API changes. Node.js will refuse\n                 * to load modules that were compiled against a different module ABI version.\n                 *\n                 * ```js\n                 * import { versions } from 'process';\n                 *\n                 * console.log(versions);\n                 * ```\n                 *\n                 * Will generate an object similar to:\n                 *\n                 * ```console\n                 * { node: '11.13.0',\n                 *   v8: '7.0.276.38-node.18',\n                 *   uv: '1.27.0',\n                 *   zlib: '1.2.11',\n                 *   brotli: '1.0.7',\n                 *   ares: '1.15.0',\n                 *   modules: '67',\n                 *   nghttp2: '1.34.0',\n                 *   napi: '4',\n                 *   llhttp: '1.1.1',\n                 *   openssl: '1.1.1b',\n                 *   cldr: '34.0',\n                 *   icu: '63.1',\n                 *   tz: '2018e',\n                 *   unicode: '11.0' }\n                 * ```\n                 * @since v0.2.0\n                 */\n                readonly versions: ProcessVersions;\n                /**\n                 * The `process.config` property returns an `Object` containing the JavaScript\n                 * representation of the configure options used to compile the current Node.js\n                 * executable. This is the same as the `config.gypi` file that was produced when\n                 * running the `./configure` script.\n                 *\n                 * An example of the possible output looks like:\n                 *\n                 * ```js\n                 * {\n                 *   target_defaults:\n                 *    { cflags: [],\n                 *      default_configuration: 'Release',\n                 *      defines: [],\n                 *      include_dirs: [],\n                 *      libraries: [] },\n                 *   variables:\n                 *    {\n                 *      host_arch: 'x64',\n                 *      napi_build_version: 5,\n                 *      node_install_npm: 'true',\n                 *      node_prefix: '',\n                 *      node_shared_cares: 'false',\n                 *      node_shared_http_parser: 'false',\n                 *      node_shared_libuv: 'false',\n                 *      node_shared_zlib: 'false',\n                 *      node_use_dtrace: 'false',\n                 *      node_use_openssl: 'true',\n                 *      node_shared_openssl: 'false',\n                 *      strict_aliasing: 'true',\n                 *      target_arch: 'x64',\n                 *      v8_use_snapshot: 1\n                 *    }\n                 * }\n                 * ```\n                 *\n                 * The `process.config` property is **not** read-only and there are existing\n                 * modules in the ecosystem that are known to extend, modify, or entirely replace\n                 * the value of `process.config`.\n                 *\n                 * Modifying the `process.config` property, or any child-property of the`process.config` object has been deprecated. The `process.config` will be made\n                 * read-only in a future release.\n                 * @since v0.7.7\n                 */\n                readonly config: ProcessConfig;\n                /**\n                 * The `process.kill()` method sends the `signal` to the process identified by`pid`.\n                 *\n                 * Signal names are strings such as `'SIGINT'` or `'SIGHUP'`. See `Signal Events` and [`kill(2)`](http://man7.org/linux/man-pages/man2/kill.2.html) for more information.\n                 *\n                 * This method will throw an error if the target `pid` does not exist. As a special\n                 * case, a signal of `0` can be used to test for the existence of a process.\n                 * Windows platforms will throw an error if the `pid` is used to kill a process\n                 * group.\n                 *\n                 * Even though the name of this function is `process.kill()`, it is really just a\n                 * signal sender, like the `kill` system call. The signal sent may do something\n                 * other than kill the target process.\n                 *\n                 * ```js\n                 * import process, { kill } from 'process';\n                 *\n                 * process.on('SIGHUP', () => {\n                 *   console.log('Got SIGHUP signal.');\n                 * });\n                 *\n                 * setTimeout(() => {\n                 *   console.log('Exiting.');\n                 *   process.exit(0);\n                 * }, 100);\n                 *\n                 * kill(process.pid, 'SIGHUP');\n                 * ```\n                 *\n                 * When `SIGUSR1` is received by a Node.js process, Node.js will start the\n                 * debugger. See `Signal Events`.\n                 * @since v0.0.6\n                 * @param pid A process ID\n                 * @param [signal='SIGTERM'] The signal to send, either as a string or number.\n                 */\n                kill(pid: number, signal?: string | number): true;\n                /**\n                 * The `process.pid` property returns the PID of the process.\n                 *\n                 * ```js\n                 * import { pid } from 'process';\n                 *\n                 * console.log(`This process is pid ${pid}`);\n                 * ```\n                 * @since v0.1.15\n                 */\n                readonly pid: number;\n                /**\n                 * The `process.ppid` property returns the PID of the parent of the\n                 * current process.\n                 *\n                 * ```js\n                 * import { ppid } from 'process';\n                 *\n                 * console.log(`The parent process is pid ${ppid}`);\n                 * ```\n                 * @since v9.2.0, v8.10.0, v6.13.0\n                 */\n                readonly ppid: number;\n                /**\n                 * The `process.title` property returns the current process title (i.e. returns\n                 * the current value of `ps`). Assigning a new value to `process.title` modifies\n                 * the current value of `ps`.\n                 *\n                 * When a new value is assigned, different platforms will impose different maximum\n                 * length restrictions on the title. Usually such restrictions are quite limited.\n                 * For instance, on Linux and macOS, `process.title` is limited to the size of the\n                 * binary name plus the length of the command-line arguments because setting the`process.title` overwrites the `argv` memory of the process. Node.js v0.8\n                 * allowed for longer process title strings by also overwriting the `environ`memory but that was potentially insecure and confusing in some (rather obscure)\n                 * cases.\n                 *\n                 * Assigning a value to `process.title` might not result in an accurate label\n                 * within process manager applications such as macOS Activity Monitor or Windows\n                 * Services Manager.\n                 * @since v0.1.104\n                 */\n                title: string;\n                /**\n                 * The operating system CPU architecture for which the Node.js binary was compiled.\n                 * Possible values are: `'arm'`, `'arm64'`, `'ia32'`, `'mips'`,`'mipsel'`, `'ppc'`,`'ppc64'`, `'s390'`, `'s390x'`, `'x32'`, and `'x64'`.\n                 *\n                 * ```js\n                 * import { arch } from 'process';\n                 *\n                 * console.log(`This processor architecture is ${arch}`);\n                 * ```\n                 * @since v0.5.0\n                 */\n                readonly arch: string;\n                /**\n                 * The `process.platform` property returns a string identifying the operating\n                 * system platform on which the Node.js process is running.\n                 *\n                 * Currently possible values are:\n                 *\n                 * * `'aix'`\n                 * * `'darwin'`\n                 * * `'freebsd'`\n                 * * `'linux'`\n                 * * `'openbsd'`\n                 * * `'sunos'`\n                 * * `'win32'`\n                 *\n                 * ```js\n                 * import { platform } from 'process';\n                 *\n                 * console.log(`This platform is ${platform}`);\n                 * ```\n                 *\n                 * The value `'android'` may also be returned if the Node.js is built on the\n                 * Android operating system. However, Android support in Node.js [is experimental](https://github.com/nodejs/node/blob/HEAD/BUILDING.md#androidandroid-based-devices-eg-firefox-os).\n                 * @since v0.1.16\n                 */\n                readonly platform: Platform;\n                /**\n                 * The `process.mainModule` property provides an alternative way of retrieving `require.main`. The difference is that if the main module changes at\n                 * runtime, `require.main` may still refer to the original main module in\n                 * modules that were required before the change occurred. Generally, it's\n                 * safe to assume that the two refer to the same module.\n                 *\n                 * As with `require.main`, `process.mainModule` will be `undefined` if there\n                 * is no entry script.\n                 * @since v0.1.17\n                 * @deprecated Since v14.0.0 - Use `main` instead.\n                 */\n                mainModule?: Module | undefined;\n                memoryUsage: MemoryUsageFn;\n                /**\n                 * The `process.cpuUsage()` method returns the user and system CPU time usage of\n                 * the current process, in an object with properties `user` and `system`, whose\n                 * values are microsecond values (millionth of a second). These values measure time\n                 * spent in user and system code respectively, and may end up being greater than\n                 * actual elapsed time if multiple CPU cores are performing work for this process.\n                 *\n                 * The result of a previous call to `process.cpuUsage()` can be passed as the\n                 * argument to the function, to get a diff reading.\n                 *\n                 * ```js\n                 * import { cpuUsage } from 'process';\n                 *\n                 * const startUsage = cpuUsage();\n                 * // { user: 38579, system: 6986 }\n                 *\n                 * // spin the CPU for 500 milliseconds\n                 * const now = Date.now();\n                 * while (Date.now() - now < 500);\n                 *\n                 * console.log(cpuUsage(startUsage));\n                 * // { user: 514883, system: 11226 }\n                 * ```\n                 * @since v6.1.0\n                 * @param previousValue A previous return value from calling `process.cpuUsage()`\n                 */\n                cpuUsage(previousValue?: CpuUsage): CpuUsage;\n                /**\n                 * `process.nextTick()` adds `callback` to the \"next tick queue\". This queue is\n                 * fully drained after the current operation on the JavaScript stack runs to\n                 * completion and before the event loop is allowed to continue. It's possible to\n                 * create an infinite loop if one were to recursively call `process.nextTick()`.\n                 * See the [Event Loop](https://nodejs.org/en/docs/guides/event-loop-timers-and-nexttick/#process-nexttick) guide for more background.\n                 *\n                 * ```js\n                 * import { nextTick } from 'process';\n                 *\n                 * console.log('start');\n                 * nextTick(() => {\n                 *   console.log('nextTick callback');\n                 * });\n                 * console.log('scheduled');\n                 * // Output:\n                 * // start\n                 * // scheduled\n                 * // nextTick callback\n                 * ```\n                 *\n                 * This is important when developing APIs in order to give users the opportunity\n                 * to assign event handlers _after_ an object has been constructed but before any\n                 * I/O has occurred:\n                 *\n                 * ```js\n                 * import { nextTick } from 'process';\n                 *\n                 * function MyThing(options) {\n                 *   this.setupOptions(options);\n                 *\n                 *   nextTick(() => {\n                 *     this.startDoingStuff();\n                 *   });\n                 * }\n                 *\n                 * const thing = new MyThing();\n                 * thing.getReadyForStuff();\n                 *\n                 * // thing.startDoingStuff() gets called now, not before.\n                 * ```\n                 *\n                 * It is very important for APIs to be either 100% synchronous or 100%\n                 * asynchronous. Consider this example:\n                 *\n                 * ```js\n                 * // WARNING!  DO NOT USE!  BAD UNSAFE HAZARD!\n                 * function maybeSync(arg, cb) {\n                 *   if (arg) {\n                 *     cb();\n                 *     return;\n                 *   }\n                 *\n                 *   fs.stat('file', cb);\n                 * }\n                 * ```\n                 *\n                 * This API is hazardous because in the following case:\n                 *\n                 * ```js\n                 * const maybeTrue = Math.random() > 0.5;\n                 *\n                 * maybeSync(maybeTrue, () => {\n                 *   foo();\n                 * });\n                 *\n                 * bar();\n                 * ```\n                 *\n                 * It is not clear whether `foo()` or `bar()` will be called first.\n                 *\n                 * The following approach is much better:\n                 *\n                 * ```js\n                 * import { nextTick } from 'process';\n                 *\n                 * function definitelyAsync(arg, cb) {\n                 *   if (arg) {\n                 *     nextTick(cb);\n                 *     return;\n                 *   }\n                 *\n                 *   fs.stat('file', cb);\n                 * }\n                 * ```\n                 * @since v0.1.26\n                 * @param args Additional arguments to pass when invoking the `callback`\n                 */\n                nextTick(callback: Function, ...args: any[]): void;\n                /**\n                 * The `process.release` property returns an `Object` containing metadata related\n                 * to the current release, including URLs for the source tarball and headers-only\n                 * tarball.\n                 *\n                 * `process.release` contains the following properties:\n                 *\n                 * ```js\n                 * {\n                 *   name: 'node',\n                 *   lts: 'Erbium',\n                 *   sourceUrl: 'https://nodejs.org/download/release/v12.18.1/node-v12.18.1.tar.gz',\n                 *   headersUrl: 'https://nodejs.org/download/release/v12.18.1/node-v12.18.1-headers.tar.gz',\n                 *   libUrl: 'https://nodejs.org/download/release/v12.18.1/win-x64/node.lib'\n                 * }\n                 * ```\n                 *\n                 * In custom builds from non-release versions of the source tree, only the`name` property may be present. The additional properties should not be\n                 * relied upon to exist.\n                 * @since v3.0.0\n                 */\n                readonly release: ProcessRelease;\n                features: {\n                    inspector: boolean;\n                    debug: boolean;\n                    uv: boolean;\n                    ipv6: boolean;\n                    tls_alpn: boolean;\n                    tls_sni: boolean;\n                    tls_ocsp: boolean;\n                    tls: boolean;\n                };\n                /**\n                 * `process.umask()` returns the Node.js process's file mode creation mask. Child\n                 * processes inherit the mask from the parent process.\n                 * @since v0.1.19\n                 * @deprecated Calling `process.umask()` with no argument causes the process-wide umask to be written twice. This introduces a race condition between threads, and is a potential   *\n                 * security vulnerability. There is no safe, cross-platform alternative API.\n                 */\n                umask(): number;\n                /**\n                 * Can only be set if not in worker thread.\n                 */\n                umask(mask: string | number): number;\n                /**\n                 * The `process.uptime()` method returns the number of seconds the current Node.js\n                 * process has been running.\n                 *\n                 * The return value includes fractions of a second. Use `Math.floor()` to get whole\n                 * seconds.\n                 * @since v0.5.0\n                 */\n                uptime(): number;\n                hrtime: HRTime;\n                /**\n                 * If Node.js is spawned with an IPC channel, the `process.send()` method can be\n                 * used to send messages to the parent process. Messages will be received as a `'message'` event on the parent's `ChildProcess` object.\n                 *\n                 * If Node.js was not spawned with an IPC channel, `process.send` will be`undefined`.\n                 *\n                 * The message goes through serialization and parsing. The resulting message might\n                 * not be the same as what is originally sent.\n                 * @since v0.5.9\n                 * @param options used to parameterize the sending of certain types of handles.`options` supports the following properties:\n                 */\n                send?(\n                    message: any,\n                    sendHandle?: any,\n                    options?: {\n                        swallowErrors?: boolean | undefined;\n                    },\n                    callback?: (error: Error | null) => void\n                ): boolean;\n                /**\n                 * If the Node.js process is spawned with an IPC channel (see the `Child Process` and `Cluster` documentation), the `process.disconnect()` method will close the\n                 * IPC channel to the parent process, allowing the child process to exit gracefully\n                 * once there are no other connections keeping it alive.\n                 *\n                 * The effect of calling `process.disconnect()` is the same as calling `ChildProcess.disconnect()` from the parent process.\n                 *\n                 * If the Node.js process was not spawned with an IPC channel,`process.disconnect()` will be `undefined`.\n                 * @since v0.7.2\n                 */\n                disconnect(): void;\n                /**\n                 * If the Node.js process is spawned with an IPC channel (see the `Child Process` and `Cluster` documentation), the `process.connected` property will return`true` so long as the IPC\n                 * channel is connected and will return `false` after`process.disconnect()` is called.\n                 *\n                 * Once `process.connected` is `false`, it is no longer possible to send messages\n                 * over the IPC channel using `process.send()`.\n                 * @since v0.7.2\n                 */\n                connected: boolean;\n                /**\n                 * The `process.allowedNodeEnvironmentFlags` property is a special,\n                 * read-only `Set` of flags allowable within the `NODE_OPTIONS` environment variable.\n                 *\n                 * `process.allowedNodeEnvironmentFlags` extends `Set`, but overrides`Set.prototype.has` to recognize several different possible flag\n                 * representations. `process.allowedNodeEnvironmentFlags.has()` will\n                 * return `true` in the following cases:\n                 *\n                 * * Flags may omit leading single (`-`) or double (`--`) dashes; e.g.,`inspect-brk` for `--inspect-brk`, or `r` for `-r`.\n                 * * Flags passed through to V8 (as listed in `--v8-options`) may replace\n                 * one or more _non-leading_ dashes for an underscore, or vice-versa;\n                 * e.g., `--perf_basic_prof`, `--perf-basic-prof`, `--perf_basic-prof`,\n                 * etc.\n                 * * Flags may contain one or more equals (`=`) characters; all\n                 * characters after and including the first equals will be ignored;\n                 * e.g., `--stack-trace-limit=100`.\n                 * * Flags _must_ be allowable within `NODE_OPTIONS`.\n                 *\n                 * When iterating over `process.allowedNodeEnvironmentFlags`, flags will\n                 * appear only _once_; each will begin with one or more dashes. Flags\n                 * passed through to V8 will contain underscores instead of non-leading\n                 * dashes:\n                 *\n                 * ```js\n                 * import { allowedNodeEnvironmentFlags } from 'process';\n                 *\n                 * allowedNodeEnvironmentFlags.forEach((flag) => {\n                 *   // -r\n                 *   // --inspect-brk\n                 *   // --abort_on_uncaught_exception\n                 *   // ...\n                 * });\n                 * ```\n                 *\n                 * The methods `add()`, `clear()`, and `delete()` of`process.allowedNodeEnvironmentFlags` do nothing, and will fail\n                 * silently.\n                 *\n                 * If Node.js was compiled _without_ `NODE_OPTIONS` support (shown in {@link config}), `process.allowedNodeEnvironmentFlags` will\n                 * contain what _would have_ been allowable.\n                 * @since v10.10.0\n                 */\n                allowedNodeEnvironmentFlags: ReadonlySet<string>;\n                /**\n                 * `process.report` is an object whose methods are used to generate diagnostic\n                 * reports for the current process. Additional documentation is available in the `report documentation`.\n                 * @since v11.8.0\n                 */\n                report?: ProcessReport | undefined;\n                /**\n                 * ```js\n                 * import { resourceUsage } from 'process';\n                 *\n                 * console.log(resourceUsage());\n                 * /*\n                 *   Will output:\n                 *   {\n                 *     userCPUTime: 82872,\n                 *     systemCPUTime: 4143,\n                 *     maxRSS: 33164,\n                 *     sharedMemorySize: 0,\n                 *     unsharedDataSize: 0,\n                 *     unsharedStackSize: 0,\n                 *     minorPageFault: 2469,\n                 *     majorPageFault: 0,\n                 *     swappedOut: 0,\n                 *     fsRead: 0,\n                 *     fsWrite: 8,\n                 *     ipcSent: 0,\n                 *     ipcReceived: 0,\n                 *     signalsCount: 0,\n                 *     voluntaryContextSwitches: 79,\n                 *     involuntaryContextSwitches: 1\n                 *   }\n                 *\n                 * ```\n                 * @since v12.6.0\n                 * @return the resource usage for the current process. All of these values come from the `uv_getrusage` call which returns a [`uv_rusage_t` struct][uv_rusage_t].\n                 */\n                resourceUsage(): ResourceUsage;\n                /**\n                 * The `process.traceDeprecation` property indicates whether the`--trace-deprecation` flag is set on the current Node.js process. See the\n                 * documentation for the `'warning' event` and the `emitWarning() method` for more information about this\n                 * flag's behavior.\n                 * @since v0.8.0\n                 */\n                traceDeprecation: boolean;\n                /* EventEmitter */\n                addListener(event: 'beforeExit', listener: BeforeExitListener): this;\n                addListener(event: 'disconnect', listener: DisconnectListener): this;\n                addListener(event: 'exit', listener: ExitListener): this;\n                addListener(event: 'rejectionHandled', listener: RejectionHandledListener): this;\n                addListener(event: 'uncaughtException', listener: UncaughtExceptionListener): this;\n                addListener(event: 'uncaughtExceptionMonitor', listener: UncaughtExceptionListener): this;\n                addListener(event: 'unhandledRejection', listener: UnhandledRejectionListener): this;\n                addListener(event: 'warning', listener: WarningListener): this;\n                addListener(event: 'message', listener: MessageListener): this;\n                addListener(event: Signals, listener: SignalsListener): this;\n                addListener(event: 'multipleResolves', listener: MultipleResolveListener): this;\n                addListener(event: 'worker', listener: WorkerListener): this;\n                emit(event: 'beforeExit', code: number): boolean;\n                emit(event: 'disconnect'): boolean;\n                emit(event: 'exit', code: number): boolean;\n                emit(event: 'rejectionHandled', promise: Promise<unknown>): boolean;\n                emit(event: 'uncaughtException', error: Error): boolean;\n                emit(event: 'uncaughtExceptionMonitor', error: Error): boolean;\n                emit(event: 'unhandledRejection', reason: unknown, promise: Promise<unknown>): boolean;\n                emit(event: 'warning', warning: Error): boolean;\n                emit(event: 'message', message: unknown, sendHandle: unknown): this;\n                emit(event: Signals, signal: Signals): boolean;\n                emit(event: 'multipleResolves', type: MultipleResolveType, promise: Promise<unknown>, value: unknown): this;\n                emit(event: 'worker', listener: WorkerListener): this;\n                on(event: 'beforeExit', listener: BeforeExitListener): this;\n                on(event: 'disconnect', listener: DisconnectListener): this;\n                on(event: 'exit', listener: ExitListener): this;\n                on(event: 'rejectionHandled', listener: RejectionHandledListener): this;\n                on(event: 'uncaughtException', listener: UncaughtExceptionListener): this;\n                on(event: 'uncaughtExceptionMonitor', listener: UncaughtExceptionListener): this;\n                on(event: 'unhandledRejection', listener: UnhandledRejectionListener): this;\n                on(event: 'warning', listener: WarningListener): this;\n                on(event: 'message', listener: MessageListener): this;\n                on(event: Signals, listener: SignalsListener): this;\n                on(event: 'multipleResolves', listener: MultipleResolveListener): this;\n                on(event: 'worker', listener: WorkerListener): this;\n                on(event: string | symbol, listener: (...args: any[]) => void): this;\n                once(event: 'beforeExit', listener: BeforeExitListener): this;\n                once(event: 'disconnect', listener: DisconnectListener): this;\n                once(event: 'exit', listener: ExitListener): this;\n                once(event: 'rejectionHandled', listener: RejectionHandledListener): this;\n                once(event: 'uncaughtException', listener: UncaughtExceptionListener): this;\n                once(event: 'uncaughtExceptionMonitor', listener: UncaughtExceptionListener): this;\n                once(event: 'unhandledRejection', listener: UnhandledRejectionListener): this;\n                once(event: 'warning', listener: WarningListener): this;\n                once(event: 'message', listener: MessageListener): this;\n                once(event: Signals, listener: SignalsListener): this;\n                once(event: 'multipleResolves', listener: MultipleResolveListener): this;\n                once(event: 'worker', listener: WorkerListener): this;\n                once(event: string | symbol, listener: (...args: any[]) => void): this;\n                prependListener(event: 'beforeExit', listener: BeforeExitListener): this;\n                prependListener(event: 'disconnect', listener: DisconnectListener): this;\n                prependListener(event: 'exit', listener: ExitListener): this;\n                prependListener(event: 'rejectionHandled', listener: RejectionHandledListener): this;\n                prependListener(event: 'uncaughtException', listener: UncaughtExceptionListener): this;\n                prependListener(event: 'uncaughtExceptionMonitor', listener: UncaughtExceptionListener): this;\n                prependListener(event: 'unhandledRejection', listener: UnhandledRejectionListener): this;\n                prependListener(event: 'warning', listener: WarningListener): this;\n                prependListener(event: 'message', listener: MessageListener): this;\n                prependListener(event: Signals, listener: SignalsListener): this;\n                prependListener(event: 'multipleResolves', listener: MultipleResolveListener): this;\n                prependListener(event: 'worker', listener: WorkerListener): this;\n                prependOnceListener(event: 'beforeExit', listener: BeforeExitListener): this;\n                prependOnceListener(event: 'disconnect', listener: DisconnectListener): this;\n                prependOnceListener(event: 'exit', listener: ExitListener): this;\n                prependOnceListener(event: 'rejectionHandled', listener: RejectionHandledListener): this;\n                prependOnceListener(event: 'uncaughtException', listener: UncaughtExceptionListener): this;\n                prependOnceListener(event: 'uncaughtExceptionMonitor', listener: UncaughtExceptionListener): this;\n                prependOnceListener(event: 'unhandledRejection', listener: UnhandledRejectionListener): this;\n                prependOnceListener(event: 'warning', listener: WarningListener): this;\n                prependOnceListener(event: 'message', listener: MessageListener): this;\n                prependOnceListener(event: Signals, listener: SignalsListener): this;\n                prependOnceListener(event: 'multipleResolves', listener: MultipleResolveListener): this;\n                prependOnceListener(event: 'worker', listener: WorkerListener): this;\n                listeners(event: 'beforeExit'): BeforeExitListener[];\n                listeners(event: 'disconnect'): DisconnectListener[];\n                listeners(event: 'exit'): ExitListener[];\n                listeners(event: 'rejectionHandled'): RejectionHandledListener[];\n                listeners(event: 'uncaughtException'): UncaughtExceptionListener[];\n                listeners(event: 'uncaughtExceptionMonitor'): UncaughtExceptionListener[];\n                listeners(event: 'unhandledRejection'): UnhandledRejectionListener[];\n                listeners(event: 'warning'): WarningListener[];\n                listeners(event: 'message'): MessageListener[];\n                listeners(event: Signals): SignalsListener[];\n                listeners(event: 'multipleResolves'): MultipleResolveListener[];\n                listeners(event: 'worker'): WorkerListener[];\n            }\n        }\n    }\n    export = process;\n}\ndeclare module 'node:process' {\n    import process = require('process');\n    export = process;\n}\n"
    },
    {
      "path": "/node_modules/@types/node/punycode.d.ts",
      "content": "/**\n * **The version of the punycode module bundled in Node.js is being deprecated.**In a future major version of Node.js this module will be removed. Users\n * currently depending on the `punycode` module should switch to using the\n * userland-provided [Punycode.js](https://github.com/bestiejs/punycode.js) module instead. For punycode-based URL\n * encoding, see `url.domainToASCII` or, more generally, the `WHATWG URL API`.\n *\n * The `punycode` module is a bundled version of the [Punycode.js](https://github.com/bestiejs/punycode.js) module. It\n * can be accessed using:\n *\n * ```js\n * const punycode = require('punycode');\n * ```\n *\n * [Punycode](https://tools.ietf.org/html/rfc3492) is a character encoding scheme defined by RFC 3492 that is\n * primarily intended for use in Internationalized Domain Names. Because host\n * names in URLs are limited to ASCII characters only, Domain Names that contain\n * non-ASCII characters must be converted into ASCII using the Punycode scheme.\n * For instance, the Japanese character that translates into the English word,`'example'` is `'例'`. The Internationalized Domain Name, `'例.com'` (equivalent\n * to `'example.com'`) is represented by Punycode as the ASCII string`'xn--fsq.com'`.\n *\n * The `punycode` module provides a simple implementation of the Punycode standard.\n *\n * The `punycode` module is a third-party dependency used by Node.js and\n * made available to developers as a convenience. Fixes or other modifications to\n * the module must be directed to the [Punycode.js](https://github.com/bestiejs/punycode.js) project.\n * @deprecated Since v7.0.0 - Deprecated\n * @see [source](https://github.com/nodejs/node/blob/v16.9.0/lib/punycode.js)\n */\ndeclare module 'punycode' {\n    /**\n     * The `punycode.decode()` method converts a [Punycode](https://tools.ietf.org/html/rfc3492) string of ASCII-only\n     * characters to the equivalent string of Unicode codepoints.\n     *\n     * ```js\n     * punycode.decode('maana-pta'); // 'mañana'\n     * punycode.decode('--dqo34k'); // '☃-⌘'\n     * ```\n     * @since v0.5.1\n     */\n    function decode(string: string): string;\n    /**\n     * The `punycode.encode()` method converts a string of Unicode codepoints to a [Punycode](https://tools.ietf.org/html/rfc3492) string of ASCII-only characters.\n     *\n     * ```js\n     * punycode.encode('mañana'); // 'maana-pta'\n     * punycode.encode('☃-⌘'); // '--dqo34k'\n     * ```\n     * @since v0.5.1\n     */\n    function encode(string: string): string;\n    /**\n     * The `punycode.toUnicode()` method converts a string representing a domain name\n     * containing [Punycode](https://tools.ietf.org/html/rfc3492) encoded characters into Unicode. Only the [Punycode](https://tools.ietf.org/html/rfc3492) encoded parts of the domain name are be\n     * converted.\n     *\n     * ```js\n     * // decode domain names\n     * punycode.toUnicode('xn--maana-pta.com'); // 'mañana.com'\n     * punycode.toUnicode('xn----dqo34k.com');  // '☃-⌘.com'\n     * punycode.toUnicode('example.com');       // 'example.com'\n     * ```\n     * @since v0.6.1\n     */\n    function toUnicode(domain: string): string;\n    /**\n     * The `punycode.toASCII()` method converts a Unicode string representing an\n     * Internationalized Domain Name to [Punycode](https://tools.ietf.org/html/rfc3492). Only the non-ASCII parts of the\n     * domain name will be converted. Calling `punycode.toASCII()` on a string that\n     * already only contains ASCII characters will have no effect.\n     *\n     * ```js\n     * // encode domain names\n     * punycode.toASCII('mañana.com');  // 'xn--maana-pta.com'\n     * punycode.toASCII('☃-⌘.com');   // 'xn----dqo34k.com'\n     * punycode.toASCII('example.com'); // 'example.com'\n     * ```\n     * @since v0.6.1\n     */\n    function toASCII(domain: string): string;\n    /**\n     * @deprecated since v7.0.0\n     * The version of the punycode module bundled in Node.js is being deprecated.\n     * In a future major version of Node.js this module will be removed.\n     * Users currently depending on the punycode module should switch to using\n     * the userland-provided Punycode.js module instead.\n     */\n    const ucs2: ucs2;\n    interface ucs2 {\n        /**\n         * @deprecated since v7.0.0\n         * The version of the punycode module bundled in Node.js is being deprecated.\n         * In a future major version of Node.js this module will be removed.\n         * Users currently depending on the punycode module should switch to using\n         * the userland-provided Punycode.js module instead.\n         */\n        decode(string: string): number[];\n        /**\n         * @deprecated since v7.0.0\n         * The version of the punycode module bundled in Node.js is being deprecated.\n         * In a future major version of Node.js this module will be removed.\n         * Users currently depending on the punycode module should switch to using\n         * the userland-provided Punycode.js module instead.\n         */\n        encode(codePoints: ReadonlyArray<number>): string;\n    }\n    /**\n     * @deprecated since v7.0.0\n     * The version of the punycode module bundled in Node.js is being deprecated.\n     * In a future major version of Node.js this module will be removed.\n     * Users currently depending on the punycode module should switch to using\n     * the userland-provided Punycode.js module instead.\n     */\n    const version: string;\n}\ndeclare module 'node:punycode' {\n    export * from 'punycode';\n}\n"
    },
    {
      "path": "/node_modules/@types/node/querystring.d.ts",
      "content": "/**\n * The `querystring` module provides utilities for parsing and formatting URL\n * query strings. It can be accessed using:\n *\n * ```js\n * const querystring = require('querystring');\n * ```\n *\n * `querystring` is more performant than `URLSearchParams` but is not a\n * standardized API. Use `URLSearchParams` when performance is not critical\n * or when compatibility with browser code is desirable.\n * @see [source](https://github.com/nodejs/node/blob/v16.9.0/lib/querystring.js)\n */\ndeclare module 'querystring' {\n    interface StringifyOptions {\n        encodeURIComponent?: ((str: string) => string) | undefined;\n    }\n    interface ParseOptions {\n        maxKeys?: number | undefined;\n        decodeURIComponent?: ((str: string) => string) | undefined;\n    }\n    interface ParsedUrlQuery extends NodeJS.Dict<string | string[]> {}\n    interface ParsedUrlQueryInput extends NodeJS.Dict<string | number | boolean | ReadonlyArray<string> | ReadonlyArray<number> | ReadonlyArray<boolean> | null> {}\n    /**\n     * The `querystring.stringify()` method produces a URL query string from a\n     * given `obj` by iterating through the object's \"own properties\".\n     *\n     * It serializes the following types of values passed in `obj`:[string](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#String_type) |\n     * [number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Number_type) |\n     * [bigint](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/BigInt) |\n     * [boolean](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Boolean_type) |\n     * [string\\[\\]](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#String_type) |\n     * [number\\[\\]](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Number_type) |\n     * [bigint\\[\\]](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/BigInt) |\n     * [boolean\\[\\]](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Boolean_type) The numeric values must be finite. Any other input values will be coerced to\n     * empty strings.\n     *\n     * ```js\n     * querystring.stringify({ foo: 'bar', baz: ['qux', 'quux'], corge: '' });\n     * // Returns 'foo=bar&#x26;baz=qux&#x26;baz=quux&#x26;corge='\n     *\n     * querystring.stringify({ foo: 'bar', baz: 'qux' }, ';', ':');\n     * // Returns 'foo:bar;baz:qux'\n     * ```\n     *\n     * By default, characters requiring percent-encoding within the query string will\n     * be encoded as UTF-8\\. If an alternative encoding is required, then an alternative`encodeURIComponent` option will need to be specified:\n     *\n     * ```js\n     * // Assuming gbkEncodeURIComponent function already exists,\n     *\n     * querystring.stringify({ w: '中文', foo: 'bar' }, null, null,\n     *                       { encodeURIComponent: gbkEncodeURIComponent });\n     * ```\n     * @since v0.1.25\n     * @param obj The object to serialize into a URL query string\n     * @param [sep='&'] The substring used to delimit key and value pairs in the query string.\n     * @param [eq='='] . The substring used to delimit keys and values in the query string.\n     */\n    function stringify(obj?: ParsedUrlQueryInput, sep?: string, eq?: string, options?: StringifyOptions): string;\n    /**\n     * The `querystring.parse()` method parses a URL query string (`str`) into a\n     * collection of key and value pairs.\n     *\n     * For example, the query string `'foo=bar&#x26;abc=xyz&#x26;abc=123'` is parsed into:\n     *\n     * ```js\n     * {\n     *   foo: 'bar',\n     *   abc: ['xyz', '123']\n     * }\n     * ```\n     *\n     * The object returned by the `querystring.parse()` method _does not_prototypically inherit from the JavaScript `Object`. This means that typical`Object` methods such as `obj.toString()`,\n     * `obj.hasOwnProperty()`, and others\n     * are not defined and _will not work_.\n     *\n     * By default, percent-encoded characters within the query string will be assumed\n     * to use UTF-8 encoding. If an alternative character encoding is used, then an\n     * alternative `decodeURIComponent` option will need to be specified:\n     *\n     * ```js\n     * // Assuming gbkDecodeURIComponent function already exists...\n     *\n     * querystring.parse('w=%D6%D0%CE%C4&#x26;foo=bar', null, null,\n     *                   { decodeURIComponent: gbkDecodeURIComponent });\n     * ```\n     * @since v0.1.25\n     * @param str The URL query string to parse\n     * @param [sep='&'] The substring used to delimit key and value pairs in the query string.\n     * @param [eq='='] . The substring used to delimit keys and values in the query string.\n     */\n    function parse(str: string, sep?: string, eq?: string, options?: ParseOptions): ParsedUrlQuery;\n    /**\n     * The querystring.encode() function is an alias for querystring.stringify().\n     */\n    const encode: typeof stringify;\n    /**\n     * The querystring.decode() function is an alias for querystring.parse().\n     */\n    const decode: typeof parse;\n    /**\n     * The `querystring.escape()` method performs URL percent-encoding on the given`str` in a manner that is optimized for the specific requirements of URL\n     * query strings.\n     *\n     * The `querystring.escape()` method is used by `querystring.stringify()` and is\n     * generally not expected to be used directly. It is exported primarily to allow\n     * application code to provide a replacement percent-encoding implementation if\n     * necessary by assigning `querystring.escape` to an alternative function.\n     * @since v0.1.25\n     */\n    function escape(str: string): string;\n    /**\n     * The `querystring.unescape()` method performs decoding of URL percent-encoded\n     * characters on the given `str`.\n     *\n     * The `querystring.unescape()` method is used by `querystring.parse()` and is\n     * generally not expected to be used directly. It is exported primarily to allow\n     * application code to provide a replacement decoding implementation if\n     * necessary by assigning `querystring.unescape` to an alternative function.\n     *\n     * By default, the `querystring.unescape()` method will attempt to use the\n     * JavaScript built-in `decodeURIComponent()` method to decode. If that fails,\n     * a safer equivalent that does not throw on malformed URLs will be used.\n     * @since v0.1.25\n     */\n    function unescape(str: string): string;\n}\ndeclare module 'node:querystring' {\n    export * from 'querystring';\n}\n"
    },
    {
      "path": "/node_modules/@types/node/readline.d.ts",
      "content": "/**\n * The `readline` module provides an interface for reading data from a `Readable` stream (such as `process.stdin`) one line at a time. It can be accessed\n * using:\n *\n * ```js\n * const readline = require('readline');\n * ```\n *\n * The following simple example illustrates the basic use of the `readline` module.\n *\n * ```js\n * const readline = require('readline');\n *\n * const rl = readline.createInterface({\n *   input: process.stdin,\n *   output: process.stdout\n * });\n *\n * rl.question('What do you think of Node.js? ', (answer) => {\n *   // TODO: Log the answer in a database\n *   console.log(`Thank you for your valuable feedback: ${answer}`);\n *\n *   rl.close();\n * });\n * ```\n *\n * Once this code is invoked, the Node.js application will not terminate until the`readline.Interface` is closed because the interface waits for data to be\n * received on the `input` stream.\n * @see [source](https://github.com/nodejs/node/blob/v16.9.0/lib/readline.js)\n */\ndeclare module 'readline' {\n    import { Abortable, EventEmitter } from 'node:events';\n    interface Key {\n        sequence?: string | undefined;\n        name?: string | undefined;\n        ctrl?: boolean | undefined;\n        meta?: boolean | undefined;\n        shift?: boolean | undefined;\n    }\n    /**\n     * Instances of the `readline.Interface` class are constructed using the`readline.createInterface()` method. Every instance is associated with a\n     * single `input` `Readable` stream and a single `output` `Writable` stream.\n     * The `output` stream is used to print prompts for user input that arrives on,\n     * and is read from, the `input` stream.\n     * @since v0.1.104\n     */\n    class Interface extends EventEmitter {\n        readonly terminal: boolean;\n        /**\n         * The current input data being processed by node.\n         *\n         * This can be used when collecting input from a TTY stream to retrieve the\n         * current value that has been processed thus far, prior to the `line` event\n         * being emitted. Once the `line` event has been emitted, this property will\n         * be an empty string.\n         *\n         * Be aware that modifying the value during the instance runtime may have\n         * unintended consequences if `rl.cursor` is not also controlled.\n         *\n         * **If not using a TTY stream for input, use the `'line'` event.**\n         *\n         * One possible use case would be as follows:\n         *\n         * ```js\n         * const values = ['lorem ipsum', 'dolor sit amet'];\n         * const rl = readline.createInterface(process.stdin);\n         * const showResults = debounce(() => {\n         *   console.log(\n         *     '\\n',\n         *     values.filter((val) => val.startsWith(rl.line)).join(' ')\n         *   );\n         * }, 300);\n         * process.stdin.on('keypress', (c, k) => {\n         *   showResults();\n         * });\n         * ```\n         * @since v0.1.98\n         */\n        readonly line: string;\n        /**\n         * The cursor position relative to `rl.line`.\n         *\n         * This will track where the current cursor lands in the input string, when\n         * reading input from a TTY stream. The position of cursor determines the\n         * portion of the input string that will be modified as input is processed,\n         * as well as the column where the terminal caret will be rendered.\n         * @since v0.1.98\n         */\n        readonly cursor: number;\n        /**\n         * NOTE: According to the documentation:\n         *\n         * > Instances of the `readline.Interface` class are constructed using the\n         * > `readline.createInterface()` method.\n         *\n         * @see https://nodejs.org/dist/latest-v10.x/docs/api/readline.html#readline_class_interface\n         */\n        protected constructor(input: NodeJS.ReadableStream, output?: NodeJS.WritableStream, completer?: Completer | AsyncCompleter, terminal?: boolean);\n        /**\n         * NOTE: According to the documentation:\n         *\n         * > Instances of the `readline.Interface` class are constructed using the\n         * > `readline.createInterface()` method.\n         *\n         * @see https://nodejs.org/dist/latest-v10.x/docs/api/readline.html#readline_class_interface\n         */\n        protected constructor(options: ReadLineOptions);\n        /**\n         * The `rl.getPrompt()` method returns the current prompt used by `rl.prompt()`.\n         * @since v15.3.0\n         * @return the current prompt string\n         */\n        getPrompt(): string;\n        /**\n         * The `rl.setPrompt()` method sets the prompt that will be written to `output`whenever `rl.prompt()` is called.\n         * @since v0.1.98\n         */\n        setPrompt(prompt: string): void;\n        /**\n         * The `rl.prompt()` method writes the `readline.Interface` instances configured`prompt` to a new line in `output` in order to provide a user with a new\n         * location at which to provide input.\n         *\n         * When called, `rl.prompt()` will resume the `input` stream if it has been\n         * paused.\n         *\n         * If the `readline.Interface` was created with `output` set to `null` or`undefined` the prompt is not written.\n         * @since v0.1.98\n         * @param preserveCursor If `true`, prevents the cursor placement from being reset to `0`.\n         */\n        prompt(preserveCursor?: boolean): void;\n        /**\n         * The `rl.question()` method displays the `query` by writing it to the `output`,\n         * waits for user input to be provided on `input`, then invokes the `callback`function passing the provided input as the first argument.\n         *\n         * When called, `rl.question()` will resume the `input` stream if it has been\n         * paused.\n         *\n         * If the `readline.Interface` was created with `output` set to `null` or`undefined` the `query` is not written.\n         *\n         * The `callback` function passed to `rl.question()` does not follow the typical\n         * pattern of accepting an `Error` object or `null` as the first argument.\n         * The `callback` is called with the provided answer as the only argument.\n         *\n         * Example usage:\n         *\n         * ```js\n         * rl.question('What is your favorite food? ', (answer) => {\n         *   console.log(`Oh, so your favorite food is ${answer}`);\n         * });\n         * ```\n         *\n         * Using an `AbortController` to cancel a question.\n         *\n         * ```js\n         * const ac = new AbortController();\n         * const signal = ac.signal;\n         *\n         * rl.question('What is your favorite food? ', { signal }, (answer) => {\n         *   console.log(`Oh, so your favorite food is ${answer}`);\n         * });\n         *\n         * signal.addEventListener('abort', () => {\n         *   console.log('The food question timed out');\n         * }, { once: true });\n         *\n         * setTimeout(() => ac.abort(), 10000);\n         * ```\n         *\n         * If this method is invoked as it's util.promisify()ed version, it returns a\n         * Promise that fulfills with the answer. If the question is canceled using\n         * an `AbortController` it will reject with an `AbortError`.\n         *\n         * ```js\n         * const util = require('util');\n         * const question = util.promisify(rl.question).bind(rl);\n         *\n         * async function questionExample() {\n         *   try {\n         *     const answer = await question('What is you favorite food? ');\n         *     console.log(`Oh, so your favorite food is ${answer}`);\n         *   } catch (err) {\n         *     console.error('Question rejected', err);\n         *   }\n         * }\n         * questionExample();\n         * ```\n         * @since v0.3.3\n         * @param query A statement or query to write to `output`, prepended to the prompt.\n         * @param callback A callback function that is invoked with the user's input in response to the `query`.\n         */\n        question(query: string, callback: (answer: string) => void): void;\n        question(query: string, options: Abortable, callback: (answer: string) => void): void;\n        /**\n         * The `rl.pause()` method pauses the `input` stream, allowing it to be resumed\n         * later if necessary.\n         *\n         * Calling `rl.pause()` does not immediately pause other events (including`'line'`) from being emitted by the `readline.Interface` instance.\n         * @since v0.3.4\n         */\n        pause(): this;\n        /**\n         * The `rl.resume()` method resumes the `input` stream if it has been paused.\n         * @since v0.3.4\n         */\n        resume(): this;\n        /**\n         * The `rl.close()` method closes the `readline.Interface` instance and\n         * relinquishes control over the `input` and `output` streams. When called,\n         * the `'close'` event will be emitted.\n         *\n         * Calling `rl.close()` does not immediately stop other events (including `'line'`)\n         * from being emitted by the `readline.Interface` instance.\n         * @since v0.1.98\n         */\n        close(): void;\n        /**\n         * The `rl.write()` method will write either `data` or a key sequence identified\n         * by `key` to the `output`. The `key` argument is supported only if `output` is\n         * a `TTY` text terminal. See `TTY keybindings` for a list of key\n         * combinations.\n         *\n         * If `key` is specified, `data` is ignored.\n         *\n         * When called, `rl.write()` will resume the `input` stream if it has been\n         * paused.\n         *\n         * If the `readline.Interface` was created with `output` set to `null` or`undefined` the `data` and `key` are not written.\n         *\n         * ```js\n         * rl.write('Delete this!');\n         * // Simulate Ctrl+U to delete the line written previously\n         * rl.write(null, { ctrl: true, name: 'u' });\n         * ```\n         *\n         * The `rl.write()` method will write the data to the `readline` `Interface`'s`input`_as if it were provided by the user_.\n         * @since v0.1.98\n         */\n        write(data: string | Buffer, key?: Key): void;\n        write(data: undefined | null | string | Buffer, key: Key): void;\n        /**\n         * Returns the real position of the cursor in relation to the input\n         * prompt + string. Long input (wrapping) strings, as well as multiple\n         * line prompts are included in the calculations.\n         * @since v13.5.0, v12.16.0\n         */\n        getCursorPos(): CursorPos;\n        /**\n         * events.EventEmitter\n         * 1. close\n         * 2. line\n         * 3. pause\n         * 4. resume\n         * 5. SIGCONT\n         * 6. SIGINT\n         * 7. SIGTSTP\n         * 8. history\n         */\n        addListener(event: string, listener: (...args: any[]) => void): this;\n        addListener(event: 'close', listener: () => void): this;\n        addListener(event: 'line', listener: (input: string) => void): this;\n        addListener(event: 'pause', listener: () => void): this;\n        addListener(event: 'resume', listener: () => void): this;\n        addListener(event: 'SIGCONT', listener: () => void): this;\n        addListener(event: 'SIGINT', listener: () => void): this;\n        addListener(event: 'SIGTSTP', listener: () => void): this;\n        addListener(event: 'history', listener: (history: string[]) => void): this;\n        emit(event: string | symbol, ...args: any[]): boolean;\n        emit(event: 'close'): boolean;\n        emit(event: 'line', input: string): boolean;\n        emit(event: 'pause'): boolean;\n        emit(event: 'resume'): boolean;\n        emit(event: 'SIGCONT'): boolean;\n        emit(event: 'SIGINT'): boolean;\n        emit(event: 'SIGTSTP'): boolean;\n        emit(event: 'history', history: string[]): boolean;\n        on(event: string, listener: (...args: any[]) => void): this;\n        on(event: 'close', listener: () => void): this;\n        on(event: 'line', listener: (input: string) => void): this;\n        on(event: 'pause', listener: () => void): this;\n        on(event: 'resume', listener: () => void): this;\n        on(event: 'SIGCONT', listener: () => void): this;\n        on(event: 'SIGINT', listener: () => void): this;\n        on(event: 'SIGTSTP', listener: () => void): this;\n        on(event: 'history', listener: (history: string[]) => void): this;\n        once(event: string, listener: (...args: any[]) => void): this;\n        once(event: 'close', listener: () => void): this;\n        once(event: 'line', listener: (input: string) => void): this;\n        once(event: 'pause', listener: () => void): this;\n        once(event: 'resume', listener: () => void): this;\n        once(event: 'SIGCONT', listener: () => void): this;\n        once(event: 'SIGINT', listener: () => void): this;\n        once(event: 'SIGTSTP', listener: () => void): this;\n        once(event: 'history', listener: (history: string[]) => void): this;\n        prependListener(event: string, listener: (...args: any[]) => void): this;\n        prependListener(event: 'close', listener: () => void): this;\n        prependListener(event: 'line', listener: (input: string) => void): this;\n        prependListener(event: 'pause', listener: () => void): this;\n        prependListener(event: 'resume', listener: () => void): this;\n        prependListener(event: 'SIGCONT', listener: () => void): this;\n        prependListener(event: 'SIGINT', listener: () => void): this;\n        prependListener(event: 'SIGTSTP', listener: () => void): this;\n        prependListener(event: 'history', listener: (history: string[]) => void): this;\n        prependOnceListener(event: string, listener: (...args: any[]) => void): this;\n        prependOnceListener(event: 'close', listener: () => void): this;\n        prependOnceListener(event: 'line', listener: (input: string) => void): this;\n        prependOnceListener(event: 'pause', listener: () => void): this;\n        prependOnceListener(event: 'resume', listener: () => void): this;\n        prependOnceListener(event: 'SIGCONT', listener: () => void): this;\n        prependOnceListener(event: 'SIGINT', listener: () => void): this;\n        prependOnceListener(event: 'SIGTSTP', listener: () => void): this;\n        prependOnceListener(event: 'history', listener: (history: string[]) => void): this;\n        [Symbol.asyncIterator](): AsyncIterableIterator<string>;\n    }\n    type ReadLine = Interface; // type forwarded for backwards compatibility\n    type Completer = (line: string) => CompleterResult;\n    type AsyncCompleter = (line: string, callback: (err?: null | Error, result?: CompleterResult) => void) => void;\n    type CompleterResult = [string[], string];\n    interface ReadLineOptions {\n        input: NodeJS.ReadableStream;\n        output?: NodeJS.WritableStream | undefined;\n        completer?: Completer | AsyncCompleter | undefined;\n        terminal?: boolean | undefined;\n        /**\n         *  Initial list of history lines. This option makes sense\n         * only if `terminal` is set to `true` by the user or by an internal `output`\n         * check, otherwise the history caching mechanism is not initialized at all.\n         * @default []\n         */\n        history?: string[] | undefined;\n        historySize?: number | undefined;\n        prompt?: string | undefined;\n        crlfDelay?: number | undefined;\n        /**\n         * If `true`, when a new input line added\n         * to the history list duplicates an older one, this removes the older line\n         * from the list.\n         * @default false\n         */\n        removeHistoryDuplicates?: boolean | undefined;\n        escapeCodeTimeout?: number | undefined;\n        tabSize?: number | undefined;\n    }\n    /**\n     * The `readline.createInterface()` method creates a new `readline.Interface`instance.\n     *\n     * ```js\n     * const readline = require('readline');\n     * const rl = readline.createInterface({\n     *   input: process.stdin,\n     *   output: process.stdout\n     * });\n     * ```\n     *\n     * Once the `readline.Interface` instance is created, the most common case is to\n     * listen for the `'line'` event:\n     *\n     * ```js\n     * rl.on('line', (line) => {\n     *   console.log(`Received: ${line}`);\n     * });\n     * ```\n     *\n     * If `terminal` is `true` for this instance then the `output` stream will get\n     * the best compatibility if it defines an `output.columns` property and emits\n     * a `'resize'` event on the `output` if or when the columns ever change\n     * (`process.stdout` does this automatically when it is a TTY).\n     *\n     * When creating a `readline.Interface` using `stdin` as input, the program\n     * will not terminate until it receives `EOF` (Ctrl+D on\n     * Linux/macOS, Ctrl+Z followed by Return on\n     * Windows).\n     * If you want your application to exit without waiting for user input, you can `unref()` the standard input stream:\n     *\n     * ```js\n     * process.stdin.unref();\n     * ```\n     * @since v0.1.98\n     */\n    function createInterface(input: NodeJS.ReadableStream, output?: NodeJS.WritableStream, completer?: Completer | AsyncCompleter, terminal?: boolean): Interface;\n    function createInterface(options: ReadLineOptions): Interface;\n    /**\n     * The `readline.emitKeypressEvents()` method causes the given `Readable` stream to begin emitting `'keypress'` events corresponding to received input.\n     *\n     * Optionally, `interface` specifies a `readline.Interface` instance for which\n     * autocompletion is disabled when copy-pasted input is detected.\n     *\n     * If the `stream` is a `TTY`, then it must be in raw mode.\n     *\n     * This is automatically called by any readline instance on its `input` if the`input` is a terminal. Closing the `readline` instance does not stop\n     * the `input` from emitting `'keypress'` events.\n     *\n     * ```js\n     * readline.emitKeypressEvents(process.stdin);\n     * if (process.stdin.isTTY)\n     *   process.stdin.setRawMode(true);\n     * ```\n     * @since v0.7.7\n     */\n    function emitKeypressEvents(stream: NodeJS.ReadableStream, readlineInterface?: Interface): void;\n    type Direction = -1 | 0 | 1;\n    interface CursorPos {\n        rows: number;\n        cols: number;\n    }\n    /**\n     * The `readline.clearLine()` method clears current line of given `TTY` stream\n     * in a specified direction identified by `dir`.\n     * @since v0.7.7\n     * @param callback Invoked once the operation completes.\n     * @return `false` if `stream` wishes for the calling code to wait for the `'drain'` event to be emitted before continuing to write additional data; otherwise `true`.\n     */\n    function clearLine(stream: NodeJS.WritableStream, dir: Direction, callback?: () => void): boolean;\n    /**\n     * The `readline.clearScreenDown()` method clears the given `TTY` stream from\n     * the current position of the cursor down.\n     * @since v0.7.7\n     * @param callback Invoked once the operation completes.\n     * @return `false` if `stream` wishes for the calling code to wait for the `'drain'` event to be emitted before continuing to write additional data; otherwise `true`.\n     */\n    function clearScreenDown(stream: NodeJS.WritableStream, callback?: () => void): boolean;\n    /**\n     * The `readline.cursorTo()` method moves cursor to the specified position in a\n     * given `TTY` `stream`.\n     * @since v0.7.7\n     * @param callback Invoked once the operation completes.\n     * @return `false` if `stream` wishes for the calling code to wait for the `'drain'` event to be emitted before continuing to write additional data; otherwise `true`.\n     */\n    function cursorTo(stream: NodeJS.WritableStream, x: number, y?: number, callback?: () => void): boolean;\n    /**\n     * The `readline.moveCursor()` method moves the cursor _relative_ to its current\n     * position in a given `TTY` `stream`.\n     *\n     * ## Example: Tiny CLI\n     *\n     * The following example illustrates the use of `readline.Interface` class to\n     * implement a small command-line interface:\n     *\n     * ```js\n     * const readline = require('readline');\n     * const rl = readline.createInterface({\n     *   input: process.stdin,\n     *   output: process.stdout,\n     *   prompt: 'OHAI> '\n     * });\n     *\n     * rl.prompt();\n     *\n     * rl.on('line', (line) => {\n     *   switch (line.trim()) {\n     *     case 'hello':\n     *       console.log('world!');\n     *       break;\n     *     default:\n     *       console.log(`Say what? I might have heard '${line.trim()}'`);\n     *       break;\n     *   }\n     *   rl.prompt();\n     * }).on('close', () => {\n     *   console.log('Have a great day!');\n     *   process.exit(0);\n     * });\n     * ```\n     *\n     * ## Example: Read file stream line-by-Line\n     *\n     * A common use case for `readline` is to consume an input file one line at a\n     * time. The easiest way to do so is leveraging the `fs.ReadStream` API as\n     * well as a `for await...of` loop:\n     *\n     * ```js\n     * const fs = require('fs');\n     * const readline = require('readline');\n     *\n     * async function processLineByLine() {\n     *   const fileStream = fs.createReadStream('input.txt');\n     *\n     *   const rl = readline.createInterface({\n     *     input: fileStream,\n     *     crlfDelay: Infinity\n     *   });\n     *   // Note: we use the crlfDelay option to recognize all instances of CR LF\n     *   // ('\\r\\n') in input.txt as a single line break.\n     *\n     *   for await (const line of rl) {\n     *     // Each line in input.txt will be successively available here as `line`.\n     *     console.log(`Line from file: ${line}`);\n     *   }\n     * }\n     *\n     * processLineByLine();\n     * ```\n     *\n     * Alternatively, one could use the `'line'` event:\n     *\n     * ```js\n     * const fs = require('fs');\n     * const readline = require('readline');\n     *\n     * const rl = readline.createInterface({\n     *   input: fs.createReadStream('sample.txt'),\n     *   crlfDelay: Infinity\n     * });\n     *\n     * rl.on('line', (line) => {\n     *   console.log(`Line from file: ${line}`);\n     * });\n     * ```\n     *\n     * Currently, `for await...of` loop can be a bit slower. If `async` / `await`flow and speed are both essential, a mixed approach can be applied:\n     *\n     * ```js\n     * const { once } = require('events');\n     * const { createReadStream } = require('fs');\n     * const { createInterface } = require('readline');\n     *\n     * (async function processLineByLine() {\n     *   try {\n     *     const rl = createInterface({\n     *       input: createReadStream('big-file.txt'),\n     *       crlfDelay: Infinity\n     *     });\n     *\n     *     rl.on('line', (line) => {\n     *       // Process the line.\n     *     });\n     *\n     *     await once(rl, 'close');\n     *\n     *     console.log('File processed.');\n     *   } catch (err) {\n     *     console.error(err);\n     *   }\n     * })();\n     * ```\n     * @since v0.7.7\n     * @param callback Invoked once the operation completes.\n     * @return `false` if `stream` wishes for the calling code to wait for the `'drain'` event to be emitted before continuing to write additional data; otherwise `true`.\n     */\n    function moveCursor(stream: NodeJS.WritableStream, dx: number, dy: number, callback?: () => void): boolean;\n}\ndeclare module 'node:readline' {\n    export * from 'readline';\n}\n"
    },
    {
      "path": "/node_modules/@types/node/repl.d.ts",
      "content": "/**\n * The `repl` module provides a Read-Eval-Print-Loop (REPL) implementation that\n * is available both as a standalone program or includible in other applications.\n * It can be accessed using:\n *\n * ```js\n * const repl = require('repl');\n * ```\n * @see [source](https://github.com/nodejs/node/blob/v16.9.0/lib/repl.js)\n */\ndeclare module 'repl' {\n    import { Interface, Completer, AsyncCompleter } from 'node:readline';\n    import { Context } from 'node:vm';\n    import { InspectOptions } from 'node:util';\n    interface ReplOptions {\n        /**\n         * The input prompt to display.\n         * @default \"> \"\n         */\n        prompt?: string | undefined;\n        /**\n         * The `Readable` stream from which REPL input will be read.\n         * @default process.stdin\n         */\n        input?: NodeJS.ReadableStream | undefined;\n        /**\n         * The `Writable` stream to which REPL output will be written.\n         * @default process.stdout\n         */\n        output?: NodeJS.WritableStream | undefined;\n        /**\n         * If `true`, specifies that the output should be treated as a TTY terminal, and have\n         * ANSI/VT100 escape codes written to it.\n         * Default: checking the value of the `isTTY` property on the output stream upon\n         * instantiation.\n         */\n        terminal?: boolean | undefined;\n        /**\n         * The function to be used when evaluating each given line of input.\n         * Default: an async wrapper for the JavaScript `eval()` function. An `eval` function can\n         * error with `repl.Recoverable` to indicate the input was incomplete and prompt for\n         * additional lines.\n         *\n         * @see https://nodejs.org/dist/latest-v10.x/docs/api/repl.html#repl_default_evaluation\n         * @see https://nodejs.org/dist/latest-v10.x/docs/api/repl.html#repl_custom_evaluation_functions\n         */\n        eval?: REPLEval | undefined;\n        /**\n         * Defines if the repl prints output previews or not.\n         * @default `true` Always `false` in case `terminal` is falsy.\n         */\n        preview?: boolean | undefined;\n        /**\n         * If `true`, specifies that the default `writer` function should include ANSI color\n         * styling to REPL output. If a custom `writer` function is provided then this has no\n         * effect.\n         * Default: the REPL instance's `terminal` value.\n         */\n        useColors?: boolean | undefined;\n        /**\n         * If `true`, specifies that the default evaluation function will use the JavaScript\n         * `global` as the context as opposed to creating a new separate context for the REPL\n         * instance. The node CLI REPL sets this value to `true`.\n         * Default: `false`.\n         */\n        useGlobal?: boolean | undefined;\n        /**\n         * If `true`, specifies that the default writer will not output the return value of a\n         * command if it evaluates to `undefined`.\n         * Default: `false`.\n         */\n        ignoreUndefined?: boolean | undefined;\n        /**\n         * The function to invoke to format the output of each command before writing to `output`.\n         * Default: a wrapper for `util.inspect`.\n         *\n         * @see https://nodejs.org/dist/latest-v10.x/docs/api/repl.html#repl_customizing_repl_output\n         */\n        writer?: REPLWriter | undefined;\n        /**\n         * An optional function used for custom Tab auto completion.\n         *\n         * @see https://nodejs.org/dist/latest-v11.x/docs/api/readline.html#readline_use_of_the_completer_function\n         */\n        completer?: Completer | AsyncCompleter | undefined;\n        /**\n         * A flag that specifies whether the default evaluator executes all JavaScript commands in\n         * strict mode or default (sloppy) mode.\n         * Accepted values are:\n         * - `repl.REPL_MODE_SLOPPY` - evaluates expressions in sloppy mode.\n         * - `repl.REPL_MODE_STRICT` - evaluates expressions in strict mode. This is equivalent to\n         *   prefacing every repl statement with `'use strict'`.\n         */\n        replMode?: typeof REPL_MODE_SLOPPY | typeof REPL_MODE_STRICT | undefined;\n        /**\n         * Stop evaluating the current piece of code when `SIGINT` is received, i.e. `Ctrl+C` is\n         * pressed. This cannot be used together with a custom `eval` function.\n         * Default: `false`.\n         */\n        breakEvalOnSigint?: boolean | undefined;\n    }\n    type REPLEval = (this: REPLServer, evalCmd: string, context: Context, file: string, cb: (err: Error | null, result: any) => void) => void;\n    type REPLWriter = (this: REPLServer, obj: any) => string;\n    /**\n     * This is the default \"writer\" value, if none is passed in the REPL options,\n     * and it can be overridden by custom print functions.\n     */\n    const writer: REPLWriter & {\n        options: InspectOptions;\n    };\n    type REPLCommandAction = (this: REPLServer, text: string) => void;\n    interface REPLCommand {\n        /**\n         * Help text to be displayed when `.help` is entered.\n         */\n        help?: string | undefined;\n        /**\n         * The function to execute, optionally accepting a single string argument.\n         */\n        action: REPLCommandAction;\n    }\n    /**\n     * Instances of `repl.REPLServer` are created using the {@link start} method\n     * or directly using the JavaScript `new` keyword.\n     *\n     * ```js\n     * const repl = require('repl');\n     *\n     * const options = { useColors: true };\n     *\n     * const firstInstance = repl.start(options);\n     * const secondInstance = new repl.REPLServer(options);\n     * ```\n     * @since v0.1.91\n     */\n    class REPLServer extends Interface {\n        /**\n         * The `vm.Context` provided to the `eval` function to be used for JavaScript\n         * evaluation.\n         */\n        readonly context: Context;\n        /**\n         * @deprecated since v14.3.0 - Use `input` instead.\n         */\n        readonly inputStream: NodeJS.ReadableStream;\n        /**\n         * @deprecated since v14.3.0 - Use `output` instead.\n         */\n        readonly outputStream: NodeJS.WritableStream;\n        /**\n         * The `Readable` stream from which REPL input will be read.\n         */\n        readonly input: NodeJS.ReadableStream;\n        /**\n         * The `Writable` stream to which REPL output will be written.\n         */\n        readonly output: NodeJS.WritableStream;\n        /**\n         * The commands registered via `replServer.defineCommand()`.\n         */\n        readonly commands: NodeJS.ReadOnlyDict<REPLCommand>;\n        /**\n         * A value indicating whether the REPL is currently in \"editor mode\".\n         *\n         * @see https://nodejs.org/dist/latest-v10.x/docs/api/repl.html#repl_commands_and_special_keys\n         */\n        readonly editorMode: boolean;\n        /**\n         * A value indicating whether the `_` variable has been assigned.\n         *\n         * @see https://nodejs.org/dist/latest-v10.x/docs/api/repl.html#repl_assignment_of_the_underscore_variable\n         */\n        readonly underscoreAssigned: boolean;\n        /**\n         * The last evaluation result from the REPL (assigned to the `_` variable inside of the REPL).\n         *\n         * @see https://nodejs.org/dist/latest-v10.x/docs/api/repl.html#repl_assignment_of_the_underscore_variable\n         */\n        readonly last: any;\n        /**\n         * A value indicating whether the `_error` variable has been assigned.\n         *\n         * @since v9.8.0\n         * @see https://nodejs.org/dist/latest-v10.x/docs/api/repl.html#repl_assignment_of_the_underscore_variable\n         */\n        readonly underscoreErrAssigned: boolean;\n        /**\n         * The last error raised inside the REPL (assigned to the `_error` variable inside of the REPL).\n         *\n         * @since v9.8.0\n         * @see https://nodejs.org/dist/latest-v10.x/docs/api/repl.html#repl_assignment_of_the_underscore_variable\n         */\n        readonly lastError: any;\n        /**\n         * Specified in the REPL options, this is the function to be used when evaluating each\n         * given line of input. If not specified in the REPL options, this is an async wrapper\n         * for the JavaScript `eval()` function.\n         */\n        readonly eval: REPLEval;\n        /**\n         * Specified in the REPL options, this is a value indicating whether the default\n         * `writer` function should include ANSI color styling to REPL output.\n         */\n        readonly useColors: boolean;\n        /**\n         * Specified in the REPL options, this is a value indicating whether the default `eval`\n         * function will use the JavaScript `global` as the context as opposed to creating a new\n         * separate context for the REPL instance.\n         */\n        readonly useGlobal: boolean;\n        /**\n         * Specified in the REPL options, this is a value indicating whether the default `writer`\n         * function should output the result of a command if it evaluates to `undefined`.\n         */\n        readonly ignoreUndefined: boolean;\n        /**\n         * Specified in the REPL options, this is the function to invoke to format the output of\n         * each command before writing to `outputStream`. If not specified in the REPL options,\n         * this will be a wrapper for `util.inspect`.\n         */\n        readonly writer: REPLWriter;\n        /**\n         * Specified in the REPL options, this is the function to use for custom Tab auto-completion.\n         */\n        readonly completer: Completer | AsyncCompleter;\n        /**\n         * Specified in the REPL options, this is a flag that specifies whether the default `eval`\n         * function should execute all JavaScript commands in strict mode or default (sloppy) mode.\n         * Possible values are:\n         * - `repl.REPL_MODE_SLOPPY` - evaluates expressions in sloppy mode.\n         * - `repl.REPL_MODE_STRICT` - evaluates expressions in strict mode. This is equivalent to\n         *    prefacing every repl statement with `'use strict'`.\n         */\n        readonly replMode: typeof REPL_MODE_SLOPPY | typeof REPL_MODE_STRICT;\n        /**\n         * NOTE: According to the documentation:\n         *\n         * > Instances of `repl.REPLServer` are created using the `repl.start()` method and\n         * > _should not_ be created directly using the JavaScript `new` keyword.\n         *\n         * `REPLServer` cannot be subclassed due to implementation specifics in NodeJS.\n         *\n         * @see https://nodejs.org/dist/latest-v10.x/docs/api/repl.html#repl_class_replserver\n         */\n        private constructor();\n        /**\n         * The `replServer.defineCommand()` method is used to add new `.`\\-prefixed commands\n         * to the REPL instance. Such commands are invoked by typing a `.` followed by the`keyword`. The `cmd` is either a `Function` or an `Object` with the following\n         * properties:\n         *\n         * The following example shows two new commands added to the REPL instance:\n         *\n         * ```js\n         * const repl = require('repl');\n         *\n         * const replServer = repl.start({ prompt: '> ' });\n         * replServer.defineCommand('sayhello', {\n         *   help: 'Say hello',\n         *   action(name) {\n         *     this.clearBufferedCommand();\n         *     console.log(`Hello, ${name}!`);\n         *     this.displayPrompt();\n         *   }\n         * });\n         * replServer.defineCommand('saybye', function saybye() {\n         *   console.log('Goodbye!');\n         *   this.close();\n         * });\n         * ```\n         *\n         * The new commands can then be used from within the REPL instance:\n         *\n         * ```console\n         * > .sayhello Node.js User\n         * Hello, Node.js User!\n         * > .saybye\n         * Goodbye!\n         * ```\n         * @since v0.3.0\n         * @param keyword The command keyword (*without* a leading `.` character).\n         * @param cmd The function to invoke when the command is processed.\n         */\n        defineCommand(keyword: string, cmd: REPLCommandAction | REPLCommand): void;\n        /**\n         * The `replServer.displayPrompt()` method readies the REPL instance for input\n         * from the user, printing the configured `prompt` to a new line in the `output`and resuming the `input` to accept new input.\n         *\n         * When multi-line input is being entered, an ellipsis is printed rather than the\n         * 'prompt'.\n         *\n         * When `preserveCursor` is `true`, the cursor placement will not be reset to `0`.\n         *\n         * The `replServer.displayPrompt` method is primarily intended to be called from\n         * within the action function for commands registered using the`replServer.defineCommand()` method.\n         * @since v0.1.91\n         */\n        displayPrompt(preserveCursor?: boolean): void;\n        /**\n         * The `replServer.clearBufferedCommand()` method clears any command that has been\n         * buffered but not yet executed. This method is primarily intended to be\n         * called from within the action function for commands registered using the`replServer.defineCommand()` method.\n         * @since v9.0.0\n         */\n        clearBufferedCommand(): void;\n        /**\n         * Initializes a history log file for the REPL instance. When executing the\n         * Node.js binary and using the command-line REPL, a history file is initialized\n         * by default. However, this is not the case when creating a REPL\n         * programmatically. Use this method to initialize a history log file when working\n         * with REPL instances programmatically.\n         * @since v11.10.0\n         * @param historyPath the path to the history file\n         * @param callback called when history writes are ready or upon error\n         */\n        setupHistory(path: string, callback: (err: Error | null, repl: this) => void): void;\n        /**\n         * events.EventEmitter\n         * 1. close - inherited from `readline.Interface`\n         * 2. line - inherited from `readline.Interface`\n         * 3. pause - inherited from `readline.Interface`\n         * 4. resume - inherited from `readline.Interface`\n         * 5. SIGCONT - inherited from `readline.Interface`\n         * 6. SIGINT - inherited from `readline.Interface`\n         * 7. SIGTSTP - inherited from `readline.Interface`\n         * 8. exit\n         * 9. reset\n         */\n        addListener(event: string, listener: (...args: any[]) => void): this;\n        addListener(event: 'close', listener: () => void): this;\n        addListener(event: 'line', listener: (input: string) => void): this;\n        addListener(event: 'pause', listener: () => void): this;\n        addListener(event: 'resume', listener: () => void): this;\n        addListener(event: 'SIGCONT', listener: () => void): this;\n        addListener(event: 'SIGINT', listener: () => void): this;\n        addListener(event: 'SIGTSTP', listener: () => void): this;\n        addListener(event: 'exit', listener: () => void): this;\n        addListener(event: 'reset', listener: (context: Context) => void): this;\n        emit(event: string | symbol, ...args: any[]): boolean;\n        emit(event: 'close'): boolean;\n        emit(event: 'line', input: string): boolean;\n        emit(event: 'pause'): boolean;\n        emit(event: 'resume'): boolean;\n        emit(event: 'SIGCONT'): boolean;\n        emit(event: 'SIGINT'): boolean;\n        emit(event: 'SIGTSTP'): boolean;\n        emit(event: 'exit'): boolean;\n        emit(event: 'reset', context: Context): boolean;\n        on(event: string, listener: (...args: any[]) => void): this;\n        on(event: 'close', listener: () => void): this;\n        on(event: 'line', listener: (input: string) => void): this;\n        on(event: 'pause', listener: () => void): this;\n        on(event: 'resume', listener: () => void): this;\n        on(event: 'SIGCONT', listener: () => void): this;\n        on(event: 'SIGINT', listener: () => void): this;\n        on(event: 'SIGTSTP', listener: () => void): this;\n        on(event: 'exit', listener: () => void): this;\n        on(event: 'reset', listener: (context: Context) => void): this;\n        once(event: string, listener: (...args: any[]) => void): this;\n        once(event: 'close', listener: () => void): this;\n        once(event: 'line', listener: (input: string) => void): this;\n        once(event: 'pause', listener: () => void): this;\n        once(event: 'resume', listener: () => void): this;\n        once(event: 'SIGCONT', listener: () => void): this;\n        once(event: 'SIGINT', listener: () => void): this;\n        once(event: 'SIGTSTP', listener: () => void): this;\n        once(event: 'exit', listener: () => void): this;\n        once(event: 'reset', listener: (context: Context) => void): this;\n        prependListener(event: string, listener: (...args: any[]) => void): this;\n        prependListener(event: 'close', listener: () => void): this;\n        prependListener(event: 'line', listener: (input: string) => void): this;\n        prependListener(event: 'pause', listener: () => void): this;\n        prependListener(event: 'resume', listener: () => void): this;\n        prependListener(event: 'SIGCONT', listener: () => void): this;\n        prependListener(event: 'SIGINT', listener: () => void): this;\n        prependListener(event: 'SIGTSTP', listener: () => void): this;\n        prependListener(event: 'exit', listener: () => void): this;\n        prependListener(event: 'reset', listener: (context: Context) => void): this;\n        prependOnceListener(event: string, listener: (...args: any[]) => void): this;\n        prependOnceListener(event: 'close', listener: () => void): this;\n        prependOnceListener(event: 'line', listener: (input: string) => void): this;\n        prependOnceListener(event: 'pause', listener: () => void): this;\n        prependOnceListener(event: 'resume', listener: () => void): this;\n        prependOnceListener(event: 'SIGCONT', listener: () => void): this;\n        prependOnceListener(event: 'SIGINT', listener: () => void): this;\n        prependOnceListener(event: 'SIGTSTP', listener: () => void): this;\n        prependOnceListener(event: 'exit', listener: () => void): this;\n        prependOnceListener(event: 'reset', listener: (context: Context) => void): this;\n    }\n    /**\n     * A flag passed in the REPL options. Evaluates expressions in sloppy mode.\n     */\n    const REPL_MODE_SLOPPY: unique symbol;\n    /**\n     * A flag passed in the REPL options. Evaluates expressions in strict mode.\n     * This is equivalent to prefacing every repl statement with `'use strict'`.\n     */\n    const REPL_MODE_STRICT: unique symbol;\n    /**\n     * The `repl.start()` method creates and starts a {@link REPLServer} instance.\n     *\n     * If `options` is a string, then it specifies the input prompt:\n     *\n     * ```js\n     * const repl = require('repl');\n     *\n     * // a Unix style prompt\n     * repl.start('$ ');\n     * ```\n     * @since v0.1.91\n     */\n    function start(options?: string | ReplOptions): REPLServer;\n    /**\n     * Indicates a recoverable error that a `REPLServer` can use to support multi-line input.\n     *\n     * @see https://nodejs.org/dist/latest-v10.x/docs/api/repl.html#repl_recoverable_errors\n     */\n    class Recoverable extends SyntaxError {\n        err: Error;\n        constructor(err: Error);\n    }\n}\ndeclare module 'node:repl' {\n    export * from 'repl';\n}\n"
    },
    {
      "path": "/node_modules/@types/node/stream.d.ts",
      "content": "/**\n * A stream is an abstract interface for working with streaming data in Node.js.\n * The `stream` module provides an API for implementing the stream interface.\n *\n * There are many stream objects provided by Node.js. For instance, a `request to an HTTP server` and `process.stdout` are both stream instances.\n *\n * Streams can be readable, writable, or both. All streams are instances of `EventEmitter`.\n *\n * To access the `stream` module:\n *\n * ```js\n * const stream = require('stream');\n * ```\n *\n * The `stream` module is useful for creating new types of stream instances. It is\n * usually not necessary to use the `stream` module to consume streams.\n * @see [source](https://github.com/nodejs/node/blob/v16.9.0/lib/stream.js)\n */\ndeclare module 'stream' {\n    import { EventEmitter, Abortable } from 'node:events';\n    import { Blob as NodeBlob } from 'node:buffer';\n    import * as streamPromises from 'node:stream/promises';\n    import * as streamConsumers from 'node:stream/consumers';\n    class internal extends EventEmitter {\n        pipe<T extends NodeJS.WritableStream>(\n            destination: T,\n            options?: {\n                end?: boolean | undefined;\n            }\n        ): T;\n    }\n    namespace internal {\n        class Stream extends internal {\n            constructor(opts?: ReadableOptions);\n        }\n        interface StreamOptions<T extends Stream> extends Abortable {\n            emitClose?: boolean | undefined;\n            highWaterMark?: number | undefined;\n            objectMode?: boolean | undefined;\n            construct?(this: T, callback: (error?: Error | null) => void): void;\n            destroy?(this: T, error: Error | null, callback: (error: Error | null) => void): void;\n            autoDestroy?: boolean | undefined;\n        }\n        interface ReadableOptions extends StreamOptions<Readable> {\n            encoding?: BufferEncoding | undefined;\n            read?(this: Readable, size: number): void;\n        }\n        /**\n         * @since v0.9.4\n         */\n        class Readable extends Stream implements NodeJS.ReadableStream {\n            /**\n             * A utility method for creating Readable Streams out of iterators.\n             */\n            static from(iterable: Iterable<any> | AsyncIterable<any>, options?: ReadableOptions): Readable;\n            /**\n             * Returns whether the stream has been read from or cancelled.\n             * @since v16.8.0\n             */\n            static isDisturbed(stream: Readable | NodeJS.ReadableStream): boolean;\n            /**\n             * Returns whether the stream was destroyed or errored before emitting `'end'`.\n             * @since v16.8.0\n             * @experimental\n             */\n            readonly readableAborted: boolean;\n            /**\n             * Is `true` if it is safe to call `readable.read()`, which means\n             * the stream has not been destroyed or emitted `'error'` or `'end'`.\n             * @since v11.4.0\n             */\n            readable: boolean;\n            /**\n             * Returns whether `'data'` has been emitted.\n             * @since v16.7.0\n             * @experimental\n             */\n            readonly readableDidRead: boolean;\n            /**\n             * Getter for the property `encoding` of a given `Readable` stream. The `encoding`property can be set using the `readable.setEncoding()` method.\n             * @since v12.7.0\n             */\n            readonly readableEncoding: BufferEncoding | null;\n            /**\n             * Becomes `true` when `'end'` event is emitted.\n             * @since v12.9.0\n             */\n            readonly readableEnded: boolean;\n            /**\n             * This property reflects the current state of a `Readable` stream as described\n             * in the `Three states` section.\n             * @since v9.4.0\n             */\n            readonly readableFlowing: boolean | null;\n            /**\n             * Returns the value of `highWaterMark` passed when creating this `Readable`.\n             * @since v9.3.0\n             */\n            readonly readableHighWaterMark: number;\n            /**\n             * This property contains the number of bytes (or objects) in the queue\n             * ready to be read. The value provides introspection data regarding\n             * the status of the `highWaterMark`.\n             * @since v9.4.0\n             */\n            readonly readableLength: number;\n            /**\n             * Getter for the property `objectMode` of a given `Readable` stream.\n             * @since v12.3.0\n             */\n            readonly readableObjectMode: boolean;\n            /**\n             * Is `true` after `readable.destroy()` has been called.\n             * @since v8.0.0\n             */\n            destroyed: boolean;\n            constructor(opts?: ReadableOptions);\n            _construct?(callback: (error?: Error | null) => void): void;\n            _read(size: number): void;\n            /**\n             * The `readable.read()` method pulls some data out of the internal buffer and\n             * returns it. If no data available to be read, `null` is returned. By default,\n             * the data will be returned as a `Buffer` object unless an encoding has been\n             * specified using the `readable.setEncoding()` method or the stream is operating\n             * in object mode.\n             *\n             * The optional `size` argument specifies a specific number of bytes to read. If`size` bytes are not available to be read, `null` will be returned _unless_the stream has ended, in which\n             * case all of the data remaining in the internal\n             * buffer will be returned.\n             *\n             * If the `size` argument is not specified, all of the data contained in the\n             * internal buffer will be returned.\n             *\n             * The `size` argument must be less than or equal to 1 GiB.\n             *\n             * The `readable.read()` method should only be called on `Readable` streams\n             * operating in paused mode. In flowing mode, `readable.read()` is called\n             * automatically until the internal buffer is fully drained.\n             *\n             * ```js\n             * const readable = getReadableStreamSomehow();\n             *\n             * // 'readable' may be triggered multiple times as data is buffered in\n             * readable.on('readable', () => {\n             *   let chunk;\n             *   console.log('Stream is readable (new data received in buffer)');\n             *   // Use a loop to make sure we read all currently available data\n             *   while (null !== (chunk = readable.read())) {\n             *     console.log(`Read ${chunk.length} bytes of data...`);\n             *   }\n             * });\n             *\n             * // 'end' will be triggered once when there is no more data available\n             * readable.on('end', () => {\n             *   console.log('Reached end of stream.');\n             * });\n             * ```\n             *\n             * Each call to `readable.read()` returns a chunk of data, or `null`. The chunks\n             * are not concatenated. A `while` loop is necessary to consume all data\n             * currently in the buffer. When reading a large file `.read()` may return `null`,\n             * having consumed all buffered content so far, but there is still more data to\n             * come not yet buffered. In this case a new `'readable'` event will be emitted\n             * when there is more data in the buffer. Finally the `'end'` event will be\n             * emitted when there is no more data to come.\n             *\n             * Therefore to read a file's whole contents from a `readable`, it is necessary\n             * to collect chunks across multiple `'readable'` events:\n             *\n             * ```js\n             * const chunks = [];\n             *\n             * readable.on('readable', () => {\n             *   let chunk;\n             *   while (null !== (chunk = readable.read())) {\n             *     chunks.push(chunk);\n             *   }\n             * });\n             *\n             * readable.on('end', () => {\n             *   const content = chunks.join('');\n             * });\n             * ```\n             *\n             * A `Readable` stream in object mode will always return a single item from\n             * a call to `readable.read(size)`, regardless of the value of the`size` argument.\n             *\n             * If the `readable.read()` method returns a chunk of data, a `'data'` event will\n             * also be emitted.\n             *\n             * Calling {@link read} after the `'end'` event has\n             * been emitted will return `null`. No runtime error will be raised.\n             * @since v0.9.4\n             * @param size Optional argument to specify how much data to read.\n             */\n            read(size?: number): any;\n            /**\n             * The `readable.setEncoding()` method sets the character encoding for\n             * data read from the `Readable` stream.\n             *\n             * By default, no encoding is assigned and stream data will be returned as`Buffer` objects. Setting an encoding causes the stream data\n             * to be returned as strings of the specified encoding rather than as `Buffer`objects. For instance, calling `readable.setEncoding('utf8')` will cause the\n             * output data to be interpreted as UTF-8 data, and passed as strings. Calling`readable.setEncoding('hex')` will cause the data to be encoded in hexadecimal\n             * string format.\n             *\n             * The `Readable` stream will properly handle multi-byte characters delivered\n             * through the stream that would otherwise become improperly decoded if simply\n             * pulled from the stream as `Buffer` objects.\n             *\n             * ```js\n             * const readable = getReadableStreamSomehow();\n             * readable.setEncoding('utf8');\n             * readable.on('data', (chunk) => {\n             *   assert.equal(typeof chunk, 'string');\n             *   console.log('Got %d characters of string data:', chunk.length);\n             * });\n             * ```\n             * @since v0.9.4\n             * @param encoding The encoding to use.\n             */\n            setEncoding(encoding: BufferEncoding): this;\n            /**\n             * The `readable.pause()` method will cause a stream in flowing mode to stop\n             * emitting `'data'` events, switching out of flowing mode. Any data that\n             * becomes available will remain in the internal buffer.\n             *\n             * ```js\n             * const readable = getReadableStreamSomehow();\n             * readable.on('data', (chunk) => {\n             *   console.log(`Received ${chunk.length} bytes of data.`);\n             *   readable.pause();\n             *   console.log('There will be no additional data for 1 second.');\n             *   setTimeout(() => {\n             *     console.log('Now data will start flowing again.');\n             *     readable.resume();\n             *   }, 1000);\n             * });\n             * ```\n             *\n             * The `readable.pause()` method has no effect if there is a `'readable'`event listener.\n             * @since v0.9.4\n             */\n            pause(): this;\n            /**\n             * The `readable.resume()` method causes an explicitly paused `Readable` stream to\n             * resume emitting `'data'` events, switching the stream into flowing mode.\n             *\n             * The `readable.resume()` method can be used to fully consume the data from a\n             * stream without actually processing any of that data:\n             *\n             * ```js\n             * getReadableStreamSomehow()\n             *   .resume()\n             *   .on('end', () => {\n             *     console.log('Reached the end, but did not read anything.');\n             *   });\n             * ```\n             *\n             * The `readable.resume()` method has no effect if there is a `'readable'`event listener.\n             * @since v0.9.4\n             */\n            resume(): this;\n            /**\n             * The `readable.isPaused()` method returns the current operating state of the`Readable`. This is used primarily by the mechanism that underlies the`readable.pipe()` method. In most\n             * typical cases, there will be no reason to\n             * use this method directly.\n             *\n             * ```js\n             * const readable = new stream.Readable();\n             *\n             * readable.isPaused(); // === false\n             * readable.pause();\n             * readable.isPaused(); // === true\n             * readable.resume();\n             * readable.isPaused(); // === false\n             * ```\n             * @since v0.11.14\n             */\n            isPaused(): boolean;\n            /**\n             * The `readable.unpipe()` method detaches a `Writable` stream previously attached\n             * using the {@link pipe} method.\n             *\n             * If the `destination` is not specified, then _all_ pipes are detached.\n             *\n             * If the `destination` is specified, but no pipe is set up for it, then\n             * the method does nothing.\n             *\n             * ```js\n             * const fs = require('fs');\n             * const readable = getReadableStreamSomehow();\n             * const writable = fs.createWriteStream('file.txt');\n             * // All the data from readable goes into 'file.txt',\n             * // but only for the first second.\n             * readable.pipe(writable);\n             * setTimeout(() => {\n             *   console.log('Stop writing to file.txt.');\n             *   readable.unpipe(writable);\n             *   console.log('Manually close the file stream.');\n             *   writable.end();\n             * }, 1000);\n             * ```\n             * @since v0.9.4\n             * @param destination Optional specific stream to unpipe\n             */\n            unpipe(destination?: NodeJS.WritableStream): this;\n            /**\n             * Passing `chunk` as `null` signals the end of the stream (EOF) and behaves the\n             * same as `readable.push(null)`, after which no more data can be written. The EOF\n             * signal is put at the end of the buffer and any buffered data will still be\n             * flushed.\n             *\n             * The `readable.unshift()` method pushes a chunk of data back into the internal\n             * buffer. This is useful in certain situations where a stream is being consumed by\n             * code that needs to \"un-consume\" some amount of data that it has optimistically\n             * pulled out of the source, so that the data can be passed on to some other party.\n             *\n             * The `stream.unshift(chunk)` method cannot be called after the `'end'` event\n             * has been emitted or a runtime error will be thrown.\n             *\n             * Developers using `stream.unshift()` often should consider switching to\n             * use of a `Transform` stream instead. See the `API for stream implementers` section for more information.\n             *\n             * ```js\n             * // Pull off a header delimited by \\n\\n.\n             * // Use unshift() if we get too much.\n             * // Call the callback with (error, header, stream).\n             * const { StringDecoder } = require('string_decoder');\n             * function parseHeader(stream, callback) {\n             *   stream.on('error', callback);\n             *   stream.on('readable', onReadable);\n             *   const decoder = new StringDecoder('utf8');\n             *   let header = '';\n             *   function onReadable() {\n             *     let chunk;\n             *     while (null !== (chunk = stream.read())) {\n             *       const str = decoder.write(chunk);\n             *       if (str.match(/\\n\\n/)) {\n             *         // Found the header boundary.\n             *         const split = str.split(/\\n\\n/);\n             *         header += split.shift();\n             *         const remaining = split.join('\\n\\n');\n             *         const buf = Buffer.from(remaining, 'utf8');\n             *         stream.removeListener('error', callback);\n             *         // Remove the 'readable' listener before unshifting.\n             *         stream.removeListener('readable', onReadable);\n             *         if (buf.length)\n             *           stream.unshift(buf);\n             *         // Now the body of the message can be read from the stream.\n             *         callback(null, header, stream);\n             *       } else {\n             *         // Still reading the header.\n             *         header += str;\n             *       }\n             *     }\n             *   }\n             * }\n             * ```\n             *\n             * Unlike {@link push}, `stream.unshift(chunk)` will not\n             * end the reading process by resetting the internal reading state of the stream.\n             * This can cause unexpected results if `readable.unshift()` is called during a\n             * read (i.e. from within a {@link _read} implementation on a\n             * custom stream). Following the call to `readable.unshift()` with an immediate {@link push} will reset the reading state appropriately,\n             * however it is best to simply avoid calling `readable.unshift()` while in the\n             * process of performing a read.\n             * @since v0.9.11\n             * @param chunk Chunk of data to unshift onto the read queue. For streams not operating in object mode, `chunk` must be a string, `Buffer`, `Uint8Array` or `null`. For object mode\n             * streams, `chunk` may be any JavaScript value.\n             * @param encoding Encoding of string chunks. Must be a valid `Buffer` encoding, such as `'utf8'` or `'ascii'`.\n             */\n            unshift(chunk: any, encoding?: BufferEncoding): void;\n            /**\n             * Prior to Node.js 0.10, streams did not implement the entire `stream` module API\n             * as it is currently defined. (See `Compatibility` for more information.)\n             *\n             * When using an older Node.js library that emits `'data'` events and has a {@link pause} method that is advisory only, the`readable.wrap()` method can be used to create a `Readable`\n             * stream that uses\n             * the old stream as its data source.\n             *\n             * It will rarely be necessary to use `readable.wrap()` but the method has been\n             * provided as a convenience for interacting with older Node.js applications and\n             * libraries.\n             *\n             * ```js\n             * const { OldReader } = require('./old-api-module.js');\n             * const { Readable } = require('stream');\n             * const oreader = new OldReader();\n             * const myReader = new Readable().wrap(oreader);\n             *\n             * myReader.on('readable', () => {\n             *   myReader.read(); // etc.\n             * });\n             * ```\n             * @since v0.9.4\n             * @param stream An \"old style\" readable stream\n             */\n            wrap(stream: NodeJS.ReadableStream): this;\n            push(chunk: any, encoding?: BufferEncoding): boolean;\n            _destroy(error: Error | null, callback: (error?: Error | null) => void): void;\n            /**\n             * Destroy the stream. Optionally emit an `'error'` event, and emit a `'close'`event (unless `emitClose` is set to `false`). After this call, the readable\n             * stream will release any internal resources and subsequent calls to `push()`will be ignored.\n             *\n             * Once `destroy()` has been called any further calls will be a no-op and no\n             * further errors except from `_destroy()` may be emitted as `'error'`.\n             *\n             * Implementors should not override this method, but instead implement `readable._destroy()`.\n             * @since v8.0.0\n             * @param error Error which will be passed as payload in `'error'` event\n             */\n            destroy(error?: Error): this;\n            /**\n             * Event emitter\n             * The defined events on documents including:\n             * 1. close\n             * 2. data\n             * 3. end\n             * 4. error\n             * 5. pause\n             * 6. readable\n             * 7. resume\n             */\n            addListener(event: 'close', listener: () => void): this;\n            addListener(event: 'data', listener: (chunk: any) => void): this;\n            addListener(event: 'end', listener: () => void): this;\n            addListener(event: 'error', listener: (err: Error) => void): this;\n            addListener(event: 'pause', listener: () => void): this;\n            addListener(event: 'readable', listener: () => void): this;\n            addListener(event: 'resume', listener: () => void): this;\n            addListener(event: string | symbol, listener: (...args: any[]) => void): this;\n            emit(event: 'close'): boolean;\n            emit(event: 'data', chunk: any): boolean;\n            emit(event: 'end'): boolean;\n            emit(event: 'error', err: Error): boolean;\n            emit(event: 'pause'): boolean;\n            emit(event: 'readable'): boolean;\n            emit(event: 'resume'): boolean;\n            emit(event: string | symbol, ...args: any[]): boolean;\n            on(event: 'close', listener: () => void): this;\n            on(event: 'data', listener: (chunk: any) => void): this;\n            on(event: 'end', listener: () => void): this;\n            on(event: 'error', listener: (err: Error) => void): this;\n            on(event: 'pause', listener: () => void): this;\n            on(event: 'readable', listener: () => void): this;\n            on(event: 'resume', listener: () => void): this;\n            on(event: string | symbol, listener: (...args: any[]) => void): this;\n            once(event: 'close', listener: () => void): this;\n            once(event: 'data', listener: (chunk: any) => void): this;\n            once(event: 'end', listener: () => void): this;\n            once(event: 'error', listener: (err: Error) => void): this;\n            once(event: 'pause', listener: () => void): this;\n            once(event: 'readable', listener: () => void): this;\n            once(event: 'resume', listener: () => void): this;\n            once(event: string | symbol, listener: (...args: any[]) => void): this;\n            prependListener(event: 'close', listener: () => void): this;\n            prependListener(event: 'data', listener: (chunk: any) => void): this;\n            prependListener(event: 'end', listener: () => void): this;\n            prependListener(event: 'error', listener: (err: Error) => void): this;\n            prependListener(event: 'pause', listener: () => void): this;\n            prependListener(event: 'readable', listener: () => void): this;\n            prependListener(event: 'resume', listener: () => void): this;\n            prependListener(event: string | symbol, listener: (...args: any[]) => void): this;\n            prependOnceListener(event: 'close', listener: () => void): this;\n            prependOnceListener(event: 'data', listener: (chunk: any) => void): this;\n            prependOnceListener(event: 'end', listener: () => void): this;\n            prependOnceListener(event: 'error', listener: (err: Error) => void): this;\n            prependOnceListener(event: 'pause', listener: () => void): this;\n            prependOnceListener(event: 'readable', listener: () => void): this;\n            prependOnceListener(event: 'resume', listener: () => void): this;\n            prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this;\n            removeListener(event: 'close', listener: () => void): this;\n            removeListener(event: 'data', listener: (chunk: any) => void): this;\n            removeListener(event: 'end', listener: () => void): this;\n            removeListener(event: 'error', listener: (err: Error) => void): this;\n            removeListener(event: 'pause', listener: () => void): this;\n            removeListener(event: 'readable', listener: () => void): this;\n            removeListener(event: 'resume', listener: () => void): this;\n            removeListener(event: string | symbol, listener: (...args: any[]) => void): this;\n            [Symbol.asyncIterator](): AsyncIterableIterator<any>;\n        }\n        interface WritableOptions extends StreamOptions<Writable> {\n            decodeStrings?: boolean | undefined;\n            defaultEncoding?: BufferEncoding | undefined;\n            write?(this: Writable, chunk: any, encoding: BufferEncoding, callback: (error?: Error | null) => void): void;\n            writev?(\n                this: Writable,\n                chunks: Array<{\n                    chunk: any;\n                    encoding: BufferEncoding;\n                }>,\n                callback: (error?: Error | null) => void\n            ): void;\n            final?(this: Writable, callback: (error?: Error | null) => void): void;\n        }\n        /**\n         * @since v0.9.4\n         */\n        class Writable extends Stream implements NodeJS.WritableStream {\n            /**\n             * Is `true` if it is safe to call `writable.write()`, which means\n             * the stream has not been destroyed, errored or ended.\n             * @since v11.4.0\n             */\n            readonly writable: boolean;\n            /**\n             * Is `true` after `writable.end()` has been called. This property\n             * does not indicate whether the data has been flushed, for this use `writable.writableFinished` instead.\n             * @since v12.9.0\n             */\n            readonly writableEnded: boolean;\n            /**\n             * Is set to `true` immediately before the `'finish'` event is emitted.\n             * @since v12.6.0\n             */\n            readonly writableFinished: boolean;\n            /**\n             * Return the value of `highWaterMark` passed when creating this `Writable`.\n             * @since v9.3.0\n             */\n            readonly writableHighWaterMark: number;\n            /**\n             * This property contains the number of bytes (or objects) in the queue\n             * ready to be written. The value provides introspection data regarding\n             * the status of the `highWaterMark`.\n             * @since v9.4.0\n             */\n            readonly writableLength: number;\n            /**\n             * Getter for the property `objectMode` of a given `Writable` stream.\n             * @since v12.3.0\n             */\n            readonly writableObjectMode: boolean;\n            /**\n             * Number of times `writable.uncork()` needs to be\n             * called in order to fully uncork the stream.\n             * @since v13.2.0, v12.16.0\n             */\n            readonly writableCorked: number;\n            /**\n             * Is `true` after `writable.destroy()` has been called.\n             * @since v8.0.0\n             */\n            destroyed: boolean;\n            constructor(opts?: WritableOptions);\n            _write(chunk: any, encoding: BufferEncoding, callback: (error?: Error | null) => void): void;\n            _writev?(\n                chunks: Array<{\n                    chunk: any;\n                    encoding: BufferEncoding;\n                }>,\n                callback: (error?: Error | null) => void\n            ): void;\n            _construct?(callback: (error?: Error | null) => void): void;\n            _destroy(error: Error | null, callback: (error?: Error | null) => void): void;\n            _final(callback: (error?: Error | null) => void): void;\n            /**\n             * The `writable.write()` method writes some data to the stream, and calls the\n             * supplied `callback` once the data has been fully handled. If an error\n             * occurs, the `callback` will be called with the error as its\n             * first argument. The `callback` is called asynchronously and before `'error'` is\n             * emitted.\n             *\n             * The return value is `true` if the internal buffer is less than the`highWaterMark` configured when the stream was created after admitting `chunk`.\n             * If `false` is returned, further attempts to write data to the stream should\n             * stop until the `'drain'` event is emitted.\n             *\n             * While a stream is not draining, calls to `write()` will buffer `chunk`, and\n             * return false. Once all currently buffered chunks are drained (accepted for\n             * delivery by the operating system), the `'drain'` event will be emitted.\n             * It is recommended that once `write()` returns false, no more chunks be written\n             * until the `'drain'` event is emitted. While calling `write()` on a stream that\n             * is not draining is allowed, Node.js will buffer all written chunks until\n             * maximum memory usage occurs, at which point it will abort unconditionally.\n             * Even before it aborts, high memory usage will cause poor garbage collector\n             * performance and high RSS (which is not typically released back to the system,\n             * even after the memory is no longer required). Since TCP sockets may never\n             * drain if the remote peer does not read the data, writing a socket that is\n             * not draining may lead to a remotely exploitable vulnerability.\n             *\n             * Writing data while the stream is not draining is particularly\n             * problematic for a `Transform`, because the `Transform` streams are paused\n             * by default until they are piped or a `'data'` or `'readable'` event handler\n             * is added.\n             *\n             * If the data to be written can be generated or fetched on demand, it is\n             * recommended to encapsulate the logic into a `Readable` and use {@link pipe}. However, if calling `write()` is preferred, it is\n             * possible to respect backpressure and avoid memory issues using the `'drain'` event:\n             *\n             * ```js\n             * function write(data, cb) {\n             *   if (!stream.write(data)) {\n             *     stream.once('drain', cb);\n             *   } else {\n             *     process.nextTick(cb);\n             *   }\n             * }\n             *\n             * // Wait for cb to be called before doing any other write.\n             * write('hello', () => {\n             *   console.log('Write completed, do more writes now.');\n             * });\n             * ```\n             *\n             * A `Writable` stream in object mode will always ignore the `encoding` argument.\n             * @since v0.9.4\n             * @param chunk Optional data to write. For streams not operating in object mode, `chunk` must be a string, `Buffer` or `Uint8Array`. For object mode streams, `chunk` may be any\n             * JavaScript value other than `null`.\n             * @param [encoding='utf8'] The encoding, if `chunk` is a string.\n             * @param callback Callback for when this chunk of data is flushed.\n             * @return `false` if the stream wishes for the calling code to wait for the `'drain'` event to be emitted before continuing to write additional data; otherwise `true`.\n             */\n            write(chunk: any, callback?: (error: Error | null | undefined) => void): boolean;\n            write(chunk: any, encoding: BufferEncoding, callback?: (error: Error | null | undefined) => void): boolean;\n            /**\n             * The `writable.setDefaultEncoding()` method sets the default `encoding` for a `Writable` stream.\n             * @since v0.11.15\n             * @param encoding The new default encoding\n             */\n            setDefaultEncoding(encoding: BufferEncoding): this;\n            /**\n             * Calling the `writable.end()` method signals that no more data will be written\n             * to the `Writable`. The optional `chunk` and `encoding` arguments allow one\n             * final additional chunk of data to be written immediately before closing the\n             * stream.\n             *\n             * Calling the {@link write} method after calling {@link end} will raise an error.\n             *\n             * ```js\n             * // Write 'hello, ' and then end with 'world!'.\n             * const fs = require('fs');\n             * const file = fs.createWriteStream('example.txt');\n             * file.write('hello, ');\n             * file.end('world!');\n             * // Writing more now is not allowed!\n             * ```\n             * @since v0.9.4\n             * @param chunk Optional data to write. For streams not operating in object mode, `chunk` must be a string, `Buffer` or `Uint8Array`. For object mode streams, `chunk` may be any\n             * JavaScript value other than `null`.\n             * @param encoding The encoding if `chunk` is a string\n             * @param callback Callback for when the stream is finished.\n             */\n            end(cb?: () => void): this;\n            end(chunk: any, cb?: () => void): this;\n            end(chunk: any, encoding: BufferEncoding, cb?: () => void): this;\n            /**\n             * The `writable.cork()` method forces all written data to be buffered in memory.\n             * The buffered data will be flushed when either the {@link uncork} or {@link end} methods are called.\n             *\n             * The primary intent of `writable.cork()` is to accommodate a situation in which\n             * several small chunks are written to the stream in rapid succession. Instead of\n             * immediately forwarding them to the underlying destination, `writable.cork()`buffers all the chunks until `writable.uncork()` is called, which will pass them\n             * all to `writable._writev()`, if present. This prevents a head-of-line blocking\n             * situation where data is being buffered while waiting for the first small chunk\n             * to be processed. However, use of `writable.cork()` without implementing`writable._writev()` may have an adverse effect on throughput.\n             *\n             * See also: `writable.uncork()`, `writable._writev()`.\n             * @since v0.11.2\n             */\n            cork(): void;\n            /**\n             * The `writable.uncork()` method flushes all data buffered since {@link cork} was called.\n             *\n             * When using `writable.cork()` and `writable.uncork()` to manage the buffering\n             * of writes to a stream, it is recommended that calls to `writable.uncork()` be\n             * deferred using `process.nextTick()`. Doing so allows batching of all`writable.write()` calls that occur within a given Node.js event loop phase.\n             *\n             * ```js\n             * stream.cork();\n             * stream.write('some ');\n             * stream.write('data ');\n             * process.nextTick(() => stream.uncork());\n             * ```\n             *\n             * If the `writable.cork()` method is called multiple times on a stream, the\n             * same number of calls to `writable.uncork()` must be called to flush the buffered\n             * data.\n             *\n             * ```js\n             * stream.cork();\n             * stream.write('some ');\n             * stream.cork();\n             * stream.write('data ');\n             * process.nextTick(() => {\n             *   stream.uncork();\n             *   // The data will not be flushed until uncork() is called a second time.\n             *   stream.uncork();\n             * });\n             * ```\n             *\n             * See also: `writable.cork()`.\n             * @since v0.11.2\n             */\n            uncork(): void;\n            /**\n             * Destroy the stream. Optionally emit an `'error'` event, and emit a `'close'`event (unless `emitClose` is set to `false`). After this call, the writable\n             * stream has ended and subsequent calls to `write()` or `end()` will result in\n             * an `ERR_STREAM_DESTROYED` error.\n             * This is a destructive and immediate way to destroy a stream. Previous calls to`write()` may not have drained, and may trigger an `ERR_STREAM_DESTROYED` error.\n             * Use `end()` instead of destroy if data should flush before close, or wait for\n             * the `'drain'` event before destroying the stream.\n             *\n             * Once `destroy()` has been called any further calls will be a no-op and no\n             * further errors except from `_destroy()` may be emitted as `'error'`.\n             *\n             * Implementors should not override this method,\n             * but instead implement `writable._destroy()`.\n             * @since v8.0.0\n             * @param error Optional, an error to emit with `'error'` event.\n             */\n            destroy(error?: Error): this;\n            /**\n             * Event emitter\n             * The defined events on documents including:\n             * 1. close\n             * 2. drain\n             * 3. error\n             * 4. finish\n             * 5. pipe\n             * 6. unpipe\n             */\n            addListener(event: 'close', listener: () => void): this;\n            addListener(event: 'drain', listener: () => void): this;\n            addListener(event: 'error', listener: (err: Error) => void): this;\n            addListener(event: 'finish', listener: () => void): this;\n            addListener(event: 'pipe', listener: (src: Readable) => void): this;\n            addListener(event: 'unpipe', listener: (src: Readable) => void): this;\n            addListener(event: string | symbol, listener: (...args: any[]) => void): this;\n            emit(event: 'close'): boolean;\n            emit(event: 'drain'): boolean;\n            emit(event: 'error', err: Error): boolean;\n            emit(event: 'finish'): boolean;\n            emit(event: 'pipe', src: Readable): boolean;\n            emit(event: 'unpipe', src: Readable): boolean;\n            emit(event: string | symbol, ...args: any[]): boolean;\n            on(event: 'close', listener: () => void): this;\n            on(event: 'drain', listener: () => void): this;\n            on(event: 'error', listener: (err: Error) => void): this;\n            on(event: 'finish', listener: () => void): this;\n            on(event: 'pipe', listener: (src: Readable) => void): this;\n            on(event: 'unpipe', listener: (src: Readable) => void): this;\n            on(event: string | symbol, listener: (...args: any[]) => void): this;\n            once(event: 'close', listener: () => void): this;\n            once(event: 'drain', listener: () => void): this;\n            once(event: 'error', listener: (err: Error) => void): this;\n            once(event: 'finish', listener: () => void): this;\n            once(event: 'pipe', listener: (src: Readable) => void): this;\n            once(event: 'unpipe', listener: (src: Readable) => void): this;\n            once(event: string | symbol, listener: (...args: any[]) => void): this;\n            prependListener(event: 'close', listener: () => void): this;\n            prependListener(event: 'drain', listener: () => void): this;\n            prependListener(event: 'error', listener: (err: Error) => void): this;\n            prependListener(event: 'finish', listener: () => void): this;\n            prependListener(event: 'pipe', listener: (src: Readable) => void): this;\n            prependListener(event: 'unpipe', listener: (src: Readable) => void): this;\n            prependListener(event: string | symbol, listener: (...args: any[]) => void): this;\n            prependOnceListener(event: 'close', listener: () => void): this;\n            prependOnceListener(event: 'drain', listener: () => void): this;\n            prependOnceListener(event: 'error', listener: (err: Error) => void): this;\n            prependOnceListener(event: 'finish', listener: () => void): this;\n            prependOnceListener(event: 'pipe', listener: (src: Readable) => void): this;\n            prependOnceListener(event: 'unpipe', listener: (src: Readable) => void): this;\n            prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this;\n            removeListener(event: 'close', listener: () => void): this;\n            removeListener(event: 'drain', listener: () => void): this;\n            removeListener(event: 'error', listener: (err: Error) => void): this;\n            removeListener(event: 'finish', listener: () => void): this;\n            removeListener(event: 'pipe', listener: (src: Readable) => void): this;\n            removeListener(event: 'unpipe', listener: (src: Readable) => void): this;\n            removeListener(event: string | symbol, listener: (...args: any[]) => void): this;\n        }\n        interface DuplexOptions extends ReadableOptions, WritableOptions {\n            allowHalfOpen?: boolean | undefined;\n            readableObjectMode?: boolean | undefined;\n            writableObjectMode?: boolean | undefined;\n            readableHighWaterMark?: number | undefined;\n            writableHighWaterMark?: number | undefined;\n            writableCorked?: number | undefined;\n            construct?(this: Duplex, callback: (error?: Error | null) => void): void;\n            read?(this: Duplex, size: number): void;\n            write?(this: Duplex, chunk: any, encoding: BufferEncoding, callback: (error?: Error | null) => void): void;\n            writev?(\n                this: Duplex,\n                chunks: Array<{\n                    chunk: any;\n                    encoding: BufferEncoding;\n                }>,\n                callback: (error?: Error | null) => void\n            ): void;\n            final?(this: Duplex, callback: (error?: Error | null) => void): void;\n            destroy?(this: Duplex, error: Error | null, callback: (error: Error | null) => void): void;\n        }\n        /**\n         * Duplex streams are streams that implement both the `Readable` and `Writable` interfaces.\n         *\n         * Examples of `Duplex` streams include:\n         *\n         * * `TCP sockets`\n         * * `zlib streams`\n         * * `crypto streams`\n         * @since v0.9.4\n         */\n        class Duplex extends Readable implements Writable {\n            readonly writable: boolean;\n            readonly writableEnded: boolean;\n            readonly writableFinished: boolean;\n            readonly writableHighWaterMark: number;\n            readonly writableLength: number;\n            readonly writableObjectMode: boolean;\n            readonly writableCorked: number;\n            /**\n             * If `false` then the stream will automatically end the writable side when the\n             * readable side ends. Set initially by the `allowHalfOpen` constructor option,\n             * which defaults to `false`.\n             *\n             * This can be changed manually to change the half-open behavior of an existing`Duplex` stream instance, but must be changed before the `'end'` event is\n             * emitted.\n             * @since v0.9.4\n             */\n            allowHalfOpen: boolean;\n            constructor(opts?: DuplexOptions);\n            /**\n             * A utility method for creating duplex streams.\n             *\n             * - `Stream` converts writable stream into writable `Duplex` and readable stream\n             *   to `Duplex`.\n             * - `Blob` converts into readable `Duplex`.\n             * - `string` converts into readable `Duplex`.\n             * - `ArrayBuffer` converts into readable `Duplex`.\n             * - `AsyncIterable` converts into a readable `Duplex`. Cannot yield `null`.\n             * - `AsyncGeneratorFunction` converts into a readable/writable transform\n             *   `Duplex`. Must take a source `AsyncIterable` as first parameter. Cannot yield\n             *   `null`.\n             * - `AsyncFunction` converts into a writable `Duplex`. Must return\n             *   either `null` or `undefined`\n             * - `Object ({ writable, readable })` converts `readable` and\n             *   `writable` into `Stream` and then combines them into `Duplex` where the\n             *   `Duplex` will write to the `writable` and read from the `readable`.\n             * - `Promise` converts into readable `Duplex`. Value `null` is ignored.\n             *\n             * @since v16.8.0\n             */\n            static from(src: Stream | NodeBlob | ArrayBuffer | string | Iterable<any> | AsyncIterable<any> | AsyncGeneratorFunction | Promise<any> | Object): Duplex;\n            _write(chunk: any, encoding: BufferEncoding, callback: (error?: Error | null) => void): void;\n            _writev?(\n                chunks: Array<{\n                    chunk: any;\n                    encoding: BufferEncoding;\n                }>,\n                callback: (error?: Error | null) => void\n            ): void;\n            _destroy(error: Error | null, callback: (error: Error | null) => void): void;\n            _final(callback: (error?: Error | null) => void): void;\n            write(chunk: any, encoding?: BufferEncoding, cb?: (error: Error | null | undefined) => void): boolean;\n            write(chunk: any, cb?: (error: Error | null | undefined) => void): boolean;\n            setDefaultEncoding(encoding: BufferEncoding): this;\n            end(cb?: () => void): this;\n            end(chunk: any, cb?: () => void): this;\n            end(chunk: any, encoding?: BufferEncoding, cb?: () => void): this;\n            cork(): void;\n            uncork(): void;\n        }\n        type TransformCallback = (error?: Error | null, data?: any) => void;\n        interface TransformOptions extends DuplexOptions {\n            construct?(this: Transform, callback: (error?: Error | null) => void): void;\n            read?(this: Transform, size: number): void;\n            write?(this: Transform, chunk: any, encoding: BufferEncoding, callback: (error?: Error | null) => void): void;\n            writev?(\n                this: Transform,\n                chunks: Array<{\n                    chunk: any;\n                    encoding: BufferEncoding;\n                }>,\n                callback: (error?: Error | null) => void\n            ): void;\n            final?(this: Transform, callback: (error?: Error | null) => void): void;\n            destroy?(this: Transform, error: Error | null, callback: (error: Error | null) => void): void;\n            transform?(this: Transform, chunk: any, encoding: BufferEncoding, callback: TransformCallback): void;\n            flush?(this: Transform, callback: TransformCallback): void;\n        }\n        /**\n         * Transform streams are `Duplex` streams where the output is in some way\n         * related to the input. Like all `Duplex` streams, `Transform` streams\n         * implement both the `Readable` and `Writable` interfaces.\n         *\n         * Examples of `Transform` streams include:\n         *\n         * * `zlib streams`\n         * * `crypto streams`\n         * @since v0.9.4\n         */\n        class Transform extends Duplex {\n            constructor(opts?: TransformOptions);\n            _transform(chunk: any, encoding: BufferEncoding, callback: TransformCallback): void;\n            _flush(callback: TransformCallback): void;\n        }\n        /**\n         * The `stream.PassThrough` class is a trivial implementation of a `Transform` stream that simply passes the input bytes across to the output. Its purpose is\n         * primarily for examples and testing, but there are some use cases where`stream.PassThrough` is useful as a building block for novel sorts of streams.\n         */\n        class PassThrough extends Transform {}\n        /**\n         * Attaches an AbortSignal to a readable or writeable stream. This lets code\n         * control stream destruction using an `AbortController`.\n         *\n         * Calling `abort` on the `AbortController` corresponding to the passed`AbortSignal` will behave the same way as calling `.destroy(new AbortError())`on the stream.\n         *\n         * ```js\n         * const fs = require('fs');\n         *\n         * const controller = new AbortController();\n         * const read = addAbortSignal(\n         *   controller.signal,\n         *   fs.createReadStream(('object.json'))\n         * );\n         * // Later, abort the operation closing the stream\n         * controller.abort();\n         * ```\n         *\n         * Or using an `AbortSignal` with a readable stream as an async iterable:\n         *\n         * ```js\n         * const controller = new AbortController();\n         * setTimeout(() => controller.abort(), 10_000); // set a timeout\n         * const stream = addAbortSignal(\n         *   controller.signal,\n         *   fs.createReadStream(('object.json'))\n         * );\n         * (async () => {\n         *   try {\n         *     for await (const chunk of stream) {\n         *       await process(chunk);\n         *     }\n         *   } catch (e) {\n         *     if (e.name === 'AbortError') {\n         *       // The operation was cancelled\n         *     } else {\n         *       throw e;\n         *     }\n         *   }\n         * })();\n         * ```\n         * @since v15.4.0\n         * @param signal A signal representing possible cancellation\n         * @param stream a stream to attach a signal to\n         */\n        function addAbortSignal<T extends Stream>(signal: AbortSignal, stream: T): T;\n        interface FinishedOptions extends Abortable {\n            error?: boolean | undefined;\n            readable?: boolean | undefined;\n            writable?: boolean | undefined;\n        }\n        /**\n         * A function to get notified when a stream is no longer readable, writable\n         * or has experienced an error or a premature close event.\n         *\n         * ```js\n         * const { finished } = require('stream');\n         *\n         * const rs = fs.createReadStream('archive.tar');\n         *\n         * finished(rs, (err) => {\n         *   if (err) {\n         *     console.error('Stream failed.', err);\n         *   } else {\n         *     console.log('Stream is done reading.');\n         *   }\n         * });\n         *\n         * rs.resume(); // Drain the stream.\n         * ```\n         *\n         * Especially useful in error handling scenarios where a stream is destroyed\n         * prematurely (like an aborted HTTP request), and will not emit `'end'`or `'finish'`.\n         *\n         * The `finished` API provides promise version:\n         *\n         * ```js\n         * const { finished } = require('stream/promises');\n         *\n         * const rs = fs.createReadStream('archive.tar');\n         *\n         * async function run() {\n         *   await finished(rs);\n         *   console.log('Stream is done reading.');\n         * }\n         *\n         * run().catch(console.error);\n         * rs.resume(); // Drain the stream.\n         * ```\n         *\n         * `stream.finished()` leaves dangling event listeners (in particular`'error'`, `'end'`, `'finish'` and `'close'`) after `callback` has been\n         * invoked. The reason for this is so that unexpected `'error'` events (due to\n         * incorrect stream implementations) do not cause unexpected crashes.\n         * If this is unwanted behavior then the returned cleanup function needs to be\n         * invoked in the callback:\n         *\n         * ```js\n         * const cleanup = finished(rs, (err) => {\n         *   cleanup();\n         *   // ...\n         * });\n         * ```\n         * @since v10.0.0\n         * @param stream A readable and/or writable stream.\n         * @param callback A callback function that takes an optional error argument.\n         * @return A cleanup function which removes all registered listeners.\n         */\n        function finished(stream: NodeJS.ReadableStream | NodeJS.WritableStream | NodeJS.ReadWriteStream, options: FinishedOptions, callback: (err?: NodeJS.ErrnoException | null) => void): () => void;\n        function finished(stream: NodeJS.ReadableStream | NodeJS.WritableStream | NodeJS.ReadWriteStream, callback: (err?: NodeJS.ErrnoException | null) => void): () => void;\n        namespace finished {\n            function __promisify__(stream: NodeJS.ReadableStream | NodeJS.WritableStream | NodeJS.ReadWriteStream, options?: FinishedOptions): Promise<void>;\n        }\n        type PipelineSourceFunction<T> = () => Iterable<T> | AsyncIterable<T>;\n        type PipelineSource<T> = Iterable<T> | AsyncIterable<T> | NodeJS.ReadableStream | PipelineSourceFunction<T>;\n        type PipelineTransform<S extends PipelineTransformSource<any>, U> =\n            | NodeJS.ReadWriteStream\n            | ((source: S extends (...args: any[]) => Iterable<infer ST> | AsyncIterable<infer ST> ? AsyncIterable<ST> : S) => AsyncIterable<U>);\n        type PipelineTransformSource<T> = PipelineSource<T> | PipelineTransform<any, T>;\n        type PipelineDestinationIterableFunction<T> = (source: AsyncIterable<T>) => AsyncIterable<any>;\n        type PipelineDestinationPromiseFunction<T, P> = (source: AsyncIterable<T>) => Promise<P>;\n        type PipelineDestination<S extends PipelineTransformSource<any>, P> = S extends PipelineTransformSource<infer ST>\n            ? NodeJS.WritableStream | PipelineDestinationIterableFunction<ST> | PipelineDestinationPromiseFunction<ST, P>\n            : never;\n        type PipelineCallback<S extends PipelineDestination<any, any>> = S extends PipelineDestinationPromiseFunction<any, infer P>\n            ? (err: NodeJS.ErrnoException | null, value: P) => void\n            : (err: NodeJS.ErrnoException | null) => void;\n        type PipelinePromise<S extends PipelineDestination<any, any>> = S extends PipelineDestinationPromiseFunction<any, infer P> ? Promise<P> : Promise<void>;\n        interface PipelineOptions {\n            signal: AbortSignal;\n        }\n        /**\n         * A module method to pipe between streams and generators forwarding errors and\n         * properly cleaning up and provide a callback when the pipeline is complete.\n         *\n         * ```js\n         * const { pipeline } = require('stream');\n         * const fs = require('fs');\n         * const zlib = require('zlib');\n         *\n         * // Use the pipeline API to easily pipe a series of streams\n         * // together and get notified when the pipeline is fully done.\n         *\n         * // A pipeline to gzip a potentially huge tar file efficiently:\n         *\n         * pipeline(\n         *   fs.createReadStream('archive.tar'),\n         *   zlib.createGzip(),\n         *   fs.createWriteStream('archive.tar.gz'),\n         *   (err) => {\n         *     if (err) {\n         *       console.error('Pipeline failed.', err);\n         *     } else {\n         *       console.log('Pipeline succeeded.');\n         *     }\n         *   }\n         * );\n         * ```\n         *\n         * The `pipeline` API provides a promise version, which can also\n         * receive an options argument as the last parameter with a`signal` `AbortSignal` property. When the signal is aborted,`destroy` will be called on the underlying pipeline, with\n         * an`AbortError`.\n         *\n         * ```js\n         * const { pipeline } = require('stream/promises');\n         *\n         * async function run() {\n         *   await pipeline(\n         *     fs.createReadStream('archive.tar'),\n         *     zlib.createGzip(),\n         *     fs.createWriteStream('archive.tar.gz')\n         *   );\n         *   console.log('Pipeline succeeded.');\n         * }\n         *\n         * run().catch(console.error);\n         * ```\n         *\n         * To use an `AbortSignal`, pass it inside an options object,\n         * as the last argument:\n         *\n         * ```js\n         * const { pipeline } = require('stream/promises');\n         *\n         * async function run() {\n         *   const ac = new AbortController();\n         *   const signal = ac.signal;\n         *\n         *   setTimeout(() => ac.abort(), 1);\n         *   await pipeline(\n         *     fs.createReadStream('archive.tar'),\n         *     zlib.createGzip(),\n         *     fs.createWriteStream('archive.tar.gz'),\n         *     { signal },\n         *   );\n         * }\n         *\n         * run().catch(console.error); // AbortError\n         * ```\n         *\n         * The `pipeline` API also supports async generators:\n         *\n         * ```js\n         * const { pipeline } = require('stream/promises');\n         * const fs = require('fs');\n         *\n         * async function run() {\n         *   await pipeline(\n         *     fs.createReadStream('lowercase.txt'),\n         *     async function* (source, signal) {\n         *       source.setEncoding('utf8');  // Work with strings rather than `Buffer`s.\n         *       for await (const chunk of source) {\n         *         yield await processChunk(chunk, { signal });\n         *       }\n         *     },\n         *     fs.createWriteStream('uppercase.txt')\n         *   );\n         *   console.log('Pipeline succeeded.');\n         * }\n         *\n         * run().catch(console.error);\n         * ```\n         *\n         * Remember to handle the `signal` argument passed into the async generator.\n         * Especially in the case where the async generator is the source for the\n         * pipeline (i.e. first argument) or the pipeline will never complete.\n         *\n         * ```js\n         * const { pipeline } = require('stream/promises');\n         * const fs = require('fs');\n         *\n         * async function run() {\n         *   await pipeline(\n         *     async function * (signal) {\n         *       await someLongRunningfn({ signal });\n         *       yield 'asd';\n         *     },\n         *     fs.createWriteStream('uppercase.txt')\n         *   );\n         *   console.log('Pipeline succeeded.');\n         * }\n         *\n         * run().catch(console.error);\n         * ```\n         *\n         * `stream.pipeline()` will call `stream.destroy(err)` on all streams except:\n         *\n         * * `Readable` streams which have emitted `'end'` or `'close'`.\n         * * `Writable` streams which have emitted `'finish'` or `'close'`.\n         *\n         * `stream.pipeline()` leaves dangling event listeners on the streams\n         * after the `callback` has been invoked. In the case of reuse of streams after\n         * failure, this can cause event listener leaks and swallowed errors.\n         * @since v10.0.0\n         * @param callback Called when the pipeline is fully done.\n         */\n        function pipeline<A extends PipelineSource<any>, B extends PipelineDestination<A, any>>(\n            source: A,\n            destination: B,\n            callback?: PipelineCallback<B>\n        ): B extends NodeJS.WritableStream ? B : NodeJS.WritableStream;\n        function pipeline<A extends PipelineSource<any>, T1 extends PipelineTransform<A, any>, B extends PipelineDestination<T1, any>>(\n            source: A,\n            transform1: T1,\n            destination: B,\n            callback?: PipelineCallback<B>\n        ): B extends NodeJS.WritableStream ? B : NodeJS.WritableStream;\n        function pipeline<A extends PipelineSource<any>, T1 extends PipelineTransform<A, any>, T2 extends PipelineTransform<T1, any>, B extends PipelineDestination<T2, any>>(\n            source: A,\n            transform1: T1,\n            transform2: T2,\n            destination: B,\n            callback?: PipelineCallback<B>\n        ): B extends NodeJS.WritableStream ? B : NodeJS.WritableStream;\n        function pipeline<\n            A extends PipelineSource<any>,\n            T1 extends PipelineTransform<A, any>,\n            T2 extends PipelineTransform<T1, any>,\n            T3 extends PipelineTransform<T2, any>,\n            B extends PipelineDestination<T3, any>\n        >(source: A, transform1: T1, transform2: T2, transform3: T3, destination: B, callback?: PipelineCallback<B>): B extends NodeJS.WritableStream ? B : NodeJS.WritableStream;\n        function pipeline<\n            A extends PipelineSource<any>,\n            T1 extends PipelineTransform<A, any>,\n            T2 extends PipelineTransform<T1, any>,\n            T3 extends PipelineTransform<T2, any>,\n            T4 extends PipelineTransform<T3, any>,\n            B extends PipelineDestination<T4, any>\n        >(source: A, transform1: T1, transform2: T2, transform3: T3, transform4: T4, destination: B, callback?: PipelineCallback<B>): B extends NodeJS.WritableStream ? B : NodeJS.WritableStream;\n        function pipeline(\n            streams: ReadonlyArray<NodeJS.ReadableStream | NodeJS.WritableStream | NodeJS.ReadWriteStream>,\n            callback?: (err: NodeJS.ErrnoException | null) => void\n        ): NodeJS.WritableStream;\n        function pipeline(\n            stream1: NodeJS.ReadableStream,\n            stream2: NodeJS.ReadWriteStream | NodeJS.WritableStream,\n            ...streams: Array<NodeJS.ReadWriteStream | NodeJS.WritableStream | ((err: NodeJS.ErrnoException | null) => void)>\n        ): NodeJS.WritableStream;\n        namespace pipeline {\n            function __promisify__<A extends PipelineSource<any>, B extends PipelineDestination<A, any>>(source: A, destination: B, options?: PipelineOptions): PipelinePromise<B>;\n            function __promisify__<A extends PipelineSource<any>, T1 extends PipelineTransform<A, any>, B extends PipelineDestination<T1, any>>(\n                source: A,\n                transform1: T1,\n                destination: B,\n                options?: PipelineOptions\n            ): PipelinePromise<B>;\n            function __promisify__<A extends PipelineSource<any>, T1 extends PipelineTransform<A, any>, T2 extends PipelineTransform<T1, any>, B extends PipelineDestination<T2, any>>(\n                source: A,\n                transform1: T1,\n                transform2: T2,\n                destination: B,\n                options?: PipelineOptions\n            ): PipelinePromise<B>;\n            function __promisify__<\n                A extends PipelineSource<any>,\n                T1 extends PipelineTransform<A, any>,\n                T2 extends PipelineTransform<T1, any>,\n                T3 extends PipelineTransform<T2, any>,\n                B extends PipelineDestination<T3, any>\n            >(source: A, transform1: T1, transform2: T2, transform3: T3, destination: B, options?: PipelineOptions): PipelinePromise<B>;\n            function __promisify__<\n                A extends PipelineSource<any>,\n                T1 extends PipelineTransform<A, any>,\n                T2 extends PipelineTransform<T1, any>,\n                T3 extends PipelineTransform<T2, any>,\n                T4 extends PipelineTransform<T3, any>,\n                B extends PipelineDestination<T4, any>\n            >(source: A, transform1: T1, transform2: T2, transform3: T3, transform4: T4, destination: B, options?: PipelineOptions): PipelinePromise<B>;\n            function __promisify__(streams: ReadonlyArray<NodeJS.ReadableStream | NodeJS.WritableStream | NodeJS.ReadWriteStream>, options?: PipelineOptions): Promise<void>;\n            function __promisify__(\n                stream1: NodeJS.ReadableStream,\n                stream2: NodeJS.ReadWriteStream | NodeJS.WritableStream,\n                ...streams: Array<NodeJS.ReadWriteStream | NodeJS.WritableStream | PipelineOptions>\n            ): Promise<void>;\n        }\n        interface Pipe {\n            close(): void;\n            hasRef(): boolean;\n            ref(): void;\n            unref(): void;\n        }\n\n        /**\n         * Returns whether the stream has encountered an error.\n         * @since v16.14.0\n         */\n        function isErrored(stream: Readable | Writable | NodeJS.ReadableStream | NodeJS.WritableStream): boolean;\n\n        /**\n         * Returns whether the stream is readable.\n         * @since v16.14.0\n         */\n        function isReadable(stream: Readable | NodeJS.ReadableStream): boolean;\n\n        const promises: typeof streamPromises;\n        const consumers: typeof streamConsumers;\n    }\n    export = internal;\n}\ndeclare module 'node:stream' {\n    import stream = require('stream');\n    export = stream;\n}\n"
    },
    {
      "path": "/node_modules/@types/node/stream/promises.d.ts",
      "content": "declare module 'stream/promises' {\n    import { FinishedOptions, PipelineSource, PipelineTransform, PipelineDestination, PipelinePromise, PipelineOptions } from 'node:stream';\n    function finished(stream: NodeJS.ReadableStream | NodeJS.WritableStream | NodeJS.ReadWriteStream, options?: FinishedOptions): Promise<void>;\n    function pipeline<A extends PipelineSource<any>, B extends PipelineDestination<A, any>>(source: A, destination: B, options?: PipelineOptions): PipelinePromise<B>;\n    function pipeline<A extends PipelineSource<any>, T1 extends PipelineTransform<A, any>, B extends PipelineDestination<T1, any>>(\n        source: A,\n        transform1: T1,\n        destination: B,\n        options?: PipelineOptions\n    ): PipelinePromise<B>;\n    function pipeline<A extends PipelineSource<any>, T1 extends PipelineTransform<A, any>, T2 extends PipelineTransform<T1, any>, B extends PipelineDestination<T2, any>>(\n        source: A,\n        transform1: T1,\n        transform2: T2,\n        destination: B,\n        options?: PipelineOptions\n    ): PipelinePromise<B>;\n    function pipeline<\n        A extends PipelineSource<any>,\n        T1 extends PipelineTransform<A, any>,\n        T2 extends PipelineTransform<T1, any>,\n        T3 extends PipelineTransform<T2, any>,\n        B extends PipelineDestination<T3, any>\n    >(source: A, transform1: T1, transform2: T2, transform3: T3, destination: B, options?: PipelineOptions): PipelinePromise<B>;\n    function pipeline<\n        A extends PipelineSource<any>,\n        T1 extends PipelineTransform<A, any>,\n        T2 extends PipelineTransform<T1, any>,\n        T3 extends PipelineTransform<T2, any>,\n        T4 extends PipelineTransform<T3, any>,\n        B extends PipelineDestination<T4, any>\n    >(source: A, transform1: T1, transform2: T2, transform3: T3, transform4: T4, destination: B, options?: PipelineOptions): PipelinePromise<B>;\n    function pipeline(streams: ReadonlyArray<NodeJS.ReadableStream | NodeJS.WritableStream | NodeJS.ReadWriteStream>, options?: PipelineOptions): Promise<void>;\n    function pipeline(\n        stream1: NodeJS.ReadableStream,\n        stream2: NodeJS.ReadWriteStream | NodeJS.WritableStream,\n        ...streams: Array<NodeJS.ReadWriteStream | NodeJS.WritableStream | PipelineOptions>\n    ): Promise<void>;\n}\ndeclare module 'node:stream/promises' {\n    export * from 'stream/promises';\n}\n"
    },
    {
      "path": "/node_modules/@types/node/stream/consumers.d.ts",
      "content": "declare module 'stream/consumers' {\n    import { Readable } from 'node:stream';\n    import { Blob as NodeBlob } from \"node:buffer\";\n    function buffer(stream: NodeJS.ReadableStream | Readable | AsyncIterator<any>): Promise<Buffer>;\n    function text(stream: NodeJS.ReadableStream | Readable | AsyncIterator<any>): Promise<string>;\n    function arrayBuffer(stream: NodeJS.ReadableStream | Readable | AsyncIterator<any>): Promise<ArrayBuffer>;\n    function blob(stream: NodeJS.ReadableStream | Readable | AsyncIterator<any>): Promise<NodeBlob>;\n    function json(stream: NodeJS.ReadableStream | Readable | AsyncIterator<any>): Promise<unknown>;\n}\ndeclare module 'node:stream/consumers' {\n    export * from 'stream/consumers';\n}\n"
    },
    {
      "path": "/node_modules/@types/node/stream/web.d.ts",
      "content": "declare module 'stream/web' {\n    // stub module, pending copy&paste from .d.ts or manual impl\n    // copy from lib.dom.d.ts\n\n    interface ReadableWritablePair<R = any, W = any> {\n        readable: ReadableStream<R>;\n        /**\n         * Provides a convenient, chainable way of piping this readable stream\n         * through a transform stream (or any other { writable, readable }\n         * pair). It simply pipes the stream into the writable side of the\n         * supplied pair, and returns the readable side for further use.\n         *\n         * Piping a stream will lock it for the duration of the pipe, preventing\n         * any other consumer from acquiring a reader.\n         */\n        writable: WritableStream<W>;\n    }\n\n    interface StreamPipeOptions {\n        preventAbort?: boolean;\n        preventCancel?: boolean;\n        /**\n         * Pipes this readable stream to a given writable stream destination.\n         * The way in which the piping process behaves under various error\n         * conditions can be customized with a number of passed options. It\n         * returns a promise that fulfills when the piping process completes\n         * successfully, or rejects if any errors were encountered.\n         *\n         * Piping a stream will lock it for the duration of the pipe, preventing\n         * any other consumer from acquiring a reader.\n         *\n         * Errors and closures of the source and destination streams propagate\n         * as follows:\n         *\n         * An error in this source readable stream will abort destination,\n         * unless preventAbort is truthy. The returned promise will be rejected\n         * with the source's error, or with any error that occurs during\n         * aborting the destination.\n         *\n         * An error in destination will cancel this source readable stream,\n         * unless preventCancel is truthy. The returned promise will be rejected\n         * with the destination's error, or with any error that occurs during\n         * canceling the source.\n         *\n         * When this source readable stream closes, destination will be closed,\n         * unless preventClose is truthy. The returned promise will be fulfilled\n         * once this process completes, unless an error is encountered while\n         * closing the destination, in which case it will be rejected with that\n         * error.\n         *\n         * If destination starts out closed or closing, this source readable\n         * stream will be canceled, unless preventCancel is true. The returned\n         * promise will be rejected with an error indicating piping to a closed\n         * stream failed, or with any error that occurs during canceling the\n         * source.\n         *\n         * The signal option can be set to an AbortSignal to allow aborting an\n         * ongoing pipe operation via the corresponding AbortController. In this\n         * case, this source readable stream will be canceled, and destination\n         * aborted, unless the respective options preventCancel or preventAbort\n         * are set.\n         */\n        preventClose?: boolean;\n        signal?: AbortSignal;\n    }\n\n    interface ReadableStreamGenericReader {\n        readonly closed: Promise<undefined>;\n        cancel(reason?: any): Promise<void>;\n    }\n\n    interface ReadableStreamDefaultReadValueResult<T> {\n        done: false;\n        value: T;\n    }\n\n    interface ReadableStreamDefaultReadDoneResult {\n        done: true;\n        value?: undefined;\n    }\n    type ReadableStreamController<T> = ReadableStreamDefaultController<T>;\n    type ReadableStreamDefaultReadResult<T> =\n        | ReadableStreamDefaultReadValueResult<T>\n        | ReadableStreamDefaultReadDoneResult;\n\n    interface ReadableByteStreamControllerCallback {\n        (controller: ReadableByteStreamController): void | PromiseLike<void>;\n    }\n\n    interface UnderlyingSinkAbortCallback {\n        (reason?: any): void | PromiseLike<void>;\n    }\n\n    interface UnderlyingSinkCloseCallback {\n        (): void | PromiseLike<void>;\n    }\n\n    interface UnderlyingSinkStartCallback {\n        (controller: WritableStreamDefaultController): any;\n    }\n\n    interface UnderlyingSinkWriteCallback<W> {\n        (chunk: W, controller: WritableStreamDefaultController): void | PromiseLike<void>;\n    }\n\n    interface UnderlyingSourceCancelCallback {\n        (reason?: any): void | PromiseLike<void>;\n    }\n\n    interface UnderlyingSourcePullCallback<R> {\n        (controller: ReadableStreamController<R>): void | PromiseLike<void>;\n    }\n\n    interface UnderlyingSourceStartCallback<R> {\n        (controller: ReadableStreamController<R>): any;\n    }\n\n    interface TransformerFlushCallback<O> {\n        (controller: TransformStreamDefaultController<O>): void | PromiseLike<void>;\n    }\n\n    interface TransformerStartCallback<O> {\n        (controller: TransformStreamDefaultController<O>): any;\n    }\n\n    interface TransformerTransformCallback<I, O> {\n        (chunk: I, controller: TransformStreamDefaultController<O>): void | PromiseLike<void>;\n    }\n\n    interface UnderlyingByteSource {\n        autoAllocateChunkSize?: number;\n        cancel?: ReadableStreamErrorCallback;\n        pull?: ReadableByteStreamControllerCallback;\n        start?: ReadableByteStreamControllerCallback;\n        type: 'bytes';\n    }\n\n    interface UnderlyingSource<R = any> {\n        cancel?: UnderlyingSourceCancelCallback;\n        pull?: UnderlyingSourcePullCallback<R>;\n        start?: UnderlyingSourceStartCallback<R>;\n        type?: undefined;\n    }\n\n    interface UnderlyingSink<W = any> {\n        abort?: UnderlyingSinkAbortCallback;\n        close?: UnderlyingSinkCloseCallback;\n        start?: UnderlyingSinkStartCallback;\n        type?: undefined;\n        write?: UnderlyingSinkWriteCallback<W>;\n    }\n\n    interface ReadableStreamErrorCallback {\n        (reason: any): void | PromiseLike<void>;\n    }\n\n    /** This Streams API interface represents a readable stream of byte data. */\n    interface ReadableStream<R = any> {\n        readonly locked: boolean;\n        cancel(reason?: any): Promise<void>;\n        getReader(): ReadableStreamDefaultReader<R>;\n        pipeThrough<T>(transform: ReadableWritablePair<T, R>, options?: StreamPipeOptions): ReadableStream<T>;\n        pipeTo(destination: WritableStream<R>, options?: StreamPipeOptions): Promise<void>;\n        tee(): [ReadableStream<R>, ReadableStream<R>];\n        values(options?: { preventCancel?: boolean }): AsyncIterableIterator<R>;\n        [Symbol.asyncIterator](): AsyncIterableIterator<R>;\n    }\n\n    const ReadableStream: {\n        prototype: ReadableStream;\n        new (\n            underlyingSource: UnderlyingByteSource,\n            strategy?: QueuingStrategy<Uint8Array>,\n        ): ReadableStream<Uint8Array>;\n        new <R = any>(underlyingSource?: UnderlyingSource<R>, strategy?: QueuingStrategy<R>): ReadableStream<R>;\n    };\n\n    interface ReadableStreamDefaultReader<R = any> extends ReadableStreamGenericReader {\n        read(): Promise<ReadableStreamDefaultReadResult<R>>;\n        releaseLock(): void;\n    }\n\n    const ReadableStreamDefaultReader: {\n        prototype: ReadableStreamDefaultReader;\n        new <R = any>(stream: ReadableStream<R>): ReadableStreamDefaultReader<R>;\n    };\n\n    const ReadableStreamBYOBReader: any;\n    const ReadableStreamBYOBRequest: any;\n\n    interface ReadableByteStreamController {\n        readonly byobRequest: undefined;\n        readonly desiredSize: number | null;\n        close(): void;\n        enqueue(chunk: ArrayBufferView): void;\n        error(error?: any): void;\n    }\n\n    const ReadableByteStreamController: {\n        prototype: ReadableByteStreamController;\n        new (): ReadableByteStreamController;\n    };\n\n    interface ReadableStreamDefaultController<R = any> {\n        readonly desiredSize: number | null;\n        close(): void;\n        enqueue(chunk?: R): void;\n        error(e?: any): void;\n    }\n\n    const ReadableStreamDefaultController: {\n        prototype: ReadableStreamDefaultController;\n        new (): ReadableStreamDefaultController;\n    };\n\n    interface Transformer<I = any, O = any> {\n        flush?: TransformerFlushCallback<O>;\n        readableType?: undefined;\n        start?: TransformerStartCallback<O>;\n        transform?: TransformerTransformCallback<I, O>;\n        writableType?: undefined;\n    }\n\n    interface TransformStream<I = any, O = any> {\n        readonly readable: ReadableStream<O>;\n        readonly writable: WritableStream<I>;\n    }\n\n    const TransformStream: {\n        prototype: TransformStream;\n        new <I = any, O = any>(\n            transformer?: Transformer<I, O>,\n            writableStrategy?: QueuingStrategy<I>,\n            readableStrategy?: QueuingStrategy<O>,\n        ): TransformStream<I, O>;\n    };\n\n    interface TransformStreamDefaultController<O = any> {\n        readonly desiredSize: number | null;\n        enqueue(chunk?: O): void;\n        error(reason?: any): void;\n        terminate(): void;\n    }\n\n    const TransformStreamDefaultController: {\n        prototype: TransformStreamDefaultController;\n        new (): TransformStreamDefaultController;\n    };\n\n    /**\n     * This Streams API interface provides a standard abstraction for writing\n     * streaming data to a destination, known as a sink. This object comes with\n     * built-in back pressure and queuing.\n     */\n    interface WritableStream<W = any> {\n        readonly locked: boolean;\n        abort(reason?: any): Promise<void>;\n        close(): Promise<void>;\n        getWriter(): WritableStreamDefaultWriter<W>;\n    }\n\n    const WritableStream: {\n        prototype: WritableStream;\n        new <W = any>(underlyingSink?: UnderlyingSink<W>, strategy?: QueuingStrategy<W>): WritableStream<W>;\n    };\n\n    /**\n     * This Streams API interface is the object returned by\n     * WritableStream.getWriter() and once created locks the < writer to the\n     * WritableStream ensuring that no other streams can write to the underlying\n     * sink.\n     */\n    interface WritableStreamDefaultWriter<W = any> {\n        readonly closed: Promise<undefined>;\n        readonly desiredSize: number | null;\n        readonly ready: Promise<undefined>;\n        abort(reason?: any): Promise<void>;\n        close(): Promise<void>;\n        releaseLock(): void;\n        write(chunk?: W): Promise<void>;\n    }\n\n    const WritableStreamDefaultWriter: {\n        prototype: WritableStreamDefaultWriter;\n        new <W = any>(stream: WritableStream<W>): WritableStreamDefaultWriter<W>;\n    };\n\n    /**\n     * This Streams API interface represents a controller allowing control of a\n     * WritableStream's state. When constructing a WritableStream, the\n     * underlying sink is given a corresponding WritableStreamDefaultController\n     * instance to manipulate.\n     */\n    interface WritableStreamDefaultController {\n        error(e?: any): void;\n    }\n\n    const WritableStreamDefaultController: {\n        prototype: WritableStreamDefaultController;\n        new (): WritableStreamDefaultController;\n    };\n\n    interface QueuingStrategy<T = any> {\n        highWaterMark?: number;\n        size?: QueuingStrategySize<T>;\n    }\n\n    interface QueuingStrategySize<T = any> {\n        (chunk?: T): number;\n    }\n\n    interface QueuingStrategyInit {\n        /**\n         * Creates a new ByteLengthQueuingStrategy with the provided high water\n         * mark.\n         *\n         * Note that the provided high water mark will not be validated ahead of\n         * time. Instead, if it is negative, NaN, or not a number, the resulting\n         * ByteLengthQueuingStrategy will cause the corresponding stream\n         * constructor to throw.\n         */\n        highWaterMark: number;\n    }\n\n    /**\n     * This Streams API interface provides a built-in byte length queuing\n     * strategy that can be used when constructing streams.\n     */\n    interface ByteLengthQueuingStrategy extends QueuingStrategy<ArrayBufferView> {\n        readonly highWaterMark: number;\n        readonly size: QueuingStrategySize<ArrayBufferView>;\n    }\n\n    const ByteLengthQueuingStrategy: {\n        prototype: ByteLengthQueuingStrategy;\n        new (init: QueuingStrategyInit): ByteLengthQueuingStrategy;\n    };\n\n    /**\n     * This Streams API interface provides a built-in byte length queuing\n     * strategy that can be used when constructing streams.\n     */\n    interface CountQueuingStrategy extends QueuingStrategy {\n        readonly highWaterMark: number;\n        readonly size: QueuingStrategySize;\n    }\n\n    const CountQueuingStrategy: {\n        prototype: CountQueuingStrategy;\n        new (init: QueuingStrategyInit): CountQueuingStrategy;\n    };\n\n    interface TextEncoderStream {\n        /** Returns \"utf-8\". */\n        readonly encoding: 'utf-8';\n        readonly readable: ReadableStream<Uint8Array>;\n        readonly writable: WritableStream<string>;\n        readonly [Symbol.toStringTag]: string;\n    }\n\n    const TextEncoderStream: {\n        prototype: TextEncoderStream;\n        new (): TextEncoderStream;\n    };\n\n    interface TextDecoderOptions {\n        fatal?: boolean;\n        ignoreBOM?: boolean;\n    }\n\n    type BufferSource = ArrayBufferView | ArrayBuffer;\n\n    interface TextDecoderStream {\n        /** Returns encoding's name, lower cased. */\n        readonly encoding: string;\n        /** Returns `true` if error mode is \"fatal\", and `false` otherwise. */\n        readonly fatal: boolean;\n        /** Returns `true` if ignore BOM flag is set, and `false` otherwise. */\n        readonly ignoreBOM: boolean;\n        readonly readable: ReadableStream<string>;\n        readonly writable: WritableStream<BufferSource>;\n        readonly [Symbol.toStringTag]: string;\n    }\n\n    const TextDecoderStream: {\n        prototype: TextDecoderStream;\n        new (label?: string, options?: TextDecoderOptions): TextDecoderStream;\n    };\n}\ndeclare module 'node:stream/web' {\n    export * from 'stream/web';\n}\n"
    },
    {
      "path": "/node_modules/@types/node/string_decoder.d.ts",
      "content": "/**\n * The `string_decoder` module provides an API for decoding `Buffer` objects into\n * strings in a manner that preserves encoded multi-byte UTF-8 and UTF-16\n * characters. It can be accessed using:\n *\n * ```js\n * const { StringDecoder } = require('string_decoder');\n * ```\n *\n * The following example shows the basic use of the `StringDecoder` class.\n *\n * ```js\n * const { StringDecoder } = require('string_decoder');\n * const decoder = new StringDecoder('utf8');\n *\n * const cent = Buffer.from([0xC2, 0xA2]);\n * console.log(decoder.write(cent));\n *\n * const euro = Buffer.from([0xE2, 0x82, 0xAC]);\n * console.log(decoder.write(euro));\n * ```\n *\n * When a `Buffer` instance is written to the `StringDecoder` instance, an\n * internal buffer is used to ensure that the decoded string does not contain\n * any incomplete multibyte characters. These are held in the buffer until the\n * next call to `stringDecoder.write()` or until `stringDecoder.end()` is called.\n *\n * In the following example, the three UTF-8 encoded bytes of the European Euro\n * symbol (`€`) are written over three separate operations:\n *\n * ```js\n * const { StringDecoder } = require('string_decoder');\n * const decoder = new StringDecoder('utf8');\n *\n * decoder.write(Buffer.from([0xE2]));\n * decoder.write(Buffer.from([0x82]));\n * console.log(decoder.end(Buffer.from([0xAC])));\n * ```\n * @see [source](https://github.com/nodejs/node/blob/v16.9.0/lib/string_decoder.js)\n */\ndeclare module 'string_decoder' {\n    class StringDecoder {\n        constructor(encoding?: BufferEncoding);\n        /**\n         * Returns a decoded string, ensuring that any incomplete multibyte characters at\n         * the end of the `Buffer`, or `TypedArray`, or `DataView` are omitted from the\n         * returned string and stored in an internal buffer for the next call to`stringDecoder.write()` or `stringDecoder.end()`.\n         * @since v0.1.99\n         * @param buffer A `Buffer`, or `TypedArray`, or `DataView` containing the bytes to decode.\n         */\n        write(buffer: Buffer): string;\n        /**\n         * Returns any remaining input stored in the internal buffer as a string. Bytes\n         * representing incomplete UTF-8 and UTF-16 characters will be replaced with\n         * substitution characters appropriate for the character encoding.\n         *\n         * If the `buffer` argument is provided, one final call to `stringDecoder.write()`is performed before returning the remaining input.\n         * After `end()` is called, the `stringDecoder` object can be reused for new input.\n         * @since v0.9.3\n         * @param buffer A `Buffer`, or `TypedArray`, or `DataView` containing the bytes to decode.\n         */\n        end(buffer?: Buffer): string;\n    }\n}\ndeclare module 'node:string_decoder' {\n    export * from 'string_decoder';\n}\n"
    },
    {
      "path": "/node_modules/@types/node/test.d.ts",
      "content": "/**\n * The `node:test` module provides a standalone testing module.\n * @see [source](https://github.com/nodejs/node/blob/v16.17.0/lib/test.js)\n */\ndeclare module 'node:test' {\n    /**\n     * The `test()` function is the value imported from the test module. Each invocation of this\n     * function results in the creation of a test point in the TAP output.\n     *\n     * The {@link TestContext} object passed to the fn argument can be used to perform actions\n     * related to the current test. Examples include skipping the test, adding additional TAP\n     * diagnostic information, or creating subtests.\n     *\n     * `test()` returns a {@link Promise} that resolves once the test completes. The return value\n     * can usually be discarded for top level tests. However, the return value from subtests should\n     * be used to prevent the parent test from finishing first and cancelling the subtest as shown\n     * in the following example.\n     *\n     * ```js\n     * test('top level test', async (t) => {\n     *   // The setTimeout() in the following subtest would cause it to outlive its\n     *   // parent test if 'await' is removed on the next line. Once the parent test\n     *   // completes, it will cancel any outstanding subtests.\n     *   await t.test('longer running subtest', async (t) => {\n     *     return new Promise((resolve, reject) => {\n     *       setTimeout(resolve, 1000);\n     *     });\n     *   });\n     * });\n     * ```\n     * @since v16.17.0\n     * @param name The name of the test, which is displayed when reporting test results.\n     *    Default: The `name` property of fn, or `'<anonymous>'` if `fn` does not have a name.\n     * @param options Configuration options for the test\n     * @param fn The function under test. The first argument to this function is a\n     *    {@link TestContext} object. If the test uses callbacks, the callback function is\n     *    passed as the second argument. Default: A no-op function.\n     * @returns A {@link Promise} resolved with `undefined` once the test completes.\n     */\n    function test(name?: string, fn?: TestFn): Promise<void>;\n    function test(name?: string, options?: TestOptions, fn?: TestFn): Promise<void>;\n    function test(options?: TestOptions, fn?: TestFn): Promise<void>;\n    function test(fn?: TestFn): Promise<void>;\n\n    /*\n     * @since v16.17.0\n     * @param name The name of the suite, which is displayed when reporting suite results.\n     *    Default: The `name` property of fn, or `'<anonymous>'` if `fn` does not have a name.\n     * @param options Configuration options for the suite\n     * @param fn The function under suite. Default: A no-op function.\n     */\n    function describe(name?: string, options?: TestOptions, fn?: SuiteFn): void;\n    function describe(name?: string, fn?: SuiteFn): void;\n    function describe(options?: TestOptions, fn?: SuiteFn): void;\n    function describe(fn?: SuiteFn): void;\n\n    /*\n     * @since v16.17.0\n     * @param name The name of the test, which is displayed when reporting test results.\n     *    Default: The `name` property of fn, or `'<anonymous>'` if `fn` does not have a name.\n     * @param options Configuration options for the test\n     * @param fn The function under test. If the test uses callbacks, the callback function is\n     *    passed as the second argument. Default: A no-op function.\n     */\n    function it(name?: string, options?: TestOptions, fn?: ItFn): void;\n    function it(name?: string, fn?: ItFn): void;\n    function it(options?: TestOptions, fn?: ItFn): void;\n    function it(fn?: ItFn): void;\n\n    /**\n     * The type of a function under test. The first argument to this function is a\n     * {@link TestContext} object. If the test uses callbacks, the callback function is passed as\n     * the second argument.\n     */\n    type TestFn = (t: TestContext, done: (result?: any) => void) => any;\n\n    /**\n     * The type of a function under Suite.\n     * If the test uses callbacks, the callback function is passed as an argument\n     */\n    type SuiteFn = (done: (result?: any) => void) => void;\n\n    /**\n     * The type of a function under test.\n     * If the test uses callbacks, the callback function is passed as an argument\n     */\n    type ItFn = (done: (result?: any) => void) => any;\n\n    /**\n     * An instance of `TestContext` is passed to each test function in order to interact with the\n     * test runner. However, the `TestContext` constructor is not exposed as part of the API.\n     * @since v16.17.0\n     */\n    interface TestContext {\n        /**\n         * This function is used to write TAP diagnostics to the output. Any diagnostic information is\n         * included at the end of the test's results. This function does not return a value.\n         * @param message Message to be displayed as a TAP diagnostic.\n         * @since v16.17.0\n         */\n        diagnostic(message: string): void;\n\n        /**\n         * If `shouldRunOnlyTests` is truthy, the test context will only run tests that have the `only`\n         * option set. Otherwise, all tests are run. If Node.js was not started with the `--test-only`\n         * command-line option, this function is a no-op.\n         * @param shouldRunOnlyTests Whether or not to run `only` tests.\n         * @since v16.17.0\n         */\n        runOnly(shouldRunOnlyTests: boolean): void;\n\n        /**\n         * This function causes the test's output to indicate the test as skipped. If `message` is\n         * provided, it is included in the TAP output. Calling `skip()` does not terminate execution of\n         * the test function. This function does not return a value.\n         * @param message Optional skip message to be displayed in TAP output.\n         * @since v16.17.0\n         */\n        skip(message?: string): void;\n\n        /**\n         * This function adds a `TODO` directive to the test's output. If `message` is provided, it is\n         * included in the TAP output. Calling `todo()` does not terminate execution of the test\n         * function. This function does not return a value.\n         * @param message Optional `TODO` message to be displayed in TAP output.\n         * @since v16.17.0\n         */\n        todo(message?: string): void;\n\n        /**\n         * This function is used to create subtests under the current test. This function behaves in\n         * the same fashion as the top level {@link test} function.\n         * @since v16.17.0\n         * @param name The name of the test, which is displayed when reporting test results.\n         *    Default: The `name` property of fn, or `'<anonymous>'` if `fn` does not have a name.\n         * @param options Configuration options for the test\n         * @param fn The function under test. This first argument to this function is a\n         *    {@link TestContext} object. If the test uses callbacks, the callback function is\n         *    passed as the second argument. Default: A no-op function.\n         * @returns A {@link Promise} resolved with `undefined` once the test completes.\n         */\n        test: typeof test;\n    }\n\n    interface TestOptions {\n        /**\n         * The number of tests that can be run at the same time. If unspecified, subtests inherit this\n         * value from their parent.\n         * @default 1\n         */\n        concurrency?: number;\n\n        /**\n         * If truthy, and the test context is configured to run `only` tests, then this test will be\n         * run. Otherwise, the test is skipped.\n         * @default false\n         */\n        only?: boolean;\n\n        /**\n         * Allows aborting an in-progress test.\n         * @since v16.17.0\n         */\n        signal?: AbortSignal;\n\n        /**\n         * If truthy, the test is skipped. If a string is provided, that string is displayed in the\n         * test results as the reason for skipping the test.\n         * @default false\n         */\n        skip?: boolean | string;\n\n        /**\n         * A number of milliseconds the test will fail after. If unspecified, subtests inherit this\n         * value from their parent.\n         * @default Infinity\n         * @since v16.17.0\n         */\n        timeout?: number;\n\n        /**\n         * If truthy, the test marked as `TODO`. If a string is provided, that string is displayed in\n         * the test results as the reason why the test is `TODO`.\n         * @default false\n         */\n        todo?: boolean | string;\n    }\n\n    export { test as default, test, describe, it };\n}\n"
    },
    {
      "path": "/node_modules/@types/node/timers.d.ts",
      "content": "/**\n * The `timer` module exposes a global API for scheduling functions to\n * be called at some future period of time. Because the timer functions are\n * globals, there is no need to call `require('timers')` to use the API.\n *\n * The timer functions within Node.js implement a similar API as the timers API\n * provided by Web Browsers but use a different internal implementation that is\n * built around the Node.js [Event Loop](https://nodejs.org/en/docs/guides/event-loop-timers-and-nexttick/#setimmediate-vs-settimeout).\n * @see [source](https://github.com/nodejs/node/blob/v16.9.0/lib/timers.js)\n */\ndeclare module 'timers' {\n    import { Abortable } from 'node:events';\n    import { setTimeout as setTimeoutPromise, setImmediate as setImmediatePromise, setInterval as setIntervalPromise } from 'node:timers/promises';\n    interface TimerOptions extends Abortable {\n        /**\n         * Set to `false` to indicate that the scheduled `Timeout`\n         * should not require the Node.js event loop to remain active.\n         * @default true\n         */\n        ref?: boolean | undefined;\n    }\n    let setTimeout: typeof global.setTimeout;\n    let clearTimeout: typeof global.clearTimeout;\n    let setInterval: typeof global.setInterval;\n    let clearInterval: typeof global.clearInterval;\n    let setImmediate: typeof global.setImmediate;\n    let clearImmediate: typeof global.clearImmediate;\n    global {\n        namespace NodeJS {\n            // compatibility with older typings\n            interface Timer extends RefCounted {\n                hasRef(): boolean;\n                refresh(): this;\n                [Symbol.toPrimitive](): number;\n            }\n            interface Immediate extends RefCounted {\n                /**\n                 * If true, the `Immediate` object will keep the Node.js event loop active.\n                 * @since v11.0.0\n                 */\n                hasRef(): boolean;\n                _onImmediate: Function; // to distinguish it from the Timeout class\n            }\n            interface Timeout extends Timer {\n                /**\n                 * If true, the `Timeout` object will keep the Node.js event loop active.\n                 * @since v11.0.0\n                 */\n                hasRef(): boolean;\n                /**\n                 * Sets the timer's start time to the current time, and reschedules the timer to\n                 * call its callback at the previously specified duration adjusted to the current\n                 * time. This is useful for refreshing a timer without allocating a new\n                 * JavaScript object.\n                 *\n                 * Using this on a timer that has already called its callback will reactivate the\n                 * timer.\n                 * @since v10.2.0\n                 * @return a reference to `timeout`\n                 */\n                refresh(): this;\n                [Symbol.toPrimitive](): number;\n            }\n        }\n        function setTimeout<TArgs extends any[]>(callback: (...args: TArgs) => void, ms?: number, ...args: TArgs): NodeJS.Timeout;\n        // util.promisify no rest args compability\n        // tslint:disable-next-line void-return\n        function setTimeout(callback: (args: void) => void, ms?: number): NodeJS.Timeout;\n        namespace setTimeout {\n            const __promisify__: typeof setTimeoutPromise;\n        }\n        function clearTimeout(timeoutId: NodeJS.Timeout | string | number | undefined): void;\n        function setInterval<TArgs extends any[]>(callback: (...args: TArgs) => void, ms?: number, ...args: TArgs): NodeJS.Timer;\n        // util.promisify no rest args compability\n        // tslint:disable-next-line void-return\n        function setInterval(callback: (args: void) => void, ms?: number): NodeJS.Timer;\n        namespace setInterval {\n            const __promisify__: typeof setIntervalPromise;\n        }\n        function clearInterval(intervalId: NodeJS.Timeout | string | number | undefined): void;\n        function setImmediate<TArgs extends any[]>(callback: (...args: TArgs) => void, ...args: TArgs): NodeJS.Immediate;\n        // util.promisify no rest args compability\n        // tslint:disable-next-line void-return\n        function setImmediate(callback: (args: void) => void): NodeJS.Immediate;\n        namespace setImmediate {\n            const __promisify__: typeof setImmediatePromise;\n        }\n        function clearImmediate(immediateId: NodeJS.Immediate | undefined): void;\n        function queueMicrotask(callback: () => void): void;\n    }\n}\ndeclare module 'node:timers' {\n    export * from 'timers';\n}\n"
    },
    {
      "path": "/node_modules/@types/node/timers/promises.d.ts",
      "content": "/**\n * The `timers/promises` API provides an alternative set of timer functions\n * that return `Promise` objects. The API is accessible via`require('timers/promises')`.\n *\n * ```js\n * import {\n *   setTimeout,\n *   setImmediate,\n *   setInterval,\n * } from 'timers/promises';\n * ```\n * @since v15.0.0\n */\ndeclare module 'timers/promises' {\n    import { TimerOptions } from 'node:timers';\n    /**\n     * ```js\n     * import {\n     *   setTimeout,\n     * } from 'timers/promises';\n     *\n     * const res = await setTimeout(100, 'result');\n     *\n     * console.log(res);  // Prints 'result'\n     * ```\n     * @since v15.0.0\n     * @param [delay=1] The number of milliseconds to wait before fulfilling the promise.\n     * @param value A value with which the promise is fulfilled.\n     */\n    function setTimeout<T = void>(delay?: number, value?: T, options?: TimerOptions): Promise<T>;\n    /**\n     * ```js\n     * import {\n     *   setImmediate,\n     * } from 'timers/promises';\n     *\n     * const res = await setImmediate('result');\n     *\n     * console.log(res);  // Prints 'result'\n     * ```\n     * @since v15.0.0\n     * @param value A value with which the promise is fulfilled.\n     */\n    function setImmediate<T = void>(value?: T, options?: TimerOptions): Promise<T>;\n    /**\n     * Returns an async iterator that generates values in an interval of `delay` ms.\n     *\n     * ```js\n     * import {\n     *   setInterval,\n     * } from 'timers/promises';\n     *\n     * const interval = 100;\n     * for await (const startTime of setInterval(interval, Date.now())) {\n     *   const now = Date.now();\n     *   console.log(now);\n     *   if ((now - startTime) > 1000)\n     *     break;\n     * }\n     * console.log(Date.now());\n     * ```\n     * @since v15.9.0\n     */\n    function setInterval<T = void>(delay?: number, value?: T, options?: TimerOptions): AsyncIterable<T>;\n\n    interface Scheduler {\n        /**\n         * ```js\n         * import { scheduler } from 'node:timers/promises';\n         *\n         * await scheduler.wait(1000); // Wait one second before continuing\n         * ```\n         * An experimental API defined by the Scheduling APIs draft specification being developed as a standard Web Platform API.\n         * Calling timersPromises.scheduler.wait(delay, options) is roughly equivalent to calling timersPromises.setTimeout(delay, undefined, options) except that the ref option is not supported.\n         * @since v16.14.0\n         * @experimental\n         * @param [delay=1] The number of milliseconds to wait before fulfilling the promise.\n         */\n        wait: (delay?: number, options?: TimerOptions) => Promise<void>;\n        /**\n         * An experimental API defined by the Scheduling APIs draft specification being developed as a standard Web Platform API.\n         * Calling timersPromises.scheduler.yield() is equivalent to calling timersPromises.setImmediate() with no arguments.\n         * @since v16.14.0\n         * @experimental\n         */\n        yield: () => Promise<void>;\n    }\n\n    const scheduler: Scheduler;\n}\ndeclare module 'node:timers/promises' {\n    export * from 'timers/promises';\n}\n"
    },
    {
      "path": "/node_modules/@types/node/tls.d.ts",
      "content": "/**\n * The `tls` module provides an implementation of the Transport Layer Security\n * (TLS) and Secure Socket Layer (SSL) protocols that is built on top of OpenSSL.\n * The module can be accessed using:\n *\n * ```js\n * const tls = require('tls');\n * ```\n * @see [source](https://github.com/nodejs/node/blob/v16.9.0/lib/tls.js)\n */\ndeclare module 'tls' {\n    import { X509Certificate } from 'node:crypto';\n    import * as net from 'node:net';\n    const CLIENT_RENEG_LIMIT: number;\n    const CLIENT_RENEG_WINDOW: number;\n    interface Certificate {\n        /**\n         * Country code.\n         */\n        C: string;\n        /**\n         * Street.\n         */\n        ST: string;\n        /**\n         * Locality.\n         */\n        L: string;\n        /**\n         * Organization.\n         */\n        O: string;\n        /**\n         * Organizational unit.\n         */\n        OU: string;\n        /**\n         * Common name.\n         */\n        CN: string;\n    }\n    interface PeerCertificate {\n        subject: Certificate;\n        issuer: Certificate;\n        subjectaltname: string;\n        infoAccess: NodeJS.Dict<string[]>;\n        modulus: string;\n        exponent: string;\n        valid_from: string;\n        valid_to: string;\n        fingerprint: string;\n        fingerprint256: string;\n        ext_key_usage: string[];\n        serialNumber: string;\n        raw: Buffer;\n    }\n    interface DetailedPeerCertificate extends PeerCertificate {\n        issuerCertificate: DetailedPeerCertificate;\n    }\n    interface CipherNameAndProtocol {\n        /**\n         * The cipher name.\n         */\n        name: string;\n        /**\n         * SSL/TLS protocol version.\n         */\n        version: string;\n        /**\n         * IETF name for the cipher suite.\n         */\n        standardName: string;\n    }\n    interface EphemeralKeyInfo {\n        /**\n         * The supported types are 'DH' and 'ECDH'.\n         */\n        type: string;\n        /**\n         * The name property is available only when type is 'ECDH'.\n         */\n        name?: string | undefined;\n        /**\n         * The size of parameter of an ephemeral key exchange.\n         */\n        size: number;\n    }\n    interface KeyObject {\n        /**\n         * Private keys in PEM format.\n         */\n        pem: string | Buffer;\n        /**\n         * Optional passphrase.\n         */\n        passphrase?: string | undefined;\n    }\n    interface PxfObject {\n        /**\n         * PFX or PKCS12 encoded private key and certificate chain.\n         */\n        buf: string | Buffer;\n        /**\n         * Optional passphrase.\n         */\n        passphrase?: string | undefined;\n    }\n    interface TLSSocketOptions extends SecureContextOptions, CommonConnectionOptions {\n        /**\n         * If true the TLS socket will be instantiated in server-mode.\n         * Defaults to false.\n         */\n        isServer?: boolean | undefined;\n        /**\n         * An optional net.Server instance.\n         */\n        server?: net.Server | undefined;\n        /**\n         * An optional Buffer instance containing a TLS session.\n         */\n        session?: Buffer | undefined;\n        /**\n         * If true, specifies that the OCSP status request extension will be\n         * added to the client hello and an 'OCSPResponse' event will be\n         * emitted on the socket before establishing a secure communication\n         */\n        requestOCSP?: boolean | undefined;\n    }\n    /**\n     * Performs transparent encryption of written data and all required TLS\n     * negotiation.\n     *\n     * Instances of `tls.TLSSocket` implement the duplex `Stream` interface.\n     *\n     * Methods that return TLS connection metadata (e.g.{@link TLSSocket.getPeerCertificate} will only return data while the\n     * connection is open.\n     * @since v0.11.4\n     */\n    class TLSSocket extends net.Socket {\n        /**\n         * Construct a new tls.TLSSocket object from an existing TCP socket.\n         */\n        constructor(socket: net.Socket, options?: TLSSocketOptions);\n        /**\n         * Returns `true` if the peer certificate was signed by one of the CAs specified\n         * when creating the `tls.TLSSocket` instance, otherwise `false`.\n         * @since v0.11.4\n         */\n        authorized: boolean;\n        /**\n         * Returns the reason why the peer's certificate was not been verified. This\n         * property is set only when `tlsSocket.authorized === false`.\n         * @since v0.11.4\n         */\n        authorizationError: Error;\n        /**\n         * Always returns `true`. This may be used to distinguish TLS sockets from regular`net.Socket` instances.\n         * @since v0.11.4\n         */\n        encrypted: true;\n        /**\n         * String containing the selected ALPN protocol.\n         * Before a handshake has completed, this value is always null.\n         * When a handshake is completed but not ALPN protocol was selected, tlsSocket.alpnProtocol equals false.\n         */\n        alpnProtocol: string | false | null;\n        /**\n         * Returns an object representing the local certificate. The returned object has\n         * some properties corresponding to the fields of the certificate.\n         *\n         * See {@link TLSSocket.getPeerCertificate} for an example of the certificate\n         * structure.\n         *\n         * If there is no local certificate, an empty object will be returned. If the\n         * socket has been destroyed, `null` will be returned.\n         * @since v11.2.0\n         */\n        getCertificate(): PeerCertificate | object | null;\n        /**\n         * Returns an object containing information on the negotiated cipher suite.\n         *\n         * For example:\n         *\n         * ```json\n         * {\n         *     \"name\": \"AES128-SHA256\",\n         *     \"standardName\": \"TLS_RSA_WITH_AES_128_CBC_SHA256\",\n         *     \"version\": \"TLSv1.2\"\n         * }\n         * ```\n         *\n         * See [SSL\\_CIPHER\\_get\\_name](https://www.openssl.org/docs/man1.1.1/man3/SSL_CIPHER_get_name.html) for more information.\n         * @since v0.11.4\n         */\n        getCipher(): CipherNameAndProtocol;\n        /**\n         * Returns an object representing the type, name, and size of parameter of\n         * an ephemeral key exchange in `perfect forward secrecy` on a client\n         * connection. It returns an empty object when the key exchange is not\n         * ephemeral. As this is only supported on a client socket; `null` is returned\n         * if called on a server socket. The supported types are `'DH'` and `'ECDH'`. The`name` property is available only when type is `'ECDH'`.\n         *\n         * For example: `{ type: 'ECDH', name: 'prime256v1', size: 256 }`.\n         * @since v5.0.0\n         */\n        getEphemeralKeyInfo(): EphemeralKeyInfo | object | null;\n        /**\n         * As the `Finished` messages are message digests of the complete handshake\n         * (with a total of 192 bits for TLS 1.0 and more for SSL 3.0), they can\n         * be used for external authentication procedures when the authentication\n         * provided by SSL/TLS is not desired or is not enough.\n         *\n         * Corresponds to the `SSL_get_finished` routine in OpenSSL and may be used\n         * to implement the `tls-unique` channel binding from [RFC 5929](https://tools.ietf.org/html/rfc5929).\n         * @since v9.9.0\n         * @return The latest `Finished` message that has been sent to the socket as part of a SSL/TLS handshake, or `undefined` if no `Finished` message has been sent yet.\n         */\n        getFinished(): Buffer | undefined;\n        /**\n         * Returns an object representing the peer's certificate. If the peer does not\n         * provide a certificate, an empty object will be returned. If the socket has been\n         * destroyed, `null` will be returned.\n         *\n         * If the full certificate chain was requested, each certificate will include an`issuerCertificate` property containing an object representing its issuer's\n         * certificate.\n         * @since v0.11.4\n         * @param detailed Include the full certificate chain if `true`, otherwise include just the peer's certificate.\n         * @return A certificate object.\n         */\n        getPeerCertificate(detailed: true): DetailedPeerCertificate;\n        getPeerCertificate(detailed?: false): PeerCertificate;\n        getPeerCertificate(detailed?: boolean): PeerCertificate | DetailedPeerCertificate;\n        /**\n         * As the `Finished` messages are message digests of the complete handshake\n         * (with a total of 192 bits for TLS 1.0 and more for SSL 3.0), they can\n         * be used for external authentication procedures when the authentication\n         * provided by SSL/TLS is not desired or is not enough.\n         *\n         * Corresponds to the `SSL_get_peer_finished` routine in OpenSSL and may be used\n         * to implement the `tls-unique` channel binding from [RFC 5929](https://tools.ietf.org/html/rfc5929).\n         * @since v9.9.0\n         * @return The latest `Finished` message that is expected or has actually been received from the socket as part of a SSL/TLS handshake, or `undefined` if there is no `Finished` message so\n         * far.\n         */\n        getPeerFinished(): Buffer | undefined;\n        /**\n         * Returns a string containing the negotiated SSL/TLS protocol version of the\n         * current connection. The value `'unknown'` will be returned for connected\n         * sockets that have not completed the handshaking process. The value `null` will\n         * be returned for server sockets or disconnected client sockets.\n         *\n         * Protocol versions are:\n         *\n         * * `'SSLv3'`\n         * * `'TLSv1'`\n         * * `'TLSv1.1'`\n         * * `'TLSv1.2'`\n         * * `'TLSv1.3'`\n         *\n         * See the OpenSSL [`SSL_get_version`](https://www.openssl.org/docs/man1.1.1/man3/SSL_get_version.html) documentation for more information.\n         * @since v5.7.0\n         */\n        getProtocol(): string | null;\n        /**\n         * Returns the TLS session data or `undefined` if no session was\n         * negotiated. On the client, the data can be provided to the `session` option of {@link connect} to resume the connection. On the server, it may be useful\n         * for debugging.\n         *\n         * See `Session Resumption` for more information.\n         *\n         * Note: `getSession()` works only for TLSv1.2 and below. For TLSv1.3, applications\n         * must use the `'session'` event (it also works for TLSv1.2 and below).\n         * @since v0.11.4\n         */\n        getSession(): Buffer | undefined;\n        /**\n         * See [SSL\\_get\\_shared\\_sigalgs](https://www.openssl.org/docs/man1.1.1/man3/SSL_get_shared_sigalgs.html) for more information.\n         * @since v12.11.0\n         * @return List of signature algorithms shared between the server and the client in the order of decreasing preference.\n         */\n        getSharedSigalgs(): string[];\n        /**\n         * For a client, returns the TLS session ticket if one is available, or`undefined`. For a server, always returns `undefined`.\n         *\n         * It may be useful for debugging.\n         *\n         * See `Session Resumption` for more information.\n         * @since v0.11.4\n         */\n        getTLSTicket(): Buffer | undefined;\n        /**\n         * See `Session Resumption` for more information.\n         * @since v0.5.6\n         * @return `true` if the session was reused, `false` otherwise.\n         */\n        isSessionReused(): boolean;\n        /**\n         * The `tlsSocket.renegotiate()` method initiates a TLS renegotiation process.\n         * Upon completion, the `callback` function will be passed a single argument\n         * that is either an `Error` (if the request failed) or `null`.\n         *\n         * This method can be used to request a peer's certificate after the secure\n         * connection has been established.\n         *\n         * When running as the server, the socket will be destroyed with an error after`handshakeTimeout` timeout.\n         *\n         * For TLSv1.3, renegotiation cannot be initiated, it is not supported by the\n         * protocol.\n         * @since v0.11.8\n         * @param callback If `renegotiate()` returned `true`, callback is attached once to the `'secure'` event. If `renegotiate()` returned `false`, `callback` will be called in the next tick with\n         * an error, unless the `tlsSocket` has been destroyed, in which case `callback` will not be called at all.\n         * @return `true` if renegotiation was initiated, `false` otherwise.\n         */\n        renegotiate(\n            options: {\n                rejectUnauthorized?: boolean | undefined;\n                requestCert?: boolean | undefined;\n            },\n            callback: (err: Error | null) => void\n        ): undefined | boolean;\n        /**\n         * The `tlsSocket.setMaxSendFragment()` method sets the maximum TLS fragment size.\n         * Returns `true` if setting the limit succeeded; `false` otherwise.\n         *\n         * Smaller fragment sizes decrease the buffering latency on the client: larger\n         * fragments are buffered by the TLS layer until the entire fragment is received\n         * and its integrity is verified; large fragments can span multiple roundtrips\n         * and their processing can be delayed due to packet loss or reordering. However,\n         * smaller fragments add extra TLS framing bytes and CPU overhead, which may\n         * decrease overall server throughput.\n         * @since v0.11.11\n         * @param [size=16384] The maximum TLS fragment size. The maximum value is `16384`.\n         */\n        setMaxSendFragment(size: number): boolean;\n        /**\n         * Disables TLS renegotiation for this `TLSSocket` instance. Once called, attempts\n         * to renegotiate will trigger an `'error'` event on the `TLSSocket`.\n         * @since v8.4.0\n         */\n        disableRenegotiation(): void;\n        /**\n         * When enabled, TLS packet trace information is written to `stderr`. This can be\n         * used to debug TLS connection problems.\n         *\n         * Note: The format of the output is identical to the output of `openssl s_client -trace` or `openssl s_server -trace`. While it is produced by OpenSSL's`SSL_trace()` function, the format is\n         * undocumented, can change without notice,\n         * and should not be relied on.\n         * @since v12.2.0\n         */\n        enableTrace(): void;\n        /**\n         * Returns the peer certificate as an `X509Certificate` object.\n         *\n         * If there is no peer certificate, or the socket has been destroyed,`undefined` will be returned.\n         * @since v15.9.0\n         */\n        getPeerX509Certificate(): X509Certificate | undefined;\n        /**\n         * Returns the local certificate as an `X509Certificate` object.\n         *\n         * If there is no local certificate, or the socket has been destroyed,`undefined` will be returned.\n         * @since v15.9.0\n         */\n        getX509Certificate(): X509Certificate | undefined;\n        /**\n         * Keying material is used for validations to prevent different kind of attacks in\n         * network protocols, for example in the specifications of IEEE 802.1X.\n         *\n         * Example\n         *\n         * ```js\n         * const keyingMaterial = tlsSocket.exportKeyingMaterial(\n         *   128,\n         *   'client finished');\n         *\n         *\n         *  Example return value of keyingMaterial:\n         *  <Buffer 76 26 af 99 c5 56 8e 42 09 91 ef 9f 93 cb ad 6c 7b 65 f8 53 f1 d8 d9\n         *     12 5a 33 b8 b5 25 df 7b 37 9f e0 e2 4f b8 67 83 a3 2f cd 5d 41 42 4c 91\n         *     74 ef 2c ... 78 more bytes>\n         *\n         * ```\n         *\n         * See the OpenSSL [`SSL_export_keying_material`](https://www.openssl.org/docs/man1.1.1/man3/SSL_export_keying_material.html) documentation for more\n         * information.\n         * @since v13.10.0, v12.17.0\n         * @param length number of bytes to retrieve from keying material\n         * @param label an application specific label, typically this will be a value from the [IANA Exporter Label\n         * Registry](https://www.iana.org/assignments/tls-parameters/tls-parameters.xhtml#exporter-labels).\n         * @param context Optionally provide a context.\n         * @return requested bytes of the keying material\n         */\n        exportKeyingMaterial(length: number, label: string, context: Buffer): Buffer;\n        addListener(event: string, listener: (...args: any[]) => void): this;\n        addListener(event: 'OCSPResponse', listener: (response: Buffer) => void): this;\n        addListener(event: 'secureConnect', listener: () => void): this;\n        addListener(event: 'session', listener: (session: Buffer) => void): this;\n        addListener(event: 'keylog', listener: (line: Buffer) => void): this;\n        emit(event: string | symbol, ...args: any[]): boolean;\n        emit(event: 'OCSPResponse', response: Buffer): boolean;\n        emit(event: 'secureConnect'): boolean;\n        emit(event: 'session', session: Buffer): boolean;\n        emit(event: 'keylog', line: Buffer): boolean;\n        on(event: string, listener: (...args: any[]) => void): this;\n        on(event: 'OCSPResponse', listener: (response: Buffer) => void): this;\n        on(event: 'secureConnect', listener: () => void): this;\n        on(event: 'session', listener: (session: Buffer) => void): this;\n        on(event: 'keylog', listener: (line: Buffer) => void): this;\n        once(event: string, listener: (...args: any[]) => void): this;\n        once(event: 'OCSPResponse', listener: (response: Buffer) => void): this;\n        once(event: 'secureConnect', listener: () => void): this;\n        once(event: 'session', listener: (session: Buffer) => void): this;\n        once(event: 'keylog', listener: (line: Buffer) => void): this;\n        prependListener(event: string, listener: (...args: any[]) => void): this;\n        prependListener(event: 'OCSPResponse', listener: (response: Buffer) => void): this;\n        prependListener(event: 'secureConnect', listener: () => void): this;\n        prependListener(event: 'session', listener: (session: Buffer) => void): this;\n        prependListener(event: 'keylog', listener: (line: Buffer) => void): this;\n        prependOnceListener(event: string, listener: (...args: any[]) => void): this;\n        prependOnceListener(event: 'OCSPResponse', listener: (response: Buffer) => void): this;\n        prependOnceListener(event: 'secureConnect', listener: () => void): this;\n        prependOnceListener(event: 'session', listener: (session: Buffer) => void): this;\n        prependOnceListener(event: 'keylog', listener: (line: Buffer) => void): this;\n    }\n    interface CommonConnectionOptions {\n        /**\n         * An optional TLS context object from tls.createSecureContext()\n         */\n        secureContext?: SecureContext | undefined;\n        /**\n         * When enabled, TLS packet trace information is written to `stderr`. This can be\n         * used to debug TLS connection problems.\n         * @default false\n         */\n        enableTrace?: boolean | undefined;\n        /**\n         * If true the server will request a certificate from clients that\n         * connect and attempt to verify that certificate. Defaults to\n         * false.\n         */\n        requestCert?: boolean | undefined;\n        /**\n         * An array of strings or a Buffer naming possible ALPN protocols.\n         * (Protocols should be ordered by their priority.)\n         */\n        ALPNProtocols?: string[] | Uint8Array[] | Uint8Array | undefined;\n        /**\n         * SNICallback(servername, cb) <Function> A function that will be\n         * called if the client supports SNI TLS extension. Two arguments\n         * will be passed when called: servername and cb. SNICallback should\n         * invoke cb(null, ctx), where ctx is a SecureContext instance.\n         * (tls.createSecureContext(...) can be used to get a proper\n         * SecureContext.) If SNICallback wasn't provided the default callback\n         * with high-level API will be used (see below).\n         */\n        SNICallback?: ((servername: string, cb: (err: Error | null, ctx?: SecureContext) => void) => void) | undefined;\n        /**\n         * If true the server will reject any connection which is not\n         * authorized with the list of supplied CAs. This option only has an\n         * effect if requestCert is true.\n         * @default true\n         */\n        rejectUnauthorized?: boolean | undefined;\n    }\n    interface TlsOptions extends SecureContextOptions, CommonConnectionOptions, net.ServerOpts {\n        /**\n         * Abort the connection if the SSL/TLS handshake does not finish in the\n         * specified number of milliseconds. A 'tlsClientError' is emitted on\n         * the tls.Server object whenever a handshake times out. Default:\n         * 120000 (120 seconds).\n         */\n        handshakeTimeout?: number | undefined;\n        /**\n         * The number of seconds after which a TLS session created by the\n         * server will no longer be resumable. See Session Resumption for more\n         * information. Default: 300.\n         */\n        sessionTimeout?: number | undefined;\n        /**\n         * 48-bytes of cryptographically strong pseudo-random data.\n         */\n        ticketKeys?: Buffer | undefined;\n        /**\n         *\n         * @param socket\n         * @param identity identity parameter sent from the client.\n         * @return pre-shared key that must either be\n         * a buffer or `null` to stop the negotiation process. Returned PSK must be\n         * compatible with the selected cipher's digest.\n         *\n         * When negotiating TLS-PSK (pre-shared keys), this function is called\n         * with the identity provided by the client.\n         * If the return value is `null` the negotiation process will stop and an\n         * \"unknown_psk_identity\" alert message will be sent to the other party.\n         * If the server wishes to hide the fact that the PSK identity was not known,\n         * the callback must provide some random data as `psk` to make the connection\n         * fail with \"decrypt_error\" before negotiation is finished.\n         * PSK ciphers are disabled by default, and using TLS-PSK thus\n         * requires explicitly specifying a cipher suite with the `ciphers` option.\n         * More information can be found in the RFC 4279.\n         */\n        pskCallback?(socket: TLSSocket, identity: string): DataView | NodeJS.TypedArray | null;\n        /**\n         * hint to send to a client to help\n         * with selecting the identity during TLS-PSK negotiation. Will be ignored\n         * in TLS 1.3. Upon failing to set pskIdentityHint `tlsClientError` will be\n         * emitted with `ERR_TLS_PSK_SET_IDENTIY_HINT_FAILED` code.\n         */\n        pskIdentityHint?: string | undefined;\n    }\n    interface PSKCallbackNegotation {\n        psk: DataView | NodeJS.TypedArray;\n        identity: string;\n    }\n    interface ConnectionOptions extends SecureContextOptions, CommonConnectionOptions {\n        host?: string | undefined;\n        port?: number | undefined;\n        path?: string | undefined; // Creates unix socket connection to path. If this option is specified, `host` and `port` are ignored.\n        socket?: net.Socket | undefined; // Establish secure connection on a given socket rather than creating a new socket\n        checkServerIdentity?: typeof checkServerIdentity | undefined;\n        servername?: string | undefined; // SNI TLS Extension\n        session?: Buffer | undefined;\n        minDHSize?: number | undefined;\n        lookup?: net.LookupFunction | undefined;\n        timeout?: number | undefined;\n        /**\n         * When negotiating TLS-PSK (pre-shared keys), this function is called\n         * with optional identity `hint` provided by the server or `null`\n         * in case of TLS 1.3 where `hint` was removed.\n         * It will be necessary to provide a custom `tls.checkServerIdentity()`\n         * for the connection as the default one will try to check hostname/IP\n         * of the server against the certificate but that's not applicable for PSK\n         * because there won't be a certificate present.\n         * More information can be found in the RFC 4279.\n         *\n         * @param hint message sent from the server to help client\n         * decide which identity to use during negotiation.\n         * Always `null` if TLS 1.3 is used.\n         * @returns Return `null` to stop the negotiation process. `psk` must be\n         * compatible with the selected cipher's digest.\n         * `identity` must use UTF-8 encoding.\n         */\n        pskCallback?(hint: string | null): PSKCallbackNegotation | null;\n    }\n    /**\n     * Accepts encrypted connections using TLS or SSL.\n     * @since v0.3.2\n     */\n    class Server extends net.Server {\n        constructor(secureConnectionListener?: (socket: TLSSocket) => void);\n        constructor(options: TlsOptions, secureConnectionListener?: (socket: TLSSocket) => void);\n        /**\n         * The `server.addContext()` method adds a secure context that will be used if\n         * the client request's SNI name matches the supplied `hostname` (or wildcard).\n         *\n         * When there are multiple matching contexts, the most recently added one is\n         * used.\n         * @since v0.5.3\n         * @param hostname A SNI host name or wildcard (e.g. `'*'`)\n         * @param context An object containing any of the possible properties from the {@link createSecureContext} `options` arguments (e.g. `key`, `cert`, `ca`, etc).\n         */\n        addContext(hostname: string, context: SecureContextOptions): void;\n        /**\n         * Returns the session ticket keys.\n         *\n         * See `Session Resumption` for more information.\n         * @since v3.0.0\n         * @return A 48-byte buffer containing the session ticket keys.\n         */\n        getTicketKeys(): Buffer;\n        /**\n         * The `server.setSecureContext()` method replaces the secure context of an\n         * existing server. Existing connections to the server are not interrupted.\n         * @since v11.0.0\n         * @param options An object containing any of the possible properties from the {@link createSecureContext} `options` arguments (e.g. `key`, `cert`, `ca`, etc).\n         */\n        setSecureContext(options: SecureContextOptions): void;\n        /**\n         * Sets the session ticket keys.\n         *\n         * Changes to the ticket keys are effective only for future server connections.\n         * Existing or currently pending server connections will use the previous keys.\n         *\n         * See `Session Resumption` for more information.\n         * @since v3.0.0\n         * @param keys A 48-byte buffer containing the session ticket keys.\n         */\n        setTicketKeys(keys: Buffer): void;\n        /**\n         * events.EventEmitter\n         * 1. tlsClientError\n         * 2. newSession\n         * 3. OCSPRequest\n         * 4. resumeSession\n         * 5. secureConnection\n         * 6. keylog\n         */\n        addListener(event: string, listener: (...args: any[]) => void): this;\n        addListener(event: 'tlsClientError', listener: (err: Error, tlsSocket: TLSSocket) => void): this;\n        addListener(event: 'newSession', listener: (sessionId: Buffer, sessionData: Buffer, callback: () => void) => void): this;\n        addListener(event: 'OCSPRequest', listener: (certificate: Buffer, issuer: Buffer, callback: (err: Error | null, resp: Buffer) => void) => void): this;\n        addListener(event: 'resumeSession', listener: (sessionId: Buffer, callback: (err: Error | null, sessionData: Buffer | null) => void) => void): this;\n        addListener(event: 'secureConnection', listener: (tlsSocket: TLSSocket) => void): this;\n        addListener(event: 'keylog', listener: (line: Buffer, tlsSocket: TLSSocket) => void): this;\n        emit(event: string | symbol, ...args: any[]): boolean;\n        emit(event: 'tlsClientError', err: Error, tlsSocket: TLSSocket): boolean;\n        emit(event: 'newSession', sessionId: Buffer, sessionData: Buffer, callback: () => void): boolean;\n        emit(event: 'OCSPRequest', certificate: Buffer, issuer: Buffer, callback: (err: Error | null, resp: Buffer) => void): boolean;\n        emit(event: 'resumeSession', sessionId: Buffer, callback: (err: Error | null, sessionData: Buffer | null) => void): boolean;\n        emit(event: 'secureConnection', tlsSocket: TLSSocket): boolean;\n        emit(event: 'keylog', line: Buffer, tlsSocket: TLSSocket): boolean;\n        on(event: string, listener: (...args: any[]) => void): this;\n        on(event: 'tlsClientError', listener: (err: Error, tlsSocket: TLSSocket) => void): this;\n        on(event: 'newSession', listener: (sessionId: Buffer, sessionData: Buffer, callback: () => void) => void): this;\n        on(event: 'OCSPRequest', listener: (certificate: Buffer, issuer: Buffer, callback: (err: Error | null, resp: Buffer) => void) => void): this;\n        on(event: 'resumeSession', listener: (sessionId: Buffer, callback: (err: Error | null, sessionData: Buffer | null) => void) => void): this;\n        on(event: 'secureConnection', listener: (tlsSocket: TLSSocket) => void): this;\n        on(event: 'keylog', listener: (line: Buffer, tlsSocket: TLSSocket) => void): this;\n        once(event: string, listener: (...args: any[]) => void): this;\n        once(event: 'tlsClientError', listener: (err: Error, tlsSocket: TLSSocket) => void): this;\n        once(event: 'newSession', listener: (sessionId: Buffer, sessionData: Buffer, callback: () => void) => void): this;\n        once(event: 'OCSPRequest', listener: (certificate: Buffer, issuer: Buffer, callback: (err: Error | null, resp: Buffer) => void) => void): this;\n        once(event: 'resumeSession', listener: (sessionId: Buffer, callback: (err: Error | null, sessionData: Buffer | null) => void) => void): this;\n        once(event: 'secureConnection', listener: (tlsSocket: TLSSocket) => void): this;\n        once(event: 'keylog', listener: (line: Buffer, tlsSocket: TLSSocket) => void): this;\n        prependListener(event: string, listener: (...args: any[]) => void): this;\n        prependListener(event: 'tlsClientError', listener: (err: Error, tlsSocket: TLSSocket) => void): this;\n        prependListener(event: 'newSession', listener: (sessionId: Buffer, sessionData: Buffer, callback: () => void) => void): this;\n        prependListener(event: 'OCSPRequest', listener: (certificate: Buffer, issuer: Buffer, callback: (err: Error | null, resp: Buffer) => void) => void): this;\n        prependListener(event: 'resumeSession', listener: (sessionId: Buffer, callback: (err: Error | null, sessionData: Buffer | null) => void) => void): this;\n        prependListener(event: 'secureConnection', listener: (tlsSocket: TLSSocket) => void): this;\n        prependListener(event: 'keylog', listener: (line: Buffer, tlsSocket: TLSSocket) => void): this;\n        prependOnceListener(event: string, listener: (...args: any[]) => void): this;\n        prependOnceListener(event: 'tlsClientError', listener: (err: Error, tlsSocket: TLSSocket) => void): this;\n        prependOnceListener(event: 'newSession', listener: (sessionId: Buffer, sessionData: Buffer, callback: () => void) => void): this;\n        prependOnceListener(event: 'OCSPRequest', listener: (certificate: Buffer, issuer: Buffer, callback: (err: Error | null, resp: Buffer) => void) => void): this;\n        prependOnceListener(event: 'resumeSession', listener: (sessionId: Buffer, callback: (err: Error | null, sessionData: Buffer | null) => void) => void): this;\n        prependOnceListener(event: 'secureConnection', listener: (tlsSocket: TLSSocket) => void): this;\n        prependOnceListener(event: 'keylog', listener: (line: Buffer, tlsSocket: TLSSocket) => void): this;\n    }\n    /**\n     * @deprecated since v0.11.3 Use `tls.TLSSocket` instead.\n     */\n    interface SecurePair {\n        encrypted: TLSSocket;\n        cleartext: TLSSocket;\n    }\n    type SecureVersion = 'TLSv1.3' | 'TLSv1.2' | 'TLSv1.1' | 'TLSv1';\n    interface SecureContextOptions {\n        /**\n         * Optionally override the trusted CA certificates. Default is to trust\n         * the well-known CAs curated by Mozilla. Mozilla's CAs are completely\n         * replaced when CAs are explicitly specified using this option.\n         */\n        ca?: string | Buffer | Array<string | Buffer> | undefined;\n        /**\n         *  Cert chains in PEM format. One cert chain should be provided per\n         *  private key. Each cert chain should consist of the PEM formatted\n         *  certificate for a provided private key, followed by the PEM\n         *  formatted intermediate certificates (if any), in order, and not\n         *  including the root CA (the root CA must be pre-known to the peer,\n         *  see ca). When providing multiple cert chains, they do not have to\n         *  be in the same order as their private keys in key. If the\n         *  intermediate certificates are not provided, the peer will not be\n         *  able to validate the certificate, and the handshake will fail.\n         */\n        cert?: string | Buffer | Array<string | Buffer> | undefined;\n        /**\n         *  Colon-separated list of supported signature algorithms. The list\n         *  can contain digest algorithms (SHA256, MD5 etc.), public key\n         *  algorithms (RSA-PSS, ECDSA etc.), combination of both (e.g\n         *  'RSA+SHA384') or TLS v1.3 scheme names (e.g. rsa_pss_pss_sha512).\n         */\n        sigalgs?: string | undefined;\n        /**\n         * Cipher suite specification, replacing the default. For more\n         * information, see modifying the default cipher suite. Permitted\n         * ciphers can be obtained via tls.getCiphers(). Cipher names must be\n         * uppercased in order for OpenSSL to accept them.\n         */\n        ciphers?: string | undefined;\n        /**\n         * Name of an OpenSSL engine which can provide the client certificate.\n         */\n        clientCertEngine?: string | undefined;\n        /**\n         * PEM formatted CRLs (Certificate Revocation Lists).\n         */\n        crl?: string | Buffer | Array<string | Buffer> | undefined;\n        /**\n         * Diffie Hellman parameters, required for Perfect Forward Secrecy. Use\n         * openssl dhparam to create the parameters. The key length must be\n         * greater than or equal to 1024 bits or else an error will be thrown.\n         * Although 1024 bits is permissible, use 2048 bits or larger for\n         * stronger security. If omitted or invalid, the parameters are\n         * silently discarded and DHE ciphers will not be available.\n         */\n        dhparam?: string | Buffer | undefined;\n        /**\n         * A string describing a named curve or a colon separated list of curve\n         * NIDs or names, for example P-521:P-384:P-256, to use for ECDH key\n         * agreement. Set to auto to select the curve automatically. Use\n         * crypto.getCurves() to obtain a list of available curve names. On\n         * recent releases, openssl ecparam -list_curves will also display the\n         * name and description of each available elliptic curve. Default:\n         * tls.DEFAULT_ECDH_CURVE.\n         */\n        ecdhCurve?: string | undefined;\n        /**\n         * Attempt to use the server's cipher suite preferences instead of the\n         * client's. When true, causes SSL_OP_CIPHER_SERVER_PREFERENCE to be\n         * set in secureOptions\n         */\n        honorCipherOrder?: boolean | undefined;\n        /**\n         * Private keys in PEM format. PEM allows the option of private keys\n         * being encrypted. Encrypted keys will be decrypted with\n         * options.passphrase. Multiple keys using different algorithms can be\n         * provided either as an array of unencrypted key strings or buffers,\n         * or an array of objects in the form {pem: <string|buffer>[,\n         * passphrase: <string>]}. The object form can only occur in an array.\n         * object.passphrase is optional. Encrypted keys will be decrypted with\n         * object.passphrase if provided, or options.passphrase if it is not.\n         */\n        key?: string | Buffer | Array<Buffer | KeyObject> | undefined;\n        /**\n         * Name of an OpenSSL engine to get private key from. Should be used\n         * together with privateKeyIdentifier.\n         */\n        privateKeyEngine?: string | undefined;\n        /**\n         * Identifier of a private key managed by an OpenSSL engine. Should be\n         * used together with privateKeyEngine. Should not be set together with\n         * key, because both options define a private key in different ways.\n         */\n        privateKeyIdentifier?: string | undefined;\n        /**\n         * Optionally set the maximum TLS version to allow. One\n         * of `'TLSv1.3'`, `'TLSv1.2'`, `'TLSv1.1'`, or `'TLSv1'`. Cannot be specified along with the\n         * `secureProtocol` option, use one or the other.\n         * **Default:** `'TLSv1.3'`, unless changed using CLI options. Using\n         * `--tls-max-v1.2` sets the default to `'TLSv1.2'`. Using `--tls-max-v1.3` sets the default to\n         * `'TLSv1.3'`. If multiple of the options are provided, the highest maximum is used.\n         */\n        maxVersion?: SecureVersion | undefined;\n        /**\n         * Optionally set the minimum TLS version to allow. One\n         * of `'TLSv1.3'`, `'TLSv1.2'`, `'TLSv1.1'`, or `'TLSv1'`. Cannot be specified along with the\n         * `secureProtocol` option, use one or the other.  It is not recommended to use\n         * less than TLSv1.2, but it may be required for interoperability.\n         * **Default:** `'TLSv1.2'`, unless changed using CLI options. Using\n         * `--tls-v1.0` sets the default to `'TLSv1'`. Using `--tls-v1.1` sets the default to\n         * `'TLSv1.1'`. Using `--tls-min-v1.3` sets the default to\n         * 'TLSv1.3'. If multiple of the options are provided, the lowest minimum is used.\n         */\n        minVersion?: SecureVersion | undefined;\n        /**\n         * Shared passphrase used for a single private key and/or a PFX.\n         */\n        passphrase?: string | undefined;\n        /**\n         * PFX or PKCS12 encoded private key and certificate chain. pfx is an\n         * alternative to providing key and cert individually. PFX is usually\n         * encrypted, if it is, passphrase will be used to decrypt it. Multiple\n         * PFX can be provided either as an array of unencrypted PFX buffers,\n         * or an array of objects in the form {buf: <string|buffer>[,\n         * passphrase: <string>]}. The object form can only occur in an array.\n         * object.passphrase is optional. Encrypted PFX will be decrypted with\n         * object.passphrase if provided, or options.passphrase if it is not.\n         */\n        pfx?: string | Buffer | Array<string | Buffer | PxfObject> | undefined;\n        /**\n         * Optionally affect the OpenSSL protocol behavior, which is not\n         * usually necessary. This should be used carefully if at all! Value is\n         * a numeric bitmask of the SSL_OP_* options from OpenSSL Options\n         */\n        secureOptions?: number | undefined; // Value is a numeric bitmask of the `SSL_OP_*` options\n        /**\n         * Legacy mechanism to select the TLS protocol version to use, it does\n         * not support independent control of the minimum and maximum version,\n         * and does not support limiting the protocol to TLSv1.3. Use\n         * minVersion and maxVersion instead. The possible values are listed as\n         * SSL_METHODS, use the function names as strings. For example, use\n         * 'TLSv1_1_method' to force TLS version 1.1, or 'TLS_method' to allow\n         * any TLS protocol version up to TLSv1.3. It is not recommended to use\n         * TLS versions less than 1.2, but it may be required for\n         * interoperability. Default: none, see minVersion.\n         */\n        secureProtocol?: string | undefined;\n        /**\n         * Opaque identifier used by servers to ensure session state is not\n         * shared between applications. Unused by clients.\n         */\n        sessionIdContext?: string | undefined;\n        /**\n         * 48-bytes of cryptographically strong pseudo-random data.\n         * See Session Resumption for more information.\n         */\n        ticketKeys?: Buffer | undefined;\n        /**\n         * The number of seconds after which a TLS session created by the\n         * server will no longer be resumable. See Session Resumption for more\n         * information. Default: 300.\n         */\n        sessionTimeout?: number | undefined;\n    }\n    interface SecureContext {\n        context: any;\n    }\n    /**\n     * Verifies the certificate `cert` is issued to `hostname`.\n     *\n     * Returns [Error](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error) object, populating it with `reason`, `host`, and `cert` on\n     * failure. On success, returns [undefined](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Undefined_type).\n     *\n     * This function can be overwritten by providing alternative function as part of\n     * the `options.checkServerIdentity` option passed to `tls.connect()`. The\n     * overwriting function can call `tls.checkServerIdentity()` of course, to augment\n     * the checks done with additional verification.\n     *\n     * This function is only called if the certificate passed all other checks, such as\n     * being issued by trusted CA (`options.ca`).\n     * @since v0.8.4\n     * @param hostname The host name or IP address to verify the certificate against.\n     * @param cert A `certificate object` representing the peer's certificate.\n     */\n    function checkServerIdentity(hostname: string, cert: PeerCertificate): Error | undefined;\n    /**\n     * Creates a new {@link Server}. The `secureConnectionListener`, if provided, is\n     * automatically set as a listener for the `'secureConnection'` event.\n     *\n     * The `ticketKeys` options is automatically shared between `cluster` module\n     * workers.\n     *\n     * The following illustrates a simple echo server:\n     *\n     * ```js\n     * const tls = require('tls');\n     * const fs = require('fs');\n     *\n     * const options = {\n     *   key: fs.readFileSync('server-key.pem'),\n     *   cert: fs.readFileSync('server-cert.pem'),\n     *\n     *   // This is necessary only if using client certificate authentication.\n     *   requestCert: true,\n     *\n     *   // This is necessary only if the client uses a self-signed certificate.\n     *   ca: [ fs.readFileSync('client-cert.pem') ]\n     * };\n     *\n     * const server = tls.createServer(options, (socket) => {\n     *   console.log('server connected',\n     *               socket.authorized ? 'authorized' : 'unauthorized');\n     *   socket.write('welcome!\\n');\n     *   socket.setEncoding('utf8');\n     *   socket.pipe(socket);\n     * });\n     * server.listen(8000, () => {\n     *   console.log('server bound');\n     * });\n     * ```\n     *\n     * The server can be tested by connecting to it using the example client from {@link connect}.\n     * @since v0.3.2\n     */\n    function createServer(secureConnectionListener?: (socket: TLSSocket) => void): Server;\n    function createServer(options: TlsOptions, secureConnectionListener?: (socket: TLSSocket) => void): Server;\n    /**\n     * The `callback` function, if specified, will be added as a listener for the `'secureConnect'` event.\n     *\n     * `tls.connect()` returns a {@link TLSSocket} object.\n     *\n     * Unlike the `https` API, `tls.connect()` does not enable the\n     * SNI (Server Name Indication) extension by default, which may cause some\n     * servers to return an incorrect certificate or reject the connection\n     * altogether. To enable SNI, set the `servername` option in addition\n     * to `host`.\n     *\n     * The following illustrates a client for the echo server example from {@link createServer}:\n     *\n     * ```js\n     * // Assumes an echo server that is listening on port 8000.\n     * const tls = require('tls');\n     * const fs = require('fs');\n     *\n     * const options = {\n     *   // Necessary only if the server requires client certificate authentication.\n     *   key: fs.readFileSync('client-key.pem'),\n     *   cert: fs.readFileSync('client-cert.pem'),\n     *\n     *   // Necessary only if the server uses a self-signed certificate.\n     *   ca: [ fs.readFileSync('server-cert.pem') ],\n     *\n     *   // Necessary only if the server's cert isn't for \"localhost\".\n     *   checkServerIdentity: () => { return null; },\n     * };\n     *\n     * const socket = tls.connect(8000, options, () => {\n     *   console.log('client connected',\n     *               socket.authorized ? 'authorized' : 'unauthorized');\n     *   process.stdin.pipe(socket);\n     *   process.stdin.resume();\n     * });\n     * socket.setEncoding('utf8');\n     * socket.on('data', (data) => {\n     *   console.log(data);\n     * });\n     * socket.on('end', () => {\n     *   console.log('server ends connection');\n     * });\n     * ```\n     * @since v0.11.3\n     */\n    function connect(options: ConnectionOptions, secureConnectListener?: () => void): TLSSocket;\n    function connect(port: number, host?: string, options?: ConnectionOptions, secureConnectListener?: () => void): TLSSocket;\n    function connect(port: number, options?: ConnectionOptions, secureConnectListener?: () => void): TLSSocket;\n    /**\n     * Creates a new secure pair object with two streams, one of which reads and writes\n     * the encrypted data and the other of which reads and writes the cleartext data.\n     * Generally, the encrypted stream is piped to/from an incoming encrypted data\n     * stream and the cleartext one is used as a replacement for the initial encrypted\n     * stream.\n     *\n     * `tls.createSecurePair()` returns a `tls.SecurePair` object with `cleartext` and`encrypted` stream properties.\n     *\n     * Using `cleartext` has the same API as {@link TLSSocket}.\n     *\n     * The `tls.createSecurePair()` method is now deprecated in favor of`tls.TLSSocket()`. For example, the code:\n     *\n     * ```js\n     * pair = tls.createSecurePair(// ... );\n     * pair.encrypted.pipe(socket);\n     * socket.pipe(pair.encrypted);\n     * ```\n     *\n     * can be replaced by:\n     *\n     * ```js\n     * secureSocket = tls.TLSSocket(socket, options);\n     * ```\n     *\n     * where `secureSocket` has the same API as `pair.cleartext`.\n     * @since v0.3.2\n     * @deprecated Since v0.11.3 - Use {@link TLSSocket} instead.\n     * @param context A secure context object as returned by `tls.createSecureContext()`\n     * @param isServer `true` to specify that this TLS connection should be opened as a server.\n     * @param requestCert `true` to specify whether a server should request a certificate from a connecting client. Only applies when `isServer` is `true`.\n     * @param rejectUnauthorized If not `false` a server automatically reject clients with invalid certificates. Only applies when `isServer` is `true`.\n     */\n    function createSecurePair(context?: SecureContext, isServer?: boolean, requestCert?: boolean, rejectUnauthorized?: boolean): SecurePair;\n    /**\n     * {@link createServer} sets the default value of the `honorCipherOrder` option\n     * to `true`, other APIs that create secure contexts leave it unset.\n     *\n     * {@link createServer} uses a 128 bit truncated SHA1 hash value generated\n     * from `process.argv` as the default value of the `sessionIdContext` option, other\n     * APIs that create secure contexts have no default value.\n     *\n     * The `tls.createSecureContext()` method creates a `SecureContext` object. It is\n     * usable as an argument to several `tls` APIs, such as {@link createServer} and `server.addContext()`, but has no public methods.\n     *\n     * A key is _required_ for ciphers that use certificates. Either `key` or`pfx` can be used to provide it.\n     *\n     * If the `ca` option is not given, then Node.js will default to using [Mozilla's publicly trusted list of\n     * CAs](https://hg.mozilla.org/mozilla-central/raw-file/tip/security/nss/lib/ckfw/builtins/certdata.txt).\n     * @since v0.11.13\n     */\n    function createSecureContext(options?: SecureContextOptions): SecureContext;\n    /**\n     * Returns an array with the names of the supported TLS ciphers. The names are\n     * lower-case for historical reasons, but must be uppercased to be used in\n     * the `ciphers` option of {@link createSecureContext}.\n     *\n     * Cipher names that start with `'tls_'` are for TLSv1.3, all the others are for\n     * TLSv1.2 and below.\n     *\n     * ```js\n     * console.log(tls.getCiphers()); // ['aes128-gcm-sha256', 'aes128-sha', ...]\n     * ```\n     * @since v0.10.2\n     */\n    function getCiphers(): string[];\n    /**\n     * The default curve name to use for ECDH key agreement in a tls server.\n     * The default value is 'auto'. See tls.createSecureContext() for further\n     * information.\n     */\n    let DEFAULT_ECDH_CURVE: string;\n    /**\n     * The default value of the maxVersion option of\n     * tls.createSecureContext(). It can be assigned any of the supported TLS\n     * protocol versions, 'TLSv1.3', 'TLSv1.2', 'TLSv1.1', or 'TLSv1'. Default:\n     * 'TLSv1.3', unless changed using CLI options. Using --tls-max-v1.2 sets\n     * the default to 'TLSv1.2'. Using --tls-max-v1.3 sets the default to\n     * 'TLSv1.3'. If multiple of the options are provided, the highest maximum\n     * is used.\n     */\n    let DEFAULT_MAX_VERSION: SecureVersion;\n    /**\n     * The default value of the minVersion option of tls.createSecureContext().\n     * It can be assigned any of the supported TLS protocol versions,\n     * 'TLSv1.3', 'TLSv1.2', 'TLSv1.1', or 'TLSv1'. Default: 'TLSv1.2', unless\n     * changed using CLI options. Using --tls-min-v1.0 sets the default to\n     * 'TLSv1'. Using --tls-min-v1.1 sets the default to 'TLSv1.1'. Using\n     * --tls-min-v1.3 sets the default to 'TLSv1.3'. If multiple of the options\n     * are provided, the lowest minimum is used.\n     */\n    let DEFAULT_MIN_VERSION: SecureVersion;\n    /**\n     * An immutable array of strings representing the root certificates (in PEM\n     * format) used for verifying peer certificates. This is the default value\n     * of the ca option to tls.createSecureContext().\n     */\n    const rootCertificates: ReadonlyArray<string>;\n}\ndeclare module 'node:tls' {\n    export * from 'tls';\n}\n"
    },
    {
      "path": "/node_modules/@types/node/trace_events.d.ts",
      "content": "/**\n * The `trace_events` module provides a mechanism to centralize tracing information\n * generated by V8, Node.js core, and userspace code.\n *\n * Tracing can be enabled with the `--trace-event-categories` command-line flag\n * or by using the `trace_events` module. The `--trace-event-categories` flag\n * accepts a list of comma-separated category names.\n *\n * The available categories are:\n *\n * * `node`: An empty placeholder.\n * * `node.async_hooks`: Enables capture of detailed `async_hooks` trace data.\n * The `async_hooks` events have a unique `asyncId` and a special `triggerId` `triggerAsyncId` property.\n * * `node.bootstrap`: Enables capture of Node.js bootstrap milestones.\n * * `node.console`: Enables capture of `console.time()` and `console.count()`output.\n * * `node.dns.native`: Enables capture of trace data for DNS queries.\n * * `node.environment`: Enables capture of Node.js Environment milestones.\n * * `node.fs.sync`: Enables capture of trace data for file system sync methods.\n * * `node.perf`: Enables capture of `Performance API` measurements.\n *    * `node.perf.usertiming`: Enables capture of only Performance API User Timing\n *    measures and marks.\n *    * `node.perf.timerify`: Enables capture of only Performance API timerify\n *    measurements.\n * * `node.promises.rejections`: Enables capture of trace data tracking the number\n * of unhandled Promise rejections and handled-after-rejections.\n * * `node.vm.script`: Enables capture of trace data for the `vm` module's`runInNewContext()`, `runInContext()`, and `runInThisContext()` methods.\n * * `v8`: The `V8` events are GC, compiling, and execution related.\n *\n * By default the `node`, `node.async_hooks`, and `v8` categories are enabled.\n *\n * ```bash\n * node --trace-event-categories v8,node,node.async_hooks server.js\n * ```\n *\n * Prior versions of Node.js required the use of the `--trace-events-enabled`flag to enable trace events. This requirement has been removed. However, the`--trace-events-enabled` flag _may_ still be\n * used and will enable the`node`, `node.async_hooks`, and `v8` trace event categories by default.\n *\n * ```bash\n * node --trace-events-enabled\n *\n * # is equivalent to\n *\n * node --trace-event-categories v8,node,node.async_hooks\n * ```\n *\n * Alternatively, trace events may be enabled using the `trace_events` module:\n *\n * ```js\n * const trace_events = require('trace_events');\n * const tracing = trace_events.createTracing({ categories: ['node.perf'] });\n * tracing.enable();  // Enable trace event capture for the 'node.perf' category\n *\n * // do work\n *\n * tracing.disable();  // Disable trace event capture for the 'node.perf' category\n * ```\n *\n * Running Node.js with tracing enabled will produce log files that can be opened\n * in the [`chrome://tracing`](https://www.chromium.org/developers/how-tos/trace-event-profiling-tool) tab of Chrome.\n *\n * The logging file is by default called `node_trace.${rotation}.log`, where`${rotation}` is an incrementing log-rotation id. The filepath pattern can\n * be specified with `--trace-event-file-pattern` that accepts a template\n * string that supports `${rotation}` and `${pid}`:\n *\n * ```bash\n * node --trace-event-categories v8 --trace-event-file-pattern '${pid}-${rotation}.log' server.js\n * ```\n *\n * The tracing system uses the same time source\n * as the one used by `process.hrtime()`.\n * However the trace-event timestamps are expressed in microseconds,\n * unlike `process.hrtime()` which returns nanoseconds.\n *\n * The features from this module are not available in `Worker` threads.\n * @experimental\n * @see [source](https://github.com/nodejs/node/blob/v16.9.0/lib/trace_events.js)\n */\ndeclare module 'trace_events' {\n    /**\n     * The `Tracing` object is used to enable or disable tracing for sets of\n     * categories. Instances are created using the\n     * `trace_events.createTracing()` method.\n     *\n     * When created, the `Tracing` object is disabled. Calling the\n     * `tracing.enable()` method adds the categories to the set of enabled trace\n     * event categories. Calling `tracing.disable()` will remove the categories\n     * from the set of enabled trace event categories.\n     */\n    interface Tracing {\n        /**\n         * A comma-separated list of the trace event categories covered by this\n         * `Tracing` object.\n         */\n        readonly categories: string;\n        /**\n         * Disables this `Tracing` object.\n         *\n         * Only trace event categories _not_ covered by other enabled `Tracing`\n         * objects and _not_ specified by the `--trace-event-categories` flag\n         * will be disabled.\n         */\n        disable(): void;\n        /**\n         * Enables this `Tracing` object for the set of categories covered by\n         * the `Tracing` object.\n         */\n        enable(): void;\n        /**\n         * `true` only if the `Tracing` object has been enabled.\n         */\n        readonly enabled: boolean;\n    }\n    interface CreateTracingOptions {\n        /**\n         * An array of trace category names. Values included in the array are\n         * coerced to a string when possible. An error will be thrown if the\n         * value cannot be coerced.\n         */\n        categories: string[];\n    }\n    /**\n     * Creates and returns a `Tracing` object for the given set of `categories`.\n     *\n     * ```js\n     * const trace_events = require('trace_events');\n     * const categories = ['node.perf', 'node.async_hooks'];\n     * const tracing = trace_events.createTracing({ categories });\n     * tracing.enable();\n     * // do stuff\n     * tracing.disable();\n     * ```\n     * @since v10.0.0\n     * @return .\n     */\n    function createTracing(options: CreateTracingOptions): Tracing;\n    /**\n     * Returns a comma-separated list of all currently-enabled trace event\n     * categories. The current set of enabled trace event categories is determined\n     * by the _union_ of all currently-enabled `Tracing` objects and any categories\n     * enabled using the `--trace-event-categories` flag.\n     *\n     * Given the file `test.js` below, the command`node --trace-event-categories node.perf test.js` will print`'node.async_hooks,node.perf'` to the console.\n     *\n     * ```js\n     * const trace_events = require('trace_events');\n     * const t1 = trace_events.createTracing({ categories: ['node.async_hooks'] });\n     * const t2 = trace_events.createTracing({ categories: ['node.perf'] });\n     * const t3 = trace_events.createTracing({ categories: ['v8'] });\n     *\n     * t1.enable();\n     * t2.enable();\n     *\n     * console.log(trace_events.getEnabledCategories());\n     * ```\n     * @since v10.0.0\n     */\n    function getEnabledCategories(): string | undefined;\n}\ndeclare module 'node:trace_events' {\n    export * from 'trace_events';\n}\n"
    },
    {
      "path": "/node_modules/@types/node/tty.d.ts",
      "content": "/**\n * The `tty` module provides the `tty.ReadStream` and `tty.WriteStream` classes.\n * In most cases, it will not be necessary or possible to use this module directly.\n * However, it can be accessed using:\n *\n * ```js\n * const tty = require('tty');\n * ```\n *\n * When Node.js detects that it is being run with a text terminal (\"TTY\")\n * attached, `process.stdin` will, by default, be initialized as an instance of`tty.ReadStream` and both `process.stdout` and `process.stderr` will, by\n * default, be instances of `tty.WriteStream`. The preferred method of determining\n * whether Node.js is being run within a TTY context is to check that the value of\n * the `process.stdout.isTTY` property is `true`:\n *\n * ```console\n * $ node -p -e \"Boolean(process.stdout.isTTY)\"\n * true\n * $ node -p -e \"Boolean(process.stdout.isTTY)\" | cat\n * false\n * ```\n *\n * In most cases, there should be little to no reason for an application to\n * manually create instances of the `tty.ReadStream` and `tty.WriteStream`classes.\n * @see [source](https://github.com/nodejs/node/blob/v16.9.0/lib/tty.js)\n */\ndeclare module 'tty' {\n    import * as net from 'node:net';\n    /**\n     * The `tty.isatty()` method returns `true` if the given `fd` is associated with\n     * a TTY and `false` if it is not, including whenever `fd` is not a non-negative\n     * integer.\n     * @since v0.5.8\n     * @param fd A numeric file descriptor\n     */\n    function isatty(fd: number): boolean;\n    /**\n     * Represents the readable side of a TTY. In normal circumstances `process.stdin` will be the only `tty.ReadStream` instance in a Node.js\n     * process and there should be no reason to create additional instances.\n     * @since v0.5.8\n     */\n    class ReadStream extends net.Socket {\n        constructor(fd: number, options?: net.SocketConstructorOpts);\n        /**\n         * A `boolean` that is `true` if the TTY is currently configured to operate as a\n         * raw device. Defaults to `false`.\n         * @since v0.7.7\n         */\n        isRaw: boolean;\n        /**\n         * Allows configuration of `tty.ReadStream` so that it operates as a raw device.\n         *\n         * When in raw mode, input is always available character-by-character, not\n         * including modifiers. Additionally, all special processing of characters by the\n         * terminal is disabled, including echoing input characters.Ctrl+C will no longer cause a `SIGINT` when in this mode.\n         * @since v0.7.7\n         * @param mode If `true`, configures the `tty.ReadStream` to operate as a raw device. If `false`, configures the `tty.ReadStream` to operate in its default mode. The `readStream.isRaw`\n         * property will be set to the resulting mode.\n         * @return The read stream instance.\n         */\n        setRawMode(mode: boolean): this;\n        /**\n         * A `boolean` that is always `true` for `tty.ReadStream` instances.\n         * @since v0.5.8\n         */\n        isTTY: boolean;\n    }\n    /**\n     * -1 - to the left from cursor\n     *  0 - the entire line\n     *  1 - to the right from cursor\n     */\n    type Direction = -1 | 0 | 1;\n    /**\n     * Represents the writable side of a TTY. In normal circumstances,`process.stdout` and `process.stderr` will be the only`tty.WriteStream` instances created for a Node.js process and there\n     * should be no reason to create additional instances.\n     * @since v0.5.8\n     */\n    class WriteStream extends net.Socket {\n        constructor(fd: number);\n        addListener(event: string, listener: (...args: any[]) => void): this;\n        addListener(event: 'resize', listener: () => void): this;\n        emit(event: string | symbol, ...args: any[]): boolean;\n        emit(event: 'resize'): boolean;\n        on(event: string, listener: (...args: any[]) => void): this;\n        on(event: 'resize', listener: () => void): this;\n        once(event: string, listener: (...args: any[]) => void): this;\n        once(event: 'resize', listener: () => void): this;\n        prependListener(event: string, listener: (...args: any[]) => void): this;\n        prependListener(event: 'resize', listener: () => void): this;\n        prependOnceListener(event: string, listener: (...args: any[]) => void): this;\n        prependOnceListener(event: 'resize', listener: () => void): this;\n        /**\n         * `writeStream.clearLine()` clears the current line of this `WriteStream` in a\n         * direction identified by `dir`.\n         * @since v0.7.7\n         * @param callback Invoked once the operation completes.\n         * @return `false` if the stream wishes for the calling code to wait for the `'drain'` event to be emitted before continuing to write additional data; otherwise `true`.\n         */\n        clearLine(dir: Direction, callback?: () => void): boolean;\n        /**\n         * `writeStream.clearScreenDown()` clears this `WriteStream` from the current\n         * cursor down.\n         * @since v0.7.7\n         * @param callback Invoked once the operation completes.\n         * @return `false` if the stream wishes for the calling code to wait for the `'drain'` event to be emitted before continuing to write additional data; otherwise `true`.\n         */\n        clearScreenDown(callback?: () => void): boolean;\n        /**\n         * `writeStream.cursorTo()` moves this `WriteStream`'s cursor to the specified\n         * position.\n         * @since v0.7.7\n         * @param callback Invoked once the operation completes.\n         * @return `false` if the stream wishes for the calling code to wait for the `'drain'` event to be emitted before continuing to write additional data; otherwise `true`.\n         */\n        cursorTo(x: number, y?: number, callback?: () => void): boolean;\n        cursorTo(x: number, callback: () => void): boolean;\n        /**\n         * `writeStream.moveCursor()` moves this `WriteStream`'s cursor _relative_ to its\n         * current position.\n         * @since v0.7.7\n         * @param callback Invoked once the operation completes.\n         * @return `false` if the stream wishes for the calling code to wait for the `'drain'` event to be emitted before continuing to write additional data; otherwise `true`.\n         */\n        moveCursor(dx: number, dy: number, callback?: () => void): boolean;\n        /**\n         * Returns:\n         *\n         * * `1` for 2,\n         * * `4` for 16,\n         * * `8` for 256,\n         * * `24` for 16,777,216 colors supported.\n         *\n         * Use this to determine what colors the terminal supports. Due to the nature of\n         * colors in terminals it is possible to either have false positives or false\n         * negatives. It depends on process information and the environment variables that\n         * may lie about what terminal is used.\n         * It is possible to pass in an `env` object to simulate the usage of a specific\n         * terminal. This can be useful to check how specific environment settings behave.\n         *\n         * To enforce a specific color support, use one of the below environment settings.\n         *\n         * * 2 colors: `FORCE_COLOR = 0` (Disables colors)\n         * * 16 colors: `FORCE_COLOR = 1`\n         * * 256 colors: `FORCE_COLOR = 2`\n         * * 16,777,216 colors: `FORCE_COLOR = 3`\n         *\n         * Disabling color support is also possible by using the `NO_COLOR` and`NODE_DISABLE_COLORS` environment variables.\n         * @since v9.9.0\n         * @param [env=process.env] An object containing the environment variables to check. This enables simulating the usage of a specific terminal.\n         */\n        getColorDepth(env?: object): number;\n        /**\n         * Returns `true` if the `writeStream` supports at least as many colors as provided\n         * in `count`. Minimum support is 2 (black and white).\n         *\n         * This has the same false positives and negatives as described in `writeStream.getColorDepth()`.\n         *\n         * ```js\n         * process.stdout.hasColors();\n         * // Returns true or false depending on if `stdout` supports at least 16 colors.\n         * process.stdout.hasColors(256);\n         * // Returns true or false depending on if `stdout` supports at least 256 colors.\n         * process.stdout.hasColors({ TMUX: '1' });\n         * // Returns true.\n         * process.stdout.hasColors(2 ** 24, { TMUX: '1' });\n         * // Returns false (the environment setting pretends to support 2 ** 8 colors).\n         * ```\n         * @since v11.13.0, v10.16.0\n         * @param [count=16] The number of colors that are requested (minimum 2).\n         * @param [env=process.env] An object containing the environment variables to check. This enables simulating the usage of a specific terminal.\n         */\n        hasColors(count?: number): boolean;\n        hasColors(env?: object): boolean;\n        hasColors(count: number, env?: object): boolean;\n        /**\n         * `writeStream.getWindowSize()` returns the size of the TTY\n         * corresponding to this `WriteStream`. The array is of the type`[numColumns, numRows]` where `numColumns` and `numRows` represent the number\n         * of columns and rows in the corresponding TTY.\n         * @since v0.7.7\n         */\n        getWindowSize(): [number, number];\n        /**\n         * A `number` specifying the number of columns the TTY currently has. This property\n         * is updated whenever the `'resize'` event is emitted.\n         * @since v0.7.7\n         */\n        columns: number;\n        /**\n         * A `number` specifying the number of rows the TTY currently has. This property\n         * is updated whenever the `'resize'` event is emitted.\n         * @since v0.7.7\n         */\n        rows: number;\n        /**\n         * A `boolean` that is always `true`.\n         * @since v0.5.8\n         */\n        isTTY: boolean;\n    }\n}\ndeclare module 'node:tty' {\n    export * from 'tty';\n}\n"
    },
    {
      "path": "/node_modules/@types/node/url.d.ts",
      "content": "/**\n * The `url` module provides utilities for URL resolution and parsing. It can be\n * accessed using:\n *\n * ```js\n * import url from 'url';\n * ```\n * @see [source](https://github.com/nodejs/node/blob/v16.9.0/lib/url.js)\n */\ndeclare module 'url' {\n    import { Blob } from 'node:buffer';\n    import { ClientRequestArgs } from 'node:http';\n    import { ParsedUrlQuery, ParsedUrlQueryInput } from 'node:querystring';\n    // Input to `url.format`\n    interface UrlObject {\n        auth?: string | null | undefined;\n        hash?: string | null | undefined;\n        host?: string | null | undefined;\n        hostname?: string | null | undefined;\n        href?: string | null | undefined;\n        pathname?: string | null | undefined;\n        protocol?: string | null | undefined;\n        search?: string | null | undefined;\n        slashes?: boolean | null | undefined;\n        port?: string | number | null | undefined;\n        query?: string | null | ParsedUrlQueryInput | undefined;\n    }\n    // Output of `url.parse`\n    interface Url {\n        auth: string | null;\n        hash: string | null;\n        host: string | null;\n        hostname: string | null;\n        href: string;\n        path: string | null;\n        pathname: string | null;\n        protocol: string | null;\n        search: string | null;\n        slashes: boolean | null;\n        port: string | null;\n        query: string | null | ParsedUrlQuery;\n    }\n    interface UrlWithParsedQuery extends Url {\n        query: ParsedUrlQuery;\n    }\n    interface UrlWithStringQuery extends Url {\n        query: string | null;\n    }\n    /**\n     * The `url.parse()` method takes a URL string, parses it, and returns a URL\n     * object.\n     *\n     * A `TypeError` is thrown if `urlString` is not a string.\n     *\n     * A `URIError` is thrown if the `auth` property is present but cannot be decoded.\n     *\n     * Use of the legacy `url.parse()` method is discouraged. Users should\n     * use the WHATWG `URL` API. Because the `url.parse()` method uses a\n     * lenient, non-standard algorithm for parsing URL strings, security\n     * issues can be introduced. Specifically, issues with [host name spoofing](https://hackerone.com/reports/678487) and\n     * incorrect handling of usernames and passwords have been identified.\n     *\n     * Deprecation of this API has been shelved for now primarily due to the the\n     * inability of the [WHATWG API to parse relative URLs](https://github.com/nodejs/node/issues/12682#issuecomment-1154492373).\n     * [Discussions are ongoing](https://github.com/whatwg/url/issues/531) for the  best way to resolve this.\n     *\n     * @since v0.1.25\n     * @param urlString The URL string to parse.\n     * @param [parseQueryString=false] If `true`, the `query` property will always be set to an object returned by the {@link querystring} module's `parse()` method. If `false`, the `query` property\n     * on the returned URL object will be an unparsed, undecoded string.\n     * @param [slashesDenoteHost=false] If `true`, the first token after the literal string `//` and preceding the next `/` will be interpreted as the `host`. For instance, given `//foo/bar`, the\n     * result would be `{host: 'foo', pathname: '/bar'}` rather than `{pathname: '//foo/bar'}`.\n     */\n    function parse(urlString: string): UrlWithStringQuery;\n    function parse(urlString: string, parseQueryString: false | undefined, slashesDenoteHost?: boolean): UrlWithStringQuery;\n    function parse(urlString: string, parseQueryString: true, slashesDenoteHost?: boolean): UrlWithParsedQuery;\n    function parse(urlString: string, parseQueryString: boolean, slashesDenoteHost?: boolean): Url;\n    /**\n     * The URL object has both a `toString()` method and `href` property that return string serializations of the URL.\n     * These are not, however, customizable in any way. The `url.format(URL[, options])` method allows for basic\n     * customization of the output.\n     * Returns a customizable serialization of a URL `String` representation of a `WHATWG URL` object.\n     *\n     * ```js\n     * import url from 'url';\n     * const myURL = new URL('https://a:b@測試?abc#foo');\n     *\n     * console.log(myURL.href);\n     * // Prints https://a:b@xn--g6w251d/?abc#foo\n     *\n     * console.log(myURL.toString());\n     * // Prints https://a:b@xn--g6w251d/?abc#foo\n     *\n     * console.log(url.format(myURL, { fragment: false, unicode: true, auth: false }));\n     * // Prints 'https://測試/?abc'\n     * ```\n     * @since v7.6.0\n     * @param urlObject A `WHATWG URL` object\n     * @param options\n     */\n    function format(urlObject: URL, options?: URLFormatOptions): string;\n    /**\n     * The `url.format()` method returns a formatted URL string derived from`urlObject`.\n     *\n     * ```js\n     * const url = require('url');\n     * url.format({\n     *   protocol: 'https',\n     *   hostname: 'example.com',\n     *   pathname: '/some/path',\n     *   query: {\n     *     page: 1,\n     *     format: 'json'\n     *   }\n     * });\n     *\n     * // => 'https://example.com/some/path?page=1&#x26;format=json'\n     * ```\n     *\n     * If `urlObject` is not an object or a string, `url.format()` will throw a `TypeError`.\n     *\n     * The formatting process operates as follows:\n     *\n     * * A new empty string `result` is created.\n     * * If `urlObject.protocol` is a string, it is appended as-is to `result`.\n     * * Otherwise, if `urlObject.protocol` is not `undefined` and is not a string, an `Error` is thrown.\n     * * For all string values of `urlObject.protocol` that _do not end_ with an ASCII\n     * colon (`:`) character, the literal string `:` will be appended to `result`.\n     * * If either of the following conditions is true, then the literal string `//`will be appended to `result`:\n     *    * `urlObject.slashes` property is true;\n     *    * `urlObject.protocol` begins with `http`, `https`, `ftp`, `gopher`, or`file`;\n     * * If the value of the `urlObject.auth` property is truthy, and either`urlObject.host` or `urlObject.hostname` are not `undefined`, the value of`urlObject.auth` will be coerced into a string\n     * and appended to `result`followed by the literal string `@`.\n     * * If the `urlObject.host` property is `undefined` then:\n     *    * If the `urlObject.hostname` is a string, it is appended to `result`.\n     *    * Otherwise, if `urlObject.hostname` is not `undefined` and is not a string,\n     *    an `Error` is thrown.\n     *    * If the `urlObject.port` property value is truthy, and `urlObject.hostname`is not `undefined`:\n     *          * The literal string `:` is appended to `result`, and\n     *          * The value of `urlObject.port` is coerced to a string and appended to`result`.\n     * * Otherwise, if the `urlObject.host` property value is truthy, the value of`urlObject.host` is coerced to a string and appended to `result`.\n     * * If the `urlObject.pathname` property is a string that is not an empty string:\n     *    * If the `urlObject.pathname`_does not start_ with an ASCII forward slash\n     *    (`/`), then the literal string `'/'` is appended to `result`.\n     *    * The value of `urlObject.pathname` is appended to `result`.\n     * * Otherwise, if `urlObject.pathname` is not `undefined` and is not a string, an `Error` is thrown.\n     * * If the `urlObject.search` property is `undefined` and if the `urlObject.query`property is an `Object`, the literal string `?` is appended to `result`followed by the output of calling the\n     * `querystring` module's `stringify()`method passing the value of `urlObject.query`.\n     * * Otherwise, if `urlObject.search` is a string:\n     *    * If the value of `urlObject.search`_does not start_ with the ASCII question\n     *    mark (`?`) character, the literal string `?` is appended to `result`.\n     *    * The value of `urlObject.search` is appended to `result`.\n     * * Otherwise, if `urlObject.search` is not `undefined` and is not a string, an `Error` is thrown.\n     * * If the `urlObject.hash` property is a string:\n     *    * If the value of `urlObject.hash`_does not start_ with the ASCII hash (`#`)\n     *    character, the literal string `#` is appended to `result`.\n     *    * The value of `urlObject.hash` is appended to `result`.\n     * * Otherwise, if the `urlObject.hash` property is not `undefined` and is not a\n     * string, an `Error` is thrown.\n     * * `result` is returned.\n     * @since v0.1.25\n     * @deprecated Legacy: Use the WHATWG URL API instead.\n     * @param urlObject A URL object (as returned by `url.parse()` or constructed otherwise). If a string, it is converted to an object by passing it to `url.parse()`.\n     */\n    function format(urlObject: UrlObject | string): string;\n    /**\n     * The `url.resolve()` method resolves a target URL relative to a base URL in a\n     * manner similar to that of a Web browser resolving an anchor tag HREF.\n     *\n     * ```js\n     * const url = require('url');\n     * url.resolve('/one/two/three', 'four');         // '/one/two/four'\n     * url.resolve('http://example.com/', '/one');    // 'http://example.com/one'\n     * url.resolve('http://example.com/one', '/two'); // 'http://example.com/two'\n     * ```\n     *\n     * You can achieve the same result using the WHATWG URL API:\n     *\n     * ```js\n     * function resolve(from, to) {\n     *   const resolvedUrl = new URL(to, new URL(from, 'resolve://'));\n     *   if (resolvedUrl.protocol === 'resolve:') {\n     *     // `from` is a relative URL.\n     *     const { pathname, search, hash } = resolvedUrl;\n     *     return pathname + search + hash;\n     *   }\n     *   return resolvedUrl.toString();\n     * }\n     *\n     * resolve('/one/two/three', 'four');         // '/one/two/four'\n     * resolve('http://example.com/', '/one');    // 'http://example.com/one'\n     * resolve('http://example.com/one', '/two'); // 'http://example.com/two'\n     * ```\n     * @since v0.1.25\n     * @deprecated Legacy: Use the WHATWG URL API instead.\n     * @param from The Base URL being resolved against.\n     * @param to The HREF URL being resolved.\n     */\n    function resolve(from: string, to: string): string;\n    /**\n     * Returns the [Punycode](https://tools.ietf.org/html/rfc5891#section-4.4) ASCII serialization of the `domain`. If `domain` is an\n     * invalid domain, the empty string is returned.\n     *\n     * It performs the inverse operation to {@link domainToUnicode}.\n     *\n     * This feature is only available if the `node` executable was compiled with `ICU` enabled. If not, the domain names are passed through unchanged.\n     *\n     * ```js\n     * import url from 'url';\n     *\n     * console.log(url.domainToASCII('español.com'));\n     * // Prints xn--espaol-zwa.com\n     * console.log(url.domainToASCII('中文.com'));\n     * // Prints xn--fiq228c.com\n     * console.log(url.domainToASCII('xn--iñvalid.com'));\n     * // Prints an empty string\n     * ```\n     * @since v7.4.0, v6.13.0\n     */\n    function domainToASCII(domain: string): string;\n    /**\n     * Returns the Unicode serialization of the `domain`. If `domain` is an invalid\n     * domain, the empty string is returned.\n     *\n     * It performs the inverse operation to {@link domainToASCII}.\n     *\n     * This feature is only available if the `node` executable was compiled with `ICU` enabled. If not, the domain names are passed through unchanged.\n     *\n     * ```js\n     * import url from 'url';\n     *\n     * console.log(url.domainToUnicode('xn--espaol-zwa.com'));\n     * // Prints español.com\n     * console.log(url.domainToUnicode('xn--fiq228c.com'));\n     * // Prints 中文.com\n     * console.log(url.domainToUnicode('xn--iñvalid.com'));\n     * // Prints an empty string\n     * ```\n     * @since v7.4.0, v6.13.0\n     */\n    function domainToUnicode(domain: string): string;\n    /**\n     * This function ensures the correct decodings of percent-encoded characters as\n     * well as ensuring a cross-platform valid absolute path string.\n     *\n     * ```js\n     * import { fileURLToPath } from 'url';\n     *\n     * const __filename = fileURLToPath(import.meta.url);\n     *\n     * new URL('file:///C:/path/').pathname;      // Incorrect: /C:/path/\n     * fileURLToPath('file:///C:/path/');         // Correct:   C:\\path\\ (Windows)\n     *\n     * new URL('file://nas/foo.txt').pathname;    // Incorrect: /foo.txt\n     * fileURLToPath('file://nas/foo.txt');       // Correct:   \\\\nas\\foo.txt (Windows)\n     *\n     * new URL('file:///你好.txt').pathname;      // Incorrect: /%E4%BD%A0%E5%A5%BD.txt\n     * fileURLToPath('file:///你好.txt');         // Correct:   /你好.txt (POSIX)\n     *\n     * new URL('file:///hello world').pathname;   // Incorrect: /hello%20world\n     * fileURLToPath('file:///hello world');      // Correct:   /hello world (POSIX)\n     * ```\n     * @since v10.12.0\n     * @param url The file URL string or URL object to convert to a path.\n     * @return The fully-resolved platform-specific Node.js file path.\n     */\n    function fileURLToPath(url: string | URL): string;\n    /**\n     * This function ensures that `path` is resolved absolutely, and that the URL\n     * control characters are correctly encoded when converting into a File URL.\n     *\n     * ```js\n     * import { pathToFileURL } from 'url';\n     *\n     * new URL('/foo#1', 'file:');           // Incorrect: file:///foo#1\n     * pathToFileURL('/foo#1');              // Correct:   file:///foo%231 (POSIX)\n     *\n     * new URL('/some/path%.c', 'file:');    // Incorrect: file:///some/path%.c\n     * pathToFileURL('/some/path%.c');       // Correct:   file:///some/path%25.c (POSIX)\n     * ```\n     * @since v10.12.0\n     * @param path The path to convert to a File URL.\n     * @return The file URL object.\n     */\n    function pathToFileURL(path: string): URL;\n    /**\n     * This utility function converts a URL object into an ordinary options object as\n     * expected by the `http.request()` and `https.request()` APIs.\n     *\n     * ```js\n     * import { urlToHttpOptions } from 'url';\n     * const myURL = new URL('https://a:b@測試?abc#foo');\n     *\n     * console.log(urlToHttpOptions(myURL));\n     *\n     * {\n     *   protocol: 'https:',\n     *   hostname: 'xn--g6w251d',\n     *   hash: '#foo',\n     *   search: '?abc',\n     *   pathname: '/',\n     *   path: '/?abc',\n     *   href: 'https://a:b@xn--g6w251d/?abc#foo',\n     *   auth: 'a:b'\n     * }\n     *\n     * ```\n     * @since v15.7.0\n     * @param url The `WHATWG URL` object to convert to an options object.\n     * @return Options object\n     */\n    function urlToHttpOptions(url: URL): ClientRequestArgs;\n    interface URLFormatOptions {\n        auth?: boolean | undefined;\n        fragment?: boolean | undefined;\n        search?: boolean | undefined;\n        unicode?: boolean | undefined;\n    }\n    /**\n     * Browser-compatible `URL` class, implemented by following the WHATWG URL\n     * Standard. [Examples of parsed URLs](https://url.spec.whatwg.org/#example-url-parsing) may be found in the Standard itself.\n     * The `URL` class is also available on the global object.\n     *\n     * In accordance with browser conventions, all properties of `URL` objects\n     * are implemented as getters and setters on the class prototype, rather than as\n     * data properties on the object itself. Thus, unlike `legacy urlObject` s,\n     * using the `delete` keyword on any properties of `URL` objects (e.g. `delete myURL.protocol`, `delete myURL.pathname`, etc) has no effect but will still\n     * return `true`.\n     * @since v7.0.0, v6.13.0\n     */\n    class URL {\n        /**\n         * Creates a `'blob:nodedata:...'` URL string that represents the given `Blob` object and can be used to retrieve the `Blob` later.\n         *\n         * ```js\n         * const {\n         *   Blob,\n         *   resolveObjectURL,\n         * } = require('buffer');\n         *\n         * const blob = new Blob(['hello']);\n         * const id = URL.createObjectURL(blob);\n         *\n         * // later...\n         *\n         * const otherBlob = resolveObjectURL(id);\n         * console.log(otherBlob.size);\n         * ```\n         *\n         * The data stored by the registered `Blob` will be retained in memory until`URL.revokeObjectURL()` is called to remove it.\n         *\n         * `Blob` objects are registered within the current thread. If using Worker\n         * Threads, `Blob` objects registered within one Worker will not be available\n         * to other workers or the main thread.\n         * @since v16.7.0\n         * @experimental\n         */\n        static createObjectURL(blob: Blob): string;\n        /**\n         * Removes the stored `Blob` identified by the given ID.\n         * @since v16.7.0\n         * @experimental\n         * @param id A `'blob:nodedata:...` URL string returned by a prior call to `URL.createObjectURL()`.\n         */\n        static revokeObjectURL(objectUrl: string): void;\n        constructor(input: string, base?: string | URL);\n        /**\n         * Gets and sets the fragment portion of the URL.\n         *\n         * ```js\n         * const myURL = new URL('https://example.org/foo#bar');\n         * console.log(myURL.hash);\n         * // Prints #bar\n         *\n         * myURL.hash = 'baz';\n         * console.log(myURL.href);\n         * // Prints https://example.org/foo#baz\n         * ```\n         *\n         * Invalid URL characters included in the value assigned to the `hash` property\n         * are `percent-encoded`. The selection of which characters to\n         * percent-encode may vary somewhat from what the {@link parse} and {@link format} methods would produce.\n         */\n        hash: string;\n        /**\n         * Gets and sets the host portion of the URL.\n         *\n         * ```js\n         * const myURL = new URL('https://example.org:81/foo');\n         * console.log(myURL.host);\n         * // Prints example.org:81\n         *\n         * myURL.host = 'example.com:82';\n         * console.log(myURL.href);\n         * // Prints https://example.com:82/foo\n         * ```\n         *\n         * Invalid host values assigned to the `host` property are ignored.\n         */\n        host: string;\n        /**\n         * Gets and sets the host name portion of the URL. The key difference between`url.host` and `url.hostname` is that `url.hostname` does _not_ include the\n         * port.\n         *\n         * ```js\n         * const myURL = new URL('https://example.org:81/foo');\n         * console.log(myURL.hostname);\n         * // Prints example.org\n         *\n         * // Setting the hostname does not change the port\n         * myURL.hostname = 'example.com:82';\n         * console.log(myURL.href);\n         * // Prints https://example.com:81/foo\n         *\n         * // Use myURL.host to change the hostname and port\n         * myURL.host = 'example.org:82';\n         * console.log(myURL.href);\n         * // Prints https://example.org:82/foo\n         * ```\n         *\n         * Invalid host name values assigned to the `hostname` property are ignored.\n         */\n        hostname: string;\n        /**\n         * Gets and sets the serialized URL.\n         *\n         * ```js\n         * const myURL = new URL('https://example.org/foo');\n         * console.log(myURL.href);\n         * // Prints https://example.org/foo\n         *\n         * myURL.href = 'https://example.com/bar';\n         * console.log(myURL.href);\n         * // Prints https://example.com/bar\n         * ```\n         *\n         * Getting the value of the `href` property is equivalent to calling {@link toString}.\n         *\n         * Setting the value of this property to a new value is equivalent to creating a\n         * new `URL` object using `new URL(value)`. Each of the `URL`object's properties will be modified.\n         *\n         * If the value assigned to the `href` property is not a valid URL, a `TypeError`will be thrown.\n         */\n        href: string;\n        /**\n         * Gets the read-only serialization of the URL's origin.\n         *\n         * ```js\n         * const myURL = new URL('https://example.org/foo/bar?baz');\n         * console.log(myURL.origin);\n         * // Prints https://example.org\n         * ```\n         *\n         * ```js\n         * const idnURL = new URL('https://測試');\n         * console.log(idnURL.origin);\n         * // Prints https://xn--g6w251d\n         *\n         * console.log(idnURL.hostname);\n         * // Prints xn--g6w251d\n         * ```\n         */\n        readonly origin: string;\n        /**\n         * Gets and sets the password portion of the URL.\n         *\n         * ```js\n         * const myURL = new URL('https://abc:xyz@example.com');\n         * console.log(myURL.password);\n         * // Prints xyz\n         *\n         * myURL.password = '123';\n         * console.log(myURL.href);\n         * // Prints https://abc:123@example.com\n         * ```\n         *\n         * Invalid URL characters included in the value assigned to the `password` property\n         * are `percent-encoded`. The selection of which characters to\n         * percent-encode may vary somewhat from what the {@link parse} and {@link format} methods would produce.\n         */\n        password: string;\n        /**\n         * Gets and sets the path portion of the URL.\n         *\n         * ```js\n         * const myURL = new URL('https://example.org/abc/xyz?123');\n         * console.log(myURL.pathname);\n         * // Prints /abc/xyz\n         *\n         * myURL.pathname = '/abcdef';\n         * console.log(myURL.href);\n         * // Prints https://example.org/abcdef?123\n         * ```\n         *\n         * Invalid URL characters included in the value assigned to the `pathname`property are `percent-encoded`. The selection of which characters\n         * to percent-encode may vary somewhat from what the {@link parse} and {@link format} methods would produce.\n         */\n        pathname: string;\n        /**\n         * Gets and sets the port portion of the URL.\n         *\n         * The port value may be a number or a string containing a number in the range`0` to `65535` (inclusive). Setting the value to the default port of the`URL` objects given `protocol` will\n         * result in the `port` value becoming\n         * the empty string (`''`).\n         *\n         * The port value can be an empty string in which case the port depends on\n         * the protocol/scheme:\n         *\n         * <omitted>\n         *\n         * Upon assigning a value to the port, the value will first be converted to a\n         * string using `.toString()`.\n         *\n         * If that string is invalid but it begins with a number, the leading number is\n         * assigned to `port`.\n         * If the number lies outside the range denoted above, it is ignored.\n         *\n         * ```js\n         * const myURL = new URL('https://example.org:8888');\n         * console.log(myURL.port);\n         * // Prints 8888\n         *\n         * // Default ports are automatically transformed to the empty string\n         * // (HTTPS protocol's default port is 443)\n         * myURL.port = '443';\n         * console.log(myURL.port);\n         * // Prints the empty string\n         * console.log(myURL.href);\n         * // Prints https://example.org/\n         *\n         * myURL.port = 1234;\n         * console.log(myURL.port);\n         * // Prints 1234\n         * console.log(myURL.href);\n         * // Prints https://example.org:1234/\n         *\n         * // Completely invalid port strings are ignored\n         * myURL.port = 'abcd';\n         * console.log(myURL.port);\n         * // Prints 1234\n         *\n         * // Leading numbers are treated as a port number\n         * myURL.port = '5678abcd';\n         * console.log(myURL.port);\n         * // Prints 5678\n         *\n         * // Non-integers are truncated\n         * myURL.port = 1234.5678;\n         * console.log(myURL.port);\n         * // Prints 1234\n         *\n         * // Out-of-range numbers which are not represented in scientific notation\n         * // will be ignored.\n         * myURL.port = 1e10; // 10000000000, will be range-checked as described below\n         * console.log(myURL.port);\n         * // Prints 1234\n         * ```\n         *\n         * Numbers which contain a decimal point,\n         * such as floating-point numbers or numbers in scientific notation,\n         * are not an exception to this rule.\n         * Leading numbers up to the decimal point will be set as the URL's port,\n         * assuming they are valid:\n         *\n         * ```js\n         * myURL.port = 4.567e21;\n         * console.log(myURL.port);\n         * // Prints 4 (because it is the leading number in the string '4.567e21')\n         * ```\n         */\n        port: string;\n        /**\n         * Gets and sets the protocol portion of the URL.\n         *\n         * ```js\n         * const myURL = new URL('https://example.org');\n         * console.log(myURL.protocol);\n         * // Prints https:\n         *\n         * myURL.protocol = 'ftp';\n         * console.log(myURL.href);\n         * // Prints ftp://example.org/\n         * ```\n         *\n         * Invalid URL protocol values assigned to the `protocol` property are ignored.\n         */\n        protocol: string;\n        /**\n         * Gets and sets the serialized query portion of the URL.\n         *\n         * ```js\n         * const myURL = new URL('https://example.org/abc?123');\n         * console.log(myURL.search);\n         * // Prints ?123\n         *\n         * myURL.search = 'abc=xyz';\n         * console.log(myURL.href);\n         * // Prints https://example.org/abc?abc=xyz\n         * ```\n         *\n         * Any invalid URL characters appearing in the value assigned the `search`property will be `percent-encoded`. The selection of which\n         * characters to percent-encode may vary somewhat from what the {@link parse} and {@link format} methods would produce.\n         */\n        search: string;\n        /**\n         * Gets the `URLSearchParams` object representing the query parameters of the\n         * URL. This property is read-only but the `URLSearchParams` object it provides\n         * can be used to mutate the URL instance; to replace the entirety of query\n         * parameters of the URL, use the {@link search} setter. See `URLSearchParams` documentation for details.\n         *\n         * Use care when using `.searchParams` to modify the `URL` because,\n         * per the WHATWG specification, the `URLSearchParams` object uses\n         * different rules to determine which characters to percent-encode. For\n         * instance, the `URL` object will not percent encode the ASCII tilde (`~`)\n         * character, while `URLSearchParams` will always encode it:\n         *\n         * ```js\n         * const myUrl = new URL('https://example.org/abc?foo=~bar');\n         *\n         * console.log(myUrl.search);  // prints ?foo=~bar\n         *\n         * // Modify the URL via searchParams...\n         * myUrl.searchParams.sort();\n         *\n         * console.log(myUrl.search);  // prints ?foo=%7Ebar\n         * ```\n         */\n        readonly searchParams: URLSearchParams;\n        /**\n         * Gets and sets the username portion of the URL.\n         *\n         * ```js\n         * const myURL = new URL('https://abc:xyz@example.com');\n         * console.log(myURL.username);\n         * // Prints abc\n         *\n         * myURL.username = '123';\n         * console.log(myURL.href);\n         * // Prints https://123:xyz@example.com/\n         * ```\n         *\n         * Any invalid URL characters appearing in the value assigned the `username`property will be `percent-encoded`. The selection of which\n         * characters to percent-encode may vary somewhat from what the {@link parse} and {@link format} methods would produce.\n         */\n        username: string;\n        /**\n         * The `toString()` method on the `URL` object returns the serialized URL. The\n         * value returned is equivalent to that of {@link href} and {@link toJSON}.\n         */\n        toString(): string;\n        /**\n         * The `toJSON()` method on the `URL` object returns the serialized URL. The\n         * value returned is equivalent to that of {@link href} and {@link toString}.\n         *\n         * This method is automatically called when an `URL` object is serialized\n         * with [`JSON.stringify()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify).\n         *\n         * ```js\n         * const myURLs = [\n         *   new URL('https://www.example.com'),\n         *   new URL('https://test.example.org'),\n         * ];\n         * console.log(JSON.stringify(myURLs));\n         * // Prints [\"https://www.example.com/\",\"https://test.example.org/\"]\n         * ```\n         */\n        toJSON(): string;\n    }\n    /**\n     * The `URLSearchParams` API provides read and write access to the query of a`URL`. The `URLSearchParams` class can also be used standalone with one of the\n     * four following constructors.\n     * The `URLSearchParams` class is also available on the global object.\n     *\n     * The WHATWG `URLSearchParams` interface and the `querystring` module have\n     * similar purpose, but the purpose of the `querystring` module is more\n     * general, as it allows the customization of delimiter characters (`&#x26;` and `=`).\n     * On the other hand, this API is designed purely for URL query strings.\n     *\n     * ```js\n     * const myURL = new URL('https://example.org/?abc=123');\n     * console.log(myURL.searchParams.get('abc'));\n     * // Prints 123\n     *\n     * myURL.searchParams.append('abc', 'xyz');\n     * console.log(myURL.href);\n     * // Prints https://example.org/?abc=123&#x26;abc=xyz\n     *\n     * myURL.searchParams.delete('abc');\n     * myURL.searchParams.set('a', 'b');\n     * console.log(myURL.href);\n     * // Prints https://example.org/?a=b\n     *\n     * const newSearchParams = new URLSearchParams(myURL.searchParams);\n     * // The above is equivalent to\n     * // const newSearchParams = new URLSearchParams(myURL.search);\n     *\n     * newSearchParams.append('a', 'c');\n     * console.log(myURL.href);\n     * // Prints https://example.org/?a=b\n     * console.log(newSearchParams.toString());\n     * // Prints a=b&#x26;a=c\n     *\n     * // newSearchParams.toString() is implicitly called\n     * myURL.search = newSearchParams;\n     * console.log(myURL.href);\n     * // Prints https://example.org/?a=b&#x26;a=c\n     * newSearchParams.delete('a');\n     * console.log(myURL.href);\n     * // Prints https://example.org/?a=b&#x26;a=c\n     * ```\n     * @since v7.5.0, v6.13.0\n     */\n    class URLSearchParams implements Iterable<[string, string]> {\n        constructor(init?: URLSearchParams | string | Record<string, string | ReadonlyArray<string>> | Iterable<[string, string]> | ReadonlyArray<[string, string]>);\n        /**\n         * Append a new name-value pair to the query string.\n         */\n        append(name: string, value: string): void;\n        /**\n         * Remove all name-value pairs whose name is `name`.\n         */\n        delete(name: string): void;\n        /**\n         * Returns an ES6 `Iterator` over each of the name-value pairs in the query.\n         * Each item of the iterator is a JavaScript `Array`. The first item of the `Array`is the `name`, the second item of the `Array` is the `value`.\n         *\n         * Alias for `urlSearchParams[@@iterator]()`.\n         */\n        entries(): IterableIterator<[string, string]>;\n        /**\n         * Iterates over each name-value pair in the query and invokes the given function.\n         *\n         * ```js\n         * const myURL = new URL('https://example.org/?a=b&#x26;c=d');\n         * myURL.searchParams.forEach((value, name, searchParams) => {\n         *   console.log(name, value, myURL.searchParams === searchParams);\n         * });\n         * // Prints:\n         * //   a b true\n         * //   c d true\n         * ```\n         * @param fn Invoked for each name-value pair in the query\n         * @param thisArg To be used as `this` value for when `fn` is called\n         */\n        forEach<TThis = this>(callback: (this: TThis, value: string, name: string, searchParams: URLSearchParams) => void, thisArg?: TThis): void;\n        /**\n         * Returns the value of the first name-value pair whose name is `name`. If there\n         * are no such pairs, `null` is returned.\n         * @return or `null` if there is no name-value pair with the given `name`.\n         */\n        get(name: string): string | null;\n        /**\n         * Returns the values of all name-value pairs whose name is `name`. If there are\n         * no such pairs, an empty array is returned.\n         */\n        getAll(name: string): string[];\n        /**\n         * Returns `true` if there is at least one name-value pair whose name is `name`.\n         */\n        has(name: string): boolean;\n        /**\n         * Returns an ES6 `Iterator` over the names of each name-value pair.\n         *\n         * ```js\n         * const params = new URLSearchParams('foo=bar&#x26;foo=baz');\n         * for (const name of params.keys()) {\n         *   console.log(name);\n         * }\n         * // Prints:\n         * //   foo\n         * //   foo\n         * ```\n         */\n        keys(): IterableIterator<string>;\n        /**\n         * Sets the value in the `URLSearchParams` object associated with `name` to`value`. If there are any pre-existing name-value pairs whose names are `name`,\n         * set the first such pair's value to `value` and remove all others. If not,\n         * append the name-value pair to the query string.\n         *\n         * ```js\n         * const params = new URLSearchParams();\n         * params.append('foo', 'bar');\n         * params.append('foo', 'baz');\n         * params.append('abc', 'def');\n         * console.log(params.toString());\n         * // Prints foo=bar&#x26;foo=baz&#x26;abc=def\n         *\n         * params.set('foo', 'def');\n         * params.set('xyz', 'opq');\n         * console.log(params.toString());\n         * // Prints foo=def&#x26;abc=def&#x26;xyz=opq\n         * ```\n         */\n        set(name: string, value: string): void;\n        /**\n         * Sort all existing name-value pairs in-place by their names. Sorting is done\n         * with a [stable sorting algorithm](https://en.wikipedia.org/wiki/Sorting_algorithm#Stability), so relative order between name-value pairs\n         * with the same name is preserved.\n         *\n         * This method can be used, in particular, to increase cache hits.\n         *\n         * ```js\n         * const params = new URLSearchParams('query[]=abc&#x26;type=search&#x26;query[]=123');\n         * params.sort();\n         * console.log(params.toString());\n         * // Prints query%5B%5D=abc&#x26;query%5B%5D=123&#x26;type=search\n         * ```\n         * @since v7.7.0, v6.13.0\n         */\n        sort(): void;\n        /**\n         * Returns the search parameters serialized as a string, with characters\n         * percent-encoded where necessary.\n         */\n        toString(): string;\n        /**\n         * Returns an ES6 `Iterator` over the values of each name-value pair.\n         */\n        values(): IterableIterator<string>;\n        [Symbol.iterator](): IterableIterator<[string, string]>;\n    }\n\n    import { URL as _URL, URLSearchParams as _URLSearchParams } from 'url';\n    global {\n        interface URLSearchParams extends _URLSearchParams {}\n        interface URL extends _URL {}\n        interface Global {\n            URL: typeof _URL;\n            URLSearchParams: typeof _URLSearchParams;\n        }\n        /**\n         * `URL` class is a global reference for `require('url').URL`\n         * https://nodejs.org/api/url.html#the-whatwg-url-api\n         * @since v10.0.0\n         */\n        var URL:\n            // For compatibility with \"dom\" and \"webworker\" URL declarations\n            typeof globalThis extends { onmessage: any, URL: infer URL }\n                ? URL\n                : typeof _URL;\n        /**\n         * `URLSearchParams` class is a global reference for `require('url').URLSearchParams`.\n         * https://nodejs.org/api/url.html#class-urlsearchparams\n         * @since v10.0.0\n         */\n        var URLSearchParams:\n            // For compatibility with \"dom\" and \"webworker\" URLSearchParams declarations\n            typeof globalThis extends { onmessage: any, URLSearchParams: infer URLSearchParams }\n                ? URLSearchParams\n                : typeof _URLSearchParams;\n    }\n}\ndeclare module 'node:url' {\n    export * from 'url';\n}\n"
    },
    {
      "path": "/node_modules/@types/node/util.d.ts",
      "content": "/**\n * The `util` module supports the needs of Node.js internal APIs. Many of the\n * utilities are useful for application and module developers as well. To access\n * it:\n *\n * ```js\n * const util = require('util');\n * ```\n * @see [source](https://github.com/nodejs/node/blob/v16.9.0/lib/util.js)\n */\ndeclare module 'util' {\n    import * as types from 'node:util/types';\n    export interface InspectOptions {\n        /**\n         * If set to `true`, getters are going to be\n         * inspected as well. If set to `'get'` only getters without setter are going\n         * to be inspected. If set to `'set'` only getters having a corresponding\n         * setter are going to be inspected. This might cause side effects depending on\n         * the getter function.\n         * @default `false`\n         */\n        getters?: 'get' | 'set' | boolean | undefined;\n        showHidden?: boolean | undefined;\n        /**\n         * @default 2\n         */\n        depth?: number | null | undefined;\n        colors?: boolean | undefined;\n        customInspect?: boolean | undefined;\n        showProxy?: boolean | undefined;\n        maxArrayLength?: number | null | undefined;\n        /**\n         * Specifies the maximum number of characters to\n         * include when formatting. Set to `null` or `Infinity` to show all elements.\n         * Set to `0` or negative to show no characters.\n         * @default 10000\n         */\n        maxStringLength?: number | null | undefined;\n        breakLength?: number | undefined;\n        /**\n         * Setting this to `false` causes each object key\n         * to be displayed on a new line. It will also add new lines to text that is\n         * longer than `breakLength`. If set to a number, the most `n` inner elements\n         * are united on a single line as long as all properties fit into\n         * `breakLength`. Short array elements are also grouped together. Note that no\n         * text will be reduced below 16 characters, no matter the `breakLength` size.\n         * For more information, see the example below.\n         * @default `true`\n         */\n        compact?: boolean | number | undefined;\n        sorted?: boolean | ((a: string, b: string) => number) | undefined;\n    }\n    export type Style = 'special' | 'number' | 'bigint' | 'boolean' | 'undefined' | 'null' | 'string' | 'symbol' | 'date' | 'regexp' | 'module';\n    export type CustomInspectFunction = (depth: number, options: InspectOptionsStylized) => string;\n    export interface InspectOptionsStylized extends InspectOptions {\n        stylize(text: string, styleType: Style): string;\n    }\n    /**\n     * The `util.format()` method returns a formatted string using the first argument\n     * as a `printf`\\-like format string which can contain zero or more format\n     * specifiers. Each specifier is replaced with the converted value from the\n     * corresponding argument. Supported specifiers are:\n     *\n     * If a specifier does not have a corresponding argument, it is not replaced:\n     *\n     * ```js\n     * util.format('%s:%s', 'foo');\n     * // Returns: 'foo:%s'\n     * ```\n     *\n     * Values that are not part of the format string are formatted using`util.inspect()` if their type is not `string`.\n     *\n     * If there are more arguments passed to the `util.format()` method than the\n     * number of specifiers, the extra arguments are concatenated to the returned\n     * string, separated by spaces:\n     *\n     * ```js\n     * util.format('%s:%s', 'foo', 'bar', 'baz');\n     * // Returns: 'foo:bar baz'\n     * ```\n     *\n     * If the first argument does not contain a valid format specifier, `util.format()`returns a string that is the concatenation of all arguments separated by spaces:\n     *\n     * ```js\n     * util.format(1, 2, 3);\n     * // Returns: '1 2 3'\n     * ```\n     *\n     * If only one argument is passed to `util.format()`, it is returned as it is\n     * without any formatting:\n     *\n     * ```js\n     * util.format('%% %s');\n     * // Returns: '%% %s'\n     * ```\n     *\n     * `util.format()` is a synchronous method that is intended as a debugging tool.\n     * Some input values can have a significant performance overhead that can block the\n     * event loop. Use this function with care and never in a hot code path.\n     * @since v0.5.3\n     * @param format A `printf`-like format string.\n     */\n    export function format(format?: any, ...param: any[]): string;\n    /**\n     * This function is identical to {@link format}, except in that it takes\n     * an `inspectOptions` argument which specifies options that are passed along to {@link inspect}.\n     *\n     * ```js\n     * util.formatWithOptions({ colors: true }, 'See object %O', { foo: 42 });\n     * // Returns 'See object { foo: 42 }', where `42` is colored as a number\n     * // when printed to a terminal.\n     * ```\n     * @since v10.0.0\n     */\n    export function formatWithOptions(inspectOptions: InspectOptions, format?: any, ...param: any[]): string;\n    /**\n     * Returns the string name for a numeric error code that comes from a Node.js API.\n     * The mapping between error codes and error names is platform-dependent.\n     * See `Common System Errors` for the names of common errors.\n     *\n     * ```js\n     * fs.access('file/that/does/not/exist', (err) => {\n     *   const name = util.getSystemErrorName(err.errno);\n     *   console.error(name);  // ENOENT\n     * });\n     * ```\n     * @since v9.7.0\n     */\n    export function getSystemErrorName(err: number): string;\n    /**\n     * Returns a Map of all system error codes available from the Node.js API.\n     * The mapping between error codes and error names is platform-dependent.\n     * See `Common System Errors` for the names of common errors.\n     *\n     * ```js\n     * fs.access('file/that/does/not/exist', (err) => {\n     *   const errorMap = util.getSystemErrorMap();\n     *   const name = errorMap.get(err.errno);\n     *   console.error(name);  // ENOENT\n     * });\n     * ```\n     * @since v16.0.0\n     */\n    export function getSystemErrorMap(): Map<number, [string, string]>;\n    /**\n     * The `util.log()` method prints the given `string` to `stdout` with an included\n     * timestamp.\n     *\n     * ```js\n     * const util = require('util');\n     *\n     * util.log('Timestamped message.');\n     * ```\n     * @since v0.3.0\n     * @deprecated Since v6.0.0 - Use a third party module instead.\n     */\n    export function log(string: string): void;\n    /**\n     * Returns the `string` after replacing any surrogate code points\n     * (or equivalently, any unpaired surrogate code units) with the\n     * Unicode \"replacement character\" U+FFFD.\n     * @since v16.8.0\n     */\n    export function toUSVString(string: string): string;\n    /**\n     * The `util.inspect()` method returns a string representation of `object` that is\n     * intended for debugging. The output of `util.inspect` may change at any time\n     * and should not be depended upon programmatically. Additional `options` may be\n     * passed that alter the result.`util.inspect()` will use the constructor's name and/or `@@toStringTag` to make\n     * an identifiable tag for an inspected value.\n     *\n     * ```js\n     * class Foo {\n     *   get [Symbol.toStringTag]() {\n     *     return 'bar';\n     *   }\n     * }\n     *\n     * class Bar {}\n     *\n     * const baz = Object.create(null, { [Symbol.toStringTag]: { value: 'foo' } });\n     *\n     * util.inspect(new Foo()); // 'Foo [bar] {}'\n     * util.inspect(new Bar()); // 'Bar {}'\n     * util.inspect(baz);       // '[foo] {}'\n     * ```\n     *\n     * Circular references point to their anchor by using a reference index:\n     *\n     * ```js\n     * const { inspect } = require('util');\n     *\n     * const obj = {};\n     * obj.a = [obj];\n     * obj.b = {};\n     * obj.b.inner = obj.b;\n     * obj.b.obj = obj;\n     *\n     * console.log(inspect(obj));\n     * // <ref *1> {\n     * //   a: [ [Circular *1] ],\n     * //   b: <ref *2> { inner: [Circular *2], obj: [Circular *1] }\n     * // }\n     * ```\n     *\n     * The following example inspects all properties of the `util` object:\n     *\n     * ```js\n     * const util = require('util');\n     *\n     * console.log(util.inspect(util, { showHidden: true, depth: null }));\n     * ```\n     *\n     * The following example highlights the effect of the `compact` option:\n     *\n     * ```js\n     * const util = require('util');\n     *\n     * const o = {\n     *   a: [1, 2, [[\n     *     'Lorem ipsum dolor sit amet,\\nconsectetur adipiscing elit, sed do ' +\n     *       'eiusmod \\ntempor incididunt ut labore et dolore magna aliqua.',\n     *     'test',\n     *     'foo']], 4],\n     *   b: new Map([['za', 1], ['zb', 'test']])\n     * };\n     * console.log(util.inspect(o, { compact: true, depth: 5, breakLength: 80 }));\n     *\n     * // { a:\n     * //   [ 1,\n     * //     2,\n     * //     [ [ 'Lorem ipsum dolor sit amet,\\nconsectetur [...]', // A long line\n     * //           'test',\n     * //           'foo' ] ],\n     * //     4 ],\n     * //   b: Map(2) { 'za' => 1, 'zb' => 'test' } }\n     *\n     * // Setting `compact` to false or an integer creates more reader friendly output.\n     * console.log(util.inspect(o, { compact: false, depth: 5, breakLength: 80 }));\n     *\n     * // {\n     * //   a: [\n     * //     1,\n     * //     2,\n     * //     [\n     * //       [\n     * //         'Lorem ipsum dolor sit amet,\\n' +\n     * //           'consectetur adipiscing elit, sed do eiusmod \\n' +\n     * //           'tempor incididunt ut labore et dolore magna aliqua.',\n     * //         'test',\n     * //         'foo'\n     * //       ]\n     * //     ],\n     * //     4\n     * //   ],\n     * //   b: Map(2) {\n     * //     'za' => 1,\n     * //     'zb' => 'test'\n     * //   }\n     * // }\n     *\n     * // Setting `breakLength` to e.g. 150 will print the \"Lorem ipsum\" text in a\n     * // single line.\n     * ```\n     *\n     * The `showHidden` option allows [`WeakMap`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/WeakMap) and\n     * [`WeakSet`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/WeakSet) entries to be\n     * inspected. If there are more entries than `maxArrayLength`, there is no\n     * guarantee which entries are displayed. That means retrieving the same [`WeakSet`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/WeakSet) entries twice may\n     * result in different output. Furthermore, entries\n     * with no remaining strong references may be garbage collected at any time.\n     *\n     * ```js\n     * const { inspect } = require('util');\n     *\n     * const obj = { a: 1 };\n     * const obj2 = { b: 2 };\n     * const weakSet = new WeakSet([obj, obj2]);\n     *\n     * console.log(inspect(weakSet, { showHidden: true }));\n     * // WeakSet { { a: 1 }, { b: 2 } }\n     * ```\n     *\n     * The `sorted` option ensures that an object's property insertion order does not\n     * impact the result of `util.inspect()`.\n     *\n     * ```js\n     * const { inspect } = require('util');\n     * const assert = require('assert');\n     *\n     * const o1 = {\n     *   b: [2, 3, 1],\n     *   a: '`a` comes before `b`',\n     *   c: new Set([2, 3, 1])\n     * };\n     * console.log(inspect(o1, { sorted: true }));\n     * // { a: '`a` comes before `b`', b: [ 2, 3, 1 ], c: Set(3) { 1, 2, 3 } }\n     * console.log(inspect(o1, { sorted: (a, b) => b.localeCompare(a) }));\n     * // { c: Set(3) { 3, 2, 1 }, b: [ 2, 3, 1 ], a: '`a` comes before `b`' }\n     *\n     * const o2 = {\n     *   c: new Set([2, 1, 3]),\n     *   a: '`a` comes before `b`',\n     *   b: [2, 3, 1]\n     * };\n     * assert.strict.equal(\n     *   inspect(o1, { sorted: true }),\n     *   inspect(o2, { sorted: true })\n     * );\n     * ```\n     *\n     * `util.inspect()` is a synchronous method intended for debugging. Its maximum\n     * output length is approximately 128 MB. Inputs that result in longer output will\n     * be truncated.\n     * @since v0.3.0\n     * @param object Any JavaScript primitive or `Object`.\n     * @return The representation of `object`.\n     */\n    export function inspect(object: any, showHidden?: boolean, depth?: number | null, color?: boolean): string;\n    export function inspect(object: any, options: InspectOptions): string;\n    export namespace inspect {\n        let colors: NodeJS.Dict<[number, number]>;\n        let styles: {\n            [K in Style]: string;\n        };\n        let defaultOptions: InspectOptions;\n        /**\n         * Allows changing inspect settings from the repl.\n         */\n        let replDefaults: InspectOptions;\n        /**\n         * That can be used to declare custom inspect functions.\n         */\n        const custom: unique symbol;\n    }\n    /**\n     * Alias for [`Array.isArray()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/isArray).\n     *\n     * Returns `true` if the given `object` is an `Array`. Otherwise, returns `false`.\n     *\n     * ```js\n     * const util = require('util');\n     *\n     * util.isArray([]);\n     * // Returns: true\n     * util.isArray(new Array());\n     * // Returns: true\n     * util.isArray({});\n     * // Returns: false\n     * ```\n     * @since v0.6.0\n     * @deprecated Since v4.0.0 - Use `isArray` instead.\n     */\n    export function isArray(object: unknown): object is unknown[];\n    /**\n     * Returns `true` if the given `object` is a `RegExp`. Otherwise, returns `false`.\n     *\n     * ```js\n     * const util = require('util');\n     *\n     * util.isRegExp(/some regexp/);\n     * // Returns: true\n     * util.isRegExp(new RegExp('another regexp'));\n     * // Returns: true\n     * util.isRegExp({});\n     * // Returns: false\n     * ```\n     * @since v0.6.0\n     * @deprecated Since v4.0.0 - Deprecated\n     */\n    export function isRegExp(object: unknown): object is RegExp;\n    /**\n     * Returns `true` if the given `object` is a `Date`. Otherwise, returns `false`.\n     *\n     * ```js\n     * const util = require('util');\n     *\n     * util.isDate(new Date());\n     * // Returns: true\n     * util.isDate(Date());\n     * // false (without 'new' returns a String)\n     * util.isDate({});\n     * // Returns: false\n     * ```\n     * @since v0.6.0\n     * @deprecated Since v4.0.0 - Use {@link types.isDate} instead.\n     */\n    export function isDate(object: unknown): object is Date;\n    /**\n     * Returns `true` if the given `object` is an `Error`. Otherwise, returns`false`.\n     *\n     * ```js\n     * const util = require('util');\n     *\n     * util.isError(new Error());\n     * // Returns: true\n     * util.isError(new TypeError());\n     * // Returns: true\n     * util.isError({ name: 'Error', message: 'an error occurred' });\n     * // Returns: false\n     * ```\n     *\n     * This method relies on `Object.prototype.toString()` behavior. It is\n     * possible to obtain an incorrect result when the `object` argument manipulates`@@toStringTag`.\n     *\n     * ```js\n     * const util = require('util');\n     * const obj = { name: 'Error', message: 'an error occurred' };\n     *\n     * util.isError(obj);\n     * // Returns: false\n     * obj[Symbol.toStringTag] = 'Error';\n     * util.isError(obj);\n     * // Returns: true\n     * ```\n     * @since v0.6.0\n     * @deprecated Since v4.0.0 - Use {@link types.isNativeError} instead.\n     */\n    export function isError(object: unknown): object is Error;\n    /**\n     * Usage of `util.inherits()` is discouraged. Please use the ES6 `class` and`extends` keywords to get language level inheritance support. Also note\n     * that the two styles are [semantically incompatible](https://github.com/nodejs/node/issues/4179).\n     *\n     * Inherit the prototype methods from one [constructor](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/constructor) into another. The\n     * prototype of `constructor` will be set to a new object created from`superConstructor`.\n     *\n     * This mainly adds some input validation on top of`Object.setPrototypeOf(constructor.prototype, superConstructor.prototype)`.\n     * As an additional convenience, `superConstructor` will be accessible\n     * through the `constructor.super_` property.\n     *\n     * ```js\n     * const util = require('util');\n     * const EventEmitter = require('events');\n     *\n     * function MyStream() {\n     *   EventEmitter.call(this);\n     * }\n     *\n     * util.inherits(MyStream, EventEmitter);\n     *\n     * MyStream.prototype.write = function(data) {\n     *   this.emit('data', data);\n     * };\n     *\n     * const stream = new MyStream();\n     *\n     * console.log(stream instanceof EventEmitter); // true\n     * console.log(MyStream.super_ === EventEmitter); // true\n     *\n     * stream.on('data', (data) => {\n     *   console.log(`Received data: \"${data}\"`);\n     * });\n     * stream.write('It works!'); // Received data: \"It works!\"\n     * ```\n     *\n     * ES6 example using `class` and `extends`:\n     *\n     * ```js\n     * const EventEmitter = require('events');\n     *\n     * class MyStream extends EventEmitter {\n     *   write(data) {\n     *     this.emit('data', data);\n     *   }\n     * }\n     *\n     * const stream = new MyStream();\n     *\n     * stream.on('data', (data) => {\n     *   console.log(`Received data: \"${data}\"`);\n     * });\n     * stream.write('With ES6');\n     * ```\n     * @since v0.3.0\n     * @deprecated Legacy: Use ES2015 class syntax and `extends` keyword instead.\n     */\n    export function inherits(constructor: unknown, superConstructor: unknown): void;\n    export type DebugLoggerFunction = (msg: string, ...param: unknown[]) => void;\n    export interface DebugLogger extends DebugLoggerFunction {\n        enabled: boolean;\n    }\n    /**\n     * The `util.debuglog()` method is used to create a function that conditionally\n     * writes debug messages to `stderr` based on the existence of the `NODE_DEBUG`environment variable. If the `section` name appears within the value of that\n     * environment variable, then the returned function operates similar to `console.error()`. If not, then the returned function is a no-op.\n     *\n     * ```js\n     * const util = require('util');\n     * const debuglog = util.debuglog('foo');\n     *\n     * debuglog('hello from foo [%d]', 123);\n     * ```\n     *\n     * If this program is run with `NODE_DEBUG=foo` in the environment, then\n     * it will output something like:\n     *\n     * ```console\n     * FOO 3245: hello from foo [123]\n     * ```\n     *\n     * where `3245` is the process id. If it is not run with that\n     * environment variable set, then it will not print anything.\n     *\n     * The `section` supports wildcard also:\n     *\n     * ```js\n     * const util = require('util');\n     * const debuglog = util.debuglog('foo-bar');\n     *\n     * debuglog('hi there, it\\'s foo-bar [%d]', 2333);\n     * ```\n     *\n     * if it is run with `NODE_DEBUG=foo*` in the environment, then it will output\n     * something like:\n     *\n     * ```console\n     * FOO-BAR 3257: hi there, it's foo-bar [2333]\n     * ```\n     *\n     * Multiple comma-separated `section` names may be specified in the `NODE_DEBUG`environment variable: `NODE_DEBUG=fs,net,tls`.\n     *\n     * The optional `callback` argument can be used to replace the logging function\n     * with a different function that doesn't have any initialization or\n     * unnecessary wrapping.\n     *\n     * ```js\n     * const util = require('util');\n     * let debuglog = util.debuglog('internals', (debug) => {\n     *   // Replace with a logging function that optimizes out\n     *   // testing if the section is enabled\n     *   debuglog = debug;\n     * });\n     * ```\n     * @since v0.11.3\n     * @param section A string identifying the portion of the application for which the `debuglog` function is being created.\n     * @param callback A callback invoked the first time the logging function is called with a function argument that is a more optimized logging function.\n     * @return The logging function\n     */\n    export function debuglog(section: string, callback?: (fn: DebugLoggerFunction) => void): DebugLogger;\n    export const debug: typeof debuglog;\n    /**\n     * Returns `true` if the given `object` is a `Boolean`. Otherwise, returns `false`.\n     *\n     * ```js\n     * const util = require('util');\n     *\n     * util.isBoolean(1);\n     * // Returns: false\n     * util.isBoolean(0);\n     * // Returns: false\n     * util.isBoolean(false);\n     * // Returns: true\n     * ```\n     * @since v0.11.5\n     * @deprecated Since v4.0.0 - Use `typeof value === 'boolean'` instead.\n     */\n    export function isBoolean(object: unknown): object is boolean;\n    /**\n     * Returns `true` if the given `object` is a `Buffer`. Otherwise, returns `false`.\n     *\n     * ```js\n     * const util = require('util');\n     *\n     * util.isBuffer({ length: 0 });\n     * // Returns: false\n     * util.isBuffer([]);\n     * // Returns: false\n     * util.isBuffer(Buffer.from('hello world'));\n     * // Returns: true\n     * ```\n     * @since v0.11.5\n     * @deprecated Since v4.0.0 - Use `isBuffer` instead.\n     */\n    export function isBuffer(object: unknown): object is Buffer;\n    /**\n     * Returns `true` if the given `object` is a `Function`. Otherwise, returns`false`.\n     *\n     * ```js\n     * const util = require('util');\n     *\n     * function Foo() {}\n     * const Bar = () => {};\n     *\n     * util.isFunction({});\n     * // Returns: false\n     * util.isFunction(Foo);\n     * // Returns: true\n     * util.isFunction(Bar);\n     * // Returns: true\n     * ```\n     * @since v0.11.5\n     * @deprecated Since v4.0.0 - Use `typeof value === 'function'` instead.\n     */\n    export function isFunction(object: unknown): boolean;\n    /**\n     * Returns `true` if the given `object` is strictly `null`. Otherwise, returns`false`.\n     *\n     * ```js\n     * const util = require('util');\n     *\n     * util.isNull(0);\n     * // Returns: false\n     * util.isNull(undefined);\n     * // Returns: false\n     * util.isNull(null);\n     * // Returns: true\n     * ```\n     * @since v0.11.5\n     * @deprecated Since v4.0.0 - Use `value === null` instead.\n     */\n    export function isNull(object: unknown): object is null;\n    /**\n     * Returns `true` if the given `object` is `null` or `undefined`. Otherwise,\n     * returns `false`.\n     *\n     * ```js\n     * const util = require('util');\n     *\n     * util.isNullOrUndefined(0);\n     * // Returns: false\n     * util.isNullOrUndefined(undefined);\n     * // Returns: true\n     * util.isNullOrUndefined(null);\n     * // Returns: true\n     * ```\n     * @since v0.11.5\n     * @deprecated Since v4.0.0 - Use `value === undefined || value === null` instead.\n     */\n    export function isNullOrUndefined(object: unknown): object is null | undefined;\n    /**\n     * Returns `true` if the given `object` is a `Number`. Otherwise, returns `false`.\n     *\n     * ```js\n     * const util = require('util');\n     *\n     * util.isNumber(false);\n     * // Returns: false\n     * util.isNumber(Infinity);\n     * // Returns: true\n     * util.isNumber(0);\n     * // Returns: true\n     * util.isNumber(NaN);\n     * // Returns: true\n     * ```\n     * @since v0.11.5\n     * @deprecated Since v4.0.0 - Use `typeof value === 'number'` instead.\n     */\n    export function isNumber(object: unknown): object is number;\n    /**\n     * Returns `true` if the given `object` is strictly an `Object`**and** not a`Function` (even though functions are objects in JavaScript).\n     * Otherwise, returns `false`.\n     *\n     * ```js\n     * const util = require('util');\n     *\n     * util.isObject(5);\n     * // Returns: false\n     * util.isObject(null);\n     * // Returns: false\n     * util.isObject({});\n     * // Returns: true\n     * util.isObject(() => {});\n     * // Returns: false\n     * ```\n     * @since v0.11.5\n     * @deprecated Since v4.0.0 - Deprecated: Use `value !== null && typeof value === 'object'` instead.\n     */\n    export function isObject(object: unknown): boolean;\n    /**\n     * Returns `true` if the given `object` is a primitive type. Otherwise, returns`false`.\n     *\n     * ```js\n     * const util = require('util');\n     *\n     * util.isPrimitive(5);\n     * // Returns: true\n     * util.isPrimitive('foo');\n     * // Returns: true\n     * util.isPrimitive(false);\n     * // Returns: true\n     * util.isPrimitive(null);\n     * // Returns: true\n     * util.isPrimitive(undefined);\n     * // Returns: true\n     * util.isPrimitive({});\n     * // Returns: false\n     * util.isPrimitive(() => {});\n     * // Returns: false\n     * util.isPrimitive(/^$/);\n     * // Returns: false\n     * util.isPrimitive(new Date());\n     * // Returns: false\n     * ```\n     * @since v0.11.5\n     * @deprecated Since v4.0.0 - Use `(typeof value !== 'object' && typeof value !== 'function') || value === null` instead.\n     */\n    export function isPrimitive(object: unknown): boolean;\n    /**\n     * Returns `true` if the given `object` is a `string`. Otherwise, returns `false`.\n     *\n     * ```js\n     * const util = require('util');\n     *\n     * util.isString('');\n     * // Returns: true\n     * util.isString('foo');\n     * // Returns: true\n     * util.isString(String('foo'));\n     * // Returns: true\n     * util.isString(5);\n     * // Returns: false\n     * ```\n     * @since v0.11.5\n     * @deprecated Since v4.0.0 - Use `typeof value === 'string'` instead.\n     */\n    export function isString(object: unknown): object is string;\n    /**\n     * Returns `true` if the given `object` is a `Symbol`. Otherwise, returns `false`.\n     *\n     * ```js\n     * const util = require('util');\n     *\n     * util.isSymbol(5);\n     * // Returns: false\n     * util.isSymbol('foo');\n     * // Returns: false\n     * util.isSymbol(Symbol('foo'));\n     * // Returns: true\n     * ```\n     * @since v0.11.5\n     * @deprecated Since v4.0.0 - Use `typeof value === 'symbol'` instead.\n     */\n    export function isSymbol(object: unknown): object is symbol;\n    /**\n     * Returns `true` if the given `object` is `undefined`. Otherwise, returns `false`.\n     *\n     * ```js\n     * const util = require('util');\n     *\n     * const foo = undefined;\n     * util.isUndefined(5);\n     * // Returns: false\n     * util.isUndefined(foo);\n     * // Returns: true\n     * util.isUndefined(null);\n     * // Returns: false\n     * ```\n     * @since v0.11.5\n     * @deprecated Since v4.0.0 - Use `value === undefined` instead.\n     */\n    export function isUndefined(object: unknown): object is undefined;\n    /**\n     * The `util.deprecate()` method wraps `fn` (which may be a function or class) in\n     * such a way that it is marked as deprecated.\n     *\n     * ```js\n     * const util = require('util');\n     *\n     * exports.obsoleteFunction = util.deprecate(() => {\n     *   // Do something here.\n     * }, 'obsoleteFunction() is deprecated. Use newShinyFunction() instead.');\n     * ```\n     *\n     * When called, `util.deprecate()` will return a function that will emit a`DeprecationWarning` using the `'warning'` event. The warning will\n     * be emitted and printed to `stderr` the first time the returned function is\n     * called. After the warning is emitted, the wrapped function is called without\n     * emitting a warning.\n     *\n     * If the same optional `code` is supplied in multiple calls to `util.deprecate()`,\n     * the warning will be emitted only once for that `code`.\n     *\n     * ```js\n     * const util = require('util');\n     *\n     * const fn1 = util.deprecate(someFunction, someMessage, 'DEP0001');\n     * const fn2 = util.deprecate(someOtherFunction, someOtherMessage, 'DEP0001');\n     * fn1(); // Emits a deprecation warning with code DEP0001\n     * fn2(); // Does not emit a deprecation warning because it has the same code\n     * ```\n     *\n     * If either the `--no-deprecation` or `--no-warnings` command-line flags are\n     * used, or if the `process.noDeprecation` property is set to `true`_prior_ to\n     * the first deprecation warning, the `util.deprecate()` method does nothing.\n     *\n     * If the `--trace-deprecation` or `--trace-warnings` command-line flags are set,\n     * or the `process.traceDeprecation` property is set to `true`, a warning and a\n     * stack trace are printed to `stderr` the first time the deprecated function is\n     * called.\n     *\n     * If the `--throw-deprecation` command-line flag is set, or the`process.throwDeprecation` property is set to `true`, then an exception will be\n     * thrown when the deprecated function is called.\n     *\n     * The `--throw-deprecation` command-line flag and `process.throwDeprecation`property take precedence over `--trace-deprecation` and`process.traceDeprecation`.\n     * @since v0.8.0\n     * @param fn The function that is being deprecated.\n     * @param msg A warning message to display when the deprecated function is invoked.\n     * @param code A deprecation code. See the `list of deprecated APIs` for a list of codes.\n     * @return The deprecated function wrapped to emit a warning.\n     */\n    export function deprecate<T extends Function>(fn: T, msg: string, code?: string): T;\n    /**\n     * Returns `true` if there is deep strict equality between `val1` and `val2`.\n     * Otherwise, returns `false`.\n     *\n     * See `assert.deepStrictEqual()` for more information about deep strict\n     * equality.\n     * @since v9.0.0\n     */\n    export function isDeepStrictEqual(val1: unknown, val2: unknown): boolean;\n    /**\n     * Returns `str` with any ANSI escape codes removed.\n     *\n     * ```js\n     * console.log(util.stripVTControlCharacters('\\u001B[4mvalue\\u001B[0m'));\n     * // Prints \"value\"\n     * ```\n     * @since v16.11.0\n     */\n    export function stripVTControlCharacters(str: string): string;\n    /**\n     * Takes an `async` function (or a function that returns a `Promise`) and returns a\n     * function following the error-first callback style, i.e. taking\n     * an `(err, value) => ...` callback as the last argument. In the callback, the\n     * first argument will be the rejection reason (or `null` if the `Promise`resolved), and the second argument will be the resolved value.\n     *\n     * ```js\n     * const util = require('util');\n     *\n     * async function fn() {\n     *   return 'hello world';\n     * }\n     * const callbackFunction = util.callbackify(fn);\n     *\n     * callbackFunction((err, ret) => {\n     *   if (err) throw err;\n     *   console.log(ret);\n     * });\n     * ```\n     *\n     * Will print:\n     *\n     * ```text\n     * hello world\n     * ```\n     *\n     * The callback is executed asynchronously, and will have a limited stack trace.\n     * If the callback throws, the process will emit an `'uncaughtException'` event, and if not handled will exit.\n     *\n     * Since `null` has a special meaning as the first argument to a callback, if a\n     * wrapped function rejects a `Promise` with a falsy value as a reason, the value\n     * is wrapped in an `Error` with the original value stored in a field named`reason`.\n     *\n     * ```js\n     * function fn() {\n     *   return Promise.reject(null);\n     * }\n     * const callbackFunction = util.callbackify(fn);\n     *\n     * callbackFunction((err, ret) => {\n     *   // When the Promise was rejected with `null` it is wrapped with an Error and\n     *   // the original value is stored in `reason`.\n     *   err &#x26;&#x26; err.hasOwnProperty('reason') &#x26;&#x26; err.reason === null;  // true\n     * });\n     * ```\n     * @since v8.2.0\n     * @param original An `async` function\n     * @return a callback style function\n     */\n    export function callbackify(fn: () => Promise<void>): (callback: (err: NodeJS.ErrnoException) => void) => void;\n    export function callbackify<TResult>(fn: () => Promise<TResult>): (callback: (err: NodeJS.ErrnoException, result: TResult) => void) => void;\n    export function callbackify<T1>(fn: (arg1: T1) => Promise<void>): (arg1: T1, callback: (err: NodeJS.ErrnoException) => void) => void;\n    export function callbackify<T1, TResult>(fn: (arg1: T1) => Promise<TResult>): (arg1: T1, callback: (err: NodeJS.ErrnoException, result: TResult) => void) => void;\n    export function callbackify<T1, T2>(fn: (arg1: T1, arg2: T2) => Promise<void>): (arg1: T1, arg2: T2, callback: (err: NodeJS.ErrnoException) => void) => void;\n    export function callbackify<T1, T2, TResult>(fn: (arg1: T1, arg2: T2) => Promise<TResult>): (arg1: T1, arg2: T2, callback: (err: NodeJS.ErrnoException | null, result: TResult) => void) => void;\n    export function callbackify<T1, T2, T3>(fn: (arg1: T1, arg2: T2, arg3: T3) => Promise<void>): (arg1: T1, arg2: T2, arg3: T3, callback: (err: NodeJS.ErrnoException) => void) => void;\n    export function callbackify<T1, T2, T3, TResult>(\n        fn: (arg1: T1, arg2: T2, arg3: T3) => Promise<TResult>\n    ): (arg1: T1, arg2: T2, arg3: T3, callback: (err: NodeJS.ErrnoException | null, result: TResult) => void) => void;\n    export function callbackify<T1, T2, T3, T4>(\n        fn: (arg1: T1, arg2: T2, arg3: T3, arg4: T4) => Promise<void>\n    ): (arg1: T1, arg2: T2, arg3: T3, arg4: T4, callback: (err: NodeJS.ErrnoException) => void) => void;\n    export function callbackify<T1, T2, T3, T4, TResult>(\n        fn: (arg1: T1, arg2: T2, arg3: T3, arg4: T4) => Promise<TResult>\n    ): (arg1: T1, arg2: T2, arg3: T3, arg4: T4, callback: (err: NodeJS.ErrnoException | null, result: TResult) => void) => void;\n    export function callbackify<T1, T2, T3, T4, T5>(\n        fn: (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5) => Promise<void>\n    ): (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, callback: (err: NodeJS.ErrnoException) => void) => void;\n    export function callbackify<T1, T2, T3, T4, T5, TResult>(\n        fn: (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5) => Promise<TResult>\n    ): (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, callback: (err: NodeJS.ErrnoException | null, result: TResult) => void) => void;\n    export function callbackify<T1, T2, T3, T4, T5, T6>(\n        fn: (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, arg6: T6) => Promise<void>\n    ): (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, arg6: T6, callback: (err: NodeJS.ErrnoException) => void) => void;\n    export function callbackify<T1, T2, T3, T4, T5, T6, TResult>(\n        fn: (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, arg6: T6) => Promise<TResult>\n    ): (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, arg6: T6, callback: (err: NodeJS.ErrnoException | null, result: TResult) => void) => void;\n    export interface CustomPromisifyLegacy<TCustom extends Function> extends Function {\n        __promisify__: TCustom;\n    }\n    export interface CustomPromisifySymbol<TCustom extends Function> extends Function {\n        [promisify.custom]: TCustom;\n    }\n    export type CustomPromisify<TCustom extends Function> = CustomPromisifySymbol<TCustom> | CustomPromisifyLegacy<TCustom>;\n    /**\n     * Takes a function following the common error-first callback style, i.e. taking\n     * an `(err, value) => ...` callback as the last argument, and returns a version\n     * that returns promises.\n     *\n     * ```js\n     * const util = require('util');\n     * const fs = require('fs');\n     *\n     * const stat = util.promisify(fs.stat);\n     * stat('.').then((stats) => {\n     *   // Do something with `stats`\n     * }).catch((error) => {\n     *   // Handle the error.\n     * });\n     * ```\n     *\n     * Or, equivalently using `async function`s:\n     *\n     * ```js\n     * const util = require('util');\n     * const fs = require('fs');\n     *\n     * const stat = util.promisify(fs.stat);\n     *\n     * async function callStat() {\n     *   const stats = await stat('.');\n     *   console.log(`This directory is owned by ${stats.uid}`);\n     * }\n     * ```\n     *\n     * If there is an `original[util.promisify.custom]` property present, `promisify`will return its value, see `Custom promisified functions`.\n     *\n     * `promisify()` assumes that `original` is a function taking a callback as its\n     * final argument in all cases. If `original` is not a function, `promisify()`will throw an error. If `original` is a function but its last argument is not\n     * an error-first callback, it will still be passed an error-first\n     * callback as its last argument.\n     *\n     * Using `promisify()` on class methods or other methods that use `this` may not\n     * work as expected unless handled specially:\n     *\n     * ```js\n     * const util = require('util');\n     *\n     * class Foo {\n     *   constructor() {\n     *     this.a = 42;\n     *   }\n     *\n     *   bar(callback) {\n     *     callback(null, this.a);\n     *   }\n     * }\n     *\n     * const foo = new Foo();\n     *\n     * const naiveBar = util.promisify(foo.bar);\n     * // TypeError: Cannot read property 'a' of undefined\n     * // naiveBar().then(a => console.log(a));\n     *\n     * naiveBar.call(foo).then((a) => console.log(a)); // '42'\n     *\n     * const bindBar = naiveBar.bind(foo);\n     * bindBar().then((a) => console.log(a)); // '42'\n     * ```\n     * @since v8.0.0\n     */\n    export function promisify<TCustom extends Function>(fn: CustomPromisify<TCustom>): TCustom;\n    export function promisify<TResult>(fn: (callback: (err: any, result: TResult) => void) => void): () => Promise<TResult>;\n    export function promisify(fn: (callback: (err?: any) => void) => void): () => Promise<void>;\n    export function promisify<T1, TResult>(fn: (arg1: T1, callback: (err: any, result: TResult) => void) => void): (arg1: T1) => Promise<TResult>;\n    export function promisify<T1>(fn: (arg1: T1, callback: (err?: any) => void) => void): (arg1: T1) => Promise<void>;\n    export function promisify<T1, T2, TResult>(fn: (arg1: T1, arg2: T2, callback: (err: any, result: TResult) => void) => void): (arg1: T1, arg2: T2) => Promise<TResult>;\n    export function promisify<T1, T2>(fn: (arg1: T1, arg2: T2, callback: (err?: any) => void) => void): (arg1: T1, arg2: T2) => Promise<void>;\n    export function promisify<T1, T2, T3, TResult>(fn: (arg1: T1, arg2: T2, arg3: T3, callback: (err: any, result: TResult) => void) => void): (arg1: T1, arg2: T2, arg3: T3) => Promise<TResult>;\n    export function promisify<T1, T2, T3>(fn: (arg1: T1, arg2: T2, arg3: T3, callback: (err?: any) => void) => void): (arg1: T1, arg2: T2, arg3: T3) => Promise<void>;\n    export function promisify<T1, T2, T3, T4, TResult>(\n        fn: (arg1: T1, arg2: T2, arg3: T3, arg4: T4, callback: (err: any, result: TResult) => void) => void\n    ): (arg1: T1, arg2: T2, arg3: T3, arg4: T4) => Promise<TResult>;\n    export function promisify<T1, T2, T3, T4>(fn: (arg1: T1, arg2: T2, arg3: T3, arg4: T4, callback: (err?: any) => void) => void): (arg1: T1, arg2: T2, arg3: T3, arg4: T4) => Promise<void>;\n    export function promisify<T1, T2, T3, T4, T5, TResult>(\n        fn: (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, callback: (err: any, result: TResult) => void) => void\n    ): (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5) => Promise<TResult>;\n    export function promisify<T1, T2, T3, T4, T5>(\n        fn: (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, callback: (err?: any) => void) => void\n    ): (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5) => Promise<void>;\n    export function promisify(fn: Function): Function;\n    export namespace promisify {\n        /**\n         * That can be used to declare custom promisified variants of functions.\n         */\n        const custom: unique symbol;\n    }\n    /**\n     * An implementation of the [WHATWG Encoding Standard](https://encoding.spec.whatwg.org/) `TextDecoder` API.\n     *\n     * ```js\n     * const decoder = new TextDecoder('shift_jis');\n     * let string = '';\n     * let buffer;\n     * while (buffer = getNextChunkSomehow()) {\n     *   string += decoder.decode(buffer, { stream: true });\n     * }\n     * string += decoder.decode(); // end-of-stream\n     * ```\n     * @since v8.3.0\n     */\n    export class TextDecoder {\n        /**\n         * The encoding supported by the `TextDecoder` instance.\n         */\n        readonly encoding: string;\n        /**\n         * The value will be `true` if decoding errors result in a `TypeError` being\n         * thrown.\n         */\n        readonly fatal: boolean;\n        /**\n         * The value will be `true` if the decoding result will include the byte order\n         * mark.\n         */\n        readonly ignoreBOM: boolean;\n        constructor(\n            encoding?: string,\n            options?: {\n                fatal?: boolean | undefined;\n                ignoreBOM?: boolean | undefined;\n            }\n        );\n        /**\n         * Decodes the `input` and returns a string. If `options.stream` is `true`, any\n         * incomplete byte sequences occurring at the end of the `input` are buffered\n         * internally and emitted after the next call to `textDecoder.decode()`.\n         *\n         * If `textDecoder.fatal` is `true`, decoding errors that occur will result in a`TypeError` being thrown.\n         * @param input An `ArrayBuffer`, `DataView` or `TypedArray` instance containing the encoded data.\n         */\n        decode(\n            input?: NodeJS.ArrayBufferView | ArrayBuffer | null,\n            options?: {\n                stream?: boolean | undefined;\n            }\n        ): string;\n    }\n    export interface EncodeIntoResult {\n        /**\n         * The read Unicode code units of input.\n         */\n        read: number;\n        /**\n         * The written UTF-8 bytes of output.\n         */\n        written: number;\n    }\n    export { types };\n    /**\n     * An implementation of the [WHATWG Encoding Standard](https://encoding.spec.whatwg.org/) `TextEncoder` API. All\n     * instances of `TextEncoder` only support UTF-8 encoding.\n     *\n     * ```js\n     * const encoder = new TextEncoder();\n     * const uint8array = encoder.encode('this is some data');\n     * ```\n     *\n     * The `TextEncoder` class is also available on the global object.\n     * @since v8.3.0\n     */\n    export class TextEncoder {\n        /**\n         * The encoding supported by the `TextEncoder` instance. Always set to `'utf-8'`.\n         */\n        readonly encoding: string;\n        /**\n         * UTF-8 encodes the `input` string and returns a `Uint8Array` containing the\n         * encoded bytes.\n         * @param [input='an empty string'] The text to encode.\n         */\n        encode(input?: string): Uint8Array;\n        /**\n         * UTF-8 encodes the `src` string to the `dest` Uint8Array and returns an object\n         * containing the read Unicode code units and written UTF-8 bytes.\n         *\n         * ```js\n         * const encoder = new TextEncoder();\n         * const src = 'this is some data';\n         * const dest = new Uint8Array(10);\n         * const { read, written } = encoder.encodeInto(src, dest);\n         * ```\n         * @param src The text to encode.\n         * @param dest The array to hold the encode result.\n         */\n        encodeInto(src: string, dest: Uint8Array): EncodeIntoResult;\n    }\n}\ndeclare module 'util/types' {\n    export * from 'util/types';\n}\ndeclare module 'util/types' {\n    import { KeyObject, webcrypto } from 'node:crypto';\n    /**\n     * Returns `true` if the value is a built-in [`ArrayBuffer`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer) or\n     * [`SharedArrayBuffer`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer) instance.\n     *\n     * See also `util.types.isArrayBuffer()` and `util.types.isSharedArrayBuffer()`.\n     *\n     * ```js\n     * util.types.isAnyArrayBuffer(new ArrayBuffer());  // Returns true\n     * util.types.isAnyArrayBuffer(new SharedArrayBuffer());  // Returns true\n     * ```\n     * @since v10.0.0\n     */\n    function isAnyArrayBuffer(object: unknown): object is ArrayBufferLike;\n    /**\n     * Returns `true` if the value is an `arguments` object.\n     *\n     * ```js\n     * function foo() {\n     *   util.types.isArgumentsObject(arguments);  // Returns true\n     * }\n     * ```\n     * @since v10.0.0\n     */\n    function isArgumentsObject(object: unknown): object is IArguments;\n    /**\n     * Returns `true` if the value is a built-in [`ArrayBuffer`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer) instance.\n     * This does _not_ include [`SharedArrayBuffer`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer) instances. Usually, it is\n     * desirable to test for both; See `util.types.isAnyArrayBuffer()` for that.\n     *\n     * ```js\n     * util.types.isArrayBuffer(new ArrayBuffer());  // Returns true\n     * util.types.isArrayBuffer(new SharedArrayBuffer());  // Returns false\n     * ```\n     * @since v10.0.0\n     */\n    function isArrayBuffer(object: unknown): object is ArrayBuffer;\n    /**\n     * Returns `true` if the value is an instance of one of the [`ArrayBuffer`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer) views, such as typed\n     * array objects or [`DataView`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DataView). Equivalent to\n     * [`ArrayBuffer.isView()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer/isView).\n     *\n     * ```js\n     * util.types.isArrayBufferView(new Int8Array());  // true\n     * util.types.isArrayBufferView(Buffer.from('hello world')); // true\n     * util.types.isArrayBufferView(new DataView(new ArrayBuffer(16)));  // true\n     * util.types.isArrayBufferView(new ArrayBuffer());  // false\n     * ```\n     * @since v10.0.0\n     */\n    function isArrayBufferView(object: unknown): object is NodeJS.ArrayBufferView;\n    /**\n     * Returns `true` if the value is an [async function](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/async_function).\n     * This only reports back what the JavaScript engine is seeing;\n     * in particular, the return value may not match the original source code if\n     * a transpilation tool was used.\n     *\n     * ```js\n     * util.types.isAsyncFunction(function foo() {});  // Returns false\n     * util.types.isAsyncFunction(async function foo() {});  // Returns true\n     * ```\n     * @since v10.0.0\n     */\n    function isAsyncFunction(object: unknown): boolean;\n    /**\n     * Returns `true` if the value is a `BigInt64Array` instance.\n     *\n     * ```js\n     * util.types.isBigInt64Array(new BigInt64Array());   // Returns true\n     * util.types.isBigInt64Array(new BigUint64Array());  // Returns false\n     * ```\n     * @since v10.0.0\n     */\n    function isBigInt64Array(value: unknown): value is BigInt64Array;\n    /**\n     * Returns `true` if the value is a `BigUint64Array` instance.\n     *\n     * ```js\n     * util.types.isBigUint64Array(new BigInt64Array());   // Returns false\n     * util.types.isBigUint64Array(new BigUint64Array());  // Returns true\n     * ```\n     * @since v10.0.0\n     */\n    function isBigUint64Array(value: unknown): value is BigUint64Array;\n    /**\n     * Returns `true` if the value is a boolean object, e.g. created\n     * by `new Boolean()`.\n     *\n     * ```js\n     * util.types.isBooleanObject(false);  // Returns false\n     * util.types.isBooleanObject(true);   // Returns false\n     * util.types.isBooleanObject(new Boolean(false)); // Returns true\n     * util.types.isBooleanObject(new Boolean(true));  // Returns true\n     * util.types.isBooleanObject(Boolean(false)); // Returns false\n     * util.types.isBooleanObject(Boolean(true));  // Returns false\n     * ```\n     * @since v10.0.0\n     */\n    function isBooleanObject(object: unknown): object is Boolean;\n    /**\n     * Returns `true` if the value is any boxed primitive object, e.g. created\n     * by `new Boolean()`, `new String()` or `Object(Symbol())`.\n     *\n     * For example:\n     *\n     * ```js\n     * util.types.isBoxedPrimitive(false); // Returns false\n     * util.types.isBoxedPrimitive(new Boolean(false)); // Returns true\n     * util.types.isBoxedPrimitive(Symbol('foo')); // Returns false\n     * util.types.isBoxedPrimitive(Object(Symbol('foo'))); // Returns true\n     * util.types.isBoxedPrimitive(Object(BigInt(5))); // Returns true\n     * ```\n     * @since v10.11.0\n     */\n    function isBoxedPrimitive(object: unknown): object is String | Number | BigInt | Boolean | Symbol;\n    /**\n     * Returns `true` if the value is a built-in [`DataView`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DataView) instance.\n     *\n     * ```js\n     * const ab = new ArrayBuffer(20);\n     * util.types.isDataView(new DataView(ab));  // Returns true\n     * util.types.isDataView(new Float64Array());  // Returns false\n     * ```\n     *\n     * See also [`ArrayBuffer.isView()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer/isView).\n     * @since v10.0.0\n     */\n    function isDataView(object: unknown): object is DataView;\n    /**\n     * Returns `true` if the value is a built-in [`Date`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date) instance.\n     *\n     * ```js\n     * util.types.isDate(new Date());  // Returns true\n     * ```\n     * @since v10.0.0\n     */\n    function isDate(object: unknown): object is Date;\n    /**\n     * Returns `true` if the value is a native `External` value.\n     *\n     * A native `External` value is a special type of object that contains a\n     * raw C++ pointer (`void*`) for access from native code, and has no other\n     * properties. Such objects are created either by Node.js internals or native\n     * addons. In JavaScript, they are [frozen](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/freeze) objects with a`null` prototype.\n     *\n     * ```c\n     * #include <js_native_api.h>\n     * #include <stdlib.h>\n     * napi_value result;\n     * static napi_value MyNapi(napi_env env, napi_callback_info info) {\n     *   int* raw = (int*) malloc(1024);\n     *   napi_status status = napi_create_external(env, (void*) raw, NULL, NULL, &#x26;result);\n     *   if (status != napi_ok) {\n     *     napi_throw_error(env, NULL, \"napi_create_external failed\");\n     *     return NULL;\n     *   }\n     *   return result;\n     * }\n     * ...\n     * DECLARE_NAPI_PROPERTY(\"myNapi\", MyNapi)\n     * ...\n     * ```\n     *\n     * ```js\n     * const native = require('napi_addon.node');\n     * const data = native.myNapi();\n     * util.types.isExternal(data); // returns true\n     * util.types.isExternal(0); // returns false\n     * util.types.isExternal(new String('foo')); // returns false\n     * ```\n     *\n     * For further information on `napi_create_external`, refer to `napi_create_external()`.\n     * @since v10.0.0\n     */\n    function isExternal(object: unknown): boolean;\n    /**\n     * Returns `true` if the value is a built-in [`Float32Array`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Float32Array) instance.\n     *\n     * ```js\n     * util.types.isFloat32Array(new ArrayBuffer());  // Returns false\n     * util.types.isFloat32Array(new Float32Array());  // Returns true\n     * util.types.isFloat32Array(new Float64Array());  // Returns false\n     * ```\n     * @since v10.0.0\n     */\n    function isFloat32Array(object: unknown): object is Float32Array;\n    /**\n     * Returns `true` if the value is a built-in [`Float64Array`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Float64Array) instance.\n     *\n     * ```js\n     * util.types.isFloat64Array(new ArrayBuffer());  // Returns false\n     * util.types.isFloat64Array(new Uint8Array());  // Returns false\n     * util.types.isFloat64Array(new Float64Array());  // Returns true\n     * ```\n     * @since v10.0.0\n     */\n    function isFloat64Array(object: unknown): object is Float64Array;\n    /**\n     * Returns `true` if the value is a generator function.\n     * This only reports back what the JavaScript engine is seeing;\n     * in particular, the return value may not match the original source code if\n     * a transpilation tool was used.\n     *\n     * ```js\n     * util.types.isGeneratorFunction(function foo() {});  // Returns false\n     * util.types.isGeneratorFunction(function* foo() {});  // Returns true\n     * ```\n     * @since v10.0.0\n     */\n    function isGeneratorFunction(object: unknown): object is GeneratorFunction;\n    /**\n     * Returns `true` if the value is a generator object as returned from a\n     * built-in generator function.\n     * This only reports back what the JavaScript engine is seeing;\n     * in particular, the return value may not match the original source code if\n     * a transpilation tool was used.\n     *\n     * ```js\n     * function* foo() {}\n     * const generator = foo();\n     * util.types.isGeneratorObject(generator);  // Returns true\n     * ```\n     * @since v10.0.0\n     */\n    function isGeneratorObject(object: unknown): object is Generator;\n    /**\n     * Returns `true` if the value is a built-in [`Int8Array`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Int8Array) instance.\n     *\n     * ```js\n     * util.types.isInt8Array(new ArrayBuffer());  // Returns false\n     * util.types.isInt8Array(new Int8Array());  // Returns true\n     * util.types.isInt8Array(new Float64Array());  // Returns false\n     * ```\n     * @since v10.0.0\n     */\n    function isInt8Array(object: unknown): object is Int8Array;\n    /**\n     * Returns `true` if the value is a built-in [`Int16Array`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Int16Array) instance.\n     *\n     * ```js\n     * util.types.isInt16Array(new ArrayBuffer());  // Returns false\n     * util.types.isInt16Array(new Int16Array());  // Returns true\n     * util.types.isInt16Array(new Float64Array());  // Returns false\n     * ```\n     * @since v10.0.0\n     */\n    function isInt16Array(object: unknown): object is Int16Array;\n    /**\n     * Returns `true` if the value is a built-in [`Int32Array`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Int32Array) instance.\n     *\n     * ```js\n     * util.types.isInt32Array(new ArrayBuffer());  // Returns false\n     * util.types.isInt32Array(new Int32Array());  // Returns true\n     * util.types.isInt32Array(new Float64Array());  // Returns false\n     * ```\n     * @since v10.0.0\n     */\n    function isInt32Array(object: unknown): object is Int32Array;\n    /**\n     * Returns `true` if the value is a built-in [`Map`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map) instance.\n     *\n     * ```js\n     * util.types.isMap(new Map());  // Returns true\n     * ```\n     * @since v10.0.0\n     */\n    function isMap<T>(object: T | {}): object is T extends ReadonlyMap<any, any> ? (unknown extends T ? never : ReadonlyMap<any, any>) : Map<unknown, unknown>;\n    /**\n     * Returns `true` if the value is an iterator returned for a built-in [`Map`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map) instance.\n     *\n     * ```js\n     * const map = new Map();\n     * util.types.isMapIterator(map.keys());  // Returns true\n     * util.types.isMapIterator(map.values());  // Returns true\n     * util.types.isMapIterator(map.entries());  // Returns true\n     * util.types.isMapIterator(map[Symbol.iterator]());  // Returns true\n     * ```\n     * @since v10.0.0\n     */\n    function isMapIterator(object: unknown): boolean;\n    /**\n     * Returns `true` if the value is an instance of a [Module Namespace Object](https://tc39.github.io/ecma262/#sec-module-namespace-exotic-objects).\n     *\n     * ```js\n     * import * as ns from './a.js';\n     *\n     * util.types.isModuleNamespaceObject(ns);  // Returns true\n     * ```\n     * @since v10.0.0\n     */\n    function isModuleNamespaceObject(value: unknown): boolean;\n    /**\n     * Returns `true` if the value is an instance of a built-in `Error` type.\n     *\n     * ```js\n     * util.types.isNativeError(new Error());  // Returns true\n     * util.types.isNativeError(new TypeError());  // Returns true\n     * util.types.isNativeError(new RangeError());  // Returns true\n     * ```\n     * @since v10.0.0\n     */\n    function isNativeError(object: unknown): object is Error;\n    /**\n     * Returns `true` if the value is a number object, e.g. created\n     * by `new Number()`.\n     *\n     * ```js\n     * util.types.isNumberObject(0);  // Returns false\n     * util.types.isNumberObject(new Number(0));   // Returns true\n     * ```\n     * @since v10.0.0\n     */\n    function isNumberObject(object: unknown): object is Number;\n    /**\n     * Returns `true` if the value is a built-in [`Promise`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise).\n     *\n     * ```js\n     * util.types.isPromise(Promise.resolve(42));  // Returns true\n     * ```\n     * @since v10.0.0\n     */\n    function isPromise(object: unknown): object is Promise<unknown>;\n    /**\n     * Returns `true` if the value is a [`Proxy`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Proxy) instance.\n     *\n     * ```js\n     * const target = {};\n     * const proxy = new Proxy(target, {});\n     * util.types.isProxy(target);  // Returns false\n     * util.types.isProxy(proxy);  // Returns true\n     * ```\n     * @since v10.0.0\n     */\n    function isProxy(object: unknown): boolean;\n    /**\n     * Returns `true` if the value is a regular expression object.\n     *\n     * ```js\n     * util.types.isRegExp(/abc/);  // Returns true\n     * util.types.isRegExp(new RegExp('abc'));  // Returns true\n     * ```\n     * @since v10.0.0\n     */\n    function isRegExp(object: unknown): object is RegExp;\n    /**\n     * Returns `true` if the value is a built-in [`Set`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Set) instance.\n     *\n     * ```js\n     * util.types.isSet(new Set());  // Returns true\n     * ```\n     * @since v10.0.0\n     */\n    function isSet<T>(object: T | {}): object is T extends ReadonlySet<any> ? (unknown extends T ? never : ReadonlySet<any>) : Set<unknown>;\n    /**\n     * Returns `true` if the value is an iterator returned for a built-in [`Set`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Set) instance.\n     *\n     * ```js\n     * const set = new Set();\n     * util.types.isSetIterator(set.keys());  // Returns true\n     * util.types.isSetIterator(set.values());  // Returns true\n     * util.types.isSetIterator(set.entries());  // Returns true\n     * util.types.isSetIterator(set[Symbol.iterator]());  // Returns true\n     * ```\n     * @since v10.0.0\n     */\n    function isSetIterator(object: unknown): boolean;\n    /**\n     * Returns `true` if the value is a built-in [`SharedArrayBuffer`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer) instance.\n     * This does _not_ include [`ArrayBuffer`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer) instances. Usually, it is\n     * desirable to test for both; See `util.types.isAnyArrayBuffer()` for that.\n     *\n     * ```js\n     * util.types.isSharedArrayBuffer(new ArrayBuffer());  // Returns false\n     * util.types.isSharedArrayBuffer(new SharedArrayBuffer());  // Returns true\n     * ```\n     * @since v10.0.0\n     */\n    function isSharedArrayBuffer(object: unknown): object is SharedArrayBuffer;\n    /**\n     * Returns `true` if the value is a string object, e.g. created\n     * by `new String()`.\n     *\n     * ```js\n     * util.types.isStringObject('foo');  // Returns false\n     * util.types.isStringObject(new String('foo'));   // Returns true\n     * ```\n     * @since v10.0.0\n     */\n    function isStringObject(object: unknown): object is String;\n    /**\n     * Returns `true` if the value is a symbol object, created\n     * by calling `Object()` on a `Symbol` primitive.\n     *\n     * ```js\n     * const symbol = Symbol('foo');\n     * util.types.isSymbolObject(symbol);  // Returns false\n     * util.types.isSymbolObject(Object(symbol));   // Returns true\n     * ```\n     * @since v10.0.0\n     */\n    function isSymbolObject(object: unknown): object is Symbol;\n    /**\n     * Returns `true` if the value is a built-in [`TypedArray`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray) instance.\n     *\n     * ```js\n     * util.types.isTypedArray(new ArrayBuffer());  // Returns false\n     * util.types.isTypedArray(new Uint8Array());  // Returns true\n     * util.types.isTypedArray(new Float64Array());  // Returns true\n     * ```\n     *\n     * See also [`ArrayBuffer.isView()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer/isView).\n     * @since v10.0.0\n     */\n    function isTypedArray(object: unknown): object is NodeJS.TypedArray;\n    /**\n     * Returns `true` if the value is a built-in [`Uint8Array`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint8Array) instance.\n     *\n     * ```js\n     * util.types.isUint8Array(new ArrayBuffer());  // Returns false\n     * util.types.isUint8Array(new Uint8Array());  // Returns true\n     * util.types.isUint8Array(new Float64Array());  // Returns false\n     * ```\n     * @since v10.0.0\n     */\n    function isUint8Array(object: unknown): object is Uint8Array;\n    /**\n     * Returns `true` if the value is a built-in [`Uint8ClampedArray`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint8ClampedArray) instance.\n     *\n     * ```js\n     * util.types.isUint8ClampedArray(new ArrayBuffer());  // Returns false\n     * util.types.isUint8ClampedArray(new Uint8ClampedArray());  // Returns true\n     * util.types.isUint8ClampedArray(new Float64Array());  // Returns false\n     * ```\n     * @since v10.0.0\n     */\n    function isUint8ClampedArray(object: unknown): object is Uint8ClampedArray;\n    /**\n     * Returns `true` if the value is a built-in [`Uint16Array`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint16Array) instance.\n     *\n     * ```js\n     * util.types.isUint16Array(new ArrayBuffer());  // Returns false\n     * util.types.isUint16Array(new Uint16Array());  // Returns true\n     * util.types.isUint16Array(new Float64Array());  // Returns false\n     * ```\n     * @since v10.0.0\n     */\n    function isUint16Array(object: unknown): object is Uint16Array;\n    /**\n     * Returns `true` if the value is a built-in [`Uint32Array`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint32Array) instance.\n     *\n     * ```js\n     * util.types.isUint32Array(new ArrayBuffer());  // Returns false\n     * util.types.isUint32Array(new Uint32Array());  // Returns true\n     * util.types.isUint32Array(new Float64Array());  // Returns false\n     * ```\n     * @since v10.0.0\n     */\n    function isUint32Array(object: unknown): object is Uint32Array;\n    /**\n     * Returns `true` if the value is a built-in [`WeakMap`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/WeakMap) instance.\n     *\n     * ```js\n     * util.types.isWeakMap(new WeakMap());  // Returns true\n     * ```\n     * @since v10.0.0\n     */\n    function isWeakMap(object: unknown): object is WeakMap<object, unknown>;\n    /**\n     * Returns `true` if the value is a built-in [`WeakSet`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/WeakSet) instance.\n     *\n     * ```js\n     * util.types.isWeakSet(new WeakSet());  // Returns true\n     * ```\n     * @since v10.0.0\n     */\n    function isWeakSet(object: unknown): object is WeakSet<object>;\n    /**\n     * Returns `true` if `value` is a `KeyObject`, `false` otherwise.\n     * @since v16.2.0\n     */\n    function isKeyObject(object: unknown): object is KeyObject;\n    /**\n     * Returns `true` if `value` is a `CryptoKey`, `false` otherwise.\n     * @since v16.2.0\n     */\n    function isCryptoKey(object: unknown): object is webcrypto.CryptoKey;\n}\ndeclare module 'node:util' {\n    export * from 'util';\n}\ndeclare module 'node:util/types' {\n    export * from 'util/types';\n}\n"
    },
    {
      "path": "/node_modules/@types/node/v8.d.ts",
      "content": "/**\n * The `v8` module exposes APIs that are specific to the version of [V8](https://developers.google.com/v8/) built into the Node.js binary. It can be accessed using:\n *\n * ```js\n * const v8 = require('v8');\n * ```\n * @see [source](https://github.com/nodejs/node/blob/v16.9.0/lib/v8.js)\n */\ndeclare module 'v8' {\n    import { Readable } from 'node:stream';\n    interface HeapSpaceInfo {\n        space_name: string;\n        space_size: number;\n        space_used_size: number;\n        space_available_size: number;\n        physical_space_size: number;\n    }\n    // ** Signifies if the --zap_code_space option is enabled or not.  1 == enabled, 0 == disabled. */\n    type DoesZapCodeSpaceFlag = 0 | 1;\n    interface HeapInfo {\n        total_heap_size: number;\n        total_heap_size_executable: number;\n        total_physical_size: number;\n        total_available_size: number;\n        used_heap_size: number;\n        heap_size_limit: number;\n        malloced_memory: number;\n        peak_malloced_memory: number;\n        does_zap_garbage: DoesZapCodeSpaceFlag;\n        number_of_native_contexts: number;\n        number_of_detached_contexts: number;\n    }\n    interface HeapCodeStatistics {\n        code_and_metadata_size: number;\n        bytecode_and_metadata_size: number;\n        external_script_source_size: number;\n    }\n    /**\n     * Returns an integer representing a version tag derived from the V8 version,\n     * command-line flags, and detected CPU features. This is useful for determining\n     * whether a `vm.Script` `cachedData` buffer is compatible with this instance\n     * of V8.\n     *\n     * ```js\n     * console.log(v8.cachedDataVersionTag()); // 3947234607\n     * // The value returned by v8.cachedDataVersionTag() is derived from the V8\n     * // version, command-line flags, and detected CPU features. Test that the value\n     * // does indeed update when flags are toggled.\n     * v8.setFlagsFromString('--allow_natives_syntax');\n     * console.log(v8.cachedDataVersionTag()); // 183726201\n     * ```\n     * @since v8.0.0\n     */\n    function cachedDataVersionTag(): number;\n    /**\n     * Returns an object with the following properties:\n     *\n     * `does_zap_garbage` is a 0/1 boolean, which signifies whether the`--zap_code_space` option is enabled or not. This makes V8 overwrite heap\n     * garbage with a bit pattern. The RSS footprint (resident set size) gets bigger\n     * because it continuously touches all heap pages and that makes them less likely\n     * to get swapped out by the operating system.\n     *\n     * `number_of_native_contexts` The value of native\\_context is the number of the\n     * top-level contexts currently active. Increase of this number over time indicates\n     * a memory leak.\n     *\n     * `number_of_detached_contexts` The value of detached\\_context is the number\n     * of contexts that were detached and not yet garbage collected. This number\n     * being non-zero indicates a potential memory leak.\n     *\n     * ```js\n     * {\n     *   total_heap_size: 7326976,\n     *   total_heap_size_executable: 4194304,\n     *   total_physical_size: 7326976,\n     *   total_available_size: 1152656,\n     *   used_heap_size: 3476208,\n     *   heap_size_limit: 1535115264,\n     *   malloced_memory: 16384,\n     *   peak_malloced_memory: 1127496,\n     *   does_zap_garbage: 0,\n     *   number_of_native_contexts: 1,\n     *   number_of_detached_contexts: 0\n     * }\n     * ```\n     * @since v1.0.0\n     */\n    function getHeapStatistics(): HeapInfo;\n    /**\n     * Returns statistics about the V8 heap spaces, i.e. the segments which make up\n     * the V8 heap. Neither the ordering of heap spaces, nor the availability of a\n     * heap space can be guaranteed as the statistics are provided via the\n     * V8[`GetHeapSpaceStatistics`](https://v8docs.nodesource.com/node-13.2/d5/dda/classv8_1_1_isolate.html#ac673576f24fdc7a33378f8f57e1d13a4) function and may change from one V8 version to the\n     * next.\n     *\n     * The value returned is an array of objects containing the following properties:\n     *\n     * ```json\n     * [\n     *   {\n     *     \"space_name\": \"new_space\",\n     *     \"space_size\": 2063872,\n     *     \"space_used_size\": 951112,\n     *     \"space_available_size\": 80824,\n     *     \"physical_space_size\": 2063872\n     *   },\n     *   {\n     *     \"space_name\": \"old_space\",\n     *     \"space_size\": 3090560,\n     *     \"space_used_size\": 2493792,\n     *     \"space_available_size\": 0,\n     *     \"physical_space_size\": 3090560\n     *   },\n     *   {\n     *     \"space_name\": \"code_space\",\n     *     \"space_size\": 1260160,\n     *     \"space_used_size\": 644256,\n     *     \"space_available_size\": 960,\n     *     \"physical_space_size\": 1260160\n     *   },\n     *   {\n     *     \"space_name\": \"map_space\",\n     *     \"space_size\": 1094160,\n     *     \"space_used_size\": 201608,\n     *     \"space_available_size\": 0,\n     *     \"physical_space_size\": 1094160\n     *   },\n     *   {\n     *     \"space_name\": \"large_object_space\",\n     *     \"space_size\": 0,\n     *     \"space_used_size\": 0,\n     *     \"space_available_size\": 1490980608,\n     *     \"physical_space_size\": 0\n     *   }\n     * ]\n     * ```\n     * @since v6.0.0\n     */\n    function getHeapSpaceStatistics(): HeapSpaceInfo[];\n    /**\n     * The `v8.setFlagsFromString()` method can be used to programmatically set\n     * V8 command-line flags. This method should be used with care. Changing settings\n     * after the VM has started may result in unpredictable behavior, including\n     * crashes and data loss; or it may simply do nothing.\n     *\n     * The V8 options available for a version of Node.js may be determined by running`node --v8-options`.\n     *\n     * Usage:\n     *\n     * ```js\n     * // Print GC events to stdout for one minute.\n     * const v8 = require('v8');\n     * v8.setFlagsFromString('--trace_gc');\n     * setTimeout(() => { v8.setFlagsFromString('--notrace_gc'); }, 60e3);\n     * ```\n     * @since v1.0.0\n     */\n    function setFlagsFromString(flags: string): void;\n    /**\n     * Generates a snapshot of the current V8 heap and returns a Readable\n     * Stream that may be used to read the JSON serialized representation.\n     * This JSON stream format is intended to be used with tools such as\n     * Chrome DevTools. The JSON schema is undocumented and specific to the\n     * V8 engine. Therefore, the schema may change from one version of V8 to the next.\n     *\n     * ```js\n     * // Print heap snapshot to the console\n     * const v8 = require('v8');\n     * const stream = v8.getHeapSnapshot();\n     * stream.pipe(process.stdout);\n     * ```\n     * @since v11.13.0\n     * @return A Readable Stream containing the V8 heap snapshot\n     */\n    function getHeapSnapshot(): Readable;\n    /**\n     * Generates a snapshot of the current V8 heap and writes it to a JSON\n     * file. This file is intended to be used with tools such as Chrome\n     * DevTools. The JSON schema is undocumented and specific to the V8\n     * engine, and may change from one version of V8 to the next.\n     *\n     * A heap snapshot is specific to a single V8 isolate. When using `worker threads`, a heap snapshot generated from the main thread will\n     * not contain any information about the workers, and vice versa.\n     *\n     * ```js\n     * const { writeHeapSnapshot } = require('v8');\n     * const {\n     *   Worker,\n     *   isMainThread,\n     *   parentPort\n     * } = require('worker_threads');\n     *\n     * if (isMainThread) {\n     *   const worker = new Worker(__filename);\n     *\n     *   worker.once('message', (filename) => {\n     *     console.log(`worker heapdump: ${filename}`);\n     *     // Now get a heapdump for the main thread.\n     *     console.log(`main thread heapdump: ${writeHeapSnapshot()}`);\n     *   });\n     *\n     *   // Tell the worker to create a heapdump.\n     *   worker.postMessage('heapdump');\n     * } else {\n     *   parentPort.once('message', (message) => {\n     *     if (message === 'heapdump') {\n     *       // Generate a heapdump for the worker\n     *       // and return the filename to the parent.\n     *       parentPort.postMessage(writeHeapSnapshot());\n     *     }\n     *   });\n     * }\n     * ```\n     * @since v11.13.0\n     * @param filename The file path where the V8 heap snapshot is to be saved. If not specified, a file name with the pattern `'Heap-${yyyymmdd}-${hhmmss}-${pid}-${thread_id}.heapsnapshot'` will be\n     * generated, where `{pid}` will be the PID of the Node.js process, `{thread_id}` will be `0` when `writeHeapSnapshot()` is called from the main Node.js thread or the id of a\n     * worker thread.\n     * @return The filename where the snapshot was saved.\n     */\n    function writeHeapSnapshot(filename?: string): string;\n    /**\n     * Returns an object with the following properties:\n     *\n     * ```js\n     * {\n     *   code_and_metadata_size: 212208,\n     *   bytecode_and_metadata_size: 161368,\n     *   external_script_source_size: 1410794\n     * }\n     * ```\n     * @since v12.8.0\n     */\n    function getHeapCodeStatistics(): HeapCodeStatistics;\n    /**\n     * @since v8.0.0\n     */\n    class Serializer {\n        /**\n         * Writes out a header, which includes the serialization format version.\n         */\n        writeHeader(): void;\n        /**\n         * Serializes a JavaScript value and adds the serialized representation to the\n         * internal buffer.\n         *\n         * This throws an error if `value` cannot be serialized.\n         */\n        writeValue(val: any): boolean;\n        /**\n         * Returns the stored internal buffer. This serializer should not be used once\n         * the buffer is released. Calling this method results in undefined behavior\n         * if a previous write has failed.\n         */\n        releaseBuffer(): Buffer;\n        /**\n         * Marks an `ArrayBuffer` as having its contents transferred out of band.\n         * Pass the corresponding `ArrayBuffer` in the deserializing context to `deserializer.transferArrayBuffer()`.\n         * @param id A 32-bit unsigned integer.\n         * @param arrayBuffer An `ArrayBuffer` instance.\n         */\n        transferArrayBuffer(id: number, arrayBuffer: ArrayBuffer): void;\n        /**\n         * Write a raw 32-bit unsigned integer.\n         * For use inside of a custom `serializer._writeHostObject()`.\n         */\n        writeUint32(value: number): void;\n        /**\n         * Write a raw 64-bit unsigned integer, split into high and low 32-bit parts.\n         * For use inside of a custom `serializer._writeHostObject()`.\n         */\n        writeUint64(hi: number, lo: number): void;\n        /**\n         * Write a JS `number` value.\n         * For use inside of a custom `serializer._writeHostObject()`.\n         */\n        writeDouble(value: number): void;\n        /**\n         * Write raw bytes into the serializer’s internal buffer. The deserializer\n         * will require a way to compute the length of the buffer.\n         * For use inside of a custom `serializer._writeHostObject()`.\n         */\n        writeRawBytes(buffer: NodeJS.TypedArray): void;\n    }\n    /**\n     * A subclass of `Serializer` that serializes `TypedArray`(in particular `Buffer`) and `DataView` objects as host objects, and only\n     * stores the part of their underlying `ArrayBuffer`s that they are referring to.\n     * @since v8.0.0\n     */\n    class DefaultSerializer extends Serializer {}\n    /**\n     * @since v8.0.0\n     */\n    class Deserializer {\n        constructor(data: NodeJS.TypedArray);\n        /**\n         * Reads and validates a header (including the format version).\n         * May, for example, reject an invalid or unsupported wire format. In that case,\n         * an `Error` is thrown.\n         */\n        readHeader(): boolean;\n        /**\n         * Deserializes a JavaScript value from the buffer and returns it.\n         */\n        readValue(): any;\n        /**\n         * Marks an `ArrayBuffer` as having its contents transferred out of band.\n         * Pass the corresponding `ArrayBuffer` in the serializing context to `serializer.transferArrayBuffer()` (or return the `id` from `serializer._getSharedArrayBufferId()` in the case of\n         * `SharedArrayBuffer`s).\n         * @param id A 32-bit unsigned integer.\n         * @param arrayBuffer An `ArrayBuffer` instance.\n         */\n        transferArrayBuffer(id: number, arrayBuffer: ArrayBuffer): void;\n        /**\n         * Reads the underlying wire format version. Likely mostly to be useful to\n         * legacy code reading old wire format versions. May not be called before`.readHeader()`.\n         */\n        getWireFormatVersion(): number;\n        /**\n         * Read a raw 32-bit unsigned integer and return it.\n         * For use inside of a custom `deserializer._readHostObject()`.\n         */\n        readUint32(): number;\n        /**\n         * Read a raw 64-bit unsigned integer and return it as an array `[hi, lo]`with two 32-bit unsigned integer entries.\n         * For use inside of a custom `deserializer._readHostObject()`.\n         */\n        readUint64(): [number, number];\n        /**\n         * Read a JS `number` value.\n         * For use inside of a custom `deserializer._readHostObject()`.\n         */\n        readDouble(): number;\n        /**\n         * Read raw bytes from the deserializer’s internal buffer. The `length` parameter\n         * must correspond to the length of the buffer that was passed to `serializer.writeRawBytes()`.\n         * For use inside of a custom `deserializer._readHostObject()`.\n         */\n        readRawBytes(length: number): Buffer;\n    }\n    /**\n     * A subclass of `Deserializer` corresponding to the format written by `DefaultSerializer`.\n     * @since v8.0.0\n     */\n    class DefaultDeserializer extends Deserializer {}\n    /**\n     * Uses a `DefaultSerializer` to serialize `value` into a buffer.\n     * @since v8.0.0\n     */\n    function serialize(value: any): Buffer;\n    /**\n     * Uses a `DefaultDeserializer` with default options to read a JS value\n     * from a buffer.\n     * @since v8.0.0\n     * @param buffer A buffer returned by {@link serialize}.\n     */\n    function deserialize(buffer: NodeJS.TypedArray): any;\n    /**\n     * The `v8.takeCoverage()` method allows the user to write the coverage started by `NODE_V8_COVERAGE` to disk on demand. This method can be invoked multiple\n     * times during the lifetime of the process. Each time the execution counter will\n     * be reset and a new coverage report will be written to the directory specified\n     * by `NODE_V8_COVERAGE`.\n     *\n     * When the process is about to exit, one last coverage will still be written to\n     * disk unless {@link stopCoverage} is invoked before the process exits.\n     * @since v15.1.0, v12.22.0\n     */\n    function takeCoverage(): void;\n    /**\n     * The `v8.stopCoverage()` method allows the user to stop the coverage collection\n     * started by `NODE_V8_COVERAGE`, so that V8 can release the execution count\n     * records and optimize code. This can be used in conjunction with {@link takeCoverage} if the user wants to collect the coverage on demand.\n     * @since v15.1.0, v12.22.0\n     */\n    function stopCoverage(): void;\n}\ndeclare module 'node:v8' {\n    export * from 'v8';\n}\n"
    },
    {
      "path": "/node_modules/@types/node/vm.d.ts",
      "content": "/**\n * The `vm` module enables compiling and running code within V8 Virtual\n * Machine contexts. **The `vm` module is not a security mechanism. Do**\n * **not use it to run untrusted code.**\n *\n * JavaScript code can be compiled and run immediately or\n * compiled, saved, and run later.\n *\n * A common use case is to run the code in a different V8 Context. This means\n * invoked code has a different global object than the invoking code.\n *\n * One can provide the context by `contextifying` an\n * object. The invoked code treats any property in the context like a\n * global variable. Any changes to global variables caused by the invoked\n * code are reflected in the context object.\n *\n * ```js\n * const vm = require('vm');\n *\n * const x = 1;\n *\n * const context = { x: 2 };\n * vm.createContext(context); // Contextify the object.\n *\n * const code = 'x += 40; var y = 17;';\n * // `x` and `y` are global variables in the context.\n * // Initially, x has the value 2 because that is the value of context.x.\n * vm.runInContext(code, context);\n *\n * console.log(context.x); // 42\n * console.log(context.y); // 17\n *\n * console.log(x); // 1; y is not defined.\n * ```\n * @see [source](https://github.com/nodejs/node/blob/v16.9.0/lib/vm.js)\n */\ndeclare module 'vm' {\n    interface Context extends NodeJS.Dict<any> {}\n    interface BaseOptions {\n        /**\n         * Specifies the filename used in stack traces produced by this script.\n         * Default: `''`.\n         */\n        filename?: string | undefined;\n        /**\n         * Specifies the line number offset that is displayed in stack traces produced by this script.\n         * Default: `0`.\n         */\n        lineOffset?: number | undefined;\n        /**\n         * Specifies the column number offset that is displayed in stack traces produced by this script.\n         * @default 0\n         */\n        columnOffset?: number | undefined;\n    }\n    interface ScriptOptions extends BaseOptions {\n        displayErrors?: boolean | undefined;\n        timeout?: number | undefined;\n        cachedData?: Buffer | undefined;\n        /** @deprecated in favor of `script.createCachedData()` */\n        produceCachedData?: boolean | undefined;\n    }\n    interface RunningScriptOptions extends BaseOptions {\n        /**\n         * When `true`, if an `Error` occurs while compiling the `code`, the line of code causing the error is attached to the stack trace.\n         * Default: `true`.\n         */\n        displayErrors?: boolean | undefined;\n        /**\n         * Specifies the number of milliseconds to execute code before terminating execution.\n         * If execution is terminated, an `Error` will be thrown. This value must be a strictly positive integer.\n         */\n        timeout?: number | undefined;\n        /**\n         * If `true`, the execution will be terminated when `SIGINT` (Ctrl+C) is received.\n         * Existing handlers for the event that have been attached via `process.on('SIGINT')` will be disabled during script execution, but will continue to work after that.\n         * If execution is terminated, an `Error` will be thrown.\n         * Default: `false`.\n         */\n        breakOnSigint?: boolean | undefined;\n        /**\n         * If set to `afterEvaluate`, microtasks will be run immediately after the script has run.\n         */\n        microtaskMode?: 'afterEvaluate' | undefined;\n    }\n    interface CompileFunctionOptions extends BaseOptions {\n        /**\n         * Provides an optional data with V8's code cache data for the supplied source.\n         */\n        cachedData?: Buffer | undefined;\n        /**\n         * Specifies whether to produce new cache data.\n         * Default: `false`,\n         */\n        produceCachedData?: boolean | undefined;\n        /**\n         * The sandbox/context in which the said function should be compiled in.\n         */\n        parsingContext?: Context | undefined;\n        /**\n         * An array containing a collection of context extensions (objects wrapping the current scope) to be applied while compiling\n         */\n        contextExtensions?: Object[] | undefined;\n    }\n    interface CreateContextOptions {\n        /**\n         * Human-readable name of the newly created context.\n         * @default 'VM Context i' Where i is an ascending numerical index of the created context.\n         */\n        name?: string | undefined;\n        /**\n         * Corresponds to the newly created context for display purposes.\n         * The origin should be formatted like a `URL`, but with only the scheme, host, and port (if necessary),\n         * like the value of the `url.origin` property of a URL object.\n         * Most notably, this string should omit the trailing slash, as that denotes a path.\n         * @default ''\n         */\n        origin?: string | undefined;\n        codeGeneration?:\n            | {\n                  /**\n                   * If set to false any calls to eval or function constructors (Function, GeneratorFunction, etc)\n                   * will throw an EvalError.\n                   * @default true\n                   */\n                  strings?: boolean | undefined;\n                  /**\n                   * If set to false any attempt to compile a WebAssembly module will throw a WebAssembly.CompileError.\n                   * @default true\n                   */\n                  wasm?: boolean | undefined;\n              }\n            | undefined;\n        /**\n         * If set to `afterEvaluate`, microtasks will be run immediately after the script has run.\n         */\n        microtaskMode?: 'afterEvaluate' | undefined;\n    }\n    type MeasureMemoryMode = 'summary' | 'detailed';\n    interface MeasureMemoryOptions {\n        /**\n         * @default 'summary'\n         */\n        mode?: MeasureMemoryMode | undefined;\n        context?: Context | undefined;\n    }\n    interface MemoryMeasurement {\n        total: {\n            jsMemoryEstimate: number;\n            jsMemoryRange: [number, number];\n        };\n    }\n    /**\n     * Instances of the `vm.Script` class contain precompiled scripts that can be\n     * executed in specific contexts.\n     * @since v0.3.1\n     */\n    class Script {\n        constructor(code: string, options?: ScriptOptions);\n        /**\n         * Runs the compiled code contained by the `vm.Script` object within the given`contextifiedObject` and returns the result. Running code does not have access\n         * to local scope.\n         *\n         * The following example compiles code that increments a global variable, sets\n         * the value of another global variable, then execute the code multiple times.\n         * The globals are contained in the `context` object.\n         *\n         * ```js\n         * const vm = require('vm');\n         *\n         * const context = {\n         *   animal: 'cat',\n         *   count: 2\n         * };\n         *\n         * const script = new vm.Script('count += 1; name = \"kitty\";');\n         *\n         * vm.createContext(context);\n         * for (let i = 0; i < 10; ++i) {\n         *   script.runInContext(context);\n         * }\n         *\n         * console.log(context);\n         * // Prints: { animal: 'cat', count: 12, name: 'kitty' }\n         * ```\n         *\n         * Using the `timeout` or `breakOnSigint` options will result in new event loops\n         * and corresponding threads being started, which have a non-zero performance\n         * overhead.\n         * @since v0.3.1\n         * @param contextifiedObject A `contextified` object as returned by the `vm.createContext()` method.\n         * @return the result of the very last statement executed in the script.\n         */\n        runInContext(contextifiedObject: Context, options?: RunningScriptOptions): any;\n        /**\n         * First contextifies the given `contextObject`, runs the compiled code contained\n         * by the `vm.Script` object within the created context, and returns the result.\n         * Running code does not have access to local scope.\n         *\n         * The following example compiles code that sets a global variable, then executes\n         * the code multiple times in different contexts. The globals are set on and\n         * contained within each individual `context`.\n         *\n         * ```js\n         * const vm = require('vm');\n         *\n         * const script = new vm.Script('globalVar = \"set\"');\n         *\n         * const contexts = [{}, {}, {}];\n         * contexts.forEach((context) => {\n         *   script.runInNewContext(context);\n         * });\n         *\n         * console.log(contexts);\n         * // Prints: [{ globalVar: 'set' }, { globalVar: 'set' }, { globalVar: 'set' }]\n         * ```\n         * @since v0.3.1\n         * @param contextObject An object that will be `contextified`. If `undefined`, a new object will be created.\n         * @return the result of the very last statement executed in the script.\n         */\n        runInNewContext(contextObject?: Context, options?: RunningScriptOptions): any;\n        /**\n         * Runs the compiled code contained by the `vm.Script` within the context of the\n         * current `global` object. Running code does not have access to local scope, but_does_ have access to the current `global` object.\n         *\n         * The following example compiles code that increments a `global` variable then\n         * executes that code multiple times:\n         *\n         * ```js\n         * const vm = require('vm');\n         *\n         * global.globalVar = 0;\n         *\n         * const script = new vm.Script('globalVar += 1', { filename: 'myfile.vm' });\n         *\n         * for (let i = 0; i < 1000; ++i) {\n         *   script.runInThisContext();\n         * }\n         *\n         * console.log(globalVar);\n         *\n         * // 1000\n         * ```\n         * @since v0.3.1\n         * @return the result of the very last statement executed in the script.\n         */\n        runInThisContext(options?: RunningScriptOptions): any;\n        /**\n         * Creates a code cache that can be used with the `Script` constructor's`cachedData` option. Returns a `Buffer`. This method may be called at any\n         * time and any number of times.\n         *\n         * ```js\n         * const script = new vm.Script(`\n         * function add(a, b) {\n         *   return a + b;\n         * }\n         *\n         * const x = add(1, 2);\n         * `);\n         *\n         * const cacheWithoutX = script.createCachedData();\n         *\n         * script.runInThisContext();\n         *\n         * const cacheWithX = script.createCachedData();\n         * ```\n         * @since v10.6.0\n         */\n        createCachedData(): Buffer;\n        /** @deprecated in favor of `script.createCachedData()` */\n        cachedDataProduced?: boolean | undefined;\n        cachedDataRejected?: boolean | undefined;\n        cachedData?: Buffer | undefined;\n    }\n    /**\n     * If given a `contextObject`, the `vm.createContext()` method will `prepare\n     * that object` so that it can be used in calls to {@link runInContext} or `script.runInContext()`. Inside such scripts,\n     * the `contextObject` will be the global object, retaining all of its existing\n     * properties but also having the built-in objects and functions any standard [global object](https://es5.github.io/#x15.1) has. Outside of scripts run by the vm module, global variables\n     * will remain unchanged.\n     *\n     * ```js\n     * const vm = require('vm');\n     *\n     * global.globalVar = 3;\n     *\n     * const context = { globalVar: 1 };\n     * vm.createContext(context);\n     *\n     * vm.runInContext('globalVar *= 2;', context);\n     *\n     * console.log(context);\n     * // Prints: { globalVar: 2 }\n     *\n     * console.log(global.globalVar);\n     * // Prints: 3\n     * ```\n     *\n     * If `contextObject` is omitted (or passed explicitly as `undefined`), a new,\n     * empty `contextified` object will be returned.\n     *\n     * The `vm.createContext()` method is primarily useful for creating a single\n     * context that can be used to run multiple scripts. For instance, if emulating a\n     * web browser, the method can be used to create a single context representing a\n     * window's global object, then run all `<script>` tags together within that\n     * context.\n     *\n     * The provided `name` and `origin` of the context are made visible through the\n     * Inspector API.\n     * @since v0.3.1\n     * @return contextified object.\n     */\n    function createContext(sandbox?: Context, options?: CreateContextOptions): Context;\n    /**\n     * Returns `true` if the given `object` object has been `contextified` using {@link createContext}.\n     * @since v0.11.7\n     */\n    function isContext(sandbox: Context): boolean;\n    /**\n     * The `vm.runInContext()` method compiles `code`, runs it within the context of\n     * the `contextifiedObject`, then returns the result. Running code does not have\n     * access to the local scope. The `contextifiedObject` object _must_ have been\n     * previously `contextified` using the {@link createContext} method.\n     *\n     * If `options` is a string, then it specifies the filename.\n     *\n     * The following example compiles and executes different scripts using a single `contextified` object:\n     *\n     * ```js\n     * const vm = require('vm');\n     *\n     * const contextObject = { globalVar: 1 };\n     * vm.createContext(contextObject);\n     *\n     * for (let i = 0; i < 10; ++i) {\n     *   vm.runInContext('globalVar *= 2;', contextObject);\n     * }\n     * console.log(contextObject);\n     * // Prints: { globalVar: 1024 }\n     * ```\n     * @since v0.3.1\n     * @param code The JavaScript code to compile and run.\n     * @param contextifiedObject The `contextified` object that will be used as the `global` when the `code` is compiled and run.\n     * @return the result of the very last statement executed in the script.\n     */\n    function runInContext(code: string, contextifiedObject: Context, options?: RunningScriptOptions | string): any;\n    /**\n     * The `vm.runInNewContext()` first contextifies the given `contextObject` (or\n     * creates a new `contextObject` if passed as `undefined`), compiles the `code`,\n     * runs it within the created context, then returns the result. Running code\n     * does not have access to the local scope.\n     *\n     * If `options` is a string, then it specifies the filename.\n     *\n     * The following example compiles and executes code that increments a global\n     * variable and sets a new one. These globals are contained in the `contextObject`.\n     *\n     * ```js\n     * const vm = require('vm');\n     *\n     * const contextObject = {\n     *   animal: 'cat',\n     *   count: 2\n     * };\n     *\n     * vm.runInNewContext('count += 1; name = \"kitty\"', contextObject);\n     * console.log(contextObject);\n     * // Prints: { animal: 'cat', count: 3, name: 'kitty' }\n     * ```\n     * @since v0.3.1\n     * @param code The JavaScript code to compile and run.\n     * @param contextObject An object that will be `contextified`. If `undefined`, a new object will be created.\n     * @return the result of the very last statement executed in the script.\n     */\n    function runInNewContext(code: string, contextObject?: Context, options?: RunningScriptOptions | string): any;\n    /**\n     * `vm.runInThisContext()` compiles `code`, runs it within the context of the\n     * current `global` and returns the result. Running code does not have access to\n     * local scope, but does have access to the current `global` object.\n     *\n     * If `options` is a string, then it specifies the filename.\n     *\n     * The following example illustrates using both `vm.runInThisContext()` and\n     * the JavaScript [`eval()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/eval) function to run the same code:\n     *\n     * ```js\n     * const vm = require('vm');\n     * let localVar = 'initial value';\n     *\n     * const vmResult = vm.runInThisContext('localVar = \"vm\";');\n     * console.log(`vmResult: '${vmResult}', localVar: '${localVar}'`);\n     * // Prints: vmResult: 'vm', localVar: 'initial value'\n     *\n     * const evalResult = eval('localVar = \"eval\";');\n     * console.log(`evalResult: '${evalResult}', localVar: '${localVar}'`);\n     * // Prints: evalResult: 'eval', localVar: 'eval'\n     * ```\n     *\n     * Because `vm.runInThisContext()` does not have access to the local scope,`localVar` is unchanged. In contrast,\n     * [`eval()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/eval) _does_ have access to the\n     * local scope, so the value `localVar` is changed. In this way`vm.runInThisContext()` is much like an [indirect `eval()` call](https://es5.github.io/#x10.4.2), e.g.`(0,eval)('code')`.\n     *\n     * ## Example: Running an HTTP server within a VM\n     *\n     * When using either `script.runInThisContext()` or {@link runInThisContext}, the code is executed within the current V8 global\n     * context. The code passed to this VM context will have its own isolated scope.\n     *\n     * In order to run a simple web server using the `http` module the code passed to\n     * the context must either call `require('http')` on its own, or have a reference\n     * to the `http` module passed to it. For instance:\n     *\n     * ```js\n     * 'use strict';\n     * const vm = require('vm');\n     *\n     * const code = `\n     * ((require) => {\n     *   const http = require('http');\n     *\n     *   http.createServer((request, response) => {\n     *     response.writeHead(200, { 'Content-Type': 'text/plain' });\n     *     response.end('Hello World\\\\n');\n     *   }).listen(8124);\n     *\n     *   console.log('Server running at http://127.0.0.1:8124/');\n     * })`;\n     *\n     * vm.runInThisContext(code)(require);\n     * ```\n     *\n     * The `require()` in the above case shares the state with the context it is\n     * passed from. This may introduce risks when untrusted code is executed, e.g.\n     * altering objects in the context in unwanted ways.\n     * @since v0.3.1\n     * @param code The JavaScript code to compile and run.\n     * @return the result of the very last statement executed in the script.\n     */\n    function runInThisContext(code: string, options?: RunningScriptOptions | string): any;\n    /**\n     * Compiles the given code into the provided context (if no context is\n     * supplied, the current context is used), and returns it wrapped inside a\n     * function with the given `params`.\n     * @since v10.10.0\n     * @param code The body of the function to compile.\n     * @param params An array of strings containing all parameters for the function.\n     */\n    function compileFunction(code: string, params?: ReadonlyArray<string>, options?: CompileFunctionOptions): Function;\n    /**\n     * Measure the memory known to V8 and used by all contexts known to the\n     * current V8 isolate, or the main context.\n     *\n     * The format of the object that the returned Promise may resolve with is\n     * specific to the V8 engine and may change from one version of V8 to the next.\n     *\n     * The returned result is different from the statistics returned by`v8.getHeapSpaceStatistics()` in that `vm.measureMemory()` measure the\n     * memory reachable by each V8 specific contexts in the current instance of\n     * the V8 engine, while the result of `v8.getHeapSpaceStatistics()` measure\n     * the memory occupied by each heap space in the current V8 instance.\n     *\n     * ```js\n     * const vm = require('vm');\n     * // Measure the memory used by the main context.\n     * vm.measureMemory({ mode: 'summary' })\n     *   // This is the same as vm.measureMemory()\n     *   .then((result) => {\n     *     // The current format is:\n     *     // {\n     *     //   total: {\n     *     //      jsMemoryEstimate: 2418479, jsMemoryRange: [ 2418479, 2745799 ]\n     *     //    }\n     *     // }\n     *     console.log(result);\n     *   });\n     *\n     * const context = vm.createContext({ a: 1 });\n     * vm.measureMemory({ mode: 'detailed', execution: 'eager' })\n     *   .then((result) => {\n     *     // Reference the context here so that it won't be GC'ed\n     *     // until the measurement is complete.\n     *     console.log(context.a);\n     *     // {\n     *     //   total: {\n     *     //     jsMemoryEstimate: 2574732,\n     *     //     jsMemoryRange: [ 2574732, 2904372 ]\n     *     //   },\n     *     //   current: {\n     *     //     jsMemoryEstimate: 2438996,\n     *     //     jsMemoryRange: [ 2438996, 2768636 ]\n     *     //   },\n     *     //   other: [\n     *     //     {\n     *     //       jsMemoryEstimate: 135736,\n     *     //       jsMemoryRange: [ 135736, 465376 ]\n     *     //     }\n     *     //   ]\n     *     // }\n     *     console.log(result);\n     *   });\n     * ```\n     * @since v13.10.0\n     * @experimental\n     */\n    function measureMemory(options?: MeasureMemoryOptions): Promise<MemoryMeasurement>;\n}\ndeclare module 'node:vm' {\n    export * from 'vm';\n}\n"
    },
    {
      "path": "/node_modules/@types/node/wasi.d.ts",
      "content": "/**\n * The WASI API provides an implementation of the [WebAssembly System Interface](https://wasi.dev/) specification. WASI gives sandboxed WebAssembly applications access to the\n * underlying operating system via a collection of POSIX-like functions.\n *\n * ```js\n * import { readFile } from 'fs/promises';\n * import { WASI } from 'wasi';\n * import { argv, env } from 'process';\n *\n * const wasi = new WASI({\n *   args: argv,\n *   env,\n *   preopens: {\n *     '/sandbox': '/some/real/path/that/wasm/can/access'\n *   }\n * });\n *\n * // Some WASI binaries require:\n * //   const importObject = { wasi_unstable: wasi.wasiImport };\n * const importObject = { wasi_snapshot_preview1: wasi.wasiImport };\n *\n * const wasm = await WebAssembly.compile(\n *   await readFile(new URL('./demo.wasm', import.meta.url))\n * );\n * const instance = await WebAssembly.instantiate(wasm, importObject);\n *\n * wasi.start(instance);\n * ```\n *\n * To run the above example, create a new WebAssembly text format file named`demo.wat`:\n *\n * ```text\n * (module\n *     ;; Import the required fd_write WASI function which will write the given io vectors to stdout\n *     ;; The function signature for fd_write is:\n *     ;; (File Descriptor, *iovs, iovs_len, nwritten) -> Returns number of bytes written\n *     (import \"wasi_snapshot_preview1\" \"fd_write\" (func $fd_write (param i32 i32 i32 i32) (result i32)))\n *\n *     (memory 1)\n *     (export \"memory\" (memory 0))\n *\n *     ;; Write 'hello world\\n' to memory at an offset of 8 bytes\n *     ;; Note the trailing newline which is required for the text to appear\n *     (data (i32.const 8) \"hello world\\n\")\n *\n *     (func $main (export \"_start\")\n *         ;; Creating a new io vector within linear memory\n *         (i32.store (i32.const 0) (i32.const 8))  ;; iov.iov_base - This is a pointer to the start of the 'hello world\\n' string\n *         (i32.store (i32.const 4) (i32.const 12))  ;; iov.iov_len - The length of the 'hello world\\n' string\n *\n *         (call $fd_write\n *             (i32.const 1) ;; file_descriptor - 1 for stdout\n *             (i32.const 0) ;; *iovs - The pointer to the iov array, which is stored at memory location 0\n *             (i32.const 1) ;; iovs_len - We're printing 1 string stored in an iov - so one.\n *             (i32.const 20) ;; nwritten - A place in memory to store the number of bytes written\n *         )\n *         drop ;; Discard the number of bytes written from the top of the stack\n *     )\n * )\n * ```\n *\n * Use [wabt](https://github.com/WebAssembly/wabt) to compile `.wat` to `.wasm`\n *\n * ```console\n * $ wat2wasm demo.wat\n * ```\n *\n * The `--experimental-wasi-unstable-preview1` CLI argument is needed for this\n * example to run.\n * @experimental\n * @see [source](https://github.com/nodejs/node/blob/v16.9.0/lib/wasi.js)\n */\ndeclare module 'wasi' {\n    interface WASIOptions {\n        /**\n         * An array of strings that the WebAssembly application will\n         * see as command line arguments. The first argument is the virtual path to the\n         * WASI command itself.\n         */\n        args?: string[] | undefined;\n        /**\n         * An object similar to `process.env` that the WebAssembly\n         * application will see as its environment.\n         */\n        env?: object | undefined;\n        /**\n         * This object represents the WebAssembly application's\n         * sandbox directory structure. The string keys of `preopens` are treated as\n         * directories within the sandbox. The corresponding values in `preopens` are\n         * the real paths to those directories on the host machine.\n         */\n        preopens?: NodeJS.Dict<string> | undefined;\n        /**\n         * By default, WASI applications terminate the Node.js\n         * process via the `__wasi_proc_exit()` function. Setting this option to `true`\n         * causes `wasi.start()` to return the exit code rather than terminate the\n         * process.\n         * @default false\n         */\n        returnOnExit?: boolean | undefined;\n        /**\n         * The file descriptor used as standard input in the WebAssembly application.\n         * @default 0\n         */\n        stdin?: number | undefined;\n        /**\n         * The file descriptor used as standard output in the WebAssembly application.\n         * @default 1\n         */\n        stdout?: number | undefined;\n        /**\n         * The file descriptor used as standard error in the WebAssembly application.\n         * @default 2\n         */\n        stderr?: number | undefined;\n    }\n    /**\n     * The `WASI` class provides the WASI system call API and additional convenience\n     * methods for working with WASI-based applications. Each `WASI` instance\n     * represents a distinct sandbox environment. For security purposes, each `WASI`instance must have its command-line arguments, environment variables, and\n     * sandbox directory structure configured explicitly.\n     * @since v13.3.0, v12.16.0\n     */\n    class WASI {\n        constructor(options?: WASIOptions);\n        /**\n         * Attempt to begin execution of `instance` as a WASI command by invoking its`_start()` export. If `instance` does not contain a `_start()` export, or if`instance` contains an `_initialize()`\n         * export, then an exception is thrown.\n         *\n         * `start()` requires that `instance` exports a [`WebAssembly.Memory`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/WebAssembly/Memory) named`memory`. If\n         * `instance` does not have a `memory` export an exception is thrown.\n         *\n         * If `start()` is called more than once, an exception is thrown.\n         * @since v13.3.0, v12.16.0\n         */\n        start(instance: object): void; // TODO: avoid DOM dependency until WASM moved to own lib.\n        /**\n         * Attempt to initialize `instance` as a WASI reactor by invoking its`_initialize()` export, if it is present. If `instance` contains a `_start()`export, then an exception is thrown.\n         *\n         * `initialize()` requires that `instance` exports a [`WebAssembly.Memory`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/WebAssembly/Memory) named`memory`.\n         * If `instance` does not have a `memory` export an exception is thrown.\n         *\n         * If `initialize()` is called more than once, an exception is thrown.\n         * @since v14.6.0, v12.19.0\n         */\n        initialize(instance: object): void; // TODO: avoid DOM dependency until WASM moved to own lib.\n        /**\n         * `wasiImport` is an object that implements the WASI system call API. This object\n         * should be passed as the `wasi_snapshot_preview1` import during the instantiation\n         * of a [`WebAssembly.Instance`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/WebAssembly/Instance).\n         * @since v13.3.0, v12.16.0\n         */\n        readonly wasiImport: NodeJS.Dict<any>; // TODO: Narrow to DOM types\n    }\n}\ndeclare module 'node:wasi' {\n    export * from 'wasi';\n}\n"
    },
    {
      "path": "/node_modules/@types/node/worker_threads.d.ts",
      "content": "/**\n * The `worker_threads` module enables the use of threads that execute JavaScript\n * in parallel. To access it:\n *\n * ```js\n * const worker = require('worker_threads');\n * ```\n *\n * Workers (threads) are useful for performing CPU-intensive JavaScript operations.\n * They do not help much with I/O-intensive work. The Node.js built-in\n * asynchronous I/O operations are more efficient than Workers can be.\n *\n * Unlike `child_process` or `cluster`, `worker_threads` can share memory. They do\n * so by transferring `ArrayBuffer` instances or sharing `SharedArrayBuffer`instances.\n *\n * ```js\n * const {\n *   Worker, isMainThread, parentPort, workerData\n * } = require('worker_threads');\n *\n * if (isMainThread) {\n *   module.exports = function parseJSAsync(script) {\n *     return new Promise((resolve, reject) => {\n *       const worker = new Worker(__filename, {\n *         workerData: script\n *       });\n *       worker.on('message', resolve);\n *       worker.on('error', reject);\n *       worker.on('exit', (code) => {\n *         if (code !== 0)\n *           reject(new Error(`Worker stopped with exit code ${code}`));\n *       });\n *     });\n *   };\n * } else {\n *   const { parse } = require('some-js-parsing-library');\n *   const script = workerData;\n *   parentPort.postMessage(parse(script));\n * }\n * ```\n *\n * The above example spawns a Worker thread for each `parse()` call. In actual\n * practice, use a pool of Workers for these kinds of tasks. Otherwise, the\n * overhead of creating Workers would likely exceed their benefit.\n *\n * When implementing a worker pool, use the `AsyncResource` API to inform\n * diagnostic tools (e.g. to provide asynchronous stack traces) about the\n * correlation between tasks and their outcomes. See `\"Using AsyncResource for a Worker thread pool\"` in the `async_hooks` documentation for an example implementation.\n *\n * Worker threads inherit non-process-specific options by default. Refer to `Worker constructor options` to know how to customize worker thread options,\n * specifically `argv` and `execArgv` options.\n * @see [source](https://github.com/nodejs/node/blob/v16.9.0/lib/worker_threads.js)\n */\ndeclare module 'worker_threads' {\n    import { Blob } from 'node:buffer';\n    import { Context } from 'node:vm';\n    import { EventEmitter } from 'node:events';\n    import { EventLoopUtilityFunction } from 'node:perf_hooks';\n    import { FileHandle } from 'node:fs/promises';\n    import { Readable, Writable } from 'node:stream';\n    import { URL } from 'node:url';\n    import { X509Certificate } from 'node:crypto';\n    const isMainThread: boolean;\n    const parentPort: null | MessagePort;\n    const resourceLimits: ResourceLimits;\n    const SHARE_ENV: unique symbol;\n    const threadId: number;\n    const workerData: any;\n    /**\n     * Instances of the `worker.MessageChannel` class represent an asynchronous,\n     * two-way communications channel.\n     * The `MessageChannel` has no methods of its own. `new MessageChannel()`yields an object with `port1` and `port2` properties, which refer to linked `MessagePort` instances.\n     *\n     * ```js\n     * const { MessageChannel } = require('worker_threads');\n     *\n     * const { port1, port2 } = new MessageChannel();\n     * port1.on('message', (message) => console.log('received', message));\n     * port2.postMessage({ foo: 'bar' });\n     * // Prints: received { foo: 'bar' } from the `port1.on('message')` listener\n     * ```\n     * @since v10.5.0\n     */\n    class MessageChannel {\n        readonly port1: MessagePort;\n        readonly port2: MessagePort;\n    }\n    interface WorkerPerformance {\n        eventLoopUtilization: EventLoopUtilityFunction;\n    }\n    type TransferListItem = ArrayBuffer | MessagePort | FileHandle | X509Certificate | Blob;\n    /**\n     * Instances of the `worker.MessagePort` class represent one end of an\n     * asynchronous, two-way communications channel. It can be used to transfer\n     * structured data, memory regions and other `MessagePort`s between different `Worker` s.\n     *\n     * This implementation matches [browser `MessagePort`](https://developer.mozilla.org/en-US/docs/Web/API/MessagePort) s.\n     * @since v10.5.0\n     */\n    class MessagePort extends EventEmitter {\n        /**\n         * Disables further sending of messages on either side of the connection.\n         * This method can be called when no further communication will happen over this`MessagePort`.\n         *\n         * The `'close' event` is emitted on both `MessagePort` instances that\n         * are part of the channel.\n         * @since v10.5.0\n         */\n        close(): void;\n        /**\n         * Sends a JavaScript value to the receiving side of this channel.`value` is transferred in a way which is compatible with\n         * the [HTML structured clone algorithm](https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API/Structured_clone_algorithm).\n         *\n         * In particular, the significant differences to `JSON` are:\n         *\n         * * `value` may contain circular references.\n         * * `value` may contain instances of builtin JS types such as `RegExp`s,`BigInt`s, `Map`s, `Set`s, etc.\n         * * `value` may contain typed arrays, both using `ArrayBuffer`s\n         * and `SharedArrayBuffer`s.\n         * * `value` may contain [`WebAssembly.Module`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/WebAssembly/Module) instances.\n         * * `value` may not contain native (C++-backed) objects other than:\n         *\n         * ```js\n         * const { MessageChannel } = require('worker_threads');\n         * const { port1, port2 } = new MessageChannel();\n         *\n         * port1.on('message', (message) => console.log(message));\n         *\n         * const circularData = {};\n         * circularData.foo = circularData;\n         * // Prints: { foo: [Circular] }\n         * port2.postMessage(circularData);\n         * ```\n         *\n         * `transferList` may be a list of [`ArrayBuffer`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer), `MessagePort` and `FileHandle` objects.\n         * After transferring, they are not usable on the sending side of the channel\n         * anymore (even if they are not contained in `value`). Unlike with `child processes`, transferring handles such as network sockets is currently\n         * not supported.\n         *\n         * If `value` contains [`SharedArrayBuffer`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer) instances, those are accessible\n         * from either thread. They cannot be listed in `transferList`.\n         *\n         * `value` may still contain `ArrayBuffer` instances that are not in`transferList`; in that case, the underlying memory is copied rather than moved.\n         *\n         * ```js\n         * const { MessageChannel } = require('worker_threads');\n         * const { port1, port2 } = new MessageChannel();\n         *\n         * port1.on('message', (message) => console.log(message));\n         *\n         * const uint8Array = new Uint8Array([ 1, 2, 3, 4 ]);\n         * // This posts a copy of `uint8Array`:\n         * port2.postMessage(uint8Array);\n         * // This does not copy data, but renders `uint8Array` unusable:\n         * port2.postMessage(uint8Array, [ uint8Array.buffer ]);\n         *\n         * // The memory for the `sharedUint8Array` is accessible from both the\n         * // original and the copy received by `.on('message')`:\n         * const sharedUint8Array = new Uint8Array(new SharedArrayBuffer(4));\n         * port2.postMessage(sharedUint8Array);\n         *\n         * // This transfers a freshly created message port to the receiver.\n         * // This can be used, for example, to create communication channels between\n         * // multiple `Worker` threads that are children of the same parent thread.\n         * const otherChannel = new MessageChannel();\n         * port2.postMessage({ port: otherChannel.port1 }, [ otherChannel.port1 ]);\n         * ```\n         *\n         * The message object is cloned immediately, and can be modified after\n         * posting without having side effects.\n         *\n         * For more information on the serialization and deserialization mechanisms\n         * behind this API, see the `serialization API of the v8 module`.\n         * @since v10.5.0\n         */\n        postMessage(value: any, transferList?: ReadonlyArray<TransferListItem>): void;\n        /**\n         * Opposite of `unref()`. Calling `ref()` on a previously `unref()`ed port does_not_ let the program exit if it's the only active handle left (the default\n         * behavior). If the port is `ref()`ed, calling `ref()` again has no effect.\n         *\n         * If listeners are attached or removed using `.on('message')`, the port\n         * is `ref()`ed and `unref()`ed automatically depending on whether\n         * listeners for the event exist.\n         * @since v10.5.0\n         */\n        ref(): void;\n        /**\n         * Calling `unref()` on a port allows the thread to exit if this is the only\n         * active handle in the event system. If the port is already `unref()`ed calling`unref()` again has no effect.\n         *\n         * If listeners are attached or removed using `.on('message')`, the port is`ref()`ed and `unref()`ed automatically depending on whether\n         * listeners for the event exist.\n         * @since v10.5.0\n         */\n        unref(): void;\n        /**\n         * Starts receiving messages on this `MessagePort`. When using this port\n         * as an event emitter, this is called automatically once `'message'`listeners are attached.\n         *\n         * This method exists for parity with the Web `MessagePort` API. In Node.js,\n         * it is only useful for ignoring messages when no event listener is present.\n         * Node.js also diverges in its handling of `.onmessage`. Setting it\n         * automatically calls `.start()`, but unsetting it lets messages queue up\n         * until a new handler is set or the port is discarded.\n         * @since v10.5.0\n         */\n        start(): void;\n        addListener(event: 'close', listener: () => void): this;\n        addListener(event: 'message', listener: (value: any) => void): this;\n        addListener(event: 'messageerror', listener: (error: Error) => void): this;\n        addListener(event: string | symbol, listener: (...args: any[]) => void): this;\n        emit(event: 'close'): boolean;\n        emit(event: 'message', value: any): boolean;\n        emit(event: 'messageerror', error: Error): boolean;\n        emit(event: string | symbol, ...args: any[]): boolean;\n        on(event: 'close', listener: () => void): this;\n        on(event: 'message', listener: (value: any) => void): this;\n        on(event: 'messageerror', listener: (error: Error) => void): this;\n        on(event: string | symbol, listener: (...args: any[]) => void): this;\n        once(event: 'close', listener: () => void): this;\n        once(event: 'message', listener: (value: any) => void): this;\n        once(event: 'messageerror', listener: (error: Error) => void): this;\n        once(event: string | symbol, listener: (...args: any[]) => void): this;\n        prependListener(event: 'close', listener: () => void): this;\n        prependListener(event: 'message', listener: (value: any) => void): this;\n        prependListener(event: 'messageerror', listener: (error: Error) => void): this;\n        prependListener(event: string | symbol, listener: (...args: any[]) => void): this;\n        prependOnceListener(event: 'close', listener: () => void): this;\n        prependOnceListener(event: 'message', listener: (value: any) => void): this;\n        prependOnceListener(event: 'messageerror', listener: (error: Error) => void): this;\n        prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this;\n        removeListener(event: 'close', listener: () => void): this;\n        removeListener(event: 'message', listener: (value: any) => void): this;\n        removeListener(event: 'messageerror', listener: (error: Error) => void): this;\n        removeListener(event: string | symbol, listener: (...args: any[]) => void): this;\n        off(event: 'close', listener: () => void): this;\n        off(event: 'message', listener: (value: any) => void): this;\n        off(event: 'messageerror', listener: (error: Error) => void): this;\n        off(event: string | symbol, listener: (...args: any[]) => void): this;\n    }\n    interface WorkerOptions {\n        /**\n         * List of arguments which would be stringified and appended to\n         * `process.argv` in the worker. This is mostly similar to the `workerData`\n         * but the values will be available on the global `process.argv` as if they\n         * were passed as CLI options to the script.\n         */\n        argv?: any[] | undefined;\n        env?: NodeJS.Dict<string> | typeof SHARE_ENV | undefined;\n        eval?: boolean | undefined;\n        workerData?: any;\n        stdin?: boolean | undefined;\n        stdout?: boolean | undefined;\n        stderr?: boolean | undefined;\n        execArgv?: string[] | undefined;\n        resourceLimits?: ResourceLimits | undefined;\n        /**\n         * Additional data to send in the first worker message.\n         */\n        transferList?: TransferListItem[] | undefined;\n        /**\n         * @default true\n         */\n        trackUnmanagedFds?: boolean | undefined;\n    }\n    interface ResourceLimits {\n        /**\n         * The maximum size of a heap space for recently created objects.\n         */\n        maxYoungGenerationSizeMb?: number | undefined;\n        /**\n         * The maximum size of the main heap in MB.\n         */\n        maxOldGenerationSizeMb?: number | undefined;\n        /**\n         * The size of a pre-allocated memory range used for generated code.\n         */\n        codeRangeSizeMb?: number | undefined;\n        /**\n         * The default maximum stack size for the thread. Small values may lead to unusable Worker instances.\n         * @default 4\n         */\n        stackSizeMb?: number | undefined;\n    }\n    /**\n     * The `Worker` class represents an independent JavaScript execution thread.\n     * Most Node.js APIs are available inside of it.\n     *\n     * Notable differences inside a Worker environment are:\n     *\n     * * The `process.stdin`, `process.stdout` and `process.stderr` may be redirected by the parent thread.\n     * * The `require('worker_threads').isMainThread` property is set to `false`.\n     * * The `require('worker_threads').parentPort` message port is available.\n     * * `process.exit()` does not stop the whole program, just the single thread,\n     * and `process.abort()` is not available.\n     * * `process.chdir()` and `process` methods that set group or user ids\n     * are not available.\n     * * `process.env` is a copy of the parent thread's environment variables,\n     * unless otherwise specified. Changes to one copy are not visible in other\n     * threads, and are not visible to native add-ons (unless `worker.SHARE_ENV` is passed as the `env` option to the `Worker` constructor).\n     * * `process.title` cannot be modified.\n     * * Signals are not delivered through `process.on('...')`.\n     * * Execution may stop at any point as a result of `worker.terminate()` being invoked.\n     * * IPC channels from parent processes are not accessible.\n     * * The `trace_events` module is not supported.\n     * * Native add-ons can only be loaded from multiple threads if they fulfill `certain conditions`.\n     *\n     * Creating `Worker` instances inside of other `Worker`s is possible.\n     *\n     * Like [Web Workers](https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API) and the `cluster module`, two-way communication can be\n     * achieved through inter-thread message passing. Internally, a `Worker` has a\n     * built-in pair of `MessagePort` s that are already associated with each other\n     * when the `Worker` is created. While the `MessagePort` object on the parent side\n     * is not directly exposed, its functionalities are exposed through `worker.postMessage()` and the `worker.on('message')` event\n     * on the `Worker` object for the parent thread.\n     *\n     * To create custom messaging channels (which is encouraged over using the default\n     * global channel because it facilitates separation of concerns), users can create\n     * a `MessageChannel` object on either thread and pass one of the`MessagePort`s on that `MessageChannel` to the other thread through a\n     * pre-existing channel, such as the global one.\n     *\n     * See `port.postMessage()` for more information on how messages are passed,\n     * and what kind of JavaScript values can be successfully transported through\n     * the thread barrier.\n     *\n     * ```js\n     * const assert = require('assert');\n     * const {\n     *   Worker, MessageChannel, MessagePort, isMainThread, parentPort\n     * } = require('worker_threads');\n     * if (isMainThread) {\n     *   const worker = new Worker(__filename);\n     *   const subChannel = new MessageChannel();\n     *   worker.postMessage({ hereIsYourPort: subChannel.port1 }, [subChannel.port1]);\n     *   subChannel.port2.on('message', (value) => {\n     *     console.log('received:', value);\n     *   });\n     * } else {\n     *   parentPort.once('message', (value) => {\n     *     assert(value.hereIsYourPort instanceof MessagePort);\n     *     value.hereIsYourPort.postMessage('the worker is sending this');\n     *     value.hereIsYourPort.close();\n     *   });\n     * }\n     * ```\n     * @since v10.5.0\n     */\n    class Worker extends EventEmitter {\n        /**\n         * If `stdin: true` was passed to the `Worker` constructor, this is a\n         * writable stream. The data written to this stream will be made available in\n         * the worker thread as `process.stdin`.\n         * @since v10.5.0\n         */\n        readonly stdin: Writable | null;\n        /**\n         * This is a readable stream which contains data written to `process.stdout` inside the worker thread. If `stdout: true` was not passed to the `Worker` constructor, then data is piped to the\n         * parent thread's `process.stdout` stream.\n         * @since v10.5.0\n         */\n        readonly stdout: Readable;\n        /**\n         * This is a readable stream which contains data written to `process.stderr` inside the worker thread. If `stderr: true` was not passed to the `Worker` constructor, then data is piped to the\n         * parent thread's `process.stderr` stream.\n         * @since v10.5.0\n         */\n        readonly stderr: Readable;\n        /**\n         * An integer identifier for the referenced thread. Inside the worker thread,\n         * it is available as `require('worker_threads').threadId`.\n         * This value is unique for each `Worker` instance inside a single process.\n         * @since v10.5.0\n         */\n        readonly threadId: number;\n        /**\n         * Provides the set of JS engine resource constraints for this Worker thread.\n         * If the `resourceLimits` option was passed to the `Worker` constructor,\n         * this matches its values.\n         *\n         * If the worker has stopped, the return value is an empty object.\n         * @since v13.2.0, v12.16.0\n         */\n        readonly resourceLimits?: ResourceLimits | undefined;\n        /**\n         * An object that can be used to query performance information from a worker\n         * instance. Similar to `perf_hooks.performance`.\n         * @since v15.1.0, v12.22.0\n         */\n        readonly performance: WorkerPerformance;\n        /**\n         * @param filename  The path to the Worker’s main script or module.\n         *                  Must be either an absolute path or a relative path (i.e. relative to the current working directory) starting with ./ or ../,\n         *                  or a WHATWG URL object using file: protocol. If options.eval is true, this is a string containing JavaScript code rather than a path.\n         */\n        constructor(filename: string | URL, options?: WorkerOptions);\n        /**\n         * Send a message to the worker that is received via `require('worker_threads').parentPort.on('message')`.\n         * See `port.postMessage()` for more details.\n         * @since v10.5.0\n         */\n        postMessage(value: any, transferList?: ReadonlyArray<TransferListItem>): void;\n        /**\n         * Opposite of `unref()`, calling `ref()` on a previously `unref()`ed worker does_not_ let the program exit if it's the only active handle left (the default\n         * behavior). If the worker is `ref()`ed, calling `ref()` again has\n         * no effect.\n         * @since v10.5.0\n         */\n        ref(): void;\n        /**\n         * Calling `unref()` on a worker allows the thread to exit if this is the only\n         * active handle in the event system. If the worker is already `unref()`ed calling`unref()` again has no effect.\n         * @since v10.5.0\n         */\n        unref(): void;\n        /**\n         * Stop all JavaScript execution in the worker thread as soon as possible.\n         * Returns a Promise for the exit code that is fulfilled when the `'exit' event` is emitted.\n         * @since v10.5.0\n         */\n        terminate(): Promise<number>;\n        /**\n         * Returns a readable stream for a V8 snapshot of the current state of the Worker.\n         * See `v8.getHeapSnapshot()` for more details.\n         *\n         * If the Worker thread is no longer running, which may occur before the `'exit' event` is emitted, the returned `Promise` is rejected\n         * immediately with an `ERR_WORKER_NOT_RUNNING` error.\n         * @since v13.9.0, v12.17.0\n         * @return A promise for a Readable Stream containing a V8 heap snapshot\n         */\n        getHeapSnapshot(): Promise<Readable>;\n        addListener(event: 'error', listener: (err: Error) => void): this;\n        addListener(event: 'exit', listener: (exitCode: number) => void): this;\n        addListener(event: 'message', listener: (value: any) => void): this;\n        addListener(event: 'messageerror', listener: (error: Error) => void): this;\n        addListener(event: 'online', listener: () => void): this;\n        addListener(event: string | symbol, listener: (...args: any[]) => void): this;\n        emit(event: 'error', err: Error): boolean;\n        emit(event: 'exit', exitCode: number): boolean;\n        emit(event: 'message', value: any): boolean;\n        emit(event: 'messageerror', error: Error): boolean;\n        emit(event: 'online'): boolean;\n        emit(event: string | symbol, ...args: any[]): boolean;\n        on(event: 'error', listener: (err: Error) => void): this;\n        on(event: 'exit', listener: (exitCode: number) => void): this;\n        on(event: 'message', listener: (value: any) => void): this;\n        on(event: 'messageerror', listener: (error: Error) => void): this;\n        on(event: 'online', listener: () => void): this;\n        on(event: string | symbol, listener: (...args: any[]) => void): this;\n        once(event: 'error', listener: (err: Error) => void): this;\n        once(event: 'exit', listener: (exitCode: number) => void): this;\n        once(event: 'message', listener: (value: any) => void): this;\n        once(event: 'messageerror', listener: (error: Error) => void): this;\n        once(event: 'online', listener: () => void): this;\n        once(event: string | symbol, listener: (...args: any[]) => void): this;\n        prependListener(event: 'error', listener: (err: Error) => void): this;\n        prependListener(event: 'exit', listener: (exitCode: number) => void): this;\n        prependListener(event: 'message', listener: (value: any) => void): this;\n        prependListener(event: 'messageerror', listener: (error: Error) => void): this;\n        prependListener(event: 'online', listener: () => void): this;\n        prependListener(event: string | symbol, listener: (...args: any[]) => void): this;\n        prependOnceListener(event: 'error', listener: (err: Error) => void): this;\n        prependOnceListener(event: 'exit', listener: (exitCode: number) => void): this;\n        prependOnceListener(event: 'message', listener: (value: any) => void): this;\n        prependOnceListener(event: 'messageerror', listener: (error: Error) => void): this;\n        prependOnceListener(event: 'online', listener: () => void): this;\n        prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this;\n        removeListener(event: 'error', listener: (err: Error) => void): this;\n        removeListener(event: 'exit', listener: (exitCode: number) => void): this;\n        removeListener(event: 'message', listener: (value: any) => void): this;\n        removeListener(event: 'messageerror', listener: (error: Error) => void): this;\n        removeListener(event: 'online', listener: () => void): this;\n        removeListener(event: string | symbol, listener: (...args: any[]) => void): this;\n        off(event: 'error', listener: (err: Error) => void): this;\n        off(event: 'exit', listener: (exitCode: number) => void): this;\n        off(event: 'message', listener: (value: any) => void): this;\n        off(event: 'messageerror', listener: (error: Error) => void): this;\n        off(event: 'online', listener: () => void): this;\n        off(event: string | symbol, listener: (...args: any[]) => void): this;\n    }\n    interface BroadcastChannel extends NodeJS.RefCounted {}\n    /**\n     * Instances of `BroadcastChannel` allow asynchronous one-to-many communication\n     * with all other `BroadcastChannel` instances bound to the same channel name.\n     *\n     * ```js\n     * 'use strict';\n     *\n     * const {\n     *   isMainThread,\n     *   BroadcastChannel,\n     *   Worker\n     * } = require('worker_threads');\n     *\n     * const bc = new BroadcastChannel('hello');\n     *\n     * if (isMainThread) {\n     *   let c = 0;\n     *   bc.onmessage = (event) => {\n     *     console.log(event.data);\n     *     if (++c === 10) bc.close();\n     *   };\n     *   for (let n = 0; n < 10; n++)\n     *     new Worker(__filename);\n     * } else {\n     *   bc.postMessage('hello from every worker');\n     *   bc.close();\n     * }\n     * ```\n     * @since v15.4.0\n     * @experimental\n     */\n    class BroadcastChannel {\n        readonly name: string;\n        /**\n         * Invoked with a single \\`MessageEvent\\` argument when a message is received.\n         * @since v15.4.0\n         */\n        onmessage: (message: unknown) => void;\n        /**\n         * Invoked with a received message cannot be deserialized.\n         * @since v15.4.0\n         */\n        onmessageerror: (message: unknown) => void;\n        constructor(name: string);\n        /**\n         * Closes the `BroadcastChannel` connection.\n         * @since v15.4.0\n         */\n        close(): void;\n        /**\n         * @since v15.4.0\n         * @param message Any cloneable JavaScript value.\n         */\n        postMessage(message: unknown): void;\n    }\n    /**\n     * Mark an object as not transferable. If `object` occurs in the transfer list of\n     * a `port.postMessage()` call, it is ignored.\n     *\n     * In particular, this makes sense for objects that can be cloned, rather than\n     * transferred, and which are used by other objects on the sending side.\n     * For example, Node.js marks the `ArrayBuffer`s it uses for its `Buffer pool` with this.\n     *\n     * This operation cannot be undone.\n     *\n     * ```js\n     * const { MessageChannel, markAsUntransferable } = require('worker_threads');\n     *\n     * const pooledBuffer = new ArrayBuffer(8);\n     * const typedArray1 = new Uint8Array(pooledBuffer);\n     * const typedArray2 = new Float64Array(pooledBuffer);\n     *\n     * markAsUntransferable(pooledBuffer);\n     *\n     * const { port1 } = new MessageChannel();\n     * port1.postMessage(typedArray1, [ typedArray1.buffer ]);\n     *\n     * // The following line prints the contents of typedArray1 -- it still owns\n     * // its memory and has been cloned, not transferred. Without\n     * // `markAsUntransferable()`, this would print an empty Uint8Array.\n     * // typedArray2 is intact as well.\n     * console.log(typedArray1);\n     * console.log(typedArray2);\n     * ```\n     *\n     * There is no equivalent to this API in browsers.\n     * @since v14.5.0, v12.19.0\n     */\n    function markAsUntransferable(object: object): void;\n    /**\n     * Transfer a `MessagePort` to a different `vm` Context. The original `port`object is rendered unusable, and the returned `MessagePort` instance\n     * takes its place.\n     *\n     * The returned `MessagePort` is an object in the target context and\n     * inherits from its global `Object` class. Objects passed to the [`port.onmessage()`](https://developer.mozilla.org/en-US/docs/Web/API/MessagePort/onmessage) listener are also created in the\n     * target context\n     * and inherit from its global `Object` class.\n     *\n     * However, the created `MessagePort` no longer inherits from [`EventTarget`](https://developer.mozilla.org/en-US/docs/Web/API/EventTarget), and only\n     * [`port.onmessage()`](https://developer.mozilla.org/en-US/docs/Web/API/MessagePort/onmessage) can be used to receive\n     * events using it.\n     * @since v11.13.0\n     * @param port The message port to transfer.\n     * @param contextifiedSandbox A `contextified` object as returned by the `vm.createContext()` method.\n     */\n    function moveMessagePortToContext(port: MessagePort, contextifiedSandbox: Context): MessagePort;\n    /**\n     * Receive a single message from a given `MessagePort`. If no message is available,`undefined` is returned, otherwise an object with a single `message` property\n     * that contains the message payload, corresponding to the oldest message in the`MessagePort`’s queue.\n     *\n     * ```js\n     * const { MessageChannel, receiveMessageOnPort } = require('worker_threads');\n     * const { port1, port2 } = new MessageChannel();\n     * port1.postMessage({ hello: 'world' });\n     *\n     * console.log(receiveMessageOnPort(port2));\n     * // Prints: { message: { hello: 'world' } }\n     * console.log(receiveMessageOnPort(port2));\n     * // Prints: undefined\n     * ```\n     *\n     * When this function is used, no `'message'` event is emitted and the`onmessage` listener is not invoked.\n     * @since v12.3.0\n     */\n    function receiveMessageOnPort(port: MessagePort):\n        | {\n              message: any;\n          }\n        | undefined;\n    type Serializable = string | object | number | boolean | bigint;\n    /**\n     * Within a worker thread, `worker.getEnvironmentData()` returns a clone\n     * of data passed to the spawning thread's `worker.setEnvironmentData()`.\n     * Every new `Worker` receives its own copy of the environment data\n     * automatically.\n     *\n     * ```js\n     * const {\n     *   Worker,\n     *   isMainThread,\n     *   setEnvironmentData,\n     *   getEnvironmentData,\n     * } = require('worker_threads');\n     *\n     * if (isMainThread) {\n     *   setEnvironmentData('Hello', 'World!');\n     *   const worker = new Worker(__filename);\n     * } else {\n     *   console.log(getEnvironmentData('Hello'));  // Prints 'World!'.\n     * }\n     * ```\n     * @since v15.12.0\n     * @experimental\n     * @param key Any arbitrary, cloneable JavaScript value that can be used as a {Map} key.\n     */\n    function getEnvironmentData(key: Serializable): Serializable;\n    /**\n     * The `worker.setEnvironmentData()` API sets the content of`worker.getEnvironmentData()` in the current thread and all new `Worker`instances spawned from the current context.\n     * @since v15.12.0\n     * @experimental\n     * @param key Any arbitrary, cloneable JavaScript value that can be used as a {Map} key.\n     * @param value Any arbitrary, cloneable JavaScript value that will be cloned and passed automatically to all new `Worker` instances. If `value` is passed as `undefined`, any previously set value\n     * for the `key` will be deleted.\n     */\n    function setEnvironmentData(key: Serializable, value: Serializable): void;\n}\ndeclare module 'node:worker_threads' {\n    export * from 'worker_threads';\n}\n"
    },
    {
      "path": "/node_modules/@types/node/zlib.d.ts",
      "content": "/**\n * The `zlib` module provides compression functionality implemented using Gzip,\n * Deflate/Inflate, and Brotli.\n *\n * To access it:\n *\n * ```js\n * const zlib = require('zlib');\n * ```\n *\n * Compression and decompression are built around the Node.js `Streams API`.\n *\n * Compressing or decompressing a stream (such as a file) can be accomplished by\n * piping the source stream through a `zlib` `Transform` stream into a destination\n * stream:\n *\n * ```js\n * const { createGzip } = require('zlib');\n * const { pipeline } = require('stream');\n * const {\n *   createReadStream,\n *   createWriteStream\n * } = require('fs');\n *\n * const gzip = createGzip();\n * const source = createReadStream('input.txt');\n * const destination = createWriteStream('input.txt.gz');\n *\n * pipeline(source, gzip, destination, (err) => {\n *   if (err) {\n *     console.error('An error occurred:', err);\n *     process.exitCode = 1;\n *   }\n * });\n *\n * // Or, Promisified\n *\n * const { promisify } = require('util');\n * const pipe = promisify(pipeline);\n *\n * async function do_gzip(input, output) {\n *   const gzip = createGzip();\n *   const source = createReadStream(input);\n *   const destination = createWriteStream(output);\n *   await pipe(source, gzip, destination);\n * }\n *\n * do_gzip('input.txt', 'input.txt.gz')\n *   .catch((err) => {\n *     console.error('An error occurred:', err);\n *     process.exitCode = 1;\n *   });\n * ```\n *\n * It is also possible to compress or decompress data in a single step:\n *\n * ```js\n * const { deflate, unzip } = require('zlib');\n *\n * const input = '.................................';\n * deflate(input, (err, buffer) => {\n *   if (err) {\n *     console.error('An error occurred:', err);\n *     process.exitCode = 1;\n *   }\n *   console.log(buffer.toString('base64'));\n * });\n *\n * const buffer = Buffer.from('eJzT0yMAAGTvBe8=', 'base64');\n * unzip(buffer, (err, buffer) => {\n *   if (err) {\n *     console.error('An error occurred:', err);\n *     process.exitCode = 1;\n *   }\n *   console.log(buffer.toString());\n * });\n *\n * // Or, Promisified\n *\n * const { promisify } = require('util');\n * const do_unzip = promisify(unzip);\n *\n * do_unzip(buffer)\n *   .then((buf) => console.log(buf.toString()))\n *   .catch((err) => {\n *     console.error('An error occurred:', err);\n *     process.exitCode = 1;\n *   });\n * ```\n * @since v0.5.8\n * @see [source](https://github.com/nodejs/node/blob/v16.9.0/lib/zlib.js)\n */\ndeclare module 'zlib' {\n    import * as stream from 'node:stream';\n    interface ZlibOptions {\n        /**\n         * @default constants.Z_NO_FLUSH\n         */\n        flush?: number | undefined;\n        /**\n         * @default constants.Z_FINISH\n         */\n        finishFlush?: number | undefined;\n        /**\n         * @default 16*1024\n         */\n        chunkSize?: number | undefined;\n        windowBits?: number | undefined;\n        level?: number | undefined; // compression only\n        memLevel?: number | undefined; // compression only\n        strategy?: number | undefined; // compression only\n        dictionary?: NodeJS.ArrayBufferView | ArrayBuffer | undefined; // deflate/inflate only, empty dictionary by default\n        info?: boolean | undefined;\n        maxOutputLength?: number | undefined;\n    }\n    interface BrotliOptions {\n        /**\n         * @default constants.BROTLI_OPERATION_PROCESS\n         */\n        flush?: number | undefined;\n        /**\n         * @default constants.BROTLI_OPERATION_FINISH\n         */\n        finishFlush?: number | undefined;\n        /**\n         * @default 16*1024\n         */\n        chunkSize?: number | undefined;\n        params?:\n            | {\n                  /**\n                   * Each key is a `constants.BROTLI_*` constant.\n                   */\n                  [key: number]: boolean | number;\n              }\n            | undefined;\n        maxOutputLength?: number | undefined;\n    }\n    interface Zlib {\n        /** @deprecated Use bytesWritten instead. */\n        readonly bytesRead: number;\n        readonly bytesWritten: number;\n        shell?: boolean | string | undefined;\n        close(callback?: () => void): void;\n        flush(kind?: number, callback?: () => void): void;\n        flush(callback?: () => void): void;\n    }\n    interface ZlibParams {\n        params(level: number, strategy: number, callback: () => void): void;\n    }\n    interface ZlibReset {\n        reset(): void;\n    }\n    interface BrotliCompress extends stream.Transform, Zlib {}\n    interface BrotliDecompress extends stream.Transform, Zlib {}\n    interface Gzip extends stream.Transform, Zlib {}\n    interface Gunzip extends stream.Transform, Zlib {}\n    interface Deflate extends stream.Transform, Zlib, ZlibReset, ZlibParams {}\n    interface Inflate extends stream.Transform, Zlib, ZlibReset {}\n    interface DeflateRaw extends stream.Transform, Zlib, ZlibReset, ZlibParams {}\n    interface InflateRaw extends stream.Transform, Zlib, ZlibReset {}\n    interface Unzip extends stream.Transform, Zlib {}\n    /**\n     * Creates and returns a new `BrotliCompress` object.\n     * @since v11.7.0, v10.16.0\n     */\n    function createBrotliCompress(options?: BrotliOptions): BrotliCompress;\n    /**\n     * Creates and returns a new `BrotliDecompress` object.\n     * @since v11.7.0, v10.16.0\n     */\n    function createBrotliDecompress(options?: BrotliOptions): BrotliDecompress;\n    /**\n     * Creates and returns a new `Gzip` object.\n     * See `example`.\n     * @since v0.5.8\n     */\n    function createGzip(options?: ZlibOptions): Gzip;\n    /**\n     * Creates and returns a new `Gunzip` object.\n     * @since v0.5.8\n     */\n    function createGunzip(options?: ZlibOptions): Gunzip;\n    /**\n     * Creates and returns a new `Deflate` object.\n     * @since v0.5.8\n     */\n    function createDeflate(options?: ZlibOptions): Deflate;\n    /**\n     * Creates and returns a new `Inflate` object.\n     * @since v0.5.8\n     */\n    function createInflate(options?: ZlibOptions): Inflate;\n    /**\n     * Creates and returns a new `DeflateRaw` object.\n     *\n     * An upgrade of zlib from 1.2.8 to 1.2.11 changed behavior when `windowBits`is set to 8 for raw deflate streams. zlib would automatically set `windowBits`to 9 if was initially set to 8\\. Newer\n     * versions of zlib will throw an exception,\n     * so Node.js restored the original behavior of upgrading a value of 8 to 9,\n     * since passing `windowBits = 9` to zlib actually results in a compressed stream\n     * that effectively uses an 8-bit window only.\n     * @since v0.5.8\n     */\n    function createDeflateRaw(options?: ZlibOptions): DeflateRaw;\n    /**\n     * Creates and returns a new `InflateRaw` object.\n     * @since v0.5.8\n     */\n    function createInflateRaw(options?: ZlibOptions): InflateRaw;\n    /**\n     * Creates and returns a new `Unzip` object.\n     * @since v0.5.8\n     */\n    function createUnzip(options?: ZlibOptions): Unzip;\n    type InputType = string | ArrayBuffer | NodeJS.ArrayBufferView;\n    type CompressCallback = (error: Error | null, result: Buffer) => void;\n    /**\n     * @since v11.7.0, v10.16.0\n     */\n    function brotliCompress(buf: InputType, options: BrotliOptions, callback: CompressCallback): void;\n    function brotliCompress(buf: InputType, callback: CompressCallback): void;\n    namespace brotliCompress {\n        function __promisify__(buffer: InputType, options?: BrotliOptions): Promise<Buffer>;\n    }\n    /**\n     * Compress a chunk of data with `BrotliCompress`.\n     * @since v11.7.0, v10.16.0\n     */\n    function brotliCompressSync(buf: InputType, options?: BrotliOptions): Buffer;\n    /**\n     * @since v11.7.0, v10.16.0\n     */\n    function brotliDecompress(buf: InputType, options: BrotliOptions, callback: CompressCallback): void;\n    function brotliDecompress(buf: InputType, callback: CompressCallback): void;\n    namespace brotliDecompress {\n        function __promisify__(buffer: InputType, options?: BrotliOptions): Promise<Buffer>;\n    }\n    /**\n     * Decompress a chunk of data with `BrotliDecompress`.\n     * @since v11.7.0, v10.16.0\n     */\n    function brotliDecompressSync(buf: InputType, options?: BrotliOptions): Buffer;\n    /**\n     * @since v0.6.0\n     */\n    function deflate(buf: InputType, callback: CompressCallback): void;\n    function deflate(buf: InputType, options: ZlibOptions, callback: CompressCallback): void;\n    namespace deflate {\n        function __promisify__(buffer: InputType, options?: ZlibOptions): Promise<Buffer>;\n    }\n    /**\n     * Compress a chunk of data with `Deflate`.\n     * @since v0.11.12\n     */\n    function deflateSync(buf: InputType, options?: ZlibOptions): Buffer;\n    /**\n     * @since v0.6.0\n     */\n    function deflateRaw(buf: InputType, callback: CompressCallback): void;\n    function deflateRaw(buf: InputType, options: ZlibOptions, callback: CompressCallback): void;\n    namespace deflateRaw {\n        function __promisify__(buffer: InputType, options?: ZlibOptions): Promise<Buffer>;\n    }\n    /**\n     * Compress a chunk of data with `DeflateRaw`.\n     * @since v0.11.12\n     */\n    function deflateRawSync(buf: InputType, options?: ZlibOptions): Buffer;\n    /**\n     * @since v0.6.0\n     */\n    function gzip(buf: InputType, callback: CompressCallback): void;\n    function gzip(buf: InputType, options: ZlibOptions, callback: CompressCallback): void;\n    namespace gzip {\n        function __promisify__(buffer: InputType, options?: ZlibOptions): Promise<Buffer>;\n    }\n    /**\n     * Compress a chunk of data with `Gzip`.\n     * @since v0.11.12\n     */\n    function gzipSync(buf: InputType, options?: ZlibOptions): Buffer;\n    /**\n     * @since v0.6.0\n     */\n    function gunzip(buf: InputType, callback: CompressCallback): void;\n    function gunzip(buf: InputType, options: ZlibOptions, callback: CompressCallback): void;\n    namespace gunzip {\n        function __promisify__(buffer: InputType, options?: ZlibOptions): Promise<Buffer>;\n    }\n    /**\n     * Decompress a chunk of data with `Gunzip`.\n     * @since v0.11.12\n     */\n    function gunzipSync(buf: InputType, options?: ZlibOptions): Buffer;\n    /**\n     * @since v0.6.0\n     */\n    function inflate(buf: InputType, callback: CompressCallback): void;\n    function inflate(buf: InputType, options: ZlibOptions, callback: CompressCallback): void;\n    namespace inflate {\n        function __promisify__(buffer: InputType, options?: ZlibOptions): Promise<Buffer>;\n    }\n    /**\n     * Decompress a chunk of data with `Inflate`.\n     * @since v0.11.12\n     */\n    function inflateSync(buf: InputType, options?: ZlibOptions): Buffer;\n    /**\n     * @since v0.6.0\n     */\n    function inflateRaw(buf: InputType, callback: CompressCallback): void;\n    function inflateRaw(buf: InputType, options: ZlibOptions, callback: CompressCallback): void;\n    namespace inflateRaw {\n        function __promisify__(buffer: InputType, options?: ZlibOptions): Promise<Buffer>;\n    }\n    /**\n     * Decompress a chunk of data with `InflateRaw`.\n     * @since v0.11.12\n     */\n    function inflateRawSync(buf: InputType, options?: ZlibOptions): Buffer;\n    /**\n     * @since v0.6.0\n     */\n    function unzip(buf: InputType, callback: CompressCallback): void;\n    function unzip(buf: InputType, options: ZlibOptions, callback: CompressCallback): void;\n    namespace unzip {\n        function __promisify__(buffer: InputType, options?: ZlibOptions): Promise<Buffer>;\n    }\n    /**\n     * Decompress a chunk of data with `Unzip`.\n     * @since v0.11.12\n     */\n    function unzipSync(buf: InputType, options?: ZlibOptions): Buffer;\n    namespace constants {\n        const BROTLI_DECODE: number;\n        const BROTLI_DECODER_ERROR_ALLOC_BLOCK_TYPE_TREES: number;\n        const BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MAP: number;\n        const BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MODES: number;\n        const BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_1: number;\n        const BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_2: number;\n        const BROTLI_DECODER_ERROR_ALLOC_TREE_GROUPS: number;\n        const BROTLI_DECODER_ERROR_DICTIONARY_NOT_SET: number;\n        const BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_1: number;\n        const BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_2: number;\n        const BROTLI_DECODER_ERROR_FORMAT_CL_SPACE: number;\n        const BROTLI_DECODER_ERROR_FORMAT_CONTEXT_MAP_REPEAT: number;\n        const BROTLI_DECODER_ERROR_FORMAT_DICTIONARY: number;\n        const BROTLI_DECODER_ERROR_FORMAT_DISTANCE: number;\n        const BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_META_NIBBLE: number;\n        const BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_NIBBLE: number;\n        const BROTLI_DECODER_ERROR_FORMAT_HUFFMAN_SPACE: number;\n        const BROTLI_DECODER_ERROR_FORMAT_PADDING_1: number;\n        const BROTLI_DECODER_ERROR_FORMAT_PADDING_2: number;\n        const BROTLI_DECODER_ERROR_FORMAT_RESERVED: number;\n        const BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_ALPHABET: number;\n        const BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_SAME: number;\n        const BROTLI_DECODER_ERROR_FORMAT_TRANSFORM: number;\n        const BROTLI_DECODER_ERROR_FORMAT_WINDOW_BITS: number;\n        const BROTLI_DECODER_ERROR_INVALID_ARGUMENTS: number;\n        const BROTLI_DECODER_ERROR_UNREACHABLE: number;\n        const BROTLI_DECODER_NEEDS_MORE_INPUT: number;\n        const BROTLI_DECODER_NEEDS_MORE_OUTPUT: number;\n        const BROTLI_DECODER_NO_ERROR: number;\n        const BROTLI_DECODER_PARAM_DISABLE_RING_BUFFER_REALLOCATION: number;\n        const BROTLI_DECODER_PARAM_LARGE_WINDOW: number;\n        const BROTLI_DECODER_RESULT_ERROR: number;\n        const BROTLI_DECODER_RESULT_NEEDS_MORE_INPUT: number;\n        const BROTLI_DECODER_RESULT_NEEDS_MORE_OUTPUT: number;\n        const BROTLI_DECODER_RESULT_SUCCESS: number;\n        const BROTLI_DECODER_SUCCESS: number;\n        const BROTLI_DEFAULT_MODE: number;\n        const BROTLI_DEFAULT_QUALITY: number;\n        const BROTLI_DEFAULT_WINDOW: number;\n        const BROTLI_ENCODE: number;\n        const BROTLI_LARGE_MAX_WINDOW_BITS: number;\n        const BROTLI_MAX_INPUT_BLOCK_BITS: number;\n        const BROTLI_MAX_QUALITY: number;\n        const BROTLI_MAX_WINDOW_BITS: number;\n        const BROTLI_MIN_INPUT_BLOCK_BITS: number;\n        const BROTLI_MIN_QUALITY: number;\n        const BROTLI_MIN_WINDOW_BITS: number;\n        const BROTLI_MODE_FONT: number;\n        const BROTLI_MODE_GENERIC: number;\n        const BROTLI_MODE_TEXT: number;\n        const BROTLI_OPERATION_EMIT_METADATA: number;\n        const BROTLI_OPERATION_FINISH: number;\n        const BROTLI_OPERATION_FLUSH: number;\n        const BROTLI_OPERATION_PROCESS: number;\n        const BROTLI_PARAM_DISABLE_LITERAL_CONTEXT_MODELING: number;\n        const BROTLI_PARAM_LARGE_WINDOW: number;\n        const BROTLI_PARAM_LGBLOCK: number;\n        const BROTLI_PARAM_LGWIN: number;\n        const BROTLI_PARAM_MODE: number;\n        const BROTLI_PARAM_NDIRECT: number;\n        const BROTLI_PARAM_NPOSTFIX: number;\n        const BROTLI_PARAM_QUALITY: number;\n        const BROTLI_PARAM_SIZE_HINT: number;\n        const DEFLATE: number;\n        const DEFLATERAW: number;\n        const GUNZIP: number;\n        const GZIP: number;\n        const INFLATE: number;\n        const INFLATERAW: number;\n        const UNZIP: number;\n        // Allowed flush values.\n        const Z_NO_FLUSH: number;\n        const Z_PARTIAL_FLUSH: number;\n        const Z_SYNC_FLUSH: number;\n        const Z_FULL_FLUSH: number;\n        const Z_FINISH: number;\n        const Z_BLOCK: number;\n        const Z_TREES: number;\n        // Return codes for the compression/decompression functions.\n        // Negative values are errors, positive values are used for special but normal events.\n        const Z_OK: number;\n        const Z_STREAM_END: number;\n        const Z_NEED_DICT: number;\n        const Z_ERRNO: number;\n        const Z_STREAM_ERROR: number;\n        const Z_DATA_ERROR: number;\n        const Z_MEM_ERROR: number;\n        const Z_BUF_ERROR: number;\n        const Z_VERSION_ERROR: number;\n        // Compression levels.\n        const Z_NO_COMPRESSION: number;\n        const Z_BEST_SPEED: number;\n        const Z_BEST_COMPRESSION: number;\n        const Z_DEFAULT_COMPRESSION: number;\n        // Compression strategy.\n        const Z_FILTERED: number;\n        const Z_HUFFMAN_ONLY: number;\n        const Z_RLE: number;\n        const Z_FIXED: number;\n        const Z_DEFAULT_STRATEGY: number;\n        const Z_DEFAULT_WINDOWBITS: number;\n        const Z_MIN_WINDOWBITS: number;\n        const Z_MAX_WINDOWBITS: number;\n        const Z_MIN_CHUNK: number;\n        const Z_MAX_CHUNK: number;\n        const Z_DEFAULT_CHUNK: number;\n        const Z_MIN_MEMLEVEL: number;\n        const Z_MAX_MEMLEVEL: number;\n        const Z_DEFAULT_MEMLEVEL: number;\n        const Z_MIN_LEVEL: number;\n        const Z_MAX_LEVEL: number;\n        const Z_DEFAULT_LEVEL: number;\n        const ZLIB_VERNUM: number;\n    }\n    // Allowed flush values.\n    /** @deprecated Use `constants.Z_NO_FLUSH` */\n    const Z_NO_FLUSH: number;\n    /** @deprecated Use `constants.Z_PARTIAL_FLUSH` */\n    const Z_PARTIAL_FLUSH: number;\n    /** @deprecated Use `constants.Z_SYNC_FLUSH` */\n    const Z_SYNC_FLUSH: number;\n    /** @deprecated Use `constants.Z_FULL_FLUSH` */\n    const Z_FULL_FLUSH: number;\n    /** @deprecated Use `constants.Z_FINISH` */\n    const Z_FINISH: number;\n    /** @deprecated Use `constants.Z_BLOCK` */\n    const Z_BLOCK: number;\n    /** @deprecated Use `constants.Z_TREES` */\n    const Z_TREES: number;\n    // Return codes for the compression/decompression functions.\n    // Negative values are errors, positive values are used for special but normal events.\n    /** @deprecated Use `constants.Z_OK` */\n    const Z_OK: number;\n    /** @deprecated Use `constants.Z_STREAM_END` */\n    const Z_STREAM_END: number;\n    /** @deprecated Use `constants.Z_NEED_DICT` */\n    const Z_NEED_DICT: number;\n    /** @deprecated Use `constants.Z_ERRNO` */\n    const Z_ERRNO: number;\n    /** @deprecated Use `constants.Z_STREAM_ERROR` */\n    const Z_STREAM_ERROR: number;\n    /** @deprecated Use `constants.Z_DATA_ERROR` */\n    const Z_DATA_ERROR: number;\n    /** @deprecated Use `constants.Z_MEM_ERROR` */\n    const Z_MEM_ERROR: number;\n    /** @deprecated Use `constants.Z_BUF_ERROR` */\n    const Z_BUF_ERROR: number;\n    /** @deprecated Use `constants.Z_VERSION_ERROR` */\n    const Z_VERSION_ERROR: number;\n    // Compression levels.\n    /** @deprecated Use `constants.Z_NO_COMPRESSION` */\n    const Z_NO_COMPRESSION: number;\n    /** @deprecated Use `constants.Z_BEST_SPEED` */\n    const Z_BEST_SPEED: number;\n    /** @deprecated Use `constants.Z_BEST_COMPRESSION` */\n    const Z_BEST_COMPRESSION: number;\n    /** @deprecated Use `constants.Z_DEFAULT_COMPRESSION` */\n    const Z_DEFAULT_COMPRESSION: number;\n    // Compression strategy.\n    /** @deprecated Use `constants.Z_FILTERED` */\n    const Z_FILTERED: number;\n    /** @deprecated Use `constants.Z_HUFFMAN_ONLY` */\n    const Z_HUFFMAN_ONLY: number;\n    /** @deprecated Use `constants.Z_RLE` */\n    const Z_RLE: number;\n    /** @deprecated Use `constants.Z_FIXED` */\n    const Z_FIXED: number;\n    /** @deprecated Use `constants.Z_DEFAULT_STRATEGY` */\n    const Z_DEFAULT_STRATEGY: number;\n    /** @deprecated */\n    const Z_BINARY: number;\n    /** @deprecated */\n    const Z_TEXT: number;\n    /** @deprecated */\n    const Z_ASCII: number;\n    /** @deprecated  */\n    const Z_UNKNOWN: number;\n    /** @deprecated */\n    const Z_DEFLATED: number;\n}\ndeclare module 'node:zlib' {\n    export * from 'zlib';\n}\n"
    },
    {
      "path": "/node_modules/@types/node/globals.global.d.ts",
      "content": "declare var global: typeof globalThis;\n"
    },
    {
      "path": "/node_modules/@types/node/index.d.ts",
      "content": "// Type definitions for non-npm package Node.js 16.18\n// Project: https://nodejs.org/\n// Definitions by: Microsoft TypeScript <https://github.com/Microsoft>\n//                 DefinitelyTyped <https://github.com/DefinitelyTyped>\n//                 Alberto Schiabel <https://github.com/jkomyno>\n//                 Alvis HT Tang <https://github.com/alvis>\n//                 Andrew Makarov <https://github.com/r3nya>\n//                 Benjamin Toueg <https://github.com/btoueg>\n//                 Chigozirim C. <https://github.com/smac89>\n//                 David Junger <https://github.com/touffy>\n//                 Deividas Bakanas <https://github.com/DeividasBakanas>\n//                 Eugene Y. Q. Shen <https://github.com/eyqs>\n//                 Hannes Magnusson <https://github.com/Hannes-Magnusson-CK>\n//                 Huw <https://github.com/hoo29>\n//                 Kelvin Jin <https://github.com/kjin>\n//                 Klaus Meinhardt <https://github.com/ajafff>\n//                 Lishude <https://github.com/islishude>\n//                 Mariusz Wiktorczyk <https://github.com/mwiktorczyk>\n//                 Mohsen Azimi <https://github.com/mohsen1>\n//                 Nicolas Even <https://github.com/n-e>\n//                 Nikita Galkin <https://github.com/galkin>\n//                 Parambir Singh <https://github.com/parambirs>\n//                 Sebastian Silbermann <https://github.com/eps1lon>\n//                 Seth Westphal <https://github.com/westy92>\n//                 Simon Schick <https://github.com/SimonSchick>\n//                 Thomas den Hollander <https://github.com/ThomasdenH>\n//                 Wilco Bakker <https://github.com/WilcoBakker>\n//                 wwwy3y3 <https://github.com/wwwy3y3>\n//                 Samuel Ainsworth <https://github.com/samuela>\n//                 Kyle Uehlein <https://github.com/kuehlein>\n//                 Thanik Bhongbhibhat <https://github.com/bhongy>\n//                 Marcin Kopacz <https://github.com/chyzwar>\n//                 Trivikram Kamat <https://github.com/trivikr>\n//                 Junxiao Shi <https://github.com/yoursunny>\n//                 Ilia Baryshnikov <https://github.com/qwelias>\n//                 ExE Boss <https://github.com/ExE-Boss>\n//                 Piotr Błażejewicz <https://github.com/peterblazejewicz>\n//                 Anna Henningsen <https://github.com/addaleax>\n//                 Victor Perin <https://github.com/victorperin>\n//                 Yongsheng Zhang <https://github.com/ZYSzys>\n//                 NodeJS Contributors <https://github.com/NodeJS>\n//                 Linus Unnebäck <https://github.com/LinusU>\n//                 wafuwafu13 <https://github.com/wafuwafu13>\n// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped\n\n/**\n * License for programmatically and manually incorporated\n * documentation aka. `JSDoc` from https://github.com/nodejs/node/tree/master/doc\n *\n * Copyright Node.js contributors. All rights reserved.\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n// NOTE: These definitions support NodeJS and TypeScript 4.9+.\n\n// Reference required types from the default lib:\n/// <reference lib=\"es2020\" />\n/// <reference lib=\"esnext.asynciterable\" />\n/// <reference lib=\"esnext.intl\" />\n/// <reference lib=\"esnext.bigint\" />\n\n// Base definitions for all NodeJS modules that are not specific to any version of TypeScript:\n/// <reference path=\"assert.d.ts\" />\n/// <reference path=\"assert/strict.d.ts\" />\n/// <reference path=\"globals.d.ts\" />\n/// <reference path=\"async_hooks.d.ts\" />\n/// <reference path=\"buffer.d.ts\" />\n/// <reference path=\"child_process.d.ts\" />\n/// <reference path=\"cluster.d.ts\" />\n/// <reference path=\"console.d.ts\" />\n/// <reference path=\"constants.d.ts\" />\n/// <reference path=\"crypto.d.ts\" />\n/// <reference path=\"dgram.d.ts\" />\n/// <reference path=\"diagnostics_channel.d.ts\" />\n/// <reference path=\"dns.d.ts\" />\n/// <reference path=\"dns/promises.d.ts\" />\n/// <reference path=\"dns/promises.d.ts\" />\n/// <reference path=\"domain.d.ts\" />\n/// <reference path=\"events.d.ts\" />\n/// <reference path=\"fs.d.ts\" />\n/// <reference path=\"fs/promises.d.ts\" />\n/// <reference path=\"http.d.ts\" />\n/// <reference path=\"http2.d.ts\" />\n/// <reference path=\"https.d.ts\" />\n/// <reference path=\"inspector.d.ts\" />\n/// <reference path=\"module.d.ts\" />\n/// <reference path=\"net.d.ts\" />\n/// <reference path=\"os.d.ts\" />\n/// <reference path=\"path.d.ts\" />\n/// <reference path=\"perf_hooks.d.ts\" />\n/// <reference path=\"process.d.ts\" />\n/// <reference path=\"punycode.d.ts\" />\n/// <reference path=\"querystring.d.ts\" />\n/// <reference path=\"readline.d.ts\" />\n/// <reference path=\"repl.d.ts\" />\n/// <reference path=\"stream.d.ts\" />\n/// <reference path=\"stream/promises.d.ts\" />\n/// <reference path=\"stream/consumers.d.ts\" />\n/// <reference path=\"stream/web.d.ts\" />\n/// <reference path=\"string_decoder.d.ts\" />\n/// <reference path=\"test.d.ts\" />\n/// <reference path=\"timers.d.ts\" />\n/// <reference path=\"timers/promises.d.ts\" />\n/// <reference path=\"tls.d.ts\" />\n/// <reference path=\"trace_events.d.ts\" />\n/// <reference path=\"tty.d.ts\" />\n/// <reference path=\"url.d.ts\" />\n/// <reference path=\"util.d.ts\" />\n/// <reference path=\"v8.d.ts\" />\n/// <reference path=\"vm.d.ts\" />\n/// <reference path=\"wasi.d.ts\" />\n/// <reference path=\"worker_threads.d.ts\" />\n/// <reference path=\"zlib.d.ts\" />\n\n/// <reference path=\"globals.global.d.ts\" />\n"
    },
    {
      "path": "/types/common/emptyBuffer.d.ts",
      "content": "declare class Buffer {\n}\n"
    },
    {
      "path": "/types/deprecated/public/$w.d.ts",
      "content": "declare namespace $w {\n    type $w = (selector: string) => any\n}\ndeclare function $w(selector: string): any;\n"
    },
    {
      "path": "/types/deprecated/public/index.d.ts",
      "content": "/// <reference path=\"../../common/anyProperties.d.ts\" />\n/// <reference path=\"../../common/emptyBuffer.d.ts\" />\n/// <reference path=\"../../common/declaration.deprecated.d.ts\" />\n/// <reference path=\"./$w.d.ts\" />"
    },
    {
      "path": "/types/pages/$w.d.ts",
      "content": "declare type TypeNameToSdkType = {\r\n    Breadcrumbs: $w.Breadcrumbs;\r\n    Chatbox: $w.Chatbox;\r\n    CollapsibleText: $w.CollapsibleText;\r\n    Lottie: $w.Lottie;\r\n    Section: $w.Section;\r\n    AccountNavBar: $w.AccountNavBar;\r\n    Anchor: $w.Anchor;\r\n    AppointmentField: $w.AppointmentField;\r\n    Box: $w.Box;\r\n    Button: $w.Button;\r\n    Checkbox: $w.Checkbox;\r\n    CheckboxGroup: $w.CheckboxGroup;\r\n    Column: $w.Column;\r\n    ColumnStrip: $w.ColumnStrip;\r\n    Container: $w.Container;\r\n    DatePicker: $w.DatePicker;\r\n    Document: $w.Document;\r\n    Dropdown: $w.Dropdown;\r\n    Footer: $w.Footer;\r\n    Gallery: $w.Gallery;\r\n    GoogleMap: $w.GoogleMap;\r\n    Header: $w.Header;\r\n    HtmlComponent: $w.HtmlComponent;\r\n    IFrame: $w.IFrame;\r\n    Image: $w.Image;\r\n    MediaBox: $w.MediaBox;\r\n    Menu: $w.Menu;\r\n    MenuContainer: $w.MenuContainer;\r\n    MultiStateBox: $w.MultiStateBox;\r\n    Page: $w.Page;\r\n    QuickActionBar: $w.QuickActionBar;\r\n    RadioButtonGroup: $w.RadioButtonGroup;\r\n    Repeater: $w.Repeater;\r\n    Slide: $w.Slide;\r\n    Slideshow: $w.Slideshow;\r\n    Table: $w.Table;\r\n    Tabs: $w.Tabs;\r\n    Text: $w.Text;\r\n    TextBox: $w.TextBox;\r\n    TextInput: $w.TextInput;\r\n    UploadButton: $w.UploadButton;\r\n    VectorImage: $w.VectorImage;\r\n    Video: $w.Video;\r\n    VideoBox: $w.VideoBox;\r\n    AddressInput: $w.AddressInput;\r\n    AudioPlayer: $w.AudioPlayer;\r\n    Captcha: $w.Captcha;\r\n    Pagination: $w.Pagination;\r\n    ProgressBar: $w.ProgressBar;\r\n    RangeSlider: $w.RangeSlider;\r\n    RatingsDisplay: $w.RatingsDisplay;\r\n    RatingsInput: $w.RatingsInput;\r\n    RichTextBox: $w.RichTextBox;\r\n    Slider: $w.Slider;\r\n    Switch: $w.Switch;\r\n    TimePicker: $w.TimePicker;\r\n    VideoPlayer: $w.VideoPlayer;\r\n};\r\n\r\n\n// the first part of this file is being generated by => scripts/selector-declaration-builder.js\r\n// Run `npm run generate-dts` to generate it\r\ndeclare type IntersectionArrayAndBase<T, P> = {\r\n    [K in keyof T]: K extends P ? T[K] : T[K] & T[K][];\r\n};\r\n\r\n\r\ndeclare type TypeSelectorMap = IntersectionArrayAndBase<TypeNameToSdkType, 'Document'>;\r\ndeclare type WixElements = PageElementsMap & TypeSelectorMap\r\ndeclare type NicknameSelector = keyof PageElementsMap\r\ndeclare type TypeSelector = keyof TypeSelectorMap\r\n\r\ndeclare type WixElementSelector = NicknameSelector | TypeSelector\r\ndeclare type IsWixElementSelector<S> = S extends WixElementSelector ? WixElements[S] : never;\r\n/**\r\n * Selects and returns elements from a page.\r\n */\r\ndeclare function $w<T extends WixElementSelector, S extends string>(selector: T | S & IsWixElementSelector<S>):\r\n    S extends keyof WixElements \r\n        ? WixElements[S]\r\n        : any\r\n/**\r\n * The `$w` namespace contains everything you need in order to work\n with your site's components.\r\n */\r\ndeclare namespace $w {\r\n    /**\r\n\t * Gets a selector function for a specific context.\r\n\t */\r\n\t function at(context: $w.Event.EventContext): $w.$w;\r\n\t\r\n\t/**\r\n\t * Sets the function that runs when all the page elements have finished loading.\r\n\t */\r\n\t function onReady(initFunction: $w.ReadyHandler): void;\r\n\t\r\n\t\r\n    /**\r\n     * Selects and returns elements from a page.\r\n     */\r\n    type $w = <T extends WixElementSelector, S extends string>(selector: T | S & IsWixElementSelector<S>) =>\r\n        S extends keyof WixElements \r\n            ? WixElements[S]\r\n            : any\r\n}\r\n\r\n"
    },
    {
      "path": "/types/deprecated/pages/index.d.ts",
      "content": "/// <reference path=\"../../common/anyProperties.d.ts\" />\n/// <reference path=\"../../common/emptyBuffer.d.ts\" />\n/// <reference path=\"../../pages/$w.d.ts\" />\n/// <reference path=\"../../common/declaration.deprecated.d.ts\" />"
    },
    {
      "path": "/node_modules/typescript/lib/lib.es5.d.ts",
      "content": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n\n/// <reference no-default-lib=\"true\"/>\r\n\n\n/////////////////////////////\r\n/// ECMAScript APIs\r\n/////////////////////////////\r\n\r\ndeclare var NaN: number;\r\ndeclare var Infinity: number;\r\n\r\n/**\r\n * Evaluates JavaScript code and executes it.\r\n * @param x A String value that contains valid JavaScript code.\r\n */\r\ndeclare function eval(x: string): any;\r\n\r\n/**\r\n * Converts a string to an integer.\r\n * @param string A string to convert into a number.\r\n * @param radix A value between 2 and 36 that specifies the base of the number in `string`.\r\n * If this argument is not supplied, strings with a prefix of '0x' are considered hexadecimal.\r\n * All other strings are considered decimal.\r\n */\r\ndeclare function parseInt(string: string, radix?: number): number;\r\n\r\n/**\r\n * Converts a string to a floating-point number.\r\n * @param string A string that contains a floating-point number.\r\n */\r\ndeclare function parseFloat(string: string): number;\r\n\r\n/**\r\n * Returns a Boolean value that indicates whether a value is the reserved value NaN (not a number).\r\n * @param number A numeric value.\r\n */\r\ndeclare function isNaN(number: number): boolean;\r\n\r\n/**\r\n * Determines whether a supplied number is finite.\r\n * @param number Any numeric value.\r\n */\r\ndeclare function isFinite(number: number): boolean;\r\n\r\n/**\r\n * Gets the unencoded version of an encoded Uniform Resource Identifier (URI).\r\n * @param encodedURI A value representing an encoded URI.\r\n */\r\ndeclare function decodeURI(encodedURI: string): string;\r\n\r\n/**\r\n * Gets the unencoded version of an encoded component of a Uniform Resource Identifier (URI).\r\n * @param encodedURIComponent A value representing an encoded URI component.\r\n */\r\ndeclare function decodeURIComponent(encodedURIComponent: string): string;\r\n\r\n/**\r\n * Encodes a text string as a valid Uniform Resource Identifier (URI)\r\n * @param uri A value representing an unencoded URI.\r\n */\r\ndeclare function encodeURI(uri: string): string;\r\n\r\n/**\r\n * Encodes a text string as a valid component of a Uniform Resource Identifier (URI).\r\n * @param uriComponent A value representing an unencoded URI component.\r\n */\r\ndeclare function encodeURIComponent(uriComponent: string | number | boolean): string;\r\n\r\n/**\r\n * Computes a new string in which certain characters have been replaced by a hexadecimal escape sequence.\r\n * @deprecated A legacy feature for browser compatibility\r\n * @param string A string value\r\n */\r\ndeclare function escape(string: string): string;\r\n\r\n/**\r\n * Computes a new string in which hexadecimal escape sequences are replaced with the character that it represents.\r\n * @deprecated A legacy feature for browser compatibility\r\n * @param string A string value\r\n */\r\ndeclare function unescape(string: string): string;\r\n\r\ninterface Symbol {\r\n    /** Returns a string representation of an object. */\r\n    toString(): string;\r\n\r\n    /** Returns the primitive value of the specified object. */\r\n    valueOf(): symbol;\r\n}\r\n\r\ndeclare type PropertyKey = string | number | symbol;\r\n\r\ninterface PropertyDescriptor {\r\n    configurable?: boolean;\r\n    enumerable?: boolean;\r\n    value?: any;\r\n    writable?: boolean;\r\n    get?(): any;\r\n    set?(v: any): void;\r\n}\r\n\r\ninterface PropertyDescriptorMap {\r\n    [key: PropertyKey]: PropertyDescriptor;\r\n}\r\n\r\ninterface Object {\r\n    /** The initial value of Object.prototype.constructor is the standard built-in Object constructor. */\r\n    constructor: Function;\r\n\r\n    /** Returns a string representation of an object. */\r\n    toString(): string;\r\n\r\n    /** Returns a date converted to a string using the current locale. */\r\n    toLocaleString(): string;\r\n\r\n    /** Returns the primitive value of the specified object. */\r\n    valueOf(): Object;\r\n\r\n    /**\r\n     * Determines whether an object has a property with the specified name.\r\n     * @param v A property name.\r\n     */\r\n    hasOwnProperty(v: PropertyKey): boolean;\r\n\r\n    /**\r\n     * Determines whether an object exists in another object's prototype chain.\r\n     * @param v Another object whose prototype chain is to be checked.\r\n     */\r\n    isPrototypeOf(v: Object): boolean;\r\n\r\n    /**\r\n     * Determines whether a specified property is enumerable.\r\n     * @param v A property name.\r\n     */\r\n    propertyIsEnumerable(v: PropertyKey): boolean;\r\n}\r\n\r\ninterface ObjectConstructor {\r\n    new(value?: any): Object;\r\n    (): any;\r\n    (value: any): any;\r\n\r\n    /** A reference to the prototype for a class of objects. */\r\n    readonly prototype: Object;\r\n\r\n    /**\r\n     * Returns the prototype of an object.\r\n     * @param o The object that references the prototype.\r\n     */\r\n    getPrototypeOf(o: any): any;\r\n\r\n    /**\r\n     * Gets the own property descriptor of the specified object.\r\n     * An own property descriptor is one that is defined directly on the object and is not inherited from the object's prototype.\r\n     * @param o Object that contains the property.\r\n     * @param p Name of the property.\r\n     */\r\n    getOwnPropertyDescriptor(o: any, p: PropertyKey): PropertyDescriptor | undefined;\r\n\r\n    /**\r\n     * Returns the names of the own properties of an object. The own properties of an object are those that are defined directly\r\n     * on that object, and are not inherited from the object's prototype. The properties of an object include both fields (objects) and functions.\r\n     * @param o Object that contains the own properties.\r\n     */\r\n    getOwnPropertyNames(o: any): string[];\r\n\r\n    /**\r\n     * Creates an object that has the specified prototype or that has null prototype.\r\n     * @param o Object to use as a prototype. May be null.\r\n     */\r\n    create(o: object | null): any;\r\n\r\n    /**\r\n     * Creates an object that has the specified prototype, and that optionally contains specified properties.\r\n     * @param o Object to use as a prototype. May be null\r\n     * @param properties JavaScript object that contains one or more property descriptors.\r\n     */\r\n    create(o: object | null, properties: PropertyDescriptorMap & ThisType<any>): any;\r\n\r\n    /**\r\n     * Adds a property to an object, or modifies attributes of an existing property.\r\n     * @param o Object on which to add or modify the property. This can be a native JavaScript object (that is, a user-defined object or a built in object) or a DOM object.\r\n     * @param p The property name.\r\n     * @param attributes Descriptor for the property. It can be for a data property or an accessor property.\r\n     */\r\n    defineProperty<T>(o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType<any>): T;\r\n\r\n    /**\r\n     * Adds one or more properties to an object, and/or modifies attributes of existing properties.\r\n     * @param o Object on which to add or modify the properties. This can be a native JavaScript object or a DOM object.\r\n     * @param properties JavaScript object that contains one or more descriptor objects. Each descriptor object describes a data property or an accessor property.\r\n     */\r\n    defineProperties<T>(o: T, properties: PropertyDescriptorMap & ThisType<any>): T;\r\n\r\n    /**\r\n     * Prevents the modification of attributes of existing properties, and prevents the addition of new properties.\r\n     * @param o Object on which to lock the attributes.\r\n     */\r\n    seal<T>(o: T): T;\r\n\r\n    /**\r\n     * Prevents the modification of existing property attributes and values, and prevents the addition of new properties.\r\n     * @param f Object on which to lock the attributes.\r\n     */\r\n    freeze<T extends Function>(f: T): T;\r\n\r\n    /**\r\n     * Prevents the modification of existing property attributes and values, and prevents the addition of new properties.\r\n     * @param o Object on which to lock the attributes.\r\n     */\r\n    freeze<T extends {[idx: string]: U | null | undefined | object}, U extends string | bigint | number | boolean | symbol>(o: T): Readonly<T>;\r\n\r\n    /**\r\n     * Prevents the modification of existing property attributes and values, and prevents the addition of new properties.\r\n     * @param o Object on which to lock the attributes.\r\n     */\r\n    freeze<T>(o: T): Readonly<T>;\r\n\r\n    /**\r\n     * Prevents the addition of new properties to an object.\r\n     * @param o Object to make non-extensible.\r\n     */\r\n    preventExtensions<T>(o: T): T;\r\n\r\n    /**\r\n     * Returns true if existing property attributes cannot be modified in an object and new properties cannot be added to the object.\r\n     * @param o Object to test.\r\n     */\r\n    isSealed(o: any): boolean;\r\n\r\n    /**\r\n     * Returns true if existing property attributes and values cannot be modified in an object, and new properties cannot be added to the object.\r\n     * @param o Object to test.\r\n     */\r\n    isFrozen(o: any): boolean;\r\n\r\n    /**\r\n     * Returns a value that indicates whether new properties can be added to an object.\r\n     * @param o Object to test.\r\n     */\r\n    isExtensible(o: any): boolean;\r\n\r\n    /**\r\n     * Returns the names of the enumerable string properties and methods of an object.\r\n     * @param o Object that contains the properties and methods. This can be an object that you created or an existing Document Object Model (DOM) object.\r\n     */\r\n    keys(o: object): string[];\r\n}\r\n\r\n/**\r\n * Provides functionality common to all JavaScript objects.\r\n */\r\ndeclare var Object: ObjectConstructor;\r\n\r\n/**\r\n * Creates a new function.\r\n */\r\ninterface Function {\r\n    /**\r\n     * Calls the function, substituting the specified object for the this value of the function, and the specified array for the arguments of the function.\r\n     * @param thisArg The object to be used as the this object.\r\n     * @param argArray A set of arguments to be passed to the function.\r\n     */\r\n    apply(this: Function, thisArg: any, argArray?: any): any;\r\n\r\n    /**\r\n     * Calls a method of an object, substituting another object for the current object.\r\n     * @param thisArg The object to be used as the current object.\r\n     * @param argArray A list of arguments to be passed to the method.\r\n     */\r\n    call(this: Function, thisArg: any, ...argArray: any[]): any;\r\n\r\n    /**\r\n     * For a given function, creates a bound function that has the same body as the original function.\r\n     * The this object of the bound function is associated with the specified object, and has the specified initial parameters.\r\n     * @param thisArg An object to which the this keyword can refer inside the new function.\r\n     * @param argArray A list of arguments to be passed to the new function.\r\n     */\r\n    bind(this: Function, thisArg: any, ...argArray: any[]): any;\r\n\r\n    /** Returns a string representation of a function. */\r\n    toString(): string;\r\n\r\n    prototype: any;\r\n    readonly length: number;\r\n\r\n    // Non-standard extensions\r\n    arguments: any;\r\n    caller: Function;\r\n}\r\n\r\ninterface FunctionConstructor {\r\n    /**\r\n     * Creates a new function.\r\n     * @param args A list of arguments the function accepts.\r\n     */\r\n    new(...args: string[]): Function;\r\n    (...args: string[]): Function;\r\n    readonly prototype: Function;\r\n}\r\n\r\ndeclare var Function: FunctionConstructor;\r\n\r\n/**\r\n * Extracts the type of the 'this' parameter of a function type, or 'unknown' if the function type has no 'this' parameter.\r\n */\r\ntype ThisParameterType<T> = T extends (this: infer U, ...args: never) => any ? U : unknown;\r\n\r\n/**\r\n * Removes the 'this' parameter from a function type.\r\n */\r\ntype OmitThisParameter<T> = unknown extends ThisParameterType<T> ? T : T extends (...args: infer A) => infer R ? (...args: A) => R : T;\r\n\r\ninterface CallableFunction extends Function {\r\n    /**\r\n     * Calls the function with the specified object as the this value and the elements of specified array as the arguments.\r\n     * @param thisArg The object to be used as the this object.\r\n     * @param args An array of argument values to be passed to the function.\r\n     */\r\n    apply<T, R>(this: (this: T) => R, thisArg: T): R;\r\n    apply<T, A extends any[], R>(this: (this: T, ...args: A) => R, thisArg: T, args: A): R;\r\n\r\n    /**\r\n     * Calls the function with the specified object as the this value and the specified rest arguments as the arguments.\r\n     * @param thisArg The object to be used as the this object.\r\n     * @param args Argument values to be passed to the function.\r\n     */\r\n    call<T, A extends any[], R>(this: (this: T, ...args: A) => R, thisArg: T, ...args: A): R;\r\n\r\n    /**\r\n     * For a given function, creates a bound function that has the same body as the original function.\r\n     * The this object of the bound function is associated with the specified object, and has the specified initial parameters.\r\n     * @param thisArg The object to be used as the this object.\r\n     * @param args Arguments to bind to the parameters of the function.\r\n     */\r\n    bind<T>(this: T, thisArg: ThisParameterType<T>): OmitThisParameter<T>;\r\n    bind<T, A0, A extends any[], R>(this: (this: T, arg0: A0, ...args: A) => R, thisArg: T, arg0: A0): (...args: A) => R;\r\n    bind<T, A0, A1, A extends any[], R>(this: (this: T, arg0: A0, arg1: A1, ...args: A) => R, thisArg: T, arg0: A0, arg1: A1): (...args: A) => R;\r\n    bind<T, A0, A1, A2, A extends any[], R>(this: (this: T, arg0: A0, arg1: A1, arg2: A2, ...args: A) => R, thisArg: T, arg0: A0, arg1: A1, arg2: A2): (...args: A) => R;\r\n    bind<T, A0, A1, A2, A3, A extends any[], R>(this: (this: T, arg0: A0, arg1: A1, arg2: A2, arg3: A3, ...args: A) => R, thisArg: T, arg0: A0, arg1: A1, arg2: A2, arg3: A3): (...args: A) => R;\r\n    bind<T, AX, R>(this: (this: T, ...args: AX[]) => R, thisArg: T, ...args: AX[]): (...args: AX[]) => R;\r\n}\r\n\r\ninterface NewableFunction extends Function {\r\n    /**\r\n     * Calls the function with the specified object as the this value and the elements of specified array as the arguments.\r\n     * @param thisArg The object to be used as the this object.\r\n     * @param args An array of argument values to be passed to the function.\r\n     */\r\n    apply<T>(this: new () => T, thisArg: T): void;\r\n    apply<T, A extends any[]>(this: new (...args: A) => T, thisArg: T, args: A): void;\r\n\r\n    /**\r\n     * Calls the function with the specified object as the this value and the specified rest arguments as the arguments.\r\n     * @param thisArg The object to be used as the this object.\r\n     * @param args Argument values to be passed to the function.\r\n     */\r\n    call<T, A extends any[]>(this: new (...args: A) => T, thisArg: T, ...args: A): void;\r\n\r\n    /**\r\n     * For a given function, creates a bound function that has the same body as the original function.\r\n     * The this object of the bound function is associated with the specified object, and has the specified initial parameters.\r\n     * @param thisArg The object to be used as the this object.\r\n     * @param args Arguments to bind to the parameters of the function.\r\n     */\r\n    bind<T>(this: T, thisArg: any): T;\r\n    bind<A0, A extends any[], R>(this: new (arg0: A0, ...args: A) => R, thisArg: any, arg0: A0): new (...args: A) => R;\r\n    bind<A0, A1, A extends any[], R>(this: new (arg0: A0, arg1: A1, ...args: A) => R, thisArg: any, arg0: A0, arg1: A1): new (...args: A) => R;\r\n    bind<A0, A1, A2, A extends any[], R>(this: new (arg0: A0, arg1: A1, arg2: A2, ...args: A) => R, thisArg: any, arg0: A0, arg1: A1, arg2: A2): new (...args: A) => R;\r\n    bind<A0, A1, A2, A3, A extends any[], R>(this: new (arg0: A0, arg1: A1, arg2: A2, arg3: A3, ...args: A) => R, thisArg: any, arg0: A0, arg1: A1, arg2: A2, arg3: A3): new (...args: A) => R;\r\n    bind<AX, R>(this: new (...args: AX[]) => R, thisArg: any, ...args: AX[]): new (...args: AX[]) => R;\r\n}\r\n\r\ninterface IArguments {\r\n    [index: number]: any;\r\n    length: number;\r\n    callee: Function;\r\n}\r\n\r\ninterface String {\r\n    /** Returns a string representation of a string. */\r\n    toString(): string;\r\n\r\n    /**\r\n     * Returns the character at the specified index.\r\n     * @param pos The zero-based index of the desired character.\r\n     */\r\n    charAt(pos: number): string;\r\n\r\n    /**\r\n     * Returns the Unicode value of the character at the specified location.\r\n     * @param index The zero-based index of the desired character. If there is no character at the specified index, NaN is returned.\r\n     */\r\n    charCodeAt(index: number): number;\r\n\r\n    /**\r\n     * Returns a string that contains the concatenation of two or more strings.\r\n     * @param strings The strings to append to the end of the string.\r\n     */\r\n    concat(...strings: string[]): string;\r\n\r\n    /**\r\n     * Returns the position of the first occurrence of a substring.\r\n     * @param searchString The substring to search for in the string\r\n     * @param position The index at which to begin searching the String object. If omitted, search starts at the beginning of the string.\r\n     */\r\n    indexOf(searchString: string, position?: number): number;\r\n\r\n    /**\r\n     * Returns the last occurrence of a substring in the string.\r\n     * @param searchString The substring to search for.\r\n     * @param position The index at which to begin searching. If omitted, the search begins at the end of the string.\r\n     */\r\n    lastIndexOf(searchString: string, position?: number): number;\r\n\r\n    /**\r\n     * Determines whether two strings are equivalent in the current locale.\r\n     * @param that String to compare to target string\r\n     */\r\n    localeCompare(that: string): number;\r\n\r\n    /**\r\n     * Matches a string with a regular expression, and returns an array containing the results of that search.\r\n     * @param regexp A variable name or string literal containing the regular expression pattern and flags.\r\n     */\r\n    match(regexp: string | RegExp): RegExpMatchArray | null;\r\n\r\n    /**\r\n     * Replaces text in a string, using a regular expression or search string.\r\n     * @param searchValue A string or regular expression to search for.\r\n     * @param replaceValue A string containing the text to replace. When the {@linkcode searchValue} is a `RegExp`, all matches are replaced if the `g` flag is set (or only those matches at the beginning, if the `y` flag is also present). Otherwise, only the first match of {@linkcode searchValue} is replaced.\r\n     */\r\n    replace(searchValue: string | RegExp, replaceValue: string): string;\r\n\r\n    /**\r\n     * Replaces text in a string, using a regular expression or search string.\r\n     * @param searchValue A string to search for.\r\n     * @param replacer A function that returns the replacement text.\r\n     */\r\n    replace(searchValue: string | RegExp, replacer: (substring: string, ...args: any[]) => string): string;\r\n\r\n    /**\r\n     * Finds the first substring match in a regular expression search.\r\n     * @param regexp The regular expression pattern and applicable flags.\r\n     */\r\n    search(regexp: string | RegExp): number;\r\n\r\n    /**\r\n     * Returns a section of a string.\r\n     * @param start The index to the beginning of the specified portion of stringObj.\r\n     * @param end The index to the end of the specified portion of stringObj. The substring includes the characters up to, but not including, the character indicated by end.\r\n     * If this value is not specified, the substring continues to the end of stringObj.\r\n     */\r\n    slice(start?: number, end?: number): string;\r\n\r\n    /**\r\n     * Split a string into substrings using the specified separator and return them as an array.\r\n     * @param separator A string that identifies character or characters to use in separating the string. If omitted, a single-element array containing the entire string is returned.\r\n     * @param limit A value used to limit the number of elements returned in the array.\r\n     */\r\n    split(separator: string | RegExp, limit?: number): string[];\r\n\r\n    /**\r\n     * Returns the substring at the specified location within a String object.\r\n     * @param start The zero-based index number indicating the beginning of the substring.\r\n     * @param end Zero-based index number indicating the end of the substring. The substring includes the characters up to, but not including, the character indicated by end.\r\n     * If end is omitted, the characters from start through the end of the original string are returned.\r\n     */\r\n    substring(start: number, end?: number): string;\r\n\r\n    /** Converts all the alphabetic characters in a string to lowercase. */\r\n    toLowerCase(): string;\r\n\r\n    /** Converts all alphabetic characters to lowercase, taking into account the host environment's current locale. */\r\n    toLocaleLowerCase(locales?: string | string[]): string;\r\n\r\n    /** Converts all the alphabetic characters in a string to uppercase. */\r\n    toUpperCase(): string;\r\n\r\n    /** Returns a string where all alphabetic characters have been converted to uppercase, taking into account the host environment's current locale. */\r\n    toLocaleUpperCase(locales?: string | string[]): string;\r\n\r\n    /** Removes the leading and trailing white space and line terminator characters from a string. */\r\n    trim(): string;\r\n\r\n    /** Returns the length of a String object. */\r\n    readonly length: number;\r\n\r\n    // IE extensions\r\n    /**\r\n     * Gets a substring beginning at the specified location and having the specified length.\r\n     * @deprecated A legacy feature for browser compatibility\r\n     * @param from The starting position of the desired substring. The index of the first character in the string is zero.\r\n     * @param length The number of characters to include in the returned substring.\r\n     */\r\n    substr(from: number, length?: number): string;\r\n\r\n    /** Returns the primitive value of the specified object. */\r\n    valueOf(): string;\r\n\r\n    readonly [index: number]: string;\r\n}\r\n\r\ninterface StringConstructor {\r\n    new(value?: any): String;\r\n    (value?: any): string;\r\n    readonly prototype: String;\r\n    fromCharCode(...codes: number[]): string;\r\n}\r\n\r\n/**\r\n * Allows manipulation and formatting of text strings and determination and location of substrings within strings.\r\n */\r\ndeclare var String: StringConstructor;\r\n\r\ninterface Boolean {\r\n    /** Returns the primitive value of the specified object. */\r\n    valueOf(): boolean;\r\n}\r\n\r\ninterface BooleanConstructor {\r\n    new(value?: any): Boolean;\r\n    <T>(value?: T): boolean;\r\n    readonly prototype: Boolean;\r\n}\r\n\r\ndeclare var Boolean: BooleanConstructor;\r\n\r\ninterface Number {\r\n    /**\r\n     * Returns a string representation of an object.\r\n     * @param radix Specifies a radix for converting numeric values to strings. This value is only used for numbers.\r\n     */\r\n    toString(radix?: number): string;\r\n\r\n    /**\r\n     * Returns a string representing a number in fixed-point notation.\r\n     * @param fractionDigits Number of digits after the decimal point. Must be in the range 0 - 20, inclusive.\r\n     */\r\n    toFixed(fractionDigits?: number): string;\r\n\r\n    /**\r\n     * Returns a string containing a number represented in exponential notation.\r\n     * @param fractionDigits Number of digits after the decimal point. Must be in the range 0 - 20, inclusive.\r\n     */\r\n    toExponential(fractionDigits?: number): string;\r\n\r\n    /**\r\n     * Returns a string containing a number represented either in exponential or fixed-point notation with a specified number of digits.\r\n     * @param precision Number of significant digits. Must be in the range 1 - 21, inclusive.\r\n     */\r\n    toPrecision(precision?: number): string;\r\n\r\n    /** Returns the primitive value of the specified object. */\r\n    valueOf(): number;\r\n}\r\n\r\ninterface NumberConstructor {\r\n    new(value?: any): Number;\r\n    (value?: any): number;\r\n    readonly prototype: Number;\r\n\r\n    /** The largest number that can be represented in JavaScript. Equal to approximately 1.79E+308. */\r\n    readonly MAX_VALUE: number;\r\n\r\n    /** The closest number to zero that can be represented in JavaScript. Equal to approximately 5.00E-324. */\r\n    readonly MIN_VALUE: number;\r\n\r\n    /**\r\n     * A value that is not a number.\r\n     * In equality comparisons, NaN does not equal any value, including itself. To test whether a value is equivalent to NaN, use the isNaN function.\r\n     */\r\n    readonly NaN: number;\r\n\r\n    /**\r\n     * A value that is less than the largest negative number that can be represented in JavaScript.\r\n     * JavaScript displays NEGATIVE_INFINITY values as -infinity.\r\n     */\r\n    readonly NEGATIVE_INFINITY: number;\r\n\r\n    /**\r\n     * A value greater than the largest number that can be represented in JavaScript.\r\n     * JavaScript displays POSITIVE_INFINITY values as infinity.\r\n     */\r\n    readonly POSITIVE_INFINITY: number;\r\n}\r\n\r\n/** An object that represents a number of any kind. All JavaScript numbers are 64-bit floating-point numbers. */\r\ndeclare var Number: NumberConstructor;\r\n\r\ninterface TemplateStringsArray extends ReadonlyArray<string> {\r\n    readonly raw: readonly string[];\r\n}\r\n\r\n/**\r\n * The type of `import.meta`.\r\n *\r\n * If you need to declare that a given property exists on `import.meta`,\r\n * this type may be augmented via interface merging.\r\n */\r\ninterface ImportMeta {\r\n}\r\n\r\n/**\r\n * The type for the optional second argument to `import()`.\r\n *\r\n * If your host environment supports additional options, this type may be\r\n * augmented via interface merging.\r\n */\r\ninterface ImportCallOptions {\r\n    assert?: ImportAssertions;\r\n}\r\n\r\n/**\r\n * The type for the `assert` property of the optional second argument to `import()`.\r\n */\r\ninterface ImportAssertions {\r\n    [key: string]: string;\r\n}\r\n\r\ninterface Math {\r\n    /** The mathematical constant e. This is Euler's number, the base of natural logarithms. */\r\n    readonly E: number;\r\n    /** The natural logarithm of 10. */\r\n    readonly LN10: number;\r\n    /** The natural logarithm of 2. */\r\n    readonly LN2: number;\r\n    /** The base-2 logarithm of e. */\r\n    readonly LOG2E: number;\r\n    /** The base-10 logarithm of e. */\r\n    readonly LOG10E: number;\r\n    /** Pi. This is the ratio of the circumference of a circle to its diameter. */\r\n    readonly PI: number;\r\n    /** The square root of 0.5, or, equivalently, one divided by the square root of 2. */\r\n    readonly SQRT1_2: number;\r\n    /** The square root of 2. */\r\n    readonly SQRT2: number;\r\n    /**\r\n     * Returns the absolute value of a number (the value without regard to whether it is positive or negative).\r\n     * For example, the absolute value of -5 is the same as the absolute value of 5.\r\n     * @param x A numeric expression for which the absolute value is needed.\r\n     */\r\n    abs(x: number): number;\r\n    /**\r\n     * Returns the arc cosine (or inverse cosine) of a number.\r\n     * @param x A numeric expression.\r\n     */\r\n    acos(x: number): number;\r\n    /**\r\n     * Returns the arcsine of a number.\r\n     * @param x A numeric expression.\r\n     */\r\n    asin(x: number): number;\r\n    /**\r\n     * Returns the arctangent of a number.\r\n     * @param x A numeric expression for which the arctangent is needed.\r\n     */\r\n    atan(x: number): number;\r\n    /**\r\n     * Returns the angle (in radians) from the X axis to a point.\r\n     * @param y A numeric expression representing the cartesian y-coordinate.\r\n     * @param x A numeric expression representing the cartesian x-coordinate.\r\n     */\r\n    atan2(y: number, x: number): number;\r\n    /**\r\n     * Returns the smallest integer greater than or equal to its numeric argument.\r\n     * @param x A numeric expression.\r\n     */\r\n    ceil(x: number): number;\r\n    /**\r\n     * Returns the cosine of a number.\r\n     * @param x A numeric expression that contains an angle measured in radians.\r\n     */\r\n    cos(x: number): number;\r\n    /**\r\n     * Returns e (the base of natural logarithms) raised to a power.\r\n     * @param x A numeric expression representing the power of e.\r\n     */\r\n    exp(x: number): number;\r\n    /**\r\n     * Returns the greatest integer less than or equal to its numeric argument.\r\n     * @param x A numeric expression.\r\n     */\r\n    floor(x: number): number;\r\n    /**\r\n     * Returns the natural logarithm (base e) of a number.\r\n     * @param x A numeric expression.\r\n     */\r\n    log(x: number): number;\r\n    /**\r\n     * Returns the larger of a set of supplied numeric expressions.\r\n     * @param values Numeric expressions to be evaluated.\r\n     */\r\n    max(...values: number[]): number;\r\n    /**\r\n     * Returns the smaller of a set of supplied numeric expressions.\r\n     * @param values Numeric expressions to be evaluated.\r\n     */\r\n    min(...values: number[]): number;\r\n    /**\r\n     * Returns the value of a base expression taken to a specified power.\r\n     * @param x The base value of the expression.\r\n     * @param y The exponent value of the expression.\r\n     */\r\n    pow(x: number, y: number): number;\r\n    /** Returns a pseudorandom number between 0 and 1. */\r\n    random(): number;\r\n    /**\r\n     * Returns a supplied numeric expression rounded to the nearest integer.\r\n     * @param x The value to be rounded to the nearest integer.\r\n     */\r\n    round(x: number): number;\r\n    /**\r\n     * Returns the sine of a number.\r\n     * @param x A numeric expression that contains an angle measured in radians.\r\n     */\r\n    sin(x: number): number;\r\n    /**\r\n     * Returns the square root of a number.\r\n     * @param x A numeric expression.\r\n     */\r\n    sqrt(x: number): number;\r\n    /**\r\n     * Returns the tangent of a number.\r\n     * @param x A numeric expression that contains an angle measured in radians.\r\n     */\r\n    tan(x: number): number;\r\n}\r\n/** An intrinsic object that provides basic mathematics functionality and constants. */\r\ndeclare var Math: Math;\r\n\r\n/** Enables basic storage and retrieval of dates and times. */\r\ninterface Date {\r\n    /** Returns a string representation of a date. The format of the string depends on the locale. */\r\n    toString(): string;\r\n    /** Returns a date as a string value. */\r\n    toDateString(): string;\r\n    /** Returns a time as a string value. */\r\n    toTimeString(): string;\r\n    /** Returns a value as a string value appropriate to the host environment's current locale. */\r\n    toLocaleString(): string;\r\n    /** Returns a date as a string value appropriate to the host environment's current locale. */\r\n    toLocaleDateString(): string;\r\n    /** Returns a time as a string value appropriate to the host environment's current locale. */\r\n    toLocaleTimeString(): string;\r\n    /** Returns the stored time value in milliseconds since midnight, January 1, 1970 UTC. */\r\n    valueOf(): number;\r\n    /** Gets the time value in milliseconds. */\r\n    getTime(): number;\r\n    /** Gets the year, using local time. */\r\n    getFullYear(): number;\r\n    /** Gets the year using Universal Coordinated Time (UTC). */\r\n    getUTCFullYear(): number;\r\n    /** Gets the month, using local time. */\r\n    getMonth(): number;\r\n    /** Gets the month of a Date object using Universal Coordinated Time (UTC). */\r\n    getUTCMonth(): number;\r\n    /** Gets the day-of-the-month, using local time. */\r\n    getDate(): number;\r\n    /** Gets the day-of-the-month, using Universal Coordinated Time (UTC). */\r\n    getUTCDate(): number;\r\n    /** Gets the day of the week, using local time. */\r\n    getDay(): number;\r\n    /** Gets the day of the week using Universal Coordinated Time (UTC). */\r\n    getUTCDay(): number;\r\n    /** Gets the hours in a date, using local time. */\r\n    getHours(): number;\r\n    /** Gets the hours value in a Date object using Universal Coordinated Time (UTC). */\r\n    getUTCHours(): number;\r\n    /** Gets the minutes of a Date object, using local time. */\r\n    getMinutes(): number;\r\n    /** Gets the minutes of a Date object using Universal Coordinated Time (UTC). */\r\n    getUTCMinutes(): number;\r\n    /** Gets the seconds of a Date object, using local time. */\r\n    getSeconds(): number;\r\n    /** Gets the seconds of a Date object using Universal Coordinated Time (UTC). */\r\n    getUTCSeconds(): number;\r\n    /** Gets the milliseconds of a Date, using local time. */\r\n    getMilliseconds(): number;\r\n    /** Gets the milliseconds of a Date object using Universal Coordinated Time (UTC). */\r\n    getUTCMilliseconds(): number;\r\n    /** Gets the difference in minutes between the time on the local computer and Universal Coordinated Time (UTC). */\r\n    getTimezoneOffset(): number;\r\n    /**\r\n     * Sets the date and time value in the Date object.\r\n     * @param time A numeric value representing the number of elapsed milliseconds since midnight, January 1, 1970 GMT.\r\n     */\r\n    setTime(time: number): number;\r\n    /**\r\n     * Sets the milliseconds value in the Date object using local time.\r\n     * @param ms A numeric value equal to the millisecond value.\r\n     */\r\n    setMilliseconds(ms: number): number;\r\n    /**\r\n     * Sets the milliseconds value in the Date object using Universal Coordinated Time (UTC).\r\n     * @param ms A numeric value equal to the millisecond value.\r\n     */\r\n    setUTCMilliseconds(ms: number): number;\r\n\r\n    /**\r\n     * Sets the seconds value in the Date object using local time.\r\n     * @param sec A numeric value equal to the seconds value.\r\n     * @param ms A numeric value equal to the milliseconds value.\r\n     */\r\n    setSeconds(sec: number, ms?: number): number;\r\n    /**\r\n     * Sets the seconds value in the Date object using Universal Coordinated Time (UTC).\r\n     * @param sec A numeric value equal to the seconds value.\r\n     * @param ms A numeric value equal to the milliseconds value.\r\n     */\r\n    setUTCSeconds(sec: number, ms?: number): number;\r\n    /**\r\n     * Sets the minutes value in the Date object using local time.\r\n     * @param min A numeric value equal to the minutes value.\r\n     * @param sec A numeric value equal to the seconds value.\r\n     * @param ms A numeric value equal to the milliseconds value.\r\n     */\r\n    setMinutes(min: number, sec?: number, ms?: number): number;\r\n    /**\r\n     * Sets the minutes value in the Date object using Universal Coordinated Time (UTC).\r\n     * @param min A numeric value equal to the minutes value.\r\n     * @param sec A numeric value equal to the seconds value.\r\n     * @param ms A numeric value equal to the milliseconds value.\r\n     */\r\n    setUTCMinutes(min: number, sec?: number, ms?: number): number;\r\n    /**\r\n     * Sets the hour value in the Date object using local time.\r\n     * @param hours A numeric value equal to the hours value.\r\n     * @param min A numeric value equal to the minutes value.\r\n     * @param sec A numeric value equal to the seconds value.\r\n     * @param ms A numeric value equal to the milliseconds value.\r\n     */\r\n    setHours(hours: number, min?: number, sec?: number, ms?: number): number;\r\n    /**\r\n     * Sets the hours value in the Date object using Universal Coordinated Time (UTC).\r\n     * @param hours A numeric value equal to the hours value.\r\n     * @param min A numeric value equal to the minutes value.\r\n     * @param sec A numeric value equal to the seconds value.\r\n     * @param ms A numeric value equal to the milliseconds value.\r\n     */\r\n    setUTCHours(hours: number, min?: number, sec?: number, ms?: number): number;\r\n    /**\r\n     * Sets the numeric day-of-the-month value of the Date object using local time.\r\n     * @param date A numeric value equal to the day of the month.\r\n     */\r\n    setDate(date: number): number;\r\n    /**\r\n     * Sets the numeric day of the month in the Date object using Universal Coordinated Time (UTC).\r\n     * @param date A numeric value equal to the day of the month.\r\n     */\r\n    setUTCDate(date: number): number;\r\n    /**\r\n     * Sets the month value in the Date object using local time.\r\n     * @param month A numeric value equal to the month. The value for January is 0, and other month values follow consecutively.\r\n     * @param date A numeric value representing the day of the month. If this value is not supplied, the value from a call to the getDate method is used.\r\n     */\r\n    setMonth(month: number, date?: number): number;\r\n    /**\r\n     * Sets the month value in the Date object using Universal Coordinated Time (UTC).\r\n     * @param month A numeric value equal to the month. The value for January is 0, and other month values follow consecutively.\r\n     * @param date A numeric value representing the day of the month. If it is not supplied, the value from a call to the getUTCDate method is used.\r\n     */\r\n    setUTCMonth(month: number, date?: number): number;\r\n    /**\r\n     * Sets the year of the Date object using local time.\r\n     * @param year A numeric value for the year.\r\n     * @param month A zero-based numeric value for the month (0 for January, 11 for December). Must be specified if numDate is specified.\r\n     * @param date A numeric value equal for the day of the month.\r\n     */\r\n    setFullYear(year: number, month?: number, date?: number): number;\r\n    /**\r\n     * Sets the year value in the Date object using Universal Coordinated Time (UTC).\r\n     * @param year A numeric value equal to the year.\r\n     * @param month A numeric value equal to the month. The value for January is 0, and other month values follow consecutively. Must be supplied if numDate is supplied.\r\n     * @param date A numeric value equal to the day of the month.\r\n     */\r\n    setUTCFullYear(year: number, month?: number, date?: number): number;\r\n    /** Returns a date converted to a string using Universal Coordinated Time (UTC). */\r\n    toUTCString(): string;\r\n    /** Returns a date as a string value in ISO format. */\r\n    toISOString(): string;\r\n    /** Used by the JSON.stringify method to enable the transformation of an object's data for JavaScript Object Notation (JSON) serialization. */\r\n    toJSON(key?: any): string;\r\n}\r\n\r\ninterface DateConstructor {\r\n    new(): Date;\r\n    new(value: number | string): Date;\r\n    /**\r\n     * Creates a new Date.\r\n     * @param year The full year designation is required for cross-century date accuracy. If year is between 0 and 99 is used, then year is assumed to be 1900 + year.\r\n     * @param monthIndex The month as a number between 0 and 11 (January to December).\r\n     * @param date The date as a number between 1 and 31.\r\n     * @param hours Must be supplied if minutes is supplied. A number from 0 to 23 (midnight to 11pm) that specifies the hour.\r\n     * @param minutes Must be supplied if seconds is supplied. A number from 0 to 59 that specifies the minutes.\r\n     * @param seconds Must be supplied if milliseconds is supplied. A number from 0 to 59 that specifies the seconds.\r\n     * @param ms A number from 0 to 999 that specifies the milliseconds.\r\n     */\r\n    new(year: number, monthIndex: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): Date;\r\n    (): string;\r\n    readonly prototype: Date;\r\n    /**\r\n     * Parses a string containing a date, and returns the number of milliseconds between that date and midnight, January 1, 1970.\r\n     * @param s A date string\r\n     */\r\n    parse(s: string): number;\r\n    /**\r\n     * Returns the number of milliseconds between midnight, January 1, 1970 Universal Coordinated Time (UTC) (or GMT) and the specified date.\r\n     * @param year The full year designation is required for cross-century date accuracy. If year is between 0 and 99 is used, then year is assumed to be 1900 + year.\r\n     * @param monthIndex The month as a number between 0 and 11 (January to December).\r\n     * @param date The date as a number between 1 and 31.\r\n     * @param hours Must be supplied if minutes is supplied. A number from 0 to 23 (midnight to 11pm) that specifies the hour.\r\n     * @param minutes Must be supplied if seconds is supplied. A number from 0 to 59 that specifies the minutes.\r\n     * @param seconds Must be supplied if milliseconds is supplied. A number from 0 to 59 that specifies the seconds.\r\n     * @param ms A number from 0 to 999 that specifies the milliseconds.\r\n     */\r\n    UTC(year: number, monthIndex: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): number;\r\n    /** Returns the number of milliseconds elapsed since midnight, January 1, 1970 Universal Coordinated Time (UTC). */\r\n    now(): number;\r\n}\r\n\r\ndeclare var Date: DateConstructor;\r\n\r\ninterface RegExpMatchArray extends Array<string> {\r\n    /**\r\n     * The index of the search at which the result was found.\r\n     */\r\n    index?: number;\r\n    /**\r\n     * A copy of the search string.\r\n     */\r\n    input?: string;\r\n    /**\r\n     * The first match. This will always be present because `null` will be returned if there are no matches.\r\n     */\r\n    0: string;\r\n}\r\n\r\ninterface RegExpExecArray extends Array<string> {\r\n    /**\r\n     * The index of the search at which the result was found.\r\n     */\r\n    index: number;\r\n    /**\r\n     * A copy of the search string.\r\n     */\r\n    input: string;\r\n    /**\r\n     * The first match. This will always be present because `null` will be returned if there are no matches.\r\n     */\r\n    0: string;\r\n}\r\n\r\ninterface RegExp {\r\n    /**\r\n     * Executes a search on a string using a regular expression pattern, and returns an array containing the results of that search.\r\n     * @param string The String object or string literal on which to perform the search.\r\n     */\r\n    exec(string: string): RegExpExecArray | null;\r\n\r\n    /**\r\n     * Returns a Boolean value that indicates whether or not a pattern exists in a searched string.\r\n     * @param string String on which to perform the search.\r\n     */\r\n    test(string: string): boolean;\r\n\r\n    /** Returns a copy of the text of the regular expression pattern. Read-only. The regExp argument is a Regular expression object. It can be a variable name or a literal. */\r\n    readonly source: string;\r\n\r\n    /** Returns a Boolean value indicating the state of the global flag (g) used with a regular expression. Default is false. Read-only. */\r\n    readonly global: boolean;\r\n\r\n    /** Returns a Boolean value indicating the state of the ignoreCase flag (i) used with a regular expression. Default is false. Read-only. */\r\n    readonly ignoreCase: boolean;\r\n\r\n    /** Returns a Boolean value indicating the state of the multiline flag (m) used with a regular expression. Default is false. Read-only. */\r\n    readonly multiline: boolean;\r\n\r\n    lastIndex: number;\r\n\r\n    // Non-standard extensions\r\n    /** @deprecated A legacy feature for browser compatibility */\r\n    compile(pattern: string, flags?: string): this;\r\n}\r\n\r\ninterface RegExpConstructor {\r\n    new(pattern: RegExp | string): RegExp;\r\n    new(pattern: string, flags?: string): RegExp;\r\n    (pattern: RegExp | string): RegExp;\r\n    (pattern: string, flags?: string): RegExp;\r\n    readonly prototype: RegExp;\r\n\r\n    // Non-standard extensions\r\n    /** @deprecated A legacy feature for browser compatibility */\r\n    $1: string;\r\n    /** @deprecated A legacy feature for browser compatibility */\r\n    $2: string;\r\n    /** @deprecated A legacy feature for browser compatibility */\r\n    $3: string;\r\n    /** @deprecated A legacy feature for browser compatibility */\r\n    $4: string;\r\n    /** @deprecated A legacy feature for browser compatibility */\r\n    $5: string;\r\n    /** @deprecated A legacy feature for browser compatibility */\r\n    $6: string;\r\n    /** @deprecated A legacy feature for browser compatibility */\r\n    $7: string;\r\n    /** @deprecated A legacy feature for browser compatibility */\r\n    $8: string;\r\n    /** @deprecated A legacy feature for browser compatibility */\r\n    $9: string;\r\n    /** @deprecated A legacy feature for browser compatibility */\r\n    input: string;\r\n    /** @deprecated A legacy feature for browser compatibility */\r\n    $_: string;\r\n    /** @deprecated A legacy feature for browser compatibility */\r\n    lastMatch: string;\r\n    /** @deprecated A legacy feature for browser compatibility */\r\n    \"$&\": string;\r\n    /** @deprecated A legacy feature for browser compatibility */\r\n    lastParen: string;\r\n    /** @deprecated A legacy feature for browser compatibility */\r\n    \"$+\": string;\r\n    /** @deprecated A legacy feature for browser compatibility */\r\n    leftContext: string;\r\n    /** @deprecated A legacy feature for browser compatibility */\r\n    \"$`\": string;\r\n    /** @deprecated A legacy feature for browser compatibility */\r\n    rightContext: string;\r\n    /** @deprecated A legacy feature for browser compatibility */\r\n    \"$'\": string;\r\n}\r\n\r\ndeclare var RegExp: RegExpConstructor;\r\n\r\ninterface Error {\r\n    name: string;\r\n    message: string;\r\n    stack?: string;\r\n}\r\n\r\ninterface ErrorConstructor {\r\n    new(message?: string): Error;\r\n    (message?: string): Error;\r\n    readonly prototype: Error;\r\n}\r\n\r\ndeclare var Error: ErrorConstructor;\r\n\r\ninterface EvalError extends Error {\r\n}\r\n\r\ninterface EvalErrorConstructor extends ErrorConstructor {\r\n    new(message?: string): EvalError;\r\n    (message?: string): EvalError;\r\n    readonly prototype: EvalError;\r\n}\r\n\r\ndeclare var EvalError: EvalErrorConstructor;\r\n\r\ninterface RangeError extends Error {\r\n}\r\n\r\ninterface RangeErrorConstructor extends ErrorConstructor {\r\n    new(message?: string): RangeError;\r\n    (message?: string): RangeError;\r\n    readonly prototype: RangeError;\r\n}\r\n\r\ndeclare var RangeError: RangeErrorConstructor;\r\n\r\ninterface ReferenceError extends Error {\r\n}\r\n\r\ninterface ReferenceErrorConstructor extends ErrorConstructor {\r\n    new(message?: string): ReferenceError;\r\n    (message?: string): ReferenceError;\r\n    readonly prototype: ReferenceError;\r\n}\r\n\r\ndeclare var ReferenceError: ReferenceErrorConstructor;\r\n\r\ninterface SyntaxError extends Error {\r\n}\r\n\r\ninterface SyntaxErrorConstructor extends ErrorConstructor {\r\n    new(message?: string): SyntaxError;\r\n    (message?: string): SyntaxError;\r\n    readonly prototype: SyntaxError;\r\n}\r\n\r\ndeclare var SyntaxError: SyntaxErrorConstructor;\r\n\r\ninterface TypeError extends Error {\r\n}\r\n\r\ninterface TypeErrorConstructor extends ErrorConstructor {\r\n    new(message?: string): TypeError;\r\n    (message?: string): TypeError;\r\n    readonly prototype: TypeError;\r\n}\r\n\r\ndeclare var TypeError: TypeErrorConstructor;\r\n\r\ninterface URIError extends Error {\r\n}\r\n\r\ninterface URIErrorConstructor extends ErrorConstructor {\r\n    new(message?: string): URIError;\r\n    (message?: string): URIError;\r\n    readonly prototype: URIError;\r\n}\r\n\r\ndeclare var URIError: URIErrorConstructor;\r\n\r\ninterface JSON {\r\n    /**\r\n     * Converts a JavaScript Object Notation (JSON) string into an object.\r\n     * @param text A valid JSON string.\r\n     * @param reviver A function that transforms the results. This function is called for each member of the object.\r\n     * If a member contains nested objects, the nested objects are transformed before the parent object is.\r\n     */\r\n    parse(text: string, reviver?: (this: any, key: string, value: any) => any): any;\r\n    /**\r\n     * Converts a JavaScript value to a JavaScript Object Notation (JSON) string.\r\n     * @param value A JavaScript value, usually an object or array, to be converted.\r\n     * @param replacer A function that transforms the results.\r\n     * @param space Adds indentation, white space, and line break characters to the return-value JSON text to make it easier to read.\r\n     */\r\n    stringify(value: any, replacer?: (this: any, key: string, value: any) => any, space?: string | number): string;\r\n    /**\r\n     * Converts a JavaScript value to a JavaScript Object Notation (JSON) string.\r\n     * @param value A JavaScript value, usually an object or array, to be converted.\r\n     * @param replacer An array of strings and numbers that acts as an approved list for selecting the object properties that will be stringified.\r\n     * @param space Adds indentation, white space, and line break characters to the return-value JSON text to make it easier to read.\r\n     */\r\n    stringify(value: any, replacer?: (number | string)[] | null, space?: string | number): string;\r\n}\r\n\r\n/**\r\n * An intrinsic object that provides functions to convert JavaScript values to and from the JavaScript Object Notation (JSON) format.\r\n */\r\ndeclare var JSON: JSON;\r\n\r\n\r\n/////////////////////////////\r\n/// ECMAScript Array API (specially handled by compiler)\r\n/////////////////////////////\r\n\r\ninterface ReadonlyArray<T> {\r\n    /**\r\n     * Gets the length of the array. This is a number one higher than the highest element defined in an array.\r\n     */\r\n    readonly length: number;\r\n    /**\r\n     * Returns a string representation of an array.\r\n     */\r\n    toString(): string;\r\n    /**\r\n     * Returns a string representation of an array. The elements are converted to string using their toLocaleString methods.\r\n     */\r\n    toLocaleString(): string;\r\n    /**\r\n     * Combines two or more arrays.\r\n     * @param items Additional items to add to the end of array1.\r\n     */\r\n    concat(...items: ConcatArray<T>[]): T[];\r\n    /**\r\n     * Combines two or more arrays.\r\n     * @param items Additional items to add to the end of array1.\r\n     */\r\n    concat(...items: (T | ConcatArray<T>)[]): T[];\r\n    /**\r\n     * Adds all the elements of an array separated by the specified separator string.\r\n     * @param separator A string used to separate one element of an array from the next in the resulting String. If omitted, the array elements are separated with a comma.\r\n     */\r\n    join(separator?: string): string;\r\n    /**\r\n     * Returns a section of an array.\r\n     * @param start The beginning of the specified portion of the array.\r\n     * @param end The end of the specified portion of the array. This is exclusive of the element at the index 'end'.\r\n     */\r\n    slice(start?: number, end?: number): T[];\r\n    /**\r\n     * Returns the index of the first occurrence of a value in an array.\r\n     * @param searchElement The value to locate in the array.\r\n     * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the search starts at index 0.\r\n     */\r\n    indexOf(searchElement: T, fromIndex?: number): number;\r\n    /**\r\n     * Returns the index of the last occurrence of a specified value in an array.\r\n     * @param searchElement The value to locate in the array.\r\n     * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the search starts at the last index in the array.\r\n     */\r\n    lastIndexOf(searchElement: T, fromIndex?: number): number;\r\n    /**\r\n     * Determines whether all the members of an array satisfy the specified test.\r\n     * @param predicate A function that accepts up to three arguments. The every method calls\r\n     * the predicate function for each element in the array until the predicate returns a value\r\n     * which is coercible to the Boolean value false, or until the end of the array.\r\n     * @param thisArg An object to which the this keyword can refer in the predicate function.\r\n     * If thisArg is omitted, undefined is used as the this value.\r\n     */\r\n    every<S extends T>(predicate: (value: T, index: number, array: readonly T[]) => value is S, thisArg?: any): this is readonly S[];\r\n    /**\r\n     * Determines whether all the members of an array satisfy the specified test.\r\n     * @param predicate A function that accepts up to three arguments. The every method calls\r\n     * the predicate function for each element in the array until the predicate returns a value\r\n     * which is coercible to the Boolean value false, or until the end of the array.\r\n     * @param thisArg An object to which the this keyword can refer in the predicate function.\r\n     * If thisArg is omitted, undefined is used as the this value.\r\n     */\r\n    every(predicate: (value: T, index: number, array: readonly T[]) => unknown, thisArg?: any): boolean;\r\n    /**\r\n     * Determines whether the specified callback function returns true for any element of an array.\r\n     * @param predicate A function that accepts up to three arguments. The some method calls\r\n     * the predicate function for each element in the array until the predicate returns a value\r\n     * which is coercible to the Boolean value true, or until the end of the array.\r\n     * @param thisArg An object to which the this keyword can refer in the predicate function.\r\n     * If thisArg is omitted, undefined is used as the this value.\r\n     */\r\n    some(predicate: (value: T, index: number, array: readonly T[]) => unknown, thisArg?: any): boolean;\r\n    /**\r\n     * Performs the specified action for each element in an array.\r\n     * @param callbackfn  A function that accepts up to three arguments. forEach calls the callbackfn function one time for each element in the array.\r\n     * @param thisArg  An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.\r\n     */\r\n    forEach(callbackfn: (value: T, index: number, array: readonly T[]) => void, thisArg?: any): void;\r\n    /**\r\n     * Calls a defined callback function on each element of an array, and returns an array that contains the results.\r\n     * @param callbackfn A function that accepts up to three arguments. The map method calls the callbackfn function one time for each element in the array.\r\n     * @param thisArg An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.\r\n     */\r\n    map<U>(callbackfn: (value: T, index: number, array: readonly T[]) => U, thisArg?: any): U[];\r\n    /**\r\n     * Returns the elements of an array that meet the condition specified in a callback function.\r\n     * @param predicate A function that accepts up to three arguments. The filter method calls the predicate function one time for each element in the array.\r\n     * @param thisArg An object to which the this keyword can refer in the predicate function. If thisArg is omitted, undefined is used as the this value.\r\n     */\r\n    filter<S extends T>(predicate: (value: T, index: number, array: readonly T[]) => value is S, thisArg?: any): S[];\r\n    /**\r\n     * Returns the elements of an array that meet the condition specified in a callback function.\r\n     * @param predicate A function that accepts up to three arguments. The filter method calls the predicate function one time for each element in the array.\r\n     * @param thisArg An object to which the this keyword can refer in the predicate function. If thisArg is omitted, undefined is used as the this value.\r\n     */\r\n    filter(predicate: (value: T, index: number, array: readonly T[]) => unknown, thisArg?: any): T[];\r\n    /**\r\n     * Calls the specified callback function for all the elements in an array. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function.\r\n     * @param callbackfn A function that accepts up to four arguments. The reduce method calls the callbackfn function one time for each element in the array.\r\n     * @param initialValue If initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.\r\n     */\r\n    reduce(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: readonly T[]) => T): T;\r\n    reduce(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: readonly T[]) => T, initialValue: T): T;\r\n    /**\r\n     * Calls the specified callback function for all the elements in an array. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function.\r\n     * @param callbackfn A function that accepts up to four arguments. The reduce method calls the callbackfn function one time for each element in the array.\r\n     * @param initialValue If initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.\r\n     */\r\n    reduce<U>(callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: readonly T[]) => U, initialValue: U): U;\r\n    /**\r\n     * Calls the specified callback function for all the elements in an array, in descending order. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function.\r\n     * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls the callbackfn function one time for each element in the array.\r\n     * @param initialValue If initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.\r\n     */\r\n    reduceRight(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: readonly T[]) => T): T;\r\n    reduceRight(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: readonly T[]) => T, initialValue: T): T;\r\n    /**\r\n     * Calls the specified callback function for all the elements in an array, in descending order. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function.\r\n     * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls the callbackfn function one time for each element in the array.\r\n     * @param initialValue If initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.\r\n     */\r\n    reduceRight<U>(callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: readonly T[]) => U, initialValue: U): U;\r\n\r\n    readonly [n: number]: T;\r\n}\r\n\r\ninterface ConcatArray<T> {\r\n    readonly length: number;\r\n    readonly [n: number]: T;\r\n    join(separator?: string): string;\r\n    slice(start?: number, end?: number): T[];\r\n}\r\n\r\ninterface Array<T> {\r\n    /**\r\n     * Gets or sets the length of the array. This is a number one higher than the highest index in the array.\r\n     */\r\n    length: number;\r\n    /**\r\n     * Returns a string representation of an array.\r\n     */\r\n    toString(): string;\r\n    /**\r\n     * Returns a string representation of an array. The elements are converted to string using their toLocaleString methods.\r\n     */\r\n    toLocaleString(): string;\r\n    /**\r\n     * Removes the last element from an array and returns it.\r\n     * If the array is empty, undefined is returned and the array is not modified.\r\n     */\r\n    pop(): T | undefined;\r\n    /**\r\n     * Appends new elements to the end of an array, and returns the new length of the array.\r\n     * @param items New elements to add to the array.\r\n     */\r\n    push(...items: T[]): number;\r\n    /**\r\n     * Combines two or more arrays.\r\n     * This method returns a new array without modifying any existing arrays.\r\n     * @param items Additional arrays and/or items to add to the end of the array.\r\n     */\r\n    concat(...items: ConcatArray<T>[]): T[];\r\n    /**\r\n     * Combines two or more arrays.\r\n     * This method returns a new array without modifying any existing arrays.\r\n     * @param items Additional arrays and/or items to add to the end of the array.\r\n     */\r\n    concat(...items: (T | ConcatArray<T>)[]): T[];\r\n    /**\r\n     * Adds all the elements of an array into a string, separated by the specified separator string.\r\n     * @param separator A string used to separate one element of the array from the next in the resulting string. If omitted, the array elements are separated with a comma.\r\n     */\r\n    join(separator?: string): string;\r\n    /**\r\n     * Reverses the elements in an array in place.\r\n     * This method mutates the array and returns a reference to the same array.\r\n     */\r\n    reverse(): T[];\r\n    /**\r\n     * Removes the first element from an array and returns it.\r\n     * If the array is empty, undefined is returned and the array is not modified.\r\n     */\r\n    shift(): T | undefined;\r\n    /**\r\n     * Returns a copy of a section of an array.\r\n     * For both start and end, a negative index can be used to indicate an offset from the end of the array.\r\n     * For example, -2 refers to the second to last element of the array.\r\n     * @param start The beginning index of the specified portion of the array.\r\n     * If start is undefined, then the slice begins at index 0.\r\n     * @param end The end index of the specified portion of the array. This is exclusive of the element at the index 'end'.\r\n     * If end is undefined, then the slice extends to the end of the array.\r\n     */\r\n    slice(start?: number, end?: number): T[];\r\n    /**\r\n     * Sorts an array in place.\r\n     * This method mutates the array and returns a reference to the same array.\r\n     * @param compareFn Function used to determine the order of the elements. It is expected to return\r\n     * a negative value if the first argument is less than the second argument, zero if they're equal, and a positive\r\n     * value otherwise. If omitted, the elements are sorted in ascending, ASCII character order.\r\n     * ```ts\r\n     * [11,2,22,1].sort((a, b) => a - b)\r\n     * ```\r\n     */\r\n    sort(compareFn?: (a: T, b: T) => number): this;\r\n    /**\r\n     * Removes elements from an array and, if necessary, inserts new elements in their place, returning the deleted elements.\r\n     * @param start The zero-based location in the array from which to start removing elements.\r\n     * @param deleteCount The number of elements to remove.\r\n     * @returns An array containing the elements that were deleted.\r\n     */\r\n    splice(start: number, deleteCount?: number): T[];\r\n    /**\r\n     * Removes elements from an array and, if necessary, inserts new elements in their place, returning the deleted elements.\r\n     * @param start The zero-based location in the array from which to start removing elements.\r\n     * @param deleteCount The number of elements to remove.\r\n     * @param items Elements to insert into the array in place of the deleted elements.\r\n     * @returns An array containing the elements that were deleted.\r\n     */\r\n    splice(start: number, deleteCount: number, ...items: T[]): T[];\r\n    /**\r\n     * Inserts new elements at the start of an array, and returns the new length of the array.\r\n     * @param items Elements to insert at the start of the array.\r\n     */\r\n    unshift(...items: T[]): number;\r\n    /**\r\n     * Returns the index of the first occurrence of a value in an array, or -1 if it is not present.\r\n     * @param searchElement The value to locate in the array.\r\n     * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the search starts at index 0.\r\n     */\r\n    indexOf(searchElement: T, fromIndex?: number): number;\r\n    /**\r\n     * Returns the index of the last occurrence of a specified value in an array, or -1 if it is not present.\r\n     * @param searchElement The value to locate in the array.\r\n     * @param fromIndex The array index at which to begin searching backward. If fromIndex is omitted, the search starts at the last index in the array.\r\n     */\r\n    lastIndexOf(searchElement: T, fromIndex?: number): number;\r\n    /**\r\n     * Determines whether all the members of an array satisfy the specified test.\r\n     * @param predicate A function that accepts up to three arguments. The every method calls\r\n     * the predicate function for each element in the array until the predicate returns a value\r\n     * which is coercible to the Boolean value false, or until the end of the array.\r\n     * @param thisArg An object to which the this keyword can refer in the predicate function.\r\n     * If thisArg is omitted, undefined is used as the this value.\r\n     */\r\n    every<S extends T>(predicate: (value: T, index: number, array: T[]) => value is S, thisArg?: any): this is S[];\r\n    /**\r\n     * Determines whether all the members of an array satisfy the specified test.\r\n     * @param predicate A function that accepts up to three arguments. The every method calls\r\n     * the predicate function for each element in the array until the predicate returns a value\r\n     * which is coercible to the Boolean value false, or until the end of the array.\r\n     * @param thisArg An object to which the this keyword can refer in the predicate function.\r\n     * If thisArg is omitted, undefined is used as the this value.\r\n     */\r\n    every(predicate: (value: T, index: number, array: T[]) => unknown, thisArg?: any): boolean;\r\n    /**\r\n     * Determines whether the specified callback function returns true for any element of an array.\r\n     * @param predicate A function that accepts up to three arguments. The some method calls\r\n     * the predicate function for each element in the array until the predicate returns a value\r\n     * which is coercible to the Boolean value true, or until the end of the array.\r\n     * @param thisArg An object to which the this keyword can refer in the predicate function.\r\n     * If thisArg is omitted, undefined is used as the this value.\r\n     */\r\n    some(predicate: (value: T, index: number, array: T[]) => unknown, thisArg?: any): boolean;\r\n    /**\r\n     * Performs the specified action for each element in an array.\r\n     * @param callbackfn  A function that accepts up to three arguments. forEach calls the callbackfn function one time for each element in the array.\r\n     * @param thisArg  An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.\r\n     */\r\n    forEach(callbackfn: (value: T, index: number, array: T[]) => void, thisArg?: any): void;\r\n    /**\r\n     * Calls a defined callback function on each element of an array, and returns an array that contains the results.\r\n     * @param callbackfn A function that accepts up to three arguments. The map method calls the callbackfn function one time for each element in the array.\r\n     * @param thisArg An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.\r\n     */\r\n    map<U>(callbackfn: (value: T, index: number, array: T[]) => U, thisArg?: any): U[];\r\n    /**\r\n     * Returns the elements of an array that meet the condition specified in a callback function.\r\n     * @param predicate A function that accepts up to three arguments. The filter method calls the predicate function one time for each element in the array.\r\n     * @param thisArg An object to which the this keyword can refer in the predicate function. If thisArg is omitted, undefined is used as the this value.\r\n     */\r\n    filter<S extends T>(predicate: (value: T, index: number, array: T[]) => value is S, thisArg?: any): S[];\r\n    /**\r\n     * Returns the elements of an array that meet the condition specified in a callback function.\r\n     * @param predicate A function that accepts up to three arguments. The filter method calls the predicate function one time for each element in the array.\r\n     * @param thisArg An object to which the this keyword can refer in the predicate function. If thisArg is omitted, undefined is used as the this value.\r\n     */\r\n    filter(predicate: (value: T, index: number, array: T[]) => unknown, thisArg?: any): T[];\r\n    /**\r\n     * Calls the specified callback function for all the elements in an array. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function.\r\n     * @param callbackfn A function that accepts up to four arguments. The reduce method calls the callbackfn function one time for each element in the array.\r\n     * @param initialValue If initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.\r\n     */\r\n    reduce(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T): T;\r\n    reduce(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, initialValue: T): T;\r\n    /**\r\n     * Calls the specified callback function for all the elements in an array. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function.\r\n     * @param callbackfn A function that accepts up to four arguments. The reduce method calls the callbackfn function one time for each element in the array.\r\n     * @param initialValue If initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.\r\n     */\r\n    reduce<U>(callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U, initialValue: U): U;\r\n    /**\r\n     * Calls the specified callback function for all the elements in an array, in descending order. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function.\r\n     * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls the callbackfn function one time for each element in the array.\r\n     * @param initialValue If initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.\r\n     */\r\n    reduceRight(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T): T;\r\n    reduceRight(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, initialValue: T): T;\r\n    /**\r\n     * Calls the specified callback function for all the elements in an array, in descending order. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function.\r\n     * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls the callbackfn function one time for each element in the array.\r\n     * @param initialValue If initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.\r\n     */\r\n    reduceRight<U>(callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U, initialValue: U): U;\r\n\r\n    [n: number]: T;\r\n}\r\n\r\ninterface ArrayConstructor {\r\n    new(arrayLength?: number): any[];\r\n    new <T>(arrayLength: number): T[];\r\n    new <T>(...items: T[]): T[];\r\n    (arrayLength?: number): any[];\r\n    <T>(arrayLength: number): T[];\r\n    <T>(...items: T[]): T[];\r\n    isArray(arg: any): arg is any[];\r\n    readonly prototype: any[];\r\n}\r\n\r\ndeclare var Array: ArrayConstructor;\r\n\r\ninterface TypedPropertyDescriptor<T> {\r\n    enumerable?: boolean;\r\n    configurable?: boolean;\r\n    writable?: boolean;\r\n    value?: T;\r\n    get?: () => T;\r\n    set?: (value: T) => void;\r\n}\r\n\r\ndeclare type ClassDecorator = <TFunction extends Function>(target: TFunction) => TFunction | void;\r\ndeclare type PropertyDecorator = (target: Object, propertyKey: string | symbol) => void;\r\ndeclare type MethodDecorator = <T>(target: Object, propertyKey: string | symbol, descriptor: TypedPropertyDescriptor<T>) => TypedPropertyDescriptor<T> | void;\r\ndeclare type ParameterDecorator = (target: Object, propertyKey: string | symbol, parameterIndex: number) => void;\r\n\r\ndeclare type PromiseConstructorLike = new <T>(executor: (resolve: (value: T | PromiseLike<T>) => void, reject: (reason?: any) => void) => void) => PromiseLike<T>;\r\n\r\ninterface PromiseLike<T> {\r\n    /**\r\n     * Attaches callbacks for the resolution and/or rejection of the Promise.\r\n     * @param onfulfilled The callback to execute when the Promise is resolved.\r\n     * @param onrejected The callback to execute when the Promise is rejected.\r\n     * @returns A Promise for the completion of which ever callback is executed.\r\n     */\r\n    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): PromiseLike<TResult1 | TResult2>;\r\n}\r\n\r\n/**\r\n * Represents the completion of an asynchronous operation\r\n */\r\ninterface Promise<T> {\r\n    /**\r\n     * Attaches callbacks for the resolution and/or rejection of the Promise.\r\n     * @param onfulfilled The callback to execute when the Promise is resolved.\r\n     * @param onrejected The callback to execute when the Promise is rejected.\r\n     * @returns A Promise for the completion of which ever callback is executed.\r\n     */\r\n    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): Promise<TResult1 | TResult2>;\r\n\r\n    /**\r\n     * Attaches a callback for only the rejection of the Promise.\r\n     * @param onrejected The callback to execute when the Promise is rejected.\r\n     * @returns A Promise for the completion of the callback.\r\n     */\r\n    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): Promise<T | TResult>;\r\n}\r\n\r\n/**\r\n * Recursively unwraps the \"awaited type\" of a type. Non-promise \"thenables\" should resolve to `never`. This emulates the behavior of `await`.\r\n */\r\ntype Awaited<T> =\r\n    T extends null | undefined ? T : // special case for `null | undefined` when not in `--strictNullChecks` mode\r\n        T extends object & { then(onfulfilled: infer F, ...args: infer _): any } ? // `await` only unwraps object types with a callable `then`. Non-object types are not unwrapped\r\n            F extends ((value: infer V, ...args: infer _) => any) ? // if the argument to `then` is callable, extracts the first argument\r\n                Awaited<V> : // recursively unwrap the value\r\n                never : // the argument to `then` was not callable\r\n        T; // non-object or non-thenable\r\n\r\ninterface ArrayLike<T> {\r\n    readonly length: number;\r\n    readonly [n: number]: T;\r\n}\r\n\r\n/**\r\n * Make all properties in T optional\r\n */\r\ntype Partial<T> = {\r\n    [P in keyof T]?: T[P];\r\n};\r\n\r\n/**\r\n * Make all properties in T required\r\n */\r\ntype Required<T> = {\r\n    [P in keyof T]-?: T[P];\r\n};\r\n\r\n/**\r\n * Make all properties in T readonly\r\n */\r\ntype Readonly<T> = {\r\n    readonly [P in keyof T]: T[P];\r\n};\r\n\r\n/**\r\n * From T, pick a set of properties whose keys are in the union K\r\n */\r\ntype Pick<T, K extends keyof T> = {\r\n    [P in K]: T[P];\r\n};\r\n\r\n/**\r\n * Construct a type with a set of properties K of type T\r\n */\r\ntype Record<K extends keyof any, T> = {\r\n    [P in K]: T;\r\n};\r\n\r\n/**\r\n * Exclude from T those types that are assignable to U\r\n */\r\ntype Exclude<T, U> = T extends U ? never : T;\r\n\r\n/**\r\n * Extract from T those types that are assignable to U\r\n */\r\ntype Extract<T, U> = T extends U ? T : never;\r\n\r\n/**\r\n * Construct a type with the properties of T except for those in type K.\r\n */\r\ntype Omit<T, K extends keyof any> = Pick<T, Exclude<keyof T, K>>;\r\n\r\n/**\r\n * Exclude null and undefined from T\r\n */\r\ntype NonNullable<T> = T & {};\r\n\r\n/**\r\n * Obtain the parameters of a function type in a tuple\r\n */\r\ntype Parameters<T extends (...args: any) => any> = T extends (...args: infer P) => any ? P : never;\r\n\r\n/**\r\n * Obtain the parameters of a constructor function type in a tuple\r\n */\r\ntype ConstructorParameters<T extends abstract new (...args: any) => any> = T extends abstract new (...args: infer P) => any ? P : never;\r\n\r\n/**\r\n * Obtain the return type of a function type\r\n */\r\ntype ReturnType<T extends (...args: any) => any> = T extends (...args: any) => infer R ? R : any;\r\n\r\n/**\r\n * Obtain the return type of a constructor function type\r\n */\r\ntype InstanceType<T extends abstract new (...args: any) => any> = T extends abstract new (...args: any) => infer R ? R : any;\r\n\r\n/**\r\n * Convert string literal type to uppercase\r\n */\r\ntype Uppercase<S extends string> = intrinsic;\r\n\r\n/**\r\n * Convert string literal type to lowercase\r\n */\r\ntype Lowercase<S extends string> = intrinsic;\r\n\r\n/**\r\n * Convert first character of string literal type to uppercase\r\n */\r\ntype Capitalize<S extends string> = intrinsic;\r\n\r\n/**\r\n * Convert first character of string literal type to lowercase\r\n */\r\ntype Uncapitalize<S extends string> = intrinsic;\r\n\r\n/**\r\n * Marker for contextual 'this' type\r\n */\r\ninterface ThisType<T> { }\r\n\r\n/**\r\n * Represents a raw buffer of binary data, which is used to store data for the\r\n * different typed arrays. ArrayBuffers cannot be read from or written to directly,\r\n * but can be passed to a typed array or DataView Object to interpret the raw\r\n * buffer as needed.\r\n */\r\ninterface ArrayBuffer {\r\n    /**\r\n     * Read-only. The length of the ArrayBuffer (in bytes).\r\n     */\r\n    readonly byteLength: number;\r\n\r\n    /**\r\n     * Returns a section of an ArrayBuffer.\r\n     */\r\n    slice(begin: number, end?: number): ArrayBuffer;\r\n}\r\n\r\n/**\r\n * Allowed ArrayBuffer types for the buffer of an ArrayBufferView and related Typed Arrays.\r\n */\r\ninterface ArrayBufferTypes {\r\n    ArrayBuffer: ArrayBuffer;\r\n}\r\ntype ArrayBufferLike = ArrayBufferTypes[keyof ArrayBufferTypes];\r\n\r\ninterface ArrayBufferConstructor {\r\n    readonly prototype: ArrayBuffer;\r\n    new(byteLength: number): ArrayBuffer;\r\n    isView(arg: any): arg is ArrayBufferView;\r\n}\r\ndeclare var ArrayBuffer: ArrayBufferConstructor;\r\n\r\ninterface ArrayBufferView {\r\n    /**\r\n     * The ArrayBuffer instance referenced by the array.\r\n     */\r\n    buffer: ArrayBufferLike;\r\n\r\n    /**\r\n     * The length in bytes of the array.\r\n     */\r\n    byteLength: number;\r\n\r\n    /**\r\n     * The offset in bytes of the array.\r\n     */\r\n    byteOffset: number;\r\n}\r\n\r\ninterface DataView {\r\n    readonly buffer: ArrayBuffer;\r\n    readonly byteLength: number;\r\n    readonly byteOffset: number;\r\n    /**\r\n     * Gets the Float32 value at the specified byte offset from the start of the view. There is\r\n     * no alignment constraint; multi-byte values may be fetched from any offset.\r\n     * @param byteOffset The place in the buffer at which the value should be retrieved.\r\n     * @param littleEndian If false or undefined, a big-endian value should be read.\r\n     */\r\n    getFloat32(byteOffset: number, littleEndian?: boolean): number;\r\n\r\n    /**\r\n     * Gets the Float64 value at the specified byte offset from the start of the view. There is\r\n     * no alignment constraint; multi-byte values may be fetched from any offset.\r\n     * @param byteOffset The place in the buffer at which the value should be retrieved.\r\n     * @param littleEndian If false or undefined, a big-endian value should be read.\r\n     */\r\n    getFloat64(byteOffset: number, littleEndian?: boolean): number;\r\n\r\n    /**\r\n     * Gets the Int8 value at the specified byte offset from the start of the view. There is\r\n     * no alignment constraint; multi-byte values may be fetched from any offset.\r\n     * @param byteOffset The place in the buffer at which the value should be retrieved.\r\n     */\r\n    getInt8(byteOffset: number): number;\r\n\r\n    /**\r\n     * Gets the Int16 value at the specified byte offset from the start of the view. There is\r\n     * no alignment constraint; multi-byte values may be fetched from any offset.\r\n     * @param byteOffset The place in the buffer at which the value should be retrieved.\r\n     * @param littleEndian If false or undefined, a big-endian value should be read.\r\n     */\r\n    getInt16(byteOffset: number, littleEndian?: boolean): number;\r\n    /**\r\n     * Gets the Int32 value at the specified byte offset from the start of the view. There is\r\n     * no alignment constraint; multi-byte values may be fetched from any offset.\r\n     * @param byteOffset The place in the buffer at which the value should be retrieved.\r\n     * @param littleEndian If false or undefined, a big-endian value should be read.\r\n     */\r\n    getInt32(byteOffset: number, littleEndian?: boolean): number;\r\n\r\n    /**\r\n     * Gets the Uint8 value at the specified byte offset from the start of the view. There is\r\n     * no alignment constraint; multi-byte values may be fetched from any offset.\r\n     * @param byteOffset The place in the buffer at which the value should be retrieved.\r\n     */\r\n    getUint8(byteOffset: number): number;\r\n\r\n    /**\r\n     * Gets the Uint16 value at the specified byte offset from the start of the view. There is\r\n     * no alignment constraint; multi-byte values may be fetched from any offset.\r\n     * @param byteOffset The place in the buffer at which the value should be retrieved.\r\n     * @param littleEndian If false or undefined, a big-endian value should be read.\r\n     */\r\n    getUint16(byteOffset: number, littleEndian?: boolean): number;\r\n\r\n    /**\r\n     * Gets the Uint32 value at the specified byte offset from the start of the view. There is\r\n     * no alignment constraint; multi-byte values may be fetched from any offset.\r\n     * @param byteOffset The place in the buffer at which the value should be retrieved.\r\n     * @param littleEndian If false or undefined, a big-endian value should be read.\r\n     */\r\n    getUint32(byteOffset: number, littleEndian?: boolean): number;\r\n\r\n    /**\r\n     * Stores an Float32 value at the specified byte offset from the start of the view.\r\n     * @param byteOffset The place in the buffer at which the value should be set.\r\n     * @param value The value to set.\r\n     * @param littleEndian If false or undefined, a big-endian value should be written.\r\n     */\r\n    setFloat32(byteOffset: number, value: number, littleEndian?: boolean): void;\r\n\r\n    /**\r\n     * Stores an Float64 value at the specified byte offset from the start of the view.\r\n     * @param byteOffset The place in the buffer at which the value should be set.\r\n     * @param value The value to set.\r\n     * @param littleEndian If false or undefined, a big-endian value should be written.\r\n     */\r\n    setFloat64(byteOffset: number, value: number, littleEndian?: boolean): void;\r\n\r\n    /**\r\n     * Stores an Int8 value at the specified byte offset from the start of the view.\r\n     * @param byteOffset The place in the buffer at which the value should be set.\r\n     * @param value The value to set.\r\n     */\r\n    setInt8(byteOffset: number, value: number): void;\r\n\r\n    /**\r\n     * Stores an Int16 value at the specified byte offset from the start of the view.\r\n     * @param byteOffset The place in the buffer at which the value should be set.\r\n     * @param value The value to set.\r\n     * @param littleEndian If false or undefined, a big-endian value should be written.\r\n     */\r\n    setInt16(byteOffset: number, value: number, littleEndian?: boolean): void;\r\n\r\n    /**\r\n     * Stores an Int32 value at the specified byte offset from the start of the view.\r\n     * @param byteOffset The place in the buffer at which the value should be set.\r\n     * @param value The value to set.\r\n     * @param littleEndian If false or undefined, a big-endian value should be written.\r\n     */\r\n    setInt32(byteOffset: number, value: number, littleEndian?: boolean): void;\r\n\r\n    /**\r\n     * Stores an Uint8 value at the specified byte offset from the start of the view.\r\n     * @param byteOffset The place in the buffer at which the value should be set.\r\n     * @param value The value to set.\r\n     */\r\n    setUint8(byteOffset: number, value: number): void;\r\n\r\n    /**\r\n     * Stores an Uint16 value at the specified byte offset from the start of the view.\r\n     * @param byteOffset The place in the buffer at which the value should be set.\r\n     * @param value The value to set.\r\n     * @param littleEndian If false or undefined, a big-endian value should be written.\r\n     */\r\n    setUint16(byteOffset: number, value: number, littleEndian?: boolean): void;\r\n\r\n    /**\r\n     * Stores an Uint32 value at the specified byte offset from the start of the view.\r\n     * @param byteOffset The place in the buffer at which the value should be set.\r\n     * @param value The value to set.\r\n     * @param littleEndian If false or undefined, a big-endian value should be written.\r\n     */\r\n    setUint32(byteOffset: number, value: number, littleEndian?: boolean): void;\r\n}\r\n\r\ninterface DataViewConstructor {\r\n    readonly prototype: DataView;\r\n    new(buffer: ArrayBufferLike, byteOffset?: number, byteLength?: number): DataView;\r\n}\r\ndeclare var DataView: DataViewConstructor;\r\n\r\n/**\r\n * A typed array of 8-bit integer values. The contents are initialized to 0. If the requested\r\n * number of bytes could not be allocated an exception is raised.\r\n */\r\ninterface Int8Array {\r\n    /**\r\n     * The size in bytes of each element in the array.\r\n     */\r\n    readonly BYTES_PER_ELEMENT: number;\r\n\r\n    /**\r\n     * The ArrayBuffer instance referenced by the array.\r\n     */\r\n    readonly buffer: ArrayBufferLike;\r\n\r\n    /**\r\n     * The length in bytes of the array.\r\n     */\r\n    readonly byteLength: number;\r\n\r\n    /**\r\n     * The offset in bytes of the array.\r\n     */\r\n    readonly byteOffset: number;\r\n\r\n    /**\r\n     * Returns the this object after copying a section of the array identified by start and end\r\n     * to the same array starting at position target\r\n     * @param target If target is negative, it is treated as length+target where length is the\r\n     * length of the array.\r\n     * @param start If start is negative, it is treated as length+start. If end is negative, it\r\n     * is treated as length+end.\r\n     * @param end If not specified, length of the this object is used as its default value.\r\n     */\r\n    copyWithin(target: number, start: number, end?: number): this;\r\n\r\n    /**\r\n     * Determines whether all the members of an array satisfy the specified test.\r\n     * @param predicate A function that accepts up to three arguments. The every method calls\r\n     * the predicate function for each element in the array until the predicate returns a value\r\n     * which is coercible to the Boolean value false, or until the end of the array.\r\n     * @param thisArg An object to which the this keyword can refer in the predicate function.\r\n     * If thisArg is omitted, undefined is used as the this value.\r\n     */\r\n    every(predicate: (value: number, index: number, array: Int8Array) => unknown, thisArg?: any): boolean;\r\n\r\n    /**\r\n     * Changes all array elements from `start` to `end` index to a static `value` and returns the modified array\r\n     * @param value value to fill array section with\r\n     * @param start index to start filling the array at. If start is negative, it is treated as\r\n     * length+start where length is the length of the array.\r\n     * @param end index to stop filling the array at. If end is negative, it is treated as\r\n     * length+end.\r\n     */\r\n    fill(value: number, start?: number, end?: number): this;\r\n\r\n    /**\r\n     * Returns the elements of an array that meet the condition specified in a callback function.\r\n     * @param predicate A function that accepts up to three arguments. The filter method calls\r\n     * the predicate function one time for each element in the array.\r\n     * @param thisArg An object to which the this keyword can refer in the predicate function.\r\n     * If thisArg is omitted, undefined is used as the this value.\r\n     */\r\n    filter(predicate: (value: number, index: number, array: Int8Array) => any, thisArg?: any): Int8Array;\r\n\r\n    /**\r\n     * Returns the value of the first element in the array where predicate is true, and undefined\r\n     * otherwise.\r\n     * @param predicate find calls predicate once for each element of the array, in ascending\r\n     * order, until it finds one where predicate returns true. If such an element is found, find\r\n     * immediately returns that element value. Otherwise, find returns undefined.\r\n     * @param thisArg If provided, it will be used as the this value for each invocation of\r\n     * predicate. If it is not provided, undefined is used instead.\r\n     */\r\n    find(predicate: (value: number, index: number, obj: Int8Array) => boolean, thisArg?: any): number | undefined;\r\n\r\n    /**\r\n     * Returns the index of the first element in the array where predicate is true, and -1\r\n     * otherwise.\r\n     * @param predicate find calls predicate once for each element of the array, in ascending\r\n     * order, until it finds one where predicate returns true. If such an element is found,\r\n     * findIndex immediately returns that element index. Otherwise, findIndex returns -1.\r\n     * @param thisArg If provided, it will be used as the this value for each invocation of\r\n     * predicate. If it is not provided, undefined is used instead.\r\n     */\r\n    findIndex(predicate: (value: number, index: number, obj: Int8Array) => boolean, thisArg?: any): number;\r\n\r\n    /**\r\n     * Performs the specified action for each element in an array.\r\n     * @param callbackfn  A function that accepts up to three arguments. forEach calls the\r\n     * callbackfn function one time for each element in the array.\r\n     * @param thisArg  An object to which the this keyword can refer in the callbackfn function.\r\n     * If thisArg is omitted, undefined is used as the this value.\r\n     */\r\n    forEach(callbackfn: (value: number, index: number, array: Int8Array) => void, thisArg?: any): void;\r\n\r\n    /**\r\n     * Returns the index of the first occurrence of a value in an array.\r\n     * @param searchElement The value to locate in the array.\r\n     * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\r\n     *  search starts at index 0.\r\n     */\r\n    indexOf(searchElement: number, fromIndex?: number): number;\r\n\r\n    /**\r\n     * Adds all the elements of an array separated by the specified separator string.\r\n     * @param separator A string used to separate one element of an array from the next in the\r\n     * resulting String. If omitted, the array elements are separated with a comma.\r\n     */\r\n    join(separator?: string): string;\r\n\r\n    /**\r\n     * Returns the index of the last occurrence of a value in an array.\r\n     * @param searchElement The value to locate in the array.\r\n     * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\r\n     * search starts at index 0.\r\n     */\r\n    lastIndexOf(searchElement: number, fromIndex?: number): number;\r\n\r\n    /**\r\n     * The length of the array.\r\n     */\r\n    readonly length: number;\r\n\r\n    /**\r\n     * Calls a defined callback function on each element of an array, and returns an array that\r\n     * contains the results.\r\n     * @param callbackfn A function that accepts up to three arguments. The map method calls the\r\n     * callbackfn function one time for each element in the array.\r\n     * @param thisArg An object to which the this keyword can refer in the callbackfn function.\r\n     * If thisArg is omitted, undefined is used as the this value.\r\n     */\r\n    map(callbackfn: (value: number, index: number, array: Int8Array) => number, thisArg?: any): Int8Array;\r\n\r\n    /**\r\n     * Calls the specified callback function for all the elements in an array. The return value of\r\n     * the callback function is the accumulated result, and is provided as an argument in the next\r\n     * call to the callback function.\r\n     * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\r\n     * callbackfn function one time for each element in the array.\r\n     * @param initialValue If initialValue is specified, it is used as the initial value to start\r\n     * the accumulation. The first call to the callbackfn function provides this value as an argument\r\n     * instead of an array value.\r\n     */\r\n    reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int8Array) => number): number;\r\n    reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int8Array) => number, initialValue: number): number;\r\n\r\n    /**\r\n     * Calls the specified callback function for all the elements in an array. The return value of\r\n     * the callback function is the accumulated result, and is provided as an argument in the next\r\n     * call to the callback function.\r\n     * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\r\n     * callbackfn function one time for each element in the array.\r\n     * @param initialValue If initialValue is specified, it is used as the initial value to start\r\n     * the accumulation. The first call to the callbackfn function provides this value as an argument\r\n     * instead of an array value.\r\n     */\r\n    reduce<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Int8Array) => U, initialValue: U): U;\r\n\r\n    /**\r\n     * Calls the specified callback function for all the elements in an array, in descending order.\r\n     * The return value of the callback function is the accumulated result, and is provided as an\r\n     * argument in the next call to the callback function.\r\n     * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\r\n     * the callbackfn function one time for each element in the array.\r\n     * @param initialValue If initialValue is specified, it is used as the initial value to start\r\n     * the accumulation. The first call to the callbackfn function provides this value as an\r\n     * argument instead of an array value.\r\n     */\r\n    reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int8Array) => number): number;\r\n    reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int8Array) => number, initialValue: number): number;\r\n\r\n    /**\r\n     * Calls the specified callback function for all the elements in an array, in descending order.\r\n     * The return value of the callback function is the accumulated result, and is provided as an\r\n     * argument in the next call to the callback function.\r\n     * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\r\n     * the callbackfn function one time for each element in the array.\r\n     * @param initialValue If initialValue is specified, it is used as the initial value to start\r\n     * the accumulation. The first call to the callbackfn function provides this value as an argument\r\n     * instead of an array value.\r\n     */\r\n    reduceRight<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Int8Array) => U, initialValue: U): U;\r\n\r\n    /**\r\n     * Reverses the elements in an Array.\r\n     */\r\n    reverse(): Int8Array;\r\n\r\n    /**\r\n     * Sets a value or an array of values.\r\n     * @param array A typed or untyped array of values to set.\r\n     * @param offset The index in the current array at which the values are to be written.\r\n     */\r\n    set(array: ArrayLike<number>, offset?: number): void;\r\n\r\n    /**\r\n     * Returns a section of an array.\r\n     * @param start The beginning of the specified portion of the array.\r\n     * @param end The end of the specified portion of the array. This is exclusive of the element at the index 'end'.\r\n     */\r\n    slice(start?: number, end?: number): Int8Array;\r\n\r\n    /**\r\n     * Determines whether the specified callback function returns true for any element of an array.\r\n     * @param predicate A function that accepts up to three arguments. The some method calls\r\n     * the predicate function for each element in the array until the predicate returns a value\r\n     * which is coercible to the Boolean value true, or until the end of the array.\r\n     * @param thisArg An object to which the this keyword can refer in the predicate function.\r\n     * If thisArg is omitted, undefined is used as the this value.\r\n     */\r\n    some(predicate: (value: number, index: number, array: Int8Array) => unknown, thisArg?: any): boolean;\r\n\r\n    /**\r\n     * Sorts an array.\r\n     * @param compareFn Function used to determine the order of the elements. It is expected to return\r\n     * a negative value if first argument is less than second argument, zero if they're equal and a positive\r\n     * value otherwise. If omitted, the elements are sorted in ascending order.\r\n     * ```ts\r\n     * [11,2,22,1].sort((a, b) => a - b)\r\n     * ```\r\n     */\r\n    sort(compareFn?: (a: number, b: number) => number): this;\r\n\r\n    /**\r\n     * Gets a new Int8Array view of the ArrayBuffer store for this array, referencing the elements\r\n     * at begin, inclusive, up to end, exclusive.\r\n     * @param begin The index of the beginning of the array.\r\n     * @param end The index of the end of the array.\r\n     */\r\n    subarray(begin?: number, end?: number): Int8Array;\r\n\r\n    /**\r\n     * Converts a number to a string by using the current locale.\r\n     */\r\n    toLocaleString(): string;\r\n\r\n    /**\r\n     * Returns a string representation of an array.\r\n     */\r\n    toString(): string;\r\n\r\n    /** Returns the primitive value of the specified object. */\r\n    valueOf(): Int8Array;\r\n\r\n    [index: number]: number;\r\n}\r\ninterface Int8ArrayConstructor {\r\n    readonly prototype: Int8Array;\r\n    new(length: number): Int8Array;\r\n    new(array: ArrayLike<number> | ArrayBufferLike): Int8Array;\r\n    new(buffer: ArrayBufferLike, byteOffset?: number, length?: number): Int8Array;\r\n\r\n    /**\r\n     * The size in bytes of each element in the array.\r\n     */\r\n    readonly BYTES_PER_ELEMENT: number;\r\n\r\n    /**\r\n     * Returns a new array from a set of elements.\r\n     * @param items A set of elements to include in the new array object.\r\n     */\r\n    of(...items: number[]): Int8Array;\r\n\r\n    /**\r\n     * Creates an array from an array-like or iterable object.\r\n     * @param arrayLike An array-like or iterable object to convert to an array.\r\n     */\r\n    from(arrayLike: ArrayLike<number>): Int8Array;\r\n\r\n    /**\r\n     * Creates an array from an array-like or iterable object.\r\n     * @param arrayLike An array-like or iterable object to convert to an array.\r\n     * @param mapfn A mapping function to call on every element of the array.\r\n     * @param thisArg Value of 'this' used to invoke the mapfn.\r\n     */\r\n    from<T>(arrayLike: ArrayLike<T>, mapfn: (v: T, k: number) => number, thisArg?: any): Int8Array;\r\n\r\n\r\n}\r\ndeclare var Int8Array: Int8ArrayConstructor;\r\n\r\n/**\r\n * A typed array of 8-bit unsigned integer values. The contents are initialized to 0. If the\r\n * requested number of bytes could not be allocated an exception is raised.\r\n */\r\ninterface Uint8Array {\r\n    /**\r\n     * The size in bytes of each element in the array.\r\n     */\r\n    readonly BYTES_PER_ELEMENT: number;\r\n\r\n    /**\r\n     * The ArrayBuffer instance referenced by the array.\r\n     */\r\n    readonly buffer: ArrayBufferLike;\r\n\r\n    /**\r\n     * The length in bytes of the array.\r\n     */\r\n    readonly byteLength: number;\r\n\r\n    /**\r\n     * The offset in bytes of the array.\r\n     */\r\n    readonly byteOffset: number;\r\n\r\n    /**\r\n     * Returns the this object after copying a section of the array identified by start and end\r\n     * to the same array starting at position target\r\n     * @param target If target is negative, it is treated as length+target where length is the\r\n     * length of the array.\r\n     * @param start If start is negative, it is treated as length+start. If end is negative, it\r\n     * is treated as length+end.\r\n     * @param end If not specified, length of the this object is used as its default value.\r\n     */\r\n    copyWithin(target: number, start: number, end?: number): this;\r\n\r\n    /**\r\n     * Determines whether all the members of an array satisfy the specified test.\r\n     * @param predicate A function that accepts up to three arguments. The every method calls\r\n     * the predicate function for each element in the array until the predicate returns a value\r\n     * which is coercible to the Boolean value false, or until the end of the array.\r\n     * @param thisArg An object to which the this keyword can refer in the predicate function.\r\n     * If thisArg is omitted, undefined is used as the this value.\r\n     */\r\n    every(predicate: (value: number, index: number, array: Uint8Array) => unknown, thisArg?: any): boolean;\r\n\r\n    /**\r\n     * Changes all array elements from `start` to `end` index to a static `value` and returns the modified array\r\n     * @param value value to fill array section with\r\n     * @param start index to start filling the array at. If start is negative, it is treated as\r\n     * length+start where length is the length of the array.\r\n     * @param end index to stop filling the array at. If end is negative, it is treated as\r\n     * length+end.\r\n     */\r\n    fill(value: number, start?: number, end?: number): this;\r\n\r\n    /**\r\n     * Returns the elements of an array that meet the condition specified in a callback function.\r\n     * @param predicate A function that accepts up to three arguments. The filter method calls\r\n     * the predicate function one time for each element in the array.\r\n     * @param thisArg An object to which the this keyword can refer in the predicate function.\r\n     * If thisArg is omitted, undefined is used as the this value.\r\n     */\r\n    filter(predicate: (value: number, index: number, array: Uint8Array) => any, thisArg?: any): Uint8Array;\r\n\r\n    /**\r\n     * Returns the value of the first element in the array where predicate is true, and undefined\r\n     * otherwise.\r\n     * @param predicate find calls predicate once for each element of the array, in ascending\r\n     * order, until it finds one where predicate returns true. If such an element is found, find\r\n     * immediately returns that element value. Otherwise, find returns undefined.\r\n     * @param thisArg If provided, it will be used as the this value for each invocation of\r\n     * predicate. If it is not provided, undefined is used instead.\r\n     */\r\n    find(predicate: (value: number, index: number, obj: Uint8Array) => boolean, thisArg?: any): number | undefined;\r\n\r\n    /**\r\n     * Returns the index of the first element in the array where predicate is true, and -1\r\n     * otherwise.\r\n     * @param predicate find calls predicate once for each element of the array, in ascending\r\n     * order, until it finds one where predicate returns true. If such an element is found,\r\n     * findIndex immediately returns that element index. Otherwise, findIndex returns -1.\r\n     * @param thisArg If provided, it will be used as the this value for each invocation of\r\n     * predicate. If it is not provided, undefined is used instead.\r\n     */\r\n    findIndex(predicate: (value: number, index: number, obj: Uint8Array) => boolean, thisArg?: any): number;\r\n\r\n    /**\r\n     * Performs the specified action for each element in an array.\r\n     * @param callbackfn  A function that accepts up to three arguments. forEach calls the\r\n     * callbackfn function one time for each element in the array.\r\n     * @param thisArg  An object to which the this keyword can refer in the callbackfn function.\r\n     * If thisArg is omitted, undefined is used as the this value.\r\n     */\r\n    forEach(callbackfn: (value: number, index: number, array: Uint8Array) => void, thisArg?: any): void;\r\n\r\n    /**\r\n     * Returns the index of the first occurrence of a value in an array.\r\n     * @param searchElement The value to locate in the array.\r\n     * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\r\n     *  search starts at index 0.\r\n     */\r\n    indexOf(searchElement: number, fromIndex?: number): number;\r\n\r\n    /**\r\n     * Adds all the elements of an array separated by the specified separator string.\r\n     * @param separator A string used to separate one element of an array from the next in the\r\n     * resulting String. If omitted, the array elements are separated with a comma.\r\n     */\r\n    join(separator?: string): string;\r\n\r\n    /**\r\n     * Returns the index of the last occurrence of a value in an array.\r\n     * @param searchElement The value to locate in the array.\r\n     * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\r\n     * search starts at index 0.\r\n     */\r\n    lastIndexOf(searchElement: number, fromIndex?: number): number;\r\n\r\n    /**\r\n     * The length of the array.\r\n     */\r\n    readonly length: number;\r\n\r\n    /**\r\n     * Calls a defined callback function on each element of an array, and returns an array that\r\n     * contains the results.\r\n     * @param callbackfn A function that accepts up to three arguments. The map method calls the\r\n     * callbackfn function one time for each element in the array.\r\n     * @param thisArg An object to which the this keyword can refer in the callbackfn function.\r\n     * If thisArg is omitted, undefined is used as the this value.\r\n     */\r\n    map(callbackfn: (value: number, index: number, array: Uint8Array) => number, thisArg?: any): Uint8Array;\r\n\r\n    /**\r\n     * Calls the specified callback function for all the elements in an array. The return value of\r\n     * the callback function is the accumulated result, and is provided as an argument in the next\r\n     * call to the callback function.\r\n     * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\r\n     * callbackfn function one time for each element in the array.\r\n     * @param initialValue If initialValue is specified, it is used as the initial value to start\r\n     * the accumulation. The first call to the callbackfn function provides this value as an argument\r\n     * instead of an array value.\r\n     */\r\n    reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint8Array) => number): number;\r\n    reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint8Array) => number, initialValue: number): number;\r\n\r\n    /**\r\n     * Calls the specified callback function for all the elements in an array. The return value of\r\n     * the callback function is the accumulated result, and is provided as an argument in the next\r\n     * call to the callback function.\r\n     * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\r\n     * callbackfn function one time for each element in the array.\r\n     * @param initialValue If initialValue is specified, it is used as the initial value to start\r\n     * the accumulation. The first call to the callbackfn function provides this value as an argument\r\n     * instead of an array value.\r\n     */\r\n    reduce<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Uint8Array) => U, initialValue: U): U;\r\n\r\n    /**\r\n     * Calls the specified callback function for all the elements in an array, in descending order.\r\n     * The return value of the callback function is the accumulated result, and is provided as an\r\n     * argument in the next call to the callback function.\r\n     * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\r\n     * the callbackfn function one time for each element in the array.\r\n     * @param initialValue If initialValue is specified, it is used as the initial value to start\r\n     * the accumulation. The first call to the callbackfn function provides this value as an\r\n     * argument instead of an array value.\r\n     */\r\n    reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint8Array) => number): number;\r\n    reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint8Array) => number, initialValue: number): number;\r\n\r\n    /**\r\n     * Calls the specified callback function for all the elements in an array, in descending order.\r\n     * The return value of the callback function is the accumulated result, and is provided as an\r\n     * argument in the next call to the callback function.\r\n     * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\r\n     * the callbackfn function one time for each element in the array.\r\n     * @param initialValue If initialValue is specified, it is used as the initial value to start\r\n     * the accumulation. The first call to the callbackfn function provides this value as an argument\r\n     * instead of an array value.\r\n     */\r\n    reduceRight<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Uint8Array) => U, initialValue: U): U;\r\n\r\n    /**\r\n     * Reverses the elements in an Array.\r\n     */\r\n    reverse(): Uint8Array;\r\n\r\n    /**\r\n     * Sets a value or an array of values.\r\n     * @param array A typed or untyped array of values to set.\r\n     * @param offset The index in the current array at which the values are to be written.\r\n     */\r\n    set(array: ArrayLike<number>, offset?: number): void;\r\n\r\n    /**\r\n     * Returns a section of an array.\r\n     * @param start The beginning of the specified portion of the array.\r\n     * @param end The end of the specified portion of the array. This is exclusive of the element at the index 'end'.\r\n     */\r\n    slice(start?: number, end?: number): Uint8Array;\r\n\r\n    /**\r\n     * Determines whether the specified callback function returns true for any element of an array.\r\n     * @param predicate A function that accepts up to three arguments. The some method calls\r\n     * the predicate function for each element in the array until the predicate returns a value\r\n     * which is coercible to the Boolean value true, or until the end of the array.\r\n     * @param thisArg An object to which the this keyword can refer in the predicate function.\r\n     * If thisArg is omitted, undefined is used as the this value.\r\n     */\r\n    some(predicate: (value: number, index: number, array: Uint8Array) => unknown, thisArg?: any): boolean;\r\n\r\n    /**\r\n     * Sorts an array.\r\n     * @param compareFn Function used to determine the order of the elements. It is expected to return\r\n     * a negative value if first argument is less than second argument, zero if they're equal and a positive\r\n     * value otherwise. If omitted, the elements are sorted in ascending order.\r\n     * ```ts\r\n     * [11,2,22,1].sort((a, b) => a - b)\r\n     * ```\r\n     */\r\n    sort(compareFn?: (a: number, b: number) => number): this;\r\n\r\n    /**\r\n     * Gets a new Uint8Array view of the ArrayBuffer store for this array, referencing the elements\r\n     * at begin, inclusive, up to end, exclusive.\r\n     * @param begin The index of the beginning of the array.\r\n     * @param end The index of the end of the array.\r\n     */\r\n    subarray(begin?: number, end?: number): Uint8Array;\r\n\r\n    /**\r\n     * Converts a number to a string by using the current locale.\r\n     */\r\n    toLocaleString(): string;\r\n\r\n    /**\r\n     * Returns a string representation of an array.\r\n     */\r\n    toString(): string;\r\n\r\n    /** Returns the primitive value of the specified object. */\r\n    valueOf(): Uint8Array;\r\n\r\n    [index: number]: number;\r\n}\r\n\r\ninterface Uint8ArrayConstructor {\r\n    readonly prototype: Uint8Array;\r\n    new(length: number): Uint8Array;\r\n    new(array: ArrayLike<number> | ArrayBufferLike): Uint8Array;\r\n    new(buffer: ArrayBufferLike, byteOffset?: number, length?: number): Uint8Array;\r\n\r\n    /**\r\n     * The size in bytes of each element in the array.\r\n     */\r\n    readonly BYTES_PER_ELEMENT: number;\r\n\r\n    /**\r\n     * Returns a new array from a set of elements.\r\n     * @param items A set of elements to include in the new array object.\r\n     */\r\n    of(...items: number[]): Uint8Array;\r\n\r\n    /**\r\n     * Creates an array from an array-like or iterable object.\r\n     * @param arrayLike An array-like or iterable object to convert to an array.\r\n     */\r\n    from(arrayLike: ArrayLike<number>): Uint8Array;\r\n\r\n    /**\r\n     * Creates an array from an array-like or iterable object.\r\n     * @param arrayLike An array-like or iterable object to convert to an array.\r\n     * @param mapfn A mapping function to call on every element of the array.\r\n     * @param thisArg Value of 'this' used to invoke the mapfn.\r\n     */\r\n    from<T>(arrayLike: ArrayLike<T>, mapfn: (v: T, k: number) => number, thisArg?: any): Uint8Array;\r\n\r\n}\r\ndeclare var Uint8Array: Uint8ArrayConstructor;\r\n\r\n/**\r\n * A typed array of 8-bit unsigned integer (clamped) values. The contents are initialized to 0.\r\n * If the requested number of bytes could not be allocated an exception is raised.\r\n */\r\ninterface Uint8ClampedArray {\r\n    /**\r\n     * The size in bytes of each element in the array.\r\n     */\r\n    readonly BYTES_PER_ELEMENT: number;\r\n\r\n    /**\r\n     * The ArrayBuffer instance referenced by the array.\r\n     */\r\n    readonly buffer: ArrayBufferLike;\r\n\r\n    /**\r\n     * The length in bytes of the array.\r\n     */\r\n    readonly byteLength: number;\r\n\r\n    /**\r\n     * The offset in bytes of the array.\r\n     */\r\n    readonly byteOffset: number;\r\n\r\n    /**\r\n     * Returns the this object after copying a section of the array identified by start and end\r\n     * to the same array starting at position target\r\n     * @param target If target is negative, it is treated as length+target where length is the\r\n     * length of the array.\r\n     * @param start If start is negative, it is treated as length+start. If end is negative, it\r\n     * is treated as length+end.\r\n     * @param end If not specified, length of the this object is used as its default value.\r\n     */\r\n    copyWithin(target: number, start: number, end?: number): this;\r\n\r\n    /**\r\n     * Determines whether all the members of an array satisfy the specified test.\r\n     * @param predicate A function that accepts up to three arguments. The every method calls\r\n     * the predicate function for each element in the array until the predicate returns a value\r\n     * which is coercible to the Boolean value false, or until the end of the array.\r\n     * @param thisArg An object to which the this keyword can refer in the predicate function.\r\n     * If thisArg is omitted, undefined is used as the this value.\r\n     */\r\n    every(predicate: (value: number, index: number, array: Uint8ClampedArray) => unknown, thisArg?: any): boolean;\r\n\r\n    /**\r\n     * Changes all array elements from `start` to `end` index to a static `value` and returns the modified array\r\n     * @param value value to fill array section with\r\n     * @param start index to start filling the array at. If start is negative, it is treated as\r\n     * length+start where length is the length of the array.\r\n     * @param end index to stop filling the array at. If end is negative, it is treated as\r\n     * length+end.\r\n     */\r\n    fill(value: number, start?: number, end?: number): this;\r\n\r\n    /**\r\n     * Returns the elements of an array that meet the condition specified in a callback function.\r\n     * @param predicate A function that accepts up to three arguments. The filter method calls\r\n     * the predicate function one time for each element in the array.\r\n     * @param thisArg An object to which the this keyword can refer in the predicate function.\r\n     * If thisArg is omitted, undefined is used as the this value.\r\n     */\r\n    filter(predicate: (value: number, index: number, array: Uint8ClampedArray) => any, thisArg?: any): Uint8ClampedArray;\r\n\r\n    /**\r\n     * Returns the value of the first element in the array where predicate is true, and undefined\r\n     * otherwise.\r\n     * @param predicate find calls predicate once for each element of the array, in ascending\r\n     * order, until it finds one where predicate returns true. If such an element is found, find\r\n     * immediately returns that element value. Otherwise, find returns undefined.\r\n     * @param thisArg If provided, it will be used as the this value for each invocation of\r\n     * predicate. If it is not provided, undefined is used instead.\r\n     */\r\n    find(predicate: (value: number, index: number, obj: Uint8ClampedArray) => boolean, thisArg?: any): number | undefined;\r\n\r\n    /**\r\n     * Returns the index of the first element in the array where predicate is true, and -1\r\n     * otherwise.\r\n     * @param predicate find calls predicate once for each element of the array, in ascending\r\n     * order, until it finds one where predicate returns true. If such an element is found,\r\n     * findIndex immediately returns that element index. Otherwise, findIndex returns -1.\r\n     * @param thisArg If provided, it will be used as the this value for each invocation of\r\n     * predicate. If it is not provided, undefined is used instead.\r\n     */\r\n    findIndex(predicate: (value: number, index: number, obj: Uint8ClampedArray) => boolean, thisArg?: any): number;\r\n\r\n    /**\r\n     * Performs the specified action for each element in an array.\r\n     * @param callbackfn  A function that accepts up to three arguments. forEach calls the\r\n     * callbackfn function one time for each element in the array.\r\n     * @param thisArg  An object to which the this keyword can refer in the callbackfn function.\r\n     * If thisArg is omitted, undefined is used as the this value.\r\n     */\r\n    forEach(callbackfn: (value: number, index: number, array: Uint8ClampedArray) => void, thisArg?: any): void;\r\n\r\n    /**\r\n     * Returns the index of the first occurrence of a value in an array.\r\n     * @param searchElement The value to locate in the array.\r\n     * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\r\n     *  search starts at index 0.\r\n     */\r\n    indexOf(searchElement: number, fromIndex?: number): number;\r\n\r\n    /**\r\n     * Adds all the elements of an array separated by the specified separator string.\r\n     * @param separator A string used to separate one element of an array from the next in the\r\n     * resulting String. If omitted, the array elements are separated with a comma.\r\n     */\r\n    join(separator?: string): string;\r\n\r\n    /**\r\n     * Returns the index of the last occurrence of a value in an array.\r\n     * @param searchElement The value to locate in the array.\r\n     * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\r\n     * search starts at index 0.\r\n     */\r\n    lastIndexOf(searchElement: number, fromIndex?: number): number;\r\n\r\n    /**\r\n     * The length of the array.\r\n     */\r\n    readonly length: number;\r\n\r\n    /**\r\n     * Calls a defined callback function on each element of an array, and returns an array that\r\n     * contains the results.\r\n     * @param callbackfn A function that accepts up to three arguments. The map method calls the\r\n     * callbackfn function one time for each element in the array.\r\n     * @param thisArg An object to which the this keyword can refer in the callbackfn function.\r\n     * If thisArg is omitted, undefined is used as the this value.\r\n     */\r\n    map(callbackfn: (value: number, index: number, array: Uint8ClampedArray) => number, thisArg?: any): Uint8ClampedArray;\r\n\r\n    /**\r\n     * Calls the specified callback function for all the elements in an array. The return value of\r\n     * the callback function is the accumulated result, and is provided as an argument in the next\r\n     * call to the callback function.\r\n     * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\r\n     * callbackfn function one time for each element in the array.\r\n     * @param initialValue If initialValue is specified, it is used as the initial value to start\r\n     * the accumulation. The first call to the callbackfn function provides this value as an argument\r\n     * instead of an array value.\r\n     */\r\n    reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint8ClampedArray) => number): number;\r\n    reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint8ClampedArray) => number, initialValue: number): number;\r\n\r\n    /**\r\n     * Calls the specified callback function for all the elements in an array. The return value of\r\n     * the callback function is the accumulated result, and is provided as an argument in the next\r\n     * call to the callback function.\r\n     * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\r\n     * callbackfn function one time for each element in the array.\r\n     * @param initialValue If initialValue is specified, it is used as the initial value to start\r\n     * the accumulation. The first call to the callbackfn function provides this value as an argument\r\n     * instead of an array value.\r\n     */\r\n    reduce<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Uint8ClampedArray) => U, initialValue: U): U;\r\n\r\n    /**\r\n     * Calls the specified callback function for all the elements in an array, in descending order.\r\n     * The return value of the callback function is the accumulated result, and is provided as an\r\n     * argument in the next call to the callback function.\r\n     * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\r\n     * the callbackfn function one time for each element in the array.\r\n     * @param initialValue If initialValue is specified, it is used as the initial value to start\r\n     * the accumulation. The first call to the callbackfn function provides this value as an\r\n     * argument instead of an array value.\r\n     */\r\n    reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint8ClampedArray) => number): number;\r\n    reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint8ClampedArray) => number, initialValue: number): number;\r\n\r\n    /**\r\n     * Calls the specified callback function for all the elements in an array, in descending order.\r\n     * The return value of the callback function is the accumulated result, and is provided as an\r\n     * argument in the next call to the callback function.\r\n     * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\r\n     * the callbackfn function one time for each element in the array.\r\n     * @param initialValue If initialValue is specified, it is used as the initial value to start\r\n     * the accumulation. The first call to the callbackfn function provides this value as an argument\r\n     * instead of an array value.\r\n     */\r\n    reduceRight<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Uint8ClampedArray) => U, initialValue: U): U;\r\n\r\n    /**\r\n     * Reverses the elements in an Array.\r\n     */\r\n    reverse(): Uint8ClampedArray;\r\n\r\n    /**\r\n     * Sets a value or an array of values.\r\n     * @param array A typed or untyped array of values to set.\r\n     * @param offset The index in the current array at which the values are to be written.\r\n     */\r\n    set(array: ArrayLike<number>, offset?: number): void;\r\n\r\n    /**\r\n     * Returns a section of an array.\r\n     * @param start The beginning of the specified portion of the array.\r\n     * @param end The end of the specified portion of the array. This is exclusive of the element at the index 'end'.\r\n     */\r\n    slice(start?: number, end?: number): Uint8ClampedArray;\r\n\r\n    /**\r\n     * Determines whether the specified callback function returns true for any element of an array.\r\n     * @param predicate A function that accepts up to three arguments. The some method calls\r\n     * the predicate function for each element in the array until the predicate returns a value\r\n     * which is coercible to the Boolean value true, or until the end of the array.\r\n     * @param thisArg An object to which the this keyword can refer in the predicate function.\r\n     * If thisArg is omitted, undefined is used as the this value.\r\n     */\r\n    some(predicate: (value: number, index: number, array: Uint8ClampedArray) => unknown, thisArg?: any): boolean;\r\n\r\n    /**\r\n     * Sorts an array.\r\n     * @param compareFn Function used to determine the order of the elements. It is expected to return\r\n     * a negative value if first argument is less than second argument, zero if they're equal and a positive\r\n     * value otherwise. If omitted, the elements are sorted in ascending order.\r\n     * ```ts\r\n     * [11,2,22,1].sort((a, b) => a - b)\r\n     * ```\r\n     */\r\n    sort(compareFn?: (a: number, b: number) => number): this;\r\n\r\n    /**\r\n     * Gets a new Uint8ClampedArray view of the ArrayBuffer store for this array, referencing the elements\r\n     * at begin, inclusive, up to end, exclusive.\r\n     * @param begin The index of the beginning of the array.\r\n     * @param end The index of the end of the array.\r\n     */\r\n    subarray(begin?: number, end?: number): Uint8ClampedArray;\r\n\r\n    /**\r\n     * Converts a number to a string by using the current locale.\r\n     */\r\n    toLocaleString(): string;\r\n\r\n    /**\r\n     * Returns a string representation of an array.\r\n     */\r\n    toString(): string;\r\n\r\n    /** Returns the primitive value of the specified object. */\r\n    valueOf(): Uint8ClampedArray;\r\n\r\n    [index: number]: number;\r\n}\r\n\r\ninterface Uint8ClampedArrayConstructor {\r\n    readonly prototype: Uint8ClampedArray;\r\n    new(length: number): Uint8ClampedArray;\r\n    new(array: ArrayLike<number> | ArrayBufferLike): Uint8ClampedArray;\r\n    new(buffer: ArrayBufferLike, byteOffset?: number, length?: number): Uint8ClampedArray;\r\n\r\n    /**\r\n     * The size in bytes of each element in the array.\r\n     */\r\n    readonly BYTES_PER_ELEMENT: number;\r\n\r\n    /**\r\n     * Returns a new array from a set of elements.\r\n     * @param items A set of elements to include in the new array object.\r\n     */\r\n    of(...items: number[]): Uint8ClampedArray;\r\n\r\n    /**\r\n     * Creates an array from an array-like or iterable object.\r\n     * @param arrayLike An array-like or iterable object to convert to an array.\r\n     */\r\n    from(arrayLike: ArrayLike<number>): Uint8ClampedArray;\r\n\r\n    /**\r\n     * Creates an array from an array-like or iterable object.\r\n     * @param arrayLike An array-like or iterable object to convert to an array.\r\n     * @param mapfn A mapping function to call on every element of the array.\r\n     * @param thisArg Value of 'this' used to invoke the mapfn.\r\n     */\r\n    from<T>(arrayLike: ArrayLike<T>, mapfn: (v: T, k: number) => number, thisArg?: any): Uint8ClampedArray;\r\n}\r\ndeclare var Uint8ClampedArray: Uint8ClampedArrayConstructor;\r\n\r\n/**\r\n * A typed array of 16-bit signed integer values. The contents are initialized to 0. If the\r\n * requested number of bytes could not be allocated an exception is raised.\r\n */\r\ninterface Int16Array {\r\n    /**\r\n     * The size in bytes of each element in the array.\r\n     */\r\n    readonly BYTES_PER_ELEMENT: number;\r\n\r\n    /**\r\n     * The ArrayBuffer instance referenced by the array.\r\n     */\r\n    readonly buffer: ArrayBufferLike;\r\n\r\n    /**\r\n     * The length in bytes of the array.\r\n     */\r\n    readonly byteLength: number;\r\n\r\n    /**\r\n     * The offset in bytes of the array.\r\n     */\r\n    readonly byteOffset: number;\r\n\r\n    /**\r\n     * Returns the this object after copying a section of the array identified by start and end\r\n     * to the same array starting at position target\r\n     * @param target If target is negative, it is treated as length+target where length is the\r\n     * length of the array.\r\n     * @param start If start is negative, it is treated as length+start. If end is negative, it\r\n     * is treated as length+end.\r\n     * @param end If not specified, length of the this object is used as its default value.\r\n     */\r\n    copyWithin(target: number, start: number, end?: number): this;\r\n\r\n    /**\r\n     * Determines whether all the members of an array satisfy the specified test.\r\n     * @param predicate A function that accepts up to three arguments. The every method calls\r\n     * the predicate function for each element in the array until the predicate returns a value\r\n     * which is coercible to the Boolean value false, or until the end of the array.\r\n     * @param thisArg An object to which the this keyword can refer in the predicate function.\r\n     * If thisArg is omitted, undefined is used as the this value.\r\n     */\r\n    every(predicate: (value: number, index: number, array: Int16Array) => unknown, thisArg?: any): boolean;\r\n\r\n    /**\r\n     * Changes all array elements from `start` to `end` index to a static `value` and returns the modified array\r\n     * @param value value to fill array section with\r\n     * @param start index to start filling the array at. If start is negative, it is treated as\r\n     * length+start where length is the length of the array.\r\n     * @param end index to stop filling the array at. If end is negative, it is treated as\r\n     * length+end.\r\n     */\r\n    fill(value: number, start?: number, end?: number): this;\r\n\r\n    /**\r\n     * Returns the elements of an array that meet the condition specified in a callback function.\r\n     * @param predicate A function that accepts up to three arguments. The filter method calls\r\n     * the predicate function one time for each element in the array.\r\n     * @param thisArg An object to which the this keyword can refer in the predicate function.\r\n     * If thisArg is omitted, undefined is used as the this value.\r\n     */\r\n    filter(predicate: (value: number, index: number, array: Int16Array) => any, thisArg?: any): Int16Array;\r\n\r\n    /**\r\n     * Returns the value of the first element in the array where predicate is true, and undefined\r\n     * otherwise.\r\n     * @param predicate find calls predicate once for each element of the array, in ascending\r\n     * order, until it finds one where predicate returns true. If such an element is found, find\r\n     * immediately returns that element value. Otherwise, find returns undefined.\r\n     * @param thisArg If provided, it will be used as the this value for each invocation of\r\n     * predicate. If it is not provided, undefined is used instead.\r\n     */\r\n    find(predicate: (value: number, index: number, obj: Int16Array) => boolean, thisArg?: any): number | undefined;\r\n\r\n    /**\r\n     * Returns the index of the first element in the array where predicate is true, and -1\r\n     * otherwise.\r\n     * @param predicate find calls predicate once for each element of the array, in ascending\r\n     * order, until it finds one where predicate returns true. If such an element is found,\r\n     * findIndex immediately returns that element index. Otherwise, findIndex returns -1.\r\n     * @param thisArg If provided, it will be used as the this value for each invocation of\r\n     * predicate. If it is not provided, undefined is used instead.\r\n     */\r\n    findIndex(predicate: (value: number, index: number, obj: Int16Array) => boolean, thisArg?: any): number;\r\n\r\n    /**\r\n     * Performs the specified action for each element in an array.\r\n     * @param callbackfn  A function that accepts up to three arguments. forEach calls the\r\n     * callbackfn function one time for each element in the array.\r\n     * @param thisArg  An object to which the this keyword can refer in the callbackfn function.\r\n     * If thisArg is omitted, undefined is used as the this value.\r\n     */\r\n    forEach(callbackfn: (value: number, index: number, array: Int16Array) => void, thisArg?: any): void;\r\n    /**\r\n     * Returns the index of the first occurrence of a value in an array.\r\n     * @param searchElement The value to locate in the array.\r\n     * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\r\n     *  search starts at index 0.\r\n     */\r\n    indexOf(searchElement: number, fromIndex?: number): number;\r\n\r\n    /**\r\n     * Adds all the elements of an array separated by the specified separator string.\r\n     * @param separator A string used to separate one element of an array from the next in the\r\n     * resulting String. If omitted, the array elements are separated with a comma.\r\n     */\r\n    join(separator?: string): string;\r\n\r\n    /**\r\n     * Returns the index of the last occurrence of a value in an array.\r\n     * @param searchElement The value to locate in the array.\r\n     * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\r\n     * search starts at index 0.\r\n     */\r\n    lastIndexOf(searchElement: number, fromIndex?: number): number;\r\n\r\n    /**\r\n     * The length of the array.\r\n     */\r\n    readonly length: number;\r\n\r\n    /**\r\n     * Calls a defined callback function on each element of an array, and returns an array that\r\n     * contains the results.\r\n     * @param callbackfn A function that accepts up to three arguments. The map method calls the\r\n     * callbackfn function one time for each element in the array.\r\n     * @param thisArg An object to which the this keyword can refer in the callbackfn function.\r\n     * If thisArg is omitted, undefined is used as the this value.\r\n     */\r\n    map(callbackfn: (value: number, index: number, array: Int16Array) => number, thisArg?: any): Int16Array;\r\n\r\n    /**\r\n     * Calls the specified callback function for all the elements in an array. The return value of\r\n     * the callback function is the accumulated result, and is provided as an argument in the next\r\n     * call to the callback function.\r\n     * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\r\n     * callbackfn function one time for each element in the array.\r\n     * @param initialValue If initialValue is specified, it is used as the initial value to start\r\n     * the accumulation. The first call to the callbackfn function provides this value as an argument\r\n     * instead of an array value.\r\n     */\r\n    reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int16Array) => number): number;\r\n    reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int16Array) => number, initialValue: number): number;\r\n\r\n    /**\r\n     * Calls the specified callback function for all the elements in an array. The return value of\r\n     * the callback function is the accumulated result, and is provided as an argument in the next\r\n     * call to the callback function.\r\n     * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\r\n     * callbackfn function one time for each element in the array.\r\n     * @param initialValue If initialValue is specified, it is used as the initial value to start\r\n     * the accumulation. The first call to the callbackfn function provides this value as an argument\r\n     * instead of an array value.\r\n     */\r\n    reduce<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Int16Array) => U, initialValue: U): U;\r\n\r\n    /**\r\n     * Calls the specified callback function for all the elements in an array, in descending order.\r\n     * The return value of the callback function is the accumulated result, and is provided as an\r\n     * argument in the next call to the callback function.\r\n     * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\r\n     * the callbackfn function one time for each element in the array.\r\n     * @param initialValue If initialValue is specified, it is used as the initial value to start\r\n     * the accumulation. The first call to the callbackfn function provides this value as an\r\n     * argument instead of an array value.\r\n     */\r\n    reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int16Array) => number): number;\r\n    reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int16Array) => number, initialValue: number): number;\r\n\r\n    /**\r\n     * Calls the specified callback function for all the elements in an array, in descending order.\r\n     * The return value of the callback function is the accumulated result, and is provided as an\r\n     * argument in the next call to the callback function.\r\n     * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\r\n     * the callbackfn function one time for each element in the array.\r\n     * @param initialValue If initialValue is specified, it is used as the initial value to start\r\n     * the accumulation. The first call to the callbackfn function provides this value as an argument\r\n     * instead of an array value.\r\n     */\r\n    reduceRight<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Int16Array) => U, initialValue: U): U;\r\n\r\n    /**\r\n     * Reverses the elements in an Array.\r\n     */\r\n    reverse(): Int16Array;\r\n\r\n    /**\r\n     * Sets a value or an array of values.\r\n     * @param array A typed or untyped array of values to set.\r\n     * @param offset The index in the current array at which the values are to be written.\r\n     */\r\n    set(array: ArrayLike<number>, offset?: number): void;\r\n\r\n    /**\r\n     * Returns a section of an array.\r\n     * @param start The beginning of the specified portion of the array.\r\n     * @param end The end of the specified portion of the array. This is exclusive of the element at the index 'end'.\r\n     */\r\n    slice(start?: number, end?: number): Int16Array;\r\n\r\n    /**\r\n     * Determines whether the specified callback function returns true for any element of an array.\r\n     * @param predicate A function that accepts up to three arguments. The some method calls\r\n     * the predicate function for each element in the array until the predicate returns a value\r\n     * which is coercible to the Boolean value true, or until the end of the array.\r\n     * @param thisArg An object to which the this keyword can refer in the predicate function.\r\n     * If thisArg is omitted, undefined is used as the this value.\r\n     */\r\n    some(predicate: (value: number, index: number, array: Int16Array) => unknown, thisArg?: any): boolean;\r\n\r\n    /**\r\n     * Sorts an array.\r\n     * @param compareFn Function used to determine the order of the elements. It is expected to return\r\n     * a negative value if first argument is less than second argument, zero if they're equal and a positive\r\n     * value otherwise. If omitted, the elements are sorted in ascending order.\r\n     * ```ts\r\n     * [11,2,22,1].sort((a, b) => a - b)\r\n     * ```\r\n     */\r\n    sort(compareFn?: (a: number, b: number) => number): this;\r\n\r\n    /**\r\n     * Gets a new Int16Array view of the ArrayBuffer store for this array, referencing the elements\r\n     * at begin, inclusive, up to end, exclusive.\r\n     * @param begin The index of the beginning of the array.\r\n     * @param end The index of the end of the array.\r\n     */\r\n    subarray(begin?: number, end?: number): Int16Array;\r\n\r\n    /**\r\n     * Converts a number to a string by using the current locale.\r\n     */\r\n    toLocaleString(): string;\r\n\r\n    /**\r\n     * Returns a string representation of an array.\r\n     */\r\n    toString(): string;\r\n\r\n    /** Returns the primitive value of the specified object. */\r\n    valueOf(): Int16Array;\r\n\r\n    [index: number]: number;\r\n}\r\n\r\ninterface Int16ArrayConstructor {\r\n    readonly prototype: Int16Array;\r\n    new(length: number): Int16Array;\r\n    new(array: ArrayLike<number> | ArrayBufferLike): Int16Array;\r\n    new(buffer: ArrayBufferLike, byteOffset?: number, length?: number): Int16Array;\r\n\r\n    /**\r\n     * The size in bytes of each element in the array.\r\n     */\r\n    readonly BYTES_PER_ELEMENT: number;\r\n\r\n    /**\r\n     * Returns a new array from a set of elements.\r\n     * @param items A set of elements to include in the new array object.\r\n     */\r\n    of(...items: number[]): Int16Array;\r\n\r\n    /**\r\n     * Creates an array from an array-like or iterable object.\r\n     * @param arrayLike An array-like or iterable object to convert to an array.\r\n     */\r\n    from(arrayLike: ArrayLike<number>): Int16Array;\r\n\r\n    /**\r\n     * Creates an array from an array-like or iterable object.\r\n     * @param arrayLike An array-like or iterable object to convert to an array.\r\n     * @param mapfn A mapping function to call on every element of the array.\r\n     * @param thisArg Value of 'this' used to invoke the mapfn.\r\n     */\r\n    from<T>(arrayLike: ArrayLike<T>, mapfn: (v: T, k: number) => number, thisArg?: any): Int16Array;\r\n\r\n\r\n}\r\ndeclare var Int16Array: Int16ArrayConstructor;\r\n\r\n/**\r\n * A typed array of 16-bit unsigned integer values. The contents are initialized to 0. If the\r\n * requested number of bytes could not be allocated an exception is raised.\r\n */\r\ninterface Uint16Array {\r\n    /**\r\n     * The size in bytes of each element in the array.\r\n     */\r\n    readonly BYTES_PER_ELEMENT: number;\r\n\r\n    /**\r\n     * The ArrayBuffer instance referenced by the array.\r\n     */\r\n    readonly buffer: ArrayBufferLike;\r\n\r\n    /**\r\n     * The length in bytes of the array.\r\n     */\r\n    readonly byteLength: number;\r\n\r\n    /**\r\n     * The offset in bytes of the array.\r\n     */\r\n    readonly byteOffset: number;\r\n\r\n    /**\r\n     * Returns the this object after copying a section of the array identified by start and end\r\n     * to the same array starting at position target\r\n     * @param target If target is negative, it is treated as length+target where length is the\r\n     * length of the array.\r\n     * @param start If start is negative, it is treated as length+start. If end is negative, it\r\n     * is treated as length+end.\r\n     * @param end If not specified, length of the this object is used as its default value.\r\n     */\r\n    copyWithin(target: number, start: number, end?: number): this;\r\n\r\n    /**\r\n     * Determines whether all the members of an array satisfy the specified test.\r\n     * @param predicate A function that accepts up to three arguments. The every method calls\r\n     * the predicate function for each element in the array until the predicate returns a value\r\n     * which is coercible to the Boolean value false, or until the end of the array.\r\n     * @param thisArg An object to which the this keyword can refer in the predicate function.\r\n     * If thisArg is omitted, undefined is used as the this value.\r\n     */\r\n    every(predicate: (value: number, index: number, array: Uint16Array) => unknown, thisArg?: any): boolean;\r\n\r\n    /**\r\n     * Changes all array elements from `start` to `end` index to a static `value` and returns the modified array\r\n     * @param value value to fill array section with\r\n     * @param start index to start filling the array at. If start is negative, it is treated as\r\n     * length+start where length is the length of the array.\r\n     * @param end index to stop filling the array at. If end is negative, it is treated as\r\n     * length+end.\r\n     */\r\n    fill(value: number, start?: number, end?: number): this;\r\n\r\n    /**\r\n     * Returns the elements of an array that meet the condition specified in a callback function.\r\n     * @param predicate A function that accepts up to three arguments. The filter method calls\r\n     * the predicate function one time for each element in the array.\r\n     * @param thisArg An object to which the this keyword can refer in the predicate function.\r\n     * If thisArg is omitted, undefined is used as the this value.\r\n     */\r\n    filter(predicate: (value: number, index: number, array: Uint16Array) => any, thisArg?: any): Uint16Array;\r\n\r\n    /**\r\n     * Returns the value of the first element in the array where predicate is true, and undefined\r\n     * otherwise.\r\n     * @param predicate find calls predicate once for each element of the array, in ascending\r\n     * order, until it finds one where predicate returns true. If such an element is found, find\r\n     * immediately returns that element value. Otherwise, find returns undefined.\r\n     * @param thisArg If provided, it will be used as the this value for each invocation of\r\n     * predicate. If it is not provided, undefined is used instead.\r\n     */\r\n    find(predicate: (value: number, index: number, obj: Uint16Array) => boolean, thisArg?: any): number | undefined;\r\n\r\n    /**\r\n     * Returns the index of the first element in the array where predicate is true, and -1\r\n     * otherwise.\r\n     * @param predicate find calls predicate once for each element of the array, in ascending\r\n     * order, until it finds one where predicate returns true. If such an element is found,\r\n     * findIndex immediately returns that element index. Otherwise, findIndex returns -1.\r\n     * @param thisArg If provided, it will be used as the this value for each invocation of\r\n     * predicate. If it is not provided, undefined is used instead.\r\n     */\r\n    findIndex(predicate: (value: number, index: number, obj: Uint16Array) => boolean, thisArg?: any): number;\r\n\r\n    /**\r\n     * Performs the specified action for each element in an array.\r\n     * @param callbackfn  A function that accepts up to three arguments. forEach calls the\r\n     * callbackfn function one time for each element in the array.\r\n     * @param thisArg  An object to which the this keyword can refer in the callbackfn function.\r\n     * If thisArg is omitted, undefined is used as the this value.\r\n     */\r\n    forEach(callbackfn: (value: number, index: number, array: Uint16Array) => void, thisArg?: any): void;\r\n\r\n    /**\r\n     * Returns the index of the first occurrence of a value in an array.\r\n     * @param searchElement The value to locate in the array.\r\n     * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\r\n     *  search starts at index 0.\r\n     */\r\n    indexOf(searchElement: number, fromIndex?: number): number;\r\n\r\n    /**\r\n     * Adds all the elements of an array separated by the specified separator string.\r\n     * @param separator A string used to separate one element of an array from the next in the\r\n     * resulting String. If omitted, the array elements are separated with a comma.\r\n     */\r\n    join(separator?: string): string;\r\n\r\n    /**\r\n     * Returns the index of the last occurrence of a value in an array.\r\n     * @param searchElement The value to locate in the array.\r\n     * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\r\n     * search starts at index 0.\r\n     */\r\n    lastIndexOf(searchElement: number, fromIndex?: number): number;\r\n\r\n    /**\r\n     * The length of the array.\r\n     */\r\n    readonly length: number;\r\n\r\n    /**\r\n     * Calls a defined callback function on each element of an array, and returns an array that\r\n     * contains the results.\r\n     * @param callbackfn A function that accepts up to three arguments. The map method calls the\r\n     * callbackfn function one time for each element in the array.\r\n     * @param thisArg An object to which the this keyword can refer in the callbackfn function.\r\n     * If thisArg is omitted, undefined is used as the this value.\r\n     */\r\n    map(callbackfn: (value: number, index: number, array: Uint16Array) => number, thisArg?: any): Uint16Array;\r\n\r\n    /**\r\n     * Calls the specified callback function for all the elements in an array. The return value of\r\n     * the callback function is the accumulated result, and is provided as an argument in the next\r\n     * call to the callback function.\r\n     * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\r\n     * callbackfn function one time for each element in the array.\r\n     * @param initialValue If initialValue is specified, it is used as the initial value to start\r\n     * the accumulation. The first call to the callbackfn function provides this value as an argument\r\n     * instead of an array value.\r\n     */\r\n    reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint16Array) => number): number;\r\n    reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint16Array) => number, initialValue: number): number;\r\n\r\n    /**\r\n     * Calls the specified callback function for all the elements in an array. The return value of\r\n     * the callback function is the accumulated result, and is provided as an argument in the next\r\n     * call to the callback function.\r\n     * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\r\n     * callbackfn function one time for each element in the array.\r\n     * @param initialValue If initialValue is specified, it is used as the initial value to start\r\n     * the accumulation. The first call to the callbackfn function provides this value as an argument\r\n     * instead of an array value.\r\n     */\r\n    reduce<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Uint16Array) => U, initialValue: U): U;\r\n\r\n    /**\r\n     * Calls the specified callback function for all the elements in an array, in descending order.\r\n     * The return value of the callback function is the accumulated result, and is provided as an\r\n     * argument in the next call to the callback function.\r\n     * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\r\n     * the callbackfn function one time for each element in the array.\r\n     * @param initialValue If initialValue is specified, it is used as the initial value to start\r\n     * the accumulation. The first call to the callbackfn function provides this value as an\r\n     * argument instead of an array value.\r\n     */\r\n    reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint16Array) => number): number;\r\n    reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint16Array) => number, initialValue: number): number;\r\n\r\n    /**\r\n     * Calls the specified callback function for all the elements in an array, in descending order.\r\n     * The return value of the callback function is the accumulated result, and is provided as an\r\n     * argument in the next call to the callback function.\r\n     * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\r\n     * the callbackfn function one time for each element in the array.\r\n     * @param initialValue If initialValue is specified, it is used as the initial value to start\r\n     * the accumulation. The first call to the callbackfn function provides this value as an argument\r\n     * instead of an array value.\r\n     */\r\n    reduceRight<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Uint16Array) => U, initialValue: U): U;\r\n\r\n    /**\r\n     * Reverses the elements in an Array.\r\n     */\r\n    reverse(): Uint16Array;\r\n\r\n    /**\r\n     * Sets a value or an array of values.\r\n     * @param array A typed or untyped array of values to set.\r\n     * @param offset The index in the current array at which the values are to be written.\r\n     */\r\n    set(array: ArrayLike<number>, offset?: number): void;\r\n\r\n    /**\r\n     * Returns a section of an array.\r\n     * @param start The beginning of the specified portion of the array.\r\n     * @param end The end of the specified portion of the array. This is exclusive of the element at the index 'end'.\r\n     */\r\n    slice(start?: number, end?: number): Uint16Array;\r\n\r\n    /**\r\n     * Determines whether the specified callback function returns true for any element of an array.\r\n     * @param predicate A function that accepts up to three arguments. The some method calls\r\n     * the predicate function for each element in the array until the predicate returns a value\r\n     * which is coercible to the Boolean value true, or until the end of the array.\r\n     * @param thisArg An object to which the this keyword can refer in the predicate function.\r\n     * If thisArg is omitted, undefined is used as the this value.\r\n     */\r\n    some(predicate: (value: number, index: number, array: Uint16Array) => unknown, thisArg?: any): boolean;\r\n\r\n    /**\r\n     * Sorts an array.\r\n     * @param compareFn Function used to determine the order of the elements. It is expected to return\r\n     * a negative value if first argument is less than second argument, zero if they're equal and a positive\r\n     * value otherwise. If omitted, the elements are sorted in ascending order.\r\n     * ```ts\r\n     * [11,2,22,1].sort((a, b) => a - b)\r\n     * ```\r\n     */\r\n    sort(compareFn?: (a: number, b: number) => number): this;\r\n\r\n    /**\r\n     * Gets a new Uint16Array view of the ArrayBuffer store for this array, referencing the elements\r\n     * at begin, inclusive, up to end, exclusive.\r\n     * @param begin The index of the beginning of the array.\r\n     * @param end The index of the end of the array.\r\n     */\r\n    subarray(begin?: number, end?: number): Uint16Array;\r\n\r\n    /**\r\n     * Converts a number to a string by using the current locale.\r\n     */\r\n    toLocaleString(): string;\r\n\r\n    /**\r\n     * Returns a string representation of an array.\r\n     */\r\n    toString(): string;\r\n\r\n    /** Returns the primitive value of the specified object. */\r\n    valueOf(): Uint16Array;\r\n\r\n    [index: number]: number;\r\n}\r\n\r\ninterface Uint16ArrayConstructor {\r\n    readonly prototype: Uint16Array;\r\n    new(length: number): Uint16Array;\r\n    new(array: ArrayLike<number> | ArrayBufferLike): Uint16Array;\r\n    new(buffer: ArrayBufferLike, byteOffset?: number, length?: number): Uint16Array;\r\n\r\n    /**\r\n     * The size in bytes of each element in the array.\r\n     */\r\n    readonly BYTES_PER_ELEMENT: number;\r\n\r\n    /**\r\n     * Returns a new array from a set of elements.\r\n     * @param items A set of elements to include in the new array object.\r\n     */\r\n    of(...items: number[]): Uint16Array;\r\n\r\n    /**\r\n     * Creates an array from an array-like or iterable object.\r\n     * @param arrayLike An array-like or iterable object to convert to an array.\r\n     */\r\n    from(arrayLike: ArrayLike<number>): Uint16Array;\r\n\r\n    /**\r\n     * Creates an array from an array-like or iterable object.\r\n     * @param arrayLike An array-like or iterable object to convert to an array.\r\n     * @param mapfn A mapping function to call on every element of the array.\r\n     * @param thisArg Value of 'this' used to invoke the mapfn.\r\n     */\r\n    from<T>(arrayLike: ArrayLike<T>, mapfn: (v: T, k: number) => number, thisArg?: any): Uint16Array;\r\n\r\n\r\n}\r\ndeclare var Uint16Array: Uint16ArrayConstructor;\r\n/**\r\n * A typed array of 32-bit signed integer values. The contents are initialized to 0. If the\r\n * requested number of bytes could not be allocated an exception is raised.\r\n */\r\ninterface Int32Array {\r\n    /**\r\n     * The size in bytes of each element in the array.\r\n     */\r\n    readonly BYTES_PER_ELEMENT: number;\r\n\r\n    /**\r\n     * The ArrayBuffer instance referenced by the array.\r\n     */\r\n    readonly buffer: ArrayBufferLike;\r\n\r\n    /**\r\n     * The length in bytes of the array.\r\n     */\r\n    readonly byteLength: number;\r\n\r\n    /**\r\n     * The offset in bytes of the array.\r\n     */\r\n    readonly byteOffset: number;\r\n\r\n    /**\r\n     * Returns the this object after copying a section of the array identified by start and end\r\n     * to the same array starting at position target\r\n     * @param target If target is negative, it is treated as length+target where length is the\r\n     * length of the array.\r\n     * @param start If start is negative, it is treated as length+start. If end is negative, it\r\n     * is treated as length+end.\r\n     * @param end If not specified, length of the this object is used as its default value.\r\n     */\r\n    copyWithin(target: number, start: number, end?: number): this;\r\n\r\n    /**\r\n     * Determines whether all the members of an array satisfy the specified test.\r\n     * @param predicate A function that accepts up to three arguments. The every method calls\r\n     * the predicate function for each element in the array until the predicate returns a value\r\n     * which is coercible to the Boolean value false, or until the end of the array.\r\n     * @param thisArg An object to which the this keyword can refer in the predicate function.\r\n     * If thisArg is omitted, undefined is used as the this value.\r\n     */\r\n    every(predicate: (value: number, index: number, array: Int32Array) => unknown, thisArg?: any): boolean;\r\n\r\n    /**\r\n     * Changes all array elements from `start` to `end` index to a static `value` and returns the modified array\r\n     * @param value value to fill array section with\r\n     * @param start index to start filling the array at. If start is negative, it is treated as\r\n     * length+start where length is the length of the array.\r\n     * @param end index to stop filling the array at. If end is negative, it is treated as\r\n     * length+end.\r\n     */\r\n    fill(value: number, start?: number, end?: number): this;\r\n\r\n    /**\r\n     * Returns the elements of an array that meet the condition specified in a callback function.\r\n     * @param predicate A function that accepts up to three arguments. The filter method calls\r\n     * the predicate function one time for each element in the array.\r\n     * @param thisArg An object to which the this keyword can refer in the predicate function.\r\n     * If thisArg is omitted, undefined is used as the this value.\r\n     */\r\n    filter(predicate: (value: number, index: number, array: Int32Array) => any, thisArg?: any): Int32Array;\r\n\r\n    /**\r\n     * Returns the value of the first element in the array where predicate is true, and undefined\r\n     * otherwise.\r\n     * @param predicate find calls predicate once for each element of the array, in ascending\r\n     * order, until it finds one where predicate returns true. If such an element is found, find\r\n     * immediately returns that element value. Otherwise, find returns undefined.\r\n     * @param thisArg If provided, it will be used as the this value for each invocation of\r\n     * predicate. If it is not provided, undefined is used instead.\r\n     */\r\n    find(predicate: (value: number, index: number, obj: Int32Array) => boolean, thisArg?: any): number | undefined;\r\n\r\n    /**\r\n     * Returns the index of the first element in the array where predicate is true, and -1\r\n     * otherwise.\r\n     * @param predicate find calls predicate once for each element of the array, in ascending\r\n     * order, until it finds one where predicate returns true. If such an element is found,\r\n     * findIndex immediately returns that element index. Otherwise, findIndex returns -1.\r\n     * @param thisArg If provided, it will be used as the this value for each invocation of\r\n     * predicate. If it is not provided, undefined is used instead.\r\n     */\r\n    findIndex(predicate: (value: number, index: number, obj: Int32Array) => boolean, thisArg?: any): number;\r\n\r\n    /**\r\n     * Performs the specified action for each element in an array.\r\n     * @param callbackfn  A function that accepts up to three arguments. forEach calls the\r\n     * callbackfn function one time for each element in the array.\r\n     * @param thisArg  An object to which the this keyword can refer in the callbackfn function.\r\n     * If thisArg is omitted, undefined is used as the this value.\r\n     */\r\n    forEach(callbackfn: (value: number, index: number, array: Int32Array) => void, thisArg?: any): void;\r\n\r\n    /**\r\n     * Returns the index of the first occurrence of a value in an array.\r\n     * @param searchElement The value to locate in the array.\r\n     * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\r\n     *  search starts at index 0.\r\n     */\r\n    indexOf(searchElement: number, fromIndex?: number): number;\r\n\r\n    /**\r\n     * Adds all the elements of an array separated by the specified separator string.\r\n     * @param separator A string used to separate one element of an array from the next in the\r\n     * resulting String. If omitted, the array elements are separated with a comma.\r\n     */\r\n    join(separator?: string): string;\r\n\r\n    /**\r\n     * Returns the index of the last occurrence of a value in an array.\r\n     * @param searchElement The value to locate in the array.\r\n     * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\r\n     * search starts at index 0.\r\n     */\r\n    lastIndexOf(searchElement: number, fromIndex?: number): number;\r\n\r\n    /**\r\n     * The length of the array.\r\n     */\r\n    readonly length: number;\r\n\r\n    /**\r\n     * Calls a defined callback function on each element of an array, and returns an array that\r\n     * contains the results.\r\n     * @param callbackfn A function that accepts up to three arguments. The map method calls the\r\n     * callbackfn function one time for each element in the array.\r\n     * @param thisArg An object to which the this keyword can refer in the callbackfn function.\r\n     * If thisArg is omitted, undefined is used as the this value.\r\n     */\r\n    map(callbackfn: (value: number, index: number, array: Int32Array) => number, thisArg?: any): Int32Array;\r\n\r\n    /**\r\n     * Calls the specified callback function for all the elements in an array. The return value of\r\n     * the callback function is the accumulated result, and is provided as an argument in the next\r\n     * call to the callback function.\r\n     * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\r\n     * callbackfn function one time for each element in the array.\r\n     * @param initialValue If initialValue is specified, it is used as the initial value to start\r\n     * the accumulation. The first call to the callbackfn function provides this value as an argument\r\n     * instead of an array value.\r\n     */\r\n    reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int32Array) => number): number;\r\n    reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int32Array) => number, initialValue: number): number;\r\n\r\n    /**\r\n     * Calls the specified callback function for all the elements in an array. The return value of\r\n     * the callback function is the accumulated result, and is provided as an argument in the next\r\n     * call to the callback function.\r\n     * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\r\n     * callbackfn function one time for each element in the array.\r\n     * @param initialValue If initialValue is specified, it is used as the initial value to start\r\n     * the accumulation. The first call to the callbackfn function provides this value as an argument\r\n     * instead of an array value.\r\n     */\r\n    reduce<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Int32Array) => U, initialValue: U): U;\r\n\r\n    /**\r\n     * Calls the specified callback function for all the elements in an array, in descending order.\r\n     * The return value of the callback function is the accumulated result, and is provided as an\r\n     * argument in the next call to the callback function.\r\n     * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\r\n     * the callbackfn function one time for each element in the array.\r\n     * @param initialValue If initialValue is specified, it is used as the initial value to start\r\n     * the accumulation. The first call to the callbackfn function provides this value as an\r\n     * argument instead of an array value.\r\n     */\r\n    reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int32Array) => number): number;\r\n    reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int32Array) => number, initialValue: number): number;\r\n\r\n    /**\r\n     * Calls the specified callback function for all the elements in an array, in descending order.\r\n     * The return value of the callback function is the accumulated result, and is provided as an\r\n     * argument in the next call to the callback function.\r\n     * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\r\n     * the callbackfn function one time for each element in the array.\r\n     * @param initialValue If initialValue is specified, it is used as the initial value to start\r\n     * the accumulation. The first call to the callbackfn function provides this value as an argument\r\n     * instead of an array value.\r\n     */\r\n    reduceRight<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Int32Array) => U, initialValue: U): U;\r\n\r\n    /**\r\n     * Reverses the elements in an Array.\r\n     */\r\n    reverse(): Int32Array;\r\n\r\n    /**\r\n     * Sets a value or an array of values.\r\n     * @param array A typed or untyped array of values to set.\r\n     * @param offset The index in the current array at which the values are to be written.\r\n     */\r\n    set(array: ArrayLike<number>, offset?: number): void;\r\n\r\n    /**\r\n     * Returns a section of an array.\r\n     * @param start The beginning of the specified portion of the array.\r\n     * @param end The end of the specified portion of the array. This is exclusive of the element at the index 'end'.\r\n     */\r\n    slice(start?: number, end?: number): Int32Array;\r\n\r\n    /**\r\n     * Determines whether the specified callback function returns true for any element of an array.\r\n     * @param predicate A function that accepts up to three arguments. The some method calls\r\n     * the predicate function for each element in the array until the predicate returns a value\r\n     * which is coercible to the Boolean value true, or until the end of the array.\r\n     * @param thisArg An object to which the this keyword can refer in the predicate function.\r\n     * If thisArg is omitted, undefined is used as the this value.\r\n     */\r\n    some(predicate: (value: number, index: number, array: Int32Array) => unknown, thisArg?: any): boolean;\r\n\r\n    /**\r\n     * Sorts an array.\r\n     * @param compareFn Function used to determine the order of the elements. It is expected to return\r\n     * a negative value if first argument is less than second argument, zero if they're equal and a positive\r\n     * value otherwise. If omitted, the elements are sorted in ascending order.\r\n     * ```ts\r\n     * [11,2,22,1].sort((a, b) => a - b)\r\n     * ```\r\n     */\r\n    sort(compareFn?: (a: number, b: number) => number): this;\r\n\r\n    /**\r\n     * Gets a new Int32Array view of the ArrayBuffer store for this array, referencing the elements\r\n     * at begin, inclusive, up to end, exclusive.\r\n     * @param begin The index of the beginning of the array.\r\n     * @param end The index of the end of the array.\r\n     */\r\n    subarray(begin?: number, end?: number): Int32Array;\r\n\r\n    /**\r\n     * Converts a number to a string by using the current locale.\r\n     */\r\n    toLocaleString(): string;\r\n\r\n    /**\r\n     * Returns a string representation of an array.\r\n     */\r\n    toString(): string;\r\n\r\n    /** Returns the primitive value of the specified object. */\r\n    valueOf(): Int32Array;\r\n\r\n    [index: number]: number;\r\n}\r\n\r\ninterface Int32ArrayConstructor {\r\n    readonly prototype: Int32Array;\r\n    new(length: number): Int32Array;\r\n    new(array: ArrayLike<number> | ArrayBufferLike): Int32Array;\r\n    new(buffer: ArrayBufferLike, byteOffset?: number, length?: number): Int32Array;\r\n\r\n    /**\r\n     * The size in bytes of each element in the array.\r\n     */\r\n    readonly BYTES_PER_ELEMENT: number;\r\n\r\n    /**\r\n     * Returns a new array from a set of elements.\r\n     * @param items A set of elements to include in the new array object.\r\n     */\r\n    of(...items: number[]): Int32Array;\r\n\r\n    /**\r\n     * Creates an array from an array-like or iterable object.\r\n     * @param arrayLike An array-like or iterable object to convert to an array.\r\n     */\r\n    from(arrayLike: ArrayLike<number>): Int32Array;\r\n\r\n    /**\r\n     * Creates an array from an array-like or iterable object.\r\n     * @param arrayLike An array-like or iterable object to convert to an array.\r\n     * @param mapfn A mapping function to call on every element of the array.\r\n     * @param thisArg Value of 'this' used to invoke the mapfn.\r\n     */\r\n    from<T>(arrayLike: ArrayLike<T>, mapfn: (v: T, k: number) => number, thisArg?: any): Int32Array;\r\n\r\n}\r\ndeclare var Int32Array: Int32ArrayConstructor;\r\n\r\n/**\r\n * A typed array of 32-bit unsigned integer values. The contents are initialized to 0. If the\r\n * requested number of bytes could not be allocated an exception is raised.\r\n */\r\ninterface Uint32Array {\r\n    /**\r\n     * The size in bytes of each element in the array.\r\n     */\r\n    readonly BYTES_PER_ELEMENT: number;\r\n\r\n    /**\r\n     * The ArrayBuffer instance referenced by the array.\r\n     */\r\n    readonly buffer: ArrayBufferLike;\r\n\r\n    /**\r\n     * The length in bytes of the array.\r\n     */\r\n    readonly byteLength: number;\r\n\r\n    /**\r\n     * The offset in bytes of the array.\r\n     */\r\n    readonly byteOffset: number;\r\n\r\n    /**\r\n     * Returns the this object after copying a section of the array identified by start and end\r\n     * to the same array starting at position target\r\n     * @param target If target is negative, it is treated as length+target where length is the\r\n     * length of the array.\r\n     * @param start If start is negative, it is treated as length+start. If end is negative, it\r\n     * is treated as length+end.\r\n     * @param end If not specified, length of the this object is used as its default value.\r\n     */\r\n    copyWithin(target: number, start: number, end?: number): this;\r\n\r\n    /**\r\n     * Determines whether all the members of an array satisfy the specified test.\r\n     * @param predicate A function that accepts up to three arguments. The every method calls\r\n     * the predicate function for each element in the array until the predicate returns a value\r\n     * which is coercible to the Boolean value false, or until the end of the array.\r\n     * @param thisArg An object to which the this keyword can refer in the predicate function.\r\n     * If thisArg is omitted, undefined is used as the this value.\r\n     */\r\n    every(predicate: (value: number, index: number, array: Uint32Array) => unknown, thisArg?: any): boolean;\r\n\r\n    /**\r\n     * Changes all array elements from `start` to `end` index to a static `value` and returns the modified array\r\n     * @param value value to fill array section with\r\n     * @param start index to start filling the array at. If start is negative, it is treated as\r\n     * length+start where length is the length of the array.\r\n     * @param end index to stop filling the array at. If end is negative, it is treated as\r\n     * length+end.\r\n     */\r\n    fill(value: number, start?: number, end?: number): this;\r\n\r\n    /**\r\n     * Returns the elements of an array that meet the condition specified in a callback function.\r\n     * @param predicate A function that accepts up to three arguments. The filter method calls\r\n     * the predicate function one time for each element in the array.\r\n     * @param thisArg An object to which the this keyword can refer in the predicate function.\r\n     * If thisArg is omitted, undefined is used as the this value.\r\n     */\r\n    filter(predicate: (value: number, index: number, array: Uint32Array) => any, thisArg?: any): Uint32Array;\r\n\r\n    /**\r\n     * Returns the value of the first element in the array where predicate is true, and undefined\r\n     * otherwise.\r\n     * @param predicate find calls predicate once for each element of the array, in ascending\r\n     * order, until it finds one where predicate returns true. If such an element is found, find\r\n     * immediately returns that element value. Otherwise, find returns undefined.\r\n     * @param thisArg If provided, it will be used as the this value for each invocation of\r\n     * predicate. If it is not provided, undefined is used instead.\r\n     */\r\n    find(predicate: (value: number, index: number, obj: Uint32Array) => boolean, thisArg?: any): number | undefined;\r\n\r\n    /**\r\n     * Returns the index of the first element in the array where predicate is true, and -1\r\n     * otherwise.\r\n     * @param predicate find calls predicate once for each element of the array, in ascending\r\n     * order, until it finds one where predicate returns true. If such an element is found,\r\n     * findIndex immediately returns that element index. Otherwise, findIndex returns -1.\r\n     * @param thisArg If provided, it will be used as the this value for each invocation of\r\n     * predicate. If it is not provided, undefined is used instead.\r\n     */\r\n    findIndex(predicate: (value: number, index: number, obj: Uint32Array) => boolean, thisArg?: any): number;\r\n\r\n    /**\r\n     * Performs the specified action for each element in an array.\r\n     * @param callbackfn  A function that accepts up to three arguments. forEach calls the\r\n     * callbackfn function one time for each element in the array.\r\n     * @param thisArg  An object to which the this keyword can refer in the callbackfn function.\r\n     * If thisArg is omitted, undefined is used as the this value.\r\n     */\r\n    forEach(callbackfn: (value: number, index: number, array: Uint32Array) => void, thisArg?: any): void;\r\n    /**\r\n     * Returns the index of the first occurrence of a value in an array.\r\n     * @param searchElement The value to locate in the array.\r\n     * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\r\n     *  search starts at index 0.\r\n     */\r\n    indexOf(searchElement: number, fromIndex?: number): number;\r\n\r\n    /**\r\n     * Adds all the elements of an array separated by the specified separator string.\r\n     * @param separator A string used to separate one element of an array from the next in the\r\n     * resulting String. If omitted, the array elements are separated with a comma.\r\n     */\r\n    join(separator?: string): string;\r\n\r\n    /**\r\n     * Returns the index of the last occurrence of a value in an array.\r\n     * @param searchElement The value to locate in the array.\r\n     * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\r\n     * search starts at index 0.\r\n     */\r\n    lastIndexOf(searchElement: number, fromIndex?: number): number;\r\n\r\n    /**\r\n     * The length of the array.\r\n     */\r\n    readonly length: number;\r\n\r\n    /**\r\n     * Calls a defined callback function on each element of an array, and returns an array that\r\n     * contains the results.\r\n     * @param callbackfn A function that accepts up to three arguments. The map method calls the\r\n     * callbackfn function one time for each element in the array.\r\n     * @param thisArg An object to which the this keyword can refer in the callbackfn function.\r\n     * If thisArg is omitted, undefined is used as the this value.\r\n     */\r\n    map(callbackfn: (value: number, index: number, array: Uint32Array) => number, thisArg?: any): Uint32Array;\r\n\r\n    /**\r\n     * Calls the specified callback function for all the elements in an array. The return value of\r\n     * the callback function is the accumulated result, and is provided as an argument in the next\r\n     * call to the callback function.\r\n     * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\r\n     * callbackfn function one time for each element in the array.\r\n     * @param initialValue If initialValue is specified, it is used as the initial value to start\r\n     * the accumulation. The first call to the callbackfn function provides this value as an argument\r\n     * instead of an array value.\r\n     */\r\n    reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint32Array) => number): number;\r\n    reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint32Array) => number, initialValue: number): number;\r\n\r\n    /**\r\n     * Calls the specified callback function for all the elements in an array. The return value of\r\n     * the callback function is the accumulated result, and is provided as an argument in the next\r\n     * call to the callback function.\r\n     * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\r\n     * callbackfn function one time for each element in the array.\r\n     * @param initialValue If initialValue is specified, it is used as the initial value to start\r\n     * the accumulation. The first call to the callbackfn function provides this value as an argument\r\n     * instead of an array value.\r\n     */\r\n    reduce<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Uint32Array) => U, initialValue: U): U;\r\n\r\n    /**\r\n     * Calls the specified callback function for all the elements in an array, in descending order.\r\n     * The return value of the callback function is the accumulated result, and is provided as an\r\n     * argument in the next call to the callback function.\r\n     * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\r\n     * the callbackfn function one time for each element in the array.\r\n     * @param initialValue If initialValue is specified, it is used as the initial value to start\r\n     * the accumulation. The first call to the callbackfn function provides this value as an\r\n     * argument instead of an array value.\r\n     */\r\n    reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint32Array) => number): number;\r\n    reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint32Array) => number, initialValue: number): number;\r\n\r\n    /**\r\n     * Calls the specified callback function for all the elements in an array, in descending order.\r\n     * The return value of the callback function is the accumulated result, and is provided as an\r\n     * argument in the next call to the callback function.\r\n     * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\r\n     * the callbackfn function one time for each element in the array.\r\n     * @param initialValue If initialValue is specified, it is used as the initial value to start\r\n     * the accumulation. The first call to the callbackfn function provides this value as an argument\r\n     * instead of an array value.\r\n     */\r\n    reduceRight<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Uint32Array) => U, initialValue: U): U;\r\n\r\n    /**\r\n     * Reverses the elements in an Array.\r\n     */\r\n    reverse(): Uint32Array;\r\n\r\n    /**\r\n     * Sets a value or an array of values.\r\n     * @param array A typed or untyped array of values to set.\r\n     * @param offset The index in the current array at which the values are to be written.\r\n     */\r\n    set(array: ArrayLike<number>, offset?: number): void;\r\n\r\n    /**\r\n     * Returns a section of an array.\r\n     * @param start The beginning of the specified portion of the array.\r\n     * @param end The end of the specified portion of the array. This is exclusive of the element at the index 'end'.\r\n     */\r\n    slice(start?: number, end?: number): Uint32Array;\r\n\r\n    /**\r\n     * Determines whether the specified callback function returns true for any element of an array.\r\n     * @param predicate A function that accepts up to three arguments. The some method calls\r\n     * the predicate function for each element in the array until the predicate returns a value\r\n     * which is coercible to the Boolean value true, or until the end of the array.\r\n     * @param thisArg An object to which the this keyword can refer in the predicate function.\r\n     * If thisArg is omitted, undefined is used as the this value.\r\n     */\r\n    some(predicate: (value: number, index: number, array: Uint32Array) => unknown, thisArg?: any): boolean;\r\n\r\n    /**\r\n     * Sorts an array.\r\n     * @param compareFn Function used to determine the order of the elements. It is expected to return\r\n     * a negative value if first argument is less than second argument, zero if they're equal and a positive\r\n     * value otherwise. If omitted, the elements are sorted in ascending order.\r\n     * ```ts\r\n     * [11,2,22,1].sort((a, b) => a - b)\r\n     * ```\r\n     */\r\n    sort(compareFn?: (a: number, b: number) => number): this;\r\n\r\n    /**\r\n     * Gets a new Uint32Array view of the ArrayBuffer store for this array, referencing the elements\r\n     * at begin, inclusive, up to end, exclusive.\r\n     * @param begin The index of the beginning of the array.\r\n     * @param end The index of the end of the array.\r\n     */\r\n    subarray(begin?: number, end?: number): Uint32Array;\r\n\r\n    /**\r\n     * Converts a number to a string by using the current locale.\r\n     */\r\n    toLocaleString(): string;\r\n\r\n    /**\r\n     * Returns a string representation of an array.\r\n     */\r\n    toString(): string;\r\n\r\n    /** Returns the primitive value of the specified object. */\r\n    valueOf(): Uint32Array;\r\n\r\n    [index: number]: number;\r\n}\r\n\r\ninterface Uint32ArrayConstructor {\r\n    readonly prototype: Uint32Array;\r\n    new(length: number): Uint32Array;\r\n    new(array: ArrayLike<number> | ArrayBufferLike): Uint32Array;\r\n    new(buffer: ArrayBufferLike, byteOffset?: number, length?: number): Uint32Array;\r\n\r\n    /**\r\n     * The size in bytes of each element in the array.\r\n     */\r\n    readonly BYTES_PER_ELEMENT: number;\r\n\r\n    /**\r\n     * Returns a new array from a set of elements.\r\n     * @param items A set of elements to include in the new array object.\r\n     */\r\n    of(...items: number[]): Uint32Array;\r\n\r\n    /**\r\n     * Creates an array from an array-like or iterable object.\r\n     * @param arrayLike An array-like or iterable object to convert to an array.\r\n     */\r\n    from(arrayLike: ArrayLike<number>): Uint32Array;\r\n\r\n    /**\r\n     * Creates an array from an array-like or iterable object.\r\n     * @param arrayLike An array-like or iterable object to convert to an array.\r\n     * @param mapfn A mapping function to call on every element of the array.\r\n     * @param thisArg Value of 'this' used to invoke the mapfn.\r\n     */\r\n    from<T>(arrayLike: ArrayLike<T>, mapfn: (v: T, k: number) => number, thisArg?: any): Uint32Array;\r\n\r\n}\r\ndeclare var Uint32Array: Uint32ArrayConstructor;\r\n\r\n/**\r\n * A typed array of 32-bit float values. The contents are initialized to 0. If the requested number\r\n * of bytes could not be allocated an exception is raised.\r\n */\r\ninterface Float32Array {\r\n    /**\r\n     * The size in bytes of each element in the array.\r\n     */\r\n    readonly BYTES_PER_ELEMENT: number;\r\n\r\n    /**\r\n     * The ArrayBuffer instance referenced by the array.\r\n     */\r\n    readonly buffer: ArrayBufferLike;\r\n\r\n    /**\r\n     * The length in bytes of the array.\r\n     */\r\n    readonly byteLength: number;\r\n\r\n    /**\r\n     * The offset in bytes of the array.\r\n     */\r\n    readonly byteOffset: number;\r\n\r\n    /**\r\n     * Returns the this object after copying a section of the array identified by start and end\r\n     * to the same array starting at position target\r\n     * @param target If target is negative, it is treated as length+target where length is the\r\n     * length of the array.\r\n     * @param start If start is negative, it is treated as length+start. If end is negative, it\r\n     * is treated as length+end.\r\n     * @param end If not specified, length of the this object is used as its default value.\r\n     */\r\n    copyWithin(target: number, start: number, end?: number): this;\r\n\r\n    /**\r\n     * Determines whether all the members of an array satisfy the specified test.\r\n     * @param predicate A function that accepts up to three arguments. The every method calls\r\n     * the predicate function for each element in the array until the predicate returns a value\r\n     * which is coercible to the Boolean value false, or until the end of the array.\r\n     * @param thisArg An object to which the this keyword can refer in the predicate function.\r\n     * If thisArg is omitted, undefined is used as the this value.\r\n     */\r\n    every(predicate: (value: number, index: number, array: Float32Array) => unknown, thisArg?: any): boolean;\r\n\r\n    /**\r\n     * Changes all array elements from `start` to `end` index to a static `value` and returns the modified array\r\n     * @param value value to fill array section with\r\n     * @param start index to start filling the array at. If start is negative, it is treated as\r\n     * length+start where length is the length of the array.\r\n     * @param end index to stop filling the array at. If end is negative, it is treated as\r\n     * length+end.\r\n     */\r\n    fill(value: number, start?: number, end?: number): this;\r\n\r\n    /**\r\n     * Returns the elements of an array that meet the condition specified in a callback function.\r\n     * @param predicate A function that accepts up to three arguments. The filter method calls\r\n     * the predicate function one time for each element in the array.\r\n     * @param thisArg An object to which the this keyword can refer in the predicate function.\r\n     * If thisArg is omitted, undefined is used as the this value.\r\n     */\r\n    filter(predicate: (value: number, index: number, array: Float32Array) => any, thisArg?: any): Float32Array;\r\n\r\n    /**\r\n     * Returns the value of the first element in the array where predicate is true, and undefined\r\n     * otherwise.\r\n     * @param predicate find calls predicate once for each element of the array, in ascending\r\n     * order, until it finds one where predicate returns true. If such an element is found, find\r\n     * immediately returns that element value. Otherwise, find returns undefined.\r\n     * @param thisArg If provided, it will be used as the this value for each invocation of\r\n     * predicate. If it is not provided, undefined is used instead.\r\n     */\r\n    find(predicate: (value: number, index: number, obj: Float32Array) => boolean, thisArg?: any): number | undefined;\r\n\r\n    /**\r\n     * Returns the index of the first element in the array where predicate is true, and -1\r\n     * otherwise.\r\n     * @param predicate find calls predicate once for each element of the array, in ascending\r\n     * order, until it finds one where predicate returns true. If such an element is found,\r\n     * findIndex immediately returns that element index. Otherwise, findIndex returns -1.\r\n     * @param thisArg If provided, it will be used as the this value for each invocation of\r\n     * predicate. If it is not provided, undefined is used instead.\r\n     */\r\n    findIndex(predicate: (value: number, index: number, obj: Float32Array) => boolean, thisArg?: any): number;\r\n\r\n    /**\r\n     * Performs the specified action for each element in an array.\r\n     * @param callbackfn  A function that accepts up to three arguments. forEach calls the\r\n     * callbackfn function one time for each element in the array.\r\n     * @param thisArg  An object to which the this keyword can refer in the callbackfn function.\r\n     * If thisArg is omitted, undefined is used as the this value.\r\n     */\r\n    forEach(callbackfn: (value: number, index: number, array: Float32Array) => void, thisArg?: any): void;\r\n\r\n    /**\r\n     * Returns the index of the first occurrence of a value in an array.\r\n     * @param searchElement The value to locate in the array.\r\n     * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\r\n     *  search starts at index 0.\r\n     */\r\n    indexOf(searchElement: number, fromIndex?: number): number;\r\n\r\n    /**\r\n     * Adds all the elements of an array separated by the specified separator string.\r\n     * @param separator A string used to separate one element of an array from the next in the\r\n     * resulting String. If omitted, the array elements are separated with a comma.\r\n     */\r\n    join(separator?: string): string;\r\n\r\n    /**\r\n     * Returns the index of the last occurrence of a value in an array.\r\n     * @param searchElement The value to locate in the array.\r\n     * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\r\n     * search starts at index 0.\r\n     */\r\n    lastIndexOf(searchElement: number, fromIndex?: number): number;\r\n\r\n    /**\r\n     * The length of the array.\r\n     */\r\n    readonly length: number;\r\n\r\n    /**\r\n     * Calls a defined callback function on each element of an array, and returns an array that\r\n     * contains the results.\r\n     * @param callbackfn A function that accepts up to three arguments. The map method calls the\r\n     * callbackfn function one time for each element in the array.\r\n     * @param thisArg An object to which the this keyword can refer in the callbackfn function.\r\n     * If thisArg is omitted, undefined is used as the this value.\r\n     */\r\n    map(callbackfn: (value: number, index: number, array: Float32Array) => number, thisArg?: any): Float32Array;\r\n\r\n    /**\r\n     * Calls the specified callback function for all the elements in an array. The return value of\r\n     * the callback function is the accumulated result, and is provided as an argument in the next\r\n     * call to the callback function.\r\n     * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\r\n     * callbackfn function one time for each element in the array.\r\n     * @param initialValue If initialValue is specified, it is used as the initial value to start\r\n     * the accumulation. The first call to the callbackfn function provides this value as an argument\r\n     * instead of an array value.\r\n     */\r\n    reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Float32Array) => number): number;\r\n    reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Float32Array) => number, initialValue: number): number;\r\n\r\n    /**\r\n     * Calls the specified callback function for all the elements in an array. The return value of\r\n     * the callback function is the accumulated result, and is provided as an argument in the next\r\n     * call to the callback function.\r\n     * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\r\n     * callbackfn function one time for each element in the array.\r\n     * @param initialValue If initialValue is specified, it is used as the initial value to start\r\n     * the accumulation. The first call to the callbackfn function provides this value as an argument\r\n     * instead of an array value.\r\n     */\r\n    reduce<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Float32Array) => U, initialValue: U): U;\r\n\r\n    /**\r\n     * Calls the specified callback function for all the elements in an array, in descending order.\r\n     * The return value of the callback function is the accumulated result, and is provided as an\r\n     * argument in the next call to the callback function.\r\n     * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\r\n     * the callbackfn function one time for each element in the array.\r\n     * @param initialValue If initialValue is specified, it is used as the initial value to start\r\n     * the accumulation. The first call to the callbackfn function provides this value as an\r\n     * argument instead of an array value.\r\n     */\r\n    reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Float32Array) => number): number;\r\n    reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Float32Array) => number, initialValue: number): number;\r\n\r\n    /**\r\n     * Calls the specified callback function for all the elements in an array, in descending order.\r\n     * The return value of the callback function is the accumulated result, and is provided as an\r\n     * argument in the next call to the callback function.\r\n     * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\r\n     * the callbackfn function one time for each element in the array.\r\n     * @param initialValue If initialValue is specified, it is used as the initial value to start\r\n     * the accumulation. The first call to the callbackfn function provides this value as an argument\r\n     * instead of an array value.\r\n     */\r\n    reduceRight<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Float32Array) => U, initialValue: U): U;\r\n\r\n    /**\r\n     * Reverses the elements in an Array.\r\n     */\r\n    reverse(): Float32Array;\r\n\r\n    /**\r\n     * Sets a value or an array of values.\r\n     * @param array A typed or untyped array of values to set.\r\n     * @param offset The index in the current array at which the values are to be written.\r\n     */\r\n    set(array: ArrayLike<number>, offset?: number): void;\r\n\r\n    /**\r\n     * Returns a section of an array.\r\n     * @param start The beginning of the specified portion of the array.\r\n     * @param end The end of the specified portion of the array. This is exclusive of the element at the index 'end'.\r\n     */\r\n    slice(start?: number, end?: number): Float32Array;\r\n\r\n    /**\r\n     * Determines whether the specified callback function returns true for any element of an array.\r\n     * @param predicate A function that accepts up to three arguments. The some method calls\r\n     * the predicate function for each element in the array until the predicate returns a value\r\n     * which is coercible to the Boolean value true, or until the end of the array.\r\n     * @param thisArg An object to which the this keyword can refer in the predicate function.\r\n     * If thisArg is omitted, undefined is used as the this value.\r\n     */\r\n    some(predicate: (value: number, index: number, array: Float32Array) => unknown, thisArg?: any): boolean;\r\n\r\n    /**\r\n     * Sorts an array.\r\n     * @param compareFn Function used to determine the order of the elements. It is expected to return\r\n     * a negative value if first argument is less than second argument, zero if they're equal and a positive\r\n     * value otherwise. If omitted, the elements are sorted in ascending order.\r\n     * ```ts\r\n     * [11,2,22,1].sort((a, b) => a - b)\r\n     * ```\r\n     */\r\n    sort(compareFn?: (a: number, b: number) => number): this;\r\n\r\n    /**\r\n     * Gets a new Float32Array view of the ArrayBuffer store for this array, referencing the elements\r\n     * at begin, inclusive, up to end, exclusive.\r\n     * @param begin The index of the beginning of the array.\r\n     * @param end The index of the end of the array.\r\n     */\r\n    subarray(begin?: number, end?: number): Float32Array;\r\n\r\n    /**\r\n     * Converts a number to a string by using the current locale.\r\n     */\r\n    toLocaleString(): string;\r\n\r\n    /**\r\n     * Returns a string representation of an array.\r\n     */\r\n    toString(): string;\r\n\r\n    /** Returns the primitive value of the specified object. */\r\n    valueOf(): Float32Array;\r\n\r\n    [index: number]: number;\r\n}\r\n\r\ninterface Float32ArrayConstructor {\r\n    readonly prototype: Float32Array;\r\n    new(length: number): Float32Array;\r\n    new(array: ArrayLike<number> | ArrayBufferLike): Float32Array;\r\n    new(buffer: ArrayBufferLike, byteOffset?: number, length?: number): Float32Array;\r\n\r\n    /**\r\n     * The size in bytes of each element in the array.\r\n     */\r\n    readonly BYTES_PER_ELEMENT: number;\r\n\r\n    /**\r\n     * Returns a new array from a set of elements.\r\n     * @param items A set of elements to include in the new array object.\r\n     */\r\n    of(...items: number[]): Float32Array;\r\n\r\n    /**\r\n     * Creates an array from an array-like or iterable object.\r\n     * @param arrayLike An array-like or iterable object to convert to an array.\r\n     */\r\n    from(arrayLike: ArrayLike<number>): Float32Array;\r\n\r\n    /**\r\n     * Creates an array from an array-like or iterable object.\r\n     * @param arrayLike An array-like or iterable object to convert to an array.\r\n     * @param mapfn A mapping function to call on every element of the array.\r\n     * @param thisArg Value of 'this' used to invoke the mapfn.\r\n     */\r\n    from<T>(arrayLike: ArrayLike<T>, mapfn: (v: T, k: number) => number, thisArg?: any): Float32Array;\r\n\r\n\r\n}\r\ndeclare var Float32Array: Float32ArrayConstructor;\r\n\r\n/**\r\n * A typed array of 64-bit float values. The contents are initialized to 0. If the requested\r\n * number of bytes could not be allocated an exception is raised.\r\n */\r\ninterface Float64Array {\r\n    /**\r\n     * The size in bytes of each element in the array.\r\n     */\r\n    readonly BYTES_PER_ELEMENT: number;\r\n\r\n    /**\r\n     * The ArrayBuffer instance referenced by the array.\r\n     */\r\n    readonly buffer: ArrayBufferLike;\r\n\r\n    /**\r\n     * The length in bytes of the array.\r\n     */\r\n    readonly byteLength: number;\r\n\r\n    /**\r\n     * The offset in bytes of the array.\r\n     */\r\n    readonly byteOffset: number;\r\n\r\n    /**\r\n     * Returns the this object after copying a section of the array identified by start and end\r\n     * to the same array starting at position target\r\n     * @param target If target is negative, it is treated as length+target where length is the\r\n     * length of the array.\r\n     * @param start If start is negative, it is treated as length+start. If end is negative, it\r\n     * is treated as length+end.\r\n     * @param end If not specified, length of the this object is used as its default value.\r\n     */\r\n    copyWithin(target: number, start: number, end?: number): this;\r\n\r\n    /**\r\n     * Determines whether all the members of an array satisfy the specified test.\r\n     * @param predicate A function that accepts up to three arguments. The every method calls\r\n     * the predicate function for each element in the array until the predicate returns a value\r\n     * which is coercible to the Boolean value false, or until the end of the array.\r\n     * @param thisArg An object to which the this keyword can refer in the predicate function.\r\n     * If thisArg is omitted, undefined is used as the this value.\r\n     */\r\n    every(predicate: (value: number, index: number, array: Float64Array) => unknown, thisArg?: any): boolean;\r\n\r\n    /**\r\n     * Changes all array elements from `start` to `end` index to a static `value` and returns the modified array\r\n     * @param value value to fill array section with\r\n     * @param start index to start filling the array at. If start is negative, it is treated as\r\n     * length+start where length is the length of the array.\r\n     * @param end index to stop filling the array at. If end is negative, it is treated as\r\n     * length+end.\r\n     */\r\n    fill(value: number, start?: number, end?: number): this;\r\n\r\n    /**\r\n     * Returns the elements of an array that meet the condition specified in a callback function.\r\n     * @param predicate A function that accepts up to three arguments. The filter method calls\r\n     * the predicate function one time for each element in the array.\r\n     * @param thisArg An object to which the this keyword can refer in the predicate function.\r\n     * If thisArg is omitted, undefined is used as the this value.\r\n     */\r\n    filter(predicate: (value: number, index: number, array: Float64Array) => any, thisArg?: any): Float64Array;\r\n\r\n    /**\r\n     * Returns the value of the first element in the array where predicate is true, and undefined\r\n     * otherwise.\r\n     * @param predicate find calls predicate once for each element of the array, in ascending\r\n     * order, until it finds one where predicate returns true. If such an element is found, find\r\n     * immediately returns that element value. Otherwise, find returns undefined.\r\n     * @param thisArg If provided, it will be used as the this value for each invocation of\r\n     * predicate. If it is not provided, undefined is used instead.\r\n     */\r\n    find(predicate: (value: number, index: number, obj: Float64Array) => boolean, thisArg?: any): number | undefined;\r\n\r\n    /**\r\n     * Returns the index of the first element in the array where predicate is true, and -1\r\n     * otherwise.\r\n     * @param predicate find calls predicate once for each element of the array, in ascending\r\n     * order, until it finds one where predicate returns true. If such an element is found,\r\n     * findIndex immediately returns that element index. Otherwise, findIndex returns -1.\r\n     * @param thisArg If provided, it will be used as the this value for each invocation of\r\n     * predicate. If it is not provided, undefined is used instead.\r\n     */\r\n    findIndex(predicate: (value: number, index: number, obj: Float64Array) => boolean, thisArg?: any): number;\r\n\r\n    /**\r\n     * Performs the specified action for each element in an array.\r\n     * @param callbackfn  A function that accepts up to three arguments. forEach calls the\r\n     * callbackfn function one time for each element in the array.\r\n     * @param thisArg  An object to which the this keyword can refer in the callbackfn function.\r\n     * If thisArg is omitted, undefined is used as the this value.\r\n     */\r\n    forEach(callbackfn: (value: number, index: number, array: Float64Array) => void, thisArg?: any): void;\r\n\r\n    /**\r\n     * Returns the index of the first occurrence of a value in an array.\r\n     * @param searchElement The value to locate in the array.\r\n     * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\r\n     *  search starts at index 0.\r\n     */\r\n    indexOf(searchElement: number, fromIndex?: number): number;\r\n\r\n    /**\r\n     * Adds all the elements of an array separated by the specified separator string.\r\n     * @param separator A string used to separate one element of an array from the next in the\r\n     * resulting String. If omitted, the array elements are separated with a comma.\r\n     */\r\n    join(separator?: string): string;\r\n\r\n    /**\r\n     * Returns the index of the last occurrence of a value in an array.\r\n     * @param searchElement The value to locate in the array.\r\n     * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\r\n     * search starts at index 0.\r\n     */\r\n    lastIndexOf(searchElement: number, fromIndex?: number): number;\r\n\r\n    /**\r\n     * The length of the array.\r\n     */\r\n    readonly length: number;\r\n\r\n    /**\r\n     * Calls a defined callback function on each element of an array, and returns an array that\r\n     * contains the results.\r\n     * @param callbackfn A function that accepts up to three arguments. The map method calls the\r\n     * callbackfn function one time for each element in the array.\r\n     * @param thisArg An object to which the this keyword can refer in the callbackfn function.\r\n     * If thisArg is omitted, undefined is used as the this value.\r\n     */\r\n    map(callbackfn: (value: number, index: number, array: Float64Array) => number, thisArg?: any): Float64Array;\r\n\r\n    /**\r\n     * Calls the specified callback function for all the elements in an array. The return value of\r\n     * the callback function is the accumulated result, and is provided as an argument in the next\r\n     * call to the callback function.\r\n     * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\r\n     * callbackfn function one time for each element in the array.\r\n     * @param initialValue If initialValue is specified, it is used as the initial value to start\r\n     * the accumulation. The first call to the callbackfn function provides this value as an argument\r\n     * instead of an array value.\r\n     */\r\n    reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Float64Array) => number): number;\r\n    reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Float64Array) => number, initialValue: number): number;\r\n\r\n    /**\r\n     * Calls the specified callback function for all the elements in an array. The return value of\r\n     * the callback function is the accumulated result, and is provided as an argument in the next\r\n     * call to the callback function.\r\n     * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\r\n     * callbackfn function one time for each element in the array.\r\n     * @param initialValue If initialValue is specified, it is used as the initial value to start\r\n     * the accumulation. The first call to the callbackfn function provides this value as an argument\r\n     * instead of an array value.\r\n     */\r\n    reduce<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Float64Array) => U, initialValue: U): U;\r\n\r\n    /**\r\n     * Calls the specified callback function for all the elements in an array, in descending order.\r\n     * The return value of the callback function is the accumulated result, and is provided as an\r\n     * argument in the next call to the callback function.\r\n     * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\r\n     * the callbackfn function one time for each element in the array.\r\n     * @param initialValue If initialValue is specified, it is used as the initial value to start\r\n     * the accumulation. The first call to the callbackfn function provides this value as an\r\n     * argument instead of an array value.\r\n     */\r\n    reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Float64Array) => number): number;\r\n    reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Float64Array) => number, initialValue: number): number;\r\n\r\n    /**\r\n     * Calls the specified callback function for all the elements in an array, in descending order.\r\n     * The return value of the callback function is the accumulated result, and is provided as an\r\n     * argument in the next call to the callback function.\r\n     * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\r\n     * the callbackfn function one time for each element in the array.\r\n     * @param initialValue If initialValue is specified, it is used as the initial value to start\r\n     * the accumulation. The first call to the callbackfn function provides this value as an argument\r\n     * instead of an array value.\r\n     */\r\n    reduceRight<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Float64Array) => U, initialValue: U): U;\r\n\r\n    /**\r\n     * Reverses the elements in an Array.\r\n     */\r\n    reverse(): Float64Array;\r\n\r\n    /**\r\n     * Sets a value or an array of values.\r\n     * @param array A typed or untyped array of values to set.\r\n     * @param offset The index in the current array at which the values are to be written.\r\n     */\r\n    set(array: ArrayLike<number>, offset?: number): void;\r\n\r\n    /**\r\n     * Returns a section of an array.\r\n     * @param start The beginning of the specified portion of the array.\r\n     * @param end The end of the specified portion of the array. This is exclusive of the element at the index 'end'.\r\n     */\r\n    slice(start?: number, end?: number): Float64Array;\r\n\r\n    /**\r\n     * Determines whether the specified callback function returns true for any element of an array.\r\n     * @param predicate A function that accepts up to three arguments. The some method calls\r\n     * the predicate function for each element in the array until the predicate returns a value\r\n     * which is coercible to the Boolean value true, or until the end of the array.\r\n     * @param thisArg An object to which the this keyword can refer in the predicate function.\r\n     * If thisArg is omitted, undefined is used as the this value.\r\n     */\r\n    some(predicate: (value: number, index: number, array: Float64Array) => unknown, thisArg?: any): boolean;\r\n\r\n    /**\r\n     * Sorts an array.\r\n     * @param compareFn Function used to determine the order of the elements. It is expected to return\r\n     * a negative value if first argument is less than second argument, zero if they're equal and a positive\r\n     * value otherwise. If omitted, the elements are sorted in ascending order.\r\n     * ```ts\r\n     * [11,2,22,1].sort((a, b) => a - b)\r\n     * ```\r\n     */\r\n    sort(compareFn?: (a: number, b: number) => number): this;\r\n\r\n    /**\r\n     * at begin, inclusive, up to end, exclusive.\r\n     * @param begin The index of the beginning of the array.\r\n     * @param end The index of the end of the array.\r\n     */\r\n    subarray(begin?: number, end?: number): Float64Array;\r\n\r\n    toString(): string;\r\n\r\n    /** Returns the primitive value of the specified object. */\r\n    valueOf(): Float64Array;\r\n\r\n    [index: number]: number;\r\n}\r\n\r\ninterface Float64ArrayConstructor {\r\n    readonly prototype: Float64Array;\r\n    new(length: number): Float64Array;\r\n    new(array: ArrayLike<number> | ArrayBufferLike): Float64Array;\r\n    new(buffer: ArrayBufferLike, byteOffset?: number, length?: number): Float64Array;\r\n\r\n    /**\r\n     * The size in bytes of each element in the array.\r\n     */\r\n    readonly BYTES_PER_ELEMENT: number;\r\n\r\n    /**\r\n     * Returns a new array from a set of elements.\r\n     * @param items A set of elements to include in the new array object.\r\n     */\r\n    of(...items: number[]): Float64Array;\r\n\r\n    /**\r\n     * Creates an array from an array-like or iterable object.\r\n     * @param arrayLike An array-like or iterable object to convert to an array.\r\n     */\r\n    from(arrayLike: ArrayLike<number>): Float64Array;\r\n\r\n    /**\r\n     * Creates an array from an array-like or iterable object.\r\n     * @param arrayLike An array-like or iterable object to convert to an array.\r\n     * @param mapfn A mapping function to call on every element of the array.\r\n     * @param thisArg Value of 'this' used to invoke the mapfn.\r\n     */\r\n    from<T>(arrayLike: ArrayLike<T>, mapfn: (v: T, k: number) => number, thisArg?: any): Float64Array;\r\n\r\n}\r\ndeclare var Float64Array: Float64ArrayConstructor;\r\n\r\n/////////////////////////////\r\n/// ECMAScript Internationalization API\r\n/////////////////////////////\r\n\r\ndeclare namespace Intl {\r\n    interface CollatorOptions {\r\n        usage?: string | undefined;\r\n        localeMatcher?: string | undefined;\r\n        numeric?: boolean | undefined;\r\n        caseFirst?: string | undefined;\r\n        sensitivity?: string | undefined;\r\n        ignorePunctuation?: boolean | undefined;\r\n    }\r\n\r\n    interface ResolvedCollatorOptions {\r\n        locale: string;\r\n        usage: string;\r\n        sensitivity: string;\r\n        ignorePunctuation: boolean;\r\n        collation: string;\r\n        caseFirst: string;\r\n        numeric: boolean;\r\n    }\r\n\r\n    interface Collator {\r\n        compare(x: string, y: string): number;\r\n        resolvedOptions(): ResolvedCollatorOptions;\r\n    }\r\n    var Collator: {\r\n        new(locales?: string | string[], options?: CollatorOptions): Collator;\r\n        (locales?: string | string[], options?: CollatorOptions): Collator;\r\n        supportedLocalesOf(locales: string | string[], options?: CollatorOptions): string[];\r\n    };\r\n\r\n    interface NumberFormatOptions {\r\n        localeMatcher?: string | undefined;\r\n        style?: string | undefined;\r\n        currency?: string | undefined;\r\n        currencySign?: string | undefined;\r\n        useGrouping?: boolean | undefined;\r\n        minimumIntegerDigits?: number | undefined;\r\n        minimumFractionDigits?: number | undefined;\r\n        maximumFractionDigits?: number | undefined;\r\n        minimumSignificantDigits?: number | undefined;\r\n        maximumSignificantDigits?: number | undefined;\r\n    }\r\n\r\n    interface ResolvedNumberFormatOptions {\r\n        locale: string;\r\n        numberingSystem: string;\r\n        style: string;\r\n        currency?: string;\r\n        minimumIntegerDigits: number;\r\n        minimumFractionDigits: number;\r\n        maximumFractionDigits: number;\r\n        minimumSignificantDigits?: number;\r\n        maximumSignificantDigits?: number;\r\n        useGrouping: boolean;\r\n    }\r\n\r\n    interface NumberFormat {\r\n        format(value: number): string;\r\n        resolvedOptions(): ResolvedNumberFormatOptions;\r\n    }\r\n    var NumberFormat: {\r\n        new(locales?: string | string[], options?: NumberFormatOptions): NumberFormat;\r\n        (locales?: string | string[], options?: NumberFormatOptions): NumberFormat;\r\n        supportedLocalesOf(locales: string | string[], options?: NumberFormatOptions): string[];\r\n        readonly prototype: NumberFormat;\r\n    };\r\n\r\n    interface DateTimeFormatOptions {\r\n        localeMatcher?: \"best fit\" | \"lookup\" | undefined;\r\n        weekday?: \"long\" | \"short\" | \"narrow\" | undefined;\r\n        era?: \"long\" | \"short\" | \"narrow\" | undefined;\r\n        year?: \"numeric\" | \"2-digit\" | undefined;\r\n        month?: \"numeric\" | \"2-digit\" | \"long\" | \"short\" | \"narrow\" | undefined;\r\n        day?: \"numeric\" | \"2-digit\" | undefined;\r\n        hour?: \"numeric\" | \"2-digit\" | undefined;\r\n        minute?: \"numeric\" | \"2-digit\" | undefined;\r\n        second?: \"numeric\" | \"2-digit\" | undefined;\r\n        timeZoneName?: \"short\" | \"long\" | \"shortOffset\" | \"longOffset\" | \"shortGeneric\" | \"longGeneric\" | undefined;\r\n        formatMatcher?: \"best fit\" | \"basic\" | undefined;\r\n        hour12?: boolean | undefined;\r\n        timeZone?: string | undefined;\r\n    }\r\n\r\n    interface ResolvedDateTimeFormatOptions {\r\n        locale: string;\r\n        calendar: string;\r\n        numberingSystem: string;\r\n        timeZone: string;\r\n        hour12?: boolean;\r\n        weekday?: string;\r\n        era?: string;\r\n        year?: string;\r\n        month?: string;\r\n        day?: string;\r\n        hour?: string;\r\n        minute?: string;\r\n        second?: string;\r\n        timeZoneName?: string;\r\n    }\r\n\r\n    interface DateTimeFormat {\r\n        format(date?: Date | number): string;\r\n        resolvedOptions(): ResolvedDateTimeFormatOptions;\r\n    }\r\n    var DateTimeFormat: {\r\n        new(locales?: string | string[], options?: DateTimeFormatOptions): DateTimeFormat;\r\n        (locales?: string | string[], options?: DateTimeFormatOptions): DateTimeFormat;\r\n        supportedLocalesOf(locales: string | string[], options?: DateTimeFormatOptions): string[];\r\n        readonly prototype: DateTimeFormat;\r\n    };\r\n}\r\n\r\ninterface String {\r\n    /**\r\n     * Determines whether two strings are equivalent in the current or specified locale.\r\n     * @param that String to compare to target string\r\n     * @param locales A locale string or array of locale strings that contain one or more language or locale tags. If you include more than one locale string, list them in descending order of priority so that the first entry is the preferred locale. If you omit this parameter, the default locale of the JavaScript runtime is used. This parameter must conform to BCP 47 standards; see the Intl.Collator object for details.\r\n     * @param options An object that contains one or more properties that specify comparison options. see the Intl.Collator object for details.\r\n     */\r\n    localeCompare(that: string, locales?: string | string[], options?: Intl.CollatorOptions): number;\r\n}\r\n\r\ninterface Number {\r\n    /**\r\n     * Converts a number to a string by using the current or specified locale.\r\n     * @param locales A locale string or array of locale strings that contain one or more language or locale tags. If you include more than one locale string, list them in descending order of priority so that the first entry is the preferred locale. If you omit this parameter, the default locale of the JavaScript runtime is used.\r\n     * @param options An object that contains one or more properties that specify comparison options.\r\n     */\r\n    toLocaleString(locales?: string | string[], options?: Intl.NumberFormatOptions): string;\r\n}\r\n\r\ninterface Date {\r\n    /**\r\n     * Converts a date and time to a string by using the current or specified locale.\r\n     * @param locales A locale string or array of locale strings that contain one or more language or locale tags. If you include more than one locale string, list them in descending order of priority so that the first entry is the preferred locale. If you omit this parameter, the default locale of the JavaScript runtime is used.\r\n     * @param options An object that contains one or more properties that specify comparison options.\r\n     */\r\n    toLocaleString(locales?: string | string[], options?: Intl.DateTimeFormatOptions): string;\r\n    /**\r\n     * Converts a date to a string by using the current or specified locale.\r\n     * @param locales A locale string or array of locale strings that contain one or more language or locale tags. If you include more than one locale string, list them in descending order of priority so that the first entry is the preferred locale. If you omit this parameter, the default locale of the JavaScript runtime is used.\r\n     * @param options An object that contains one or more properties that specify comparison options.\r\n     */\r\n    toLocaleDateString(locales?: string | string[], options?: Intl.DateTimeFormatOptions): string;\r\n\r\n    /**\r\n     * Converts a time to a string by using the current or specified locale.\r\n     * @param locales A locale string or array of locale strings that contain one or more language or locale tags. If you include more than one locale string, list them in descending order of priority so that the first entry is the preferred locale. If you omit this parameter, the default locale of the JavaScript runtime is used.\r\n     * @param options An object that contains one or more properties that specify comparison options.\r\n     */\r\n    toLocaleTimeString(locales?: string | string[], options?: Intl.DateTimeFormatOptions): string;\r\n}\r\n"
    },
    {
      "path": "/node_modules/typescript/lib/lib.es2015.d.ts",
      "content": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n\n/// <reference no-default-lib=\"true\"/>\r\n\n\n/// <reference lib=\"es5\" />\r\n/// <reference lib=\"es2015.core\" />\r\n/// <reference lib=\"es2015.collection\" />\r\n/// <reference lib=\"es2015.iterable\" />\r\n/// <reference lib=\"es2015.generator\" />\r\n/// <reference lib=\"es2015.promise\" />\r\n/// <reference lib=\"es2015.proxy\" />\r\n/// <reference lib=\"es2015.reflect\" />\r\n/// <reference lib=\"es2015.symbol\" />\r\n/// <reference lib=\"es2015.symbol.wellknown\" />\r\n"
    },
    {
      "path": "/node_modules/typescript/lib/lib.es2016.d.ts",
      "content": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n\n/// <reference no-default-lib=\"true\"/>\r\n\n\n/// <reference lib=\"es2015\" />\r\n/// <reference lib=\"es2016.array.include\" />"
    },
    {
      "path": "/node_modules/typescript/lib/lib.es2017.d.ts",
      "content": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n\n/// <reference no-default-lib=\"true\"/>\r\n\n\n/// <reference lib=\"es2016\" />\r\n/// <reference lib=\"es2017.object\" />\r\n/// <reference lib=\"es2017.sharedmemory\" />\r\n/// <reference lib=\"es2017.string\" />\r\n/// <reference lib=\"es2017.intl\" />\r\n/// <reference lib=\"es2017.typedarrays\" />\r\n"
    },
    {
      "path": "/node_modules/typescript/lib/lib.es2018.d.ts",
      "content": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n\n/// <reference no-default-lib=\"true\"/>\r\n\n\n/// <reference lib=\"es2017\" />\r\n/// <reference lib=\"es2018.asynciterable\" />\r\n/// <reference lib=\"es2018.asyncgenerator\" />\r\n/// <reference lib=\"es2018.promise\" />\r\n/// <reference lib=\"es2018.regexp\" />\r\n/// <reference lib=\"es2018.intl\" />\r\n"
    },
    {
      "path": "/node_modules/typescript/lib/lib.es2019.d.ts",
      "content": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n\n/// <reference no-default-lib=\"true\"/>\r\n\n\n/// <reference lib=\"es2018\" />\r\n/// <reference lib=\"es2019.array\" />\r\n/// <reference lib=\"es2019.object\" />\r\n/// <reference lib=\"es2019.string\" />\r\n/// <reference lib=\"es2019.symbol\" />\r\n/// <reference lib=\"es2019.intl\" />\r\n"
    },
    {
      "path": "/node_modules/typescript/lib/lib.es2020.d.ts",
      "content": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n\n/// <reference no-default-lib=\"true\"/>\r\n\n\n/// <reference lib=\"es2019\" />\r\n/// <reference lib=\"es2020.bigint\" />\r\n/// <reference lib=\"es2020.date\" />\r\n/// <reference lib=\"es2020.number\" />\r\n/// <reference lib=\"es2020.promise\" />\r\n/// <reference lib=\"es2020.sharedmemory\" />\r\n/// <reference lib=\"es2020.string\" />\r\n/// <reference lib=\"es2020.symbol.wellknown\" />\r\n/// <reference lib=\"es2020.intl\" />\r\n"
    },
    {
      "path": "/node_modules/typescript/lib/lib.es2015.core.d.ts",
      "content": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n\n/// <reference no-default-lib=\"true\"/>\r\n\n\ninterface Array<T> {\r\n    /**\r\n     * Returns the value of the first element in the array where predicate is true, and undefined\r\n     * otherwise.\r\n     * @param predicate find calls predicate once for each element of the array, in ascending\r\n     * order, until it finds one where predicate returns true. If such an element is found, find\r\n     * immediately returns that element value. Otherwise, find returns undefined.\r\n     * @param thisArg If provided, it will be used as the this value for each invocation of\r\n     * predicate. If it is not provided, undefined is used instead.\r\n     */\r\n    find<S extends T>(predicate: (this: void, value: T, index: number, obj: T[]) => value is S, thisArg?: any): S | undefined;\r\n    find(predicate: (value: T, index: number, obj: T[]) => unknown, thisArg?: any): T | undefined;\r\n\r\n    /**\r\n     * Returns the index of the first element in the array where predicate is true, and -1\r\n     * otherwise.\r\n     * @param predicate find calls predicate once for each element of the array, in ascending\r\n     * order, until it finds one where predicate returns true. If such an element is found,\r\n     * findIndex immediately returns that element index. Otherwise, findIndex returns -1.\r\n     * @param thisArg If provided, it will be used as the this value for each invocation of\r\n     * predicate. If it is not provided, undefined is used instead.\r\n     */\r\n    findIndex(predicate: (value: T, index: number, obj: T[]) => unknown, thisArg?: any): number;\r\n\r\n    /**\r\n     * Changes all array elements from `start` to `end` index to a static `value` and returns the modified array\r\n     * @param value value to fill array section with\r\n     * @param start index to start filling the array at. If start is negative, it is treated as\r\n     * length+start where length is the length of the array.\r\n     * @param end index to stop filling the array at. If end is negative, it is treated as\r\n     * length+end.\r\n     */\r\n    fill(value: T, start?: number, end?: number): this;\r\n\r\n    /**\r\n     * Returns the this object after copying a section of the array identified by start and end\r\n     * to the same array starting at position target\r\n     * @param target If target is negative, it is treated as length+target where length is the\r\n     * length of the array.\r\n     * @param start If start is negative, it is treated as length+start. If end is negative, it\r\n     * is treated as length+end.\r\n     * @param end If not specified, length of the this object is used as its default value.\r\n     */\r\n    copyWithin(target: number, start: number, end?: number): this;\r\n}\r\n\r\ninterface ArrayConstructor {\r\n    /**\r\n     * Creates an array from an array-like object.\r\n     * @param arrayLike An array-like object to convert to an array.\r\n     */\r\n    from<T>(arrayLike: ArrayLike<T>): T[];\r\n\r\n    /**\r\n     * Creates an array from an iterable object.\r\n     * @param arrayLike An array-like object to convert to an array.\r\n     * @param mapfn A mapping function to call on every element of the array.\r\n     * @param thisArg Value of 'this' used to invoke the mapfn.\r\n     */\r\n    from<T, U>(arrayLike: ArrayLike<T>, mapfn: (v: T, k: number) => U, thisArg?: any): U[];\r\n\r\n    /**\r\n     * Returns a new array from a set of elements.\r\n     * @param items A set of elements to include in the new array object.\r\n     */\r\n    of<T>(...items: T[]): T[];\r\n}\r\n\r\ninterface DateConstructor {\r\n    new (value: number | string | Date): Date;\r\n}\r\n\r\ninterface Function {\r\n    /**\r\n     * Returns the name of the function. Function names are read-only and can not be changed.\r\n     */\r\n    readonly name: string;\r\n}\r\n\r\ninterface Math {\r\n    /**\r\n     * Returns the number of leading zero bits in the 32-bit binary representation of a number.\r\n     * @param x A numeric expression.\r\n     */\r\n    clz32(x: number): number;\r\n\r\n    /**\r\n     * Returns the result of 32-bit multiplication of two numbers.\r\n     * @param x First number\r\n     * @param y Second number\r\n     */\r\n    imul(x: number, y: number): number;\r\n\r\n    /**\r\n     * Returns the sign of the x, indicating whether x is positive, negative or zero.\r\n     * @param x The numeric expression to test\r\n     */\r\n    sign(x: number): number;\r\n\r\n    /**\r\n     * Returns the base 10 logarithm of a number.\r\n     * @param x A numeric expression.\r\n     */\r\n    log10(x: number): number;\r\n\r\n    /**\r\n     * Returns the base 2 logarithm of a number.\r\n     * @param x A numeric expression.\r\n     */\r\n    log2(x: number): number;\r\n\r\n    /**\r\n     * Returns the natural logarithm of 1 + x.\r\n     * @param x A numeric expression.\r\n     */\r\n    log1p(x: number): number;\r\n\r\n    /**\r\n     * Returns the result of (e^x - 1), which is an implementation-dependent approximation to\r\n     * subtracting 1 from the exponential function of x (e raised to the power of x, where e\r\n     * is the base of the natural logarithms).\r\n     * @param x A numeric expression.\r\n     */\r\n    expm1(x: number): number;\r\n\r\n    /**\r\n     * Returns the hyperbolic cosine of a number.\r\n     * @param x A numeric expression that contains an angle measured in radians.\r\n     */\r\n    cosh(x: number): number;\r\n\r\n    /**\r\n     * Returns the hyperbolic sine of a number.\r\n     * @param x A numeric expression that contains an angle measured in radians.\r\n     */\r\n    sinh(x: number): number;\r\n\r\n    /**\r\n     * Returns the hyperbolic tangent of a number.\r\n     * @param x A numeric expression that contains an angle measured in radians.\r\n     */\r\n    tanh(x: number): number;\r\n\r\n    /**\r\n     * Returns the inverse hyperbolic cosine of a number.\r\n     * @param x A numeric expression that contains an angle measured in radians.\r\n     */\r\n    acosh(x: number): number;\r\n\r\n    /**\r\n     * Returns the inverse hyperbolic sine of a number.\r\n     * @param x A numeric expression that contains an angle measured in radians.\r\n     */\r\n    asinh(x: number): number;\r\n\r\n    /**\r\n     * Returns the inverse hyperbolic tangent of a number.\r\n     * @param x A numeric expression that contains an angle measured in radians.\r\n     */\r\n    atanh(x: number): number;\r\n\r\n    /**\r\n     * Returns the square root of the sum of squares of its arguments.\r\n     * @param values Values to compute the square root for.\r\n     *     If no arguments are passed, the result is +0.\r\n     *     If there is only one argument, the result is the absolute value.\r\n     *     If any argument is +Infinity or -Infinity, the result is +Infinity.\r\n     *     If any argument is NaN, the result is NaN.\r\n     *     If all arguments are either +0 or −0, the result is +0.\r\n     */\r\n    hypot(...values: number[]): number;\r\n\r\n    /**\r\n     * Returns the integral part of the a numeric expression, x, removing any fractional digits.\r\n     * If x is already an integer, the result is x.\r\n     * @param x A numeric expression.\r\n     */\r\n    trunc(x: number): number;\r\n\r\n    /**\r\n     * Returns the nearest single precision float representation of a number.\r\n     * @param x A numeric expression.\r\n     */\r\n    fround(x: number): number;\r\n\r\n    /**\r\n     * Returns an implementation-dependent approximation to the cube root of number.\r\n     * @param x A numeric expression.\r\n     */\r\n    cbrt(x: number): number;\r\n}\r\n\r\ninterface NumberConstructor {\r\n    /**\r\n     * The value of Number.EPSILON is the difference between 1 and the smallest value greater than 1\r\n     * that is representable as a Number value, which is approximately:\r\n     * 2.2204460492503130808472633361816 x 10‍−‍16.\r\n     */\r\n    readonly EPSILON: number;\r\n\r\n    /**\r\n     * Returns true if passed value is finite.\r\n     * Unlike the global isFinite, Number.isFinite doesn't forcibly convert the parameter to a\r\n     * number. Only finite values of the type number, result in true.\r\n     * @param number A numeric value.\r\n     */\r\n    isFinite(number: unknown): boolean;\r\n\r\n    /**\r\n     * Returns true if the value passed is an integer, false otherwise.\r\n     * @param number A numeric value.\r\n     */\r\n    isInteger(number: unknown): boolean;\r\n\r\n    /**\r\n     * Returns a Boolean value that indicates whether a value is the reserved value NaN (not a\r\n     * number). Unlike the global isNaN(), Number.isNaN() doesn't forcefully convert the parameter\r\n     * to a number. Only values of the type number, that are also NaN, result in true.\r\n     * @param number A numeric value.\r\n     */\r\n    isNaN(number: unknown): boolean;\r\n\r\n    /**\r\n     * Returns true if the value passed is a safe integer.\r\n     * @param number A numeric value.\r\n     */\r\n    isSafeInteger(number: unknown): boolean;\r\n\r\n    /**\r\n     * The value of the largest integer n such that n and n + 1 are both exactly representable as\r\n     * a Number value.\r\n     * The value of Number.MAX_SAFE_INTEGER is 9007199254740991 2^53 − 1.\r\n     */\r\n    readonly MAX_SAFE_INTEGER: number;\r\n\r\n    /**\r\n     * The value of the smallest integer n such that n and n − 1 are both exactly representable as\r\n     * a Number value.\r\n     * The value of Number.MIN_SAFE_INTEGER is −9007199254740991 (−(2^53 − 1)).\r\n     */\r\n    readonly MIN_SAFE_INTEGER: number;\r\n\r\n    /**\r\n     * Converts a string to a floating-point number.\r\n     * @param string A string that contains a floating-point number.\r\n     */\r\n    parseFloat(string: string): number;\r\n\r\n    /**\r\n     * Converts A string to an integer.\r\n     * @param string A string to convert into a number.\r\n     * @param radix A value between 2 and 36 that specifies the base of the number in `string`.\r\n     * If this argument is not supplied, strings with a prefix of '0x' are considered hexadecimal.\r\n     * All other strings are considered decimal.\r\n     */\r\n    parseInt(string: string, radix?: number): number;\r\n}\r\n\r\ninterface ObjectConstructor {\r\n    /**\r\n     * Copy the values of all of the enumerable own properties from one or more source objects to a\r\n     * target object. Returns the target object.\r\n     * @param target The target object to copy to.\r\n     * @param source The source object from which to copy properties.\r\n     */\r\n    assign<T extends {}, U>(target: T, source: U): T & U;\r\n\r\n    /**\r\n     * Copy the values of all of the enumerable own properties from one or more source objects to a\r\n     * target object. Returns the target object.\r\n     * @param target The target object to copy to.\r\n     * @param source1 The first source object from which to copy properties.\r\n     * @param source2 The second source object from which to copy properties.\r\n     */\r\n    assign<T extends {}, U, V>(target: T, source1: U, source2: V): T & U & V;\r\n\r\n    /**\r\n     * Copy the values of all of the enumerable own properties from one or more source objects to a\r\n     * target object. Returns the target object.\r\n     * @param target The target object to copy to.\r\n     * @param source1 The first source object from which to copy properties.\r\n     * @param source2 The second source object from which to copy properties.\r\n     * @param source3 The third source object from which to copy properties.\r\n     */\r\n    assign<T extends {}, U, V, W>(target: T, source1: U, source2: V, source3: W): T & U & V & W;\r\n\r\n    /**\r\n     * Copy the values of all of the enumerable own properties from one or more source objects to a\r\n     * target object. Returns the target object.\r\n     * @param target The target object to copy to.\r\n     * @param sources One or more source objects from which to copy properties\r\n     */\r\n    assign(target: object, ...sources: any[]): any;\r\n\r\n    /**\r\n     * Returns an array of all symbol properties found directly on object o.\r\n     * @param o Object to retrieve the symbols from.\r\n     */\r\n    getOwnPropertySymbols(o: any): symbol[];\r\n\r\n    /**\r\n     * Returns the names of the enumerable string properties and methods of an object.\r\n     * @param o Object that contains the properties and methods. This can be an object that you created or an existing Document Object Model (DOM) object.\r\n     */\r\n    keys(o: {}): string[];\r\n\r\n    /**\r\n     * Returns true if the values are the same value, false otherwise.\r\n     * @param value1 The first value.\r\n     * @param value2 The second value.\r\n     */\r\n    is(value1: any, value2: any): boolean;\r\n\r\n    /**\r\n     * Sets the prototype of a specified object o to object proto or null. Returns the object o.\r\n     * @param o The object to change its prototype.\r\n     * @param proto The value of the new prototype or null.\r\n     */\r\n    setPrototypeOf(o: any, proto: object | null): any;\r\n}\r\n\r\ninterface ReadonlyArray<T> {\r\n    /**\r\n     * Returns the value of the first element in the array where predicate is true, and undefined\r\n     * otherwise.\r\n     * @param predicate find calls predicate once for each element of the array, in ascending\r\n     * order, until it finds one where predicate returns true. If such an element is found, find\r\n     * immediately returns that element value. Otherwise, find returns undefined.\r\n     * @param thisArg If provided, it will be used as the this value for each invocation of\r\n     * predicate. If it is not provided, undefined is used instead.\r\n     */\r\n    find<S extends T>(predicate: (this: void, value: T, index: number, obj: readonly T[]) => value is S, thisArg?: any): S | undefined;\r\n    find(predicate: (value: T, index: number, obj: readonly T[]) => unknown, thisArg?: any): T | undefined;\r\n\r\n    /**\r\n     * Returns the index of the first element in the array where predicate is true, and -1\r\n     * otherwise.\r\n     * @param predicate find calls predicate once for each element of the array, in ascending\r\n     * order, until it finds one where predicate returns true. If such an element is found,\r\n     * findIndex immediately returns that element index. Otherwise, findIndex returns -1.\r\n     * @param thisArg If provided, it will be used as the this value for each invocation of\r\n     * predicate. If it is not provided, undefined is used instead.\r\n     */\r\n    findIndex(predicate: (value: T, index: number, obj: readonly T[]) => unknown, thisArg?: any): number;\r\n}\r\n\r\ninterface RegExp {\r\n    /**\r\n     * Returns a string indicating the flags of the regular expression in question. This field is read-only.\r\n     * The characters in this string are sequenced and concatenated in the following order:\r\n     *\r\n     *    - \"g\" for global\r\n     *    - \"i\" for ignoreCase\r\n     *    - \"m\" for multiline\r\n     *    - \"u\" for unicode\r\n     *    - \"y\" for sticky\r\n     *\r\n     * If no flags are set, the value is the empty string.\r\n     */\r\n    readonly flags: string;\r\n\r\n    /**\r\n     * Returns a Boolean value indicating the state of the sticky flag (y) used with a regular\r\n     * expression. Default is false. Read-only.\r\n     */\r\n    readonly sticky: boolean;\r\n\r\n    /**\r\n     * Returns a Boolean value indicating the state of the Unicode flag (u) used with a regular\r\n     * expression. Default is false. Read-only.\r\n     */\r\n    readonly unicode: boolean;\r\n}\r\n\r\ninterface RegExpConstructor {\r\n    new (pattern: RegExp | string, flags?: string): RegExp;\r\n    (pattern: RegExp | string, flags?: string): RegExp;\r\n}\r\n\r\ninterface String {\r\n    /**\r\n     * Returns a nonnegative integer Number less than 1114112 (0x110000) that is the code point\r\n     * value of the UTF-16 encoded code point starting at the string element at position pos in\r\n     * the String resulting from converting this object to a String.\r\n     * If there is no element at that position, the result is undefined.\r\n     * If a valid UTF-16 surrogate pair does not begin at pos, the result is the code unit at pos.\r\n     */\r\n    codePointAt(pos: number): number | undefined;\r\n\r\n    /**\r\n     * Returns true if searchString appears as a substring of the result of converting this\r\n     * object to a String, at one or more positions that are\r\n     * greater than or equal to position; otherwise, returns false.\r\n     * @param searchString search string\r\n     * @param position If position is undefined, 0 is assumed, so as to search all of the String.\r\n     */\r\n    includes(searchString: string, position?: number): boolean;\r\n\r\n    /**\r\n     * Returns true if the sequence of elements of searchString converted to a String is the\r\n     * same as the corresponding elements of this object (converted to a String) starting at\r\n     * endPosition – length(this). Otherwise returns false.\r\n     */\r\n    endsWith(searchString: string, endPosition?: number): boolean;\r\n\r\n    /**\r\n     * Returns the String value result of normalizing the string into the normalization form\r\n     * named by form as specified in Unicode Standard Annex #15, Unicode Normalization Forms.\r\n     * @param form Applicable values: \"NFC\", \"NFD\", \"NFKC\", or \"NFKD\", If not specified default\r\n     * is \"NFC\"\r\n     */\r\n    normalize(form: \"NFC\" | \"NFD\" | \"NFKC\" | \"NFKD\"): string;\r\n\r\n    /**\r\n     * Returns the String value result of normalizing the string into the normalization form\r\n     * named by form as specified in Unicode Standard Annex #15, Unicode Normalization Forms.\r\n     * @param form Applicable values: \"NFC\", \"NFD\", \"NFKC\", or \"NFKD\", If not specified default\r\n     * is \"NFC\"\r\n     */\r\n    normalize(form?: string): string;\r\n\r\n    /**\r\n     * Returns a String value that is made from count copies appended together. If count is 0,\r\n     * the empty string is returned.\r\n     * @param count number of copies to append\r\n     */\r\n    repeat(count: number): string;\r\n\r\n    /**\r\n     * Returns true if the sequence of elements of searchString converted to a String is the\r\n     * same as the corresponding elements of this object (converted to a String) starting at\r\n     * position. Otherwise returns false.\r\n     */\r\n    startsWith(searchString: string, position?: number): boolean;\r\n\r\n    /**\r\n     * Returns an `<a>` HTML anchor element and sets the name attribute to the text value\r\n     * @deprecated A legacy feature for browser compatibility\r\n     * @param name\r\n     */\r\n    anchor(name: string): string;\r\n\r\n    /**\r\n     * Returns a `<big>` HTML element\r\n     * @deprecated A legacy feature for browser compatibility\r\n     */\r\n    big(): string;\r\n\r\n    /**\r\n     * Returns a `<blink>` HTML element\r\n     * @deprecated A legacy feature for browser compatibility\r\n     */\r\n    blink(): string;\r\n\r\n    /**\r\n     * Returns a `<b>` HTML element\r\n     * @deprecated A legacy feature for browser compatibility\r\n     */\r\n    bold(): string;\r\n\r\n    /**\r\n     * Returns a `<tt>` HTML element\r\n     * @deprecated A legacy feature for browser compatibility\r\n     */\r\n    fixed(): string;\r\n\r\n    /**\r\n     * Returns a `<font>` HTML element and sets the color attribute value\r\n     * @deprecated A legacy feature for browser compatibility\r\n     */\r\n    fontcolor(color: string): string;\r\n\r\n    /**\r\n     * Returns a `<font>` HTML element and sets the size attribute value\r\n     * @deprecated A legacy feature for browser compatibility\r\n     */\r\n    fontsize(size: number): string;\r\n\r\n    /**\r\n     * Returns a `<font>` HTML element and sets the size attribute value\r\n     * @deprecated A legacy feature for browser compatibility\r\n     */\r\n    fontsize(size: string): string;\r\n\r\n    /**\r\n     * Returns an `<i>` HTML element\r\n     * @deprecated A legacy feature for browser compatibility\r\n     */\r\n    italics(): string;\r\n\r\n    /**\r\n     * Returns an `<a>` HTML element and sets the href attribute value\r\n     * @deprecated A legacy feature for browser compatibility\r\n     */\r\n    link(url: string): string;\r\n\r\n    /**\r\n     * Returns a `<small>` HTML element\r\n     * @deprecated A legacy feature for browser compatibility\r\n     */\r\n    small(): string;\r\n\r\n    /**\r\n     * Returns a `<strike>` HTML element\r\n     * @deprecated A legacy feature for browser compatibility\r\n     */\r\n    strike(): string;\r\n\r\n    /**\r\n     * Returns a `<sub>` HTML element\r\n     * @deprecated A legacy feature for browser compatibility\r\n     */\r\n    sub(): string;\r\n\r\n    /**\r\n     * Returns a `<sup>` HTML element\r\n     * @deprecated A legacy feature for browser compatibility\r\n     */\r\n    sup(): string;\r\n}\r\n\r\ninterface StringConstructor {\r\n    /**\r\n     * Return the String value whose elements are, in order, the elements in the List elements.\r\n     * If length is 0, the empty string is returned.\r\n     */\r\n    fromCodePoint(...codePoints: number[]): string;\r\n\r\n    /**\r\n     * String.raw is usually used as a tag function of a Tagged Template String. When called as\r\n     * such, the first argument will be a well formed template call site object and the rest\r\n     * parameter will contain the substitution values. It can also be called directly, for example,\r\n     * to interleave strings and values from your own tag function, and in this case the only thing\r\n     * it needs from the first argument is the raw property.\r\n     * @param template A well-formed template string call site representation.\r\n     * @param substitutions A set of substitution values.\r\n     */\r\n    raw(template: { raw: readonly string[] | ArrayLike<string>}, ...substitutions: any[]): string;\r\n}\r\n"
    },
    {
      "path": "/node_modules/typescript/lib/lib.es2015.collection.d.ts",
      "content": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n\n/// <reference no-default-lib=\"true\"/>\r\n\n\ninterface Map<K, V> {\r\n\r\n    clear(): void;\r\n    /**\r\n     * @returns true if an element in the Map existed and has been removed, or false if the element does not exist.\r\n     */\r\n    delete(key: K): boolean;\r\n    /**\r\n     * Executes a provided function once per each key/value pair in the Map, in insertion order.\r\n     */\r\n    forEach(callbackfn: (value: V, key: K, map: Map<K, V>) => void, thisArg?: any): void;\r\n    /**\r\n     * Returns a specified element from the Map object. If the value that is associated to the provided key is an object, then you will get a reference to that object and any change made to that object will effectively modify it inside the Map.\r\n     * @returns Returns the element associated with the specified key. If no element is associated with the specified key, undefined is returned.\r\n     */\r\n    get(key: K): V | undefined;\r\n    /**\r\n     * @returns boolean indicating whether an element with the specified key exists or not.\r\n     */\r\n    has(key: K): boolean;\r\n    /**\r\n     * Adds a new element with a specified key and value to the Map. If an element with the same key already exists, the element will be updated.\r\n     */\r\n    set(key: K, value: V): this;\r\n    /**\r\n     * @returns the number of elements in the Map.\r\n     */\r\n    readonly size: number;\r\n}\r\n\r\ninterface MapConstructor {\r\n    new(): Map<any, any>;\r\n    new <K, V>(entries?: readonly (readonly [K, V])[] | null): Map<K, V>;\r\n    readonly prototype: Map<any, any>;\r\n}\r\ndeclare var Map: MapConstructor;\r\n\r\ninterface ReadonlyMap<K, V> {\r\n    forEach(callbackfn: (value: V, key: K, map: ReadonlyMap<K, V>) => void, thisArg?: any): void;\r\n    get(key: K): V | undefined;\r\n    has(key: K): boolean;\r\n    readonly size: number;\r\n}\r\n\r\ninterface WeakMap<K extends object, V> {\r\n    /**\r\n     * Removes the specified element from the WeakMap.\r\n     * @returns true if the element was successfully removed, or false if it was not present.\r\n     */\r\n    delete(key: K): boolean;\r\n    /**\r\n     * @returns a specified element.\r\n     */\r\n    get(key: K): V | undefined;\r\n    /**\r\n     * @returns a boolean indicating whether an element with the specified key exists or not.\r\n     */\r\n    has(key: K): boolean;\r\n    /**\r\n     * Adds a new element with a specified key and value.\r\n     * @param key Must be an object.\r\n     */\r\n    set(key: K, value: V): this;\r\n}\r\n\r\ninterface WeakMapConstructor {\r\n    new <K extends object = object, V = any>(entries?: readonly [K, V][] | null): WeakMap<K, V>;\r\n    readonly prototype: WeakMap<object, any>;\r\n}\r\ndeclare var WeakMap: WeakMapConstructor;\r\n\r\ninterface Set<T> {\r\n    /**\r\n     * Appends a new element with a specified value to the end of the Set.\r\n     */\r\n    add(value: T): this;\r\n\r\n    clear(): void;\r\n    /**\r\n     * Removes a specified value from the Set.\r\n     * @returns Returns true if an element in the Set existed and has been removed, or false if the element does not exist.\r\n     */\r\n    delete(value: T): boolean;\r\n    /**\r\n     * Executes a provided function once per each value in the Set object, in insertion order.\r\n     */\r\n    forEach(callbackfn: (value: T, value2: T, set: Set<T>) => void, thisArg?: any): void;\r\n    /**\r\n     * @returns a boolean indicating whether an element with the specified value exists in the Set or not.\r\n     */\r\n    has(value: T): boolean;\r\n    /**\r\n     * @returns the number of (unique) elements in Set.\r\n     */\r\n    readonly size: number;\r\n}\r\n\r\ninterface SetConstructor {\r\n    new <T = any>(values?: readonly T[] | null): Set<T>;\r\n    readonly prototype: Set<any>;\r\n}\r\ndeclare var Set: SetConstructor;\r\n\r\ninterface ReadonlySet<T> {\r\n    forEach(callbackfn: (value: T, value2: T, set: ReadonlySet<T>) => void, thisArg?: any): void;\r\n    has(value: T): boolean;\r\n    readonly size: number;\r\n}\r\n\r\ninterface WeakSet<T extends object> {\r\n    /**\r\n     * Appends a new object to the end of the WeakSet.\r\n     */\r\n    add(value: T): this;\r\n    /**\r\n     * Removes the specified element from the WeakSet.\r\n     * @returns Returns true if the element existed and has been removed, or false if the element does not exist.\r\n     */\r\n    delete(value: T): boolean;\r\n    /**\r\n     * @returns a boolean indicating whether an object exists in the WeakSet or not.\r\n     */\r\n    has(value: T): boolean;\r\n}\r\n\r\ninterface WeakSetConstructor {\r\n    new <T extends object = object>(values?: readonly T[] | null): WeakSet<T>;\r\n    readonly prototype: WeakSet<object>;\r\n}\r\ndeclare var WeakSet: WeakSetConstructor;\r\n"
    },
    {
      "path": "/node_modules/typescript/lib/lib.es2015.generator.d.ts",
      "content": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n\n/// <reference no-default-lib=\"true\"/>\r\n\n\n/// <reference lib=\"es2015.iterable\" />\r\n\r\ninterface Generator<T = unknown, TReturn = any, TNext = unknown> extends Iterator<T, TReturn, TNext> {\r\n    // NOTE: 'next' is defined using a tuple to ensure we report the correct assignability errors in all places.\r\n    next(...args: [] | [TNext]): IteratorResult<T, TReturn>;\r\n    return(value: TReturn): IteratorResult<T, TReturn>;\r\n    throw(e: any): IteratorResult<T, TReturn>;\r\n    [Symbol.iterator](): Generator<T, TReturn, TNext>;\r\n}\r\n\r\ninterface GeneratorFunction {\r\n    /**\r\n     * Creates a new Generator object.\r\n     * @param args A list of arguments the function accepts.\r\n     */\r\n    new (...args: any[]): Generator;\r\n    /**\r\n     * Creates a new Generator object.\r\n     * @param args A list of arguments the function accepts.\r\n     */\r\n    (...args: any[]): Generator;\r\n    /**\r\n     * The length of the arguments.\r\n     */\r\n    readonly length: number;\r\n    /**\r\n     * Returns the name of the function.\r\n     */\r\n    readonly name: string;\r\n    /**\r\n     * A reference to the prototype.\r\n     */\r\n    readonly prototype: Generator;\r\n}\r\n\r\ninterface GeneratorFunctionConstructor {\r\n    /**\r\n     * Creates a new Generator function.\r\n     * @param args A list of arguments the function accepts.\r\n     */\r\n    new (...args: string[]): GeneratorFunction;\r\n    /**\r\n     * Creates a new Generator function.\r\n     * @param args A list of arguments the function accepts.\r\n     */\r\n    (...args: string[]): GeneratorFunction;\r\n    /**\r\n     * The length of the arguments.\r\n     */\r\n    readonly length: number;\r\n    /**\r\n     * Returns the name of the function.\r\n     */\r\n    readonly name: string;\r\n    /**\r\n     * A reference to the prototype.\r\n     */\r\n    readonly prototype: GeneratorFunction;\r\n}\r\n"
    },
    {
      "path": "/node_modules/typescript/lib/lib.es2015.iterable.d.ts",
      "content": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n\n/// <reference no-default-lib=\"true\"/>\r\n\n\n/// <reference lib=\"es2015.symbol\" />\r\n\r\ninterface SymbolConstructor {\r\n    /**\r\n     * A method that returns the default iterator for an object. Called by the semantics of the\r\n     * for-of statement.\r\n     */\r\n    readonly iterator: unique symbol;\r\n}\r\n\r\ninterface IteratorYieldResult<TYield> {\r\n    done?: false;\r\n    value: TYield;\r\n}\r\n\r\ninterface IteratorReturnResult<TReturn> {\r\n    done: true;\r\n    value: TReturn;\r\n}\r\n\r\ntype IteratorResult<T, TReturn = any> = IteratorYieldResult<T> | IteratorReturnResult<TReturn>;\r\n\r\ninterface Iterator<T, TReturn = any, TNext = undefined> {\r\n    // NOTE: 'next' is defined using a tuple to ensure we report the correct assignability errors in all places.\r\n    next(...args: [] | [TNext]): IteratorResult<T, TReturn>;\r\n    return?(value?: TReturn): IteratorResult<T, TReturn>;\r\n    throw?(e?: any): IteratorResult<T, TReturn>;\r\n}\r\n\r\ninterface Iterable<T> {\r\n    [Symbol.iterator](): Iterator<T>;\r\n}\r\n\r\ninterface IterableIterator<T> extends Iterator<T> {\r\n    [Symbol.iterator](): IterableIterator<T>;\r\n}\r\n\r\ninterface Array<T> {\r\n    /** Iterator */\r\n    [Symbol.iterator](): IterableIterator<T>;\r\n\r\n    /**\r\n     * Returns an iterable of key, value pairs for every entry in the array\r\n     */\r\n    entries(): IterableIterator<[number, T]>;\r\n\r\n    /**\r\n     * Returns an iterable of keys in the array\r\n     */\r\n    keys(): IterableIterator<number>;\r\n\r\n    /**\r\n     * Returns an iterable of values in the array\r\n     */\r\n    values(): IterableIterator<T>;\r\n}\r\n\r\ninterface ArrayConstructor {\r\n    /**\r\n     * Creates an array from an iterable object.\r\n     * @param iterable An iterable object to convert to an array.\r\n     */\r\n    from<T>(iterable: Iterable<T> | ArrayLike<T>): T[];\r\n\r\n    /**\r\n     * Creates an array from an iterable object.\r\n     * @param iterable An iterable object to convert to an array.\r\n     * @param mapfn A mapping function to call on every element of the array.\r\n     * @param thisArg Value of 'this' used to invoke the mapfn.\r\n     */\r\n    from<T, U>(iterable: Iterable<T> | ArrayLike<T>, mapfn: (v: T, k: number) => U, thisArg?: any): U[];\r\n}\r\n\r\ninterface ReadonlyArray<T> {\r\n    /** Iterator of values in the array. */\r\n    [Symbol.iterator](): IterableIterator<T>;\r\n\r\n    /**\r\n     * Returns an iterable of key, value pairs for every entry in the array\r\n     */\r\n    entries(): IterableIterator<[number, T]>;\r\n\r\n    /**\r\n     * Returns an iterable of keys in the array\r\n     */\r\n    keys(): IterableIterator<number>;\r\n\r\n    /**\r\n     * Returns an iterable of values in the array\r\n     */\r\n    values(): IterableIterator<T>;\r\n}\r\n\r\ninterface IArguments {\r\n    /** Iterator */\r\n    [Symbol.iterator](): IterableIterator<any>;\r\n}\r\n\r\ninterface Map<K, V> {\r\n    /** Returns an iterable of entries in the map. */\r\n    [Symbol.iterator](): IterableIterator<[K, V]>;\r\n\r\n    /**\r\n     * Returns an iterable of key, value pairs for every entry in the map.\r\n     */\r\n    entries(): IterableIterator<[K, V]>;\r\n\r\n    /**\r\n     * Returns an iterable of keys in the map\r\n     */\r\n    keys(): IterableIterator<K>;\r\n\r\n    /**\r\n     * Returns an iterable of values in the map\r\n     */\r\n    values(): IterableIterator<V>;\r\n}\r\n\r\ninterface ReadonlyMap<K, V> {\r\n    /** Returns an iterable of entries in the map. */\r\n    [Symbol.iterator](): IterableIterator<[K, V]>;\r\n\r\n    /**\r\n     * Returns an iterable of key, value pairs for every entry in the map.\r\n     */\r\n    entries(): IterableIterator<[K, V]>;\r\n\r\n    /**\r\n     * Returns an iterable of keys in the map\r\n     */\r\n    keys(): IterableIterator<K>;\r\n\r\n    /**\r\n     * Returns an iterable of values in the map\r\n     */\r\n    values(): IterableIterator<V>;\r\n}\r\n\r\ninterface MapConstructor {\r\n    new(): Map<any, any>;\r\n    new <K, V>(iterable?: Iterable<readonly [K, V]> | null): Map<K, V>;\r\n}\r\n\r\ninterface WeakMap<K extends object, V> { }\r\n\r\ninterface WeakMapConstructor {\r\n    new <K extends object, V>(iterable: Iterable<readonly [K, V]>): WeakMap<K, V>;\r\n}\r\n\r\ninterface Set<T> {\r\n    /** Iterates over values in the set. */\r\n    [Symbol.iterator](): IterableIterator<T>;\r\n    /**\r\n     * Returns an iterable of [v,v] pairs for every value `v` in the set.\r\n     */\r\n    entries(): IterableIterator<[T, T]>;\r\n    /**\r\n     * Despite its name, returns an iterable of the values in the set.\r\n     */\r\n    keys(): IterableIterator<T>;\r\n\r\n    /**\r\n     * Returns an iterable of values in the set.\r\n     */\r\n    values(): IterableIterator<T>;\r\n}\r\n\r\ninterface ReadonlySet<T> {\r\n    /** Iterates over values in the set. */\r\n    [Symbol.iterator](): IterableIterator<T>;\r\n\r\n    /**\r\n     * Returns an iterable of [v,v] pairs for every value `v` in the set.\r\n     */\r\n    entries(): IterableIterator<[T, T]>;\r\n\r\n    /**\r\n     * Despite its name, returns an iterable of the values in the set.\r\n     */\r\n    keys(): IterableIterator<T>;\r\n\r\n    /**\r\n     * Returns an iterable of values in the set.\r\n     */\r\n    values(): IterableIterator<T>;\r\n}\r\n\r\ninterface SetConstructor {\r\n    new <T>(iterable?: Iterable<T> | null): Set<T>;\r\n}\r\n\r\ninterface WeakSet<T extends object> { }\r\n\r\ninterface WeakSetConstructor {\r\n    new <T extends object = object>(iterable: Iterable<T>): WeakSet<T>;\r\n}\r\n\r\ninterface Promise<T> { }\r\n\r\ninterface PromiseConstructor {\r\n    /**\r\n     * Creates a Promise that is resolved with an array of results when all of the provided Promises\r\n     * resolve, or rejected when any Promise is rejected.\r\n     * @param values An iterable of Promises.\r\n     * @returns A new Promise.\r\n     */\r\n    all<T>(values: Iterable<T | PromiseLike<T>>): Promise<Awaited<T>[]>;\r\n\r\n    /**\r\n     * Creates a Promise that is resolved or rejected when any of the provided Promises are resolved\r\n     * or rejected.\r\n     * @param values An iterable of Promises.\r\n     * @returns A new Promise.\r\n     */\r\n    race<T>(values: Iterable<T | PromiseLike<T>>): Promise<Awaited<T>>;\r\n}\r\n\r\ninterface String {\r\n    /** Iterator */\r\n    [Symbol.iterator](): IterableIterator<string>;\r\n}\r\n\r\ninterface Int8Array {\r\n    [Symbol.iterator](): IterableIterator<number>;\r\n    /**\r\n     * Returns an array of key, value pairs for every entry in the array\r\n     */\r\n    entries(): IterableIterator<[number, number]>;\r\n    /**\r\n     * Returns an list of keys in the array\r\n     */\r\n    keys(): IterableIterator<number>;\r\n    /**\r\n     * Returns an list of values in the array\r\n     */\r\n    values(): IterableIterator<number>;\r\n}\r\n\r\ninterface Int8ArrayConstructor {\r\n    new (elements: Iterable<number>): Int8Array;\r\n\r\n    /**\r\n     * Creates an array from an array-like or iterable object.\r\n     * @param arrayLike An array-like or iterable object to convert to an array.\r\n     * @param mapfn A mapping function to call on every element of the array.\r\n     * @param thisArg Value of 'this' used to invoke the mapfn.\r\n     */\r\n    from(arrayLike: Iterable<number>, mapfn?: (v: number, k: number) => number, thisArg?: any): Int8Array;\r\n}\r\n\r\ninterface Uint8Array {\r\n    [Symbol.iterator](): IterableIterator<number>;\r\n    /**\r\n     * Returns an array of key, value pairs for every entry in the array\r\n     */\r\n    entries(): IterableIterator<[number, number]>;\r\n    /**\r\n     * Returns an list of keys in the array\r\n     */\r\n    keys(): IterableIterator<number>;\r\n    /**\r\n     * Returns an list of values in the array\r\n     */\r\n    values(): IterableIterator<number>;\r\n}\r\n\r\ninterface Uint8ArrayConstructor {\r\n    new (elements: Iterable<number>): Uint8Array;\r\n\r\n    /**\r\n     * Creates an array from an array-like or iterable object.\r\n     * @param arrayLike An array-like or iterable object to convert to an array.\r\n     * @param mapfn A mapping function to call on every element of the array.\r\n     * @param thisArg Value of 'this' used to invoke the mapfn.\r\n     */\r\n    from(arrayLike: Iterable<number>, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint8Array;\r\n}\r\n\r\ninterface Uint8ClampedArray {\r\n    [Symbol.iterator](): IterableIterator<number>;\r\n    /**\r\n     * Returns an array of key, value pairs for every entry in the array\r\n     */\r\n    entries(): IterableIterator<[number, number]>;\r\n\r\n    /**\r\n     * Returns an list of keys in the array\r\n     */\r\n    keys(): IterableIterator<number>;\r\n\r\n    /**\r\n     * Returns an list of values in the array\r\n     */\r\n    values(): IterableIterator<number>;\r\n}\r\n\r\ninterface Uint8ClampedArrayConstructor {\r\n    new (elements: Iterable<number>): Uint8ClampedArray;\r\n\r\n\r\n    /**\r\n     * Creates an array from an array-like or iterable object.\r\n     * @param arrayLike An array-like or iterable object to convert to an array.\r\n     * @param mapfn A mapping function to call on every element of the array.\r\n     * @param thisArg Value of 'this' used to invoke the mapfn.\r\n     */\r\n    from(arrayLike: Iterable<number>, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint8ClampedArray;\r\n}\r\n\r\ninterface Int16Array {\r\n    [Symbol.iterator](): IterableIterator<number>;\r\n    /**\r\n     * Returns an array of key, value pairs for every entry in the array\r\n     */\r\n    entries(): IterableIterator<[number, number]>;\r\n\r\n    /**\r\n     * Returns an list of keys in the array\r\n     */\r\n    keys(): IterableIterator<number>;\r\n\r\n    /**\r\n     * Returns an list of values in the array\r\n     */\r\n    values(): IterableIterator<number>;\r\n}\r\n\r\ninterface Int16ArrayConstructor {\r\n    new (elements: Iterable<number>): Int16Array;\r\n\r\n    /**\r\n     * Creates an array from an array-like or iterable object.\r\n     * @param arrayLike An array-like or iterable object to convert to an array.\r\n     * @param mapfn A mapping function to call on every element of the array.\r\n     * @param thisArg Value of 'this' used to invoke the mapfn.\r\n     */\r\n    from(arrayLike: Iterable<number>, mapfn?: (v: number, k: number) => number, thisArg?: any): Int16Array;\r\n}\r\n\r\ninterface Uint16Array {\r\n    [Symbol.iterator](): IterableIterator<number>;\r\n    /**\r\n     * Returns an array of key, value pairs for every entry in the array\r\n     */\r\n    entries(): IterableIterator<[number, number]>;\r\n    /**\r\n     * Returns an list of keys in the array\r\n     */\r\n    keys(): IterableIterator<number>;\r\n    /**\r\n     * Returns an list of values in the array\r\n     */\r\n    values(): IterableIterator<number>;\r\n}\r\n\r\ninterface Uint16ArrayConstructor {\r\n    new (elements: Iterable<number>): Uint16Array;\r\n\r\n    /**\r\n     * Creates an array from an array-like or iterable object.\r\n     * @param arrayLike An array-like or iterable object to convert to an array.\r\n     * @param mapfn A mapping function to call on every element of the array.\r\n     * @param thisArg Value of 'this' used to invoke the mapfn.\r\n     */\r\n    from(arrayLike: Iterable<number>, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint16Array;\r\n}\r\n\r\ninterface Int32Array {\r\n    [Symbol.iterator](): IterableIterator<number>;\r\n    /**\r\n     * Returns an array of key, value pairs for every entry in the array\r\n     */\r\n    entries(): IterableIterator<[number, number]>;\r\n    /**\r\n     * Returns an list of keys in the array\r\n     */\r\n    keys(): IterableIterator<number>;\r\n    /**\r\n     * Returns an list of values in the array\r\n     */\r\n    values(): IterableIterator<number>;\r\n}\r\n\r\ninterface Int32ArrayConstructor {\r\n    new (elements: Iterable<number>): Int32Array;\r\n\r\n    /**\r\n     * Creates an array from an array-like or iterable object.\r\n     * @param arrayLike An array-like or iterable object to convert to an array.\r\n     * @param mapfn A mapping function to call on every element of the array.\r\n     * @param thisArg Value of 'this' used to invoke the mapfn.\r\n     */\r\n    from(arrayLike: Iterable<number>, mapfn?: (v: number, k: number) => number, thisArg?: any): Int32Array;\r\n}\r\n\r\ninterface Uint32Array {\r\n    [Symbol.iterator](): IterableIterator<number>;\r\n    /**\r\n     * Returns an array of key, value pairs for every entry in the array\r\n     */\r\n    entries(): IterableIterator<[number, number]>;\r\n    /**\r\n     * Returns an list of keys in the array\r\n     */\r\n    keys(): IterableIterator<number>;\r\n    /**\r\n     * Returns an list of values in the array\r\n     */\r\n    values(): IterableIterator<number>;\r\n}\r\n\r\ninterface Uint32ArrayConstructor {\r\n    new (elements: Iterable<number>): Uint32Array;\r\n\r\n    /**\r\n     * Creates an array from an array-like or iterable object.\r\n     * @param arrayLike An array-like or iterable object to convert to an array.\r\n     * @param mapfn A mapping function to call on every element of the array.\r\n     * @param thisArg Value of 'this' used to invoke the mapfn.\r\n     */\r\n    from(arrayLike: Iterable<number>, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint32Array;\r\n}\r\n\r\ninterface Float32Array {\r\n    [Symbol.iterator](): IterableIterator<number>;\r\n    /**\r\n     * Returns an array of key, value pairs for every entry in the array\r\n     */\r\n    entries(): IterableIterator<[number, number]>;\r\n    /**\r\n     * Returns an list of keys in the array\r\n     */\r\n    keys(): IterableIterator<number>;\r\n    /**\r\n     * Returns an list of values in the array\r\n     */\r\n    values(): IterableIterator<number>;\r\n}\r\n\r\ninterface Float32ArrayConstructor {\r\n    new (elements: Iterable<number>): Float32Array;\r\n\r\n    /**\r\n     * Creates an array from an array-like or iterable object.\r\n     * @param arrayLike An array-like or iterable object to convert to an array.\r\n     * @param mapfn A mapping function to call on every element of the array.\r\n     * @param thisArg Value of 'this' used to invoke the mapfn.\r\n     */\r\n    from(arrayLike: Iterable<number>, mapfn?: (v: number, k: number) => number, thisArg?: any): Float32Array;\r\n}\r\n\r\ninterface Float64Array {\r\n    [Symbol.iterator](): IterableIterator<number>;\r\n    /**\r\n     * Returns an array of key, value pairs for every entry in the array\r\n     */\r\n    entries(): IterableIterator<[number, number]>;\r\n    /**\r\n     * Returns an list of keys in the array\r\n     */\r\n    keys(): IterableIterator<number>;\r\n    /**\r\n     * Returns an list of values in the array\r\n     */\r\n    values(): IterableIterator<number>;\r\n}\r\n\r\ninterface Float64ArrayConstructor {\r\n    new (elements: Iterable<number>): Float64Array;\r\n\r\n    /**\r\n     * Creates an array from an array-like or iterable object.\r\n     * @param arrayLike An array-like or iterable object to convert to an array.\r\n     * @param mapfn A mapping function to call on every element of the array.\r\n     * @param thisArg Value of 'this' used to invoke the mapfn.\r\n     */\r\n    from(arrayLike: Iterable<number>, mapfn?: (v: number, k: number) => number, thisArg?: any): Float64Array;\r\n}\r\n"
    },
    {
      "path": "/node_modules/typescript/lib/lib.es2015.promise.d.ts",
      "content": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n\n/// <reference no-default-lib=\"true\"/>\r\n\n\ninterface PromiseConstructor {\r\n    /**\r\n     * A reference to the prototype.\r\n     */\r\n    readonly prototype: Promise<any>;\r\n\r\n    /**\r\n     * Creates a new Promise.\r\n     * @param executor A callback used to initialize the promise. This callback is passed two arguments:\r\n     * a resolve callback used to resolve the promise with a value or the result of another promise,\r\n     * and a reject callback used to reject the promise with a provided reason or error.\r\n     */\r\n    new <T>(executor: (resolve: (value: T | PromiseLike<T>) => void, reject: (reason?: any) => void) => void): Promise<T>;\r\n\r\n    /**\r\n     * Creates a Promise that is resolved with an array of results when all of the provided Promises\r\n     * resolve, or rejected when any Promise is rejected.\r\n     * @param values An array of Promises.\r\n     * @returns A new Promise.\r\n     */\r\n    all<T extends readonly unknown[] | []>(values: T): Promise<{ -readonly [P in keyof T]: Awaited<T[P]> }>;\r\n\r\n    // see: lib.es2015.iterable.d.ts\r\n    // all<T>(values: Iterable<T | PromiseLike<T>>): Promise<Awaited<T>[]>;\r\n\r\n    /**\r\n     * Creates a Promise that is resolved or rejected when any of the provided Promises are resolved\r\n     * or rejected.\r\n     * @param values An array of Promises.\r\n     * @returns A new Promise.\r\n     */\r\n    race<T extends readonly unknown[] | []>(values: T): Promise<Awaited<T[number]>>;\r\n\r\n    // see: lib.es2015.iterable.d.ts\r\n    // race<T>(values: Iterable<T | PromiseLike<T>>): Promise<Awaited<T>>;\r\n\r\n    /**\r\n     * Creates a new rejected promise for the provided reason.\r\n     * @param reason The reason the promise was rejected.\r\n     * @returns A new rejected Promise.\r\n     */\r\n    reject<T = never>(reason?: any): Promise<T>;\r\n\r\n    /**\r\n     * Creates a new resolved promise.\r\n     * @returns A resolved promise.\r\n     */\r\n    resolve(): Promise<void>;\r\n    /**\r\n     * Creates a new resolved promise for the provided value.\r\n     * @param value A promise.\r\n     * @returns A promise whose internal state matches the provided promise.\r\n     */\r\n    resolve<T>(value: T): Promise<Awaited<T>>;\r\n    /**\r\n     * Creates a new resolved promise for the provided value.\r\n     * @param value A promise.\r\n     * @returns A promise whose internal state matches the provided promise.\r\n     */\r\n    resolve<T>(value: T | PromiseLike<T>): Promise<Awaited<T>>;\r\n}\r\n\r\ndeclare var Promise: PromiseConstructor;\r\n"
    },
    {
      "path": "/node_modules/typescript/lib/lib.es2015.proxy.d.ts",
      "content": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n\n/// <reference no-default-lib=\"true\"/>\r\n\n\ninterface ProxyHandler<T extends object> {\r\n    /**\r\n     * A trap method for a function call.\r\n     * @param target The original callable object which is being proxied.\r\n     */\r\n    apply?(target: T, thisArg: any, argArray: any[]): any;\r\n\r\n    /**\r\n     * A trap for the `new` operator.\r\n     * @param target The original object which is being proxied.\r\n     * @param newTarget The constructor that was originally called.\r\n     */\r\n    construct?(target: T, argArray: any[], newTarget: Function): object;\r\n\r\n    /**\r\n     * A trap for `Object.defineProperty()`.\r\n     * @param target The original object which is being proxied.\r\n     * @returns A `Boolean` indicating whether or not the property has been defined.\r\n     */\r\n    defineProperty?(target: T, property: string | symbol, attributes: PropertyDescriptor): boolean;\r\n\r\n    /**\r\n     * A trap for the `delete` operator.\r\n     * @param target The original object which is being proxied.\r\n     * @param p The name or `Symbol` of the property to delete.\r\n     * @returns A `Boolean` indicating whether or not the property was deleted.\r\n     */\r\n    deleteProperty?(target: T, p: string | symbol): boolean;\r\n\r\n    /**\r\n     * A trap for getting a property value.\r\n     * @param target The original object which is being proxied.\r\n     * @param p The name or `Symbol` of the property to get.\r\n     * @param receiver The proxy or an object that inherits from the proxy.\r\n     */\r\n    get?(target: T, p: string | symbol, receiver: any): any;\r\n\r\n    /**\r\n     * A trap for `Object.getOwnPropertyDescriptor()`.\r\n     * @param target The original object which is being proxied.\r\n     * @param p The name of the property whose description should be retrieved.\r\n     */\r\n    getOwnPropertyDescriptor?(target: T, p: string | symbol): PropertyDescriptor | undefined;\r\n\r\n    /**\r\n     * A trap for the `[[GetPrototypeOf]]` internal method.\r\n     * @param target The original object which is being proxied.\r\n     */\r\n    getPrototypeOf?(target: T): object | null;\r\n\r\n    /**\r\n     * A trap for the `in` operator.\r\n     * @param target The original object which is being proxied.\r\n     * @param p The name or `Symbol` of the property to check for existence.\r\n     */\r\n    has?(target: T, p: string | symbol): boolean;\r\n\r\n    /**\r\n     * A trap for `Object.isExtensible()`.\r\n     * @param target The original object which is being proxied.\r\n     */\r\n    isExtensible?(target: T): boolean;\r\n\r\n    /**\r\n     * A trap for `Reflect.ownKeys()`.\r\n     * @param target The original object which is being proxied.\r\n     */\r\n    ownKeys?(target: T): ArrayLike<string | symbol>;\r\n\r\n    /**\r\n     * A trap for `Object.preventExtensions()`.\r\n     * @param target The original object which is being proxied.\r\n     */\r\n    preventExtensions?(target: T): boolean;\r\n\r\n    /**\r\n     * A trap for setting a property value.\r\n     * @param target The original object which is being proxied.\r\n     * @param p The name or `Symbol` of the property to set.\r\n     * @param receiver The object to which the assignment was originally directed.\r\n     * @returns A `Boolean` indicating whether or not the property was set.\r\n     */\r\n    set?(target: T, p: string | symbol, newValue: any, receiver: any): boolean;\r\n\r\n    /**\r\n     * A trap for `Object.setPrototypeOf()`.\r\n     * @param target The original object which is being proxied.\r\n     * @param newPrototype The object's new prototype or `null`.\r\n     */\r\n    setPrototypeOf?(target: T, v: object | null): boolean;\r\n}\r\n\r\ninterface ProxyConstructor {\r\n    /**\r\n     * Creates a revocable Proxy object.\r\n     * @param target A target object to wrap with Proxy.\r\n     * @param handler An object whose properties define the behavior of Proxy when an operation is attempted on it.\r\n     */\r\n    revocable<T extends object>(target: T, handler: ProxyHandler<T>): { proxy: T; revoke: () => void; };\r\n\r\n    /**\r\n     * Creates a Proxy object. The Proxy object allows you to create an object that can be used in place of the\r\n     * original object, but which may redefine fundamental Object operations like getting, setting, and defining\r\n     * properties. Proxy objects are commonly used to log property accesses, validate, format, or sanitize inputs.\r\n     * @param target A target object to wrap with Proxy.\r\n     * @param handler An object whose properties define the behavior of Proxy when an operation is attempted on it.\r\n     */\r\n    new <T extends object>(target: T, handler: ProxyHandler<T>): T;\r\n}\r\ndeclare var Proxy: ProxyConstructor;\r\n"
    },
    {
      "path": "/node_modules/typescript/lib/lib.es2015.reflect.d.ts",
      "content": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n\n/// <reference no-default-lib=\"true\"/>\r\n\n\ndeclare namespace Reflect {\r\n    /**\r\n     * Calls the function with the specified object as the this value\r\n     * and the elements of specified array as the arguments.\r\n     * @param target The function to call.\r\n     * @param thisArgument The object to be used as the this object.\r\n     * @param argumentsList An array of argument values to be passed to the function.\r\n     */\r\n    function apply<T, A extends readonly any[], R>(\r\n        target: (this: T, ...args: A) => R,\r\n        thisArgument: T,\r\n        argumentsList: Readonly<A>,\r\n    ): R;\r\n    function apply(target: Function, thisArgument: any, argumentsList: ArrayLike<any>): any;\r\n\r\n    /**\r\n     * Constructs the target with the elements of specified array as the arguments\r\n     * and the specified constructor as the `new.target` value.\r\n     * @param target The constructor to invoke.\r\n     * @param argumentsList An array of argument values to be passed to the constructor.\r\n     * @param newTarget The constructor to be used as the `new.target` object.\r\n     */\r\n    function construct<A extends readonly any[], R>(\r\n        target: new (...args: A) => R,\r\n        argumentsList: Readonly<A>,\r\n        newTarget?: new (...args: any) => any,\r\n    ): R;\r\n    function construct(target: Function, argumentsList: ArrayLike<any>, newTarget?: Function): any;\r\n\r\n    /**\r\n     * Adds a property to an object, or modifies attributes of an existing property.\r\n     * @param target Object on which to add or modify the property. This can be a native JavaScript object\r\n     *        (that is, a user-defined object or a built in object) or a DOM object.\r\n     * @param propertyKey The property name.\r\n     * @param attributes Descriptor for the property. It can be for a data property or an accessor property.\r\n     */\r\n    function defineProperty(target: object, propertyKey: PropertyKey, attributes: PropertyDescriptor & ThisType<any>): boolean;\r\n\r\n    /**\r\n     * Removes a property from an object, equivalent to `delete target[propertyKey]`,\r\n     * except it won't throw if `target[propertyKey]` is non-configurable.\r\n     * @param target Object from which to remove the own property.\r\n     * @param propertyKey The property name.\r\n     */\r\n    function deleteProperty(target: object, propertyKey: PropertyKey): boolean;\r\n\r\n    /**\r\n     * Gets the property of target, equivalent to `target[propertyKey]` when `receiver === target`.\r\n     * @param target Object that contains the property on itself or in its prototype chain.\r\n     * @param propertyKey The property name.\r\n     * @param receiver The reference to use as the `this` value in the getter function,\r\n     *        if `target[propertyKey]` is an accessor property.\r\n     */\r\n    function get<T extends object, P extends PropertyKey>(\r\n        target: T,\r\n        propertyKey: P,\r\n        receiver?: unknown,\r\n    ): P extends keyof T ? T[P] : any;\r\n\r\n    /**\r\n     * Gets the own property descriptor of the specified object.\r\n     * An own property descriptor is one that is defined directly on the object and is not inherited from the object's prototype.\r\n     * @param target Object that contains the property.\r\n     * @param propertyKey The property name.\r\n     */\r\n    function getOwnPropertyDescriptor<T extends object, P extends PropertyKey>(\r\n        target: T,\r\n        propertyKey: P,\r\n    ): TypedPropertyDescriptor<P extends keyof T ? T[P] : any> | undefined;\r\n\r\n    /**\r\n     * Returns the prototype of an object.\r\n     * @param target The object that references the prototype.\r\n     */\r\n    function getPrototypeOf(target: object): object | null;\r\n\r\n    /**\r\n     * Equivalent to `propertyKey in target`.\r\n     * @param target Object that contains the property on itself or in its prototype chain.\r\n     * @param propertyKey Name of the property.\r\n     */\r\n    function has(target: object, propertyKey: PropertyKey): boolean;\r\n\r\n    /**\r\n     * Returns a value that indicates whether new properties can be added to an object.\r\n     * @param target Object to test.\r\n     */\r\n    function isExtensible(target: object): boolean;\r\n\r\n    /**\r\n     * Returns the string and symbol keys of the own properties of an object. The own properties of an object\r\n     * are those that are defined directly on that object, and are not inherited from the object's prototype.\r\n     * @param target Object that contains the own properties.\r\n     */\r\n    function ownKeys(target: object): (string | symbol)[];\r\n\r\n    /**\r\n     * Prevents the addition of new properties to an object.\r\n     * @param target Object to make non-extensible.\r\n     * @return Whether the object has been made non-extensible.\r\n     */\r\n    function preventExtensions(target: object): boolean;\r\n\r\n    /**\r\n     * Sets the property of target, equivalent to `target[propertyKey] = value` when `receiver === target`.\r\n     * @param target Object that contains the property on itself or in its prototype chain.\r\n     * @param propertyKey Name of the property.\r\n     * @param receiver The reference to use as the `this` value in the setter function,\r\n     *        if `target[propertyKey]` is an accessor property.\r\n     */\r\n    function set<T extends object, P extends PropertyKey>(\r\n        target: T,\r\n        propertyKey: P,\r\n        value: P extends keyof T ? T[P] : any,\r\n        receiver?: any,\r\n    ): boolean;\r\n    function set(target: object, propertyKey: PropertyKey, value: any, receiver?: any): boolean;\r\n\r\n    /**\r\n     * Sets the prototype of a specified object o to object proto or null.\r\n     * @param target The object to change its prototype.\r\n     * @param proto The value of the new prototype or null.\r\n     * @return Whether setting the prototype was successful.\r\n     */\r\n    function setPrototypeOf(target: object, proto: object | null): boolean;\r\n}\r\n"
    },
    {
      "path": "/node_modules/typescript/lib/lib.es2015.symbol.d.ts",
      "content": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n\n/// <reference no-default-lib=\"true\"/>\r\n\n\ninterface SymbolConstructor {\r\n    /**\r\n     * A reference to the prototype.\r\n     */\r\n    readonly prototype: Symbol;\r\n\r\n    /**\r\n     * Returns a new unique Symbol value.\r\n     * @param  description Description of the new Symbol object.\r\n     */\r\n    (description?: string | number): symbol;\r\n\r\n    /**\r\n     * Returns a Symbol object from the global symbol registry matching the given key if found.\r\n     * Otherwise, returns a new symbol with this key.\r\n     * @param key key to search for.\r\n     */\r\n    for(key: string): symbol;\r\n\r\n    /**\r\n     * Returns a key from the global symbol registry matching the given Symbol if found.\r\n     * Otherwise, returns a undefined.\r\n     * @param sym Symbol to find the key for.\r\n     */\r\n    keyFor(sym: symbol): string | undefined;\r\n}\r\n\r\ndeclare var Symbol: SymbolConstructor;"
    },
    {
      "path": "/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts",
      "content": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n\n/// <reference no-default-lib=\"true\"/>\r\n\n\n/// <reference lib=\"es2015.symbol\" />\r\n\r\ninterface SymbolConstructor {\r\n    /**\r\n     * A method that determines if a constructor object recognizes an object as one of the\r\n     * constructor’s instances. Called by the semantics of the instanceof operator.\r\n     */\r\n    readonly hasInstance: unique symbol;\r\n\r\n    /**\r\n     * A Boolean value that if true indicates that an object should flatten to its array elements\r\n     * by Array.prototype.concat.\r\n     */\r\n    readonly isConcatSpreadable: unique symbol;\r\n\r\n    /**\r\n     * A regular expression method that matches the regular expression against a string. Called\r\n     * by the String.prototype.match method.\r\n     */\r\n    readonly match: unique symbol;\r\n\r\n    /**\r\n     * A regular expression method that replaces matched substrings of a string. Called by the\r\n     * String.prototype.replace method.\r\n     */\r\n    readonly replace: unique symbol;\r\n\r\n    /**\r\n     * A regular expression method that returns the index within a string that matches the\r\n     * regular expression. Called by the String.prototype.search method.\r\n     */\r\n    readonly search: unique symbol;\r\n\r\n    /**\r\n     * A function valued property that is the constructor function that is used to create\r\n     * derived objects.\r\n     */\r\n    readonly species: unique symbol;\r\n\r\n    /**\r\n     * A regular expression method that splits a string at the indices that match the regular\r\n     * expression. Called by the String.prototype.split method.\r\n     */\r\n    readonly split: unique symbol;\r\n\r\n    /**\r\n     * A method that converts an object to a corresponding primitive value.\r\n     * Called by the ToPrimitive abstract operation.\r\n     */\r\n    readonly toPrimitive: unique symbol;\r\n\r\n    /**\r\n     * A String value that is used in the creation of the default string description of an object.\r\n     * Called by the built-in method Object.prototype.toString.\r\n     */\r\n    readonly toStringTag: unique symbol;\r\n\r\n    /**\r\n     * An Object whose own property names are property names that are excluded from the 'with'\r\n     * environment bindings of the associated objects.\r\n     */\r\n    readonly unscopables: unique symbol;\r\n}\r\n\r\ninterface Symbol {\r\n    /**\r\n     * Converts a Symbol object to a symbol.\r\n     */\r\n    [Symbol.toPrimitive](hint: string): symbol;\r\n\r\n    readonly [Symbol.toStringTag]: string;\r\n}\r\n\r\ninterface Array<T> {\r\n    /**\r\n     * Returns an object whose properties have the value 'true'\r\n     * when they will be absent when used in a 'with' statement.\r\n     */\r\n    [Symbol.unscopables](): {\r\n        copyWithin: boolean;\r\n        entries: boolean;\r\n        fill: boolean;\r\n        find: boolean;\r\n        findIndex: boolean;\r\n        keys: boolean;\r\n        values: boolean;\r\n    };\r\n}\r\n\r\ninterface Date {\r\n    /**\r\n     * Converts a Date object to a string.\r\n     */\r\n    [Symbol.toPrimitive](hint: \"default\"): string;\r\n    /**\r\n     * Converts a Date object to a string.\r\n     */\r\n    [Symbol.toPrimitive](hint: \"string\"): string;\r\n    /**\r\n     * Converts a Date object to a number.\r\n     */\r\n    [Symbol.toPrimitive](hint: \"number\"): number;\r\n    /**\r\n     * Converts a Date object to a string or number.\r\n     *\r\n     * @param hint The strings \"number\", \"string\", or \"default\" to specify what primitive to return.\r\n     *\r\n     * @throws {TypeError} If 'hint' was given something other than \"number\", \"string\", or \"default\".\r\n     * @returns A number if 'hint' was \"number\", a string if 'hint' was \"string\" or \"default\".\r\n     */\r\n    [Symbol.toPrimitive](hint: string): string | number;\r\n}\r\n\r\ninterface Map<K, V> {\r\n    readonly [Symbol.toStringTag]: string;\r\n}\r\n\r\ninterface WeakMap<K extends object, V> {\r\n    readonly [Symbol.toStringTag]: string;\r\n}\r\n\r\ninterface Set<T> {\r\n    readonly [Symbol.toStringTag]: string;\r\n}\r\n\r\ninterface WeakSet<T extends object> {\r\n    readonly [Symbol.toStringTag]: string;\r\n}\r\n\r\ninterface JSON {\r\n    readonly [Symbol.toStringTag]: string;\r\n}\r\n\r\ninterface Function {\r\n    /**\r\n     * Determines whether the given value inherits from this function if this function was used\r\n     * as a constructor function.\r\n     *\r\n     * A constructor function can control which objects are recognized as its instances by\r\n     * 'instanceof' by overriding this method.\r\n     */\r\n    [Symbol.hasInstance](value: any): boolean;\r\n}\r\n\r\ninterface GeneratorFunction {\r\n    readonly [Symbol.toStringTag]: string;\r\n}\r\n\r\ninterface Math {\r\n    readonly [Symbol.toStringTag]: string;\r\n}\r\n\r\ninterface Promise<T> {\r\n    readonly [Symbol.toStringTag]: string;\r\n}\r\n\r\ninterface PromiseConstructor {\r\n    readonly [Symbol.species]: PromiseConstructor;\r\n}\r\n\r\ninterface RegExp {\r\n    /**\r\n     * Matches a string with this regular expression, and returns an array containing the results of\r\n     * that search.\r\n     * @param string A string to search within.\r\n     */\r\n    [Symbol.match](string: string): RegExpMatchArray | null;\r\n\r\n    /**\r\n     * Replaces text in a string, using this regular expression.\r\n     * @param string A String object or string literal whose contents matching against\r\n     *               this regular expression will be replaced\r\n     * @param replaceValue A String object or string literal containing the text to replace for every\r\n     *                     successful match of this regular expression.\r\n     */\r\n    [Symbol.replace](string: string, replaceValue: string): string;\r\n\r\n    /**\r\n     * Replaces text in a string, using this regular expression.\r\n     * @param string A String object or string literal whose contents matching against\r\n     *               this regular expression will be replaced\r\n     * @param replacer A function that returns the replacement text.\r\n     */\r\n    [Symbol.replace](string: string, replacer: (substring: string, ...args: any[]) => string): string;\r\n\r\n    /**\r\n     * Finds the position beginning first substring match in a regular expression search\r\n     * using this regular expression.\r\n     *\r\n     * @param string The string to search within.\r\n     */\r\n    [Symbol.search](string: string): number;\r\n\r\n    /**\r\n     * Returns an array of substrings that were delimited by strings in the original input that\r\n     * match against this regular expression.\r\n     *\r\n     * If the regular expression contains capturing parentheses, then each time this\r\n     * regular expression matches, the results (including any undefined results) of the\r\n     * capturing parentheses are spliced.\r\n     *\r\n     * @param string string value to split\r\n     * @param limit if not undefined, the output array is truncated so that it contains no more\r\n     * than 'limit' elements.\r\n     */\r\n    [Symbol.split](string: string, limit?: number): string[];\r\n}\r\n\r\ninterface RegExpConstructor {\r\n    readonly [Symbol.species]: RegExpConstructor;\r\n}\r\n\r\ninterface String {\r\n    /**\r\n     * Matches a string or an object that supports being matched against, and returns an array\r\n     * containing the results of that search, or null if no matches are found.\r\n     * @param matcher An object that supports being matched against.\r\n     */\r\n    match(matcher: { [Symbol.match](string: string): RegExpMatchArray | null; }): RegExpMatchArray | null;\r\n\r\n    /**\r\n     * Passes a string and {@linkcode replaceValue} to the `[Symbol.replace]` method on {@linkcode searchValue}. This method is expected to implement its own replacement algorithm.\r\n     * @param searchValue An object that supports searching for and replacing matches within a string.\r\n     * @param replaceValue The replacement text.\r\n     */\r\n    replace(searchValue: { [Symbol.replace](string: string, replaceValue: string): string; }, replaceValue: string): string;\r\n\r\n    /**\r\n     * Replaces text in a string, using an object that supports replacement within a string.\r\n     * @param searchValue A object can search for and replace matches within a string.\r\n     * @param replacer A function that returns the replacement text.\r\n     */\r\n    replace(searchValue: { [Symbol.replace](string: string, replacer: (substring: string, ...args: any[]) => string): string; }, replacer: (substring: string, ...args: any[]) => string): string;\r\n\r\n    /**\r\n     * Finds the first substring match in a regular expression search.\r\n     * @param searcher An object which supports searching within a string.\r\n     */\r\n    search(searcher: { [Symbol.search](string: string): number; }): number;\r\n\r\n    /**\r\n     * Split a string into substrings using the specified separator and return them as an array.\r\n     * @param splitter An object that can split a string.\r\n     * @param limit A value used to limit the number of elements returned in the array.\r\n     */\r\n    split(splitter: { [Symbol.split](string: string, limit?: number): string[]; }, limit?: number): string[];\r\n}\r\n\r\ninterface ArrayBuffer {\r\n    readonly [Symbol.toStringTag]: string;\r\n}\r\n\r\ninterface DataView {\r\n    readonly [Symbol.toStringTag]: string;\r\n}\r\n\r\ninterface Int8Array {\r\n    readonly [Symbol.toStringTag]: \"Int8Array\";\r\n}\r\n\r\ninterface Uint8Array {\r\n    readonly [Symbol.toStringTag]: \"Uint8Array\";\r\n}\r\n\r\ninterface Uint8ClampedArray {\r\n    readonly [Symbol.toStringTag]: \"Uint8ClampedArray\";\r\n}\r\n\r\ninterface Int16Array {\r\n    readonly [Symbol.toStringTag]: \"Int16Array\";\r\n}\r\n\r\ninterface Uint16Array {\r\n    readonly [Symbol.toStringTag]: \"Uint16Array\";\r\n}\r\n\r\ninterface Int32Array {\r\n    readonly [Symbol.toStringTag]: \"Int32Array\";\r\n}\r\n\r\ninterface Uint32Array {\r\n    readonly [Symbol.toStringTag]: \"Uint32Array\";\r\n}\r\n\r\ninterface Float32Array {\r\n    readonly [Symbol.toStringTag]: \"Float32Array\";\r\n}\r\n\r\ninterface Float64Array {\r\n    readonly [Symbol.toStringTag]: \"Float64Array\";\r\n}\r\n\r\ninterface ArrayConstructor {\r\n    readonly [Symbol.species]: ArrayConstructor;\r\n}\r\ninterface MapConstructor {\r\n    readonly [Symbol.species]: MapConstructor;\r\n}\r\ninterface SetConstructor {\r\n    readonly [Symbol.species]: SetConstructor;\r\n}\r\ninterface ArrayBufferConstructor {\r\n    readonly [Symbol.species]: ArrayBufferConstructor;\r\n}\r\n"
    },
    {
      "path": "/node_modules/typescript/lib/lib.es2016.array.include.d.ts",
      "content": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n\n/// <reference no-default-lib=\"true\"/>\r\n\n\ninterface Array<T> {\r\n    /**\r\n     * Determines whether an array includes a certain element, returning true or false as appropriate.\r\n     * @param searchElement The element to search for.\r\n     * @param fromIndex The position in this array at which to begin searching for searchElement.\r\n     */\r\n    includes(searchElement: T, fromIndex?: number): boolean;\r\n}\r\n\r\ninterface ReadonlyArray<T> {\r\n    /**\r\n     * Determines whether an array includes a certain element, returning true or false as appropriate.\r\n     * @param searchElement The element to search for.\r\n     * @param fromIndex The position in this array at which to begin searching for searchElement.\r\n     */\r\n    includes(searchElement: T, fromIndex?: number): boolean;\r\n}\r\n\r\ninterface Int8Array {\r\n    /**\r\n     * Determines whether an array includes a certain element, returning true or false as appropriate.\r\n     * @param searchElement The element to search for.\r\n     * @param fromIndex The position in this array at which to begin searching for searchElement.\r\n     */\r\n    includes(searchElement: number, fromIndex?: number): boolean;\r\n}\r\n\r\ninterface Uint8Array {\r\n    /**\r\n     * Determines whether an array includes a certain element, returning true or false as appropriate.\r\n     * @param searchElement The element to search for.\r\n     * @param fromIndex The position in this array at which to begin searching for searchElement.\r\n     */\r\n    includes(searchElement: number, fromIndex?: number): boolean;\r\n}\r\n\r\ninterface Uint8ClampedArray {\r\n    /**\r\n     * Determines whether an array includes a certain element, returning true or false as appropriate.\r\n     * @param searchElement The element to search for.\r\n     * @param fromIndex The position in this array at which to begin searching for searchElement.\r\n     */\r\n    includes(searchElement: number, fromIndex?: number): boolean;\r\n}\r\n\r\ninterface Int16Array {\r\n    /**\r\n     * Determines whether an array includes a certain element, returning true or false as appropriate.\r\n     * @param searchElement The element to search for.\r\n     * @param fromIndex The position in this array at which to begin searching for searchElement.\r\n     */\r\n    includes(searchElement: number, fromIndex?: number): boolean;\r\n}\r\n\r\ninterface Uint16Array {\r\n    /**\r\n     * Determines whether an array includes a certain element, returning true or false as appropriate.\r\n     * @param searchElement The element to search for.\r\n     * @param fromIndex The position in this array at which to begin searching for searchElement.\r\n     */\r\n    includes(searchElement: number, fromIndex?: number): boolean;\r\n}\r\n\r\ninterface Int32Array {\r\n    /**\r\n     * Determines whether an array includes a certain element, returning true or false as appropriate.\r\n     * @param searchElement The element to search for.\r\n     * @param fromIndex The position in this array at which to begin searching for searchElement.\r\n     */\r\n    includes(searchElement: number, fromIndex?: number): boolean;\r\n}\r\n\r\ninterface Uint32Array {\r\n    /**\r\n     * Determines whether an array includes a certain element, returning true or false as appropriate.\r\n     * @param searchElement The element to search for.\r\n     * @param fromIndex The position in this array at which to begin searching for searchElement.\r\n     */\r\n    includes(searchElement: number, fromIndex?: number): boolean;\r\n}\r\n\r\ninterface Float32Array {\r\n    /**\r\n     * Determines whether an array includes a certain element, returning true or false as appropriate.\r\n     * @param searchElement The element to search for.\r\n     * @param fromIndex The position in this array at which to begin searching for searchElement.\r\n     */\r\n    includes(searchElement: number, fromIndex?: number): boolean;\r\n}\r\n\r\ninterface Float64Array {\r\n    /**\r\n     * Determines whether an array includes a certain element, returning true or false as appropriate.\r\n     * @param searchElement The element to search for.\r\n     * @param fromIndex The position in this array at which to begin searching for searchElement.\r\n     */\r\n    includes(searchElement: number, fromIndex?: number): boolean;\r\n}"
    },
    {
      "path": "/node_modules/typescript/lib/lib.es2017.object.d.ts",
      "content": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n\n/// <reference no-default-lib=\"true\"/>\r\n\n\ninterface ObjectConstructor {\r\n    /**\r\n     * Returns an array of values of the enumerable properties of an object\r\n     * @param o Object that contains the properties and methods. This can be an object that you created or an existing Document Object Model (DOM) object.\r\n     */\r\n    values<T>(o: { [s: string]: T } | ArrayLike<T>): T[];\r\n\r\n    /**\r\n     * Returns an array of values of the enumerable properties of an object\r\n     * @param o Object that contains the properties and methods. This can be an object that you created or an existing Document Object Model (DOM) object.\r\n     */\r\n    values(o: {}): any[];\r\n\r\n    /**\r\n     * Returns an array of key/values of the enumerable properties of an object\r\n     * @param o Object that contains the properties and methods. This can be an object that you created or an existing Document Object Model (DOM) object.\r\n     */\r\n    entries<T>(o: { [s: string]: T } | ArrayLike<T>): [string, T][];\r\n\r\n    /**\r\n     * Returns an array of key/values of the enumerable properties of an object\r\n     * @param o Object that contains the properties and methods. This can be an object that you created or an existing Document Object Model (DOM) object.\r\n     */\r\n    entries(o: {}): [string, any][];\r\n\r\n    /**\r\n     * Returns an object containing all own property descriptors of an object\r\n     * @param o Object that contains the properties and methods. This can be an object that you created or an existing Document Object Model (DOM) object.\r\n     */\r\n    getOwnPropertyDescriptors<T>(o: T): {[P in keyof T]: TypedPropertyDescriptor<T[P]>} & { [x: string]: PropertyDescriptor };\r\n}\r\n"
    },
    {
      "path": "/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts",
      "content": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n\n/// <reference no-default-lib=\"true\"/>\r\n\n\n/// <reference lib=\"es2015.symbol\" />\r\n/// <reference lib=\"es2015.symbol.wellknown\" />\r\n\r\ninterface SharedArrayBuffer {\r\n    /**\r\n     * Read-only. The length of the ArrayBuffer (in bytes).\r\n     */\r\n    readonly byteLength: number;\r\n\r\n    /**\r\n     * Returns a section of an SharedArrayBuffer.\r\n     */\r\n    slice(begin: number, end?: number): SharedArrayBuffer;\r\n    readonly [Symbol.species]: SharedArrayBuffer;\r\n    readonly [Symbol.toStringTag]: \"SharedArrayBuffer\";\r\n}\r\n\r\ninterface SharedArrayBufferConstructor {\r\n    readonly prototype: SharedArrayBuffer;\r\n    new (byteLength: number): SharedArrayBuffer;\r\n}\r\ndeclare var SharedArrayBuffer: SharedArrayBufferConstructor;\r\n\r\ninterface ArrayBufferTypes {\r\n    SharedArrayBuffer: SharedArrayBuffer;\r\n}\r\n\r\ninterface Atomics {\r\n    /**\r\n     * Adds a value to the value at the given position in the array, returning the original value.\r\n     * Until this atomic operation completes, any other read or write operation against the array\r\n     * will block.\r\n     */\r\n    add(typedArray: Int8Array | Uint8Array | Int16Array | Uint16Array | Int32Array | Uint32Array, index: number, value: number): number;\r\n\r\n    /**\r\n     * Stores the bitwise AND of a value with the value at the given position in the array,\r\n     * returning the original value. Until this atomic operation completes, any other read or\r\n     * write operation against the array will block.\r\n     */\r\n    and(typedArray: Int8Array | Uint8Array | Int16Array | Uint16Array | Int32Array | Uint32Array, index: number, value: number): number;\r\n\r\n    /**\r\n     * Replaces the value at the given position in the array if the original value equals the given\r\n     * expected value, returning the original value. Until this atomic operation completes, any\r\n     * other read or write operation against the array will block.\r\n     */\r\n    compareExchange(typedArray: Int8Array | Uint8Array | Int16Array | Uint16Array | Int32Array | Uint32Array, index: number, expectedValue: number, replacementValue: number): number;\r\n\r\n    /**\r\n     * Replaces the value at the given position in the array, returning the original value. Until\r\n     * this atomic operation completes, any other read or write operation against the array will\r\n     * block.\r\n     */\r\n    exchange(typedArray: Int8Array | Uint8Array | Int16Array | Uint16Array | Int32Array | Uint32Array, index: number, value: number): number;\r\n\r\n    /**\r\n     * Returns a value indicating whether high-performance algorithms can use atomic operations\r\n     * (`true`) or must use locks (`false`) for the given number of bytes-per-element of a typed\r\n     * array.\r\n     */\r\n    isLockFree(size: number): boolean;\r\n\r\n    /**\r\n     * Returns the value at the given position in the array. Until this atomic operation completes,\r\n     * any other read or write operation against the array will block.\r\n     */\r\n    load(typedArray: Int8Array | Uint8Array | Int16Array | Uint16Array | Int32Array | Uint32Array, index: number): number;\r\n\r\n    /**\r\n     * Stores the bitwise OR of a value with the value at the given position in the array,\r\n     * returning the original value. Until this atomic operation completes, any other read or write\r\n     * operation against the array will block.\r\n     */\r\n    or(typedArray: Int8Array | Uint8Array | Int16Array | Uint16Array | Int32Array | Uint32Array, index: number, value: number): number;\r\n\r\n    /**\r\n     * Stores a value at the given position in the array, returning the new value. Until this\r\n     * atomic operation completes, any other read or write operation against the array will block.\r\n     */\r\n    store(typedArray: Int8Array | Uint8Array | Int16Array | Uint16Array | Int32Array | Uint32Array, index: number, value: number): number;\r\n\r\n    /**\r\n     * Subtracts a value from the value at the given position in the array, returning the original\r\n     * value. Until this atomic operation completes, any other read or write operation against the\r\n     * array will block.\r\n     */\r\n    sub(typedArray: Int8Array | Uint8Array | Int16Array | Uint16Array | Int32Array | Uint32Array, index: number, value: number): number;\r\n\r\n    /**\r\n     * If the value at the given position in the array is equal to the provided value, the current\r\n     * agent is put to sleep causing execution to suspend until the timeout expires (returning\r\n     * `\"timed-out\"`) or until the agent is awoken (returning `\"ok\"`); otherwise, returns\r\n     * `\"not-equal\"`.\r\n     */\r\n    wait(typedArray: Int32Array, index: number, value: number, timeout?: number): \"ok\" | \"not-equal\" | \"timed-out\";\r\n\r\n    /**\r\n     * Wakes up sleeping agents that are waiting on the given index of the array, returning the\r\n     * number of agents that were awoken.\r\n     * @param typedArray A shared Int32Array.\r\n     * @param index The position in the typedArray to wake up on.\r\n     * @param count The number of sleeping agents to notify. Defaults to +Infinity.\r\n     */\r\n    notify(typedArray: Int32Array, index: number, count?: number): number;\r\n\r\n    /**\r\n     * Stores the bitwise XOR of a value with the value at the given position in the array,\r\n     * returning the original value. Until this atomic operation completes, any other read or write\r\n     * operation against the array will block.\r\n     */\r\n    xor(typedArray: Int8Array | Uint8Array | Int16Array | Uint16Array | Int32Array | Uint32Array, index: number, value: number): number;\r\n\r\n    readonly [Symbol.toStringTag]: \"Atomics\";\r\n}\r\n\r\ndeclare var Atomics: Atomics;\r\n"
    },
    {
      "path": "/node_modules/typescript/lib/lib.es2017.string.d.ts",
      "content": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n\n/// <reference no-default-lib=\"true\"/>\r\n\n\ninterface String {\r\n    /**\r\n     * Pads the current string with a given string (possibly repeated) so that the resulting string reaches a given length.\r\n     * The padding is applied from the start (left) of the current string.\r\n     *\r\n     * @param maxLength The length of the resulting string once the current string has been padded.\r\n     *        If this parameter is smaller than the current string's length, the current string will be returned as it is.\r\n     *\r\n     * @param fillString The string to pad the current string with.\r\n     *        If this string is too long, it will be truncated and the left-most part will be applied.\r\n     *        The default value for this parameter is \" \" (U+0020).\r\n     */\r\n    padStart(maxLength: number, fillString?: string): string;\r\n\r\n    /**\r\n     * Pads the current string with a given string (possibly repeated) so that the resulting string reaches a given length.\r\n     * The padding is applied from the end (right) of the current string.\r\n     *\r\n     * @param maxLength The length of the resulting string once the current string has been padded.\r\n     *        If this parameter is smaller than the current string's length, the current string will be returned as it is.\r\n     *\r\n     * @param fillString The string to pad the current string with.\r\n     *        If this string is too long, it will be truncated and the left-most part will be applied.\r\n     *        The default value for this parameter is \" \" (U+0020).\r\n     */\r\n    padEnd(maxLength: number, fillString?: string): string;\r\n}\r\n"
    },
    {
      "path": "/node_modules/typescript/lib/lib.es2017.intl.d.ts",
      "content": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n\n/// <reference no-default-lib=\"true\"/>\r\n\n\ndeclare namespace Intl {\r\n\r\n    interface DateTimeFormatPartTypesRegistry {\r\n        day: any\r\n        dayPeriod: any\r\n        era: any\r\n        hour: any\r\n        literal: any\r\n        minute: any\r\n        month: any\r\n        second: any\r\n        timeZoneName: any\r\n        weekday: any\r\n        year: any\r\n    }\r\n\r\n    type DateTimeFormatPartTypes = keyof DateTimeFormatPartTypesRegistry;\r\n\r\n    interface DateTimeFormatPart {\r\n        type: DateTimeFormatPartTypes;\r\n        value: string;\r\n    }\r\n\r\n    interface DateTimeFormat {\r\n        formatToParts(date?: Date | number): DateTimeFormatPart[];\r\n    }\r\n}\r\n"
    },
    {
      "path": "/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts",
      "content": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n\n/// <reference no-default-lib=\"true\"/>\r\n\n\ninterface Int8ArrayConstructor {\r\n    new (): Int8Array;\r\n}\r\n\r\ninterface Uint8ArrayConstructor {\r\n    new (): Uint8Array;\r\n}\r\n\r\ninterface Uint8ClampedArrayConstructor {\r\n    new (): Uint8ClampedArray;\r\n}\r\n\r\ninterface Int16ArrayConstructor {\r\n    new (): Int16Array;\r\n}\r\n\r\ninterface Uint16ArrayConstructor {\r\n    new (): Uint16Array;\r\n}\r\n\r\ninterface Int32ArrayConstructor {\r\n    new (): Int32Array;\r\n}\r\n\r\ninterface Uint32ArrayConstructor {\r\n    new (): Uint32Array;\r\n}\r\n\r\ninterface Float32ArrayConstructor {\r\n    new (): Float32Array;\r\n}\r\n\r\ninterface Float64ArrayConstructor {\r\n    new (): Float64Array;\r\n}\r\n"
    },
    {
      "path": "/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts",
      "content": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n\n/// <reference no-default-lib=\"true\"/>\r\n\n\n/// <reference lib=\"es2018.asynciterable\" />\r\n\r\ninterface AsyncGenerator<T = unknown, TReturn = any, TNext = unknown> extends AsyncIterator<T, TReturn, TNext> {\r\n    // NOTE: 'next' is defined using a tuple to ensure we report the correct assignability errors in all places.\r\n    next(...args: [] | [TNext]): Promise<IteratorResult<T, TReturn>>;\r\n    return(value: TReturn | PromiseLike<TReturn>): Promise<IteratorResult<T, TReturn>>;\r\n    throw(e: any): Promise<IteratorResult<T, TReturn>>;\r\n    [Symbol.asyncIterator](): AsyncGenerator<T, TReturn, TNext>;\r\n}\r\n\r\ninterface AsyncGeneratorFunction {\r\n    /**\r\n     * Creates a new AsyncGenerator object.\r\n     * @param args A list of arguments the function accepts.\r\n     */\r\n    new (...args: any[]): AsyncGenerator;\r\n    /**\r\n     * Creates a new AsyncGenerator object.\r\n     * @param args A list of arguments the function accepts.\r\n     */\r\n    (...args: any[]): AsyncGenerator;\r\n    /**\r\n     * The length of the arguments.\r\n     */\r\n    readonly length: number;\r\n    /**\r\n     * Returns the name of the function.\r\n     */\r\n    readonly name: string;\r\n    /**\r\n     * A reference to the prototype.\r\n     */\r\n    readonly prototype: AsyncGenerator;\r\n}\r\n\r\ninterface AsyncGeneratorFunctionConstructor {\r\n    /**\r\n     * Creates a new AsyncGenerator function.\r\n     * @param args A list of arguments the function accepts.\r\n     */\r\n    new (...args: string[]): AsyncGeneratorFunction;\r\n    /**\r\n     * Creates a new AsyncGenerator function.\r\n     * @param args A list of arguments the function accepts.\r\n     */\r\n    (...args: string[]): AsyncGeneratorFunction;\r\n    /**\r\n     * The length of the arguments.\r\n     */\r\n    readonly length: number;\r\n    /**\r\n     * Returns the name of the function.\r\n     */\r\n    readonly name: string;\r\n    /**\r\n     * A reference to the prototype.\r\n     */\r\n    readonly prototype: AsyncGeneratorFunction;\r\n}\r\n"
    },
    {
      "path": "/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts",
      "content": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n\n/// <reference no-default-lib=\"true\"/>\r\n\n\n/// <reference lib=\"es2015.symbol\" />\r\n/// <reference lib=\"es2015.iterable\" />\r\n\r\ninterface SymbolConstructor {\r\n    /**\r\n     * A method that returns the default async iterator for an object. Called by the semantics of\r\n     * the for-await-of statement.\r\n     */\r\n    readonly asyncIterator: unique symbol;\r\n}\r\n\r\ninterface AsyncIterator<T, TReturn = any, TNext = undefined> {\r\n    // NOTE: 'next' is defined using a tuple to ensure we report the correct assignability errors in all places.\r\n    next(...args: [] | [TNext]): Promise<IteratorResult<T, TReturn>>;\r\n    return?(value?: TReturn | PromiseLike<TReturn>): Promise<IteratorResult<T, TReturn>>;\r\n    throw?(e?: any): Promise<IteratorResult<T, TReturn>>;\r\n}\r\n\r\ninterface AsyncIterable<T> {\r\n    [Symbol.asyncIterator](): AsyncIterator<T>;\r\n}\r\n\r\ninterface AsyncIterableIterator<T> extends AsyncIterator<T> {\r\n    [Symbol.asyncIterator](): AsyncIterableIterator<T>;\r\n}"
    },
    {
      "path": "/node_modules/typescript/lib/lib.es2018.intl.d.ts",
      "content": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n\n/// <reference no-default-lib=\"true\"/>\r\n\n\ndeclare namespace Intl {\r\n\r\n    // http://cldr.unicode.org/index/cldr-spec/plural-rules#TOC-Determining-Plural-Categories\r\n    type LDMLPluralRule = \"zero\" | \"one\" | \"two\" | \"few\" | \"many\" | \"other\";\r\n    type PluralRuleType = \"cardinal\" | \"ordinal\";\r\n\r\n    interface PluralRulesOptions {\r\n        localeMatcher?: \"lookup\" | \"best fit\" | undefined;\r\n        type?: PluralRuleType | undefined;\r\n        minimumIntegerDigits?: number | undefined;\r\n        minimumFractionDigits?: number | undefined;\r\n        maximumFractionDigits?: number | undefined;\r\n        minimumSignificantDigits?: number | undefined;\r\n        maximumSignificantDigits?: number | undefined;\r\n    }\r\n\r\n    interface ResolvedPluralRulesOptions {\r\n        locale: string;\r\n        pluralCategories: LDMLPluralRule[];\r\n        type: PluralRuleType;\r\n        minimumIntegerDigits: number;\r\n        minimumFractionDigits: number;\r\n        maximumFractionDigits: number;\r\n        minimumSignificantDigits?: number;\r\n        maximumSignificantDigits?: number;\r\n    }\r\n\r\n    interface PluralRules {\r\n        resolvedOptions(): ResolvedPluralRulesOptions;\r\n        select(n: number): LDMLPluralRule;\r\n    }\r\n\r\n    const PluralRules: {\r\n        new (locales?: string | string[], options?: PluralRulesOptions): PluralRules;\r\n        (locales?: string | string[], options?: PluralRulesOptions): PluralRules;\r\n\r\n        supportedLocalesOf(locales: string | string[], options?: { localeMatcher?: \"lookup\" | \"best fit\" }): string[];\r\n    };\r\n\r\n    // We can only have one definition for 'type' in TypeScript, and so you can learn where the keys come from here:\r\n    type ES2018NumberFormatPartType = \"literal\" | \"nan\" | \"infinity\" | \"percent\" | \"integer\" | \"group\" | \"decimal\" | \"fraction\" | \"plusSign\" | \"minusSign\" | \"percentSign\" | \"currency\" | \"code\" | \"symbol\" | \"name\";\r\n    type ES2020NumberFormatPartType = \"compact\" | \"exponentInteger\" | \"exponentMinusSign\" | \"exponentSeparator\" | \"unit\" | \"unknown\";\r\n    type NumberFormatPartTypes = ES2018NumberFormatPartType | ES2020NumberFormatPartType;\r\n\r\n    interface NumberFormatPart {\r\n        type: NumberFormatPartTypes;\r\n        value: string;\r\n    }\r\n\r\n    interface NumberFormat {\r\n        formatToParts(number?: number | bigint): NumberFormatPart[];\r\n    }\r\n}\r\n"
    },
    {
      "path": "/node_modules/typescript/lib/lib.es2018.promise.d.ts",
      "content": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n\n/// <reference no-default-lib=\"true\"/>\r\n\n\n/**\r\n * Represents the completion of an asynchronous operation\r\n */\r\ninterface Promise<T> {\r\n    /**\r\n     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The\r\n     * resolved value cannot be modified from the callback.\r\n     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).\r\n     * @returns A Promise for the completion of the callback.\r\n     */\r\n    finally(onfinally?: (() => void) | undefined | null): Promise<T>\r\n}\r\n"
    },
    {
      "path": "/node_modules/typescript/lib/lib.es2018.regexp.d.ts",
      "content": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n\n/// <reference no-default-lib=\"true\"/>\r\n\n\ninterface RegExpMatchArray {\r\n    groups?: {\r\n        [key: string]: string\r\n    }\r\n}\r\n\r\ninterface RegExpExecArray {\r\n    groups?: {\r\n        [key: string]: string\r\n    }\r\n}\r\n\r\ninterface RegExp {\r\n    /**\r\n     * Returns a Boolean value indicating the state of the dotAll flag (s) used with a regular expression.\r\n     * Default is false. Read-only.\r\n     */\r\n    readonly dotAll: boolean;\r\n}"
    },
    {
      "path": "/node_modules/typescript/lib/lib.es2019.array.d.ts",
      "content": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n\n/// <reference no-default-lib=\"true\"/>\r\n\n\ntype FlatArray<Arr, Depth extends number> = {\r\n    \"done\": Arr,\r\n    \"recur\": Arr extends ReadonlyArray<infer InnerArr>\r\n        ? FlatArray<InnerArr, [-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][Depth]>\r\n        : Arr\r\n}[Depth extends -1 ? \"done\" : \"recur\"];\r\n\r\ninterface ReadonlyArray<T> {\r\n\r\n    /**\r\n     * Calls a defined callback function on each element of an array. Then, flattens the result into\r\n     * a new array.\r\n     * This is identical to a map followed by flat with depth 1.\r\n     *\r\n     * @param callback A function that accepts up to three arguments. The flatMap method calls the\r\n     * callback function one time for each element in the array.\r\n     * @param thisArg An object to which the this keyword can refer in the callback function. If\r\n     * thisArg is omitted, undefined is used as the this value.\r\n     */\r\n    flatMap<U, This = undefined> (\r\n        callback: (this: This, value: T, index: number, array: T[]) => U | ReadonlyArray<U>,\r\n        thisArg?: This\r\n    ): U[]\r\n\r\n\r\n    /**\r\n     * Returns a new array with all sub-array elements concatenated into it recursively up to the\r\n     * specified depth.\r\n     *\r\n     * @param depth The maximum recursion depth\r\n     */\r\n    flat<A, D extends number = 1>(\r\n        this: A,\r\n        depth?: D\r\n    ): FlatArray<A, D>[]\r\n  }\r\n\r\ninterface Array<T> {\r\n\r\n    /**\r\n     * Calls a defined callback function on each element of an array. Then, flattens the result into\r\n     * a new array.\r\n     * This is identical to a map followed by flat with depth 1.\r\n     *\r\n     * @param callback A function that accepts up to three arguments. The flatMap method calls the\r\n     * callback function one time for each element in the array.\r\n     * @param thisArg An object to which the this keyword can refer in the callback function. If\r\n     * thisArg is omitted, undefined is used as the this value.\r\n     */\r\n    flatMap<U, This = undefined> (\r\n        callback: (this: This, value: T, index: number, array: T[]) => U | ReadonlyArray<U>,\r\n        thisArg?: This\r\n    ): U[]\r\n\r\n    /**\r\n     * Returns a new array with all sub-array elements concatenated into it recursively up to the\r\n     * specified depth.\r\n     *\r\n     * @param depth The maximum recursion depth\r\n     */\r\n    flat<A, D extends number = 1>(\r\n        this: A,\r\n        depth?: D\r\n    ): FlatArray<A, D>[]\r\n}\r\n"
    },
    {
      "path": "/node_modules/typescript/lib/lib.es2019.object.d.ts",
      "content": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n\n/// <reference no-default-lib=\"true\"/>\r\n\n\n/// <reference lib=\"es2015.iterable\" />\r\n\r\ninterface ObjectConstructor {\r\n    /**\r\n     * Returns an object created by key-value entries for properties and methods\r\n     * @param entries An iterable object that contains key-value entries for properties and methods.\r\n     */\r\n    fromEntries<T = any>(entries: Iterable<readonly [PropertyKey, T]>): { [k: string]: T };\r\n\r\n    /**\r\n     * Returns an object created by key-value entries for properties and methods\r\n     * @param entries An iterable object that contains key-value entries for properties and methods.\r\n     */\r\n    fromEntries(entries: Iterable<readonly any[]>): any;\r\n}\r\n"
    },
    {
      "path": "/node_modules/typescript/lib/lib.es2019.string.d.ts",
      "content": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n\n/// <reference no-default-lib=\"true\"/>\r\n\n\ninterface String {\r\n    /** Removes the trailing white space and line terminator characters from a string. */\r\n    trimEnd(): string;\r\n\r\n    /** Removes the leading white space and line terminator characters from a string. */\r\n    trimStart(): string;\r\n\r\n    /**\r\n     * Removes the leading white space and line terminator characters from a string.\r\n     * @deprecated A legacy feature for browser compatibility. Use `trimStart` instead\r\n     */\r\n    trimLeft(): string;\r\n\r\n    /**\r\n     * Removes the trailing white space and line terminator characters from a string.\r\n     * @deprecated A legacy feature for browser compatibility. Use `trimEnd` instead\r\n     */\r\n    trimRight(): string;\r\n}\r\n"
    },
    {
      "path": "/node_modules/typescript/lib/lib.es2019.symbol.d.ts",
      "content": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n\n/// <reference no-default-lib=\"true\"/>\r\n\n\ninterface Symbol {\r\n    /**\r\n     * Expose the [[Description]] internal slot of a symbol directly.\r\n     */\r\n    readonly description: string | undefined;\r\n}\r\n"
    },
    {
      "path": "/node_modules/typescript/lib/lib.es2019.intl.d.ts",
      "content": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n\n/// <reference no-default-lib=\"true\"/>\r\n\n\ndeclare namespace Intl {\r\n    interface DateTimeFormatPartTypesRegistry {\r\n        unknown: any\r\n    }\r\n}\r\n"
    },
    {
      "path": "/node_modules/typescript/lib/lib.es2020.bigint.d.ts",
      "content": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n\n/// <reference no-default-lib=\"true\"/>\r\n\n\n/// <reference lib=\"es2020.intl\" />\r\n\r\ninterface BigIntToLocaleStringOptions {\r\n    /**\r\n     * The locale matching algorithm to use.The default is \"best fit\". For information about this option, see the {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl#Locale_negotiation Intl page}.\r\n     */\r\n    localeMatcher?: string;\r\n    /**\r\n     * The formatting style to use , the default is \"decimal\".\r\n     */\r\n    style?: string;\r\n\r\n    numberingSystem?: string;\r\n    /**\r\n     * The unit to use in unit formatting, Possible values are core unit identifiers, defined in UTS #35, Part 2, Section 6. A subset of units from the full list was selected for use in ECMAScript. Pairs of simple units can be concatenated with \"-per-\" to make a compound unit. There is no default value; if the style is \"unit\", the unit property must be provided.\r\n     */\r\n    unit?: string;\r\n\r\n    /**\r\n     * The unit formatting style to use in unit formatting, the defaults is \"short\".\r\n     */\r\n    unitDisplay?: string;\r\n\r\n    /**\r\n     * The currency to use in currency formatting. Possible values are the ISO 4217 currency codes, such as \"USD\" for the US dollar, \"EUR\" for the euro, or \"CNY\" for the Chinese RMB — see the Current currency & funds code list. There is no default value; if the style is \"currency\", the currency property must be provided. It is only used when [[Style]] has the value \"currency\".\r\n     */\r\n    currency?: string;\r\n\r\n    /**\r\n     * How to display the currency in currency formatting. It is only used when [[Style]] has the value \"currency\". The default is \"symbol\".\r\n     *\r\n     * \"symbol\" to use a localized currency symbol such as €,\r\n     *\r\n     * \"code\" to use the ISO currency code,\r\n     *\r\n     * \"name\" to use a localized currency name such as \"dollar\"\r\n     */\r\n    currencyDisplay?: string;\r\n\r\n    /**\r\n     * Whether to use grouping separators, such as thousands separators or thousand/lakh/crore separators. The default is true.\r\n     */\r\n    useGrouping?: boolean;\r\n\r\n    /**\r\n     * The minimum number of integer digits to use. Possible values are from 1 to 21; the default is 1.\r\n     */\r\n    minimumIntegerDigits?: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21;\r\n\r\n    /**\r\n     * The minimum number of fraction digits to use. Possible values are from 0 to 20; the default for plain number and percent formatting is 0; the default for currency formatting is the number of minor unit digits provided by the {@link http://www.currency-iso.org/en/home/tables/table-a1.html ISO 4217 currency codes list} (2 if the list doesn't provide that information).\r\n     */\r\n    minimumFractionDigits?: 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20;\r\n\r\n    /**\r\n     * The maximum number of fraction digits to use. Possible values are from 0 to 20; the default for plain number formatting is the larger of minimumFractionDigits and 3; the default for currency formatting is the larger of minimumFractionDigits and the number of minor unit digits provided by the {@link http://www.currency-iso.org/en/home/tables/table-a1.html ISO 4217 currency codes list} (2 if the list doesn't provide that information); the default for percent formatting is the larger of minimumFractionDigits and 0.\r\n     */\r\n    maximumFractionDigits?: 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20;\r\n\r\n    /**\r\n     * The minimum number of significant digits to use. Possible values are from 1 to 21; the default is 1.\r\n     */\r\n    minimumSignificantDigits?: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21;\r\n\r\n    /**\r\n     * The maximum number of significant digits to use. Possible values are from 1 to 21; the default is 21.\r\n     */\r\n    maximumSignificantDigits?: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21;\r\n\r\n    /**\r\n     * The formatting that should be displayed for the number, the defaults is \"standard\"\r\n     *\r\n     *     \"standard\" plain number formatting\r\n     *\r\n     *     \"scientific\" return the order-of-magnitude for formatted number.\r\n     *\r\n     *     \"engineering\" return the exponent of ten when divisible by three\r\n     *\r\n     *     \"compact\" string representing exponent, defaults is using the \"short\" form\r\n     */\r\n    notation?: string;\r\n\r\n    /**\r\n     * used only when notation is \"compact\"\r\n     */\r\n    compactDisplay?: string;\r\n}\r\n\r\ninterface BigInt {\r\n    /**\r\n     * Returns a string representation of an object.\r\n     * @param radix Specifies a radix for converting numeric values to strings.\r\n     */\r\n    toString(radix?: number): string;\r\n\r\n    /** Returns a string representation appropriate to the host environment's current locale. */\r\n    toLocaleString(locales?: Intl.LocalesArgument, options?: BigIntToLocaleStringOptions): string;\r\n\r\n    /** Returns the primitive value of the specified object. */\r\n    valueOf(): bigint;\r\n\r\n    readonly [Symbol.toStringTag]: \"BigInt\";\r\n}\r\n\r\ninterface BigIntConstructor {\r\n    (value: bigint | boolean | number | string): bigint;\r\n    readonly prototype: BigInt;\r\n\r\n    /**\r\n     * Interprets the low bits of a BigInt as a 2's-complement signed integer.\r\n     * All higher bits are discarded.\r\n     * @param bits The number of low bits to use\r\n     * @param int The BigInt whose bits to extract\r\n     */\r\n    asIntN(bits: number, int: bigint): bigint;\r\n    /**\r\n     * Interprets the low bits of a BigInt as an unsigned integer.\r\n     * All higher bits are discarded.\r\n     * @param bits The number of low bits to use\r\n     * @param int The BigInt whose bits to extract\r\n     */\r\n    asUintN(bits: number, int: bigint): bigint;\r\n}\r\n\r\ndeclare var BigInt: BigIntConstructor;\r\n\r\n/**\r\n * A typed array of 64-bit signed integer values. The contents are initialized to 0. If the\r\n * requested number of bytes could not be allocated, an exception is raised.\r\n */\r\ninterface BigInt64Array {\r\n    /** The size in bytes of each element in the array. */\r\n    readonly BYTES_PER_ELEMENT: number;\r\n\r\n    /** The ArrayBuffer instance referenced by the array. */\r\n    readonly buffer: ArrayBufferLike;\r\n\r\n    /** The length in bytes of the array. */\r\n    readonly byteLength: number;\r\n\r\n    /** The offset in bytes of the array. */\r\n    readonly byteOffset: number;\r\n\r\n    /**\r\n     * Returns the this object after copying a section of the array identified by start and end\r\n     * to the same array starting at position target\r\n     * @param target If target is negative, it is treated as length+target where length is the\r\n     * length of the array.\r\n     * @param start If start is negative, it is treated as length+start. If end is negative, it\r\n     * is treated as length+end.\r\n     * @param end If not specified, length of the this object is used as its default value.\r\n     */\r\n    copyWithin(target: number, start: number, end?: number): this;\r\n\r\n    /** Yields index, value pairs for every entry in the array. */\r\n    entries(): IterableIterator<[number, bigint]>;\r\n\r\n    /**\r\n     * Determines whether all the members of an array satisfy the specified test.\r\n     * @param predicate A function that accepts up to three arguments. The every method calls\r\n     * the predicate function for each element in the array until the predicate returns false,\r\n     * or until the end of the array.\r\n     * @param thisArg An object to which the this keyword can refer in the predicate function.\r\n     * If thisArg is omitted, undefined is used as the this value.\r\n     */\r\n    every(predicate: (value: bigint, index: number, array: BigInt64Array) => boolean, thisArg?: any): boolean;\r\n\r\n    /**\r\n     * Changes all array elements from `start` to `end` index to a static `value` and returns the modified array\r\n     * @param value value to fill array section with\r\n     * @param start index to start filling the array at. If start is negative, it is treated as\r\n     * length+start where length is the length of the array.\r\n     * @param end index to stop filling the array at. If end is negative, it is treated as\r\n     * length+end.\r\n     */\r\n    fill(value: bigint, start?: number, end?: number): this;\r\n\r\n    /**\r\n     * Returns the elements of an array that meet the condition specified in a callback function.\r\n     * @param predicate A function that accepts up to three arguments. The filter method calls\r\n     * the predicate function one time for each element in the array.\r\n     * @param thisArg An object to which the this keyword can refer in the predicate function.\r\n     * If thisArg is omitted, undefined is used as the this value.\r\n     */\r\n    filter(predicate: (value: bigint, index: number, array: BigInt64Array) => any, thisArg?: any): BigInt64Array;\r\n\r\n    /**\r\n     * Returns the value of the first element in the array where predicate is true, and undefined\r\n     * otherwise.\r\n     * @param predicate find calls predicate once for each element of the array, in ascending\r\n     * order, until it finds one where predicate returns true. If such an element is found, find\r\n     * immediately returns that element value. Otherwise, find returns undefined.\r\n     * @param thisArg If provided, it will be used as the this value for each invocation of\r\n     * predicate. If it is not provided, undefined is used instead.\r\n     */\r\n    find(predicate: (value: bigint, index: number, array: BigInt64Array) => boolean, thisArg?: any): bigint | undefined;\r\n\r\n    /**\r\n     * Returns the index of the first element in the array where predicate is true, and -1\r\n     * otherwise.\r\n     * @param predicate find calls predicate once for each element of the array, in ascending\r\n     * order, until it finds one where predicate returns true. If such an element is found,\r\n     * findIndex immediately returns that element index. Otherwise, findIndex returns -1.\r\n     * @param thisArg If provided, it will be used as the this value for each invocation of\r\n     * predicate. If it is not provided, undefined is used instead.\r\n     */\r\n    findIndex(predicate: (value: bigint, index: number, array: BigInt64Array) => boolean, thisArg?: any): number;\r\n\r\n    /**\r\n     * Performs the specified action for each element in an array.\r\n     * @param callbackfn A function that accepts up to three arguments. forEach calls the\r\n     * callbackfn function one time for each element in the array.\r\n     * @param thisArg An object to which the this keyword can refer in the callbackfn function.\r\n     * If thisArg is omitted, undefined is used as the this value.\r\n     */\r\n    forEach(callbackfn: (value: bigint, index: number, array: BigInt64Array) => void, thisArg?: any): void;\r\n\r\n    /**\r\n     * Determines whether an array includes a certain element, returning true or false as appropriate.\r\n     * @param searchElement The element to search for.\r\n     * @param fromIndex The position in this array at which to begin searching for searchElement.\r\n     */\r\n    includes(searchElement: bigint, fromIndex?: number): boolean;\r\n\r\n    /**\r\n     * Returns the index of the first occurrence of a value in an array.\r\n     * @param searchElement The value to locate in the array.\r\n     * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\r\n     * search starts at index 0.\r\n     */\r\n    indexOf(searchElement: bigint, fromIndex?: number): number;\r\n\r\n    /**\r\n     * Adds all the elements of an array separated by the specified separator string.\r\n     * @param separator A string used to separate one element of an array from the next in the\r\n     * resulting String. If omitted, the array elements are separated with a comma.\r\n     */\r\n    join(separator?: string): string;\r\n\r\n    /** Yields each index in the array. */\r\n    keys(): IterableIterator<number>;\r\n\r\n    /**\r\n     * Returns the index of the last occurrence of a value in an array.\r\n     * @param searchElement The value to locate in the array.\r\n     * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\r\n     * search starts at index 0.\r\n     */\r\n    lastIndexOf(searchElement: bigint, fromIndex?: number): number;\r\n\r\n    /** The length of the array. */\r\n    readonly length: number;\r\n\r\n    /**\r\n     * Calls a defined callback function on each element of an array, and returns an array that\r\n     * contains the results.\r\n     * @param callbackfn A function that accepts up to three arguments. The map method calls the\r\n     * callbackfn function one time for each element in the array.\r\n     * @param thisArg An object to which the this keyword can refer in the callbackfn function.\r\n     * If thisArg is omitted, undefined is used as the this value.\r\n     */\r\n    map(callbackfn: (value: bigint, index: number, array: BigInt64Array) => bigint, thisArg?: any): BigInt64Array;\r\n\r\n    /**\r\n     * Calls the specified callback function for all the elements in an array. The return value of\r\n     * the callback function is the accumulated result, and is provided as an argument in the next\r\n     * call to the callback function.\r\n     * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\r\n     * callbackfn function one time for each element in the array.\r\n     * @param initialValue If initialValue is specified, it is used as the initial value to start\r\n     * the accumulation. The first call to the callbackfn function provides this value as an argument\r\n     * instead of an array value.\r\n     */\r\n    reduce(callbackfn: (previousValue: bigint, currentValue: bigint, currentIndex: number, array: BigInt64Array) => bigint): bigint;\r\n\r\n    /**\r\n     * Calls the specified callback function for all the elements in an array. The return value of\r\n     * the callback function is the accumulated result, and is provided as an argument in the next\r\n     * call to the callback function.\r\n     * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\r\n     * callbackfn function one time for each element in the array.\r\n     * @param initialValue If initialValue is specified, it is used as the initial value to start\r\n     * the accumulation. The first call to the callbackfn function provides this value as an argument\r\n     * instead of an array value.\r\n     */\r\n    reduce<U>(callbackfn: (previousValue: U, currentValue: bigint, currentIndex: number, array: BigInt64Array) => U, initialValue: U): U;\r\n\r\n    /**\r\n     * Calls the specified callback function for all the elements in an array, in descending order.\r\n     * The return value of the callback function is the accumulated result, and is provided as an\r\n     * argument in the next call to the callback function.\r\n     * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\r\n     * the callbackfn function one time for each element in the array.\r\n     * @param initialValue If initialValue is specified, it is used as the initial value to start\r\n     * the accumulation. The first call to the callbackfn function provides this value as an\r\n     * argument instead of an array value.\r\n     */\r\n    reduceRight(callbackfn: (previousValue: bigint, currentValue: bigint, currentIndex: number, array: BigInt64Array) => bigint): bigint;\r\n\r\n    /**\r\n     * Calls the specified callback function for all the elements in an array, in descending order.\r\n     * The return value of the callback function is the accumulated result, and is provided as an\r\n     * argument in the next call to the callback function.\r\n     * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\r\n     * the callbackfn function one time for each element in the array.\r\n     * @param initialValue If initialValue is specified, it is used as the initial value to start\r\n     * the accumulation. The first call to the callbackfn function provides this value as an argument\r\n     * instead of an array value.\r\n     */\r\n    reduceRight<U>(callbackfn: (previousValue: U, currentValue: bigint, currentIndex: number, array: BigInt64Array) => U, initialValue: U): U;\r\n\r\n    /** Reverses the elements in the array. */\r\n    reverse(): this;\r\n\r\n    /**\r\n     * Sets a value or an array of values.\r\n     * @param array A typed or untyped array of values to set.\r\n     * @param offset The index in the current array at which the values are to be written.\r\n     */\r\n    set(array: ArrayLike<bigint>, offset?: number): void;\r\n\r\n    /**\r\n     * Returns a section of an array.\r\n     * @param start The beginning of the specified portion of the array.\r\n     * @param end The end of the specified portion of the array.\r\n     */\r\n    slice(start?: number, end?: number): BigInt64Array;\r\n\r\n    /**\r\n     * Determines whether the specified callback function returns true for any element of an array.\r\n     * @param predicate A function that accepts up to three arguments. The some method calls the\r\n     * predicate function for each element in the array until the predicate returns true, or until\r\n     * the end of the array.\r\n     * @param thisArg An object to which the this keyword can refer in the predicate function.\r\n     * If thisArg is omitted, undefined is used as the this value.\r\n     */\r\n    some(predicate: (value: bigint, index: number, array: BigInt64Array) => boolean, thisArg?: any): boolean;\r\n\r\n    /**\r\n     * Sorts the array.\r\n     * @param compareFn The function used to determine the order of the elements. If omitted, the elements are sorted in ascending order.\r\n     */\r\n    sort(compareFn?: (a: bigint, b: bigint) => number | bigint): this;\r\n\r\n    /**\r\n     * Gets a new BigInt64Array view of the ArrayBuffer store for this array, referencing the elements\r\n     * at begin, inclusive, up to end, exclusive.\r\n     * @param begin The index of the beginning of the array.\r\n     * @param end The index of the end of the array.\r\n     */\r\n    subarray(begin?: number, end?: number): BigInt64Array;\r\n\r\n    /** Converts the array to a string by using the current locale. */\r\n    toLocaleString(): string;\r\n\r\n    /** Returns a string representation of the array. */\r\n    toString(): string;\r\n\r\n    /** Returns the primitive value of the specified object. */\r\n    valueOf(): BigInt64Array;\r\n\r\n    /** Yields each value in the array. */\r\n    values(): IterableIterator<bigint>;\r\n\r\n    [Symbol.iterator](): IterableIterator<bigint>;\r\n\r\n    readonly [Symbol.toStringTag]: \"BigInt64Array\";\r\n\r\n    [index: number]: bigint;\r\n}\r\n\r\ninterface BigInt64ArrayConstructor {\r\n    readonly prototype: BigInt64Array;\r\n    new(length?: number): BigInt64Array;\r\n    new(array: Iterable<bigint>): BigInt64Array;\r\n    new(buffer: ArrayBufferLike, byteOffset?: number, length?: number): BigInt64Array;\r\n\r\n    /** The size in bytes of each element in the array. */\r\n    readonly BYTES_PER_ELEMENT: number;\r\n\r\n    /**\r\n     * Returns a new array from a set of elements.\r\n     * @param items A set of elements to include in the new array object.\r\n     */\r\n    of(...items: bigint[]): BigInt64Array;\r\n\r\n    /**\r\n     * Creates an array from an array-like or iterable object.\r\n     * @param arrayLike An array-like or iterable object to convert to an array.\r\n     * @param mapfn A mapping function to call on every element of the array.\r\n     * @param thisArg Value of 'this' used to invoke the mapfn.\r\n     */\r\n    from(arrayLike: ArrayLike<bigint>): BigInt64Array;\r\n    from<U>(arrayLike: ArrayLike<U>, mapfn: (v: U, k: number) => bigint, thisArg?: any): BigInt64Array;\r\n}\r\n\r\ndeclare var BigInt64Array: BigInt64ArrayConstructor;\r\n\r\n/**\r\n * A typed array of 64-bit unsigned integer values. The contents are initialized to 0. If the\r\n * requested number of bytes could not be allocated, an exception is raised.\r\n */\r\ninterface BigUint64Array {\r\n    /** The size in bytes of each element in the array. */\r\n    readonly BYTES_PER_ELEMENT: number;\r\n\r\n    /** The ArrayBuffer instance referenced by the array. */\r\n    readonly buffer: ArrayBufferLike;\r\n\r\n    /** The length in bytes of the array. */\r\n    readonly byteLength: number;\r\n\r\n    /** The offset in bytes of the array. */\r\n    readonly byteOffset: number;\r\n\r\n    /**\r\n     * Returns the this object after copying a section of the array identified by start and end\r\n     * to the same array starting at position target\r\n     * @param target If target is negative, it is treated as length+target where length is the\r\n     * length of the array.\r\n     * @param start If start is negative, it is treated as length+start. If end is negative, it\r\n     * is treated as length+end.\r\n     * @param end If not specified, length of the this object is used as its default value.\r\n     */\r\n    copyWithin(target: number, start: number, end?: number): this;\r\n\r\n    /** Yields index, value pairs for every entry in the array. */\r\n    entries(): IterableIterator<[number, bigint]>;\r\n\r\n    /**\r\n     * Determines whether all the members of an array satisfy the specified test.\r\n     * @param predicate A function that accepts up to three arguments. The every method calls\r\n     * the predicate function for each element in the array until the predicate returns false,\r\n     * or until the end of the array.\r\n     * @param thisArg An object to which the this keyword can refer in the predicate function.\r\n     * If thisArg is omitted, undefined is used as the this value.\r\n     */\r\n    every(predicate: (value: bigint, index: number, array: BigUint64Array) => boolean, thisArg?: any): boolean;\r\n\r\n    /**\r\n     * Changes all array elements from `start` to `end` index to a static `value` and returns the modified array\r\n     * @param value value to fill array section with\r\n     * @param start index to start filling the array at. If start is negative, it is treated as\r\n     * length+start where length is the length of the array.\r\n     * @param end index to stop filling the array at. If end is negative, it is treated as\r\n     * length+end.\r\n     */\r\n    fill(value: bigint, start?: number, end?: number): this;\r\n\r\n    /**\r\n     * Returns the elements of an array that meet the condition specified in a callback function.\r\n     * @param predicate A function that accepts up to three arguments. The filter method calls\r\n     * the predicate function one time for each element in the array.\r\n     * @param thisArg An object to which the this keyword can refer in the predicate function.\r\n     * If thisArg is omitted, undefined is used as the this value.\r\n     */\r\n    filter(predicate: (value: bigint, index: number, array: BigUint64Array) => any, thisArg?: any): BigUint64Array;\r\n\r\n    /**\r\n     * Returns the value of the first element in the array where predicate is true, and undefined\r\n     * otherwise.\r\n     * @param predicate find calls predicate once for each element of the array, in ascending\r\n     * order, until it finds one where predicate returns true. If such an element is found, find\r\n     * immediately returns that element value. Otherwise, find returns undefined.\r\n     * @param thisArg If provided, it will be used as the this value for each invocation of\r\n     * predicate. If it is not provided, undefined is used instead.\r\n     */\r\n    find(predicate: (value: bigint, index: number, array: BigUint64Array) => boolean, thisArg?: any): bigint | undefined;\r\n\r\n    /**\r\n     * Returns the index of the first element in the array where predicate is true, and -1\r\n     * otherwise.\r\n     * @param predicate find calls predicate once for each element of the array, in ascending\r\n     * order, until it finds one where predicate returns true. If such an element is found,\r\n     * findIndex immediately returns that element index. Otherwise, findIndex returns -1.\r\n     * @param thisArg If provided, it will be used as the this value for each invocation of\r\n     * predicate. If it is not provided, undefined is used instead.\r\n     */\r\n    findIndex(predicate: (value: bigint, index: number, array: BigUint64Array) => boolean, thisArg?: any): number;\r\n\r\n    /**\r\n     * Performs the specified action for each element in an array.\r\n     * @param callbackfn A function that accepts up to three arguments. forEach calls the\r\n     * callbackfn function one time for each element in the array.\r\n     * @param thisArg An object to which the this keyword can refer in the callbackfn function.\r\n     * If thisArg is omitted, undefined is used as the this value.\r\n     */\r\n    forEach(callbackfn: (value: bigint, index: number, array: BigUint64Array) => void, thisArg?: any): void;\r\n\r\n    /**\r\n     * Determines whether an array includes a certain element, returning true or false as appropriate.\r\n     * @param searchElement The element to search for.\r\n     * @param fromIndex The position in this array at which to begin searching for searchElement.\r\n     */\r\n    includes(searchElement: bigint, fromIndex?: number): boolean;\r\n\r\n    /**\r\n     * Returns the index of the first occurrence of a value in an array.\r\n     * @param searchElement The value to locate in the array.\r\n     * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\r\n     * search starts at index 0.\r\n     */\r\n    indexOf(searchElement: bigint, fromIndex?: number): number;\r\n\r\n    /**\r\n     * Adds all the elements of an array separated by the specified separator string.\r\n     * @param separator A string used to separate one element of an array from the next in the\r\n     * resulting String. If omitted, the array elements are separated with a comma.\r\n     */\r\n    join(separator?: string): string;\r\n\r\n    /** Yields each index in the array. */\r\n    keys(): IterableIterator<number>;\r\n\r\n    /**\r\n     * Returns the index of the last occurrence of a value in an array.\r\n     * @param searchElement The value to locate in the array.\r\n     * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\r\n     * search starts at index 0.\r\n     */\r\n    lastIndexOf(searchElement: bigint, fromIndex?: number): number;\r\n\r\n    /** The length of the array. */\r\n    readonly length: number;\r\n\r\n    /**\r\n     * Calls a defined callback function on each element of an array, and returns an array that\r\n     * contains the results.\r\n     * @param callbackfn A function that accepts up to three arguments. The map method calls the\r\n     * callbackfn function one time for each element in the array.\r\n     * @param thisArg An object to which the this keyword can refer in the callbackfn function.\r\n     * If thisArg is omitted, undefined is used as the this value.\r\n     */\r\n    map(callbackfn: (value: bigint, index: number, array: BigUint64Array) => bigint, thisArg?: any): BigUint64Array;\r\n\r\n    /**\r\n     * Calls the specified callback function for all the elements in an array. The return value of\r\n     * the callback function is the accumulated result, and is provided as an argument in the next\r\n     * call to the callback function.\r\n     * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\r\n     * callbackfn function one time for each element in the array.\r\n     * @param initialValue If initialValue is specified, it is used as the initial value to start\r\n     * the accumulation. The first call to the callbackfn function provides this value as an argument\r\n     * instead of an array value.\r\n     */\r\n    reduce(callbackfn: (previousValue: bigint, currentValue: bigint, currentIndex: number, array: BigUint64Array) => bigint): bigint;\r\n\r\n    /**\r\n     * Calls the specified callback function for all the elements in an array. The return value of\r\n     * the callback function is the accumulated result, and is provided as an argument in the next\r\n     * call to the callback function.\r\n     * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\r\n     * callbackfn function one time for each element in the array.\r\n     * @param initialValue If initialValue is specified, it is used as the initial value to start\r\n     * the accumulation. The first call to the callbackfn function provides this value as an argument\r\n     * instead of an array value.\r\n     */\r\n    reduce<U>(callbackfn: (previousValue: U, currentValue: bigint, currentIndex: number, array: BigUint64Array) => U, initialValue: U): U;\r\n\r\n    /**\r\n     * Calls the specified callback function for all the elements in an array, in descending order.\r\n     * The return value of the callback function is the accumulated result, and is provided as an\r\n     * argument in the next call to the callback function.\r\n     * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\r\n     * the callbackfn function one time for each element in the array.\r\n     * @param initialValue If initialValue is specified, it is used as the initial value to start\r\n     * the accumulation. The first call to the callbackfn function provides this value as an\r\n     * argument instead of an array value.\r\n     */\r\n    reduceRight(callbackfn: (previousValue: bigint, currentValue: bigint, currentIndex: number, array: BigUint64Array) => bigint): bigint;\r\n\r\n    /**\r\n     * Calls the specified callback function for all the elements in an array, in descending order.\r\n     * The return value of the callback function is the accumulated result, and is provided as an\r\n     * argument in the next call to the callback function.\r\n     * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\r\n     * the callbackfn function one time for each element in the array.\r\n     * @param initialValue If initialValue is specified, it is used as the initial value to start\r\n     * the accumulation. The first call to the callbackfn function provides this value as an argument\r\n     * instead of an array value.\r\n     */\r\n    reduceRight<U>(callbackfn: (previousValue: U, currentValue: bigint, currentIndex: number, array: BigUint64Array) => U, initialValue: U): U;\r\n\r\n    /** Reverses the elements in the array. */\r\n    reverse(): this;\r\n\r\n    /**\r\n     * Sets a value or an array of values.\r\n     * @param array A typed or untyped array of values to set.\r\n     * @param offset The index in the current array at which the values are to be written.\r\n     */\r\n    set(array: ArrayLike<bigint>, offset?: number): void;\r\n\r\n    /**\r\n     * Returns a section of an array.\r\n     * @param start The beginning of the specified portion of the array.\r\n     * @param end The end of the specified portion of the array.\r\n     */\r\n    slice(start?: number, end?: number): BigUint64Array;\r\n\r\n    /**\r\n     * Determines whether the specified callback function returns true for any element of an array.\r\n     * @param predicate A function that accepts up to three arguments. The some method calls the\r\n     * predicate function for each element in the array until the predicate returns true, or until\r\n     * the end of the array.\r\n     * @param thisArg An object to which the this keyword can refer in the predicate function.\r\n     * If thisArg is omitted, undefined is used as the this value.\r\n     */\r\n    some(predicate: (value: bigint, index: number, array: BigUint64Array) => boolean, thisArg?: any): boolean;\r\n\r\n    /**\r\n     * Sorts the array.\r\n     * @param compareFn The function used to determine the order of the elements. If omitted, the elements are sorted in ascending order.\r\n     */\r\n    sort(compareFn?: (a: bigint, b: bigint) => number | bigint): this;\r\n\r\n    /**\r\n     * Gets a new BigUint64Array view of the ArrayBuffer store for this array, referencing the elements\r\n     * at begin, inclusive, up to end, exclusive.\r\n     * @param begin The index of the beginning of the array.\r\n     * @param end The index of the end of the array.\r\n     */\r\n    subarray(begin?: number, end?: number): BigUint64Array;\r\n\r\n    /** Converts the array to a string by using the current locale. */\r\n    toLocaleString(): string;\r\n\r\n    /** Returns a string representation of the array. */\r\n    toString(): string;\r\n\r\n    /** Returns the primitive value of the specified object. */\r\n    valueOf(): BigUint64Array;\r\n\r\n    /** Yields each value in the array. */\r\n    values(): IterableIterator<bigint>;\r\n\r\n    [Symbol.iterator](): IterableIterator<bigint>;\r\n\r\n    readonly [Symbol.toStringTag]: \"BigUint64Array\";\r\n\r\n    [index: number]: bigint;\r\n}\r\n\r\ninterface BigUint64ArrayConstructor {\r\n    readonly prototype: BigUint64Array;\r\n    new(length?: number): BigUint64Array;\r\n    new(array: Iterable<bigint>): BigUint64Array;\r\n    new(buffer: ArrayBufferLike, byteOffset?: number, length?: number): BigUint64Array;\r\n\r\n    /** The size in bytes of each element in the array. */\r\n    readonly BYTES_PER_ELEMENT: number;\r\n\r\n    /**\r\n     * Returns a new array from a set of elements.\r\n     * @param items A set of elements to include in the new array object.\r\n     */\r\n    of(...items: bigint[]): BigUint64Array;\r\n\r\n    /**\r\n     * Creates an array from an array-like or iterable object.\r\n     * @param arrayLike An array-like or iterable object to convert to an array.\r\n     * @param mapfn A mapping function to call on every element of the array.\r\n     * @param thisArg Value of 'this' used to invoke the mapfn.\r\n     */\r\n    from(arrayLike: ArrayLike<bigint>): BigUint64Array;\r\n    from<U>(arrayLike: ArrayLike<U>, mapfn: (v: U, k: number) => bigint, thisArg?: any): BigUint64Array;\r\n}\r\n\r\ndeclare var BigUint64Array: BigUint64ArrayConstructor;\r\n\r\ninterface DataView {\r\n    /**\r\n     * Gets the BigInt64 value at the specified byte offset from the start of the view. There is\r\n     * no alignment constraint; multi-byte values may be fetched from any offset.\r\n     * @param byteOffset The place in the buffer at which the value should be retrieved.\r\n     * @param littleEndian If false or undefined, a big-endian value should be read.\r\n     */\r\n    getBigInt64(byteOffset: number, littleEndian?: boolean): bigint;\r\n\r\n    /**\r\n     * Gets the BigUint64 value at the specified byte offset from the start of the view. There is\r\n     * no alignment constraint; multi-byte values may be fetched from any offset.\r\n     * @param byteOffset The place in the buffer at which the value should be retrieved.\r\n     * @param littleEndian If false or undefined, a big-endian value should be read.\r\n     */\r\n    getBigUint64(byteOffset: number, littleEndian?: boolean): bigint;\r\n\r\n    /**\r\n     * Stores a BigInt64 value at the specified byte offset from the start of the view.\r\n     * @param byteOffset The place in the buffer at which the value should be set.\r\n     * @param value The value to set.\r\n     * @param littleEndian If false or undefined, a big-endian value should be written.\r\n     */\r\n    setBigInt64(byteOffset: number, value: bigint, littleEndian?: boolean): void;\r\n\r\n    /**\r\n     * Stores a BigUint64 value at the specified byte offset from the start of the view.\r\n     * @param byteOffset The place in the buffer at which the value should be set.\r\n     * @param value The value to set.\r\n     * @param littleEndian If false or undefined, a big-endian value should be written.\r\n     */\r\n    setBigUint64(byteOffset: number, value: bigint, littleEndian?: boolean): void;\r\n}\r\n\r\ndeclare namespace Intl{\r\n    interface NumberFormat {\r\n        format(value: number | bigint): string;\r\n        resolvedOptions(): ResolvedNumberFormatOptions;\r\n    }\r\n}\r\n"
    },
    {
      "path": "/node_modules/typescript/lib/lib.es2020.date.d.ts",
      "content": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n\n/// <reference no-default-lib=\"true\"/>\r\n\n\n/// <reference lib=\"es2020.intl\" />\r\n\r\ninterface Date {\r\n    /**\r\n     * Converts a date and time to a string by using the current or specified locale.\r\n     * @param locales A locale string, array of locale strings, Intl.Locale object, or array of Intl.Locale objects that contain one or more language or locale tags. If you include more than one locale string, list them in descending order of priority so that the first entry is the preferred locale. If you omit this parameter, the default locale of the JavaScript runtime is used.\r\n     * @param options An object that contains one or more properties that specify comparison options.\r\n     */\r\n    toLocaleString(locales?: Intl.LocalesArgument, options?: Intl.DateTimeFormatOptions): string;\r\n\r\n    /**\r\n     * Converts a date to a string by using the current or specified locale.\r\n     * @param locales A locale string, array of locale strings, Intl.Locale object, or array of Intl.Locale objects that contain one or more language or locale tags. If you include more than one locale string, list them in descending order of priority so that the first entry is the preferred locale. If you omit this parameter, the default locale of the JavaScript runtime is used.\r\n     * @param options An object that contains one or more properties that specify comparison options.\r\n     */\r\n    toLocaleDateString(locales?: Intl.LocalesArgument, options?: Intl.DateTimeFormatOptions): string;\r\n\r\n    /**\r\n     * Converts a time to a string by using the current or specified locale.\r\n     * @param locales A locale string, array of locale strings, Intl.Locale object, or array of Intl.Locale objects that contain one or more language or locale tags. If you include more than one locale string, list them in descending order of priority so that the first entry is the preferred locale. If you omit this parameter, the default locale of the JavaScript runtime is used.\r\n     * @param options An object that contains one or more properties that specify comparison options.\r\n     */\r\n    toLocaleTimeString(locales?: Intl.LocalesArgument, options?: Intl.DateTimeFormatOptions): string;\r\n}"
    },
    {
      "path": "/node_modules/typescript/lib/lib.es2020.promise.d.ts",
      "content": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n\n/// <reference no-default-lib=\"true\"/>\r\n\n\ninterface PromiseFulfilledResult<T> {\r\n    status: \"fulfilled\";\r\n    value: T;\r\n}\r\n\r\ninterface PromiseRejectedResult {\r\n    status: \"rejected\";\r\n    reason: any;\r\n}\r\n\r\ntype PromiseSettledResult<T> = PromiseFulfilledResult<T> | PromiseRejectedResult;\r\n\r\ninterface PromiseConstructor {\r\n    /**\r\n     * Creates a Promise that is resolved with an array of results when all\r\n     * of the provided Promises resolve or reject.\r\n     * @param values An array of Promises.\r\n     * @returns A new Promise.\r\n     */\r\n    allSettled<T extends readonly unknown[] | []>(values: T): Promise<{ -readonly [P in keyof T]: PromiseSettledResult<Awaited<T[P]>> }>;\r\n\r\n    /**\r\n     * Creates a Promise that is resolved with an array of results when all\r\n     * of the provided Promises resolve or reject.\r\n     * @param values An array of Promises.\r\n     * @returns A new Promise.\r\n     */\r\n    allSettled<T>(values: Iterable<T | PromiseLike<T>>): Promise<PromiseSettledResult<Awaited<T>>[]>;\r\n}\r\n"
    },
    {
      "path": "/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts",
      "content": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n\n/// <reference no-default-lib=\"true\"/>\r\n\n\ninterface Atomics {\r\n    /**\r\n     * Adds a value to the value at the given position in the array, returning the original value.\r\n     * Until this atomic operation completes, any other read or write operation against the array\r\n     * will block.\r\n     */\r\n    add(typedArray: BigInt64Array | BigUint64Array, index: number, value: bigint): bigint;\r\n\r\n    /**\r\n     * Stores the bitwise AND of a value with the value at the given position in the array,\r\n     * returning the original value. Until this atomic operation completes, any other read or\r\n     * write operation against the array will block.\r\n     */\r\n    and(typedArray: BigInt64Array | BigUint64Array, index: number, value: bigint): bigint;\r\n\r\n    /**\r\n     * Replaces the value at the given position in the array if the original value equals the given\r\n     * expected value, returning the original value. Until this atomic operation completes, any\r\n     * other read or write operation against the array will block.\r\n     */\r\n    compareExchange(typedArray: BigInt64Array | BigUint64Array, index: number, expectedValue: bigint, replacementValue: bigint): bigint;\r\n\r\n    /**\r\n     * Replaces the value at the given position in the array, returning the original value. Until\r\n     * this atomic operation completes, any other read or write operation against the array will\r\n     * block.\r\n     */\r\n    exchange(typedArray: BigInt64Array | BigUint64Array, index: number, value: bigint): bigint;\r\n\r\n    /**\r\n     * Returns the value at the given position in the array. Until this atomic operation completes,\r\n     * any other read or write operation against the array will block.\r\n     */\r\n    load(typedArray: BigInt64Array | BigUint64Array, index: number): bigint;\r\n\r\n    /**\r\n     * Stores the bitwise OR of a value with the value at the given position in the array,\r\n     * returning the original value. Until this atomic operation completes, any other read or write\r\n     * operation against the array will block.\r\n     */\r\n    or(typedArray: BigInt64Array | BigUint64Array, index: number, value: bigint): bigint;\r\n\r\n    /**\r\n     * Stores a value at the given position in the array, returning the new value. Until this\r\n     * atomic operation completes, any other read or write operation against the array will block.\r\n     */\r\n    store(typedArray: BigInt64Array | BigUint64Array, index: number, value: bigint): bigint;\r\n\r\n    /**\r\n     * Subtracts a value from the value at the given position in the array, returning the original\r\n     * value. Until this atomic operation completes, any other read or write operation against the\r\n     * array will block.\r\n     */\r\n    sub(typedArray: BigInt64Array | BigUint64Array, index: number, value: bigint): bigint;\r\n\r\n    /**\r\n     * If the value at the given position in the array is equal to the provided value, the current\r\n     * agent is put to sleep causing execution to suspend until the timeout expires (returning\r\n     * `\"timed-out\"`) or until the agent is awoken (returning `\"ok\"`); otherwise, returns\r\n     * `\"not-equal\"`.\r\n     */\r\n    wait(typedArray: BigInt64Array, index: number, value: bigint, timeout?: number): \"ok\" | \"not-equal\" | \"timed-out\";\r\n\r\n    /**\r\n     * Wakes up sleeping agents that are waiting on the given index of the array, returning the\r\n     * number of agents that were awoken.\r\n     * @param typedArray A shared BigInt64Array.\r\n     * @param index The position in the typedArray to wake up on.\r\n     * @param count The number of sleeping agents to notify. Defaults to +Infinity.\r\n     */\r\n    notify(typedArray: BigInt64Array, index: number, count?: number): number;\r\n\r\n    /**\r\n     * Stores the bitwise XOR of a value with the value at the given position in the array,\r\n     * returning the original value. Until this atomic operation completes, any other read or write\r\n     * operation against the array will block.\r\n     */\r\n    xor(typedArray: BigInt64Array | BigUint64Array, index: number, value: bigint): bigint;\r\n}\r\n"
    },
    {
      "path": "/node_modules/typescript/lib/lib.es2020.string.d.ts",
      "content": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n\n/// <reference no-default-lib=\"true\"/>\r\n\n\n/// <reference lib=\"es2015.iterable\" />\r\n\r\ninterface String {\r\n    /**\r\n     * Matches a string with a regular expression, and returns an iterable of matches\r\n     * containing the results of that search.\r\n     * @param regexp A variable name or string literal containing the regular expression pattern and flags.\r\n     */\r\n    matchAll(regexp: RegExp): IterableIterator<RegExpMatchArray>;\r\n}\r\n"
    },
    {
      "path": "/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts",
      "content": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n\n/// <reference no-default-lib=\"true\"/>\r\n\n\n/// <reference lib=\"es2015.iterable\" />\r\n/// <reference lib=\"es2015.symbol\" />\r\n\r\ninterface SymbolConstructor {\r\n    /**\r\n     * A regular expression method that matches the regular expression against a string. Called\r\n     * by the String.prototype.matchAll method.\r\n     */\r\n    readonly matchAll: unique symbol;\r\n}\r\n\r\ninterface RegExp {\r\n    /**\r\n     * Matches a string with this regular expression, and returns an iterable of matches\r\n     * containing the results of that search.\r\n     * @param string A string to search within.\r\n     */\r\n    [Symbol.matchAll](str: string): IterableIterator<RegExpMatchArray>;\r\n}\r\n"
    },
    {
      "path": "/node_modules/typescript/lib/lib.es2020.intl.d.ts",
      "content": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n\n/// <reference no-default-lib=\"true\"/>\r\n\n\n/// <reference lib=\"es2018.intl\" />\r\ndeclare namespace Intl {\r\n\r\n    /**\r\n     * [Unicode BCP 47 Locale Identifiers](https://unicode.org/reports/tr35/#Unicode_Language_and_Locale_Identifiers) definition.\r\n     *\r\n     * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl#locales_argument).\r\n     */\r\n    type UnicodeBCP47LocaleIdentifier = string;\r\n\r\n    /**\r\n     * Unit to use in the relative time internationalized message.\r\n     *\r\n     * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/format#Parameters).\r\n     */\r\n    type RelativeTimeFormatUnit =\r\n        | \"year\"\r\n        | \"years\"\r\n        | \"quarter\"\r\n        | \"quarters\"\r\n        | \"month\"\r\n        | \"months\"\r\n        | \"week\"\r\n        | \"weeks\"\r\n        | \"day\"\r\n        | \"days\"\r\n        | \"hour\"\r\n        | \"hours\"\r\n        | \"minute\"\r\n        | \"minutes\"\r\n        | \"second\"\r\n        | \"seconds\";\r\n\r\n    /**\r\n     * Value of the `unit` property in objects returned by\r\n     * `Intl.RelativeTimeFormat.prototype.formatToParts()`. `formatToParts` and\r\n     * `format` methods accept either singular or plural unit names as input,\r\n     * but `formatToParts` only outputs singular (e.g. \"day\") not plural (e.g.\r\n     * \"days\").\r\n     *\r\n     * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/formatToParts#Using_formatToParts).\r\n     */\r\n     type RelativeTimeFormatUnitSingular =\r\n        | \"year\"\r\n        | \"quarter\"\r\n        | \"month\"\r\n        | \"week\"\r\n        | \"day\"\r\n        | \"hour\"\r\n        | \"minute\"\r\n        | \"second\";\r\n\r\n    /**\r\n     * The locale matching algorithm to use.\r\n     *\r\n     * [MDN](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl#Locale_negotiation).\r\n     */\r\n    type RelativeTimeFormatLocaleMatcher = \"lookup\" | \"best fit\";\r\n\r\n    /**\r\n     * The format of output message.\r\n     *\r\n     * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/RelativeTimeFormat#Parameters).\r\n     */\r\n    type RelativeTimeFormatNumeric = \"always\" | \"auto\";\r\n\r\n    /**\r\n     * The length of the internationalized message.\r\n     *\r\n     * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/RelativeTimeFormat#Parameters).\r\n     */\r\n    type RelativeTimeFormatStyle = \"long\" | \"short\" | \"narrow\";\r\n\r\n    /**\r\n     * [BCP 47 language tag](http://tools.ietf.org/html/rfc5646) definition.\r\n     *\r\n     * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl#locales_argument).\r\n     */\r\n    type BCP47LanguageTag = string;\r\n\r\n    /**\r\n     * The locale(s) to use\r\n     *\r\n     * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl#locales_argument).\r\n     */\r\n    type LocalesArgument = UnicodeBCP47LocaleIdentifier | Locale | readonly (UnicodeBCP47LocaleIdentifier | Locale)[] | undefined;\r\n\r\n    /**\r\n     * An object with some or all of properties of `options` parameter\r\n     * of `Intl.RelativeTimeFormat` constructor.\r\n     *\r\n     * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/RelativeTimeFormat#Parameters).\r\n     */\r\n    interface RelativeTimeFormatOptions {\r\n        /** The locale matching algorithm to use. For information about this option, see [Intl page](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl#Locale_negotiation). */\r\n        localeMatcher?: RelativeTimeFormatLocaleMatcher;\r\n        /** The format of output message. */\r\n        numeric?: RelativeTimeFormatNumeric;\r\n        /** The length of the internationalized message. */\r\n        style?: RelativeTimeFormatStyle;\r\n    }\r\n\r\n    /**\r\n     * An object with properties reflecting the locale\r\n     * and formatting options computed during initialization\r\n     * of the `Intl.RelativeTimeFormat` object\r\n     *\r\n     * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/resolvedOptions#Description).\r\n     */\r\n    interface ResolvedRelativeTimeFormatOptions {\r\n        locale: UnicodeBCP47LocaleIdentifier;\r\n        style: RelativeTimeFormatStyle;\r\n        numeric: RelativeTimeFormatNumeric;\r\n        numberingSystem: string;\r\n    }\r\n\r\n    /**\r\n     * An object representing the relative time format in parts\r\n     * that can be used for custom locale-aware formatting.\r\n     *\r\n     * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/formatToParts#Using_formatToParts).\r\n     */\r\n    type RelativeTimeFormatPart =\r\n        | {\r\n              type: \"literal\";\r\n              value: string;\r\n          }\r\n        | {\r\n              type: Exclude<NumberFormatPartTypes, \"literal\">;\r\n              value: string;\r\n              unit: RelativeTimeFormatUnitSingular;\r\n          };\r\n\r\n    interface RelativeTimeFormat {\r\n        /**\r\n         * Formats a value and a unit according to the locale\r\n         * and formatting options of the given\r\n         * [`Intl.RelativeTimeFormat`](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/RelativeTimeFormat)\r\n         * object.\r\n         *\r\n         * While this method automatically provides the correct plural forms,\r\n         * the grammatical form is otherwise as neutral as possible.\r\n         *\r\n         * It is the caller's responsibility to handle cut-off logic\r\n         * such as deciding between displaying \"in 7 days\" or \"in 1 week\".\r\n         * This API does not support relative dates involving compound units.\r\n         * e.g \"in 5 days and 4 hours\".\r\n         *\r\n         * @param value -  Numeric value to use in the internationalized relative time message\r\n         *\r\n         * @param unit - [Unit](https://tc39.es/ecma402/#sec-singularrelativetimeunit) to use in the relative time internationalized message.\r\n         *\r\n         * @throws `RangeError` if `unit` was given something other than `unit` possible values\r\n         *\r\n         * @returns {string} Internationalized relative time message as string\r\n         *\r\n         * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/format).\r\n         */\r\n        format(value: number, unit: RelativeTimeFormatUnit): string;\r\n\r\n        /**\r\n         *  Returns an array of objects representing the relative time format in parts that can be used for custom locale-aware formatting.\r\n         *\r\n         *  @param value - Numeric value to use in the internationalized relative time message\r\n         *\r\n         *  @param unit - [Unit](https://tc39.es/ecma402/#sec-singularrelativetimeunit) to use in the relative time internationalized message.\r\n         *\r\n         *  @throws `RangeError` if `unit` was given something other than `unit` possible values\r\n         *\r\n         *  [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/formatToParts).\r\n         */\r\n        formatToParts(value: number, unit: RelativeTimeFormatUnit): RelativeTimeFormatPart[];\r\n\r\n        /**\r\n         * Provides access to the locale and options computed during initialization of this `Intl.RelativeTimeFormat` object.\r\n         *\r\n         * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/resolvedOptions).\r\n         */\r\n        resolvedOptions(): ResolvedRelativeTimeFormatOptions;\r\n    }\r\n\r\n    /**\r\n     * The [`Intl.RelativeTimeFormat`](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/RelativeTimeFormat)\r\n     * object is a constructor for objects that enable language-sensitive relative time formatting.\r\n     *\r\n     * [Compatibility](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat#Browser_compatibility).\r\n     */\r\n    const RelativeTimeFormat: {\r\n        /**\r\n         * Creates [Intl.RelativeTimeFormat](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RelativeTimeFormat) objects\r\n         *\r\n         * @param locales - A string with a [BCP 47 language tag](http://tools.ietf.org/html/rfc5646), or an array of such strings.\r\n         *  For the general form and interpretation of the locales argument,\r\n         *  see the [`Intl` page](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl#Locale_identification_and_negotiation).\r\n         *\r\n         * @param options - An [object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/RelativeTimeFormat#Parameters)\r\n         *  with some or all of options of `RelativeTimeFormatOptions`.\r\n         *\r\n         * @returns [Intl.RelativeTimeFormat](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RelativeTimeFormat) object.\r\n         *\r\n         * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/RelativeTimeFormat).\r\n         */\r\n        new(\r\n            locales?: UnicodeBCP47LocaleIdentifier | UnicodeBCP47LocaleIdentifier[],\r\n            options?: RelativeTimeFormatOptions,\r\n        ): RelativeTimeFormat;\r\n\r\n        /**\r\n         * Returns an array containing those of the provided locales\r\n         * that are supported in date and time formatting\r\n         * without having to fall back to the runtime's default locale.\r\n         *\r\n         * @param locales - A string with a [BCP 47 language tag](http://tools.ietf.org/html/rfc5646), or an array of such strings.\r\n         *  For the general form and interpretation of the locales argument,\r\n         *  see the [`Intl` page](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl#Locale_identification_and_negotiation).\r\n         *\r\n         * @param options - An [object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/RelativeTimeFormat#Parameters)\r\n         *  with some or all of options of the formatting.\r\n         *\r\n         * @returns An array containing those of the provided locales\r\n         *  that are supported in date and time formatting\r\n         *  without having to fall back to the runtime's default locale.\r\n         *\r\n         * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/supportedLocalesOf).\r\n         */\r\n        supportedLocalesOf(\r\n            locales?: UnicodeBCP47LocaleIdentifier | UnicodeBCP47LocaleIdentifier[],\r\n            options?: RelativeTimeFormatOptions,\r\n        ): UnicodeBCP47LocaleIdentifier[];\r\n    };\r\n\r\n    interface NumberFormatOptions {\r\n        compactDisplay?: \"short\" | \"long\" | undefined;\r\n        notation?: \"standard\" | \"scientific\" | \"engineering\" | \"compact\" | undefined;\r\n        signDisplay?: \"auto\" | \"never\" | \"always\" | \"exceptZero\" | undefined;\r\n        unit?: string | undefined;\r\n        unitDisplay?: \"short\" | \"long\" | \"narrow\" | undefined;\r\n        currencyDisplay?: string | undefined;\r\n        currencySign?: string | undefined;\r\n    }\r\n\r\n    interface ResolvedNumberFormatOptions {\r\n        compactDisplay?: \"short\" | \"long\";\r\n        notation?: \"standard\" | \"scientific\" | \"engineering\" | \"compact\";\r\n        signDisplay?: \"auto\" | \"never\" | \"always\" | \"exceptZero\";\r\n        unit?: string;\r\n        unitDisplay?: \"short\" | \"long\" | \"narrow\";\r\n        currencyDisplay?: string;\r\n        currencySign?: string;\r\n    }\r\n\r\n    interface DateTimeFormatOptions {\r\n        calendar?: string | undefined;\r\n        dayPeriod?: \"narrow\" | \"short\" | \"long\" | undefined;\r\n        numberingSystem?: string | undefined;\r\n\r\n        dateStyle?: \"full\" | \"long\" | \"medium\" | \"short\" | undefined;\r\n        timeStyle?: \"full\" | \"long\" | \"medium\" | \"short\" | undefined;\r\n        hourCycle?: \"h11\" | \"h12\" | \"h23\" | \"h24\" | undefined;\r\n    }\r\n\r\n    type LocaleHourCycleKey = \"h12\" | \"h23\" | \"h11\" | \"h24\";\r\n    type LocaleCollationCaseFirst = \"upper\" | \"lower\" | \"false\";\r\n\r\n    interface LocaleOptions {\r\n        /** A string containing the language, and the script and region if available. */\r\n        baseName?: string;\r\n        /** The part of the Locale that indicates the locale's calendar era. */\r\n        calendar?: string;\r\n        /** Flag that defines whether case is taken into account for the locale's collation rules. */\r\n        caseFirst?: LocaleCollationCaseFirst;\r\n        /** The collation type used for sorting */\r\n        collation?: string;\r\n        /** The time keeping format convention used by the locale. */\r\n        hourCycle?: LocaleHourCycleKey;\r\n        /** The primary language subtag associated with the locale. */\r\n        language?: string;\r\n        /** The numeral system used by the locale. */\r\n        numberingSystem?: string;\r\n        /** Flag that defines whether the locale has special collation handling for numeric characters. */\r\n        numeric?: boolean;\r\n        /** The region of the world (usually a country) associated with the locale. Possible values are region codes as defined by ISO 3166-1. */\r\n        region?: string;\r\n        /** The script used for writing the particular language used in the locale. Possible values are script codes as defined by ISO 15924. */\r\n        script?: string;\r\n    }\r\n\r\n    interface Locale extends LocaleOptions {\r\n        /** A string containing the language, and the script and region if available. */\r\n        baseName: string;\r\n        /** The primary language subtag associated with the locale. */\r\n        language: string;\r\n        /** Gets the most likely values for the language, script, and region of the locale based on existing values. */\r\n        maximize(): Locale;\r\n        /** Attempts to remove information about the locale that would be added by calling `Locale.maximize()`. */\r\n        minimize(): Locale;\r\n        /** Returns the locale's full locale identifier string. */\r\n        toString(): BCP47LanguageTag;\r\n    }\r\n\r\n    /**\r\n     * Constructor creates [Intl.Locale](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale)\r\n     * objects\r\n     *\r\n     * @param tag - A string with a [BCP 47 language tag](http://tools.ietf.org/html/rfc5646).\r\n     *  For the general form and interpretation of the locales argument,\r\n     *  see the [`Intl` page](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl#Locale_identification_and_negotiation).\r\n     *\r\n     * @param options - An [object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale/Locale#Parameters) with some or all of options of the locale.\r\n     *\r\n     * @returns [Intl.Locale](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale) object.\r\n     *\r\n     * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale).\r\n     */\r\n    const Locale: {\r\n        new (tag: BCP47LanguageTag | Locale, options?: LocaleOptions): Locale;\r\n    };\r\n\r\n    type DisplayNamesFallback =\r\n        | \"code\"\r\n        | \"none\";\r\n\r\n    type DisplayNamesType =\r\n        | \"language\"\r\n        | \"region\"\r\n        | \"script\"\r\n        | \"calendar\"\r\n        | \"dateTimeField\"\r\n        | \"currency\";\r\n\r\n    type DisplayNamesLanguageDisplay =\r\n        | \"dialect\"\r\n        | \"standard\";\r\n\r\n    interface DisplayNamesOptions {\r\n        localeMatcher?: RelativeTimeFormatLocaleMatcher;\r\n        style?: RelativeTimeFormatStyle;\r\n        type: DisplayNamesType;\r\n        languageDisplay?: DisplayNamesLanguageDisplay;\r\n        fallback?: DisplayNamesFallback;\r\n    }\r\n\r\n    interface ResolvedDisplayNamesOptions {\r\n        locale: UnicodeBCP47LocaleIdentifier;\r\n        style: RelativeTimeFormatStyle;\r\n        type: DisplayNamesType;\r\n        fallback: DisplayNamesFallback;\r\n        languageDisplay?: DisplayNamesLanguageDisplay;\r\n    }\r\n\r\n    interface DisplayNames {\r\n        /**\r\n         * Receives a code and returns a string based on the locale and options provided when instantiating\r\n         * [`Intl.DisplayNames()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DisplayNames)\r\n         *\r\n         * @param code The `code` to provide depends on the `type` passed to display name during creation:\r\n         *  - If the type is `\"region\"`, code should be either an [ISO-3166 two letters region code](https://www.iso.org/iso-3166-country-codes.html),\r\n         *    or a [three digits UN M49 Geographic Regions](https://unstats.un.org/unsd/methodology/m49/).\r\n         *  - If the type is `\"script\"`, code should be an [ISO-15924 four letters script code](https://unicode.org/iso15924/iso15924-codes.html).\r\n         *  - If the type is `\"language\"`, code should be a `languageCode` [\"-\" `scriptCode`] [\"-\" `regionCode` ] *(\"-\" `variant` )\r\n         *    subsequence of the unicode_language_id grammar in [UTS 35's Unicode Language and Locale Identifiers grammar](https://unicode.org/reports/tr35/#Unicode_language_identifier).\r\n         *    `languageCode` is either a two letters ISO 639-1 language code or a three letters ISO 639-2 language code.\r\n         *  - If the type is `\"currency\"`, code should be a [3-letter ISO 4217 currency code](https://www.iso.org/iso-4217-currency-codes.html).\r\n         *\r\n         * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DisplayNames/of).\r\n         */\r\n        of(code: string): string | undefined;\r\n        /**\r\n         * Returns a new object with properties reflecting the locale and style formatting options computed during the construction of the current\r\n         * [`Intl/DisplayNames`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DisplayNames) object.\r\n         *\r\n         * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DisplayNames/resolvedOptions).\r\n         */\r\n        resolvedOptions(): ResolvedDisplayNamesOptions;\r\n    }\r\n\r\n    /**\r\n     * The [`Intl.DisplayNames()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DisplayNames)\r\n     * object enables the consistent translation of language, region and script display names.\r\n     *\r\n     * [Compatibility](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DisplayNames#browser_compatibility).\r\n     */\r\n    const DisplayNames: {\r\n        prototype: DisplayNames;\r\n\r\n        /**\r\n         * @param locales A string with a BCP 47 language tag, or an array of such strings.\r\n         *   For the general form and interpretation of the `locales` argument, see the [Intl](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl#locale_identification_and_negotiation)\r\n         *   page.\r\n         *\r\n         * @param options An object for setting up a display name.\r\n         *\r\n         * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DisplayNames/DisplayNames).\r\n         */\r\n        new(locales: LocalesArgument, options: DisplayNamesOptions): DisplayNames;\r\n\r\n        /**\r\n         * Returns an array containing those of the provided locales that are supported in display names without having to fall back to the runtime's default locale.\r\n         *\r\n         * @param locales A string with a BCP 47 language tag, or an array of such strings.\r\n         *   For the general form and interpretation of the `locales` argument, see the [Intl](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl#locale_identification_and_negotiation)\r\n         *   page.\r\n         *\r\n         * @param options An object with a locale matcher.\r\n         *\r\n         * @returns An array of strings representing a subset of the given locale tags that are supported in display names without having to fall back to the runtime's default locale.\r\n         *\r\n         * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DisplayNames/supportedLocalesOf).\r\n         */\r\n        supportedLocalesOf(locales?: LocalesArgument, options?: { localeMatcher?: RelativeTimeFormatLocaleMatcher }): BCP47LanguageTag[];\r\n    };\r\n\r\n}\r\n"
    },
    {
      "path": "/node_modules/typescript/lib/lib.es2020.number.d.ts",
      "content": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n\n/// <reference no-default-lib=\"true\"/>\r\n\n\n/// <reference lib=\"es2020.intl\" />\r\n\r\ninterface Number {\r\n    /**\r\n     * Converts a number to a string by using the current or specified locale.\r\n     * @param locales A locale string, array of locale strings, Intl.Locale object, or array of Intl.Locale objects that contain one or more language or locale tags. If you include more than one locale string, list them in descending order of priority so that the first entry is the preferred locale. If you omit this parameter, the default locale of the JavaScript runtime is used.\r\n     * @param options An object that contains one or more properties that specify comparison options.\r\n     */\r\n    toLocaleString(locales?: Intl.LocalesArgument, options?: Intl.NumberFormatOptions): string;\r\n}\r\n"
    },
    {
      "path": "/node_modules/typescript/lib/lib.webworker.d.ts",
      "content": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n\n/// <reference no-default-lib=\"true\"/>\r\n\n\n/////////////////////////////\n/// Worker APIs\n/////////////////////////////\n\ninterface AddEventListenerOptions extends EventListenerOptions {\n    once?: boolean;\n    passive?: boolean;\n    signal?: AbortSignal;\n}\n\ninterface AesCbcParams extends Algorithm {\n    iv: BufferSource;\n}\n\ninterface AesCtrParams extends Algorithm {\n    counter: BufferSource;\n    length: number;\n}\n\ninterface AesDerivedKeyParams extends Algorithm {\n    length: number;\n}\n\ninterface AesGcmParams extends Algorithm {\n    additionalData?: BufferSource;\n    iv: BufferSource;\n    tagLength?: number;\n}\n\ninterface AesKeyAlgorithm extends KeyAlgorithm {\n    length: number;\n}\n\ninterface AesKeyGenParams extends Algorithm {\n    length: number;\n}\n\ninterface Algorithm {\n    name: string;\n}\n\ninterface AudioConfiguration {\n    bitrate?: number;\n    channels?: string;\n    contentType: string;\n    samplerate?: number;\n    spatialRendering?: boolean;\n}\n\ninterface BlobPropertyBag {\n    endings?: EndingType;\n    type?: string;\n}\n\ninterface CacheQueryOptions {\n    ignoreMethod?: boolean;\n    ignoreSearch?: boolean;\n    ignoreVary?: boolean;\n}\n\ninterface ClientQueryOptions {\n    includeUncontrolled?: boolean;\n    type?: ClientTypes;\n}\n\ninterface CloseEventInit extends EventInit {\n    code?: number;\n    reason?: string;\n    wasClean?: boolean;\n}\n\ninterface CryptoKeyPair {\n    privateKey: CryptoKey;\n    publicKey: CryptoKey;\n}\n\ninterface CustomEventInit<T = any> extends EventInit {\n    detail?: T;\n}\n\ninterface DOMMatrix2DInit {\n    a?: number;\n    b?: number;\n    c?: number;\n    d?: number;\n    e?: number;\n    f?: number;\n    m11?: number;\n    m12?: number;\n    m21?: number;\n    m22?: number;\n    m41?: number;\n    m42?: number;\n}\n\ninterface DOMMatrixInit extends DOMMatrix2DInit {\n    is2D?: boolean;\n    m13?: number;\n    m14?: number;\n    m23?: number;\n    m24?: number;\n    m31?: number;\n    m32?: number;\n    m33?: number;\n    m34?: number;\n    m43?: number;\n    m44?: number;\n}\n\ninterface DOMPointInit {\n    w?: number;\n    x?: number;\n    y?: number;\n    z?: number;\n}\n\ninterface DOMQuadInit {\n    p1?: DOMPointInit;\n    p2?: DOMPointInit;\n    p3?: DOMPointInit;\n    p4?: DOMPointInit;\n}\n\ninterface DOMRectInit {\n    height?: number;\n    width?: number;\n    x?: number;\n    y?: number;\n}\n\ninterface EcKeyGenParams extends Algorithm {\n    namedCurve: NamedCurve;\n}\n\ninterface EcKeyImportParams extends Algorithm {\n    namedCurve: NamedCurve;\n}\n\ninterface EcdhKeyDeriveParams extends Algorithm {\n    public: CryptoKey;\n}\n\ninterface EcdsaParams extends Algorithm {\n    hash: HashAlgorithmIdentifier;\n}\n\ninterface ErrorEventInit extends EventInit {\n    colno?: number;\n    error?: any;\n    filename?: string;\n    lineno?: number;\n    message?: string;\n}\n\ninterface EventInit {\n    bubbles?: boolean;\n    cancelable?: boolean;\n    composed?: boolean;\n}\n\ninterface EventListenerOptions {\n    capture?: boolean;\n}\n\ninterface EventSourceInit {\n    withCredentials?: boolean;\n}\n\ninterface ExtendableEventInit extends EventInit {\n}\n\ninterface ExtendableMessageEventInit extends ExtendableEventInit {\n    data?: any;\n    lastEventId?: string;\n    origin?: string;\n    ports?: MessagePort[];\n    source?: Client | ServiceWorker | MessagePort | null;\n}\n\ninterface FetchEventInit extends ExtendableEventInit {\n    clientId?: string;\n    handled?: Promise<undefined>;\n    preloadResponse?: Promise<any>;\n    replacesClientId?: string;\n    request: Request;\n    resultingClientId?: string;\n}\n\ninterface FilePropertyBag extends BlobPropertyBag {\n    lastModified?: number;\n}\n\ninterface FileSystemGetDirectoryOptions {\n    create?: boolean;\n}\n\ninterface FileSystemGetFileOptions {\n    create?: boolean;\n}\n\ninterface FileSystemRemoveOptions {\n    recursive?: boolean;\n}\n\ninterface FontFaceDescriptors {\n    display?: string;\n    featureSettings?: string;\n    stretch?: string;\n    style?: string;\n    unicodeRange?: string;\n    variant?: string;\n    weight?: string;\n}\n\ninterface FontFaceSetLoadEventInit extends EventInit {\n    fontfaces?: FontFace[];\n}\n\ninterface GetNotificationOptions {\n    tag?: string;\n}\n\ninterface HkdfParams extends Algorithm {\n    hash: HashAlgorithmIdentifier;\n    info: BufferSource;\n    salt: BufferSource;\n}\n\ninterface HmacImportParams extends Algorithm {\n    hash: HashAlgorithmIdentifier;\n    length?: number;\n}\n\ninterface HmacKeyGenParams extends Algorithm {\n    hash: HashAlgorithmIdentifier;\n    length?: number;\n}\n\ninterface IDBDatabaseInfo {\n    name?: string;\n    version?: number;\n}\n\ninterface IDBIndexParameters {\n    multiEntry?: boolean;\n    unique?: boolean;\n}\n\ninterface IDBObjectStoreParameters {\n    autoIncrement?: boolean;\n    keyPath?: string | string[] | null;\n}\n\ninterface IDBTransactionOptions {\n    durability?: IDBTransactionDurability;\n}\n\ninterface IDBVersionChangeEventInit extends EventInit {\n    newVersion?: number | null;\n    oldVersion?: number;\n}\n\ninterface ImageBitmapOptions {\n    colorSpaceConversion?: ColorSpaceConversion;\n    imageOrientation?: ImageOrientation;\n    premultiplyAlpha?: PremultiplyAlpha;\n    resizeHeight?: number;\n    resizeQuality?: ResizeQuality;\n    resizeWidth?: number;\n}\n\ninterface ImageBitmapRenderingContextSettings {\n    alpha?: boolean;\n}\n\ninterface ImageDataSettings {\n    colorSpace?: PredefinedColorSpace;\n}\n\ninterface ImportMeta {\n    url: string;\n}\n\ninterface JsonWebKey {\n    alg?: string;\n    crv?: string;\n    d?: string;\n    dp?: string;\n    dq?: string;\n    e?: string;\n    ext?: boolean;\n    k?: string;\n    key_ops?: string[];\n    kty?: string;\n    n?: string;\n    oth?: RsaOtherPrimesInfo[];\n    p?: string;\n    q?: string;\n    qi?: string;\n    use?: string;\n    x?: string;\n    y?: string;\n}\n\ninterface KeyAlgorithm {\n    name: string;\n}\n\ninterface LockInfo {\n    clientId?: string;\n    mode?: LockMode;\n    name?: string;\n}\n\ninterface LockManagerSnapshot {\n    held?: LockInfo[];\n    pending?: LockInfo[];\n}\n\ninterface LockOptions {\n    ifAvailable?: boolean;\n    mode?: LockMode;\n    signal?: AbortSignal;\n    steal?: boolean;\n}\n\ninterface MediaCapabilitiesDecodingInfo extends MediaCapabilitiesInfo {\n    configuration?: MediaDecodingConfiguration;\n}\n\ninterface MediaCapabilitiesEncodingInfo extends MediaCapabilitiesInfo {\n    configuration?: MediaEncodingConfiguration;\n}\n\ninterface MediaCapabilitiesInfo {\n    powerEfficient: boolean;\n    smooth: boolean;\n    supported: boolean;\n}\n\ninterface MediaConfiguration {\n    audio?: AudioConfiguration;\n    video?: VideoConfiguration;\n}\n\ninterface MediaDecodingConfiguration extends MediaConfiguration {\n    type: MediaDecodingType;\n}\n\ninterface MediaEncodingConfiguration extends MediaConfiguration {\n    type: MediaEncodingType;\n}\n\ninterface MessageEventInit<T = any> extends EventInit {\n    data?: T;\n    lastEventId?: string;\n    origin?: string;\n    ports?: MessagePort[];\n    source?: MessageEventSource | null;\n}\n\ninterface MultiCacheQueryOptions extends CacheQueryOptions {\n    cacheName?: string;\n}\n\ninterface NavigationPreloadState {\n    enabled?: boolean;\n    headerValue?: string;\n}\n\ninterface NotificationAction {\n    action: string;\n    icon?: string;\n    title: string;\n}\n\ninterface NotificationEventInit extends ExtendableEventInit {\n    action?: string;\n    notification: Notification;\n}\n\ninterface NotificationOptions {\n    actions?: NotificationAction[];\n    badge?: string;\n    body?: string;\n    data?: any;\n    dir?: NotificationDirection;\n    icon?: string;\n    image?: string;\n    lang?: string;\n    renotify?: boolean;\n    requireInteraction?: boolean;\n    silent?: boolean;\n    tag?: string;\n    timestamp?: EpochTimeStamp;\n    vibrate?: VibratePattern;\n}\n\ninterface Pbkdf2Params extends Algorithm {\n    hash: HashAlgorithmIdentifier;\n    iterations: number;\n    salt: BufferSource;\n}\n\ninterface PerformanceMarkOptions {\n    detail?: any;\n    startTime?: DOMHighResTimeStamp;\n}\n\ninterface PerformanceMeasureOptions {\n    detail?: any;\n    duration?: DOMHighResTimeStamp;\n    end?: string | DOMHighResTimeStamp;\n    start?: string | DOMHighResTimeStamp;\n}\n\ninterface PerformanceObserverInit {\n    buffered?: boolean;\n    entryTypes?: string[];\n    type?: string;\n}\n\ninterface PermissionDescriptor {\n    name: PermissionName;\n}\n\ninterface ProgressEventInit extends EventInit {\n    lengthComputable?: boolean;\n    loaded?: number;\n    total?: number;\n}\n\ninterface PromiseRejectionEventInit extends EventInit {\n    promise: Promise<any>;\n    reason?: any;\n}\n\ninterface PushEventInit extends ExtendableEventInit {\n    data?: PushMessageDataInit;\n}\n\ninterface PushSubscriptionJSON {\n    endpoint?: string;\n    expirationTime?: EpochTimeStamp | null;\n    keys?: Record<string, string>;\n}\n\ninterface PushSubscriptionOptionsInit {\n    applicationServerKey?: BufferSource | string | null;\n    userVisibleOnly?: boolean;\n}\n\ninterface QueuingStrategy<T = any> {\n    highWaterMark?: number;\n    size?: QueuingStrategySize<T>;\n}\n\ninterface QueuingStrategyInit {\n    /**\n     * Creates a new ByteLengthQueuingStrategy with the provided high water mark.\n     *\n     * Note that the provided high water mark will not be validated ahead of time. Instead, if it is negative, NaN, or not a number, the resulting ByteLengthQueuingStrategy will cause the corresponding stream constructor to throw.\n     */\n    highWaterMark: number;\n}\n\ninterface RTCEncodedAudioFrameMetadata {\n    contributingSources?: number[];\n    synchronizationSource?: number;\n}\n\ninterface RTCEncodedVideoFrameMetadata {\n    contributingSources?: number[];\n    dependencies?: number[];\n    frameId?: number;\n    height?: number;\n    spatialIndex?: number;\n    synchronizationSource?: number;\n    temporalIndex?: number;\n    width?: number;\n}\n\ninterface ReadableStreamGetReaderOptions {\n    /**\n     * Creates a ReadableStreamBYOBReader and locks the stream to the new reader.\n     *\n     * This call behaves the same way as the no-argument variant, except that it only works on readable byte streams, i.e. streams which were constructed specifically with the ability to handle \"bring your own buffer\" reading. The returned BYOB reader provides the ability to directly read individual chunks from the stream via its read() method, into developer-supplied buffers, allowing more precise control over allocation.\n     */\n    mode?: ReadableStreamReaderMode;\n}\n\ninterface ReadableStreamReadDoneResult<T> {\n    done: true;\n    value?: T;\n}\n\ninterface ReadableStreamReadValueResult<T> {\n    done: false;\n    value: T;\n}\n\ninterface ReadableWritablePair<R = any, W = any> {\n    readable: ReadableStream<R>;\n    /**\n     * Provides a convenient, chainable way of piping this readable stream through a transform stream (or any other { writable, readable } pair). It simply pipes the stream into the writable side of the supplied pair, and returns the readable side for further use.\n     *\n     * Piping a stream will lock it for the duration of the pipe, preventing any other consumer from acquiring a reader.\n     */\n    writable: WritableStream<W>;\n}\n\ninterface RegistrationOptions {\n    scope?: string;\n    type?: WorkerType;\n    updateViaCache?: ServiceWorkerUpdateViaCache;\n}\n\ninterface RequestInit {\n    /** A BodyInit object or null to set request's body. */\n    body?: BodyInit | null;\n    /** A string indicating how the request will interact with the browser's cache to set request's cache. */\n    cache?: RequestCache;\n    /** A string indicating whether credentials will be sent with the request always, never, or only when sent to a same-origin URL. Sets request's credentials. */\n    credentials?: RequestCredentials;\n    /** A Headers object, an object literal, or an array of two-item arrays to set request's headers. */\n    headers?: HeadersInit;\n    /** A cryptographic hash of the resource to be fetched by request. Sets request's integrity. */\n    integrity?: string;\n    /** A boolean to set request's keepalive. */\n    keepalive?: boolean;\n    /** A string to set request's method. */\n    method?: string;\n    /** A string to indicate whether the request will use CORS, or will be restricted to same-origin URLs. Sets request's mode. */\n    mode?: RequestMode;\n    /** A string indicating whether request follows redirects, results in an error upon encountering a redirect, or returns the redirect (in an opaque fashion). Sets request's redirect. */\n    redirect?: RequestRedirect;\n    /** A string whose value is a same-origin URL, \"about:client\", or the empty string, to set request's referrer. */\n    referrer?: string;\n    /** A referrer policy to set request's referrerPolicy. */\n    referrerPolicy?: ReferrerPolicy;\n    /** An AbortSignal to set request's signal. */\n    signal?: AbortSignal | null;\n    /** Can only be null. Used to disassociate request from any Window. */\n    window?: null;\n}\n\ninterface ResponseInit {\n    headers?: HeadersInit;\n    status?: number;\n    statusText?: string;\n}\n\ninterface RsaHashedImportParams extends Algorithm {\n    hash: HashAlgorithmIdentifier;\n}\n\ninterface RsaHashedKeyGenParams extends RsaKeyGenParams {\n    hash: HashAlgorithmIdentifier;\n}\n\ninterface RsaKeyGenParams extends Algorithm {\n    modulusLength: number;\n    publicExponent: BigInteger;\n}\n\ninterface RsaOaepParams extends Algorithm {\n    label?: BufferSource;\n}\n\ninterface RsaOtherPrimesInfo {\n    d?: string;\n    r?: string;\n    t?: string;\n}\n\ninterface RsaPssParams extends Algorithm {\n    saltLength: number;\n}\n\ninterface SecurityPolicyViolationEventInit extends EventInit {\n    blockedURI?: string;\n    columnNumber?: number;\n    disposition: SecurityPolicyViolationEventDisposition;\n    documentURI: string;\n    effectiveDirective: string;\n    lineNumber?: number;\n    originalPolicy: string;\n    referrer?: string;\n    sample?: string;\n    sourceFile?: string;\n    statusCode: number;\n    violatedDirective: string;\n}\n\ninterface StorageEstimate {\n    quota?: number;\n    usage?: number;\n}\n\ninterface StreamPipeOptions {\n    preventAbort?: boolean;\n    preventCancel?: boolean;\n    /**\n     * Pipes this readable stream to a given writable stream destination. The way in which the piping process behaves under various error conditions can be customized with a number of passed options. It returns a promise that fulfills when the piping process completes successfully, or rejects if any errors were encountered.\n     *\n     * Piping a stream will lock it for the duration of the pipe, preventing any other consumer from acquiring a reader.\n     *\n     * Errors and closures of the source and destination streams propagate as follows:\n     *\n     * An error in this source readable stream will abort destination, unless preventAbort is truthy. The returned promise will be rejected with the source's error, or with any error that occurs during aborting the destination.\n     *\n     * An error in destination will cancel this source readable stream, unless preventCancel is truthy. The returned promise will be rejected with the destination's error, or with any error that occurs during canceling the source.\n     *\n     * When this source readable stream closes, destination will be closed, unless preventClose is truthy. The returned promise will be fulfilled once this process completes, unless an error is encountered while closing the destination, in which case it will be rejected with that error.\n     *\n     * If destination starts out closed or closing, this source readable stream will be canceled, unless preventCancel is true. The returned promise will be rejected with an error indicating piping to a closed stream failed, or with any error that occurs during canceling the source.\n     *\n     * The signal option can be set to an AbortSignal to allow aborting an ongoing pipe operation via the corresponding AbortController. In this case, this source readable stream will be canceled, and destination aborted, unless the respective options preventCancel or preventAbort are set.\n     */\n    preventClose?: boolean;\n    signal?: AbortSignal;\n}\n\ninterface StructuredSerializeOptions {\n    transfer?: Transferable[];\n}\n\ninterface TextDecodeOptions {\n    stream?: boolean;\n}\n\ninterface TextDecoderOptions {\n    fatal?: boolean;\n    ignoreBOM?: boolean;\n}\n\ninterface TextEncoderEncodeIntoResult {\n    read?: number;\n    written?: number;\n}\n\ninterface Transformer<I = any, O = any> {\n    flush?: TransformerFlushCallback<O>;\n    readableType?: undefined;\n    start?: TransformerStartCallback<O>;\n    transform?: TransformerTransformCallback<I, O>;\n    writableType?: undefined;\n}\n\ninterface UnderlyingByteSource {\n    autoAllocateChunkSize?: number;\n    cancel?: UnderlyingSourceCancelCallback;\n    pull?: (controller: ReadableByteStreamController) => void | PromiseLike<void>;\n    start?: (controller: ReadableByteStreamController) => any;\n    type: \"bytes\";\n}\n\ninterface UnderlyingDefaultSource<R = any> {\n    cancel?: UnderlyingSourceCancelCallback;\n    pull?: (controller: ReadableStreamDefaultController<R>) => void | PromiseLike<void>;\n    start?: (controller: ReadableStreamDefaultController<R>) => any;\n    type?: undefined;\n}\n\ninterface UnderlyingSink<W = any> {\n    abort?: UnderlyingSinkAbortCallback;\n    close?: UnderlyingSinkCloseCallback;\n    start?: UnderlyingSinkStartCallback;\n    type?: undefined;\n    write?: UnderlyingSinkWriteCallback<W>;\n}\n\ninterface UnderlyingSource<R = any> {\n    autoAllocateChunkSize?: number;\n    cancel?: UnderlyingSourceCancelCallback;\n    pull?: UnderlyingSourcePullCallback<R>;\n    start?: UnderlyingSourceStartCallback<R>;\n    type?: ReadableStreamType;\n}\n\ninterface VideoColorSpaceInit {\n    fullRange?: boolean | null;\n    matrix?: VideoMatrixCoefficients | null;\n    primaries?: VideoColorPrimaries | null;\n    transfer?: VideoTransferCharacteristics | null;\n}\n\ninterface VideoConfiguration {\n    bitrate: number;\n    colorGamut?: ColorGamut;\n    contentType: string;\n    framerate: number;\n    hdrMetadataType?: HdrMetadataType;\n    height: number;\n    scalabilityMode?: string;\n    transferFunction?: TransferFunction;\n    width: number;\n}\n\ninterface WebGLContextAttributes {\n    alpha?: boolean;\n    antialias?: boolean;\n    depth?: boolean;\n    desynchronized?: boolean;\n    failIfMajorPerformanceCaveat?: boolean;\n    powerPreference?: WebGLPowerPreference;\n    premultipliedAlpha?: boolean;\n    preserveDrawingBuffer?: boolean;\n    stencil?: boolean;\n}\n\ninterface WebGLContextEventInit extends EventInit {\n    statusMessage?: string;\n}\n\ninterface WorkerOptions {\n    credentials?: RequestCredentials;\n    name?: string;\n    type?: WorkerType;\n}\n\n/** The ANGLE_instanced_arrays extension is part of the WebGL API and allows to draw the same object, or groups of similar objects multiple times, if they share the same vertex data, primitive count and type. */\ninterface ANGLE_instanced_arrays {\n    drawArraysInstancedANGLE(mode: GLenum, first: GLint, count: GLsizei, primcount: GLsizei): void;\n    drawElementsInstancedANGLE(mode: GLenum, count: GLsizei, type: GLenum, offset: GLintptr, primcount: GLsizei): void;\n    vertexAttribDivisorANGLE(index: GLuint, divisor: GLuint): void;\n    readonly VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE: GLenum;\n}\n\n/** A controller object that allows you to abort one or more DOM requests as and when desired. */\ninterface AbortController {\n    /** Returns the AbortSignal object associated with this object. */\n    readonly signal: AbortSignal;\n    /** Invoking this method will set this object's AbortSignal's aborted flag and signal to any observers that the associated activity is to be aborted. */\n    abort(reason?: any): void;\n}\n\ndeclare var AbortController: {\n    prototype: AbortController;\n    new(): AbortController;\n};\n\ninterface AbortSignalEventMap {\n    \"abort\": Event;\n}\n\n/** A signal object that allows you to communicate with a DOM request (such as a Fetch) and abort it if required via an AbortController object. */\ninterface AbortSignal extends EventTarget {\n    /** Returns true if this AbortSignal's AbortController has signaled to abort, and false otherwise. */\n    readonly aborted: boolean;\n    onabort: ((this: AbortSignal, ev: Event) => any) | null;\n    readonly reason: any;\n    throwIfAborted(): void;\n    addEventListener<K extends keyof AbortSignalEventMap>(type: K, listener: (this: AbortSignal, ev: AbortSignalEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n    removeEventListener<K extends keyof AbortSignalEventMap>(type: K, listener: (this: AbortSignal, ev: AbortSignalEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var AbortSignal: {\n    prototype: AbortSignal;\n    new(): AbortSignal;\n    abort(reason?: any): AbortSignal;\n    timeout(milliseconds: number): AbortSignal;\n};\n\ninterface AbstractWorkerEventMap {\n    \"error\": ErrorEvent;\n}\n\ninterface AbstractWorker {\n    onerror: ((this: AbstractWorker, ev: ErrorEvent) => any) | null;\n    addEventListener<K extends keyof AbstractWorkerEventMap>(type: K, listener: (this: AbstractWorker, ev: AbstractWorkerEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n    removeEventListener<K extends keyof AbstractWorkerEventMap>(type: K, listener: (this: AbstractWorker, ev: AbstractWorkerEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ninterface AnimationFrameProvider {\n    cancelAnimationFrame(handle: number): void;\n    requestAnimationFrame(callback: FrameRequestCallback): number;\n}\n\n/** A file-like object of immutable, raw data. Blobs represent data that isn't necessarily in a JavaScript-native format. The File interface is based on Blob, inheriting blob functionality and expanding it to support files on the user's system. */\ninterface Blob {\n    readonly size: number;\n    readonly type: string;\n    arrayBuffer(): Promise<ArrayBuffer>;\n    slice(start?: number, end?: number, contentType?: string): Blob;\n    stream(): ReadableStream<Uint8Array>;\n    text(): Promise<string>;\n}\n\ndeclare var Blob: {\n    prototype: Blob;\n    new(blobParts?: BlobPart[], options?: BlobPropertyBag): Blob;\n};\n\ninterface Body {\n    readonly body: ReadableStream<Uint8Array> | null;\n    readonly bodyUsed: boolean;\n    arrayBuffer(): Promise<ArrayBuffer>;\n    blob(): Promise<Blob>;\n    formData(): Promise<FormData>;\n    json(): Promise<any>;\n    text(): Promise<string>;\n}\n\ninterface BroadcastChannelEventMap {\n    \"message\": MessageEvent;\n    \"messageerror\": MessageEvent;\n}\n\ninterface BroadcastChannel extends EventTarget {\n    /** Returns the channel name (as passed to the constructor). */\n    readonly name: string;\n    onmessage: ((this: BroadcastChannel, ev: MessageEvent) => any) | null;\n    onmessageerror: ((this: BroadcastChannel, ev: MessageEvent) => any) | null;\n    /** Closes the BroadcastChannel object, opening it up to garbage collection. */\n    close(): void;\n    /** Sends the given message to other BroadcastChannel objects set up for this channel. Messages can be structured objects, e.g. nested objects and arrays. */\n    postMessage(message: any): void;\n    addEventListener<K extends keyof BroadcastChannelEventMap>(type: K, listener: (this: BroadcastChannel, ev: BroadcastChannelEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n    removeEventListener<K extends keyof BroadcastChannelEventMap>(type: K, listener: (this: BroadcastChannel, ev: BroadcastChannelEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var BroadcastChannel: {\n    prototype: BroadcastChannel;\n    new(name: string): BroadcastChannel;\n};\n\n/** This Streams API interface provides a built-in byte length queuing strategy that can be used when constructing streams. */\ninterface ByteLengthQueuingStrategy extends QueuingStrategy<ArrayBufferView> {\n    readonly highWaterMark: number;\n    readonly size: QueuingStrategySize<ArrayBufferView>;\n}\n\ndeclare var ByteLengthQueuingStrategy: {\n    prototype: ByteLengthQueuingStrategy;\n    new(init: QueuingStrategyInit): ByteLengthQueuingStrategy;\n};\n\n/**\n * Provides a storage mechanism for Request / Response object pairs that are cached, for example as part of the ServiceWorker life cycle. Note that the Cache interface is exposed to windowed scopes as well as workers. You don't have to use it in conjunction with service workers, even though it is defined in the service worker spec.\n * Available only in secure contexts.\n */\ninterface Cache {\n    add(request: RequestInfo | URL): Promise<void>;\n    addAll(requests: RequestInfo[]): Promise<void>;\n    delete(request: RequestInfo | URL, options?: CacheQueryOptions): Promise<boolean>;\n    keys(request?: RequestInfo | URL, options?: CacheQueryOptions): Promise<ReadonlyArray<Request>>;\n    match(request: RequestInfo | URL, options?: CacheQueryOptions): Promise<Response | undefined>;\n    matchAll(request?: RequestInfo | URL, options?: CacheQueryOptions): Promise<ReadonlyArray<Response>>;\n    put(request: RequestInfo | URL, response: Response): Promise<void>;\n}\n\ndeclare var Cache: {\n    prototype: Cache;\n    new(): Cache;\n};\n\n/**\n * The storage for Cache objects.\n * Available only in secure contexts.\n */\ninterface CacheStorage {\n    delete(cacheName: string): Promise<boolean>;\n    has(cacheName: string): Promise<boolean>;\n    keys(): Promise<string[]>;\n    match(request: RequestInfo | URL, options?: MultiCacheQueryOptions): Promise<Response | undefined>;\n    open(cacheName: string): Promise<Cache>;\n}\n\ndeclare var CacheStorage: {\n    prototype: CacheStorage;\n    new(): CacheStorage;\n};\n\ninterface CanvasCompositing {\n    globalAlpha: number;\n    globalCompositeOperation: GlobalCompositeOperation;\n}\n\ninterface CanvasDrawImage {\n    drawImage(image: CanvasImageSource, dx: number, dy: number): void;\n    drawImage(image: CanvasImageSource, dx: number, dy: number, dw: number, dh: number): void;\n    drawImage(image: CanvasImageSource, sx: number, sy: number, sw: number, sh: number, dx: number, dy: number, dw: number, dh: number): void;\n}\n\ninterface CanvasDrawPath {\n    beginPath(): void;\n    clip(fillRule?: CanvasFillRule): void;\n    clip(path: Path2D, fillRule?: CanvasFillRule): void;\n    fill(fillRule?: CanvasFillRule): void;\n    fill(path: Path2D, fillRule?: CanvasFillRule): void;\n    isPointInPath(x: number, y: number, fillRule?: CanvasFillRule): boolean;\n    isPointInPath(path: Path2D, x: number, y: number, fillRule?: CanvasFillRule): boolean;\n    isPointInStroke(x: number, y: number): boolean;\n    isPointInStroke(path: Path2D, x: number, y: number): boolean;\n    stroke(): void;\n    stroke(path: Path2D): void;\n}\n\ninterface CanvasFillStrokeStyles {\n    fillStyle: string | CanvasGradient | CanvasPattern;\n    strokeStyle: string | CanvasGradient | CanvasPattern;\n    createConicGradient(startAngle: number, x: number, y: number): CanvasGradient;\n    createLinearGradient(x0: number, y0: number, x1: number, y1: number): CanvasGradient;\n    createPattern(image: CanvasImageSource, repetition: string | null): CanvasPattern | null;\n    createRadialGradient(x0: number, y0: number, r0: number, x1: number, y1: number, r1: number): CanvasGradient;\n}\n\ninterface CanvasFilters {\n    filter: string;\n}\n\n/** An opaque object describing a gradient. It is returned by the methods CanvasRenderingContext2D.createLinearGradient() or CanvasRenderingContext2D.createRadialGradient(). */\ninterface CanvasGradient {\n    /**\n     * Adds a color stop with the given color to the gradient at the given offset. 0.0 is the offset at one end of the gradient, 1.0 is the offset at the other end.\n     *\n     * Throws an \"IndexSizeError\" DOMException if the offset is out of range. Throws a \"SyntaxError\" DOMException if the color cannot be parsed.\n     */\n    addColorStop(offset: number, color: string): void;\n}\n\ndeclare var CanvasGradient: {\n    prototype: CanvasGradient;\n    new(): CanvasGradient;\n};\n\ninterface CanvasImageData {\n    createImageData(sw: number, sh: number, settings?: ImageDataSettings): ImageData;\n    createImageData(imagedata: ImageData): ImageData;\n    getImageData(sx: number, sy: number, sw: number, sh: number, settings?: ImageDataSettings): ImageData;\n    putImageData(imagedata: ImageData, dx: number, dy: number): void;\n    putImageData(imagedata: ImageData, dx: number, dy: number, dirtyX: number, dirtyY: number, dirtyWidth: number, dirtyHeight: number): void;\n}\n\ninterface CanvasImageSmoothing {\n    imageSmoothingEnabled: boolean;\n    imageSmoothingQuality: ImageSmoothingQuality;\n}\n\ninterface CanvasPath {\n    arc(x: number, y: number, radius: number, startAngle: number, endAngle: number, counterclockwise?: boolean): void;\n    arcTo(x1: number, y1: number, x2: number, y2: number, radius: number): void;\n    bezierCurveTo(cp1x: number, cp1y: number, cp2x: number, cp2y: number, x: number, y: number): void;\n    closePath(): void;\n    ellipse(x: number, y: number, radiusX: number, radiusY: number, rotation: number, startAngle: number, endAngle: number, counterclockwise?: boolean): void;\n    lineTo(x: number, y: number): void;\n    moveTo(x: number, y: number): void;\n    quadraticCurveTo(cpx: number, cpy: number, x: number, y: number): void;\n    rect(x: number, y: number, w: number, h: number): void;\n    roundRect(x: number, y: number, w: number, h: number, radii?: number | DOMPointInit | (number | DOMPointInit)[]): void;\n}\n\ninterface CanvasPathDrawingStyles {\n    lineCap: CanvasLineCap;\n    lineDashOffset: number;\n    lineJoin: CanvasLineJoin;\n    lineWidth: number;\n    miterLimit: number;\n    getLineDash(): number[];\n    setLineDash(segments: number[]): void;\n}\n\n/** An opaque object describing a pattern, based on an image, a canvas, or a video, created by the CanvasRenderingContext2D.createPattern() method. */\ninterface CanvasPattern {\n    /** Sets the transformation matrix that will be used when rendering the pattern during a fill or stroke painting operation. */\n    setTransform(transform?: DOMMatrix2DInit): void;\n}\n\ndeclare var CanvasPattern: {\n    prototype: CanvasPattern;\n    new(): CanvasPattern;\n};\n\ninterface CanvasRect {\n    clearRect(x: number, y: number, w: number, h: number): void;\n    fillRect(x: number, y: number, w: number, h: number): void;\n    strokeRect(x: number, y: number, w: number, h: number): void;\n}\n\ninterface CanvasShadowStyles {\n    shadowBlur: number;\n    shadowColor: string;\n    shadowOffsetX: number;\n    shadowOffsetY: number;\n}\n\ninterface CanvasState {\n    restore(): void;\n    save(): void;\n}\n\ninterface CanvasText {\n    fillText(text: string, x: number, y: number, maxWidth?: number): void;\n    measureText(text: string): TextMetrics;\n    strokeText(text: string, x: number, y: number, maxWidth?: number): void;\n}\n\ninterface CanvasTextDrawingStyles {\n    direction: CanvasDirection;\n    font: string;\n    fontKerning: CanvasFontKerning;\n    textAlign: CanvasTextAlign;\n    textBaseline: CanvasTextBaseline;\n}\n\ninterface CanvasTransform {\n    getTransform(): DOMMatrix;\n    resetTransform(): void;\n    rotate(angle: number): void;\n    scale(x: number, y: number): void;\n    setTransform(a: number, b: number, c: number, d: number, e: number, f: number): void;\n    setTransform(transform?: DOMMatrix2DInit): void;\n    transform(a: number, b: number, c: number, d: number, e: number, f: number): void;\n    translate(x: number, y: number): void;\n}\n\n/** The Client interface represents an executable context such as a Worker, or a SharedWorker. Window clients are represented by the more-specific WindowClient. You can get Client/WindowClient objects from methods such as Clients.matchAll() and Clients.get(). */\ninterface Client {\n    readonly frameType: FrameType;\n    readonly id: string;\n    readonly type: ClientTypes;\n    readonly url: string;\n    postMessage(message: any, transfer: Transferable[]): void;\n    postMessage(message: any, options?: StructuredSerializeOptions): void;\n}\n\ndeclare var Client: {\n    prototype: Client;\n    new(): Client;\n};\n\n/** Provides access to Client objects. Access it via self.clients within a service worker. */\ninterface Clients {\n    claim(): Promise<void>;\n    get(id: string): Promise<Client | undefined>;\n    matchAll<T extends ClientQueryOptions>(options?: T): Promise<ReadonlyArray<T[\"type\"] extends \"window\" ? WindowClient : Client>>;\n    openWindow(url: string | URL): Promise<WindowClient | null>;\n}\n\ndeclare var Clients: {\n    prototype: Clients;\n    new(): Clients;\n};\n\n/** A CloseEvent is sent to clients using WebSockets when the connection is closed. This is delivered to the listener indicated by the WebSocket object's onclose attribute. */\ninterface CloseEvent extends Event {\n    /** Returns the WebSocket connection close code provided by the server. */\n    readonly code: number;\n    /** Returns the WebSocket connection close reason provided by the server. */\n    readonly reason: string;\n    /** Returns true if the connection closed cleanly; false otherwise. */\n    readonly wasClean: boolean;\n}\n\ndeclare var CloseEvent: {\n    prototype: CloseEvent;\n    new(type: string, eventInitDict?: CloseEventInit): CloseEvent;\n};\n\n/** This Streams API interface provides a built-in byte length queuing strategy that can be used when constructing streams. */\ninterface CountQueuingStrategy extends QueuingStrategy {\n    readonly highWaterMark: number;\n    readonly size: QueuingStrategySize;\n}\n\ndeclare var CountQueuingStrategy: {\n    prototype: CountQueuingStrategy;\n    new(init: QueuingStrategyInit): CountQueuingStrategy;\n};\n\n/** Basic cryptography features available in the current context. It allows access to a cryptographically strong random number generator and to cryptographic primitives. */\ninterface Crypto {\n    /** Available only in secure contexts. */\n    readonly subtle: SubtleCrypto;\n    getRandomValues<T extends ArrayBufferView | null>(array: T): T;\n    /** Available only in secure contexts. */\n    randomUUID(): string;\n}\n\ndeclare var Crypto: {\n    prototype: Crypto;\n    new(): Crypto;\n};\n\n/**\n * The CryptoKey dictionary of the Web Crypto API represents a cryptographic key.\n * Available only in secure contexts.\n */\ninterface CryptoKey {\n    readonly algorithm: KeyAlgorithm;\n    readonly extractable: boolean;\n    readonly type: KeyType;\n    readonly usages: KeyUsage[];\n}\n\ndeclare var CryptoKey: {\n    prototype: CryptoKey;\n    new(): CryptoKey;\n};\n\ninterface CustomEvent<T = any> extends Event {\n    /** Returns any custom data event was created with. Typically used for synthetic events. */\n    readonly detail: T;\n    /** @deprecated */\n    initCustomEvent(type: string, bubbles?: boolean, cancelable?: boolean, detail?: T): void;\n}\n\ndeclare var CustomEvent: {\n    prototype: CustomEvent;\n    new<T>(type: string, eventInitDict?: CustomEventInit<T>): CustomEvent<T>;\n};\n\n/** An abnormal event (called an exception) which occurs as a result of calling a method or accessing a property of a web API. */\ninterface DOMException extends Error {\n    /** @deprecated */\n    readonly code: number;\n    readonly message: string;\n    readonly name: string;\n    readonly ABORT_ERR: number;\n    readonly DATA_CLONE_ERR: number;\n    readonly DOMSTRING_SIZE_ERR: number;\n    readonly HIERARCHY_REQUEST_ERR: number;\n    readonly INDEX_SIZE_ERR: number;\n    readonly INUSE_ATTRIBUTE_ERR: number;\n    readonly INVALID_ACCESS_ERR: number;\n    readonly INVALID_CHARACTER_ERR: number;\n    readonly INVALID_MODIFICATION_ERR: number;\n    readonly INVALID_NODE_TYPE_ERR: number;\n    readonly INVALID_STATE_ERR: number;\n    readonly NAMESPACE_ERR: number;\n    readonly NETWORK_ERR: number;\n    readonly NOT_FOUND_ERR: number;\n    readonly NOT_SUPPORTED_ERR: number;\n    readonly NO_DATA_ALLOWED_ERR: number;\n    readonly NO_MODIFICATION_ALLOWED_ERR: number;\n    readonly QUOTA_EXCEEDED_ERR: number;\n    readonly SECURITY_ERR: number;\n    readonly SYNTAX_ERR: number;\n    readonly TIMEOUT_ERR: number;\n    readonly TYPE_MISMATCH_ERR: number;\n    readonly URL_MISMATCH_ERR: number;\n    readonly VALIDATION_ERR: number;\n    readonly WRONG_DOCUMENT_ERR: number;\n}\n\ndeclare var DOMException: {\n    prototype: DOMException;\n    new(message?: string, name?: string): DOMException;\n    readonly ABORT_ERR: number;\n    readonly DATA_CLONE_ERR: number;\n    readonly DOMSTRING_SIZE_ERR: number;\n    readonly HIERARCHY_REQUEST_ERR: number;\n    readonly INDEX_SIZE_ERR: number;\n    readonly INUSE_ATTRIBUTE_ERR: number;\n    readonly INVALID_ACCESS_ERR: number;\n    readonly INVALID_CHARACTER_ERR: number;\n    readonly INVALID_MODIFICATION_ERR: number;\n    readonly INVALID_NODE_TYPE_ERR: number;\n    readonly INVALID_STATE_ERR: number;\n    readonly NAMESPACE_ERR: number;\n    readonly NETWORK_ERR: number;\n    readonly NOT_FOUND_ERR: number;\n    readonly NOT_SUPPORTED_ERR: number;\n    readonly NO_DATA_ALLOWED_ERR: number;\n    readonly NO_MODIFICATION_ALLOWED_ERR: number;\n    readonly QUOTA_EXCEEDED_ERR: number;\n    readonly SECURITY_ERR: number;\n    readonly SYNTAX_ERR: number;\n    readonly TIMEOUT_ERR: number;\n    readonly TYPE_MISMATCH_ERR: number;\n    readonly URL_MISMATCH_ERR: number;\n    readonly VALIDATION_ERR: number;\n    readonly WRONG_DOCUMENT_ERR: number;\n};\n\ninterface DOMMatrix extends DOMMatrixReadOnly {\n    a: number;\n    b: number;\n    c: number;\n    d: number;\n    e: number;\n    f: number;\n    m11: number;\n    m12: number;\n    m13: number;\n    m14: number;\n    m21: number;\n    m22: number;\n    m23: number;\n    m24: number;\n    m31: number;\n    m32: number;\n    m33: number;\n    m34: number;\n    m41: number;\n    m42: number;\n    m43: number;\n    m44: number;\n    invertSelf(): DOMMatrix;\n    multiplySelf(other?: DOMMatrixInit): DOMMatrix;\n    preMultiplySelf(other?: DOMMatrixInit): DOMMatrix;\n    rotateAxisAngleSelf(x?: number, y?: number, z?: number, angle?: number): DOMMatrix;\n    rotateFromVectorSelf(x?: number, y?: number): DOMMatrix;\n    rotateSelf(rotX?: number, rotY?: number, rotZ?: number): DOMMatrix;\n    scale3dSelf(scale?: number, originX?: number, originY?: number, originZ?: number): DOMMatrix;\n    scaleSelf(scaleX?: number, scaleY?: number, scaleZ?: number, originX?: number, originY?: number, originZ?: number): DOMMatrix;\n    skewXSelf(sx?: number): DOMMatrix;\n    skewYSelf(sy?: number): DOMMatrix;\n    translateSelf(tx?: number, ty?: number, tz?: number): DOMMatrix;\n}\n\ndeclare var DOMMatrix: {\n    prototype: DOMMatrix;\n    new(init?: string | number[]): DOMMatrix;\n    fromFloat32Array(array32: Float32Array): DOMMatrix;\n    fromFloat64Array(array64: Float64Array): DOMMatrix;\n    fromMatrix(other?: DOMMatrixInit): DOMMatrix;\n};\n\ninterface DOMMatrixReadOnly {\n    readonly a: number;\n    readonly b: number;\n    readonly c: number;\n    readonly d: number;\n    readonly e: number;\n    readonly f: number;\n    readonly is2D: boolean;\n    readonly isIdentity: boolean;\n    readonly m11: number;\n    readonly m12: number;\n    readonly m13: number;\n    readonly m14: number;\n    readonly m21: number;\n    readonly m22: number;\n    readonly m23: number;\n    readonly m24: number;\n    readonly m31: number;\n    readonly m32: number;\n    readonly m33: number;\n    readonly m34: number;\n    readonly m41: number;\n    readonly m42: number;\n    readonly m43: number;\n    readonly m44: number;\n    flipX(): DOMMatrix;\n    flipY(): DOMMatrix;\n    inverse(): DOMMatrix;\n    multiply(other?: DOMMatrixInit): DOMMatrix;\n    rotate(rotX?: number, rotY?: number, rotZ?: number): DOMMatrix;\n    rotateAxisAngle(x?: number, y?: number, z?: number, angle?: number): DOMMatrix;\n    rotateFromVector(x?: number, y?: number): DOMMatrix;\n    scale(scaleX?: number, scaleY?: number, scaleZ?: number, originX?: number, originY?: number, originZ?: number): DOMMatrix;\n    scale3d(scale?: number, originX?: number, originY?: number, originZ?: number): DOMMatrix;\n    /** @deprecated */\n    scaleNonUniform(scaleX?: number, scaleY?: number): DOMMatrix;\n    skewX(sx?: number): DOMMatrix;\n    skewY(sy?: number): DOMMatrix;\n    toFloat32Array(): Float32Array;\n    toFloat64Array(): Float64Array;\n    toJSON(): any;\n    transformPoint(point?: DOMPointInit): DOMPoint;\n    translate(tx?: number, ty?: number, tz?: number): DOMMatrix;\n}\n\ndeclare var DOMMatrixReadOnly: {\n    prototype: DOMMatrixReadOnly;\n    new(init?: string | number[]): DOMMatrixReadOnly;\n    fromFloat32Array(array32: Float32Array): DOMMatrixReadOnly;\n    fromFloat64Array(array64: Float64Array): DOMMatrixReadOnly;\n    fromMatrix(other?: DOMMatrixInit): DOMMatrixReadOnly;\n};\n\ninterface DOMPoint extends DOMPointReadOnly {\n    w: number;\n    x: number;\n    y: number;\n    z: number;\n}\n\ndeclare var DOMPoint: {\n    prototype: DOMPoint;\n    new(x?: number, y?: number, z?: number, w?: number): DOMPoint;\n    fromPoint(other?: DOMPointInit): DOMPoint;\n};\n\ninterface DOMPointReadOnly {\n    readonly w: number;\n    readonly x: number;\n    readonly y: number;\n    readonly z: number;\n    matrixTransform(matrix?: DOMMatrixInit): DOMPoint;\n    toJSON(): any;\n}\n\ndeclare var DOMPointReadOnly: {\n    prototype: DOMPointReadOnly;\n    new(x?: number, y?: number, z?: number, w?: number): DOMPointReadOnly;\n    fromPoint(other?: DOMPointInit): DOMPointReadOnly;\n};\n\ninterface DOMQuad {\n    readonly p1: DOMPoint;\n    readonly p2: DOMPoint;\n    readonly p3: DOMPoint;\n    readonly p4: DOMPoint;\n    getBounds(): DOMRect;\n    toJSON(): any;\n}\n\ndeclare var DOMQuad: {\n    prototype: DOMQuad;\n    new(p1?: DOMPointInit, p2?: DOMPointInit, p3?: DOMPointInit, p4?: DOMPointInit): DOMQuad;\n    fromQuad(other?: DOMQuadInit): DOMQuad;\n    fromRect(other?: DOMRectInit): DOMQuad;\n};\n\ninterface DOMRect extends DOMRectReadOnly {\n    height: number;\n    width: number;\n    x: number;\n    y: number;\n}\n\ndeclare var DOMRect: {\n    prototype: DOMRect;\n    new(x?: number, y?: number, width?: number, height?: number): DOMRect;\n    fromRect(other?: DOMRectInit): DOMRect;\n};\n\ninterface DOMRectReadOnly {\n    readonly bottom: number;\n    readonly height: number;\n    readonly left: number;\n    readonly right: number;\n    readonly top: number;\n    readonly width: number;\n    readonly x: number;\n    readonly y: number;\n    toJSON(): any;\n}\n\ndeclare var DOMRectReadOnly: {\n    prototype: DOMRectReadOnly;\n    new(x?: number, y?: number, width?: number, height?: number): DOMRectReadOnly;\n    fromRect(other?: DOMRectInit): DOMRectReadOnly;\n};\n\n/** A type returned by some APIs which contains a list of DOMString (strings). */\ninterface DOMStringList {\n    /** Returns the number of strings in strings. */\n    readonly length: number;\n    /** Returns true if strings contains string, and false otherwise. */\n    contains(string: string): boolean;\n    /** Returns the string with index index from strings. */\n    item(index: number): string | null;\n    [index: number]: string;\n}\n\ndeclare var DOMStringList: {\n    prototype: DOMStringList;\n    new(): DOMStringList;\n};\n\ninterface DedicatedWorkerGlobalScopeEventMap extends WorkerGlobalScopeEventMap {\n    \"message\": MessageEvent;\n    \"messageerror\": MessageEvent;\n}\n\n/** (the Worker global scope) is accessible through the self keyword. Some additional global functions, namespaces objects, and constructors, not typically associated with the worker global scope, but available on it, are listed in the JavaScript Reference. See also: Functions available to workers. */\ninterface DedicatedWorkerGlobalScope extends WorkerGlobalScope, AnimationFrameProvider {\n    /** Returns dedicatedWorkerGlobal's name, i.e. the value given to the Worker constructor. Primarily useful for debugging. */\n    readonly name: string;\n    onmessage: ((this: DedicatedWorkerGlobalScope, ev: MessageEvent) => any) | null;\n    onmessageerror: ((this: DedicatedWorkerGlobalScope, ev: MessageEvent) => any) | null;\n    /** Aborts dedicatedWorkerGlobal. */\n    close(): void;\n    /** Clones message and transmits it to the Worker object associated with dedicatedWorkerGlobal. transfer can be passed as a list of objects that are to be transferred rather than cloned. */\n    postMessage(message: any, transfer: Transferable[]): void;\n    postMessage(message: any, options?: StructuredSerializeOptions): void;\n    addEventListener<K extends keyof DedicatedWorkerGlobalScopeEventMap>(type: K, listener: (this: DedicatedWorkerGlobalScope, ev: DedicatedWorkerGlobalScopeEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n    removeEventListener<K extends keyof DedicatedWorkerGlobalScopeEventMap>(type: K, listener: (this: DedicatedWorkerGlobalScope, ev: DedicatedWorkerGlobalScopeEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var DedicatedWorkerGlobalScope: {\n    prototype: DedicatedWorkerGlobalScope;\n    new(): DedicatedWorkerGlobalScope;\n};\n\ninterface EXT_blend_minmax {\n    readonly MAX_EXT: GLenum;\n    readonly MIN_EXT: GLenum;\n}\n\ninterface EXT_color_buffer_float {\n}\n\ninterface EXT_color_buffer_half_float {\n    readonly FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT: GLenum;\n    readonly RGB16F_EXT: GLenum;\n    readonly RGBA16F_EXT: GLenum;\n    readonly UNSIGNED_NORMALIZED_EXT: GLenum;\n}\n\ninterface EXT_float_blend {\n}\n\n/** The EXT_frag_depth extension is part of the WebGL API and enables to set a depth value of a fragment from within the fragment shader. */\ninterface EXT_frag_depth {\n}\n\ninterface EXT_sRGB {\n    readonly FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT: GLenum;\n    readonly SRGB8_ALPHA8_EXT: GLenum;\n    readonly SRGB_ALPHA_EXT: GLenum;\n    readonly SRGB_EXT: GLenum;\n}\n\ninterface EXT_shader_texture_lod {\n}\n\ninterface EXT_texture_compression_bptc {\n    readonly COMPRESSED_RGBA_BPTC_UNORM_EXT: GLenum;\n    readonly COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT: GLenum;\n    readonly COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT: GLenum;\n    readonly COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT: GLenum;\n}\n\ninterface EXT_texture_compression_rgtc {\n    readonly COMPRESSED_RED_GREEN_RGTC2_EXT: GLenum;\n    readonly COMPRESSED_RED_RGTC1_EXT: GLenum;\n    readonly COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT: GLenum;\n    readonly COMPRESSED_SIGNED_RED_RGTC1_EXT: GLenum;\n}\n\n/** The EXT_texture_filter_anisotropic extension is part of the WebGL API and exposes two constants for anisotropic filtering (AF). */\ninterface EXT_texture_filter_anisotropic {\n    readonly MAX_TEXTURE_MAX_ANISOTROPY_EXT: GLenum;\n    readonly TEXTURE_MAX_ANISOTROPY_EXT: GLenum;\n}\n\ninterface EXT_texture_norm16 {\n    readonly R16_EXT: GLenum;\n    readonly R16_SNORM_EXT: GLenum;\n    readonly RG16_EXT: GLenum;\n    readonly RG16_SNORM_EXT: GLenum;\n    readonly RGB16_EXT: GLenum;\n    readonly RGB16_SNORM_EXT: GLenum;\n    readonly RGBA16_EXT: GLenum;\n    readonly RGBA16_SNORM_EXT: GLenum;\n}\n\n/** Events providing information related to errors in scripts or in files. */\ninterface ErrorEvent extends Event {\n    readonly colno: number;\n    readonly error: any;\n    readonly filename: string;\n    readonly lineno: number;\n    readonly message: string;\n}\n\ndeclare var ErrorEvent: {\n    prototype: ErrorEvent;\n    new(type: string, eventInitDict?: ErrorEventInit): ErrorEvent;\n};\n\n/** An event which takes place in the DOM. */\ninterface Event {\n    /** Returns true or false depending on how event was initialized. True if event goes through its target's ancestors in reverse tree order, and false otherwise. */\n    readonly bubbles: boolean;\n    /** @deprecated */\n    cancelBubble: boolean;\n    /** Returns true or false depending on how event was initialized. Its return value does not always carry meaning, but true can indicate that part of the operation during which event was dispatched, can be canceled by invoking the preventDefault() method. */\n    readonly cancelable: boolean;\n    /** Returns true or false depending on how event was initialized. True if event invokes listeners past a ShadowRoot node that is the root of its target, and false otherwise. */\n    readonly composed: boolean;\n    /** Returns the object whose event listener's callback is currently being invoked. */\n    readonly currentTarget: EventTarget | null;\n    /** Returns true if preventDefault() was invoked successfully to indicate cancelation, and false otherwise. */\n    readonly defaultPrevented: boolean;\n    /** Returns the event's phase, which is one of NONE, CAPTURING_PHASE, AT_TARGET, and BUBBLING_PHASE. */\n    readonly eventPhase: number;\n    /** Returns true if event was dispatched by the user agent, and false otherwise. */\n    readonly isTrusted: boolean;\n    /** @deprecated */\n    returnValue: boolean;\n    /** @deprecated */\n    readonly srcElement: EventTarget | null;\n    /** Returns the object to which event is dispatched (its target). */\n    readonly target: EventTarget | null;\n    /** Returns the event's timestamp as the number of milliseconds measured relative to the time origin. */\n    readonly timeStamp: DOMHighResTimeStamp;\n    /** Returns the type of event, e.g. \"click\", \"hashchange\", or \"submit\". */\n    readonly type: string;\n    /** Returns the invocation target objects of event's path (objects on which listeners will be invoked), except for any nodes in shadow trees of which the shadow root's mode is \"closed\" that are not reachable from event's currentTarget. */\n    composedPath(): EventTarget[];\n    /** @deprecated */\n    initEvent(type: string, bubbles?: boolean, cancelable?: boolean): void;\n    /** If invoked when the cancelable attribute value is true, and while executing a listener for the event with passive set to false, signals to the operation that caused event to be dispatched that it needs to be canceled. */\n    preventDefault(): void;\n    /** Invoking this method prevents event from reaching any registered event listeners after the current one finishes running and, when dispatched in a tree, also prevents event from reaching any other objects. */\n    stopImmediatePropagation(): void;\n    /** When dispatched in a tree, invoking this method prevents event from reaching any objects other than the current object. */\n    stopPropagation(): void;\n    readonly AT_TARGET: number;\n    readonly BUBBLING_PHASE: number;\n    readonly CAPTURING_PHASE: number;\n    readonly NONE: number;\n}\n\ndeclare var Event: {\n    prototype: Event;\n    new(type: string, eventInitDict?: EventInit): Event;\n    readonly AT_TARGET: number;\n    readonly BUBBLING_PHASE: number;\n    readonly CAPTURING_PHASE: number;\n    readonly NONE: number;\n};\n\ninterface EventListener {\n    (evt: Event): void;\n}\n\ninterface EventListenerObject {\n    handleEvent(object: Event): void;\n}\n\ninterface EventSourceEventMap {\n    \"error\": Event;\n    \"message\": MessageEvent;\n    \"open\": Event;\n}\n\ninterface EventSource extends EventTarget {\n    onerror: ((this: EventSource, ev: Event) => any) | null;\n    onmessage: ((this: EventSource, ev: MessageEvent) => any) | null;\n    onopen: ((this: EventSource, ev: Event) => any) | null;\n    /** Returns the state of this EventSource object's connection. It can have the values described below. */\n    readonly readyState: number;\n    /** Returns the URL providing the event stream. */\n    readonly url: string;\n    /** Returns true if the credentials mode for connection requests to the URL providing the event stream is set to \"include\", and false otherwise. */\n    readonly withCredentials: boolean;\n    /** Aborts any instances of the fetch algorithm started for this EventSource object, and sets the readyState attribute to CLOSED. */\n    close(): void;\n    readonly CLOSED: number;\n    readonly CONNECTING: number;\n    readonly OPEN: number;\n    addEventListener<K extends keyof EventSourceEventMap>(type: K, listener: (this: EventSource, ev: EventSourceEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n    addEventListener(type: string, listener: (this: EventSource, event: MessageEvent) => any, options?: boolean | AddEventListenerOptions): void;\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n    removeEventListener<K extends keyof EventSourceEventMap>(type: K, listener: (this: EventSource, ev: EventSourceEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n    removeEventListener(type: string, listener: (this: EventSource, event: MessageEvent) => any, options?: boolean | EventListenerOptions): void;\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var EventSource: {\n    prototype: EventSource;\n    new(url: string | URL, eventSourceInitDict?: EventSourceInit): EventSource;\n    readonly CLOSED: number;\n    readonly CONNECTING: number;\n    readonly OPEN: number;\n};\n\n/** EventTarget is a DOM interface implemented by objects that can receive events and may have listeners for them. */\ninterface EventTarget {\n    /**\n     * Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched.\n     *\n     * The options argument sets listener-specific options. For compatibility this can be a boolean, in which case the method behaves exactly as if the value was specified as options's capture.\n     *\n     * When set to true, options's capture prevents callback from being invoked when the event's eventPhase attribute value is BUBBLING_PHASE. When false (or not present), callback will not be invoked when event's eventPhase attribute value is CAPTURING_PHASE. Either way, callback will be invoked if event's eventPhase attribute value is AT_TARGET.\n     *\n     * When set to true, options's passive indicates that the callback will not cancel the event by invoking preventDefault(). This is used to enable performance optimizations described in § 2.8 Observing event listeners.\n     *\n     * When set to true, options's once indicates that the callback will only be invoked once after which the event listener will be removed.\n     *\n     * If an AbortSignal is passed for options's signal, then the event listener will be removed when signal is aborted.\n     *\n     * The event listener is appended to target's event listener list and is not appended if it has the same type, callback, and capture.\n     */\n    addEventListener(type: string, callback: EventListenerOrEventListenerObject | null, options?: AddEventListenerOptions | boolean): void;\n    /** Dispatches a synthetic event event to target and returns true if either event's cancelable attribute value is false or its preventDefault() method was not invoked, and false otherwise. */\n    dispatchEvent(event: Event): boolean;\n    /** Removes the event listener in target's event listener list with the same type, callback, and options. */\n    removeEventListener(type: string, callback: EventListenerOrEventListenerObject | null, options?: EventListenerOptions | boolean): void;\n}\n\ndeclare var EventTarget: {\n    prototype: EventTarget;\n    new(): EventTarget;\n};\n\n/** Extends the lifetime of the install and activate events dispatched on the global scope as part of the service worker lifecycle. This ensures that any functional events (like FetchEvent) are not dispatched until it upgrades database schemas and deletes the outdated cache entries. */\ninterface ExtendableEvent extends Event {\n    waitUntil(f: Promise<any>): void;\n}\n\ndeclare var ExtendableEvent: {\n    prototype: ExtendableEvent;\n    new(type: string, eventInitDict?: ExtendableEventInit): ExtendableEvent;\n};\n\n/** This ServiceWorker API interface represents the event object of a message event fired on a service worker (when a channel message is received on the ServiceWorkerGlobalScope from another context) — extends the lifetime of such events. */\ninterface ExtendableMessageEvent extends ExtendableEvent {\n    readonly data: any;\n    readonly lastEventId: string;\n    readonly origin: string;\n    readonly ports: ReadonlyArray<MessagePort>;\n    readonly source: Client | ServiceWorker | MessagePort | null;\n}\n\ndeclare var ExtendableMessageEvent: {\n    prototype: ExtendableMessageEvent;\n    new(type: string, eventInitDict?: ExtendableMessageEventInit): ExtendableMessageEvent;\n};\n\n/** This is the event type for fetch events dispatched on the service worker global scope. It contains information about the fetch, including the request and how the receiver will treat the response. It provides the event.respondWith() method, which allows us to provide a response to this fetch. */\ninterface FetchEvent extends ExtendableEvent {\n    readonly clientId: string;\n    readonly handled: Promise<undefined>;\n    readonly preloadResponse: Promise<any>;\n    readonly request: Request;\n    readonly resultingClientId: string;\n    respondWith(r: Response | PromiseLike<Response>): void;\n}\n\ndeclare var FetchEvent: {\n    prototype: FetchEvent;\n    new(type: string, eventInitDict: FetchEventInit): FetchEvent;\n};\n\n/** Provides information about files and allows JavaScript in a web page to access their content. */\ninterface File extends Blob {\n    readonly lastModified: number;\n    readonly name: string;\n    readonly webkitRelativePath: string;\n}\n\ndeclare var File: {\n    prototype: File;\n    new(fileBits: BlobPart[], fileName: string, options?: FilePropertyBag): File;\n};\n\n/** An object of this type is returned by the files property of the HTML <input> element; this lets you access the list of files selected with the <input type=\"file\"> element. It's also used for a list of files dropped into web content when using the drag and drop API; see the DataTransfer object for details on this usage. */\ninterface FileList {\n    readonly length: number;\n    item(index: number): File | null;\n    [index: number]: File;\n}\n\ndeclare var FileList: {\n    prototype: FileList;\n    new(): FileList;\n};\n\ninterface FileReaderEventMap {\n    \"abort\": ProgressEvent<FileReader>;\n    \"error\": ProgressEvent<FileReader>;\n    \"load\": ProgressEvent<FileReader>;\n    \"loadend\": ProgressEvent<FileReader>;\n    \"loadstart\": ProgressEvent<FileReader>;\n    \"progress\": ProgressEvent<FileReader>;\n}\n\n/** Lets web applications asynchronously read the contents of files (or raw data buffers) stored on the user's computer, using File or Blob objects to specify the file or data to read. */\ninterface FileReader extends EventTarget {\n    readonly error: DOMException | null;\n    onabort: ((this: FileReader, ev: ProgressEvent<FileReader>) => any) | null;\n    onerror: ((this: FileReader, ev: ProgressEvent<FileReader>) => any) | null;\n    onload: ((this: FileReader, ev: ProgressEvent<FileReader>) => any) | null;\n    onloadend: ((this: FileReader, ev: ProgressEvent<FileReader>) => any) | null;\n    onloadstart: ((this: FileReader, ev: ProgressEvent<FileReader>) => any) | null;\n    onprogress: ((this: FileReader, ev: ProgressEvent<FileReader>) => any) | null;\n    readonly readyState: number;\n    readonly result: string | ArrayBuffer | null;\n    abort(): void;\n    readAsArrayBuffer(blob: Blob): void;\n    readAsBinaryString(blob: Blob): void;\n    readAsDataURL(blob: Blob): void;\n    readAsText(blob: Blob, encoding?: string): void;\n    readonly DONE: number;\n    readonly EMPTY: number;\n    readonly LOADING: number;\n    addEventListener<K extends keyof FileReaderEventMap>(type: K, listener: (this: FileReader, ev: FileReaderEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n    removeEventListener<K extends keyof FileReaderEventMap>(type: K, listener: (this: FileReader, ev: FileReaderEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var FileReader: {\n    prototype: FileReader;\n    new(): FileReader;\n    readonly DONE: number;\n    readonly EMPTY: number;\n    readonly LOADING: number;\n};\n\n/** Allows to read File or Blob objects in a synchronous way. */\ninterface FileReaderSync {\n    readAsArrayBuffer(blob: Blob): ArrayBuffer;\n    /** @deprecated */\n    readAsBinaryString(blob: Blob): string;\n    readAsDataURL(blob: Blob): string;\n    readAsText(blob: Blob, encoding?: string): string;\n}\n\ndeclare var FileReaderSync: {\n    prototype: FileReaderSync;\n    new(): FileReaderSync;\n};\n\n/** Available only in secure contexts. */\ninterface FileSystemDirectoryHandle extends FileSystemHandle {\n    readonly kind: \"directory\";\n    getDirectoryHandle(name: string, options?: FileSystemGetDirectoryOptions): Promise<FileSystemDirectoryHandle>;\n    getFileHandle(name: string, options?: FileSystemGetFileOptions): Promise<FileSystemFileHandle>;\n    removeEntry(name: string, options?: FileSystemRemoveOptions): Promise<void>;\n    resolve(possibleDescendant: FileSystemHandle): Promise<string[] | null>;\n}\n\ndeclare var FileSystemDirectoryHandle: {\n    prototype: FileSystemDirectoryHandle;\n    new(): FileSystemDirectoryHandle;\n};\n\n/** Available only in secure contexts. */\ninterface FileSystemFileHandle extends FileSystemHandle {\n    readonly kind: \"file\";\n    getFile(): Promise<File>;\n}\n\ndeclare var FileSystemFileHandle: {\n    prototype: FileSystemFileHandle;\n    new(): FileSystemFileHandle;\n};\n\n/** Available only in secure contexts. */\ninterface FileSystemHandle {\n    readonly kind: FileSystemHandleKind;\n    readonly name: string;\n    isSameEntry(other: FileSystemHandle): Promise<boolean>;\n}\n\ndeclare var FileSystemHandle: {\n    prototype: FileSystemHandle;\n    new(): FileSystemHandle;\n};\n\ninterface FontFace {\n    ascentOverride: string;\n    descentOverride: string;\n    display: string;\n    family: string;\n    featureSettings: string;\n    lineGapOverride: string;\n    readonly loaded: Promise<FontFace>;\n    readonly status: FontFaceLoadStatus;\n    stretch: string;\n    style: string;\n    unicodeRange: string;\n    variant: string;\n    variationSettings: string;\n    weight: string;\n    load(): Promise<FontFace>;\n}\n\ndeclare var FontFace: {\n    prototype: FontFace;\n    new(family: string, source: string | BinaryData, descriptors?: FontFaceDescriptors): FontFace;\n};\n\ninterface FontFaceSetEventMap {\n    \"loading\": Event;\n    \"loadingdone\": Event;\n    \"loadingerror\": Event;\n}\n\ninterface FontFaceSet extends EventTarget {\n    onloading: ((this: FontFaceSet, ev: Event) => any) | null;\n    onloadingdone: ((this: FontFaceSet, ev: Event) => any) | null;\n    onloadingerror: ((this: FontFaceSet, ev: Event) => any) | null;\n    readonly ready: Promise<FontFaceSet>;\n    readonly status: FontFaceSetLoadStatus;\n    check(font: string, text?: string): boolean;\n    load(font: string, text?: string): Promise<FontFace[]>;\n    forEach(callbackfn: (value: FontFace, key: FontFace, parent: FontFaceSet) => void, thisArg?: any): void;\n    addEventListener<K extends keyof FontFaceSetEventMap>(type: K, listener: (this: FontFaceSet, ev: FontFaceSetEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n    removeEventListener<K extends keyof FontFaceSetEventMap>(type: K, listener: (this: FontFaceSet, ev: FontFaceSetEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var FontFaceSet: {\n    prototype: FontFaceSet;\n    new(initialFaces: FontFace[]): FontFaceSet;\n};\n\ninterface FontFaceSetLoadEvent extends Event {\n    readonly fontfaces: ReadonlyArray<FontFace>;\n}\n\ndeclare var FontFaceSetLoadEvent: {\n    prototype: FontFaceSetLoadEvent;\n    new(type: string, eventInitDict?: FontFaceSetLoadEventInit): FontFaceSetLoadEvent;\n};\n\ninterface FontFaceSource {\n    readonly fonts: FontFaceSet;\n}\n\n/** Provides a way to easily construct a set of key/value pairs representing form fields and their values, which can then be easily sent using the XMLHttpRequest.send() method. It uses the same format a form would use if the encoding type were set to \"multipart/form-data\". */\ninterface FormData {\n    append(name: string, value: string | Blob, fileName?: string): void;\n    delete(name: string): void;\n    get(name: string): FormDataEntryValue | null;\n    getAll(name: string): FormDataEntryValue[];\n    has(name: string): boolean;\n    set(name: string, value: string | Blob, fileName?: string): void;\n    forEach(callbackfn: (value: FormDataEntryValue, key: string, parent: FormData) => void, thisArg?: any): void;\n}\n\ndeclare var FormData: {\n    prototype: FormData;\n    new(): FormData;\n};\n\ninterface GenericTransformStream {\n    readonly readable: ReadableStream;\n    readonly writable: WritableStream;\n}\n\n/** This Fetch API interface allows you to perform various actions on HTTP request and response headers. These actions include retrieving, setting, adding to, and removing. A Headers object has an associated header list, which is initially empty and consists of zero or more name and value pairs.  You can add to this using methods like append() (see Examples.) In all methods of this interface, header names are matched by case-insensitive byte sequence. */\ninterface Headers {\n    append(name: string, value: string): void;\n    delete(name: string): void;\n    get(name: string): string | null;\n    has(name: string): boolean;\n    set(name: string, value: string): void;\n    forEach(callbackfn: (value: string, key: string, parent: Headers) => void, thisArg?: any): void;\n}\n\ndeclare var Headers: {\n    prototype: Headers;\n    new(init?: HeadersInit): Headers;\n};\n\n/** This IndexedDB API interface represents a cursor for traversing or iterating over multiple records in a database. */\ninterface IDBCursor {\n    /** Returns the direction (\"next\", \"nextunique\", \"prev\" or \"prevunique\") of the cursor. */\n    readonly direction: IDBCursorDirection;\n    /** Returns the key of the cursor. Throws a \"InvalidStateError\" DOMException if the cursor is advancing or is finished. */\n    readonly key: IDBValidKey;\n    /** Returns the effective key of the cursor. Throws a \"InvalidStateError\" DOMException if the cursor is advancing or is finished. */\n    readonly primaryKey: IDBValidKey;\n    readonly request: IDBRequest;\n    /** Returns the IDBObjectStore or IDBIndex the cursor was opened from. */\n    readonly source: IDBObjectStore | IDBIndex;\n    /** Advances the cursor through the next count records in range. */\n    advance(count: number): void;\n    /** Advances the cursor to the next record in range. */\n    continue(key?: IDBValidKey): void;\n    /** Advances the cursor to the next record in range matching or after key and primaryKey. Throws an \"InvalidAccessError\" DOMException if the source is not an index. */\n    continuePrimaryKey(key: IDBValidKey, primaryKey: IDBValidKey): void;\n    /**\n     * Delete the record pointed at by the cursor with a new value.\n     *\n     * If successful, request's result will be undefined.\n     */\n    delete(): IDBRequest<undefined>;\n    /**\n     * Updated the record pointed at by the cursor with a new value.\n     *\n     * Throws a \"DataError\" DOMException if the effective object store uses in-line keys and the key would have changed.\n     *\n     * If successful, request's result will be the record's key.\n     */\n    update(value: any): IDBRequest<IDBValidKey>;\n}\n\ndeclare var IDBCursor: {\n    prototype: IDBCursor;\n    new(): IDBCursor;\n};\n\n/** This IndexedDB API interface represents a cursor for traversing or iterating over multiple records in a database. It is the same as the IDBCursor, except that it includes the value property. */\ninterface IDBCursorWithValue extends IDBCursor {\n    /** Returns the cursor's current value. */\n    readonly value: any;\n}\n\ndeclare var IDBCursorWithValue: {\n    prototype: IDBCursorWithValue;\n    new(): IDBCursorWithValue;\n};\n\ninterface IDBDatabaseEventMap {\n    \"abort\": Event;\n    \"close\": Event;\n    \"error\": Event;\n    \"versionchange\": IDBVersionChangeEvent;\n}\n\n/** This IndexedDB API interface provides a connection to a database; you can use an IDBDatabase object to open a transaction on your database then create, manipulate, and delete objects (data) in that database. The interface provides the only way to get and manage versions of the database. */\ninterface IDBDatabase extends EventTarget {\n    /** Returns the name of the database. */\n    readonly name: string;\n    /** Returns a list of the names of object stores in the database. */\n    readonly objectStoreNames: DOMStringList;\n    onabort: ((this: IDBDatabase, ev: Event) => any) | null;\n    onclose: ((this: IDBDatabase, ev: Event) => any) | null;\n    onerror: ((this: IDBDatabase, ev: Event) => any) | null;\n    onversionchange: ((this: IDBDatabase, ev: IDBVersionChangeEvent) => any) | null;\n    /** Returns the version of the database. */\n    readonly version: number;\n    /** Closes the connection once all running transactions have finished. */\n    close(): void;\n    /**\n     * Creates a new object store with the given name and options and returns a new IDBObjectStore.\n     *\n     * Throws a \"InvalidStateError\" DOMException if not called within an upgrade transaction.\n     */\n    createObjectStore(name: string, options?: IDBObjectStoreParameters): IDBObjectStore;\n    /**\n     * Deletes the object store with the given name.\n     *\n     * Throws a \"InvalidStateError\" DOMException if not called within an upgrade transaction.\n     */\n    deleteObjectStore(name: string): void;\n    /** Returns a new transaction with the given mode (\"readonly\" or \"readwrite\") and scope which can be a single object store name or an array of names. */\n    transaction(storeNames: string | string[], mode?: IDBTransactionMode, options?: IDBTransactionOptions): IDBTransaction;\n    addEventListener<K extends keyof IDBDatabaseEventMap>(type: K, listener: (this: IDBDatabase, ev: IDBDatabaseEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n    removeEventListener<K extends keyof IDBDatabaseEventMap>(type: K, listener: (this: IDBDatabase, ev: IDBDatabaseEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var IDBDatabase: {\n    prototype: IDBDatabase;\n    new(): IDBDatabase;\n};\n\n/** In the following code snippet, we make a request to open a database, and include handlers for the success and error cases. For a full working example, see our To-do Notifications app (view example live.) */\ninterface IDBFactory {\n    /**\n     * Compares two values as keys. Returns -1 if key1 precedes key2, 1 if key2 precedes key1, and 0 if the keys are equal.\n     *\n     * Throws a \"DataError\" DOMException if either input is not a valid key.\n     */\n    cmp(first: any, second: any): number;\n    databases(): Promise<IDBDatabaseInfo[]>;\n    /** Attempts to delete the named database. If the database already exists and there are open connections that don't close in response to a versionchange event, the request will be blocked until all they close. If the request is successful request's result will be null. */\n    deleteDatabase(name: string): IDBOpenDBRequest;\n    /** Attempts to open a connection to the named database with the current version, or 1 if it does not already exist. If the request is successful request's result will be the connection. */\n    open(name: string, version?: number): IDBOpenDBRequest;\n}\n\ndeclare var IDBFactory: {\n    prototype: IDBFactory;\n    new(): IDBFactory;\n};\n\n/** IDBIndex interface of the IndexedDB API provides asynchronous access to an index in a database. An index is a kind of object store for looking up records in another object store, called the referenced object store. You use this interface to retrieve data. */\ninterface IDBIndex {\n    readonly keyPath: string | string[];\n    readonly multiEntry: boolean;\n    /** Returns the name of the index. */\n    name: string;\n    /** Returns the IDBObjectStore the index belongs to. */\n    readonly objectStore: IDBObjectStore;\n    readonly unique: boolean;\n    /**\n     * Retrieves the number of records matching the given key or key range in query.\n     *\n     * If successful, request's result will be the count.\n     */\n    count(query?: IDBValidKey | IDBKeyRange): IDBRequest<number>;\n    /**\n     * Retrieves the value of the first record matching the given key or key range in query.\n     *\n     * If successful, request's result will be the value, or undefined if there was no matching record.\n     */\n    get(query: IDBValidKey | IDBKeyRange): IDBRequest<any>;\n    /**\n     * Retrieves the values of the records matching the given key or key range in query (up to count if given).\n     *\n     * If successful, request's result will be an Array of the values.\n     */\n    getAll(query?: IDBValidKey | IDBKeyRange | null, count?: number): IDBRequest<any[]>;\n    /**\n     * Retrieves the keys of records matching the given key or key range in query (up to count if given).\n     *\n     * If successful, request's result will be an Array of the keys.\n     */\n    getAllKeys(query?: IDBValidKey | IDBKeyRange | null, count?: number): IDBRequest<IDBValidKey[]>;\n    /**\n     * Retrieves the key of the first record matching the given key or key range in query.\n     *\n     * If successful, request's result will be the key, or undefined if there was no matching record.\n     */\n    getKey(query: IDBValidKey | IDBKeyRange): IDBRequest<IDBValidKey | undefined>;\n    /**\n     * Opens a cursor over the records matching query, ordered by direction. If query is null, all records in index are matched.\n     *\n     * If successful, request's result will be an IDBCursorWithValue, or null if there were no matching records.\n     */\n    openCursor(query?: IDBValidKey | IDBKeyRange | null, direction?: IDBCursorDirection): IDBRequest<IDBCursorWithValue | null>;\n    /**\n     * Opens a cursor with key only flag set over the records matching query, ordered by direction. If query is null, all records in index are matched.\n     *\n     * If successful, request's result will be an IDBCursor, or null if there were no matching records.\n     */\n    openKeyCursor(query?: IDBValidKey | IDBKeyRange | null, direction?: IDBCursorDirection): IDBRequest<IDBCursor | null>;\n}\n\ndeclare var IDBIndex: {\n    prototype: IDBIndex;\n    new(): IDBIndex;\n};\n\n/** A key range can be a single value or a range with upper and lower bounds or endpoints. If the key range has both upper and lower bounds, then it is bounded; if it has no bounds, it is unbounded. A bounded key range can either be open (the endpoints are excluded) or closed (the endpoints are included). To retrieve all keys within a certain range, you can use the following code constructs: */\ninterface IDBKeyRange {\n    /** Returns lower bound, or undefined if none. */\n    readonly lower: any;\n    /** Returns true if the lower open flag is set, and false otherwise. */\n    readonly lowerOpen: boolean;\n    /** Returns upper bound, or undefined if none. */\n    readonly upper: any;\n    /** Returns true if the upper open flag is set, and false otherwise. */\n    readonly upperOpen: boolean;\n    /** Returns true if key is included in the range, and false otherwise. */\n    includes(key: any): boolean;\n}\n\ndeclare var IDBKeyRange: {\n    prototype: IDBKeyRange;\n    new(): IDBKeyRange;\n    /** Returns a new IDBKeyRange spanning from lower to upper. If lowerOpen is true, lower is not included in the range. If upperOpen is true, upper is not included in the range. */\n    bound(lower: any, upper: any, lowerOpen?: boolean, upperOpen?: boolean): IDBKeyRange;\n    /** Returns a new IDBKeyRange starting at key with no upper bound. If open is true, key is not included in the range. */\n    lowerBound(lower: any, open?: boolean): IDBKeyRange;\n    /** Returns a new IDBKeyRange spanning only key. */\n    only(value: any): IDBKeyRange;\n    /** Returns a new IDBKeyRange with no lower bound and ending at key. If open is true, key is not included in the range. */\n    upperBound(upper: any, open?: boolean): IDBKeyRange;\n};\n\n/** This example shows a variety of different uses of object stores, from updating the data structure with IDBObjectStore.createIndex inside an onupgradeneeded function, to adding a new item to our object store with IDBObjectStore.add. For a full working example, see our To-do Notifications app (view example live.) */\ninterface IDBObjectStore {\n    /** Returns true if the store has a key generator, and false otherwise. */\n    readonly autoIncrement: boolean;\n    /** Returns a list of the names of indexes in the store. */\n    readonly indexNames: DOMStringList;\n    /** Returns the key path of the store, or null if none. */\n    readonly keyPath: string | string[];\n    /** Returns the name of the store. */\n    name: string;\n    /** Returns the associated transaction. */\n    readonly transaction: IDBTransaction;\n    /**\n     * Adds or updates a record in store with the given value and key.\n     *\n     * If the store uses in-line keys and key is specified a \"DataError\" DOMException will be thrown.\n     *\n     * If put() is used, any existing record with the key will be replaced. If add() is used, and if a record with the key already exists the request will fail, with request's error set to a \"ConstraintError\" DOMException.\n     *\n     * If successful, request's result will be the record's key.\n     */\n    add(value: any, key?: IDBValidKey): IDBRequest<IDBValidKey>;\n    /**\n     * Deletes all records in store.\n     *\n     * If successful, request's result will be undefined.\n     */\n    clear(): IDBRequest<undefined>;\n    /**\n     * Retrieves the number of records matching the given key or key range in query.\n     *\n     * If successful, request's result will be the count.\n     */\n    count(query?: IDBValidKey | IDBKeyRange): IDBRequest<number>;\n    /**\n     * Creates a new index in store with the given name, keyPath and options and returns a new IDBIndex. If the keyPath and options define constraints that cannot be satisfied with the data already in store the upgrade transaction will abort with a \"ConstraintError\" DOMException.\n     *\n     * Throws an \"InvalidStateError\" DOMException if not called within an upgrade transaction.\n     */\n    createIndex(name: string, keyPath: string | string[], options?: IDBIndexParameters): IDBIndex;\n    /**\n     * Deletes records in store with the given key or in the given key range in query.\n     *\n     * If successful, request's result will be undefined.\n     */\n    delete(query: IDBValidKey | IDBKeyRange): IDBRequest<undefined>;\n    /**\n     * Deletes the index in store with the given name.\n     *\n     * Throws an \"InvalidStateError\" DOMException if not called within an upgrade transaction.\n     */\n    deleteIndex(name: string): void;\n    /**\n     * Retrieves the value of the first record matching the given key or key range in query.\n     *\n     * If successful, request's result will be the value, or undefined if there was no matching record.\n     */\n    get(query: IDBValidKey | IDBKeyRange): IDBRequest<any>;\n    /**\n     * Retrieves the values of the records matching the given key or key range in query (up to count if given).\n     *\n     * If successful, request's result will be an Array of the values.\n     */\n    getAll(query?: IDBValidKey | IDBKeyRange | null, count?: number): IDBRequest<any[]>;\n    /**\n     * Retrieves the keys of records matching the given key or key range in query (up to count if given).\n     *\n     * If successful, request's result will be an Array of the keys.\n     */\n    getAllKeys(query?: IDBValidKey | IDBKeyRange | null, count?: number): IDBRequest<IDBValidKey[]>;\n    /**\n     * Retrieves the key of the first record matching the given key or key range in query.\n     *\n     * If successful, request's result will be the key, or undefined if there was no matching record.\n     */\n    getKey(query: IDBValidKey | IDBKeyRange): IDBRequest<IDBValidKey | undefined>;\n    index(name: string): IDBIndex;\n    /**\n     * Opens a cursor over the records matching query, ordered by direction. If query is null, all records in store are matched.\n     *\n     * If successful, request's result will be an IDBCursorWithValue pointing at the first matching record, or null if there were no matching records.\n     */\n    openCursor(query?: IDBValidKey | IDBKeyRange | null, direction?: IDBCursorDirection): IDBRequest<IDBCursorWithValue | null>;\n    /**\n     * Opens a cursor with key only flag set over the records matching query, ordered by direction. If query is null, all records in store are matched.\n     *\n     * If successful, request's result will be an IDBCursor pointing at the first matching record, or null if there were no matching records.\n     */\n    openKeyCursor(query?: IDBValidKey | IDBKeyRange | null, direction?: IDBCursorDirection): IDBRequest<IDBCursor | null>;\n    /**\n     * Adds or updates a record in store with the given value and key.\n     *\n     * If the store uses in-line keys and key is specified a \"DataError\" DOMException will be thrown.\n     *\n     * If put() is used, any existing record with the key will be replaced. If add() is used, and if a record with the key already exists the request will fail, with request's error set to a \"ConstraintError\" DOMException.\n     *\n     * If successful, request's result will be the record's key.\n     */\n    put(value: any, key?: IDBValidKey): IDBRequest<IDBValidKey>;\n}\n\ndeclare var IDBObjectStore: {\n    prototype: IDBObjectStore;\n    new(): IDBObjectStore;\n};\n\ninterface IDBOpenDBRequestEventMap extends IDBRequestEventMap {\n    \"blocked\": IDBVersionChangeEvent;\n    \"upgradeneeded\": IDBVersionChangeEvent;\n}\n\n/** Also inherits methods from its parents IDBRequest and EventTarget. */\ninterface IDBOpenDBRequest extends IDBRequest<IDBDatabase> {\n    onblocked: ((this: IDBOpenDBRequest, ev: IDBVersionChangeEvent) => any) | null;\n    onupgradeneeded: ((this: IDBOpenDBRequest, ev: IDBVersionChangeEvent) => any) | null;\n    addEventListener<K extends keyof IDBOpenDBRequestEventMap>(type: K, listener: (this: IDBOpenDBRequest, ev: IDBOpenDBRequestEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n    removeEventListener<K extends keyof IDBOpenDBRequestEventMap>(type: K, listener: (this: IDBOpenDBRequest, ev: IDBOpenDBRequestEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var IDBOpenDBRequest: {\n    prototype: IDBOpenDBRequest;\n    new(): IDBOpenDBRequest;\n};\n\ninterface IDBRequestEventMap {\n    \"error\": Event;\n    \"success\": Event;\n}\n\n/** The request object does not initially contain any information about the result of the operation, but once information becomes available, an event is fired on the request, and the information becomes available through the properties of the IDBRequest instance. */\ninterface IDBRequest<T = any> extends EventTarget {\n    /** When a request is completed, returns the error (a DOMException), or null if the request succeeded. Throws a \"InvalidStateError\" DOMException if the request is still pending. */\n    readonly error: DOMException | null;\n    onerror: ((this: IDBRequest<T>, ev: Event) => any) | null;\n    onsuccess: ((this: IDBRequest<T>, ev: Event) => any) | null;\n    /** Returns \"pending\" until a request is complete, then returns \"done\". */\n    readonly readyState: IDBRequestReadyState;\n    /** When a request is completed, returns the result, or undefined if the request failed. Throws a \"InvalidStateError\" DOMException if the request is still pending. */\n    readonly result: T;\n    /** Returns the IDBObjectStore, IDBIndex, or IDBCursor the request was made against, or null if is was an open request. */\n    readonly source: IDBObjectStore | IDBIndex | IDBCursor;\n    /** Returns the IDBTransaction the request was made within. If this as an open request, then it returns an upgrade transaction while it is running, or null otherwise. */\n    readonly transaction: IDBTransaction | null;\n    addEventListener<K extends keyof IDBRequestEventMap>(type: K, listener: (this: IDBRequest<T>, ev: IDBRequestEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n    removeEventListener<K extends keyof IDBRequestEventMap>(type: K, listener: (this: IDBRequest<T>, ev: IDBRequestEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var IDBRequest: {\n    prototype: IDBRequest;\n    new(): IDBRequest;\n};\n\ninterface IDBTransactionEventMap {\n    \"abort\": Event;\n    \"complete\": Event;\n    \"error\": Event;\n}\n\ninterface IDBTransaction extends EventTarget {\n    /** Returns the transaction's connection. */\n    readonly db: IDBDatabase;\n    readonly durability: IDBTransactionDurability;\n    /** If the transaction was aborted, returns the error (a DOMException) providing the reason. */\n    readonly error: DOMException | null;\n    /** Returns the mode the transaction was created with (\"readonly\" or \"readwrite\"), or \"versionchange\" for an upgrade transaction. */\n    readonly mode: IDBTransactionMode;\n    /** Returns a list of the names of object stores in the transaction's scope. For an upgrade transaction this is all object stores in the database. */\n    readonly objectStoreNames: DOMStringList;\n    onabort: ((this: IDBTransaction, ev: Event) => any) | null;\n    oncomplete: ((this: IDBTransaction, ev: Event) => any) | null;\n    onerror: ((this: IDBTransaction, ev: Event) => any) | null;\n    /** Aborts the transaction. All pending requests will fail with a \"AbortError\" DOMException and all changes made to the database will be reverted. */\n    abort(): void;\n    commit(): void;\n    /** Returns an IDBObjectStore in the transaction's scope. */\n    objectStore(name: string): IDBObjectStore;\n    addEventListener<K extends keyof IDBTransactionEventMap>(type: K, listener: (this: IDBTransaction, ev: IDBTransactionEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n    removeEventListener<K extends keyof IDBTransactionEventMap>(type: K, listener: (this: IDBTransaction, ev: IDBTransactionEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var IDBTransaction: {\n    prototype: IDBTransaction;\n    new(): IDBTransaction;\n};\n\n/** This IndexedDB API interface indicates that the version of the database has changed, as the result of an IDBOpenDBRequest.onupgradeneeded event handler function. */\ninterface IDBVersionChangeEvent extends Event {\n    readonly newVersion: number | null;\n    readonly oldVersion: number;\n}\n\ndeclare var IDBVersionChangeEvent: {\n    prototype: IDBVersionChangeEvent;\n    new(type: string, eventInitDict?: IDBVersionChangeEventInit): IDBVersionChangeEvent;\n};\n\ninterface ImageBitmap {\n    /** Returns the intrinsic height of the image, in CSS pixels. */\n    readonly height: number;\n    /** Returns the intrinsic width of the image, in CSS pixels. */\n    readonly width: number;\n    /** Releases imageBitmap's underlying bitmap data. */\n    close(): void;\n}\n\ndeclare var ImageBitmap: {\n    prototype: ImageBitmap;\n    new(): ImageBitmap;\n};\n\ninterface ImageBitmapRenderingContext {\n    /** Transfers the underlying bitmap data from imageBitmap to context, and the bitmap becomes the contents of the canvas element to which context is bound. */\n    transferFromImageBitmap(bitmap: ImageBitmap | null): void;\n}\n\ndeclare var ImageBitmapRenderingContext: {\n    prototype: ImageBitmapRenderingContext;\n    new(): ImageBitmapRenderingContext;\n};\n\n/** The underlying pixel data of an area of a <canvas> element. It is created using the ImageData() constructor or creator methods on the CanvasRenderingContext2D object associated with a canvas: createImageData() and getImageData(). It can also be used to set a part of the canvas by using putImageData(). */\ninterface ImageData {\n    readonly colorSpace: PredefinedColorSpace;\n    /** Returns the one-dimensional array containing the data in RGBA order, as integers in the range 0 to 255. */\n    readonly data: Uint8ClampedArray;\n    /** Returns the actual dimensions of the data in the ImageData object, in pixels. */\n    readonly height: number;\n    /** Returns the actual dimensions of the data in the ImageData object, in pixels. */\n    readonly width: number;\n}\n\ndeclare var ImageData: {\n    prototype: ImageData;\n    new(sw: number, sh: number, settings?: ImageDataSettings): ImageData;\n    new(data: Uint8ClampedArray, sw: number, sh?: number, settings?: ImageDataSettings): ImageData;\n};\n\ninterface KHR_parallel_shader_compile {\n    readonly COMPLETION_STATUS_KHR: GLenum;\n}\n\n/** Available only in secure contexts. */\ninterface Lock {\n    readonly mode: LockMode;\n    readonly name: string;\n}\n\ndeclare var Lock: {\n    prototype: Lock;\n    new(): Lock;\n};\n\n/** Available only in secure contexts. */\ninterface LockManager {\n    query(): Promise<LockManagerSnapshot>;\n    request(name: string, callback: LockGrantedCallback): Promise<any>;\n    request(name: string, options: LockOptions, callback: LockGrantedCallback): Promise<any>;\n}\n\ndeclare var LockManager: {\n    prototype: LockManager;\n    new(): LockManager;\n};\n\ninterface MediaCapabilities {\n    decodingInfo(configuration: MediaDecodingConfiguration): Promise<MediaCapabilitiesDecodingInfo>;\n    encodingInfo(configuration: MediaEncodingConfiguration): Promise<MediaCapabilitiesEncodingInfo>;\n}\n\ndeclare var MediaCapabilities: {\n    prototype: MediaCapabilities;\n    new(): MediaCapabilities;\n};\n\n/** This Channel Messaging API interface allows us to create a new message channel and send data through it via its two MessagePort properties. */\ninterface MessageChannel {\n    /** Returns the first MessagePort object. */\n    readonly port1: MessagePort;\n    /** Returns the second MessagePort object. */\n    readonly port2: MessagePort;\n}\n\ndeclare var MessageChannel: {\n    prototype: MessageChannel;\n    new(): MessageChannel;\n};\n\n/** A message received by a target object. */\ninterface MessageEvent<T = any> extends Event {\n    /** Returns the data of the message. */\n    readonly data: T;\n    /** Returns the last event ID string, for server-sent events. */\n    readonly lastEventId: string;\n    /** Returns the origin of the message, for server-sent events and cross-document messaging. */\n    readonly origin: string;\n    /** Returns the MessagePort array sent with the message, for cross-document messaging and channel messaging. */\n    readonly ports: ReadonlyArray<MessagePort>;\n    /** Returns the WindowProxy of the source window, for cross-document messaging, and the MessagePort being attached, in the connect event fired at SharedWorkerGlobalScope objects. */\n    readonly source: MessageEventSource | null;\n    /** @deprecated */\n    initMessageEvent(type: string, bubbles?: boolean, cancelable?: boolean, data?: any, origin?: string, lastEventId?: string, source?: MessageEventSource | null, ports?: MessagePort[]): void;\n}\n\ndeclare var MessageEvent: {\n    prototype: MessageEvent;\n    new<T>(type: string, eventInitDict?: MessageEventInit<T>): MessageEvent<T>;\n};\n\ninterface MessagePortEventMap {\n    \"message\": MessageEvent;\n    \"messageerror\": MessageEvent;\n}\n\n/** This Channel Messaging API interface represents one of the two ports of a MessageChannel, allowing messages to be sent from one port and listening out for them arriving at the other. */\ninterface MessagePort extends EventTarget {\n    onmessage: ((this: MessagePort, ev: MessageEvent) => any) | null;\n    onmessageerror: ((this: MessagePort, ev: MessageEvent) => any) | null;\n    /** Disconnects the port, so that it is no longer active. */\n    close(): void;\n    /**\n     * Posts a message through the channel. Objects listed in transfer are transferred, not just cloned, meaning that they are no longer usable on the sending side.\n     *\n     * Throws a \"DataCloneError\" DOMException if transfer contains duplicate objects or port, or if message could not be cloned.\n     */\n    postMessage(message: any, transfer: Transferable[]): void;\n    postMessage(message: any, options?: StructuredSerializeOptions): void;\n    /** Begins dispatching messages received on the port. */\n    start(): void;\n    addEventListener<K extends keyof MessagePortEventMap>(type: K, listener: (this: MessagePort, ev: MessagePortEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n    removeEventListener<K extends keyof MessagePortEventMap>(type: K, listener: (this: MessagePort, ev: MessagePortEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var MessagePort: {\n    prototype: MessagePort;\n    new(): MessagePort;\n};\n\n/** Available only in secure contexts. */\ninterface NavigationPreloadManager {\n    disable(): Promise<void>;\n    enable(): Promise<void>;\n    getState(): Promise<NavigationPreloadState>;\n    setHeaderValue(value: string): Promise<void>;\n}\n\ndeclare var NavigationPreloadManager: {\n    prototype: NavigationPreloadManager;\n    new(): NavigationPreloadManager;\n};\n\ninterface NavigatorConcurrentHardware {\n    readonly hardwareConcurrency: number;\n}\n\ninterface NavigatorID {\n    /** @deprecated */\n    readonly appCodeName: string;\n    /** @deprecated */\n    readonly appName: string;\n    /** @deprecated */\n    readonly appVersion: string;\n    /** @deprecated */\n    readonly platform: string;\n    /** @deprecated */\n    readonly product: string;\n    readonly userAgent: string;\n}\n\ninterface NavigatorLanguage {\n    readonly language: string;\n    readonly languages: ReadonlyArray<string>;\n}\n\n/** Available only in secure contexts. */\ninterface NavigatorLocks {\n    readonly locks: LockManager;\n}\n\ninterface NavigatorOnLine {\n    readonly onLine: boolean;\n}\n\n/** Available only in secure contexts. */\ninterface NavigatorStorage {\n    readonly storage: StorageManager;\n}\n\ninterface NotificationEventMap {\n    \"click\": Event;\n    \"close\": Event;\n    \"error\": Event;\n    \"show\": Event;\n}\n\n/** This Notifications API interface is used to configure and display desktop notifications to the user. */\ninterface Notification extends EventTarget {\n    readonly body: string;\n    readonly data: any;\n    readonly dir: NotificationDirection;\n    readonly icon: string;\n    readonly lang: string;\n    onclick: ((this: Notification, ev: Event) => any) | null;\n    onclose: ((this: Notification, ev: Event) => any) | null;\n    onerror: ((this: Notification, ev: Event) => any) | null;\n    onshow: ((this: Notification, ev: Event) => any) | null;\n    readonly tag: string;\n    readonly title: string;\n    close(): void;\n    addEventListener<K extends keyof NotificationEventMap>(type: K, listener: (this: Notification, ev: NotificationEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n    removeEventListener<K extends keyof NotificationEventMap>(type: K, listener: (this: Notification, ev: NotificationEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var Notification: {\n    prototype: Notification;\n    new(title: string, options?: NotificationOptions): Notification;\n    readonly permission: NotificationPermission;\n};\n\n/** The parameter passed into the onnotificationclick handler, the NotificationEvent interface represents a notification click event that is dispatched on the ServiceWorkerGlobalScope of a ServiceWorker. */\ninterface NotificationEvent extends ExtendableEvent {\n    readonly action: string;\n    readonly notification: Notification;\n}\n\ndeclare var NotificationEvent: {\n    prototype: NotificationEvent;\n    new(type: string, eventInitDict: NotificationEventInit): NotificationEvent;\n};\n\ninterface OES_draw_buffers_indexed {\n    blendEquationSeparateiOES(buf: GLuint, modeRGB: GLenum, modeAlpha: GLenum): void;\n    blendEquationiOES(buf: GLuint, mode: GLenum): void;\n    blendFuncSeparateiOES(buf: GLuint, srcRGB: GLenum, dstRGB: GLenum, srcAlpha: GLenum, dstAlpha: GLenum): void;\n    blendFunciOES(buf: GLuint, src: GLenum, dst: GLenum): void;\n    colorMaskiOES(buf: GLuint, r: GLboolean, g: GLboolean, b: GLboolean, a: GLboolean): void;\n    disableiOES(target: GLenum, index: GLuint): void;\n    enableiOES(target: GLenum, index: GLuint): void;\n}\n\n/** The OES_element_index_uint extension is part of the WebGL API and adds support for gl.UNSIGNED_INT types to WebGLRenderingContext.drawElements(). */\ninterface OES_element_index_uint {\n}\n\ninterface OES_fbo_render_mipmap {\n}\n\n/** The OES_standard_derivatives extension is part of the WebGL API and adds the GLSL derivative functions dFdx, dFdy, and fwidth. */\ninterface OES_standard_derivatives {\n    readonly FRAGMENT_SHADER_DERIVATIVE_HINT_OES: GLenum;\n}\n\n/** The OES_texture_float extension is part of the WebGL API and exposes floating-point pixel types for textures. */\ninterface OES_texture_float {\n}\n\n/** The OES_texture_float_linear extension is part of the WebGL API and allows linear filtering with floating-point pixel types for textures. */\ninterface OES_texture_float_linear {\n}\n\n/** The OES_texture_half_float extension is part of the WebGL API and adds texture formats with 16- (aka half float) and 32-bit floating-point components. */\ninterface OES_texture_half_float {\n    readonly HALF_FLOAT_OES: GLenum;\n}\n\n/** The OES_texture_half_float_linear extension is part of the WebGL API and allows linear filtering with half floating-point pixel types for textures. */\ninterface OES_texture_half_float_linear {\n}\n\ninterface OES_vertex_array_object {\n    bindVertexArrayOES(arrayObject: WebGLVertexArrayObjectOES | null): void;\n    createVertexArrayOES(): WebGLVertexArrayObjectOES | null;\n    deleteVertexArrayOES(arrayObject: WebGLVertexArrayObjectOES | null): void;\n    isVertexArrayOES(arrayObject: WebGLVertexArrayObjectOES | null): GLboolean;\n    readonly VERTEX_ARRAY_BINDING_OES: GLenum;\n}\n\ninterface OVR_multiview2 {\n    framebufferTextureMultiviewOVR(target: GLenum, attachment: GLenum, texture: WebGLTexture | null, level: GLint, baseViewIndex: GLint, numViews: GLsizei): void;\n    readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_BASE_VIEW_INDEX_OVR: GLenum;\n    readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_NUM_VIEWS_OVR: GLenum;\n    readonly FRAMEBUFFER_INCOMPLETE_VIEW_TARGETS_OVR: GLenum;\n    readonly MAX_VIEWS_OVR: GLenum;\n}\n\ninterface OffscreenCanvasEventMap {\n    \"contextlost\": Event;\n    \"contextrestored\": Event;\n}\n\ninterface OffscreenCanvas extends EventTarget {\n    /**\n     * These attributes return the dimensions of the OffscreenCanvas object's bitmap.\n     *\n     * They can be set, to replace the bitmap with a new, transparent black bitmap of the specified dimensions (effectively resizing it).\n     */\n    height: number;\n    oncontextlost: ((this: OffscreenCanvas, ev: Event) => any) | null;\n    oncontextrestored: ((this: OffscreenCanvas, ev: Event) => any) | null;\n    /**\n     * These attributes return the dimensions of the OffscreenCanvas object's bitmap.\n     *\n     * They can be set, to replace the bitmap with a new, transparent black bitmap of the specified dimensions (effectively resizing it).\n     */\n    width: number;\n    /**\n     * Returns an object that exposes an API for drawing on the OffscreenCanvas object. contextId specifies the desired API: \"2d\", \"bitmaprenderer\", \"webgl\", or \"webgl2\". options is handled by that API.\n     *\n     * This specification defines the \"2d\" context below, which is similar but distinct from the \"2d\" context that is created from a canvas element. The WebGL specifications define the \"webgl\" and \"webgl2\" contexts. [WEBGL]\n     *\n     * Returns null if the canvas has already been initialized with another context type (e.g., trying to get a \"2d\" context after getting a \"webgl\" context).\n     */\n    getContext(contextId: OffscreenRenderingContextId, options?: any): OffscreenRenderingContext | null;\n    /** Returns a newly created ImageBitmap object with the image in the OffscreenCanvas object. The image in the OffscreenCanvas object is replaced with a new blank image. */\n    transferToImageBitmap(): ImageBitmap;\n    addEventListener<K extends keyof OffscreenCanvasEventMap>(type: K, listener: (this: OffscreenCanvas, ev: OffscreenCanvasEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n    removeEventListener<K extends keyof OffscreenCanvasEventMap>(type: K, listener: (this: OffscreenCanvas, ev: OffscreenCanvasEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var OffscreenCanvas: {\n    prototype: OffscreenCanvas;\n    new(width: number, height: number): OffscreenCanvas;\n};\n\ninterface OffscreenCanvasRenderingContext2D extends CanvasCompositing, CanvasDrawImage, CanvasDrawPath, CanvasFillStrokeStyles, CanvasFilters, CanvasImageData, CanvasImageSmoothing, CanvasPath, CanvasPathDrawingStyles, CanvasRect, CanvasShadowStyles, CanvasState, CanvasText, CanvasTextDrawingStyles, CanvasTransform {\n    readonly canvas: OffscreenCanvas;\n    commit(): void;\n}\n\ndeclare var OffscreenCanvasRenderingContext2D: {\n    prototype: OffscreenCanvasRenderingContext2D;\n    new(): OffscreenCanvasRenderingContext2D;\n};\n\n/** This Canvas 2D API interface is used to declare a path that can then be used on a CanvasRenderingContext2D object. The path methods of the CanvasRenderingContext2D interface are also present on this interface, which gives you the convenience of being able to retain and replay your path whenever desired. */\ninterface Path2D extends CanvasPath {\n    /** Adds to the path the path given by the argument. */\n    addPath(path: Path2D, transform?: DOMMatrix2DInit): void;\n}\n\ndeclare var Path2D: {\n    prototype: Path2D;\n    new(path?: Path2D | string): Path2D;\n};\n\ninterface PerformanceEventMap {\n    \"resourcetimingbufferfull\": Event;\n}\n\n/** Provides access to performance-related information for the current page. It's part of the High Resolution Time API, but is enhanced by the Performance Timeline API, the Navigation Timing API, the User Timing API, and the Resource Timing API. */\ninterface Performance extends EventTarget {\n    onresourcetimingbufferfull: ((this: Performance, ev: Event) => any) | null;\n    readonly timeOrigin: DOMHighResTimeStamp;\n    clearMarks(markName?: string): void;\n    clearMeasures(measureName?: string): void;\n    clearResourceTimings(): void;\n    getEntries(): PerformanceEntryList;\n    getEntriesByName(name: string, type?: string): PerformanceEntryList;\n    getEntriesByType(type: string): PerformanceEntryList;\n    mark(markName: string, markOptions?: PerformanceMarkOptions): PerformanceMark;\n    measure(measureName: string, startOrMeasureOptions?: string | PerformanceMeasureOptions, endMark?: string): PerformanceMeasure;\n    now(): DOMHighResTimeStamp;\n    setResourceTimingBufferSize(maxSize: number): void;\n    toJSON(): any;\n    addEventListener<K extends keyof PerformanceEventMap>(type: K, listener: (this: Performance, ev: PerformanceEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n    removeEventListener<K extends keyof PerformanceEventMap>(type: K, listener: (this: Performance, ev: PerformanceEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var Performance: {\n    prototype: Performance;\n    new(): Performance;\n};\n\n/** Encapsulates a single performance metric that is part of the performance timeline. A performance entry can be directly created by making a performance mark or measure (for example by calling the mark() method) at an explicit point in an application. Performance entries are also created in indirect ways such as loading a resource (such as an image). */\ninterface PerformanceEntry {\n    readonly duration: DOMHighResTimeStamp;\n    readonly entryType: string;\n    readonly name: string;\n    readonly startTime: DOMHighResTimeStamp;\n    toJSON(): any;\n}\n\ndeclare var PerformanceEntry: {\n    prototype: PerformanceEntry;\n    new(): PerformanceEntry;\n};\n\n/** PerformanceMark is an abstract interface for PerformanceEntry objects with an entryType of \"mark\". Entries of this type are created by calling performance.mark() to add a named DOMHighResTimeStamp (the mark) to the browser's performance timeline. */\ninterface PerformanceMark extends PerformanceEntry {\n    readonly detail: any;\n}\n\ndeclare var PerformanceMark: {\n    prototype: PerformanceMark;\n    new(markName: string, markOptions?: PerformanceMarkOptions): PerformanceMark;\n};\n\n/** PerformanceMeasure is an abstract interface for PerformanceEntry objects with an entryType of \"measure\". Entries of this type are created by calling performance.measure() to add a named DOMHighResTimeStamp (the measure) between two marks to the browser's performance timeline. */\ninterface PerformanceMeasure extends PerformanceEntry {\n    readonly detail: any;\n}\n\ndeclare var PerformanceMeasure: {\n    prototype: PerformanceMeasure;\n    new(): PerformanceMeasure;\n};\n\ninterface PerformanceObserver {\n    disconnect(): void;\n    observe(options?: PerformanceObserverInit): void;\n    takeRecords(): PerformanceEntryList;\n}\n\ndeclare var PerformanceObserver: {\n    prototype: PerformanceObserver;\n    new(callback: PerformanceObserverCallback): PerformanceObserver;\n    readonly supportedEntryTypes: ReadonlyArray<string>;\n};\n\ninterface PerformanceObserverEntryList {\n    getEntries(): PerformanceEntryList;\n    getEntriesByName(name: string, type?: string): PerformanceEntryList;\n    getEntriesByType(type: string): PerformanceEntryList;\n}\n\ndeclare var PerformanceObserverEntryList: {\n    prototype: PerformanceObserverEntryList;\n    new(): PerformanceObserverEntryList;\n};\n\n/** Enables retrieval and analysis of detailed network timing data regarding the loading of an application's resources. An application can use the timing metrics to determine, for example, the length of time it takes to fetch a specific resource, such as an XMLHttpRequest, <SVG>, image, or script. */\ninterface PerformanceResourceTiming extends PerformanceEntry {\n    readonly connectEnd: DOMHighResTimeStamp;\n    readonly connectStart: DOMHighResTimeStamp;\n    readonly decodedBodySize: number;\n    readonly domainLookupEnd: DOMHighResTimeStamp;\n    readonly domainLookupStart: DOMHighResTimeStamp;\n    readonly encodedBodySize: number;\n    readonly fetchStart: DOMHighResTimeStamp;\n    readonly initiatorType: string;\n    readonly nextHopProtocol: string;\n    readonly redirectEnd: DOMHighResTimeStamp;\n    readonly redirectStart: DOMHighResTimeStamp;\n    readonly requestStart: DOMHighResTimeStamp;\n    readonly responseEnd: DOMHighResTimeStamp;\n    readonly responseStart: DOMHighResTimeStamp;\n    readonly secureConnectionStart: DOMHighResTimeStamp;\n    readonly serverTiming: ReadonlyArray<PerformanceServerTiming>;\n    readonly transferSize: number;\n    readonly workerStart: DOMHighResTimeStamp;\n    toJSON(): any;\n}\n\ndeclare var PerformanceResourceTiming: {\n    prototype: PerformanceResourceTiming;\n    new(): PerformanceResourceTiming;\n};\n\ninterface PerformanceServerTiming {\n    readonly description: string;\n    readonly duration: DOMHighResTimeStamp;\n    readonly name: string;\n    toJSON(): any;\n}\n\ndeclare var PerformanceServerTiming: {\n    prototype: PerformanceServerTiming;\n    new(): PerformanceServerTiming;\n};\n\ninterface PermissionStatusEventMap {\n    \"change\": Event;\n}\n\ninterface PermissionStatus extends EventTarget {\n    readonly name: string;\n    onchange: ((this: PermissionStatus, ev: Event) => any) | null;\n    readonly state: PermissionState;\n    addEventListener<K extends keyof PermissionStatusEventMap>(type: K, listener: (this: PermissionStatus, ev: PermissionStatusEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n    removeEventListener<K extends keyof PermissionStatusEventMap>(type: K, listener: (this: PermissionStatus, ev: PermissionStatusEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var PermissionStatus: {\n    prototype: PermissionStatus;\n    new(): PermissionStatus;\n};\n\ninterface Permissions {\n    query(permissionDesc: PermissionDescriptor): Promise<PermissionStatus>;\n}\n\ndeclare var Permissions: {\n    prototype: Permissions;\n    new(): Permissions;\n};\n\n/** Events measuring progress of an underlying process, like an HTTP request (for an XMLHttpRequest, or the loading of the underlying resource of an <img>, <audio>, <video>, <style> or <link>). */\ninterface ProgressEvent<T extends EventTarget = EventTarget> extends Event {\n    readonly lengthComputable: boolean;\n    readonly loaded: number;\n    readonly target: T | null;\n    readonly total: number;\n}\n\ndeclare var ProgressEvent: {\n    prototype: ProgressEvent;\n    new(type: string, eventInitDict?: ProgressEventInit): ProgressEvent;\n};\n\ninterface PromiseRejectionEvent extends Event {\n    readonly promise: Promise<any>;\n    readonly reason: any;\n}\n\ndeclare var PromiseRejectionEvent: {\n    prototype: PromiseRejectionEvent;\n    new(type: string, eventInitDict: PromiseRejectionEventInit): PromiseRejectionEvent;\n};\n\n/**\n * This Push API interface represents a push message that has been received. This event is sent to the global scope of a ServiceWorker. It contains the information sent from an application server to a PushSubscription.\n * Available only in secure contexts.\n */\ninterface PushEvent extends ExtendableEvent {\n    readonly data: PushMessageData | null;\n}\n\ndeclare var PushEvent: {\n    prototype: PushEvent;\n    new(type: string, eventInitDict?: PushEventInit): PushEvent;\n};\n\n/**\n * This Push API interface provides a way to receive notifications from third-party servers as well as request URLs for push notifications.\n * Available only in secure contexts.\n */\ninterface PushManager {\n    getSubscription(): Promise<PushSubscription | null>;\n    permissionState(options?: PushSubscriptionOptionsInit): Promise<PermissionState>;\n    subscribe(options?: PushSubscriptionOptionsInit): Promise<PushSubscription>;\n}\n\ndeclare var PushManager: {\n    prototype: PushManager;\n    new(): PushManager;\n    readonly supportedContentEncodings: ReadonlyArray<string>;\n};\n\n/**\n * This Push API interface provides methods which let you retrieve the push data sent by a server in various formats.\n * Available only in secure contexts.\n */\ninterface PushMessageData {\n    arrayBuffer(): ArrayBuffer;\n    blob(): Blob;\n    json(): any;\n    text(): string;\n}\n\ndeclare var PushMessageData: {\n    prototype: PushMessageData;\n    new(): PushMessageData;\n};\n\n/**\n * This Push API interface provides a subcription's URL endpoint and allows unsubscription from a push service.\n * Available only in secure contexts.\n */\ninterface PushSubscription {\n    readonly endpoint: string;\n    readonly expirationTime: EpochTimeStamp | null;\n    readonly options: PushSubscriptionOptions;\n    getKey(name: PushEncryptionKeyName): ArrayBuffer | null;\n    toJSON(): PushSubscriptionJSON;\n    unsubscribe(): Promise<boolean>;\n}\n\ndeclare var PushSubscription: {\n    prototype: PushSubscription;\n    new(): PushSubscription;\n};\n\n/** Available only in secure contexts. */\ninterface PushSubscriptionOptions {\n    readonly applicationServerKey: ArrayBuffer | null;\n    readonly userVisibleOnly: boolean;\n}\n\ndeclare var PushSubscriptionOptions: {\n    prototype: PushSubscriptionOptions;\n    new(): PushSubscriptionOptions;\n};\n\ninterface RTCEncodedAudioFrame {\n    data: ArrayBuffer;\n    readonly timestamp: number;\n    getMetadata(): RTCEncodedAudioFrameMetadata;\n}\n\ndeclare var RTCEncodedAudioFrame: {\n    prototype: RTCEncodedAudioFrame;\n    new(): RTCEncodedAudioFrame;\n};\n\ninterface RTCEncodedVideoFrame {\n    data: ArrayBuffer;\n    readonly timestamp: number;\n    readonly type: RTCEncodedVideoFrameType;\n    getMetadata(): RTCEncodedVideoFrameMetadata;\n}\n\ndeclare var RTCEncodedVideoFrame: {\n    prototype: RTCEncodedVideoFrame;\n    new(): RTCEncodedVideoFrame;\n};\n\ninterface ReadableByteStreamController {\n    readonly byobRequest: ReadableStreamBYOBRequest | null;\n    readonly desiredSize: number | null;\n    close(): void;\n    enqueue(chunk: ArrayBufferView): void;\n    error(e?: any): void;\n}\n\ndeclare var ReadableByteStreamController: {\n    prototype: ReadableByteStreamController;\n    new(): ReadableByteStreamController;\n};\n\n/** This Streams API interface represents a readable stream of byte data. The Fetch API offers a concrete instance of a ReadableStream through the body property of a Response object. */\ninterface ReadableStream<R = any> {\n    readonly locked: boolean;\n    cancel(reason?: any): Promise<void>;\n    getReader(options: { mode: \"byob\" }): ReadableStreamBYOBReader;\n    getReader(): ReadableStreamDefaultReader<R>;\n    getReader(options?: ReadableStreamGetReaderOptions): ReadableStreamReader<R>;\n    pipeThrough<T>(transform: ReadableWritablePair<T, R>, options?: StreamPipeOptions): ReadableStream<T>;\n    pipeTo(destination: WritableStream<R>, options?: StreamPipeOptions): Promise<void>;\n    tee(): [ReadableStream<R>, ReadableStream<R>];\n}\n\ndeclare var ReadableStream: {\n    prototype: ReadableStream;\n    new(underlyingSource: UnderlyingByteSource, strategy?: { highWaterMark?: number }): ReadableStream<Uint8Array>;\n    new<R = any>(underlyingSource: UnderlyingDefaultSource<R>, strategy?: QueuingStrategy<R>): ReadableStream<R>;\n    new<R = any>(underlyingSource?: UnderlyingSource<R>, strategy?: QueuingStrategy<R>): ReadableStream<R>;\n};\n\ninterface ReadableStreamBYOBReader extends ReadableStreamGenericReader {\n    read<T extends ArrayBufferView>(view: T): Promise<ReadableStreamReadResult<T>>;\n    releaseLock(): void;\n}\n\ndeclare var ReadableStreamBYOBReader: {\n    prototype: ReadableStreamBYOBReader;\n    new(stream: ReadableStream): ReadableStreamBYOBReader;\n};\n\ninterface ReadableStreamBYOBRequest {\n    readonly view: ArrayBufferView | null;\n    respond(bytesWritten: number): void;\n    respondWithNewView(view: ArrayBufferView): void;\n}\n\ndeclare var ReadableStreamBYOBRequest: {\n    prototype: ReadableStreamBYOBRequest;\n    new(): ReadableStreamBYOBRequest;\n};\n\ninterface ReadableStreamDefaultController<R = any> {\n    readonly desiredSize: number | null;\n    close(): void;\n    enqueue(chunk?: R): void;\n    error(e?: any): void;\n}\n\ndeclare var ReadableStreamDefaultController: {\n    prototype: ReadableStreamDefaultController;\n    new(): ReadableStreamDefaultController;\n};\n\ninterface ReadableStreamDefaultReader<R = any> extends ReadableStreamGenericReader {\n    read(): Promise<ReadableStreamReadResult<R>>;\n    releaseLock(): void;\n}\n\ndeclare var ReadableStreamDefaultReader: {\n    prototype: ReadableStreamDefaultReader;\n    new<R = any>(stream: ReadableStream<R>): ReadableStreamDefaultReader<R>;\n};\n\ninterface ReadableStreamGenericReader {\n    readonly closed: Promise<undefined>;\n    cancel(reason?: any): Promise<void>;\n}\n\n/** This Fetch API interface represents a resource request. */\ninterface Request extends Body {\n    /** Returns the cache mode associated with request, which is a string indicating how the request will interact with the browser's cache when fetching. */\n    readonly cache: RequestCache;\n    /** Returns the credentials mode associated with request, which is a string indicating whether credentials will be sent with the request always, never, or only when sent to a same-origin URL. */\n    readonly credentials: RequestCredentials;\n    /** Returns the kind of resource requested by request, e.g., \"document\" or \"script\". */\n    readonly destination: RequestDestination;\n    /** Returns a Headers object consisting of the headers associated with request. Note that headers added in the network layer by the user agent will not be accounted for in this object, e.g., the \"Host\" header. */\n    readonly headers: Headers;\n    /** Returns request's subresource integrity metadata, which is a cryptographic hash of the resource being fetched. Its value consists of multiple hashes separated by whitespace. [SRI] */\n    readonly integrity: string;\n    /** Returns a boolean indicating whether or not request can outlive the global in which it was created. */\n    readonly keepalive: boolean;\n    /** Returns request's HTTP method, which is \"GET\" by default. */\n    readonly method: string;\n    /** Returns the mode associated with request, which is a string indicating whether the request will use CORS, or will be restricted to same-origin URLs. */\n    readonly mode: RequestMode;\n    /** Returns the redirect mode associated with request, which is a string indicating how redirects for the request will be handled during fetching. A request will follow redirects by default. */\n    readonly redirect: RequestRedirect;\n    /** Returns the referrer of request. Its value can be a same-origin URL if explicitly set in init, the empty string to indicate no referrer, and \"about:client\" when defaulting to the global's default. This is used during fetching to determine the value of the `Referer` header of the request being made. */\n    readonly referrer: string;\n    /** Returns the referrer policy associated with request. This is used during fetching to compute the value of the request's referrer. */\n    readonly referrerPolicy: ReferrerPolicy;\n    /** Returns the signal associated with request, which is an AbortSignal object indicating whether or not request has been aborted, and its abort event handler. */\n    readonly signal: AbortSignal;\n    /** Returns the URL of request as a string. */\n    readonly url: string;\n    clone(): Request;\n}\n\ndeclare var Request: {\n    prototype: Request;\n    new(input: RequestInfo | URL, init?: RequestInit): Request;\n};\n\n/** This Fetch API interface represents the response to a request. */\ninterface Response extends Body {\n    readonly headers: Headers;\n    readonly ok: boolean;\n    readonly redirected: boolean;\n    readonly status: number;\n    readonly statusText: string;\n    readonly type: ResponseType;\n    readonly url: string;\n    clone(): Response;\n}\n\ndeclare var Response: {\n    prototype: Response;\n    new(body?: BodyInit | null, init?: ResponseInit): Response;\n    error(): Response;\n    redirect(url: string | URL, status?: number): Response;\n};\n\n/** Inherits from Event, and represents the event object of an event sent on a document or worker when its content security policy is violated. */\ninterface SecurityPolicyViolationEvent extends Event {\n    readonly blockedURI: string;\n    readonly columnNumber: number;\n    readonly disposition: SecurityPolicyViolationEventDisposition;\n    readonly documentURI: string;\n    readonly effectiveDirective: string;\n    readonly lineNumber: number;\n    readonly originalPolicy: string;\n    readonly referrer: string;\n    readonly sample: string;\n    readonly sourceFile: string;\n    readonly statusCode: number;\n    readonly violatedDirective: string;\n}\n\ndeclare var SecurityPolicyViolationEvent: {\n    prototype: SecurityPolicyViolationEvent;\n    new(type: string, eventInitDict?: SecurityPolicyViolationEventInit): SecurityPolicyViolationEvent;\n};\n\ninterface ServiceWorkerEventMap extends AbstractWorkerEventMap {\n    \"statechange\": Event;\n}\n\n/**\n * This ServiceWorker API interface provides a reference to a service worker. Multiple browsing contexts (e.g. pages, workers, etc.) can be associated with the same service worker, each through a unique ServiceWorker object.\n * Available only in secure contexts.\n */\ninterface ServiceWorker extends EventTarget, AbstractWorker {\n    onstatechange: ((this: ServiceWorker, ev: Event) => any) | null;\n    readonly scriptURL: string;\n    readonly state: ServiceWorkerState;\n    postMessage(message: any, transfer: Transferable[]): void;\n    postMessage(message: any, options?: StructuredSerializeOptions): void;\n    addEventListener<K extends keyof ServiceWorkerEventMap>(type: K, listener: (this: ServiceWorker, ev: ServiceWorkerEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n    removeEventListener<K extends keyof ServiceWorkerEventMap>(type: K, listener: (this: ServiceWorker, ev: ServiceWorkerEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var ServiceWorker: {\n    prototype: ServiceWorker;\n    new(): ServiceWorker;\n};\n\ninterface ServiceWorkerContainerEventMap {\n    \"controllerchange\": Event;\n    \"message\": MessageEvent;\n    \"messageerror\": MessageEvent;\n}\n\n/**\n * The ServiceWorkerContainer interface of the ServiceWorker API provides an object representing the service worker as an overall unit in the network ecosystem, including facilities to register, unregister and update service workers, and access the state of service workers and their registrations.\n * Available only in secure contexts.\n */\ninterface ServiceWorkerContainer extends EventTarget {\n    readonly controller: ServiceWorker | null;\n    oncontrollerchange: ((this: ServiceWorkerContainer, ev: Event) => any) | null;\n    onmessage: ((this: ServiceWorkerContainer, ev: MessageEvent) => any) | null;\n    onmessageerror: ((this: ServiceWorkerContainer, ev: MessageEvent) => any) | null;\n    readonly ready: Promise<ServiceWorkerRegistration>;\n    getRegistration(clientURL?: string | URL): Promise<ServiceWorkerRegistration | undefined>;\n    getRegistrations(): Promise<ReadonlyArray<ServiceWorkerRegistration>>;\n    register(scriptURL: string | URL, options?: RegistrationOptions): Promise<ServiceWorkerRegistration>;\n    startMessages(): void;\n    addEventListener<K extends keyof ServiceWorkerContainerEventMap>(type: K, listener: (this: ServiceWorkerContainer, ev: ServiceWorkerContainerEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n    removeEventListener<K extends keyof ServiceWorkerContainerEventMap>(type: K, listener: (this: ServiceWorkerContainer, ev: ServiceWorkerContainerEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var ServiceWorkerContainer: {\n    prototype: ServiceWorkerContainer;\n    new(): ServiceWorkerContainer;\n};\n\ninterface ServiceWorkerGlobalScopeEventMap extends WorkerGlobalScopeEventMap {\n    \"activate\": ExtendableEvent;\n    \"fetch\": FetchEvent;\n    \"install\": ExtendableEvent;\n    \"message\": ExtendableMessageEvent;\n    \"messageerror\": MessageEvent;\n    \"notificationclick\": NotificationEvent;\n    \"notificationclose\": NotificationEvent;\n    \"push\": PushEvent;\n    \"pushsubscriptionchange\": Event;\n}\n\n/** This ServiceWorker API interface represents the global execution context of a service worker. */\ninterface ServiceWorkerGlobalScope extends WorkerGlobalScope {\n    readonly clients: Clients;\n    onactivate: ((this: ServiceWorkerGlobalScope, ev: ExtendableEvent) => any) | null;\n    onfetch: ((this: ServiceWorkerGlobalScope, ev: FetchEvent) => any) | null;\n    oninstall: ((this: ServiceWorkerGlobalScope, ev: ExtendableEvent) => any) | null;\n    onmessage: ((this: ServiceWorkerGlobalScope, ev: ExtendableMessageEvent) => any) | null;\n    onmessageerror: ((this: ServiceWorkerGlobalScope, ev: MessageEvent) => any) | null;\n    onnotificationclick: ((this: ServiceWorkerGlobalScope, ev: NotificationEvent) => any) | null;\n    onnotificationclose: ((this: ServiceWorkerGlobalScope, ev: NotificationEvent) => any) | null;\n    onpush: ((this: ServiceWorkerGlobalScope, ev: PushEvent) => any) | null;\n    onpushsubscriptionchange: ((this: ServiceWorkerGlobalScope, ev: Event) => any) | null;\n    readonly registration: ServiceWorkerRegistration;\n    readonly serviceWorker: ServiceWorker;\n    skipWaiting(): Promise<void>;\n    addEventListener<K extends keyof ServiceWorkerGlobalScopeEventMap>(type: K, listener: (this: ServiceWorkerGlobalScope, ev: ServiceWorkerGlobalScopeEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n    removeEventListener<K extends keyof ServiceWorkerGlobalScopeEventMap>(type: K, listener: (this: ServiceWorkerGlobalScope, ev: ServiceWorkerGlobalScopeEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var ServiceWorkerGlobalScope: {\n    prototype: ServiceWorkerGlobalScope;\n    new(): ServiceWorkerGlobalScope;\n};\n\ninterface ServiceWorkerRegistrationEventMap {\n    \"updatefound\": Event;\n}\n\n/**\n * This ServiceWorker API interface represents the service worker registration. You register a service worker to control one or more pages that share the same origin.\n * Available only in secure contexts.\n */\ninterface ServiceWorkerRegistration extends EventTarget {\n    readonly active: ServiceWorker | null;\n    readonly installing: ServiceWorker | null;\n    readonly navigationPreload: NavigationPreloadManager;\n    onupdatefound: ((this: ServiceWorkerRegistration, ev: Event) => any) | null;\n    readonly pushManager: PushManager;\n    readonly scope: string;\n    readonly updateViaCache: ServiceWorkerUpdateViaCache;\n    readonly waiting: ServiceWorker | null;\n    getNotifications(filter?: GetNotificationOptions): Promise<Notification[]>;\n    showNotification(title: string, options?: NotificationOptions): Promise<void>;\n    unregister(): Promise<boolean>;\n    update(): Promise<void>;\n    addEventListener<K extends keyof ServiceWorkerRegistrationEventMap>(type: K, listener: (this: ServiceWorkerRegistration, ev: ServiceWorkerRegistrationEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n    removeEventListener<K extends keyof ServiceWorkerRegistrationEventMap>(type: K, listener: (this: ServiceWorkerRegistration, ev: ServiceWorkerRegistrationEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var ServiceWorkerRegistration: {\n    prototype: ServiceWorkerRegistration;\n    new(): ServiceWorkerRegistration;\n};\n\ninterface SharedWorkerGlobalScopeEventMap extends WorkerGlobalScopeEventMap {\n    \"connect\": MessageEvent;\n}\n\ninterface SharedWorkerGlobalScope extends WorkerGlobalScope {\n    /** Returns sharedWorkerGlobal's name, i.e. the value given to the SharedWorker constructor. Multiple SharedWorker objects can correspond to the same shared worker (and SharedWorkerGlobalScope), by reusing the same name. */\n    readonly name: string;\n    onconnect: ((this: SharedWorkerGlobalScope, ev: MessageEvent) => any) | null;\n    /** Aborts sharedWorkerGlobal. */\n    close(): void;\n    addEventListener<K extends keyof SharedWorkerGlobalScopeEventMap>(type: K, listener: (this: SharedWorkerGlobalScope, ev: SharedWorkerGlobalScopeEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n    removeEventListener<K extends keyof SharedWorkerGlobalScopeEventMap>(type: K, listener: (this: SharedWorkerGlobalScope, ev: SharedWorkerGlobalScopeEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var SharedWorkerGlobalScope: {\n    prototype: SharedWorkerGlobalScope;\n    new(): SharedWorkerGlobalScope;\n};\n\n/** Available only in secure contexts. */\ninterface StorageManager {\n    estimate(): Promise<StorageEstimate>;\n    getDirectory(): Promise<FileSystemDirectoryHandle>;\n    persisted(): Promise<boolean>;\n}\n\ndeclare var StorageManager: {\n    prototype: StorageManager;\n    new(): StorageManager;\n};\n\n/**\n * This Web Crypto API interface provides a number of low-level cryptographic functions. It is accessed via the Crypto.subtle properties available in a window context (via Window.crypto).\n * Available only in secure contexts.\n */\ninterface SubtleCrypto {\n    decrypt(algorithm: AlgorithmIdentifier | RsaOaepParams | AesCtrParams | AesCbcParams | AesGcmParams, key: CryptoKey, data: BufferSource): Promise<ArrayBuffer>;\n    deriveBits(algorithm: AlgorithmIdentifier | EcdhKeyDeriveParams | HkdfParams | Pbkdf2Params, baseKey: CryptoKey, length: number): Promise<ArrayBuffer>;\n    deriveKey(algorithm: AlgorithmIdentifier | EcdhKeyDeriveParams | HkdfParams | Pbkdf2Params, baseKey: CryptoKey, derivedKeyType: AlgorithmIdentifier | AesDerivedKeyParams | HmacImportParams | HkdfParams | Pbkdf2Params, extractable: boolean, keyUsages: KeyUsage[]): Promise<CryptoKey>;\n    digest(algorithm: AlgorithmIdentifier, data: BufferSource): Promise<ArrayBuffer>;\n    encrypt(algorithm: AlgorithmIdentifier | RsaOaepParams | AesCtrParams | AesCbcParams | AesGcmParams, key: CryptoKey, data: BufferSource): Promise<ArrayBuffer>;\n    exportKey(format: \"jwk\", key: CryptoKey): Promise<JsonWebKey>;\n    exportKey(format: Exclude<KeyFormat, \"jwk\">, key: CryptoKey): Promise<ArrayBuffer>;\n    generateKey(algorithm: RsaHashedKeyGenParams | EcKeyGenParams, extractable: boolean, keyUsages: ReadonlyArray<KeyUsage>): Promise<CryptoKeyPair>;\n    generateKey(algorithm: AesKeyGenParams | HmacKeyGenParams | Pbkdf2Params, extractable: boolean, keyUsages: ReadonlyArray<KeyUsage>): Promise<CryptoKey>;\n    generateKey(algorithm: AlgorithmIdentifier, extractable: boolean, keyUsages: KeyUsage[]): Promise<CryptoKeyPair | CryptoKey>;\n    importKey(format: \"jwk\", keyData: JsonWebKey, algorithm: AlgorithmIdentifier | RsaHashedImportParams | EcKeyImportParams | HmacImportParams | AesKeyAlgorithm, extractable: boolean, keyUsages: ReadonlyArray<KeyUsage>): Promise<CryptoKey>;\n    importKey(format: Exclude<KeyFormat, \"jwk\">, keyData: BufferSource, algorithm: AlgorithmIdentifier | RsaHashedImportParams | EcKeyImportParams | HmacImportParams | AesKeyAlgorithm, extractable: boolean, keyUsages: KeyUsage[]): Promise<CryptoKey>;\n    sign(algorithm: AlgorithmIdentifier | RsaPssParams | EcdsaParams, key: CryptoKey, data: BufferSource): Promise<ArrayBuffer>;\n    unwrapKey(format: KeyFormat, wrappedKey: BufferSource, unwrappingKey: CryptoKey, unwrapAlgorithm: AlgorithmIdentifier | RsaOaepParams | AesCtrParams | AesCbcParams | AesGcmParams, unwrappedKeyAlgorithm: AlgorithmIdentifier | RsaHashedImportParams | EcKeyImportParams | HmacImportParams | AesKeyAlgorithm, extractable: boolean, keyUsages: KeyUsage[]): Promise<CryptoKey>;\n    verify(algorithm: AlgorithmIdentifier | RsaPssParams | EcdsaParams, key: CryptoKey, signature: BufferSource, data: BufferSource): Promise<boolean>;\n    wrapKey(format: KeyFormat, key: CryptoKey, wrappingKey: CryptoKey, wrapAlgorithm: AlgorithmIdentifier | RsaOaepParams | AesCtrParams | AesCbcParams | AesGcmParams): Promise<ArrayBuffer>;\n}\n\ndeclare var SubtleCrypto: {\n    prototype: SubtleCrypto;\n    new(): SubtleCrypto;\n};\n\n/** A decoder for a specific method, that is a specific character encoding, like utf-8, iso-8859-2, koi8, cp1261, gbk, etc. A decoder takes a stream of bytes as input and emits a stream of code points. For a more scalable, non-native library, see StringView – a C-like representation of strings based on typed arrays. */\ninterface TextDecoder extends TextDecoderCommon {\n    /**\n     * Returns the result of running encoding's decoder. The method can be invoked zero or more times with options's stream set to true, and then once without options's stream (or set to false), to process a fragmented input. If the invocation without options's stream (or set to false) has no input, it's clearest to omit both arguments.\n     *\n     * ```\n     * var string = \"\", decoder = new TextDecoder(encoding), buffer;\n     * while(buffer = next_chunk()) {\n     *   string += decoder.decode(buffer, {stream:true});\n     * }\n     * string += decoder.decode(); // end-of-queue\n     * ```\n     *\n     * If the error mode is \"fatal\" and encoding's decoder returns error, throws a TypeError.\n     */\n    decode(input?: BufferSource, options?: TextDecodeOptions): string;\n}\n\ndeclare var TextDecoder: {\n    prototype: TextDecoder;\n    new(label?: string, options?: TextDecoderOptions): TextDecoder;\n};\n\ninterface TextDecoderCommon {\n    /** Returns encoding's name, lowercased. */\n    readonly encoding: string;\n    /** Returns true if error mode is \"fatal\", otherwise false. */\n    readonly fatal: boolean;\n    /** Returns the value of ignore BOM. */\n    readonly ignoreBOM: boolean;\n}\n\ninterface TextDecoderStream extends GenericTransformStream, TextDecoderCommon {\n    readonly readable: ReadableStream<string>;\n    readonly writable: WritableStream<BufferSource>;\n}\n\ndeclare var TextDecoderStream: {\n    prototype: TextDecoderStream;\n    new(label?: string, options?: TextDecoderOptions): TextDecoderStream;\n};\n\n/** TextEncoder takes a stream of code points as input and emits a stream of bytes. For a more scalable, non-native library, see StringView – a C-like representation of strings based on typed arrays. */\ninterface TextEncoder extends TextEncoderCommon {\n    /** Returns the result of running UTF-8's encoder. */\n    encode(input?: string): Uint8Array;\n    /** Runs the UTF-8 encoder on source, stores the result of that operation into destination, and returns the progress made as an object wherein read is the number of converted code units of source and written is the number of bytes modified in destination. */\n    encodeInto(source: string, destination: Uint8Array): TextEncoderEncodeIntoResult;\n}\n\ndeclare var TextEncoder: {\n    prototype: TextEncoder;\n    new(): TextEncoder;\n};\n\ninterface TextEncoderCommon {\n    /** Returns \"utf-8\". */\n    readonly encoding: string;\n}\n\ninterface TextEncoderStream extends GenericTransformStream, TextEncoderCommon {\n    readonly readable: ReadableStream<Uint8Array>;\n    readonly writable: WritableStream<string>;\n}\n\ndeclare var TextEncoderStream: {\n    prototype: TextEncoderStream;\n    new(): TextEncoderStream;\n};\n\n/** The dimensions of a piece of text in the canvas, as created by the CanvasRenderingContext2D.measureText() method. */\ninterface TextMetrics {\n    /** Returns the measurement described below. */\n    readonly actualBoundingBoxAscent: number;\n    /** Returns the measurement described below. */\n    readonly actualBoundingBoxDescent: number;\n    /** Returns the measurement described below. */\n    readonly actualBoundingBoxLeft: number;\n    /** Returns the measurement described below. */\n    readonly actualBoundingBoxRight: number;\n    /** Returns the measurement described below. */\n    readonly fontBoundingBoxAscent: number;\n    /** Returns the measurement described below. */\n    readonly fontBoundingBoxDescent: number;\n    /** Returns the measurement described below. */\n    readonly width: number;\n}\n\ndeclare var TextMetrics: {\n    prototype: TextMetrics;\n    new(): TextMetrics;\n};\n\ninterface TransformStream<I = any, O = any> {\n    readonly readable: ReadableStream<O>;\n    readonly writable: WritableStream<I>;\n}\n\ndeclare var TransformStream: {\n    prototype: TransformStream;\n    new<I = any, O = any>(transformer?: Transformer<I, O>, writableStrategy?: QueuingStrategy<I>, readableStrategy?: QueuingStrategy<O>): TransformStream<I, O>;\n};\n\ninterface TransformStreamDefaultController<O = any> {\n    readonly desiredSize: number | null;\n    enqueue(chunk?: O): void;\n    error(reason?: any): void;\n    terminate(): void;\n}\n\ndeclare var TransformStreamDefaultController: {\n    prototype: TransformStreamDefaultController;\n    new(): TransformStreamDefaultController;\n};\n\n/** The URL interface represents an object providing static methods used for creating object URLs. */\ninterface URL {\n    hash: string;\n    host: string;\n    hostname: string;\n    href: string;\n    toString(): string;\n    readonly origin: string;\n    password: string;\n    pathname: string;\n    port: string;\n    protocol: string;\n    search: string;\n    readonly searchParams: URLSearchParams;\n    username: string;\n    toJSON(): string;\n}\n\ndeclare var URL: {\n    prototype: URL;\n    new(url: string | URL, base?: string | URL): URL;\n    createObjectURL(obj: Blob): string;\n    revokeObjectURL(url: string): void;\n};\n\ninterface URLSearchParams {\n    /** Appends a specified key/value pair as a new search parameter. */\n    append(name: string, value: string): void;\n    /** Deletes the given search parameter, and its associated value, from the list of all search parameters. */\n    delete(name: string): void;\n    /** Returns the first value associated to the given search parameter. */\n    get(name: string): string | null;\n    /** Returns all the values association with a given search parameter. */\n    getAll(name: string): string[];\n    /** Returns a Boolean indicating if such a search parameter exists. */\n    has(name: string): boolean;\n    /** Sets the value associated to a given search parameter to the given value. If there were several values, delete the others. */\n    set(name: string, value: string): void;\n    sort(): void;\n    /** Returns a string containing a query string suitable for use in a URL. Does not include the question mark. */\n    toString(): string;\n    forEach(callbackfn: (value: string, key: string, parent: URLSearchParams) => void, thisArg?: any): void;\n}\n\ndeclare var URLSearchParams: {\n    prototype: URLSearchParams;\n    new(init?: string[][] | Record<string, string> | string | URLSearchParams): URLSearchParams;\n    toString(): string;\n};\n\ninterface VideoColorSpace {\n    readonly fullRange: boolean | null;\n    readonly matrix: VideoMatrixCoefficients | null;\n    readonly primaries: VideoColorPrimaries | null;\n    readonly transfer: VideoTransferCharacteristics | null;\n    toJSON(): VideoColorSpaceInit;\n}\n\ndeclare var VideoColorSpace: {\n    prototype: VideoColorSpace;\n    new(init?: VideoColorSpaceInit): VideoColorSpace;\n};\n\ninterface WEBGL_color_buffer_float {\n    readonly FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT: GLenum;\n    readonly RGBA32F_EXT: GLenum;\n    readonly UNSIGNED_NORMALIZED_EXT: GLenum;\n}\n\ninterface WEBGL_compressed_texture_astc {\n    getSupportedProfiles(): string[];\n    readonly COMPRESSED_RGBA_ASTC_10x10_KHR: GLenum;\n    readonly COMPRESSED_RGBA_ASTC_10x5_KHR: GLenum;\n    readonly COMPRESSED_RGBA_ASTC_10x6_KHR: GLenum;\n    readonly COMPRESSED_RGBA_ASTC_10x8_KHR: GLenum;\n    readonly COMPRESSED_RGBA_ASTC_12x10_KHR: GLenum;\n    readonly COMPRESSED_RGBA_ASTC_12x12_KHR: GLenum;\n    readonly COMPRESSED_RGBA_ASTC_4x4_KHR: GLenum;\n    readonly COMPRESSED_RGBA_ASTC_5x4_KHR: GLenum;\n    readonly COMPRESSED_RGBA_ASTC_5x5_KHR: GLenum;\n    readonly COMPRESSED_RGBA_ASTC_6x5_KHR: GLenum;\n    readonly COMPRESSED_RGBA_ASTC_6x6_KHR: GLenum;\n    readonly COMPRESSED_RGBA_ASTC_8x5_KHR: GLenum;\n    readonly COMPRESSED_RGBA_ASTC_8x6_KHR: GLenum;\n    readonly COMPRESSED_RGBA_ASTC_8x8_KHR: GLenum;\n    readonly COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR: GLenum;\n    readonly COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR: GLenum;\n    readonly COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR: GLenum;\n    readonly COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR: GLenum;\n    readonly COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR: GLenum;\n    readonly COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR: GLenum;\n    readonly COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR: GLenum;\n    readonly COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR: GLenum;\n    readonly COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR: GLenum;\n    readonly COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR: GLenum;\n    readonly COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR: GLenum;\n    readonly COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR: GLenum;\n    readonly COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR: GLenum;\n    readonly COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR: GLenum;\n}\n\ninterface WEBGL_compressed_texture_etc {\n    readonly COMPRESSED_R11_EAC: GLenum;\n    readonly COMPRESSED_RG11_EAC: GLenum;\n    readonly COMPRESSED_RGB8_ETC2: GLenum;\n    readonly COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2: GLenum;\n    readonly COMPRESSED_RGBA8_ETC2_EAC: GLenum;\n    readonly COMPRESSED_SIGNED_R11_EAC: GLenum;\n    readonly COMPRESSED_SIGNED_RG11_EAC: GLenum;\n    readonly COMPRESSED_SRGB8_ALPHA8_ETC2_EAC: GLenum;\n    readonly COMPRESSED_SRGB8_ETC2: GLenum;\n    readonly COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2: GLenum;\n}\n\ninterface WEBGL_compressed_texture_etc1 {\n    readonly COMPRESSED_RGB_ETC1_WEBGL: GLenum;\n}\n\n/** The WEBGL_compressed_texture_s3tc extension is part of the WebGL API and exposes four S3TC compressed texture formats. */\ninterface WEBGL_compressed_texture_s3tc {\n    readonly COMPRESSED_RGBA_S3TC_DXT1_EXT: GLenum;\n    readonly COMPRESSED_RGBA_S3TC_DXT3_EXT: GLenum;\n    readonly COMPRESSED_RGBA_S3TC_DXT5_EXT: GLenum;\n    readonly COMPRESSED_RGB_S3TC_DXT1_EXT: GLenum;\n}\n\ninterface WEBGL_compressed_texture_s3tc_srgb {\n    readonly COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT: GLenum;\n    readonly COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT: GLenum;\n    readonly COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT: GLenum;\n    readonly COMPRESSED_SRGB_S3TC_DXT1_EXT: GLenum;\n}\n\n/** The WEBGL_debug_renderer_info extension is part of the WebGL API and exposes two constants with information about the graphics driver for debugging purposes. */\ninterface WEBGL_debug_renderer_info {\n    readonly UNMASKED_RENDERER_WEBGL: GLenum;\n    readonly UNMASKED_VENDOR_WEBGL: GLenum;\n}\n\ninterface WEBGL_debug_shaders {\n    getTranslatedShaderSource(shader: WebGLShader): string;\n}\n\n/** The WEBGL_depth_texture extension is part of the WebGL API and defines 2D depth and depth-stencil textures. */\ninterface WEBGL_depth_texture {\n    readonly UNSIGNED_INT_24_8_WEBGL: GLenum;\n}\n\ninterface WEBGL_draw_buffers {\n    drawBuffersWEBGL(buffers: GLenum[]): void;\n    readonly COLOR_ATTACHMENT0_WEBGL: GLenum;\n    readonly COLOR_ATTACHMENT10_WEBGL: GLenum;\n    readonly COLOR_ATTACHMENT11_WEBGL: GLenum;\n    readonly COLOR_ATTACHMENT12_WEBGL: GLenum;\n    readonly COLOR_ATTACHMENT13_WEBGL: GLenum;\n    readonly COLOR_ATTACHMENT14_WEBGL: GLenum;\n    readonly COLOR_ATTACHMENT15_WEBGL: GLenum;\n    readonly COLOR_ATTACHMENT1_WEBGL: GLenum;\n    readonly COLOR_ATTACHMENT2_WEBGL: GLenum;\n    readonly COLOR_ATTACHMENT3_WEBGL: GLenum;\n    readonly COLOR_ATTACHMENT4_WEBGL: GLenum;\n    readonly COLOR_ATTACHMENT5_WEBGL: GLenum;\n    readonly COLOR_ATTACHMENT6_WEBGL: GLenum;\n    readonly COLOR_ATTACHMENT7_WEBGL: GLenum;\n    readonly COLOR_ATTACHMENT8_WEBGL: GLenum;\n    readonly COLOR_ATTACHMENT9_WEBGL: GLenum;\n    readonly DRAW_BUFFER0_WEBGL: GLenum;\n    readonly DRAW_BUFFER10_WEBGL: GLenum;\n    readonly DRAW_BUFFER11_WEBGL: GLenum;\n    readonly DRAW_BUFFER12_WEBGL: GLenum;\n    readonly DRAW_BUFFER13_WEBGL: GLenum;\n    readonly DRAW_BUFFER14_WEBGL: GLenum;\n    readonly DRAW_BUFFER15_WEBGL: GLenum;\n    readonly DRAW_BUFFER1_WEBGL: GLenum;\n    readonly DRAW_BUFFER2_WEBGL: GLenum;\n    readonly DRAW_BUFFER3_WEBGL: GLenum;\n    readonly DRAW_BUFFER4_WEBGL: GLenum;\n    readonly DRAW_BUFFER5_WEBGL: GLenum;\n    readonly DRAW_BUFFER6_WEBGL: GLenum;\n    readonly DRAW_BUFFER7_WEBGL: GLenum;\n    readonly DRAW_BUFFER8_WEBGL: GLenum;\n    readonly DRAW_BUFFER9_WEBGL: GLenum;\n    readonly MAX_COLOR_ATTACHMENTS_WEBGL: GLenum;\n    readonly MAX_DRAW_BUFFERS_WEBGL: GLenum;\n}\n\ninterface WEBGL_lose_context {\n    loseContext(): void;\n    restoreContext(): void;\n}\n\ninterface WEBGL_multi_draw {\n    multiDrawArraysInstancedWEBGL(mode: GLenum, firstsList: Int32Array | GLint[], firstsOffset: GLuint, countsList: Int32Array | GLsizei[], countsOffset: GLuint, instanceCountsList: Int32Array | GLsizei[], instanceCountsOffset: GLuint, drawcount: GLsizei): void;\n    multiDrawArraysWEBGL(mode: GLenum, firstsList: Int32Array | GLint[], firstsOffset: GLuint, countsList: Int32Array | GLsizei[], countsOffset: GLuint, drawcount: GLsizei): void;\n    multiDrawElementsInstancedWEBGL(mode: GLenum, countsList: Int32Array | GLsizei[], countsOffset: GLuint, type: GLenum, offsetsList: Int32Array | GLsizei[], offsetsOffset: GLuint, instanceCountsList: Int32Array | GLsizei[], instanceCountsOffset: GLuint, drawcount: GLsizei): void;\n    multiDrawElementsWEBGL(mode: GLenum, countsList: Int32Array | GLsizei[], countsOffset: GLuint, type: GLenum, offsetsList: Int32Array | GLsizei[], offsetsOffset: GLuint, drawcount: GLsizei): void;\n}\n\ninterface WebGL2RenderingContext extends WebGL2RenderingContextBase, WebGL2RenderingContextOverloads, WebGLRenderingContextBase {\n}\n\ndeclare var WebGL2RenderingContext: {\n    prototype: WebGL2RenderingContext;\n    new(): WebGL2RenderingContext;\n    readonly ACTIVE_UNIFORM_BLOCKS: GLenum;\n    readonly ALREADY_SIGNALED: GLenum;\n    readonly ANY_SAMPLES_PASSED: GLenum;\n    readonly ANY_SAMPLES_PASSED_CONSERVATIVE: GLenum;\n    readonly COLOR: GLenum;\n    readonly COLOR_ATTACHMENT1: GLenum;\n    readonly COLOR_ATTACHMENT10: GLenum;\n    readonly COLOR_ATTACHMENT11: GLenum;\n    readonly COLOR_ATTACHMENT12: GLenum;\n    readonly COLOR_ATTACHMENT13: GLenum;\n    readonly COLOR_ATTACHMENT14: GLenum;\n    readonly COLOR_ATTACHMENT15: GLenum;\n    readonly COLOR_ATTACHMENT2: GLenum;\n    readonly COLOR_ATTACHMENT3: GLenum;\n    readonly COLOR_ATTACHMENT4: GLenum;\n    readonly COLOR_ATTACHMENT5: GLenum;\n    readonly COLOR_ATTACHMENT6: GLenum;\n    readonly COLOR_ATTACHMENT7: GLenum;\n    readonly COLOR_ATTACHMENT8: GLenum;\n    readonly COLOR_ATTACHMENT9: GLenum;\n    readonly COMPARE_REF_TO_TEXTURE: GLenum;\n    readonly CONDITION_SATISFIED: GLenum;\n    readonly COPY_READ_BUFFER: GLenum;\n    readonly COPY_READ_BUFFER_BINDING: GLenum;\n    readonly COPY_WRITE_BUFFER: GLenum;\n    readonly COPY_WRITE_BUFFER_BINDING: GLenum;\n    readonly CURRENT_QUERY: GLenum;\n    readonly DEPTH: GLenum;\n    readonly DEPTH24_STENCIL8: GLenum;\n    readonly DEPTH32F_STENCIL8: GLenum;\n    readonly DEPTH_COMPONENT24: GLenum;\n    readonly DEPTH_COMPONENT32F: GLenum;\n    readonly DRAW_BUFFER0: GLenum;\n    readonly DRAW_BUFFER1: GLenum;\n    readonly DRAW_BUFFER10: GLenum;\n    readonly DRAW_BUFFER11: GLenum;\n    readonly DRAW_BUFFER12: GLenum;\n    readonly DRAW_BUFFER13: GLenum;\n    readonly DRAW_BUFFER14: GLenum;\n    readonly DRAW_BUFFER15: GLenum;\n    readonly DRAW_BUFFER2: GLenum;\n    readonly DRAW_BUFFER3: GLenum;\n    readonly DRAW_BUFFER4: GLenum;\n    readonly DRAW_BUFFER5: GLenum;\n    readonly DRAW_BUFFER6: GLenum;\n    readonly DRAW_BUFFER7: GLenum;\n    readonly DRAW_BUFFER8: GLenum;\n    readonly DRAW_BUFFER9: GLenum;\n    readonly DRAW_FRAMEBUFFER: GLenum;\n    readonly DRAW_FRAMEBUFFER_BINDING: GLenum;\n    readonly DYNAMIC_COPY: GLenum;\n    readonly DYNAMIC_READ: GLenum;\n    readonly FLOAT_32_UNSIGNED_INT_24_8_REV: GLenum;\n    readonly FLOAT_MAT2x3: GLenum;\n    readonly FLOAT_MAT2x4: GLenum;\n    readonly FLOAT_MAT3x2: GLenum;\n    readonly FLOAT_MAT3x4: GLenum;\n    readonly FLOAT_MAT4x2: GLenum;\n    readonly FLOAT_MAT4x3: GLenum;\n    readonly FRAGMENT_SHADER_DERIVATIVE_HINT: GLenum;\n    readonly FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE: GLenum;\n    readonly FRAMEBUFFER_ATTACHMENT_BLUE_SIZE: GLenum;\n    readonly FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING: GLenum;\n    readonly FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE: GLenum;\n    readonly FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE: GLenum;\n    readonly FRAMEBUFFER_ATTACHMENT_GREEN_SIZE: GLenum;\n    readonly FRAMEBUFFER_ATTACHMENT_RED_SIZE: GLenum;\n    readonly FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE: GLenum;\n    readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER: GLenum;\n    readonly FRAMEBUFFER_DEFAULT: GLenum;\n    readonly FRAMEBUFFER_INCOMPLETE_MULTISAMPLE: GLenum;\n    readonly HALF_FLOAT: GLenum;\n    readonly INTERLEAVED_ATTRIBS: GLenum;\n    readonly INT_2_10_10_10_REV: GLenum;\n    readonly INT_SAMPLER_2D: GLenum;\n    readonly INT_SAMPLER_2D_ARRAY: GLenum;\n    readonly INT_SAMPLER_3D: GLenum;\n    readonly INT_SAMPLER_CUBE: GLenum;\n    readonly INVALID_INDEX: GLenum;\n    readonly MAX: GLenum;\n    readonly MAX_3D_TEXTURE_SIZE: GLenum;\n    readonly MAX_ARRAY_TEXTURE_LAYERS: GLenum;\n    readonly MAX_CLIENT_WAIT_TIMEOUT_WEBGL: GLenum;\n    readonly MAX_COLOR_ATTACHMENTS: GLenum;\n    readonly MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS: GLenum;\n    readonly MAX_COMBINED_UNIFORM_BLOCKS: GLenum;\n    readonly MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS: GLenum;\n    readonly MAX_DRAW_BUFFERS: GLenum;\n    readonly MAX_ELEMENTS_INDICES: GLenum;\n    readonly MAX_ELEMENTS_VERTICES: GLenum;\n    readonly MAX_ELEMENT_INDEX: GLenum;\n    readonly MAX_FRAGMENT_INPUT_COMPONENTS: GLenum;\n    readonly MAX_FRAGMENT_UNIFORM_BLOCKS: GLenum;\n    readonly MAX_FRAGMENT_UNIFORM_COMPONENTS: GLenum;\n    readonly MAX_PROGRAM_TEXEL_OFFSET: GLenum;\n    readonly MAX_SAMPLES: GLenum;\n    readonly MAX_SERVER_WAIT_TIMEOUT: GLenum;\n    readonly MAX_TEXTURE_LOD_BIAS: GLenum;\n    readonly MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS: GLenum;\n    readonly MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS: GLenum;\n    readonly MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS: GLenum;\n    readonly MAX_UNIFORM_BLOCK_SIZE: GLenum;\n    readonly MAX_UNIFORM_BUFFER_BINDINGS: GLenum;\n    readonly MAX_VARYING_COMPONENTS: GLenum;\n    readonly MAX_VERTEX_OUTPUT_COMPONENTS: GLenum;\n    readonly MAX_VERTEX_UNIFORM_BLOCKS: GLenum;\n    readonly MAX_VERTEX_UNIFORM_COMPONENTS: GLenum;\n    readonly MIN: GLenum;\n    readonly MIN_PROGRAM_TEXEL_OFFSET: GLenum;\n    readonly OBJECT_TYPE: GLenum;\n    readonly PACK_ROW_LENGTH: GLenum;\n    readonly PACK_SKIP_PIXELS: GLenum;\n    readonly PACK_SKIP_ROWS: GLenum;\n    readonly PIXEL_PACK_BUFFER: GLenum;\n    readonly PIXEL_PACK_BUFFER_BINDING: GLenum;\n    readonly PIXEL_UNPACK_BUFFER: GLenum;\n    readonly PIXEL_UNPACK_BUFFER_BINDING: GLenum;\n    readonly QUERY_RESULT: GLenum;\n    readonly QUERY_RESULT_AVAILABLE: GLenum;\n    readonly R11F_G11F_B10F: GLenum;\n    readonly R16F: GLenum;\n    readonly R16I: GLenum;\n    readonly R16UI: GLenum;\n    readonly R32F: GLenum;\n    readonly R32I: GLenum;\n    readonly R32UI: GLenum;\n    readonly R8: GLenum;\n    readonly R8I: GLenum;\n    readonly R8UI: GLenum;\n    readonly R8_SNORM: GLenum;\n    readonly RASTERIZER_DISCARD: GLenum;\n    readonly READ_BUFFER: GLenum;\n    readonly READ_FRAMEBUFFER: GLenum;\n    readonly READ_FRAMEBUFFER_BINDING: GLenum;\n    readonly RED: GLenum;\n    readonly RED_INTEGER: GLenum;\n    readonly RENDERBUFFER_SAMPLES: GLenum;\n    readonly RG: GLenum;\n    readonly RG16F: GLenum;\n    readonly RG16I: GLenum;\n    readonly RG16UI: GLenum;\n    readonly RG32F: GLenum;\n    readonly RG32I: GLenum;\n    readonly RG32UI: GLenum;\n    readonly RG8: GLenum;\n    readonly RG8I: GLenum;\n    readonly RG8UI: GLenum;\n    readonly RG8_SNORM: GLenum;\n    readonly RGB10_A2: GLenum;\n    readonly RGB10_A2UI: GLenum;\n    readonly RGB16F: GLenum;\n    readonly RGB16I: GLenum;\n    readonly RGB16UI: GLenum;\n    readonly RGB32F: GLenum;\n    readonly RGB32I: GLenum;\n    readonly RGB32UI: GLenum;\n    readonly RGB8: GLenum;\n    readonly RGB8I: GLenum;\n    readonly RGB8UI: GLenum;\n    readonly RGB8_SNORM: GLenum;\n    readonly RGB9_E5: GLenum;\n    readonly RGBA16F: GLenum;\n    readonly RGBA16I: GLenum;\n    readonly RGBA16UI: GLenum;\n    readonly RGBA32F: GLenum;\n    readonly RGBA32I: GLenum;\n    readonly RGBA32UI: GLenum;\n    readonly RGBA8: GLenum;\n    readonly RGBA8I: GLenum;\n    readonly RGBA8UI: GLenum;\n    readonly RGBA8_SNORM: GLenum;\n    readonly RGBA_INTEGER: GLenum;\n    readonly RGB_INTEGER: GLenum;\n    readonly RG_INTEGER: GLenum;\n    readonly SAMPLER_2D_ARRAY: GLenum;\n    readonly SAMPLER_2D_ARRAY_SHADOW: GLenum;\n    readonly SAMPLER_2D_SHADOW: GLenum;\n    readonly SAMPLER_3D: GLenum;\n    readonly SAMPLER_BINDING: GLenum;\n    readonly SAMPLER_CUBE_SHADOW: GLenum;\n    readonly SEPARATE_ATTRIBS: GLenum;\n    readonly SIGNALED: GLenum;\n    readonly SIGNED_NORMALIZED: GLenum;\n    readonly SRGB: GLenum;\n    readonly SRGB8: GLenum;\n    readonly SRGB8_ALPHA8: GLenum;\n    readonly STATIC_COPY: GLenum;\n    readonly STATIC_READ: GLenum;\n    readonly STENCIL: GLenum;\n    readonly STREAM_COPY: GLenum;\n    readonly STREAM_READ: GLenum;\n    readonly SYNC_CONDITION: GLenum;\n    readonly SYNC_FENCE: GLenum;\n    readonly SYNC_FLAGS: GLenum;\n    readonly SYNC_FLUSH_COMMANDS_BIT: GLenum;\n    readonly SYNC_GPU_COMMANDS_COMPLETE: GLenum;\n    readonly SYNC_STATUS: GLenum;\n    readonly TEXTURE_2D_ARRAY: GLenum;\n    readonly TEXTURE_3D: GLenum;\n    readonly TEXTURE_BASE_LEVEL: GLenum;\n    readonly TEXTURE_BINDING_2D_ARRAY: GLenum;\n    readonly TEXTURE_BINDING_3D: GLenum;\n    readonly TEXTURE_COMPARE_FUNC: GLenum;\n    readonly TEXTURE_COMPARE_MODE: GLenum;\n    readonly TEXTURE_IMMUTABLE_FORMAT: GLenum;\n    readonly TEXTURE_IMMUTABLE_LEVELS: GLenum;\n    readonly TEXTURE_MAX_LEVEL: GLenum;\n    readonly TEXTURE_MAX_LOD: GLenum;\n    readonly TEXTURE_MIN_LOD: GLenum;\n    readonly TEXTURE_WRAP_R: GLenum;\n    readonly TIMEOUT_EXPIRED: GLenum;\n    readonly TIMEOUT_IGNORED: GLint64;\n    readonly TRANSFORM_FEEDBACK: GLenum;\n    readonly TRANSFORM_FEEDBACK_ACTIVE: GLenum;\n    readonly TRANSFORM_FEEDBACK_BINDING: GLenum;\n    readonly TRANSFORM_FEEDBACK_BUFFER: GLenum;\n    readonly TRANSFORM_FEEDBACK_BUFFER_BINDING: GLenum;\n    readonly TRANSFORM_FEEDBACK_BUFFER_MODE: GLenum;\n    readonly TRANSFORM_FEEDBACK_BUFFER_SIZE: GLenum;\n    readonly TRANSFORM_FEEDBACK_BUFFER_START: GLenum;\n    readonly TRANSFORM_FEEDBACK_PAUSED: GLenum;\n    readonly TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN: GLenum;\n    readonly TRANSFORM_FEEDBACK_VARYINGS: GLenum;\n    readonly UNIFORM_ARRAY_STRIDE: GLenum;\n    readonly UNIFORM_BLOCK_ACTIVE_UNIFORMS: GLenum;\n    readonly UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES: GLenum;\n    readonly UNIFORM_BLOCK_BINDING: GLenum;\n    readonly UNIFORM_BLOCK_DATA_SIZE: GLenum;\n    readonly UNIFORM_BLOCK_INDEX: GLenum;\n    readonly UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER: GLenum;\n    readonly UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER: GLenum;\n    readonly UNIFORM_BUFFER: GLenum;\n    readonly UNIFORM_BUFFER_BINDING: GLenum;\n    readonly UNIFORM_BUFFER_OFFSET_ALIGNMENT: GLenum;\n    readonly UNIFORM_BUFFER_SIZE: GLenum;\n    readonly UNIFORM_BUFFER_START: GLenum;\n    readonly UNIFORM_IS_ROW_MAJOR: GLenum;\n    readonly UNIFORM_MATRIX_STRIDE: GLenum;\n    readonly UNIFORM_OFFSET: GLenum;\n    readonly UNIFORM_SIZE: GLenum;\n    readonly UNIFORM_TYPE: GLenum;\n    readonly UNPACK_IMAGE_HEIGHT: GLenum;\n    readonly UNPACK_ROW_LENGTH: GLenum;\n    readonly UNPACK_SKIP_IMAGES: GLenum;\n    readonly UNPACK_SKIP_PIXELS: GLenum;\n    readonly UNPACK_SKIP_ROWS: GLenum;\n    readonly UNSIGNALED: GLenum;\n    readonly UNSIGNED_INT_10F_11F_11F_REV: GLenum;\n    readonly UNSIGNED_INT_24_8: GLenum;\n    readonly UNSIGNED_INT_2_10_10_10_REV: GLenum;\n    readonly UNSIGNED_INT_5_9_9_9_REV: GLenum;\n    readonly UNSIGNED_INT_SAMPLER_2D: GLenum;\n    readonly UNSIGNED_INT_SAMPLER_2D_ARRAY: GLenum;\n    readonly UNSIGNED_INT_SAMPLER_3D: GLenum;\n    readonly UNSIGNED_INT_SAMPLER_CUBE: GLenum;\n    readonly UNSIGNED_INT_VEC2: GLenum;\n    readonly UNSIGNED_INT_VEC3: GLenum;\n    readonly UNSIGNED_INT_VEC4: GLenum;\n    readonly UNSIGNED_NORMALIZED: GLenum;\n    readonly VERTEX_ARRAY_BINDING: GLenum;\n    readonly VERTEX_ATTRIB_ARRAY_DIVISOR: GLenum;\n    readonly VERTEX_ATTRIB_ARRAY_INTEGER: GLenum;\n    readonly WAIT_FAILED: GLenum;\n    readonly ACTIVE_ATTRIBUTES: GLenum;\n    readonly ACTIVE_TEXTURE: GLenum;\n    readonly ACTIVE_UNIFORMS: GLenum;\n    readonly ALIASED_LINE_WIDTH_RANGE: GLenum;\n    readonly ALIASED_POINT_SIZE_RANGE: GLenum;\n    readonly ALPHA: GLenum;\n    readonly ALPHA_BITS: GLenum;\n    readonly ALWAYS: GLenum;\n    readonly ARRAY_BUFFER: GLenum;\n    readonly ARRAY_BUFFER_BINDING: GLenum;\n    readonly ATTACHED_SHADERS: GLenum;\n    readonly BACK: GLenum;\n    readonly BLEND: GLenum;\n    readonly BLEND_COLOR: GLenum;\n    readonly BLEND_DST_ALPHA: GLenum;\n    readonly BLEND_DST_RGB: GLenum;\n    readonly BLEND_EQUATION: GLenum;\n    readonly BLEND_EQUATION_ALPHA: GLenum;\n    readonly BLEND_EQUATION_RGB: GLenum;\n    readonly BLEND_SRC_ALPHA: GLenum;\n    readonly BLEND_SRC_RGB: GLenum;\n    readonly BLUE_BITS: GLenum;\n    readonly BOOL: GLenum;\n    readonly BOOL_VEC2: GLenum;\n    readonly BOOL_VEC3: GLenum;\n    readonly BOOL_VEC4: GLenum;\n    readonly BROWSER_DEFAULT_WEBGL: GLenum;\n    readonly BUFFER_SIZE: GLenum;\n    readonly BUFFER_USAGE: GLenum;\n    readonly BYTE: GLenum;\n    readonly CCW: GLenum;\n    readonly CLAMP_TO_EDGE: GLenum;\n    readonly COLOR_ATTACHMENT0: GLenum;\n    readonly COLOR_BUFFER_BIT: GLenum;\n    readonly COLOR_CLEAR_VALUE: GLenum;\n    readonly COLOR_WRITEMASK: GLenum;\n    readonly COMPILE_STATUS: GLenum;\n    readonly COMPRESSED_TEXTURE_FORMATS: GLenum;\n    readonly CONSTANT_ALPHA: GLenum;\n    readonly CONSTANT_COLOR: GLenum;\n    readonly CONTEXT_LOST_WEBGL: GLenum;\n    readonly CULL_FACE: GLenum;\n    readonly CULL_FACE_MODE: GLenum;\n    readonly CURRENT_PROGRAM: GLenum;\n    readonly CURRENT_VERTEX_ATTRIB: GLenum;\n    readonly CW: GLenum;\n    readonly DECR: GLenum;\n    readonly DECR_WRAP: GLenum;\n    readonly DELETE_STATUS: GLenum;\n    readonly DEPTH_ATTACHMENT: GLenum;\n    readonly DEPTH_BITS: GLenum;\n    readonly DEPTH_BUFFER_BIT: GLenum;\n    readonly DEPTH_CLEAR_VALUE: GLenum;\n    readonly DEPTH_COMPONENT: GLenum;\n    readonly DEPTH_COMPONENT16: GLenum;\n    readonly DEPTH_FUNC: GLenum;\n    readonly DEPTH_RANGE: GLenum;\n    readonly DEPTH_STENCIL: GLenum;\n    readonly DEPTH_STENCIL_ATTACHMENT: GLenum;\n    readonly DEPTH_TEST: GLenum;\n    readonly DEPTH_WRITEMASK: GLenum;\n    readonly DITHER: GLenum;\n    readonly DONT_CARE: GLenum;\n    readonly DST_ALPHA: GLenum;\n    readonly DST_COLOR: GLenum;\n    readonly DYNAMIC_DRAW: GLenum;\n    readonly ELEMENT_ARRAY_BUFFER: GLenum;\n    readonly ELEMENT_ARRAY_BUFFER_BINDING: GLenum;\n    readonly EQUAL: GLenum;\n    readonly FASTEST: GLenum;\n    readonly FLOAT: GLenum;\n    readonly FLOAT_MAT2: GLenum;\n    readonly FLOAT_MAT3: GLenum;\n    readonly FLOAT_MAT4: GLenum;\n    readonly FLOAT_VEC2: GLenum;\n    readonly FLOAT_VEC3: GLenum;\n    readonly FLOAT_VEC4: GLenum;\n    readonly FRAGMENT_SHADER: GLenum;\n    readonly FRAMEBUFFER: GLenum;\n    readonly FRAMEBUFFER_ATTACHMENT_OBJECT_NAME: GLenum;\n    readonly FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE: GLenum;\n    readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE: GLenum;\n    readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL: GLenum;\n    readonly FRAMEBUFFER_BINDING: GLenum;\n    readonly FRAMEBUFFER_COMPLETE: GLenum;\n    readonly FRAMEBUFFER_INCOMPLETE_ATTACHMENT: GLenum;\n    readonly FRAMEBUFFER_INCOMPLETE_DIMENSIONS: GLenum;\n    readonly FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT: GLenum;\n    readonly FRAMEBUFFER_UNSUPPORTED: GLenum;\n    readonly FRONT: GLenum;\n    readonly FRONT_AND_BACK: GLenum;\n    readonly FRONT_FACE: GLenum;\n    readonly FUNC_ADD: GLenum;\n    readonly FUNC_REVERSE_SUBTRACT: GLenum;\n    readonly FUNC_SUBTRACT: GLenum;\n    readonly GENERATE_MIPMAP_HINT: GLenum;\n    readonly GEQUAL: GLenum;\n    readonly GREATER: GLenum;\n    readonly GREEN_BITS: GLenum;\n    readonly HIGH_FLOAT: GLenum;\n    readonly HIGH_INT: GLenum;\n    readonly IMPLEMENTATION_COLOR_READ_FORMAT: GLenum;\n    readonly IMPLEMENTATION_COLOR_READ_TYPE: GLenum;\n    readonly INCR: GLenum;\n    readonly INCR_WRAP: GLenum;\n    readonly INT: GLenum;\n    readonly INT_VEC2: GLenum;\n    readonly INT_VEC3: GLenum;\n    readonly INT_VEC4: GLenum;\n    readonly INVALID_ENUM: GLenum;\n    readonly INVALID_FRAMEBUFFER_OPERATION: GLenum;\n    readonly INVALID_OPERATION: GLenum;\n    readonly INVALID_VALUE: GLenum;\n    readonly INVERT: GLenum;\n    readonly KEEP: GLenum;\n    readonly LEQUAL: GLenum;\n    readonly LESS: GLenum;\n    readonly LINEAR: GLenum;\n    readonly LINEAR_MIPMAP_LINEAR: GLenum;\n    readonly LINEAR_MIPMAP_NEAREST: GLenum;\n    readonly LINES: GLenum;\n    readonly LINE_LOOP: GLenum;\n    readonly LINE_STRIP: GLenum;\n    readonly LINE_WIDTH: GLenum;\n    readonly LINK_STATUS: GLenum;\n    readonly LOW_FLOAT: GLenum;\n    readonly LOW_INT: GLenum;\n    readonly LUMINANCE: GLenum;\n    readonly LUMINANCE_ALPHA: GLenum;\n    readonly MAX_COMBINED_TEXTURE_IMAGE_UNITS: GLenum;\n    readonly MAX_CUBE_MAP_TEXTURE_SIZE: GLenum;\n    readonly MAX_FRAGMENT_UNIFORM_VECTORS: GLenum;\n    readonly MAX_RENDERBUFFER_SIZE: GLenum;\n    readonly MAX_TEXTURE_IMAGE_UNITS: GLenum;\n    readonly MAX_TEXTURE_SIZE: GLenum;\n    readonly MAX_VARYING_VECTORS: GLenum;\n    readonly MAX_VERTEX_ATTRIBS: GLenum;\n    readonly MAX_VERTEX_TEXTURE_IMAGE_UNITS: GLenum;\n    readonly MAX_VERTEX_UNIFORM_VECTORS: GLenum;\n    readonly MAX_VIEWPORT_DIMS: GLenum;\n    readonly MEDIUM_FLOAT: GLenum;\n    readonly MEDIUM_INT: GLenum;\n    readonly MIRRORED_REPEAT: GLenum;\n    readonly NEAREST: GLenum;\n    readonly NEAREST_MIPMAP_LINEAR: GLenum;\n    readonly NEAREST_MIPMAP_NEAREST: GLenum;\n    readonly NEVER: GLenum;\n    readonly NICEST: GLenum;\n    readonly NONE: GLenum;\n    readonly NOTEQUAL: GLenum;\n    readonly NO_ERROR: GLenum;\n    readonly ONE: GLenum;\n    readonly ONE_MINUS_CONSTANT_ALPHA: GLenum;\n    readonly ONE_MINUS_CONSTANT_COLOR: GLenum;\n    readonly ONE_MINUS_DST_ALPHA: GLenum;\n    readonly ONE_MINUS_DST_COLOR: GLenum;\n    readonly ONE_MINUS_SRC_ALPHA: GLenum;\n    readonly ONE_MINUS_SRC_COLOR: GLenum;\n    readonly OUT_OF_MEMORY: GLenum;\n    readonly PACK_ALIGNMENT: GLenum;\n    readonly POINTS: GLenum;\n    readonly POLYGON_OFFSET_FACTOR: GLenum;\n    readonly POLYGON_OFFSET_FILL: GLenum;\n    readonly POLYGON_OFFSET_UNITS: GLenum;\n    readonly RED_BITS: GLenum;\n    readonly RENDERBUFFER: GLenum;\n    readonly RENDERBUFFER_ALPHA_SIZE: GLenum;\n    readonly RENDERBUFFER_BINDING: GLenum;\n    readonly RENDERBUFFER_BLUE_SIZE: GLenum;\n    readonly RENDERBUFFER_DEPTH_SIZE: GLenum;\n    readonly RENDERBUFFER_GREEN_SIZE: GLenum;\n    readonly RENDERBUFFER_HEIGHT: GLenum;\n    readonly RENDERBUFFER_INTERNAL_FORMAT: GLenum;\n    readonly RENDERBUFFER_RED_SIZE: GLenum;\n    readonly RENDERBUFFER_STENCIL_SIZE: GLenum;\n    readonly RENDERBUFFER_WIDTH: GLenum;\n    readonly RENDERER: GLenum;\n    readonly REPEAT: GLenum;\n    readonly REPLACE: GLenum;\n    readonly RGB: GLenum;\n    readonly RGB565: GLenum;\n    readonly RGB5_A1: GLenum;\n    readonly RGBA: GLenum;\n    readonly RGBA4: GLenum;\n    readonly SAMPLER_2D: GLenum;\n    readonly SAMPLER_CUBE: GLenum;\n    readonly SAMPLES: GLenum;\n    readonly SAMPLE_ALPHA_TO_COVERAGE: GLenum;\n    readonly SAMPLE_BUFFERS: GLenum;\n    readonly SAMPLE_COVERAGE: GLenum;\n    readonly SAMPLE_COVERAGE_INVERT: GLenum;\n    readonly SAMPLE_COVERAGE_VALUE: GLenum;\n    readonly SCISSOR_BOX: GLenum;\n    readonly SCISSOR_TEST: GLenum;\n    readonly SHADER_TYPE: GLenum;\n    readonly SHADING_LANGUAGE_VERSION: GLenum;\n    readonly SHORT: GLenum;\n    readonly SRC_ALPHA: GLenum;\n    readonly SRC_ALPHA_SATURATE: GLenum;\n    readonly SRC_COLOR: GLenum;\n    readonly STATIC_DRAW: GLenum;\n    readonly STENCIL_ATTACHMENT: GLenum;\n    readonly STENCIL_BACK_FAIL: GLenum;\n    readonly STENCIL_BACK_FUNC: GLenum;\n    readonly STENCIL_BACK_PASS_DEPTH_FAIL: GLenum;\n    readonly STENCIL_BACK_PASS_DEPTH_PASS: GLenum;\n    readonly STENCIL_BACK_REF: GLenum;\n    readonly STENCIL_BACK_VALUE_MASK: GLenum;\n    readonly STENCIL_BACK_WRITEMASK: GLenum;\n    readonly STENCIL_BITS: GLenum;\n    readonly STENCIL_BUFFER_BIT: GLenum;\n    readonly STENCIL_CLEAR_VALUE: GLenum;\n    readonly STENCIL_FAIL: GLenum;\n    readonly STENCIL_FUNC: GLenum;\n    readonly STENCIL_INDEX8: GLenum;\n    readonly STENCIL_PASS_DEPTH_FAIL: GLenum;\n    readonly STENCIL_PASS_DEPTH_PASS: GLenum;\n    readonly STENCIL_REF: GLenum;\n    readonly STENCIL_TEST: GLenum;\n    readonly STENCIL_VALUE_MASK: GLenum;\n    readonly STENCIL_WRITEMASK: GLenum;\n    readonly STREAM_DRAW: GLenum;\n    readonly SUBPIXEL_BITS: GLenum;\n    readonly TEXTURE: GLenum;\n    readonly TEXTURE0: GLenum;\n    readonly TEXTURE1: GLenum;\n    readonly TEXTURE10: GLenum;\n    readonly TEXTURE11: GLenum;\n    readonly TEXTURE12: GLenum;\n    readonly TEXTURE13: GLenum;\n    readonly TEXTURE14: GLenum;\n    readonly TEXTURE15: GLenum;\n    readonly TEXTURE16: GLenum;\n    readonly TEXTURE17: GLenum;\n    readonly TEXTURE18: GLenum;\n    readonly TEXTURE19: GLenum;\n    readonly TEXTURE2: GLenum;\n    readonly TEXTURE20: GLenum;\n    readonly TEXTURE21: GLenum;\n    readonly TEXTURE22: GLenum;\n    readonly TEXTURE23: GLenum;\n    readonly TEXTURE24: GLenum;\n    readonly TEXTURE25: GLenum;\n    readonly TEXTURE26: GLenum;\n    readonly TEXTURE27: GLenum;\n    readonly TEXTURE28: GLenum;\n    readonly TEXTURE29: GLenum;\n    readonly TEXTURE3: GLenum;\n    readonly TEXTURE30: GLenum;\n    readonly TEXTURE31: GLenum;\n    readonly TEXTURE4: GLenum;\n    readonly TEXTURE5: GLenum;\n    readonly TEXTURE6: GLenum;\n    readonly TEXTURE7: GLenum;\n    readonly TEXTURE8: GLenum;\n    readonly TEXTURE9: GLenum;\n    readonly TEXTURE_2D: GLenum;\n    readonly TEXTURE_BINDING_2D: GLenum;\n    readonly TEXTURE_BINDING_CUBE_MAP: GLenum;\n    readonly TEXTURE_CUBE_MAP: GLenum;\n    readonly TEXTURE_CUBE_MAP_NEGATIVE_X: GLenum;\n    readonly TEXTURE_CUBE_MAP_NEGATIVE_Y: GLenum;\n    readonly TEXTURE_CUBE_MAP_NEGATIVE_Z: GLenum;\n    readonly TEXTURE_CUBE_MAP_POSITIVE_X: GLenum;\n    readonly TEXTURE_CUBE_MAP_POSITIVE_Y: GLenum;\n    readonly TEXTURE_CUBE_MAP_POSITIVE_Z: GLenum;\n    readonly TEXTURE_MAG_FILTER: GLenum;\n    readonly TEXTURE_MIN_FILTER: GLenum;\n    readonly TEXTURE_WRAP_S: GLenum;\n    readonly TEXTURE_WRAP_T: GLenum;\n    readonly TRIANGLES: GLenum;\n    readonly TRIANGLE_FAN: GLenum;\n    readonly TRIANGLE_STRIP: GLenum;\n    readonly UNPACK_ALIGNMENT: GLenum;\n    readonly UNPACK_COLORSPACE_CONVERSION_WEBGL: GLenum;\n    readonly UNPACK_FLIP_Y_WEBGL: GLenum;\n    readonly UNPACK_PREMULTIPLY_ALPHA_WEBGL: GLenum;\n    readonly UNSIGNED_BYTE: GLenum;\n    readonly UNSIGNED_INT: GLenum;\n    readonly UNSIGNED_SHORT: GLenum;\n    readonly UNSIGNED_SHORT_4_4_4_4: GLenum;\n    readonly UNSIGNED_SHORT_5_5_5_1: GLenum;\n    readonly UNSIGNED_SHORT_5_6_5: GLenum;\n    readonly VALIDATE_STATUS: GLenum;\n    readonly VENDOR: GLenum;\n    readonly VERSION: GLenum;\n    readonly VERTEX_ATTRIB_ARRAY_BUFFER_BINDING: GLenum;\n    readonly VERTEX_ATTRIB_ARRAY_ENABLED: GLenum;\n    readonly VERTEX_ATTRIB_ARRAY_NORMALIZED: GLenum;\n    readonly VERTEX_ATTRIB_ARRAY_POINTER: GLenum;\n    readonly VERTEX_ATTRIB_ARRAY_SIZE: GLenum;\n    readonly VERTEX_ATTRIB_ARRAY_STRIDE: GLenum;\n    readonly VERTEX_ATTRIB_ARRAY_TYPE: GLenum;\n    readonly VERTEX_SHADER: GLenum;\n    readonly VIEWPORT: GLenum;\n    readonly ZERO: GLenum;\n};\n\ninterface WebGL2RenderingContextBase {\n    beginQuery(target: GLenum, query: WebGLQuery): void;\n    beginTransformFeedback(primitiveMode: GLenum): void;\n    bindBufferBase(target: GLenum, index: GLuint, buffer: WebGLBuffer | null): void;\n    bindBufferRange(target: GLenum, index: GLuint, buffer: WebGLBuffer | null, offset: GLintptr, size: GLsizeiptr): void;\n    bindSampler(unit: GLuint, sampler: WebGLSampler | null): void;\n    bindTransformFeedback(target: GLenum, tf: WebGLTransformFeedback | null): void;\n    bindVertexArray(array: WebGLVertexArrayObject | null): void;\n    blitFramebuffer(srcX0: GLint, srcY0: GLint, srcX1: GLint, srcY1: GLint, dstX0: GLint, dstY0: GLint, dstX1: GLint, dstY1: GLint, mask: GLbitfield, filter: GLenum): void;\n    clearBufferfi(buffer: GLenum, drawbuffer: GLint, depth: GLfloat, stencil: GLint): void;\n    clearBufferfv(buffer: GLenum, drawbuffer: GLint, values: Float32List, srcOffset?: GLuint): void;\n    clearBufferiv(buffer: GLenum, drawbuffer: GLint, values: Int32List, srcOffset?: GLuint): void;\n    clearBufferuiv(buffer: GLenum, drawbuffer: GLint, values: Uint32List, srcOffset?: GLuint): void;\n    clientWaitSync(sync: WebGLSync, flags: GLbitfield, timeout: GLuint64): GLenum;\n    compressedTexImage3D(target: GLenum, level: GLint, internalformat: GLenum, width: GLsizei, height: GLsizei, depth: GLsizei, border: GLint, imageSize: GLsizei, offset: GLintptr): void;\n    compressedTexImage3D(target: GLenum, level: GLint, internalformat: GLenum, width: GLsizei, height: GLsizei, depth: GLsizei, border: GLint, srcData: ArrayBufferView, srcOffset?: GLuint, srcLengthOverride?: GLuint): void;\n    compressedTexSubImage3D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, zoffset: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, format: GLenum, imageSize: GLsizei, offset: GLintptr): void;\n    compressedTexSubImage3D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, zoffset: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, format: GLenum, srcData: ArrayBufferView, srcOffset?: GLuint, srcLengthOverride?: GLuint): void;\n    copyBufferSubData(readTarget: GLenum, writeTarget: GLenum, readOffset: GLintptr, writeOffset: GLintptr, size: GLsizeiptr): void;\n    copyTexSubImage3D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, zoffset: GLint, x: GLint, y: GLint, width: GLsizei, height: GLsizei): void;\n    createQuery(): WebGLQuery | null;\n    createSampler(): WebGLSampler | null;\n    createTransformFeedback(): WebGLTransformFeedback | null;\n    createVertexArray(): WebGLVertexArrayObject | null;\n    deleteQuery(query: WebGLQuery | null): void;\n    deleteSampler(sampler: WebGLSampler | null): void;\n    deleteSync(sync: WebGLSync | null): void;\n    deleteTransformFeedback(tf: WebGLTransformFeedback | null): void;\n    deleteVertexArray(vertexArray: WebGLVertexArrayObject | null): void;\n    drawArraysInstanced(mode: GLenum, first: GLint, count: GLsizei, instanceCount: GLsizei): void;\n    drawBuffers(buffers: GLenum[]): void;\n    drawElementsInstanced(mode: GLenum, count: GLsizei, type: GLenum, offset: GLintptr, instanceCount: GLsizei): void;\n    drawRangeElements(mode: GLenum, start: GLuint, end: GLuint, count: GLsizei, type: GLenum, offset: GLintptr): void;\n    endQuery(target: GLenum): void;\n    endTransformFeedback(): void;\n    fenceSync(condition: GLenum, flags: GLbitfield): WebGLSync | null;\n    framebufferTextureLayer(target: GLenum, attachment: GLenum, texture: WebGLTexture | null, level: GLint, layer: GLint): void;\n    getActiveUniformBlockName(program: WebGLProgram, uniformBlockIndex: GLuint): string | null;\n    getActiveUniformBlockParameter(program: WebGLProgram, uniformBlockIndex: GLuint, pname: GLenum): any;\n    getActiveUniforms(program: WebGLProgram, uniformIndices: GLuint[], pname: GLenum): any;\n    getBufferSubData(target: GLenum, srcByteOffset: GLintptr, dstBuffer: ArrayBufferView, dstOffset?: GLuint, length?: GLuint): void;\n    getFragDataLocation(program: WebGLProgram, name: string): GLint;\n    getIndexedParameter(target: GLenum, index: GLuint): any;\n    getInternalformatParameter(target: GLenum, internalformat: GLenum, pname: GLenum): any;\n    getQuery(target: GLenum, pname: GLenum): WebGLQuery | null;\n    getQueryParameter(query: WebGLQuery, pname: GLenum): any;\n    getSamplerParameter(sampler: WebGLSampler, pname: GLenum): any;\n    getSyncParameter(sync: WebGLSync, pname: GLenum): any;\n    getTransformFeedbackVarying(program: WebGLProgram, index: GLuint): WebGLActiveInfo | null;\n    getUniformBlockIndex(program: WebGLProgram, uniformBlockName: string): GLuint;\n    getUniformIndices(program: WebGLProgram, uniformNames: string[]): GLuint[] | null;\n    invalidateFramebuffer(target: GLenum, attachments: GLenum[]): void;\n    invalidateSubFramebuffer(target: GLenum, attachments: GLenum[], x: GLint, y: GLint, width: GLsizei, height: GLsizei): void;\n    isQuery(query: WebGLQuery | null): GLboolean;\n    isSampler(sampler: WebGLSampler | null): GLboolean;\n    isSync(sync: WebGLSync | null): GLboolean;\n    isTransformFeedback(tf: WebGLTransformFeedback | null): GLboolean;\n    isVertexArray(vertexArray: WebGLVertexArrayObject | null): GLboolean;\n    pauseTransformFeedback(): void;\n    readBuffer(src: GLenum): void;\n    renderbufferStorageMultisample(target: GLenum, samples: GLsizei, internalformat: GLenum, width: GLsizei, height: GLsizei): void;\n    resumeTransformFeedback(): void;\n    samplerParameterf(sampler: WebGLSampler, pname: GLenum, param: GLfloat): void;\n    samplerParameteri(sampler: WebGLSampler, pname: GLenum, param: GLint): void;\n    texImage3D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, border: GLint, format: GLenum, type: GLenum, pboOffset: GLintptr): void;\n    texImage3D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, border: GLint, format: GLenum, type: GLenum, source: TexImageSource): void;\n    texImage3D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, border: GLint, format: GLenum, type: GLenum, srcData: ArrayBufferView | null): void;\n    texImage3D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, border: GLint, format: GLenum, type: GLenum, srcData: ArrayBufferView, srcOffset: GLuint): void;\n    texStorage2D(target: GLenum, levels: GLsizei, internalformat: GLenum, width: GLsizei, height: GLsizei): void;\n    texStorage3D(target: GLenum, levels: GLsizei, internalformat: GLenum, width: GLsizei, height: GLsizei, depth: GLsizei): void;\n    texSubImage3D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, zoffset: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, format: GLenum, type: GLenum, pboOffset: GLintptr): void;\n    texSubImage3D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, zoffset: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, format: GLenum, type: GLenum, source: TexImageSource): void;\n    texSubImage3D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, zoffset: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, format: GLenum, type: GLenum, srcData: ArrayBufferView | null, srcOffset?: GLuint): void;\n    transformFeedbackVaryings(program: WebGLProgram, varyings: string[], bufferMode: GLenum): void;\n    uniform1ui(location: WebGLUniformLocation | null, v0: GLuint): void;\n    uniform1uiv(location: WebGLUniformLocation | null, data: Uint32List, srcOffset?: GLuint, srcLength?: GLuint): void;\n    uniform2ui(location: WebGLUniformLocation | null, v0: GLuint, v1: GLuint): void;\n    uniform2uiv(location: WebGLUniformLocation | null, data: Uint32List, srcOffset?: GLuint, srcLength?: GLuint): void;\n    uniform3ui(location: WebGLUniformLocation | null, v0: GLuint, v1: GLuint, v2: GLuint): void;\n    uniform3uiv(location: WebGLUniformLocation | null, data: Uint32List, srcOffset?: GLuint, srcLength?: GLuint): void;\n    uniform4ui(location: WebGLUniformLocation | null, v0: GLuint, v1: GLuint, v2: GLuint, v3: GLuint): void;\n    uniform4uiv(location: WebGLUniformLocation | null, data: Uint32List, srcOffset?: GLuint, srcLength?: GLuint): void;\n    uniformBlockBinding(program: WebGLProgram, uniformBlockIndex: GLuint, uniformBlockBinding: GLuint): void;\n    uniformMatrix2x3fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Float32List, srcOffset?: GLuint, srcLength?: GLuint): void;\n    uniformMatrix2x4fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Float32List, srcOffset?: GLuint, srcLength?: GLuint): void;\n    uniformMatrix3x2fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Float32List, srcOffset?: GLuint, srcLength?: GLuint): void;\n    uniformMatrix3x4fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Float32List, srcOffset?: GLuint, srcLength?: GLuint): void;\n    uniformMatrix4x2fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Float32List, srcOffset?: GLuint, srcLength?: GLuint): void;\n    uniformMatrix4x3fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Float32List, srcOffset?: GLuint, srcLength?: GLuint): void;\n    vertexAttribDivisor(index: GLuint, divisor: GLuint): void;\n    vertexAttribI4i(index: GLuint, x: GLint, y: GLint, z: GLint, w: GLint): void;\n    vertexAttribI4iv(index: GLuint, values: Int32List): void;\n    vertexAttribI4ui(index: GLuint, x: GLuint, y: GLuint, z: GLuint, w: GLuint): void;\n    vertexAttribI4uiv(index: GLuint, values: Uint32List): void;\n    vertexAttribIPointer(index: GLuint, size: GLint, type: GLenum, stride: GLsizei, offset: GLintptr): void;\n    waitSync(sync: WebGLSync, flags: GLbitfield, timeout: GLint64): void;\n    readonly ACTIVE_UNIFORM_BLOCKS: GLenum;\n    readonly ALREADY_SIGNALED: GLenum;\n    readonly ANY_SAMPLES_PASSED: GLenum;\n    readonly ANY_SAMPLES_PASSED_CONSERVATIVE: GLenum;\n    readonly COLOR: GLenum;\n    readonly COLOR_ATTACHMENT1: GLenum;\n    readonly COLOR_ATTACHMENT10: GLenum;\n    readonly COLOR_ATTACHMENT11: GLenum;\n    readonly COLOR_ATTACHMENT12: GLenum;\n    readonly COLOR_ATTACHMENT13: GLenum;\n    readonly COLOR_ATTACHMENT14: GLenum;\n    readonly COLOR_ATTACHMENT15: GLenum;\n    readonly COLOR_ATTACHMENT2: GLenum;\n    readonly COLOR_ATTACHMENT3: GLenum;\n    readonly COLOR_ATTACHMENT4: GLenum;\n    readonly COLOR_ATTACHMENT5: GLenum;\n    readonly COLOR_ATTACHMENT6: GLenum;\n    readonly COLOR_ATTACHMENT7: GLenum;\n    readonly COLOR_ATTACHMENT8: GLenum;\n    readonly COLOR_ATTACHMENT9: GLenum;\n    readonly COMPARE_REF_TO_TEXTURE: GLenum;\n    readonly CONDITION_SATISFIED: GLenum;\n    readonly COPY_READ_BUFFER: GLenum;\n    readonly COPY_READ_BUFFER_BINDING: GLenum;\n    readonly COPY_WRITE_BUFFER: GLenum;\n    readonly COPY_WRITE_BUFFER_BINDING: GLenum;\n    readonly CURRENT_QUERY: GLenum;\n    readonly DEPTH: GLenum;\n    readonly DEPTH24_STENCIL8: GLenum;\n    readonly DEPTH32F_STENCIL8: GLenum;\n    readonly DEPTH_COMPONENT24: GLenum;\n    readonly DEPTH_COMPONENT32F: GLenum;\n    readonly DRAW_BUFFER0: GLenum;\n    readonly DRAW_BUFFER1: GLenum;\n    readonly DRAW_BUFFER10: GLenum;\n    readonly DRAW_BUFFER11: GLenum;\n    readonly DRAW_BUFFER12: GLenum;\n    readonly DRAW_BUFFER13: GLenum;\n    readonly DRAW_BUFFER14: GLenum;\n    readonly DRAW_BUFFER15: GLenum;\n    readonly DRAW_BUFFER2: GLenum;\n    readonly DRAW_BUFFER3: GLenum;\n    readonly DRAW_BUFFER4: GLenum;\n    readonly DRAW_BUFFER5: GLenum;\n    readonly DRAW_BUFFER6: GLenum;\n    readonly DRAW_BUFFER7: GLenum;\n    readonly DRAW_BUFFER8: GLenum;\n    readonly DRAW_BUFFER9: GLenum;\n    readonly DRAW_FRAMEBUFFER: GLenum;\n    readonly DRAW_FRAMEBUFFER_BINDING: GLenum;\n    readonly DYNAMIC_COPY: GLenum;\n    readonly DYNAMIC_READ: GLenum;\n    readonly FLOAT_32_UNSIGNED_INT_24_8_REV: GLenum;\n    readonly FLOAT_MAT2x3: GLenum;\n    readonly FLOAT_MAT2x4: GLenum;\n    readonly FLOAT_MAT3x2: GLenum;\n    readonly FLOAT_MAT3x4: GLenum;\n    readonly FLOAT_MAT4x2: GLenum;\n    readonly FLOAT_MAT4x3: GLenum;\n    readonly FRAGMENT_SHADER_DERIVATIVE_HINT: GLenum;\n    readonly FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE: GLenum;\n    readonly FRAMEBUFFER_ATTACHMENT_BLUE_SIZE: GLenum;\n    readonly FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING: GLenum;\n    readonly FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE: GLenum;\n    readonly FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE: GLenum;\n    readonly FRAMEBUFFER_ATTACHMENT_GREEN_SIZE: GLenum;\n    readonly FRAMEBUFFER_ATTACHMENT_RED_SIZE: GLenum;\n    readonly FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE: GLenum;\n    readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER: GLenum;\n    readonly FRAMEBUFFER_DEFAULT: GLenum;\n    readonly FRAMEBUFFER_INCOMPLETE_MULTISAMPLE: GLenum;\n    readonly HALF_FLOAT: GLenum;\n    readonly INTERLEAVED_ATTRIBS: GLenum;\n    readonly INT_2_10_10_10_REV: GLenum;\n    readonly INT_SAMPLER_2D: GLenum;\n    readonly INT_SAMPLER_2D_ARRAY: GLenum;\n    readonly INT_SAMPLER_3D: GLenum;\n    readonly INT_SAMPLER_CUBE: GLenum;\n    readonly INVALID_INDEX: GLenum;\n    readonly MAX: GLenum;\n    readonly MAX_3D_TEXTURE_SIZE: GLenum;\n    readonly MAX_ARRAY_TEXTURE_LAYERS: GLenum;\n    readonly MAX_CLIENT_WAIT_TIMEOUT_WEBGL: GLenum;\n    readonly MAX_COLOR_ATTACHMENTS: GLenum;\n    readonly MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS: GLenum;\n    readonly MAX_COMBINED_UNIFORM_BLOCKS: GLenum;\n    readonly MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS: GLenum;\n    readonly MAX_DRAW_BUFFERS: GLenum;\n    readonly MAX_ELEMENTS_INDICES: GLenum;\n    readonly MAX_ELEMENTS_VERTICES: GLenum;\n    readonly MAX_ELEMENT_INDEX: GLenum;\n    readonly MAX_FRAGMENT_INPUT_COMPONENTS: GLenum;\n    readonly MAX_FRAGMENT_UNIFORM_BLOCKS: GLenum;\n    readonly MAX_FRAGMENT_UNIFORM_COMPONENTS: GLenum;\n    readonly MAX_PROGRAM_TEXEL_OFFSET: GLenum;\n    readonly MAX_SAMPLES: GLenum;\n    readonly MAX_SERVER_WAIT_TIMEOUT: GLenum;\n    readonly MAX_TEXTURE_LOD_BIAS: GLenum;\n    readonly MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS: GLenum;\n    readonly MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS: GLenum;\n    readonly MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS: GLenum;\n    readonly MAX_UNIFORM_BLOCK_SIZE: GLenum;\n    readonly MAX_UNIFORM_BUFFER_BINDINGS: GLenum;\n    readonly MAX_VARYING_COMPONENTS: GLenum;\n    readonly MAX_VERTEX_OUTPUT_COMPONENTS: GLenum;\n    readonly MAX_VERTEX_UNIFORM_BLOCKS: GLenum;\n    readonly MAX_VERTEX_UNIFORM_COMPONENTS: GLenum;\n    readonly MIN: GLenum;\n    readonly MIN_PROGRAM_TEXEL_OFFSET: GLenum;\n    readonly OBJECT_TYPE: GLenum;\n    readonly PACK_ROW_LENGTH: GLenum;\n    readonly PACK_SKIP_PIXELS: GLenum;\n    readonly PACK_SKIP_ROWS: GLenum;\n    readonly PIXEL_PACK_BUFFER: GLenum;\n    readonly PIXEL_PACK_BUFFER_BINDING: GLenum;\n    readonly PIXEL_UNPACK_BUFFER: GLenum;\n    readonly PIXEL_UNPACK_BUFFER_BINDING: GLenum;\n    readonly QUERY_RESULT: GLenum;\n    readonly QUERY_RESULT_AVAILABLE: GLenum;\n    readonly R11F_G11F_B10F: GLenum;\n    readonly R16F: GLenum;\n    readonly R16I: GLenum;\n    readonly R16UI: GLenum;\n    readonly R32F: GLenum;\n    readonly R32I: GLenum;\n    readonly R32UI: GLenum;\n    readonly R8: GLenum;\n    readonly R8I: GLenum;\n    readonly R8UI: GLenum;\n    readonly R8_SNORM: GLenum;\n    readonly RASTERIZER_DISCARD: GLenum;\n    readonly READ_BUFFER: GLenum;\n    readonly READ_FRAMEBUFFER: GLenum;\n    readonly READ_FRAMEBUFFER_BINDING: GLenum;\n    readonly RED: GLenum;\n    readonly RED_INTEGER: GLenum;\n    readonly RENDERBUFFER_SAMPLES: GLenum;\n    readonly RG: GLenum;\n    readonly RG16F: GLenum;\n    readonly RG16I: GLenum;\n    readonly RG16UI: GLenum;\n    readonly RG32F: GLenum;\n    readonly RG32I: GLenum;\n    readonly RG32UI: GLenum;\n    readonly RG8: GLenum;\n    readonly RG8I: GLenum;\n    readonly RG8UI: GLenum;\n    readonly RG8_SNORM: GLenum;\n    readonly RGB10_A2: GLenum;\n    readonly RGB10_A2UI: GLenum;\n    readonly RGB16F: GLenum;\n    readonly RGB16I: GLenum;\n    readonly RGB16UI: GLenum;\n    readonly RGB32F: GLenum;\n    readonly RGB32I: GLenum;\n    readonly RGB32UI: GLenum;\n    readonly RGB8: GLenum;\n    readonly RGB8I: GLenum;\n    readonly RGB8UI: GLenum;\n    readonly RGB8_SNORM: GLenum;\n    readonly RGB9_E5: GLenum;\n    readonly RGBA16F: GLenum;\n    readonly RGBA16I: GLenum;\n    readonly RGBA16UI: GLenum;\n    readonly RGBA32F: GLenum;\n    readonly RGBA32I: GLenum;\n    readonly RGBA32UI: GLenum;\n    readonly RGBA8: GLenum;\n    readonly RGBA8I: GLenum;\n    readonly RGBA8UI: GLenum;\n    readonly RGBA8_SNORM: GLenum;\n    readonly RGBA_INTEGER: GLenum;\n    readonly RGB_INTEGER: GLenum;\n    readonly RG_INTEGER: GLenum;\n    readonly SAMPLER_2D_ARRAY: GLenum;\n    readonly SAMPLER_2D_ARRAY_SHADOW: GLenum;\n    readonly SAMPLER_2D_SHADOW: GLenum;\n    readonly SAMPLER_3D: GLenum;\n    readonly SAMPLER_BINDING: GLenum;\n    readonly SAMPLER_CUBE_SHADOW: GLenum;\n    readonly SEPARATE_ATTRIBS: GLenum;\n    readonly SIGNALED: GLenum;\n    readonly SIGNED_NORMALIZED: GLenum;\n    readonly SRGB: GLenum;\n    readonly SRGB8: GLenum;\n    readonly SRGB8_ALPHA8: GLenum;\n    readonly STATIC_COPY: GLenum;\n    readonly STATIC_READ: GLenum;\n    readonly STENCIL: GLenum;\n    readonly STREAM_COPY: GLenum;\n    readonly STREAM_READ: GLenum;\n    readonly SYNC_CONDITION: GLenum;\n    readonly SYNC_FENCE: GLenum;\n    readonly SYNC_FLAGS: GLenum;\n    readonly SYNC_FLUSH_COMMANDS_BIT: GLenum;\n    readonly SYNC_GPU_COMMANDS_COMPLETE: GLenum;\n    readonly SYNC_STATUS: GLenum;\n    readonly TEXTURE_2D_ARRAY: GLenum;\n    readonly TEXTURE_3D: GLenum;\n    readonly TEXTURE_BASE_LEVEL: GLenum;\n    readonly TEXTURE_BINDING_2D_ARRAY: GLenum;\n    readonly TEXTURE_BINDING_3D: GLenum;\n    readonly TEXTURE_COMPARE_FUNC: GLenum;\n    readonly TEXTURE_COMPARE_MODE: GLenum;\n    readonly TEXTURE_IMMUTABLE_FORMAT: GLenum;\n    readonly TEXTURE_IMMUTABLE_LEVELS: GLenum;\n    readonly TEXTURE_MAX_LEVEL: GLenum;\n    readonly TEXTURE_MAX_LOD: GLenum;\n    readonly TEXTURE_MIN_LOD: GLenum;\n    readonly TEXTURE_WRAP_R: GLenum;\n    readonly TIMEOUT_EXPIRED: GLenum;\n    readonly TIMEOUT_IGNORED: GLint64;\n    readonly TRANSFORM_FEEDBACK: GLenum;\n    readonly TRANSFORM_FEEDBACK_ACTIVE: GLenum;\n    readonly TRANSFORM_FEEDBACK_BINDING: GLenum;\n    readonly TRANSFORM_FEEDBACK_BUFFER: GLenum;\n    readonly TRANSFORM_FEEDBACK_BUFFER_BINDING: GLenum;\n    readonly TRANSFORM_FEEDBACK_BUFFER_MODE: GLenum;\n    readonly TRANSFORM_FEEDBACK_BUFFER_SIZE: GLenum;\n    readonly TRANSFORM_FEEDBACK_BUFFER_START: GLenum;\n    readonly TRANSFORM_FEEDBACK_PAUSED: GLenum;\n    readonly TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN: GLenum;\n    readonly TRANSFORM_FEEDBACK_VARYINGS: GLenum;\n    readonly UNIFORM_ARRAY_STRIDE: GLenum;\n    readonly UNIFORM_BLOCK_ACTIVE_UNIFORMS: GLenum;\n    readonly UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES: GLenum;\n    readonly UNIFORM_BLOCK_BINDING: GLenum;\n    readonly UNIFORM_BLOCK_DATA_SIZE: GLenum;\n    readonly UNIFORM_BLOCK_INDEX: GLenum;\n    readonly UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER: GLenum;\n    readonly UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER: GLenum;\n    readonly UNIFORM_BUFFER: GLenum;\n    readonly UNIFORM_BUFFER_BINDING: GLenum;\n    readonly UNIFORM_BUFFER_OFFSET_ALIGNMENT: GLenum;\n    readonly UNIFORM_BUFFER_SIZE: GLenum;\n    readonly UNIFORM_BUFFER_START: GLenum;\n    readonly UNIFORM_IS_ROW_MAJOR: GLenum;\n    readonly UNIFORM_MATRIX_STRIDE: GLenum;\n    readonly UNIFORM_OFFSET: GLenum;\n    readonly UNIFORM_SIZE: GLenum;\n    readonly UNIFORM_TYPE: GLenum;\n    readonly UNPACK_IMAGE_HEIGHT: GLenum;\n    readonly UNPACK_ROW_LENGTH: GLenum;\n    readonly UNPACK_SKIP_IMAGES: GLenum;\n    readonly UNPACK_SKIP_PIXELS: GLenum;\n    readonly UNPACK_SKIP_ROWS: GLenum;\n    readonly UNSIGNALED: GLenum;\n    readonly UNSIGNED_INT_10F_11F_11F_REV: GLenum;\n    readonly UNSIGNED_INT_24_8: GLenum;\n    readonly UNSIGNED_INT_2_10_10_10_REV: GLenum;\n    readonly UNSIGNED_INT_5_9_9_9_REV: GLenum;\n    readonly UNSIGNED_INT_SAMPLER_2D: GLenum;\n    readonly UNSIGNED_INT_SAMPLER_2D_ARRAY: GLenum;\n    readonly UNSIGNED_INT_SAMPLER_3D: GLenum;\n    readonly UNSIGNED_INT_SAMPLER_CUBE: GLenum;\n    readonly UNSIGNED_INT_VEC2: GLenum;\n    readonly UNSIGNED_INT_VEC3: GLenum;\n    readonly UNSIGNED_INT_VEC4: GLenum;\n    readonly UNSIGNED_NORMALIZED: GLenum;\n    readonly VERTEX_ARRAY_BINDING: GLenum;\n    readonly VERTEX_ATTRIB_ARRAY_DIVISOR: GLenum;\n    readonly VERTEX_ATTRIB_ARRAY_INTEGER: GLenum;\n    readonly WAIT_FAILED: GLenum;\n}\n\ninterface WebGL2RenderingContextOverloads {\n    bufferData(target: GLenum, size: GLsizeiptr, usage: GLenum): void;\n    bufferData(target: GLenum, srcData: BufferSource | null, usage: GLenum): void;\n    bufferData(target: GLenum, srcData: ArrayBufferView, usage: GLenum, srcOffset: GLuint, length?: GLuint): void;\n    bufferSubData(target: GLenum, dstByteOffset: GLintptr, srcData: BufferSource): void;\n    bufferSubData(target: GLenum, dstByteOffset: GLintptr, srcData: ArrayBufferView, srcOffset: GLuint, length?: GLuint): void;\n    compressedTexImage2D(target: GLenum, level: GLint, internalformat: GLenum, width: GLsizei, height: GLsizei, border: GLint, imageSize: GLsizei, offset: GLintptr): void;\n    compressedTexImage2D(target: GLenum, level: GLint, internalformat: GLenum, width: GLsizei, height: GLsizei, border: GLint, srcData: ArrayBufferView, srcOffset?: GLuint, srcLengthOverride?: GLuint): void;\n    compressedTexSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, imageSize: GLsizei, offset: GLintptr): void;\n    compressedTexSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, srcData: ArrayBufferView, srcOffset?: GLuint, srcLengthOverride?: GLuint): void;\n    readPixels(x: GLint, y: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, dstData: ArrayBufferView | null): void;\n    readPixels(x: GLint, y: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, offset: GLintptr): void;\n    readPixels(x: GLint, y: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, dstData: ArrayBufferView, dstOffset: GLuint): void;\n    texImage2D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, border: GLint, format: GLenum, type: GLenum, pixels: ArrayBufferView | null): void;\n    texImage2D(target: GLenum, level: GLint, internalformat: GLint, format: GLenum, type: GLenum, source: TexImageSource): void;\n    texImage2D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, border: GLint, format: GLenum, type: GLenum, pboOffset: GLintptr): void;\n    texImage2D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, border: GLint, format: GLenum, type: GLenum, source: TexImageSource): void;\n    texImage2D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, border: GLint, format: GLenum, type: GLenum, srcData: ArrayBufferView, srcOffset: GLuint): void;\n    texSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, pixels: ArrayBufferView | null): void;\n    texSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, format: GLenum, type: GLenum, source: TexImageSource): void;\n    texSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, pboOffset: GLintptr): void;\n    texSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, source: TexImageSource): void;\n    texSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, srcData: ArrayBufferView, srcOffset: GLuint): void;\n    uniform1fv(location: WebGLUniformLocation | null, data: Float32List, srcOffset?: GLuint, srcLength?: GLuint): void;\n    uniform1iv(location: WebGLUniformLocation | null, data: Int32List, srcOffset?: GLuint, srcLength?: GLuint): void;\n    uniform2fv(location: WebGLUniformLocation | null, data: Float32List, srcOffset?: GLuint, srcLength?: GLuint): void;\n    uniform2iv(location: WebGLUniformLocation | null, data: Int32List, srcOffset?: GLuint, srcLength?: GLuint): void;\n    uniform3fv(location: WebGLUniformLocation | null, data: Float32List, srcOffset?: GLuint, srcLength?: GLuint): void;\n    uniform3iv(location: WebGLUniformLocation | null, data: Int32List, srcOffset?: GLuint, srcLength?: GLuint): void;\n    uniform4fv(location: WebGLUniformLocation | null, data: Float32List, srcOffset?: GLuint, srcLength?: GLuint): void;\n    uniform4iv(location: WebGLUniformLocation | null, data: Int32List, srcOffset?: GLuint, srcLength?: GLuint): void;\n    uniformMatrix2fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Float32List, srcOffset?: GLuint, srcLength?: GLuint): void;\n    uniformMatrix3fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Float32List, srcOffset?: GLuint, srcLength?: GLuint): void;\n    uniformMatrix4fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Float32List, srcOffset?: GLuint, srcLength?: GLuint): void;\n}\n\n/** Part of the WebGL API and represents the information returned by calling the WebGLRenderingContext.getActiveAttrib() and WebGLRenderingContext.getActiveUniform() methods. */\ninterface WebGLActiveInfo {\n    readonly name: string;\n    readonly size: GLint;\n    readonly type: GLenum;\n}\n\ndeclare var WebGLActiveInfo: {\n    prototype: WebGLActiveInfo;\n    new(): WebGLActiveInfo;\n};\n\n/** Part of the WebGL API and represents an opaque buffer object storing data such as vertices or colors. */\ninterface WebGLBuffer {\n}\n\ndeclare var WebGLBuffer: {\n    prototype: WebGLBuffer;\n    new(): WebGLBuffer;\n};\n\n/** The WebContextEvent interface is part of the WebGL API and is an interface for an event that is generated in response to a status change to the WebGL rendering context. */\ninterface WebGLContextEvent extends Event {\n    readonly statusMessage: string;\n}\n\ndeclare var WebGLContextEvent: {\n    prototype: WebGLContextEvent;\n    new(type: string, eventInit?: WebGLContextEventInit): WebGLContextEvent;\n};\n\n/** Part of the WebGL API and represents a collection of buffers that serve as a rendering destination. */\ninterface WebGLFramebuffer {\n}\n\ndeclare var WebGLFramebuffer: {\n    prototype: WebGLFramebuffer;\n    new(): WebGLFramebuffer;\n};\n\n/** The WebGLProgram is part of the WebGL API and is a combination of two compiled WebGLShaders consisting of a vertex shader and a fragment shader (both written in GLSL). */\ninterface WebGLProgram {\n}\n\ndeclare var WebGLProgram: {\n    prototype: WebGLProgram;\n    new(): WebGLProgram;\n};\n\ninterface WebGLQuery {\n}\n\ndeclare var WebGLQuery: {\n    prototype: WebGLQuery;\n    new(): WebGLQuery;\n};\n\n/** Part of the WebGL API and represents a buffer that can contain an image, or can be source or target of an rendering operation. */\ninterface WebGLRenderbuffer {\n}\n\ndeclare var WebGLRenderbuffer: {\n    prototype: WebGLRenderbuffer;\n    new(): WebGLRenderbuffer;\n};\n\n/** Provides an interface to the OpenGL ES 2.0 graphics rendering context for the drawing surface of an HTML <canvas> element. */\ninterface WebGLRenderingContext extends WebGLRenderingContextBase, WebGLRenderingContextOverloads {\n}\n\ndeclare var WebGLRenderingContext: {\n    prototype: WebGLRenderingContext;\n    new(): WebGLRenderingContext;\n    readonly ACTIVE_ATTRIBUTES: GLenum;\n    readonly ACTIVE_TEXTURE: GLenum;\n    readonly ACTIVE_UNIFORMS: GLenum;\n    readonly ALIASED_LINE_WIDTH_RANGE: GLenum;\n    readonly ALIASED_POINT_SIZE_RANGE: GLenum;\n    readonly ALPHA: GLenum;\n    readonly ALPHA_BITS: GLenum;\n    readonly ALWAYS: GLenum;\n    readonly ARRAY_BUFFER: GLenum;\n    readonly ARRAY_BUFFER_BINDING: GLenum;\n    readonly ATTACHED_SHADERS: GLenum;\n    readonly BACK: GLenum;\n    readonly BLEND: GLenum;\n    readonly BLEND_COLOR: GLenum;\n    readonly BLEND_DST_ALPHA: GLenum;\n    readonly BLEND_DST_RGB: GLenum;\n    readonly BLEND_EQUATION: GLenum;\n    readonly BLEND_EQUATION_ALPHA: GLenum;\n    readonly BLEND_EQUATION_RGB: GLenum;\n    readonly BLEND_SRC_ALPHA: GLenum;\n    readonly BLEND_SRC_RGB: GLenum;\n    readonly BLUE_BITS: GLenum;\n    readonly BOOL: GLenum;\n    readonly BOOL_VEC2: GLenum;\n    readonly BOOL_VEC3: GLenum;\n    readonly BOOL_VEC4: GLenum;\n    readonly BROWSER_DEFAULT_WEBGL: GLenum;\n    readonly BUFFER_SIZE: GLenum;\n    readonly BUFFER_USAGE: GLenum;\n    readonly BYTE: GLenum;\n    readonly CCW: GLenum;\n    readonly CLAMP_TO_EDGE: GLenum;\n    readonly COLOR_ATTACHMENT0: GLenum;\n    readonly COLOR_BUFFER_BIT: GLenum;\n    readonly COLOR_CLEAR_VALUE: GLenum;\n    readonly COLOR_WRITEMASK: GLenum;\n    readonly COMPILE_STATUS: GLenum;\n    readonly COMPRESSED_TEXTURE_FORMATS: GLenum;\n    readonly CONSTANT_ALPHA: GLenum;\n    readonly CONSTANT_COLOR: GLenum;\n    readonly CONTEXT_LOST_WEBGL: GLenum;\n    readonly CULL_FACE: GLenum;\n    readonly CULL_FACE_MODE: GLenum;\n    readonly CURRENT_PROGRAM: GLenum;\n    readonly CURRENT_VERTEX_ATTRIB: GLenum;\n    readonly CW: GLenum;\n    readonly DECR: GLenum;\n    readonly DECR_WRAP: GLenum;\n    readonly DELETE_STATUS: GLenum;\n    readonly DEPTH_ATTACHMENT: GLenum;\n    readonly DEPTH_BITS: GLenum;\n    readonly DEPTH_BUFFER_BIT: GLenum;\n    readonly DEPTH_CLEAR_VALUE: GLenum;\n    readonly DEPTH_COMPONENT: GLenum;\n    readonly DEPTH_COMPONENT16: GLenum;\n    readonly DEPTH_FUNC: GLenum;\n    readonly DEPTH_RANGE: GLenum;\n    readonly DEPTH_STENCIL: GLenum;\n    readonly DEPTH_STENCIL_ATTACHMENT: GLenum;\n    readonly DEPTH_TEST: GLenum;\n    readonly DEPTH_WRITEMASK: GLenum;\n    readonly DITHER: GLenum;\n    readonly DONT_CARE: GLenum;\n    readonly DST_ALPHA: GLenum;\n    readonly DST_COLOR: GLenum;\n    readonly DYNAMIC_DRAW: GLenum;\n    readonly ELEMENT_ARRAY_BUFFER: GLenum;\n    readonly ELEMENT_ARRAY_BUFFER_BINDING: GLenum;\n    readonly EQUAL: GLenum;\n    readonly FASTEST: GLenum;\n    readonly FLOAT: GLenum;\n    readonly FLOAT_MAT2: GLenum;\n    readonly FLOAT_MAT3: GLenum;\n    readonly FLOAT_MAT4: GLenum;\n    readonly FLOAT_VEC2: GLenum;\n    readonly FLOAT_VEC3: GLenum;\n    readonly FLOAT_VEC4: GLenum;\n    readonly FRAGMENT_SHADER: GLenum;\n    readonly FRAMEBUFFER: GLenum;\n    readonly FRAMEBUFFER_ATTACHMENT_OBJECT_NAME: GLenum;\n    readonly FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE: GLenum;\n    readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE: GLenum;\n    readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL: GLenum;\n    readonly FRAMEBUFFER_BINDING: GLenum;\n    readonly FRAMEBUFFER_COMPLETE: GLenum;\n    readonly FRAMEBUFFER_INCOMPLETE_ATTACHMENT: GLenum;\n    readonly FRAMEBUFFER_INCOMPLETE_DIMENSIONS: GLenum;\n    readonly FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT: GLenum;\n    readonly FRAMEBUFFER_UNSUPPORTED: GLenum;\n    readonly FRONT: GLenum;\n    readonly FRONT_AND_BACK: GLenum;\n    readonly FRONT_FACE: GLenum;\n    readonly FUNC_ADD: GLenum;\n    readonly FUNC_REVERSE_SUBTRACT: GLenum;\n    readonly FUNC_SUBTRACT: GLenum;\n    readonly GENERATE_MIPMAP_HINT: GLenum;\n    readonly GEQUAL: GLenum;\n    readonly GREATER: GLenum;\n    readonly GREEN_BITS: GLenum;\n    readonly HIGH_FLOAT: GLenum;\n    readonly HIGH_INT: GLenum;\n    readonly IMPLEMENTATION_COLOR_READ_FORMAT: GLenum;\n    readonly IMPLEMENTATION_COLOR_READ_TYPE: GLenum;\n    readonly INCR: GLenum;\n    readonly INCR_WRAP: GLenum;\n    readonly INT: GLenum;\n    readonly INT_VEC2: GLenum;\n    readonly INT_VEC3: GLenum;\n    readonly INT_VEC4: GLenum;\n    readonly INVALID_ENUM: GLenum;\n    readonly INVALID_FRAMEBUFFER_OPERATION: GLenum;\n    readonly INVALID_OPERATION: GLenum;\n    readonly INVALID_VALUE: GLenum;\n    readonly INVERT: GLenum;\n    readonly KEEP: GLenum;\n    readonly LEQUAL: GLenum;\n    readonly LESS: GLenum;\n    readonly LINEAR: GLenum;\n    readonly LINEAR_MIPMAP_LINEAR: GLenum;\n    readonly LINEAR_MIPMAP_NEAREST: GLenum;\n    readonly LINES: GLenum;\n    readonly LINE_LOOP: GLenum;\n    readonly LINE_STRIP: GLenum;\n    readonly LINE_WIDTH: GLenum;\n    readonly LINK_STATUS: GLenum;\n    readonly LOW_FLOAT: GLenum;\n    readonly LOW_INT: GLenum;\n    readonly LUMINANCE: GLenum;\n    readonly LUMINANCE_ALPHA: GLenum;\n    readonly MAX_COMBINED_TEXTURE_IMAGE_UNITS: GLenum;\n    readonly MAX_CUBE_MAP_TEXTURE_SIZE: GLenum;\n    readonly MAX_FRAGMENT_UNIFORM_VECTORS: GLenum;\n    readonly MAX_RENDERBUFFER_SIZE: GLenum;\n    readonly MAX_TEXTURE_IMAGE_UNITS: GLenum;\n    readonly MAX_TEXTURE_SIZE: GLenum;\n    readonly MAX_VARYING_VECTORS: GLenum;\n    readonly MAX_VERTEX_ATTRIBS: GLenum;\n    readonly MAX_VERTEX_TEXTURE_IMAGE_UNITS: GLenum;\n    readonly MAX_VERTEX_UNIFORM_VECTORS: GLenum;\n    readonly MAX_VIEWPORT_DIMS: GLenum;\n    readonly MEDIUM_FLOAT: GLenum;\n    readonly MEDIUM_INT: GLenum;\n    readonly MIRRORED_REPEAT: GLenum;\n    readonly NEAREST: GLenum;\n    readonly NEAREST_MIPMAP_LINEAR: GLenum;\n    readonly NEAREST_MIPMAP_NEAREST: GLenum;\n    readonly NEVER: GLenum;\n    readonly NICEST: GLenum;\n    readonly NONE: GLenum;\n    readonly NOTEQUAL: GLenum;\n    readonly NO_ERROR: GLenum;\n    readonly ONE: GLenum;\n    readonly ONE_MINUS_CONSTANT_ALPHA: GLenum;\n    readonly ONE_MINUS_CONSTANT_COLOR: GLenum;\n    readonly ONE_MINUS_DST_ALPHA: GLenum;\n    readonly ONE_MINUS_DST_COLOR: GLenum;\n    readonly ONE_MINUS_SRC_ALPHA: GLenum;\n    readonly ONE_MINUS_SRC_COLOR: GLenum;\n    readonly OUT_OF_MEMORY: GLenum;\n    readonly PACK_ALIGNMENT: GLenum;\n    readonly POINTS: GLenum;\n    readonly POLYGON_OFFSET_FACTOR: GLenum;\n    readonly POLYGON_OFFSET_FILL: GLenum;\n    readonly POLYGON_OFFSET_UNITS: GLenum;\n    readonly RED_BITS: GLenum;\n    readonly RENDERBUFFER: GLenum;\n    readonly RENDERBUFFER_ALPHA_SIZE: GLenum;\n    readonly RENDERBUFFER_BINDING: GLenum;\n    readonly RENDERBUFFER_BLUE_SIZE: GLenum;\n    readonly RENDERBUFFER_DEPTH_SIZE: GLenum;\n    readonly RENDERBUFFER_GREEN_SIZE: GLenum;\n    readonly RENDERBUFFER_HEIGHT: GLenum;\n    readonly RENDERBUFFER_INTERNAL_FORMAT: GLenum;\n    readonly RENDERBUFFER_RED_SIZE: GLenum;\n    readonly RENDERBUFFER_STENCIL_SIZE: GLenum;\n    readonly RENDERBUFFER_WIDTH: GLenum;\n    readonly RENDERER: GLenum;\n    readonly REPEAT: GLenum;\n    readonly REPLACE: GLenum;\n    readonly RGB: GLenum;\n    readonly RGB565: GLenum;\n    readonly RGB5_A1: GLenum;\n    readonly RGBA: GLenum;\n    readonly RGBA4: GLenum;\n    readonly SAMPLER_2D: GLenum;\n    readonly SAMPLER_CUBE: GLenum;\n    readonly SAMPLES: GLenum;\n    readonly SAMPLE_ALPHA_TO_COVERAGE: GLenum;\n    readonly SAMPLE_BUFFERS: GLenum;\n    readonly SAMPLE_COVERAGE: GLenum;\n    readonly SAMPLE_COVERAGE_INVERT: GLenum;\n    readonly SAMPLE_COVERAGE_VALUE: GLenum;\n    readonly SCISSOR_BOX: GLenum;\n    readonly SCISSOR_TEST: GLenum;\n    readonly SHADER_TYPE: GLenum;\n    readonly SHADING_LANGUAGE_VERSION: GLenum;\n    readonly SHORT: GLenum;\n    readonly SRC_ALPHA: GLenum;\n    readonly SRC_ALPHA_SATURATE: GLenum;\n    readonly SRC_COLOR: GLenum;\n    readonly STATIC_DRAW: GLenum;\n    readonly STENCIL_ATTACHMENT: GLenum;\n    readonly STENCIL_BACK_FAIL: GLenum;\n    readonly STENCIL_BACK_FUNC: GLenum;\n    readonly STENCIL_BACK_PASS_DEPTH_FAIL: GLenum;\n    readonly STENCIL_BACK_PASS_DEPTH_PASS: GLenum;\n    readonly STENCIL_BACK_REF: GLenum;\n    readonly STENCIL_BACK_VALUE_MASK: GLenum;\n    readonly STENCIL_BACK_WRITEMASK: GLenum;\n    readonly STENCIL_BITS: GLenum;\n    readonly STENCIL_BUFFER_BIT: GLenum;\n    readonly STENCIL_CLEAR_VALUE: GLenum;\n    readonly STENCIL_FAIL: GLenum;\n    readonly STENCIL_FUNC: GLenum;\n    readonly STENCIL_INDEX8: GLenum;\n    readonly STENCIL_PASS_DEPTH_FAIL: GLenum;\n    readonly STENCIL_PASS_DEPTH_PASS: GLenum;\n    readonly STENCIL_REF: GLenum;\n    readonly STENCIL_TEST: GLenum;\n    readonly STENCIL_VALUE_MASK: GLenum;\n    readonly STENCIL_WRITEMASK: GLenum;\n    readonly STREAM_DRAW: GLenum;\n    readonly SUBPIXEL_BITS: GLenum;\n    readonly TEXTURE: GLenum;\n    readonly TEXTURE0: GLenum;\n    readonly TEXTURE1: GLenum;\n    readonly TEXTURE10: GLenum;\n    readonly TEXTURE11: GLenum;\n    readonly TEXTURE12: GLenum;\n    readonly TEXTURE13: GLenum;\n    readonly TEXTURE14: GLenum;\n    readonly TEXTURE15: GLenum;\n    readonly TEXTURE16: GLenum;\n    readonly TEXTURE17: GLenum;\n    readonly TEXTURE18: GLenum;\n    readonly TEXTURE19: GLenum;\n    readonly TEXTURE2: GLenum;\n    readonly TEXTURE20: GLenum;\n    readonly TEXTURE21: GLenum;\n    readonly TEXTURE22: GLenum;\n    readonly TEXTURE23: GLenum;\n    readonly TEXTURE24: GLenum;\n    readonly TEXTURE25: GLenum;\n    readonly TEXTURE26: GLenum;\n    readonly TEXTURE27: GLenum;\n    readonly TEXTURE28: GLenum;\n    readonly TEXTURE29: GLenum;\n    readonly TEXTURE3: GLenum;\n    readonly TEXTURE30: GLenum;\n    readonly TEXTURE31: GLenum;\n    readonly TEXTURE4: GLenum;\n    readonly TEXTURE5: GLenum;\n    readonly TEXTURE6: GLenum;\n    readonly TEXTURE7: GLenum;\n    readonly TEXTURE8: GLenum;\n    readonly TEXTURE9: GLenum;\n    readonly TEXTURE_2D: GLenum;\n    readonly TEXTURE_BINDING_2D: GLenum;\n    readonly TEXTURE_BINDING_CUBE_MAP: GLenum;\n    readonly TEXTURE_CUBE_MAP: GLenum;\n    readonly TEXTURE_CUBE_MAP_NEGATIVE_X: GLenum;\n    readonly TEXTURE_CUBE_MAP_NEGATIVE_Y: GLenum;\n    readonly TEXTURE_CUBE_MAP_NEGATIVE_Z: GLenum;\n    readonly TEXTURE_CUBE_MAP_POSITIVE_X: GLenum;\n    readonly TEXTURE_CUBE_MAP_POSITIVE_Y: GLenum;\n    readonly TEXTURE_CUBE_MAP_POSITIVE_Z: GLenum;\n    readonly TEXTURE_MAG_FILTER: GLenum;\n    readonly TEXTURE_MIN_FILTER: GLenum;\n    readonly TEXTURE_WRAP_S: GLenum;\n    readonly TEXTURE_WRAP_T: GLenum;\n    readonly TRIANGLES: GLenum;\n    readonly TRIANGLE_FAN: GLenum;\n    readonly TRIANGLE_STRIP: GLenum;\n    readonly UNPACK_ALIGNMENT: GLenum;\n    readonly UNPACK_COLORSPACE_CONVERSION_WEBGL: GLenum;\n    readonly UNPACK_FLIP_Y_WEBGL: GLenum;\n    readonly UNPACK_PREMULTIPLY_ALPHA_WEBGL: GLenum;\n    readonly UNSIGNED_BYTE: GLenum;\n    readonly UNSIGNED_INT: GLenum;\n    readonly UNSIGNED_SHORT: GLenum;\n    readonly UNSIGNED_SHORT_4_4_4_4: GLenum;\n    readonly UNSIGNED_SHORT_5_5_5_1: GLenum;\n    readonly UNSIGNED_SHORT_5_6_5: GLenum;\n    readonly VALIDATE_STATUS: GLenum;\n    readonly VENDOR: GLenum;\n    readonly VERSION: GLenum;\n    readonly VERTEX_ATTRIB_ARRAY_BUFFER_BINDING: GLenum;\n    readonly VERTEX_ATTRIB_ARRAY_ENABLED: GLenum;\n    readonly VERTEX_ATTRIB_ARRAY_NORMALIZED: GLenum;\n    readonly VERTEX_ATTRIB_ARRAY_POINTER: GLenum;\n    readonly VERTEX_ATTRIB_ARRAY_SIZE: GLenum;\n    readonly VERTEX_ATTRIB_ARRAY_STRIDE: GLenum;\n    readonly VERTEX_ATTRIB_ARRAY_TYPE: GLenum;\n    readonly VERTEX_SHADER: GLenum;\n    readonly VIEWPORT: GLenum;\n    readonly ZERO: GLenum;\n};\n\ninterface WebGLRenderingContextBase {\n    readonly drawingBufferHeight: GLsizei;\n    readonly drawingBufferWidth: GLsizei;\n    activeTexture(texture: GLenum): void;\n    attachShader(program: WebGLProgram, shader: WebGLShader): void;\n    bindAttribLocation(program: WebGLProgram, index: GLuint, name: string): void;\n    bindBuffer(target: GLenum, buffer: WebGLBuffer | null): void;\n    bindFramebuffer(target: GLenum, framebuffer: WebGLFramebuffer | null): void;\n    bindRenderbuffer(target: GLenum, renderbuffer: WebGLRenderbuffer | null): void;\n    bindTexture(target: GLenum, texture: WebGLTexture | null): void;\n    blendColor(red: GLclampf, green: GLclampf, blue: GLclampf, alpha: GLclampf): void;\n    blendEquation(mode: GLenum): void;\n    blendEquationSeparate(modeRGB: GLenum, modeAlpha: GLenum): void;\n    blendFunc(sfactor: GLenum, dfactor: GLenum): void;\n    blendFuncSeparate(srcRGB: GLenum, dstRGB: GLenum, srcAlpha: GLenum, dstAlpha: GLenum): void;\n    checkFramebufferStatus(target: GLenum): GLenum;\n    clear(mask: GLbitfield): void;\n    clearColor(red: GLclampf, green: GLclampf, blue: GLclampf, alpha: GLclampf): void;\n    clearDepth(depth: GLclampf): void;\n    clearStencil(s: GLint): void;\n    colorMask(red: GLboolean, green: GLboolean, blue: GLboolean, alpha: GLboolean): void;\n    compileShader(shader: WebGLShader): void;\n    copyTexImage2D(target: GLenum, level: GLint, internalformat: GLenum, x: GLint, y: GLint, width: GLsizei, height: GLsizei, border: GLint): void;\n    copyTexSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, x: GLint, y: GLint, width: GLsizei, height: GLsizei): void;\n    createBuffer(): WebGLBuffer | null;\n    createFramebuffer(): WebGLFramebuffer | null;\n    createProgram(): WebGLProgram | null;\n    createRenderbuffer(): WebGLRenderbuffer | null;\n    createShader(type: GLenum): WebGLShader | null;\n    createTexture(): WebGLTexture | null;\n    cullFace(mode: GLenum): void;\n    deleteBuffer(buffer: WebGLBuffer | null): void;\n    deleteFramebuffer(framebuffer: WebGLFramebuffer | null): void;\n    deleteProgram(program: WebGLProgram | null): void;\n    deleteRenderbuffer(renderbuffer: WebGLRenderbuffer | null): void;\n    deleteShader(shader: WebGLShader | null): void;\n    deleteTexture(texture: WebGLTexture | null): void;\n    depthFunc(func: GLenum): void;\n    depthMask(flag: GLboolean): void;\n    depthRange(zNear: GLclampf, zFar: GLclampf): void;\n    detachShader(program: WebGLProgram, shader: WebGLShader): void;\n    disable(cap: GLenum): void;\n    disableVertexAttribArray(index: GLuint): void;\n    drawArrays(mode: GLenum, first: GLint, count: GLsizei): void;\n    drawElements(mode: GLenum, count: GLsizei, type: GLenum, offset: GLintptr): void;\n    enable(cap: GLenum): void;\n    enableVertexAttribArray(index: GLuint): void;\n    finish(): void;\n    flush(): void;\n    framebufferRenderbuffer(target: GLenum, attachment: GLenum, renderbuffertarget: GLenum, renderbuffer: WebGLRenderbuffer | null): void;\n    framebufferTexture2D(target: GLenum, attachment: GLenum, textarget: GLenum, texture: WebGLTexture | null, level: GLint): void;\n    frontFace(mode: GLenum): void;\n    generateMipmap(target: GLenum): void;\n    getActiveAttrib(program: WebGLProgram, index: GLuint): WebGLActiveInfo | null;\n    getActiveUniform(program: WebGLProgram, index: GLuint): WebGLActiveInfo | null;\n    getAttachedShaders(program: WebGLProgram): WebGLShader[] | null;\n    getAttribLocation(program: WebGLProgram, name: string): GLint;\n    getBufferParameter(target: GLenum, pname: GLenum): any;\n    getContextAttributes(): WebGLContextAttributes | null;\n    getError(): GLenum;\n    getExtension(extensionName: \"ANGLE_instanced_arrays\"): ANGLE_instanced_arrays | null;\n    getExtension(extensionName: \"EXT_blend_minmax\"): EXT_blend_minmax | null;\n    getExtension(extensionName: \"EXT_color_buffer_float\"): EXT_color_buffer_float | null;\n    getExtension(extensionName: \"EXT_color_buffer_half_float\"): EXT_color_buffer_half_float | null;\n    getExtension(extensionName: \"EXT_float_blend\"): EXT_float_blend | null;\n    getExtension(extensionName: \"EXT_frag_depth\"): EXT_frag_depth | null;\n    getExtension(extensionName: \"EXT_sRGB\"): EXT_sRGB | null;\n    getExtension(extensionName: \"EXT_shader_texture_lod\"): EXT_shader_texture_lod | null;\n    getExtension(extensionName: \"EXT_texture_compression_bptc\"): EXT_texture_compression_bptc | null;\n    getExtension(extensionName: \"EXT_texture_compression_rgtc\"): EXT_texture_compression_rgtc | null;\n    getExtension(extensionName: \"EXT_texture_filter_anisotropic\"): EXT_texture_filter_anisotropic | null;\n    getExtension(extensionName: \"KHR_parallel_shader_compile\"): KHR_parallel_shader_compile | null;\n    getExtension(extensionName: \"OES_element_index_uint\"): OES_element_index_uint | null;\n    getExtension(extensionName: \"OES_fbo_render_mipmap\"): OES_fbo_render_mipmap | null;\n    getExtension(extensionName: \"OES_standard_derivatives\"): OES_standard_derivatives | null;\n    getExtension(extensionName: \"OES_texture_float\"): OES_texture_float | null;\n    getExtension(extensionName: \"OES_texture_float_linear\"): OES_texture_float_linear | null;\n    getExtension(extensionName: \"OES_texture_half_float\"): OES_texture_half_float | null;\n    getExtension(extensionName: \"OES_texture_half_float_linear\"): OES_texture_half_float_linear | null;\n    getExtension(extensionName: \"OES_vertex_array_object\"): OES_vertex_array_object | null;\n    getExtension(extensionName: \"OVR_multiview2\"): OVR_multiview2 | null;\n    getExtension(extensionName: \"WEBGL_color_buffer_float\"): WEBGL_color_buffer_float | null;\n    getExtension(extensionName: \"WEBGL_compressed_texture_astc\"): WEBGL_compressed_texture_astc | null;\n    getExtension(extensionName: \"WEBGL_compressed_texture_etc\"): WEBGL_compressed_texture_etc | null;\n    getExtension(extensionName: \"WEBGL_compressed_texture_etc1\"): WEBGL_compressed_texture_etc1 | null;\n    getExtension(extensionName: \"WEBGL_compressed_texture_s3tc\"): WEBGL_compressed_texture_s3tc | null;\n    getExtension(extensionName: \"WEBGL_compressed_texture_s3tc_srgb\"): WEBGL_compressed_texture_s3tc_srgb | null;\n    getExtension(extensionName: \"WEBGL_debug_renderer_info\"): WEBGL_debug_renderer_info | null;\n    getExtension(extensionName: \"WEBGL_debug_shaders\"): WEBGL_debug_shaders | null;\n    getExtension(extensionName: \"WEBGL_depth_texture\"): WEBGL_depth_texture | null;\n    getExtension(extensionName: \"WEBGL_draw_buffers\"): WEBGL_draw_buffers | null;\n    getExtension(extensionName: \"WEBGL_lose_context\"): WEBGL_lose_context | null;\n    getExtension(extensionName: \"WEBGL_multi_draw\"): WEBGL_multi_draw | null;\n    getExtension(name: string): any;\n    getFramebufferAttachmentParameter(target: GLenum, attachment: GLenum, pname: GLenum): any;\n    getParameter(pname: GLenum): any;\n    getProgramInfoLog(program: WebGLProgram): string | null;\n    getProgramParameter(program: WebGLProgram, pname: GLenum): any;\n    getRenderbufferParameter(target: GLenum, pname: GLenum): any;\n    getShaderInfoLog(shader: WebGLShader): string | null;\n    getShaderParameter(shader: WebGLShader, pname: GLenum): any;\n    getShaderPrecisionFormat(shadertype: GLenum, precisiontype: GLenum): WebGLShaderPrecisionFormat | null;\n    getShaderSource(shader: WebGLShader): string | null;\n    getSupportedExtensions(): string[] | null;\n    getTexParameter(target: GLenum, pname: GLenum): any;\n    getUniform(program: WebGLProgram, location: WebGLUniformLocation): any;\n    getUniformLocation(program: WebGLProgram, name: string): WebGLUniformLocation | null;\n    getVertexAttrib(index: GLuint, pname: GLenum): any;\n    getVertexAttribOffset(index: GLuint, pname: GLenum): GLintptr;\n    hint(target: GLenum, mode: GLenum): void;\n    isBuffer(buffer: WebGLBuffer | null): GLboolean;\n    isContextLost(): boolean;\n    isEnabled(cap: GLenum): GLboolean;\n    isFramebuffer(framebuffer: WebGLFramebuffer | null): GLboolean;\n    isProgram(program: WebGLProgram | null): GLboolean;\n    isRenderbuffer(renderbuffer: WebGLRenderbuffer | null): GLboolean;\n    isShader(shader: WebGLShader | null): GLboolean;\n    isTexture(texture: WebGLTexture | null): GLboolean;\n    lineWidth(width: GLfloat): void;\n    linkProgram(program: WebGLProgram): void;\n    pixelStorei(pname: GLenum, param: GLint | GLboolean): void;\n    polygonOffset(factor: GLfloat, units: GLfloat): void;\n    renderbufferStorage(target: GLenum, internalformat: GLenum, width: GLsizei, height: GLsizei): void;\n    sampleCoverage(value: GLclampf, invert: GLboolean): void;\n    scissor(x: GLint, y: GLint, width: GLsizei, height: GLsizei): void;\n    shaderSource(shader: WebGLShader, source: string): void;\n    stencilFunc(func: GLenum, ref: GLint, mask: GLuint): void;\n    stencilFuncSeparate(face: GLenum, func: GLenum, ref: GLint, mask: GLuint): void;\n    stencilMask(mask: GLuint): void;\n    stencilMaskSeparate(face: GLenum, mask: GLuint): void;\n    stencilOp(fail: GLenum, zfail: GLenum, zpass: GLenum): void;\n    stencilOpSeparate(face: GLenum, fail: GLenum, zfail: GLenum, zpass: GLenum): void;\n    texParameterf(target: GLenum, pname: GLenum, param: GLfloat): void;\n    texParameteri(target: GLenum, pname: GLenum, param: GLint): void;\n    uniform1f(location: WebGLUniformLocation | null, x: GLfloat): void;\n    uniform1i(location: WebGLUniformLocation | null, x: GLint): void;\n    uniform2f(location: WebGLUniformLocation | null, x: GLfloat, y: GLfloat): void;\n    uniform2i(location: WebGLUniformLocation | null, x: GLint, y: GLint): void;\n    uniform3f(location: WebGLUniformLocation | null, x: GLfloat, y: GLfloat, z: GLfloat): void;\n    uniform3i(location: WebGLUniformLocation | null, x: GLint, y: GLint, z: GLint): void;\n    uniform4f(location: WebGLUniformLocation | null, x: GLfloat, y: GLfloat, z: GLfloat, w: GLfloat): void;\n    uniform4i(location: WebGLUniformLocation | null, x: GLint, y: GLint, z: GLint, w: GLint): void;\n    useProgram(program: WebGLProgram | null): void;\n    validateProgram(program: WebGLProgram): void;\n    vertexAttrib1f(index: GLuint, x: GLfloat): void;\n    vertexAttrib1fv(index: GLuint, values: Float32List): void;\n    vertexAttrib2f(index: GLuint, x: GLfloat, y: GLfloat): void;\n    vertexAttrib2fv(index: GLuint, values: Float32List): void;\n    vertexAttrib3f(index: GLuint, x: GLfloat, y: GLfloat, z: GLfloat): void;\n    vertexAttrib3fv(index: GLuint, values: Float32List): void;\n    vertexAttrib4f(index: GLuint, x: GLfloat, y: GLfloat, z: GLfloat, w: GLfloat): void;\n    vertexAttrib4fv(index: GLuint, values: Float32List): void;\n    vertexAttribPointer(index: GLuint, size: GLint, type: GLenum, normalized: GLboolean, stride: GLsizei, offset: GLintptr): void;\n    viewport(x: GLint, y: GLint, width: GLsizei, height: GLsizei): void;\n    readonly ACTIVE_ATTRIBUTES: GLenum;\n    readonly ACTIVE_TEXTURE: GLenum;\n    readonly ACTIVE_UNIFORMS: GLenum;\n    readonly ALIASED_LINE_WIDTH_RANGE: GLenum;\n    readonly ALIASED_POINT_SIZE_RANGE: GLenum;\n    readonly ALPHA: GLenum;\n    readonly ALPHA_BITS: GLenum;\n    readonly ALWAYS: GLenum;\n    readonly ARRAY_BUFFER: GLenum;\n    readonly ARRAY_BUFFER_BINDING: GLenum;\n    readonly ATTACHED_SHADERS: GLenum;\n    readonly BACK: GLenum;\n    readonly BLEND: GLenum;\n    readonly BLEND_COLOR: GLenum;\n    readonly BLEND_DST_ALPHA: GLenum;\n    readonly BLEND_DST_RGB: GLenum;\n    readonly BLEND_EQUATION: GLenum;\n    readonly BLEND_EQUATION_ALPHA: GLenum;\n    readonly BLEND_EQUATION_RGB: GLenum;\n    readonly BLEND_SRC_ALPHA: GLenum;\n    readonly BLEND_SRC_RGB: GLenum;\n    readonly BLUE_BITS: GLenum;\n    readonly BOOL: GLenum;\n    readonly BOOL_VEC2: GLenum;\n    readonly BOOL_VEC3: GLenum;\n    readonly BOOL_VEC4: GLenum;\n    readonly BROWSER_DEFAULT_WEBGL: GLenum;\n    readonly BUFFER_SIZE: GLenum;\n    readonly BUFFER_USAGE: GLenum;\n    readonly BYTE: GLenum;\n    readonly CCW: GLenum;\n    readonly CLAMP_TO_EDGE: GLenum;\n    readonly COLOR_ATTACHMENT0: GLenum;\n    readonly COLOR_BUFFER_BIT: GLenum;\n    readonly COLOR_CLEAR_VALUE: GLenum;\n    readonly COLOR_WRITEMASK: GLenum;\n    readonly COMPILE_STATUS: GLenum;\n    readonly COMPRESSED_TEXTURE_FORMATS: GLenum;\n    readonly CONSTANT_ALPHA: GLenum;\n    readonly CONSTANT_COLOR: GLenum;\n    readonly CONTEXT_LOST_WEBGL: GLenum;\n    readonly CULL_FACE: GLenum;\n    readonly CULL_FACE_MODE: GLenum;\n    readonly CURRENT_PROGRAM: GLenum;\n    readonly CURRENT_VERTEX_ATTRIB: GLenum;\n    readonly CW: GLenum;\n    readonly DECR: GLenum;\n    readonly DECR_WRAP: GLenum;\n    readonly DELETE_STATUS: GLenum;\n    readonly DEPTH_ATTACHMENT: GLenum;\n    readonly DEPTH_BITS: GLenum;\n    readonly DEPTH_BUFFER_BIT: GLenum;\n    readonly DEPTH_CLEAR_VALUE: GLenum;\n    readonly DEPTH_COMPONENT: GLenum;\n    readonly DEPTH_COMPONENT16: GLenum;\n    readonly DEPTH_FUNC: GLenum;\n    readonly DEPTH_RANGE: GLenum;\n    readonly DEPTH_STENCIL: GLenum;\n    readonly DEPTH_STENCIL_ATTACHMENT: GLenum;\n    readonly DEPTH_TEST: GLenum;\n    readonly DEPTH_WRITEMASK: GLenum;\n    readonly DITHER: GLenum;\n    readonly DONT_CARE: GLenum;\n    readonly DST_ALPHA: GLenum;\n    readonly DST_COLOR: GLenum;\n    readonly DYNAMIC_DRAW: GLenum;\n    readonly ELEMENT_ARRAY_BUFFER: GLenum;\n    readonly ELEMENT_ARRAY_BUFFER_BINDING: GLenum;\n    readonly EQUAL: GLenum;\n    readonly FASTEST: GLenum;\n    readonly FLOAT: GLenum;\n    readonly FLOAT_MAT2: GLenum;\n    readonly FLOAT_MAT3: GLenum;\n    readonly FLOAT_MAT4: GLenum;\n    readonly FLOAT_VEC2: GLenum;\n    readonly FLOAT_VEC3: GLenum;\n    readonly FLOAT_VEC4: GLenum;\n    readonly FRAGMENT_SHADER: GLenum;\n    readonly FRAMEBUFFER: GLenum;\n    readonly FRAMEBUFFER_ATTACHMENT_OBJECT_NAME: GLenum;\n    readonly FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE: GLenum;\n    readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE: GLenum;\n    readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL: GLenum;\n    readonly FRAMEBUFFER_BINDING: GLenum;\n    readonly FRAMEBUFFER_COMPLETE: GLenum;\n    readonly FRAMEBUFFER_INCOMPLETE_ATTACHMENT: GLenum;\n    readonly FRAMEBUFFER_INCOMPLETE_DIMENSIONS: GLenum;\n    readonly FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT: GLenum;\n    readonly FRAMEBUFFER_UNSUPPORTED: GLenum;\n    readonly FRONT: GLenum;\n    readonly FRONT_AND_BACK: GLenum;\n    readonly FRONT_FACE: GLenum;\n    readonly FUNC_ADD: GLenum;\n    readonly FUNC_REVERSE_SUBTRACT: GLenum;\n    readonly FUNC_SUBTRACT: GLenum;\n    readonly GENERATE_MIPMAP_HINT: GLenum;\n    readonly GEQUAL: GLenum;\n    readonly GREATER: GLenum;\n    readonly GREEN_BITS: GLenum;\n    readonly HIGH_FLOAT: GLenum;\n    readonly HIGH_INT: GLenum;\n    readonly IMPLEMENTATION_COLOR_READ_FORMAT: GLenum;\n    readonly IMPLEMENTATION_COLOR_READ_TYPE: GLenum;\n    readonly INCR: GLenum;\n    readonly INCR_WRAP: GLenum;\n    readonly INT: GLenum;\n    readonly INT_VEC2: GLenum;\n    readonly INT_VEC3: GLenum;\n    readonly INT_VEC4: GLenum;\n    readonly INVALID_ENUM: GLenum;\n    readonly INVALID_FRAMEBUFFER_OPERATION: GLenum;\n    readonly INVALID_OPERATION: GLenum;\n    readonly INVALID_VALUE: GLenum;\n    readonly INVERT: GLenum;\n    readonly KEEP: GLenum;\n    readonly LEQUAL: GLenum;\n    readonly LESS: GLenum;\n    readonly LINEAR: GLenum;\n    readonly LINEAR_MIPMAP_LINEAR: GLenum;\n    readonly LINEAR_MIPMAP_NEAREST: GLenum;\n    readonly LINES: GLenum;\n    readonly LINE_LOOP: GLenum;\n    readonly LINE_STRIP: GLenum;\n    readonly LINE_WIDTH: GLenum;\n    readonly LINK_STATUS: GLenum;\n    readonly LOW_FLOAT: GLenum;\n    readonly LOW_INT: GLenum;\n    readonly LUMINANCE: GLenum;\n    readonly LUMINANCE_ALPHA: GLenum;\n    readonly MAX_COMBINED_TEXTURE_IMAGE_UNITS: GLenum;\n    readonly MAX_CUBE_MAP_TEXTURE_SIZE: GLenum;\n    readonly MAX_FRAGMENT_UNIFORM_VECTORS: GLenum;\n    readonly MAX_RENDERBUFFER_SIZE: GLenum;\n    readonly MAX_TEXTURE_IMAGE_UNITS: GLenum;\n    readonly MAX_TEXTURE_SIZE: GLenum;\n    readonly MAX_VARYING_VECTORS: GLenum;\n    readonly MAX_VERTEX_ATTRIBS: GLenum;\n    readonly MAX_VERTEX_TEXTURE_IMAGE_UNITS: GLenum;\n    readonly MAX_VERTEX_UNIFORM_VECTORS: GLenum;\n    readonly MAX_VIEWPORT_DIMS: GLenum;\n    readonly MEDIUM_FLOAT: GLenum;\n    readonly MEDIUM_INT: GLenum;\n    readonly MIRRORED_REPEAT: GLenum;\n    readonly NEAREST: GLenum;\n    readonly NEAREST_MIPMAP_LINEAR: GLenum;\n    readonly NEAREST_MIPMAP_NEAREST: GLenum;\n    readonly NEVER: GLenum;\n    readonly NICEST: GLenum;\n    readonly NONE: GLenum;\n    readonly NOTEQUAL: GLenum;\n    readonly NO_ERROR: GLenum;\n    readonly ONE: GLenum;\n    readonly ONE_MINUS_CONSTANT_ALPHA: GLenum;\n    readonly ONE_MINUS_CONSTANT_COLOR: GLenum;\n    readonly ONE_MINUS_DST_ALPHA: GLenum;\n    readonly ONE_MINUS_DST_COLOR: GLenum;\n    readonly ONE_MINUS_SRC_ALPHA: GLenum;\n    readonly ONE_MINUS_SRC_COLOR: GLenum;\n    readonly OUT_OF_MEMORY: GLenum;\n    readonly PACK_ALIGNMENT: GLenum;\n    readonly POINTS: GLenum;\n    readonly POLYGON_OFFSET_FACTOR: GLenum;\n    readonly POLYGON_OFFSET_FILL: GLenum;\n    readonly POLYGON_OFFSET_UNITS: GLenum;\n    readonly RED_BITS: GLenum;\n    readonly RENDERBUFFER: GLenum;\n    readonly RENDERBUFFER_ALPHA_SIZE: GLenum;\n    readonly RENDERBUFFER_BINDING: GLenum;\n    readonly RENDERBUFFER_BLUE_SIZE: GLenum;\n    readonly RENDERBUFFER_DEPTH_SIZE: GLenum;\n    readonly RENDERBUFFER_GREEN_SIZE: GLenum;\n    readonly RENDERBUFFER_HEIGHT: GLenum;\n    readonly RENDERBUFFER_INTERNAL_FORMAT: GLenum;\n    readonly RENDERBUFFER_RED_SIZE: GLenum;\n    readonly RENDERBUFFER_STENCIL_SIZE: GLenum;\n    readonly RENDERBUFFER_WIDTH: GLenum;\n    readonly RENDERER: GLenum;\n    readonly REPEAT: GLenum;\n    readonly REPLACE: GLenum;\n    readonly RGB: GLenum;\n    readonly RGB565: GLenum;\n    readonly RGB5_A1: GLenum;\n    readonly RGBA: GLenum;\n    readonly RGBA4: GLenum;\n    readonly SAMPLER_2D: GLenum;\n    readonly SAMPLER_CUBE: GLenum;\n    readonly SAMPLES: GLenum;\n    readonly SAMPLE_ALPHA_TO_COVERAGE: GLenum;\n    readonly SAMPLE_BUFFERS: GLenum;\n    readonly SAMPLE_COVERAGE: GLenum;\n    readonly SAMPLE_COVERAGE_INVERT: GLenum;\n    readonly SAMPLE_COVERAGE_VALUE: GLenum;\n    readonly SCISSOR_BOX: GLenum;\n    readonly SCISSOR_TEST: GLenum;\n    readonly SHADER_TYPE: GLenum;\n    readonly SHADING_LANGUAGE_VERSION: GLenum;\n    readonly SHORT: GLenum;\n    readonly SRC_ALPHA: GLenum;\n    readonly SRC_ALPHA_SATURATE: GLenum;\n    readonly SRC_COLOR: GLenum;\n    readonly STATIC_DRAW: GLenum;\n    readonly STENCIL_ATTACHMENT: GLenum;\n    readonly STENCIL_BACK_FAIL: GLenum;\n    readonly STENCIL_BACK_FUNC: GLenum;\n    readonly STENCIL_BACK_PASS_DEPTH_FAIL: GLenum;\n    readonly STENCIL_BACK_PASS_DEPTH_PASS: GLenum;\n    readonly STENCIL_BACK_REF: GLenum;\n    readonly STENCIL_BACK_VALUE_MASK: GLenum;\n    readonly STENCIL_BACK_WRITEMASK: GLenum;\n    readonly STENCIL_BITS: GLenum;\n    readonly STENCIL_BUFFER_BIT: GLenum;\n    readonly STENCIL_CLEAR_VALUE: GLenum;\n    readonly STENCIL_FAIL: GLenum;\n    readonly STENCIL_FUNC: GLenum;\n    readonly STENCIL_INDEX8: GLenum;\n    readonly STENCIL_PASS_DEPTH_FAIL: GLenum;\n    readonly STENCIL_PASS_DEPTH_PASS: GLenum;\n    readonly STENCIL_REF: GLenum;\n    readonly STENCIL_TEST: GLenum;\n    readonly STENCIL_VALUE_MASK: GLenum;\n    readonly STENCIL_WRITEMASK: GLenum;\n    readonly STREAM_DRAW: GLenum;\n    readonly SUBPIXEL_BITS: GLenum;\n    readonly TEXTURE: GLenum;\n    readonly TEXTURE0: GLenum;\n    readonly TEXTURE1: GLenum;\n    readonly TEXTURE10: GLenum;\n    readonly TEXTURE11: GLenum;\n    readonly TEXTURE12: GLenum;\n    readonly TEXTURE13: GLenum;\n    readonly TEXTURE14: GLenum;\n    readonly TEXTURE15: GLenum;\n    readonly TEXTURE16: GLenum;\n    readonly TEXTURE17: GLenum;\n    readonly TEXTURE18: GLenum;\n    readonly TEXTURE19: GLenum;\n    readonly TEXTURE2: GLenum;\n    readonly TEXTURE20: GLenum;\n    readonly TEXTURE21: GLenum;\n    readonly TEXTURE22: GLenum;\n    readonly TEXTURE23: GLenum;\n    readonly TEXTURE24: GLenum;\n    readonly TEXTURE25: GLenum;\n    readonly TEXTURE26: GLenum;\n    readonly TEXTURE27: GLenum;\n    readonly TEXTURE28: GLenum;\n    readonly TEXTURE29: GLenum;\n    readonly TEXTURE3: GLenum;\n    readonly TEXTURE30: GLenum;\n    readonly TEXTURE31: GLenum;\n    readonly TEXTURE4: GLenum;\n    readonly TEXTURE5: GLenum;\n    readonly TEXTURE6: GLenum;\n    readonly TEXTURE7: GLenum;\n    readonly TEXTURE8: GLenum;\n    readonly TEXTURE9: GLenum;\n    readonly TEXTURE_2D: GLenum;\n    readonly TEXTURE_BINDING_2D: GLenum;\n    readonly TEXTURE_BINDING_CUBE_MAP: GLenum;\n    readonly TEXTURE_CUBE_MAP: GLenum;\n    readonly TEXTURE_CUBE_MAP_NEGATIVE_X: GLenum;\n    readonly TEXTURE_CUBE_MAP_NEGATIVE_Y: GLenum;\n    readonly TEXTURE_CUBE_MAP_NEGATIVE_Z: GLenum;\n    readonly TEXTURE_CUBE_MAP_POSITIVE_X: GLenum;\n    readonly TEXTURE_CUBE_MAP_POSITIVE_Y: GLenum;\n    readonly TEXTURE_CUBE_MAP_POSITIVE_Z: GLenum;\n    readonly TEXTURE_MAG_FILTER: GLenum;\n    readonly TEXTURE_MIN_FILTER: GLenum;\n    readonly TEXTURE_WRAP_S: GLenum;\n    readonly TEXTURE_WRAP_T: GLenum;\n    readonly TRIANGLES: GLenum;\n    readonly TRIANGLE_FAN: GLenum;\n    readonly TRIANGLE_STRIP: GLenum;\n    readonly UNPACK_ALIGNMENT: GLenum;\n    readonly UNPACK_COLORSPACE_CONVERSION_WEBGL: GLenum;\n    readonly UNPACK_FLIP_Y_WEBGL: GLenum;\n    readonly UNPACK_PREMULTIPLY_ALPHA_WEBGL: GLenum;\n    readonly UNSIGNED_BYTE: GLenum;\n    readonly UNSIGNED_INT: GLenum;\n    readonly UNSIGNED_SHORT: GLenum;\n    readonly UNSIGNED_SHORT_4_4_4_4: GLenum;\n    readonly UNSIGNED_SHORT_5_5_5_1: GLenum;\n    readonly UNSIGNED_SHORT_5_6_5: GLenum;\n    readonly VALIDATE_STATUS: GLenum;\n    readonly VENDOR: GLenum;\n    readonly VERSION: GLenum;\n    readonly VERTEX_ATTRIB_ARRAY_BUFFER_BINDING: GLenum;\n    readonly VERTEX_ATTRIB_ARRAY_ENABLED: GLenum;\n    readonly VERTEX_ATTRIB_ARRAY_NORMALIZED: GLenum;\n    readonly VERTEX_ATTRIB_ARRAY_POINTER: GLenum;\n    readonly VERTEX_ATTRIB_ARRAY_SIZE: GLenum;\n    readonly VERTEX_ATTRIB_ARRAY_STRIDE: GLenum;\n    readonly VERTEX_ATTRIB_ARRAY_TYPE: GLenum;\n    readonly VERTEX_SHADER: GLenum;\n    readonly VIEWPORT: GLenum;\n    readonly ZERO: GLenum;\n}\n\ninterface WebGLRenderingContextOverloads {\n    bufferData(target: GLenum, size: GLsizeiptr, usage: GLenum): void;\n    bufferData(target: GLenum, data: BufferSource | null, usage: GLenum): void;\n    bufferSubData(target: GLenum, offset: GLintptr, data: BufferSource): void;\n    compressedTexImage2D(target: GLenum, level: GLint, internalformat: GLenum, width: GLsizei, height: GLsizei, border: GLint, data: ArrayBufferView): void;\n    compressedTexSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, data: ArrayBufferView): void;\n    readPixels(x: GLint, y: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, pixels: ArrayBufferView | null): void;\n    texImage2D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, border: GLint, format: GLenum, type: GLenum, pixels: ArrayBufferView | null): void;\n    texImage2D(target: GLenum, level: GLint, internalformat: GLint, format: GLenum, type: GLenum, source: TexImageSource): void;\n    texSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, pixels: ArrayBufferView | null): void;\n    texSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, format: GLenum, type: GLenum, source: TexImageSource): void;\n    uniform1fv(location: WebGLUniformLocation | null, v: Float32List): void;\n    uniform1iv(location: WebGLUniformLocation | null, v: Int32List): void;\n    uniform2fv(location: WebGLUniformLocation | null, v: Float32List): void;\n    uniform2iv(location: WebGLUniformLocation | null, v: Int32List): void;\n    uniform3fv(location: WebGLUniformLocation | null, v: Float32List): void;\n    uniform3iv(location: WebGLUniformLocation | null, v: Int32List): void;\n    uniform4fv(location: WebGLUniformLocation | null, v: Float32List): void;\n    uniform4iv(location: WebGLUniformLocation | null, v: Int32List): void;\n    uniformMatrix2fv(location: WebGLUniformLocation | null, transpose: GLboolean, value: Float32List): void;\n    uniformMatrix3fv(location: WebGLUniformLocation | null, transpose: GLboolean, value: Float32List): void;\n    uniformMatrix4fv(location: WebGLUniformLocation | null, transpose: GLboolean, value: Float32List): void;\n}\n\ninterface WebGLSampler {\n}\n\ndeclare var WebGLSampler: {\n    prototype: WebGLSampler;\n    new(): WebGLSampler;\n};\n\n/** The WebGLShader is part of the WebGL API and can either be a vertex or a fragment shader. A WebGLProgram requires both types of shaders. */\ninterface WebGLShader {\n}\n\ndeclare var WebGLShader: {\n    prototype: WebGLShader;\n    new(): WebGLShader;\n};\n\n/** Part of the WebGL API and represents the information returned by calling the WebGLRenderingContext.getShaderPrecisionFormat() method. */\ninterface WebGLShaderPrecisionFormat {\n    readonly precision: GLint;\n    readonly rangeMax: GLint;\n    readonly rangeMin: GLint;\n}\n\ndeclare var WebGLShaderPrecisionFormat: {\n    prototype: WebGLShaderPrecisionFormat;\n    new(): WebGLShaderPrecisionFormat;\n};\n\ninterface WebGLSync {\n}\n\ndeclare var WebGLSync: {\n    prototype: WebGLSync;\n    new(): WebGLSync;\n};\n\n/** Part of the WebGL API and represents an opaque texture object providing storage and state for texturing operations. */\ninterface WebGLTexture {\n}\n\ndeclare var WebGLTexture: {\n    prototype: WebGLTexture;\n    new(): WebGLTexture;\n};\n\ninterface WebGLTransformFeedback {\n}\n\ndeclare var WebGLTransformFeedback: {\n    prototype: WebGLTransformFeedback;\n    new(): WebGLTransformFeedback;\n};\n\n/** Part of the WebGL API and represents the location of a uniform variable in a shader program. */\ninterface WebGLUniformLocation {\n}\n\ndeclare var WebGLUniformLocation: {\n    prototype: WebGLUniformLocation;\n    new(): WebGLUniformLocation;\n};\n\ninterface WebGLVertexArrayObject {\n}\n\ndeclare var WebGLVertexArrayObject: {\n    prototype: WebGLVertexArrayObject;\n    new(): WebGLVertexArrayObject;\n};\n\ninterface WebGLVertexArrayObjectOES {\n}\n\ninterface WebSocketEventMap {\n    \"close\": CloseEvent;\n    \"error\": Event;\n    \"message\": MessageEvent;\n    \"open\": Event;\n}\n\n/** Provides the API for creating and managing a WebSocket connection to a server, as well as for sending and receiving data on the connection. */\ninterface WebSocket extends EventTarget {\n    /**\n     * Returns a string that indicates how binary data from the WebSocket object is exposed to scripts:\n     *\n     * Can be set, to change how binary data is returned. The default is \"blob\".\n     */\n    binaryType: BinaryType;\n    /**\n     * Returns the number of bytes of application data (UTF-8 text and binary data) that have been queued using send() but not yet been transmitted to the network.\n     *\n     * If the WebSocket connection is closed, this attribute's value will only increase with each call to the send() method. (The number does not reset to zero once the connection closes.)\n     */\n    readonly bufferedAmount: number;\n    /** Returns the extensions selected by the server, if any. */\n    readonly extensions: string;\n    onclose: ((this: WebSocket, ev: CloseEvent) => any) | null;\n    onerror: ((this: WebSocket, ev: Event) => any) | null;\n    onmessage: ((this: WebSocket, ev: MessageEvent) => any) | null;\n    onopen: ((this: WebSocket, ev: Event) => any) | null;\n    /** Returns the subprotocol selected by the server, if any. It can be used in conjunction with the array form of the constructor's second argument to perform subprotocol negotiation. */\n    readonly protocol: string;\n    /** Returns the state of the WebSocket object's connection. It can have the values described below. */\n    readonly readyState: number;\n    /** Returns the URL that was used to establish the WebSocket connection. */\n    readonly url: string;\n    /** Closes the WebSocket connection, optionally using code as the the WebSocket connection close code and reason as the the WebSocket connection close reason. */\n    close(code?: number, reason?: string): void;\n    /** Transmits data using the WebSocket connection. data can be a string, a Blob, an ArrayBuffer, or an ArrayBufferView. */\n    send(data: string | ArrayBufferLike | Blob | ArrayBufferView): void;\n    readonly CLOSED: number;\n    readonly CLOSING: number;\n    readonly CONNECTING: number;\n    readonly OPEN: number;\n    addEventListener<K extends keyof WebSocketEventMap>(type: K, listener: (this: WebSocket, ev: WebSocketEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n    removeEventListener<K extends keyof WebSocketEventMap>(type: K, listener: (this: WebSocket, ev: WebSocketEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var WebSocket: {\n    prototype: WebSocket;\n    new(url: string | URL, protocols?: string | string[]): WebSocket;\n    readonly CLOSED: number;\n    readonly CLOSING: number;\n    readonly CONNECTING: number;\n    readonly OPEN: number;\n};\n\n/** This ServiceWorker API interface represents the scope of a service worker client that is a document in a browser context, controlled by an active worker. The service worker client independently selects and uses a service worker for its own loading and sub-resources. */\ninterface WindowClient extends Client {\n    readonly focused: boolean;\n    readonly visibilityState: DocumentVisibilityState;\n    focus(): Promise<WindowClient>;\n    navigate(url: string | URL): Promise<WindowClient | null>;\n}\n\ndeclare var WindowClient: {\n    prototype: WindowClient;\n    new(): WindowClient;\n};\n\ninterface WindowOrWorkerGlobalScope {\n    /** Available only in secure contexts. */\n    readonly caches: CacheStorage;\n    readonly crossOriginIsolated: boolean;\n    readonly crypto: Crypto;\n    readonly indexedDB: IDBFactory;\n    readonly isSecureContext: boolean;\n    readonly origin: string;\n    readonly performance: Performance;\n    atob(data: string): string;\n    btoa(data: string): string;\n    clearInterval(id: number | undefined): void;\n    clearTimeout(id: number | undefined): void;\n    createImageBitmap(image: ImageBitmapSource, options?: ImageBitmapOptions): Promise<ImageBitmap>;\n    createImageBitmap(image: ImageBitmapSource, sx: number, sy: number, sw: number, sh: number, options?: ImageBitmapOptions): Promise<ImageBitmap>;\n    fetch(input: RequestInfo | URL, init?: RequestInit): Promise<Response>;\n    queueMicrotask(callback: VoidFunction): void;\n    reportError(e: any): void;\n    setInterval(handler: TimerHandler, timeout?: number, ...arguments: any[]): number;\n    setTimeout(handler: TimerHandler, timeout?: number, ...arguments: any[]): number;\n    structuredClone(value: any, options?: StructuredSerializeOptions): any;\n}\n\ninterface WorkerEventMap extends AbstractWorkerEventMap {\n    \"message\": MessageEvent;\n    \"messageerror\": MessageEvent;\n}\n\n/** This Web Workers API interface represents a background task that can be easily created and can send messages back to its creator. Creating a worker is as simple as calling the Worker() constructor and specifying a script to be run in the worker thread. */\ninterface Worker extends EventTarget, AbstractWorker {\n    onmessage: ((this: Worker, ev: MessageEvent) => any) | null;\n    onmessageerror: ((this: Worker, ev: MessageEvent) => any) | null;\n    /** Clones message and transmits it to worker's global environment. transfer can be passed as a list of objects that are to be transferred rather than cloned. */\n    postMessage(message: any, transfer: Transferable[]): void;\n    postMessage(message: any, options?: StructuredSerializeOptions): void;\n    /** Aborts worker's associated global environment. */\n    terminate(): void;\n    addEventListener<K extends keyof WorkerEventMap>(type: K, listener: (this: Worker, ev: WorkerEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n    removeEventListener<K extends keyof WorkerEventMap>(type: K, listener: (this: Worker, ev: WorkerEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var Worker: {\n    prototype: Worker;\n    new(scriptURL: string | URL, options?: WorkerOptions): Worker;\n};\n\ninterface WorkerGlobalScopeEventMap {\n    \"error\": ErrorEvent;\n    \"languagechange\": Event;\n    \"offline\": Event;\n    \"online\": Event;\n    \"rejectionhandled\": PromiseRejectionEvent;\n    \"unhandledrejection\": PromiseRejectionEvent;\n}\n\n/** This Web Workers API interface is an interface representing the scope of any worker. Workers have no browsing context; this scope contains the information usually conveyed by Window objects — in this case event handlers, the console or the associated WorkerNavigator object. Each WorkerGlobalScope has its own event loop. */\ninterface WorkerGlobalScope extends EventTarget, FontFaceSource, WindowOrWorkerGlobalScope {\n    /** Returns workerGlobal's WorkerLocation object. */\n    readonly location: WorkerLocation;\n    /** Returns workerGlobal's WorkerNavigator object. */\n    readonly navigator: WorkerNavigator;\n    onerror: ((this: WorkerGlobalScope, ev: ErrorEvent) => any) | null;\n    onlanguagechange: ((this: WorkerGlobalScope, ev: Event) => any) | null;\n    onoffline: ((this: WorkerGlobalScope, ev: Event) => any) | null;\n    ononline: ((this: WorkerGlobalScope, ev: Event) => any) | null;\n    onrejectionhandled: ((this: WorkerGlobalScope, ev: PromiseRejectionEvent) => any) | null;\n    onunhandledrejection: ((this: WorkerGlobalScope, ev: PromiseRejectionEvent) => any) | null;\n    /** Returns workerGlobal. */\n    readonly self: WorkerGlobalScope & typeof globalThis;\n    /** Fetches each URL in urls, executes them one-by-one in the order they are passed, and then returns (or throws if something went amiss). */\n    importScripts(...urls: (string | URL)[]): void;\n    addEventListener<K extends keyof WorkerGlobalScopeEventMap>(type: K, listener: (this: WorkerGlobalScope, ev: WorkerGlobalScopeEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n    removeEventListener<K extends keyof WorkerGlobalScopeEventMap>(type: K, listener: (this: WorkerGlobalScope, ev: WorkerGlobalScopeEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var WorkerGlobalScope: {\n    prototype: WorkerGlobalScope;\n    new(): WorkerGlobalScope;\n};\n\n/** The absolute location of the script executed by the Worker. Such an object is initialized for each worker and is available via the WorkerGlobalScope.location property obtained by calling self.location. */\ninterface WorkerLocation {\n    readonly hash: string;\n    readonly host: string;\n    readonly hostname: string;\n    readonly href: string;\n    toString(): string;\n    readonly origin: string;\n    readonly pathname: string;\n    readonly port: string;\n    readonly protocol: string;\n    readonly search: string;\n}\n\ndeclare var WorkerLocation: {\n    prototype: WorkerLocation;\n    new(): WorkerLocation;\n};\n\n/** A subset of the Navigator interface allowed to be accessed from a Worker. Such an object is initialized for each worker and is available via the WorkerGlobalScope.navigator property obtained by calling window.self.navigator. */\ninterface WorkerNavigator extends NavigatorConcurrentHardware, NavigatorID, NavigatorLanguage, NavigatorLocks, NavigatorOnLine, NavigatorStorage {\n    readonly mediaCapabilities: MediaCapabilities;\n}\n\ndeclare var WorkerNavigator: {\n    prototype: WorkerNavigator;\n    new(): WorkerNavigator;\n};\n\n/** This Streams API interface provides a standard abstraction for writing streaming data to a destination, known as a sink. This object comes with built-in backpressure and queuing. */\ninterface WritableStream<W = any> {\n    readonly locked: boolean;\n    abort(reason?: any): Promise<void>;\n    close(): Promise<void>;\n    getWriter(): WritableStreamDefaultWriter<W>;\n}\n\ndeclare var WritableStream: {\n    prototype: WritableStream;\n    new<W = any>(underlyingSink?: UnderlyingSink<W>, strategy?: QueuingStrategy<W>): WritableStream<W>;\n};\n\n/** This Streams API interface represents a controller allowing control of a WritableStream's state. When constructing a WritableStream, the underlying sink is given a corresponding WritableStreamDefaultController instance to manipulate. */\ninterface WritableStreamDefaultController {\n    readonly signal: AbortSignal;\n    error(e?: any): void;\n}\n\ndeclare var WritableStreamDefaultController: {\n    prototype: WritableStreamDefaultController;\n    new(): WritableStreamDefaultController;\n};\n\n/** This Streams API interface is the object returned by WritableStream.getWriter() and once created locks the < writer to the WritableStream ensuring that no other streams can write to the underlying sink. */\ninterface WritableStreamDefaultWriter<W = any> {\n    readonly closed: Promise<undefined>;\n    readonly desiredSize: number | null;\n    readonly ready: Promise<undefined>;\n    abort(reason?: any): Promise<void>;\n    close(): Promise<void>;\n    releaseLock(): void;\n    write(chunk?: W): Promise<void>;\n}\n\ndeclare var WritableStreamDefaultWriter: {\n    prototype: WritableStreamDefaultWriter;\n    new<W = any>(stream: WritableStream<W>): WritableStreamDefaultWriter<W>;\n};\n\ninterface XMLHttpRequestEventMap extends XMLHttpRequestEventTargetEventMap {\n    \"readystatechange\": Event;\n}\n\n/** Use XMLHttpRequest (XHR) objects to interact with servers. You can retrieve data from a URL without having to do a full page refresh. This enables a Web page to update just part of a page without disrupting what the user is doing. */\ninterface XMLHttpRequest extends XMLHttpRequestEventTarget {\n    onreadystatechange: ((this: XMLHttpRequest, ev: Event) => any) | null;\n    /** Returns client's state. */\n    readonly readyState: number;\n    /** Returns the response body. */\n    readonly response: any;\n    /**\n     * Returns response as text.\n     *\n     * Throws an \"InvalidStateError\" DOMException if responseType is not the empty string or \"text\".\n     */\n    readonly responseText: string;\n    /**\n     * Returns the response type.\n     *\n     * Can be set to change the response type. Values are: the empty string (default), \"arraybuffer\", \"blob\", \"document\", \"json\", and \"text\".\n     *\n     * When set: setting to \"document\" is ignored if current global object is not a Window object.\n     *\n     * When set: throws an \"InvalidStateError\" DOMException if state is loading or done.\n     *\n     * When set: throws an \"InvalidAccessError\" DOMException if the synchronous flag is set and current global object is a Window object.\n     */\n    responseType: XMLHttpRequestResponseType;\n    readonly responseURL: string;\n    readonly status: number;\n    readonly statusText: string;\n    /**\n     * Can be set to a time in milliseconds. When set to a non-zero value will cause fetching to terminate after the given time has passed. When the time has passed, the request has not yet completed, and this's synchronous flag is unset, a timeout event will then be dispatched, or a \"TimeoutError\" DOMException will be thrown otherwise (for the send() method).\n     *\n     * When set: throws an \"InvalidAccessError\" DOMException if the synchronous flag is set and current global object is a Window object.\n     */\n    timeout: number;\n    /** Returns the associated XMLHttpRequestUpload object. It can be used to gather transmission information when data is transferred to a server. */\n    readonly upload: XMLHttpRequestUpload;\n    /**\n     * True when credentials are to be included in a cross-origin request. False when they are to be excluded in a cross-origin request and when cookies are to be ignored in its response. Initially false.\n     *\n     * When set: throws an \"InvalidStateError\" DOMException if state is not unsent or opened, or if the send() flag is set.\n     */\n    withCredentials: boolean;\n    /** Cancels any network activity. */\n    abort(): void;\n    getAllResponseHeaders(): string;\n    getResponseHeader(name: string): string | null;\n    /**\n     * Sets the request method, request URL, and synchronous flag.\n     *\n     * Throws a \"SyntaxError\" DOMException if either method is not a valid method or url cannot be parsed.\n     *\n     * Throws a \"SecurityError\" DOMException if method is a case-insensitive match for `CONNECT`, `TRACE`, or `TRACK`.\n     *\n     * Throws an \"InvalidAccessError\" DOMException if async is false, current global object is a Window object, and the timeout attribute is not zero or the responseType attribute is not the empty string.\n     */\n    open(method: string, url: string | URL): void;\n    open(method: string, url: string | URL, async: boolean, username?: string | null, password?: string | null): void;\n    /**\n     * Acts as if the `Content-Type` header value for a response is mime. (It does not change the header.)\n     *\n     * Throws an \"InvalidStateError\" DOMException if state is loading or done.\n     */\n    overrideMimeType(mime: string): void;\n    /**\n     * Initiates the request. The body argument provides the request body, if any, and is ignored if the request method is GET or HEAD.\n     *\n     * Throws an \"InvalidStateError\" DOMException if either state is not opened or the send() flag is set.\n     */\n    send(body?: XMLHttpRequestBodyInit | null): void;\n    /**\n     * Combines a header in author request headers.\n     *\n     * Throws an \"InvalidStateError\" DOMException if either state is not opened or the send() flag is set.\n     *\n     * Throws a \"SyntaxError\" DOMException if name is not a header name or if value is not a header value.\n     */\n    setRequestHeader(name: string, value: string): void;\n    readonly DONE: number;\n    readonly HEADERS_RECEIVED: number;\n    readonly LOADING: number;\n    readonly OPENED: number;\n    readonly UNSENT: number;\n    addEventListener<K extends keyof XMLHttpRequestEventMap>(type: K, listener: (this: XMLHttpRequest, ev: XMLHttpRequestEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n    removeEventListener<K extends keyof XMLHttpRequestEventMap>(type: K, listener: (this: XMLHttpRequest, ev: XMLHttpRequestEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var XMLHttpRequest: {\n    prototype: XMLHttpRequest;\n    new(): XMLHttpRequest;\n    readonly DONE: number;\n    readonly HEADERS_RECEIVED: number;\n    readonly LOADING: number;\n    readonly OPENED: number;\n    readonly UNSENT: number;\n};\n\ninterface XMLHttpRequestEventTargetEventMap {\n    \"abort\": ProgressEvent<XMLHttpRequestEventTarget>;\n    \"error\": ProgressEvent<XMLHttpRequestEventTarget>;\n    \"load\": ProgressEvent<XMLHttpRequestEventTarget>;\n    \"loadend\": ProgressEvent<XMLHttpRequestEventTarget>;\n    \"loadstart\": ProgressEvent<XMLHttpRequestEventTarget>;\n    \"progress\": ProgressEvent<XMLHttpRequestEventTarget>;\n    \"timeout\": ProgressEvent<XMLHttpRequestEventTarget>;\n}\n\ninterface XMLHttpRequestEventTarget extends EventTarget {\n    onabort: ((this: XMLHttpRequest, ev: ProgressEvent) => any) | null;\n    onerror: ((this: XMLHttpRequest, ev: ProgressEvent) => any) | null;\n    onload: ((this: XMLHttpRequest, ev: ProgressEvent) => any) | null;\n    onloadend: ((this: XMLHttpRequest, ev: ProgressEvent) => any) | null;\n    onloadstart: ((this: XMLHttpRequest, ev: ProgressEvent) => any) | null;\n    onprogress: ((this: XMLHttpRequest, ev: ProgressEvent) => any) | null;\n    ontimeout: ((this: XMLHttpRequest, ev: ProgressEvent) => any) | null;\n    addEventListener<K extends keyof XMLHttpRequestEventTargetEventMap>(type: K, listener: (this: XMLHttpRequestEventTarget, ev: XMLHttpRequestEventTargetEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n    removeEventListener<K extends keyof XMLHttpRequestEventTargetEventMap>(type: K, listener: (this: XMLHttpRequestEventTarget, ev: XMLHttpRequestEventTargetEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var XMLHttpRequestEventTarget: {\n    prototype: XMLHttpRequestEventTarget;\n    new(): XMLHttpRequestEventTarget;\n};\n\ninterface XMLHttpRequestUpload extends XMLHttpRequestEventTarget {\n    addEventListener<K extends keyof XMLHttpRequestEventTargetEventMap>(type: K, listener: (this: XMLHttpRequestUpload, ev: XMLHttpRequestEventTargetEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n    removeEventListener<K extends keyof XMLHttpRequestEventTargetEventMap>(type: K, listener: (this: XMLHttpRequestUpload, ev: XMLHttpRequestEventTargetEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var XMLHttpRequestUpload: {\n    prototype: XMLHttpRequestUpload;\n    new(): XMLHttpRequestUpload;\n};\n\ninterface Console {\n    assert(condition?: boolean, ...data: any[]): void;\n    clear(): void;\n    count(label?: string): void;\n    countReset(label?: string): void;\n    debug(...data: any[]): void;\n    dir(item?: any, options?: any): void;\n    dirxml(...data: any[]): void;\n    error(...data: any[]): void;\n    group(...data: any[]): void;\n    groupCollapsed(...data: any[]): void;\n    groupEnd(): void;\n    info(...data: any[]): void;\n    log(...data: any[]): void;\n    table(tabularData?: any, properties?: string[]): void;\n    time(label?: string): void;\n    timeEnd(label?: string): void;\n    timeLog(label?: string, ...data: any[]): void;\n    timeStamp(label?: string): void;\n    trace(...data: any[]): void;\n    warn(...data: any[]): void;\n}\n\ndeclare var console: Console;\n\ndeclare namespace WebAssembly {\n    interface CompileError extends Error {\n    }\n\n    var CompileError: {\n        prototype: CompileError;\n        new(message?: string): CompileError;\n        (message?: string): CompileError;\n    };\n\n    interface Global {\n        value: any;\n        valueOf(): any;\n    }\n\n    var Global: {\n        prototype: Global;\n        new(descriptor: GlobalDescriptor, v?: any): Global;\n    };\n\n    interface Instance {\n        readonly exports: Exports;\n    }\n\n    var Instance: {\n        prototype: Instance;\n        new(module: Module, importObject?: Imports): Instance;\n    };\n\n    interface LinkError extends Error {\n    }\n\n    var LinkError: {\n        prototype: LinkError;\n        new(message?: string): LinkError;\n        (message?: string): LinkError;\n    };\n\n    interface Memory {\n        readonly buffer: ArrayBuffer;\n        grow(delta: number): number;\n    }\n\n    var Memory: {\n        prototype: Memory;\n        new(descriptor: MemoryDescriptor): Memory;\n    };\n\n    interface Module {\n    }\n\n    var Module: {\n        prototype: Module;\n        new(bytes: BufferSource): Module;\n        customSections(moduleObject: Module, sectionName: string): ArrayBuffer[];\n        exports(moduleObject: Module): ModuleExportDescriptor[];\n        imports(moduleObject: Module): ModuleImportDescriptor[];\n    };\n\n    interface RuntimeError extends Error {\n    }\n\n    var RuntimeError: {\n        prototype: RuntimeError;\n        new(message?: string): RuntimeError;\n        (message?: string): RuntimeError;\n    };\n\n    interface Table {\n        readonly length: number;\n        get(index: number): any;\n        grow(delta: number, value?: any): number;\n        set(index: number, value?: any): void;\n    }\n\n    var Table: {\n        prototype: Table;\n        new(descriptor: TableDescriptor, value?: any): Table;\n    };\n\n    interface GlobalDescriptor {\n        mutable?: boolean;\n        value: ValueType;\n    }\n\n    interface MemoryDescriptor {\n        initial: number;\n        maximum?: number;\n        shared?: boolean;\n    }\n\n    interface ModuleExportDescriptor {\n        kind: ImportExportKind;\n        name: string;\n    }\n\n    interface ModuleImportDescriptor {\n        kind: ImportExportKind;\n        module: string;\n        name: string;\n    }\n\n    interface TableDescriptor {\n        element: TableKind;\n        initial: number;\n        maximum?: number;\n    }\n\n    interface WebAssemblyInstantiatedSource {\n        instance: Instance;\n        module: Module;\n    }\n\n    type ImportExportKind = \"function\" | \"global\" | \"memory\" | \"table\";\n    type TableKind = \"anyfunc\" | \"externref\";\n    type ValueType = \"anyfunc\" | \"externref\" | \"f32\" | \"f64\" | \"i32\" | \"i64\" | \"v128\";\n    type ExportValue = Function | Global | Memory | Table;\n    type Exports = Record<string, ExportValue>;\n    type ImportValue = ExportValue | number;\n    type Imports = Record<string, ModuleImports>;\n    type ModuleImports = Record<string, ImportValue>;\n    function compile(bytes: BufferSource): Promise<Module>;\n    function compileStreaming(source: Response | PromiseLike<Response>): Promise<Module>;\n    function instantiate(bytes: BufferSource, importObject?: Imports): Promise<WebAssemblyInstantiatedSource>;\n    function instantiate(moduleObject: Module, importObject?: Imports): Promise<Instance>;\n    function instantiateStreaming(source: Response | PromiseLike<Response>, importObject?: Imports): Promise<WebAssemblyInstantiatedSource>;\n    function validate(bytes: BufferSource): boolean;\n}\n\ninterface FrameRequestCallback {\n    (time: DOMHighResTimeStamp): void;\n}\n\ninterface LockGrantedCallback {\n    (lock: Lock | null): any;\n}\n\ninterface OnErrorEventHandlerNonNull {\n    (event: Event | string, source?: string, lineno?: number, colno?: number, error?: Error): any;\n}\n\ninterface PerformanceObserverCallback {\n    (entries: PerformanceObserverEntryList, observer: PerformanceObserver): void;\n}\n\ninterface QueuingStrategySize<T = any> {\n    (chunk: T): number;\n}\n\ninterface TransformerFlushCallback<O> {\n    (controller: TransformStreamDefaultController<O>): void | PromiseLike<void>;\n}\n\ninterface TransformerStartCallback<O> {\n    (controller: TransformStreamDefaultController<O>): any;\n}\n\ninterface TransformerTransformCallback<I, O> {\n    (chunk: I, controller: TransformStreamDefaultController<O>): void | PromiseLike<void>;\n}\n\ninterface UnderlyingSinkAbortCallback {\n    (reason?: any): void | PromiseLike<void>;\n}\n\ninterface UnderlyingSinkCloseCallback {\n    (): void | PromiseLike<void>;\n}\n\ninterface UnderlyingSinkStartCallback {\n    (controller: WritableStreamDefaultController): any;\n}\n\ninterface UnderlyingSinkWriteCallback<W> {\n    (chunk: W, controller: WritableStreamDefaultController): void | PromiseLike<void>;\n}\n\ninterface UnderlyingSourceCancelCallback {\n    (reason?: any): void | PromiseLike<void>;\n}\n\ninterface UnderlyingSourcePullCallback<R> {\n    (controller: ReadableStreamController<R>): void | PromiseLike<void>;\n}\n\ninterface UnderlyingSourceStartCallback<R> {\n    (controller: ReadableStreamController<R>): any;\n}\n\ninterface VoidFunction {\n    (): void;\n}\n\n/** Returns dedicatedWorkerGlobal's name, i.e. the value given to the Worker constructor. Primarily useful for debugging. */\ndeclare var name: string;\ndeclare var onmessage: ((this: DedicatedWorkerGlobalScope, ev: MessageEvent) => any) | null;\ndeclare var onmessageerror: ((this: DedicatedWorkerGlobalScope, ev: MessageEvent) => any) | null;\n/** Aborts dedicatedWorkerGlobal. */\ndeclare function close(): void;\n/** Clones message and transmits it to the Worker object associated with dedicatedWorkerGlobal. transfer can be passed as a list of objects that are to be transferred rather than cloned. */\ndeclare function postMessage(message: any, transfer: Transferable[]): void;\ndeclare function postMessage(message: any, options?: StructuredSerializeOptions): void;\n/** Dispatches a synthetic event event to target and returns true if either event's cancelable attribute value is false or its preventDefault() method was not invoked, and false otherwise. */\ndeclare function dispatchEvent(event: Event): boolean;\n/** Returns workerGlobal's WorkerLocation object. */\ndeclare var location: WorkerLocation;\n/** Returns workerGlobal's WorkerNavigator object. */\ndeclare var navigator: WorkerNavigator;\ndeclare var onerror: ((this: DedicatedWorkerGlobalScope, ev: ErrorEvent) => any) | null;\ndeclare var onlanguagechange: ((this: DedicatedWorkerGlobalScope, ev: Event) => any) | null;\ndeclare var onoffline: ((this: DedicatedWorkerGlobalScope, ev: Event) => any) | null;\ndeclare var ononline: ((this: DedicatedWorkerGlobalScope, ev: Event) => any) | null;\ndeclare var onrejectionhandled: ((this: DedicatedWorkerGlobalScope, ev: PromiseRejectionEvent) => any) | null;\ndeclare var onunhandledrejection: ((this: DedicatedWorkerGlobalScope, ev: PromiseRejectionEvent) => any) | null;\n/** Returns workerGlobal. */\ndeclare var self: WorkerGlobalScope & typeof globalThis;\n/** Fetches each URL in urls, executes them one-by-one in the order they are passed, and then returns (or throws if something went amiss). */\ndeclare function importScripts(...urls: (string | URL)[]): void;\n/** Dispatches a synthetic event event to target and returns true if either event's cancelable attribute value is false or its preventDefault() method was not invoked, and false otherwise. */\ndeclare function dispatchEvent(event: Event): boolean;\ndeclare var fonts: FontFaceSet;\n/** Available only in secure contexts. */\ndeclare var caches: CacheStorage;\ndeclare var crossOriginIsolated: boolean;\ndeclare var crypto: Crypto;\ndeclare var indexedDB: IDBFactory;\ndeclare var isSecureContext: boolean;\ndeclare var origin: string;\ndeclare var performance: Performance;\ndeclare function atob(data: string): string;\ndeclare function btoa(data: string): string;\ndeclare function clearInterval(id: number | undefined): void;\ndeclare function clearTimeout(id: number | undefined): void;\ndeclare function createImageBitmap(image: ImageBitmapSource, options?: ImageBitmapOptions): Promise<ImageBitmap>;\ndeclare function createImageBitmap(image: ImageBitmapSource, sx: number, sy: number, sw: number, sh: number, options?: ImageBitmapOptions): Promise<ImageBitmap>;\ndeclare function fetch(input: RequestInfo | URL, init?: RequestInit): Promise<Response>;\ndeclare function queueMicrotask(callback: VoidFunction): void;\ndeclare function reportError(e: any): void;\ndeclare function setInterval(handler: TimerHandler, timeout?: number, ...arguments: any[]): number;\ndeclare function setTimeout(handler: TimerHandler, timeout?: number, ...arguments: any[]): number;\ndeclare function structuredClone(value: any, options?: StructuredSerializeOptions): any;\ndeclare function cancelAnimationFrame(handle: number): void;\ndeclare function requestAnimationFrame(callback: FrameRequestCallback): number;\ndeclare function addEventListener<K extends keyof DedicatedWorkerGlobalScopeEventMap>(type: K, listener: (this: DedicatedWorkerGlobalScope, ev: DedicatedWorkerGlobalScopeEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\ndeclare function addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\ndeclare function removeEventListener<K extends keyof DedicatedWorkerGlobalScopeEventMap>(type: K, listener: (this: DedicatedWorkerGlobalScope, ev: DedicatedWorkerGlobalScopeEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\ndeclare function removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\ntype AlgorithmIdentifier = Algorithm | string;\ntype BigInteger = Uint8Array;\ntype BinaryData = ArrayBuffer | ArrayBufferView;\ntype BlobPart = BufferSource | Blob | string;\ntype BodyInit = ReadableStream | XMLHttpRequestBodyInit;\ntype BufferSource = ArrayBufferView | ArrayBuffer;\ntype CanvasImageSource = ImageBitmap | OffscreenCanvas;\ntype DOMHighResTimeStamp = number;\ntype EpochTimeStamp = number;\ntype EventListenerOrEventListenerObject = EventListener | EventListenerObject;\ntype Float32List = Float32Array | GLfloat[];\ntype FormDataEntryValue = File | string;\ntype GLbitfield = number;\ntype GLboolean = boolean;\ntype GLclampf = number;\ntype GLenum = number;\ntype GLfloat = number;\ntype GLint = number;\ntype GLint64 = number;\ntype GLintptr = number;\ntype GLsizei = number;\ntype GLsizeiptr = number;\ntype GLuint = number;\ntype GLuint64 = number;\ntype HashAlgorithmIdentifier = AlgorithmIdentifier;\ntype HeadersInit = [string, string][] | Record<string, string> | Headers;\ntype IDBValidKey = number | string | Date | BufferSource | IDBValidKey[];\ntype ImageBitmapSource = CanvasImageSource | Blob | ImageData;\ntype Int32List = Int32Array | GLint[];\ntype MessageEventSource = MessagePort | ServiceWorker;\ntype NamedCurve = string;\ntype OffscreenRenderingContext = OffscreenCanvasRenderingContext2D | ImageBitmapRenderingContext | WebGLRenderingContext | WebGL2RenderingContext;\ntype OnErrorEventHandler = OnErrorEventHandlerNonNull | null;\ntype PerformanceEntryList = PerformanceEntry[];\ntype PushMessageDataInit = BufferSource | string;\ntype ReadableStreamController<T> = ReadableStreamDefaultController<T> | ReadableByteStreamController;\ntype ReadableStreamReadResult<T> = ReadableStreamReadValueResult<T> | ReadableStreamReadDoneResult<T>;\ntype ReadableStreamReader<T> = ReadableStreamDefaultReader<T> | ReadableStreamBYOBReader;\ntype RequestInfo = Request | string;\ntype TexImageSource = ImageBitmap | ImageData | OffscreenCanvas;\ntype TimerHandler = string | Function;\ntype Transferable = OffscreenCanvas | ImageBitmap | MessagePort | ReadableStream | WritableStream | TransformStream | ArrayBuffer;\ntype Uint32List = Uint32Array | GLuint[];\ntype VibratePattern = number | number[];\ntype XMLHttpRequestBodyInit = Blob | BufferSource | FormData | URLSearchParams | string;\ntype BinaryType = \"arraybuffer\" | \"blob\";\ntype CanvasDirection = \"inherit\" | \"ltr\" | \"rtl\";\ntype CanvasFillRule = \"evenodd\" | \"nonzero\";\ntype CanvasFontKerning = \"auto\" | \"none\" | \"normal\";\ntype CanvasFontStretch = \"condensed\" | \"expanded\" | \"extra-condensed\" | \"extra-expanded\" | \"normal\" | \"semi-condensed\" | \"semi-expanded\" | \"ultra-condensed\" | \"ultra-expanded\";\ntype CanvasFontVariantCaps = \"all-petite-caps\" | \"all-small-caps\" | \"normal\" | \"petite-caps\" | \"small-caps\" | \"titling-caps\" | \"unicase\";\ntype CanvasLineCap = \"butt\" | \"round\" | \"square\";\ntype CanvasLineJoin = \"bevel\" | \"miter\" | \"round\";\ntype CanvasTextAlign = \"center\" | \"end\" | \"left\" | \"right\" | \"start\";\ntype CanvasTextBaseline = \"alphabetic\" | \"bottom\" | \"hanging\" | \"ideographic\" | \"middle\" | \"top\";\ntype CanvasTextRendering = \"auto\" | \"geometricPrecision\" | \"optimizeLegibility\" | \"optimizeSpeed\";\ntype ClientTypes = \"all\" | \"sharedworker\" | \"window\" | \"worker\";\ntype ColorGamut = \"p3\" | \"rec2020\" | \"srgb\";\ntype ColorSpaceConversion = \"default\" | \"none\";\ntype DocumentVisibilityState = \"hidden\" | \"visible\";\ntype EndingType = \"native\" | \"transparent\";\ntype FileSystemHandleKind = \"directory\" | \"file\";\ntype FontFaceLoadStatus = \"error\" | \"loaded\" | \"loading\" | \"unloaded\";\ntype FontFaceSetLoadStatus = \"loaded\" | \"loading\";\ntype FrameType = \"auxiliary\" | \"nested\" | \"none\" | \"top-level\";\ntype GlobalCompositeOperation = \"color\" | \"color-burn\" | \"color-dodge\" | \"copy\" | \"darken\" | \"destination-atop\" | \"destination-in\" | \"destination-out\" | \"destination-over\" | \"difference\" | \"exclusion\" | \"hard-light\" | \"hue\" | \"lighten\" | \"lighter\" | \"luminosity\" | \"multiply\" | \"overlay\" | \"saturation\" | \"screen\" | \"soft-light\" | \"source-atop\" | \"source-in\" | \"source-out\" | \"source-over\" | \"xor\";\ntype HdrMetadataType = \"smpteSt2086\" | \"smpteSt2094-10\" | \"smpteSt2094-40\";\ntype IDBCursorDirection = \"next\" | \"nextunique\" | \"prev\" | \"prevunique\";\ntype IDBRequestReadyState = \"done\" | \"pending\";\ntype IDBTransactionDurability = \"default\" | \"relaxed\" | \"strict\";\ntype IDBTransactionMode = \"readonly\" | \"readwrite\" | \"versionchange\";\ntype ImageOrientation = \"flipY\" | \"none\";\ntype ImageSmoothingQuality = \"high\" | \"low\" | \"medium\";\ntype KeyFormat = \"jwk\" | \"pkcs8\" | \"raw\" | \"spki\";\ntype KeyType = \"private\" | \"public\" | \"secret\";\ntype KeyUsage = \"decrypt\" | \"deriveBits\" | \"deriveKey\" | \"encrypt\" | \"sign\" | \"unwrapKey\" | \"verify\" | \"wrapKey\";\ntype LockMode = \"exclusive\" | \"shared\";\ntype MediaDecodingType = \"file\" | \"media-source\" | \"webrtc\";\ntype MediaEncodingType = \"record\" | \"webrtc\";\ntype NotificationDirection = \"auto\" | \"ltr\" | \"rtl\";\ntype NotificationPermission = \"default\" | \"denied\" | \"granted\";\ntype OffscreenRenderingContextId = \"2d\" | \"bitmaprenderer\" | \"webgl\" | \"webgl2\" | \"webgpu\";\ntype PermissionName = \"geolocation\" | \"notifications\" | \"persistent-storage\" | \"push\" | \"screen-wake-lock\" | \"xr-spatial-tracking\";\ntype PermissionState = \"denied\" | \"granted\" | \"prompt\";\ntype PredefinedColorSpace = \"display-p3\" | \"srgb\";\ntype PremultiplyAlpha = \"default\" | \"none\" | \"premultiply\";\ntype PushEncryptionKeyName = \"auth\" | \"p256dh\";\ntype RTCEncodedVideoFrameType = \"delta\" | \"empty\" | \"key\";\ntype ReadableStreamReaderMode = \"byob\";\ntype ReadableStreamType = \"bytes\";\ntype ReferrerPolicy = \"\" | \"no-referrer\" | \"no-referrer-when-downgrade\" | \"origin\" | \"origin-when-cross-origin\" | \"same-origin\" | \"strict-origin\" | \"strict-origin-when-cross-origin\" | \"unsafe-url\";\ntype RequestCache = \"default\" | \"force-cache\" | \"no-cache\" | \"no-store\" | \"only-if-cached\" | \"reload\";\ntype RequestCredentials = \"include\" | \"omit\" | \"same-origin\";\ntype RequestDestination = \"\" | \"audio\" | \"audioworklet\" | \"document\" | \"embed\" | \"font\" | \"frame\" | \"iframe\" | \"image\" | \"manifest\" | \"object\" | \"paintworklet\" | \"report\" | \"script\" | \"sharedworker\" | \"style\" | \"track\" | \"video\" | \"worker\" | \"xslt\";\ntype RequestMode = \"cors\" | \"navigate\" | \"no-cors\" | \"same-origin\";\ntype RequestRedirect = \"error\" | \"follow\" | \"manual\";\ntype ResizeQuality = \"high\" | \"low\" | \"medium\" | \"pixelated\";\ntype ResponseType = \"basic\" | \"cors\" | \"default\" | \"error\" | \"opaque\" | \"opaqueredirect\";\ntype SecurityPolicyViolationEventDisposition = \"enforce\" | \"report\";\ntype ServiceWorkerState = \"activated\" | \"activating\" | \"installed\" | \"installing\" | \"parsed\" | \"redundant\";\ntype ServiceWorkerUpdateViaCache = \"all\" | \"imports\" | \"none\";\ntype TransferFunction = \"hlg\" | \"pq\" | \"srgb\";\ntype VideoColorPrimaries = \"bt470bg\" | \"bt709\" | \"smpte170m\";\ntype VideoMatrixCoefficients = \"bt470bg\" | \"bt709\" | \"rgb\" | \"smpte170m\";\ntype VideoTransferCharacteristics = \"bt709\" | \"iec61966-2-1\" | \"smpte170m\";\ntype WebGLPowerPreference = \"default\" | \"high-performance\" | \"low-power\";\ntype WorkerType = \"classic\" | \"module\";\ntype XMLHttpRequestResponseType = \"\" | \"arraybuffer\" | \"blob\" | \"document\" | \"json\" | \"text\";\n"
    }
  ],
  "contexts": {
    "BACKEND": [
      "/home/runner/work/corvid-types/corvid-types/types/common/anyProperties.d.ts",
      "/home/runner/work/corvid-types/corvid-types/types/common/declaration.deprecated.d.ts",
      "/home/runner/work/corvid-types/corvid-types/types/deprecated/backend/$w.d.ts",
      "/home/runner/work/corvid-types/corvid-types/types/deprecated/backend/index.d.ts",
      "/home/runner/work/corvid-types/corvid-types/node_modules/@types/node/assert.d.ts",
      "/home/runner/work/corvid-types/corvid-types/node_modules/@types/node/assert/strict.d.ts",
      "/home/runner/work/corvid-types/corvid-types/node_modules/@types/node/globals.d.ts",
      "/home/runner/work/corvid-types/corvid-types/node_modules/@types/node/async_hooks.d.ts",
      "/home/runner/work/corvid-types/corvid-types/node_modules/@types/node/buffer.d.ts",
      "/home/runner/work/corvid-types/corvid-types/node_modules/@types/node/child_process.d.ts",
      "/home/runner/work/corvid-types/corvid-types/node_modules/@types/node/cluster.d.ts",
      "/home/runner/work/corvid-types/corvid-types/node_modules/@types/node/console.d.ts",
      "/home/runner/work/corvid-types/corvid-types/node_modules/@types/node/constants.d.ts",
      "/home/runner/work/corvid-types/corvid-types/node_modules/@types/node/crypto.d.ts",
      "/home/runner/work/corvid-types/corvid-types/node_modules/@types/node/dgram.d.ts",
      "/home/runner/work/corvid-types/corvid-types/node_modules/@types/node/diagnostics_channel.d.ts",
      "/home/runner/work/corvid-types/corvid-types/node_modules/@types/node/dns.d.ts",
      "/home/runner/work/corvid-types/corvid-types/node_modules/@types/node/dns/promises.d.ts",
      "/home/runner/work/corvid-types/corvid-types/node_modules/@types/node/domain.d.ts",
      "/home/runner/work/corvid-types/corvid-types/node_modules/@types/node/events.d.ts",
      "/home/runner/work/corvid-types/corvid-types/node_modules/@types/node/fs.d.ts",
      "/home/runner/work/corvid-types/corvid-types/node_modules/@types/node/fs/promises.d.ts",
      "/home/runner/work/corvid-types/corvid-types/node_modules/@types/node/http.d.ts",
      "/home/runner/work/corvid-types/corvid-types/node_modules/@types/node/http2.d.ts",
      "/home/runner/work/corvid-types/corvid-types/node_modules/@types/node/https.d.ts",
      "/home/runner/work/corvid-types/corvid-types/node_modules/@types/node/inspector.d.ts",
      "/home/runner/work/corvid-types/corvid-types/node_modules/@types/node/module.d.ts",
      "/home/runner/work/corvid-types/corvid-types/node_modules/@types/node/net.d.ts",
      "/home/runner/work/corvid-types/corvid-types/node_modules/@types/node/os.d.ts",
      "/home/runner/work/corvid-types/corvid-types/node_modules/@types/node/path.d.ts",
      "/home/runner/work/corvid-types/corvid-types/node_modules/@types/node/perf_hooks.d.ts",
      "/home/runner/work/corvid-types/corvid-types/node_modules/@types/node/process.d.ts",
      "/home/runner/work/corvid-types/corvid-types/node_modules/@types/node/punycode.d.ts",
      "/home/runner/work/corvid-types/corvid-types/node_modules/@types/node/querystring.d.ts",
      "/home/runner/work/corvid-types/corvid-types/node_modules/@types/node/readline.d.ts",
      "/home/runner/work/corvid-types/corvid-types/node_modules/@types/node/repl.d.ts",
      "/home/runner/work/corvid-types/corvid-types/node_modules/@types/node/stream.d.ts",
      "/home/runner/work/corvid-types/corvid-types/node_modules/@types/node/stream/promises.d.ts",
      "/home/runner/work/corvid-types/corvid-types/node_modules/@types/node/stream/consumers.d.ts",
      "/home/runner/work/corvid-types/corvid-types/node_modules/@types/node/stream/web.d.ts",
      "/home/runner/work/corvid-types/corvid-types/node_modules/@types/node/string_decoder.d.ts",
      "/home/runner/work/corvid-types/corvid-types/node_modules/@types/node/test.d.ts",
      "/home/runner/work/corvid-types/corvid-types/node_modules/@types/node/timers.d.ts",
      "/home/runner/work/corvid-types/corvid-types/node_modules/@types/node/timers/promises.d.ts",
      "/home/runner/work/corvid-types/corvid-types/node_modules/@types/node/tls.d.ts",
      "/home/runner/work/corvid-types/corvid-types/node_modules/@types/node/trace_events.d.ts",
      "/home/runner/work/corvid-types/corvid-types/node_modules/@types/node/tty.d.ts",
      "/home/runner/work/corvid-types/corvid-types/node_modules/@types/node/url.d.ts",
      "/home/runner/work/corvid-types/corvid-types/node_modules/@types/node/util.d.ts",
      "/home/runner/work/corvid-types/corvid-types/node_modules/@types/node/v8.d.ts",
      "/home/runner/work/corvid-types/corvid-types/node_modules/@types/node/vm.d.ts",
      "/home/runner/work/corvid-types/corvid-types/node_modules/@types/node/wasi.d.ts",
      "/home/runner/work/corvid-types/corvid-types/node_modules/@types/node/worker_threads.d.ts",
      "/home/runner/work/corvid-types/corvid-types/node_modules/@types/node/zlib.d.ts",
      "/home/runner/work/corvid-types/corvid-types/node_modules/@types/node/globals.global.d.ts",
      "/home/runner/work/corvid-types/corvid-types/node_modules/@types/node/index.d.ts"
    ],
    "PUBLIC": [
      "/home/runner/work/corvid-types/corvid-types/types/common/anyProperties.d.ts",
      "/home/runner/work/corvid-types/corvid-types/types/common/emptyBuffer.d.ts",
      "/home/runner/work/corvid-types/corvid-types/types/common/declaration.deprecated.d.ts",
      "/home/runner/work/corvid-types/corvid-types/types/deprecated/public/$w.d.ts",
      "/home/runner/work/corvid-types/corvid-types/types/deprecated/public/index.d.ts"
    ],
    "PAGES": [
      "/home/runner/work/corvid-types/corvid-types/types/common/anyProperties.d.ts",
      "/home/runner/work/corvid-types/corvid-types/types/common/emptyBuffer.d.ts",
      "/home/runner/work/corvid-types/corvid-types/types/pages/$w.d.ts",
      "/home/runner/work/corvid-types/corvid-types/types/common/declaration.deprecated.d.ts",
      "/home/runner/work/corvid-types/corvid-types/types/deprecated/pages/index.d.ts"
    ],
    "TARGET_ES": [
      "/home/runner/work/corvid-types/corvid-types/node_modules/typescript/lib/lib.es5.d.ts",
      "/home/runner/work/corvid-types/corvid-types/node_modules/typescript/lib/lib.es2015.d.ts",
      "/home/runner/work/corvid-types/corvid-types/node_modules/typescript/lib/lib.es2016.d.ts",
      "/home/runner/work/corvid-types/corvid-types/node_modules/typescript/lib/lib.es2017.d.ts",
      "/home/runner/work/corvid-types/corvid-types/node_modules/typescript/lib/lib.es2018.d.ts",
      "/home/runner/work/corvid-types/corvid-types/node_modules/typescript/lib/lib.es2019.d.ts",
      "/home/runner/work/corvid-types/corvid-types/node_modules/typescript/lib/lib.es2020.d.ts",
      "/home/runner/work/corvid-types/corvid-types/node_modules/typescript/lib/lib.es2015.core.d.ts",
      "/home/runner/work/corvid-types/corvid-types/node_modules/typescript/lib/lib.es2015.collection.d.ts",
      "/home/runner/work/corvid-types/corvid-types/node_modules/typescript/lib/lib.es2015.generator.d.ts",
      "/home/runner/work/corvid-types/corvid-types/node_modules/typescript/lib/lib.es2015.iterable.d.ts",
      "/home/runner/work/corvid-types/corvid-types/node_modules/typescript/lib/lib.es2015.promise.d.ts",
      "/home/runner/work/corvid-types/corvid-types/node_modules/typescript/lib/lib.es2015.proxy.d.ts",
      "/home/runner/work/corvid-types/corvid-types/node_modules/typescript/lib/lib.es2015.reflect.d.ts",
      "/home/runner/work/corvid-types/corvid-types/node_modules/typescript/lib/lib.es2015.symbol.d.ts",
      "/home/runner/work/corvid-types/corvid-types/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts",
      "/home/runner/work/corvid-types/corvid-types/node_modules/typescript/lib/lib.es2016.array.include.d.ts",
      "/home/runner/work/corvid-types/corvid-types/node_modules/typescript/lib/lib.es2017.object.d.ts",
      "/home/runner/work/corvid-types/corvid-types/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts",
      "/home/runner/work/corvid-types/corvid-types/node_modules/typescript/lib/lib.es2017.string.d.ts",
      "/home/runner/work/corvid-types/corvid-types/node_modules/typescript/lib/lib.es2017.intl.d.ts",
      "/home/runner/work/corvid-types/corvid-types/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts",
      "/home/runner/work/corvid-types/corvid-types/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts",
      "/home/runner/work/corvid-types/corvid-types/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts",
      "/home/runner/work/corvid-types/corvid-types/node_modules/typescript/lib/lib.es2018.intl.d.ts",
      "/home/runner/work/corvid-types/corvid-types/node_modules/typescript/lib/lib.es2018.promise.d.ts",
      "/home/runner/work/corvid-types/corvid-types/node_modules/typescript/lib/lib.es2018.regexp.d.ts",
      "/home/runner/work/corvid-types/corvid-types/node_modules/typescript/lib/lib.es2019.array.d.ts",
      "/home/runner/work/corvid-types/corvid-types/node_modules/typescript/lib/lib.es2019.object.d.ts",
      "/home/runner/work/corvid-types/corvid-types/node_modules/typescript/lib/lib.es2019.string.d.ts",
      "/home/runner/work/corvid-types/corvid-types/node_modules/typescript/lib/lib.es2019.symbol.d.ts",
      "/home/runner/work/corvid-types/corvid-types/node_modules/typescript/lib/lib.es2019.intl.d.ts",
      "/home/runner/work/corvid-types/corvid-types/node_modules/typescript/lib/lib.es2020.bigint.d.ts",
      "/home/runner/work/corvid-types/corvid-types/node_modules/typescript/lib/lib.es2020.date.d.ts",
      "/home/runner/work/corvid-types/corvid-types/node_modules/typescript/lib/lib.es2020.promise.d.ts",
      "/home/runner/work/corvid-types/corvid-types/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts",
      "/home/runner/work/corvid-types/corvid-types/node_modules/typescript/lib/lib.es2020.string.d.ts",
      "/home/runner/work/corvid-types/corvid-types/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts",
      "/home/runner/work/corvid-types/corvid-types/node_modules/typescript/lib/lib.es2020.intl.d.ts",
      "/home/runner/work/corvid-types/corvid-types/node_modules/typescript/lib/lib.es2020.number.d.ts"
    ],
    "WEB_WORKER": [
      "/home/runner/work/corvid-types/corvid-types/node_modules/typescript/lib/lib.webworker.d.ts"
    ]
  }
}