/** * An experience is a feature or content module within a product, such as a chat, course, or custom app. */ export interface Experience { /** The app that powers this experience, defining its interface and behavior. */ app: Experience.App; /** The company that owns this experience. */ company: Experience.Company; /** The datetime the experience was created. */ created_at: string; /** The unique identifier for the experience. */ id: string; /** The custom logo image for this experience. Null if no custom logo has been uploaded. */ image: Experience.Image | null; /** Whether this experience is publicly visible to all users, including those without a membership. */ is_public: boolean; /** The display name of this experience shown to users in the product navigation. Maximum 255 characters. */ name: string; /** The sort position of this experience within its section. Lower values appear first. Null if no position has been set. */ order: string | null; /** The list of products this experience is attached to, which determines which customers have access. Empty if the experience is only visible to authorized company team members. */ products: Experience.Products.Item[]; } export declare namespace Experience { /** * The app that powers this experience, defining its interface and behavior. */ interface App { /** The icon image for this app, displayed on the app store, product pages, checkout, and as the default icon for experiences using this app. */ icon: App.Icon | null; /** The unique identifier for the app. */ id: string; /** The display name of this app shown on the app store and in experience navigation. Maximum 30 characters. */ name: string; } namespace App { /** * The icon image for this app, displayed on the app store, product pages, checkout, and as the default icon for experiences using this app. */ interface Icon { /** A pre-optimized URL for rendering this attachment on the client. This should be used for displaying attachments in apps. */ url: string | null; } } /** * The company that owns this experience. */ interface Company { /** The unique identifier for the company. */ id: string; /** URL slug for the account's store page, e.g. `pickaxe` in whop.com/pickaxe. */ route: string; /** The display name of the company shown to customers. */ title: string; } /** * The custom logo image for this experience. Null if no custom logo has been uploaded. */ interface Image { /** A pre-optimized URL for rendering this attachment on the client. This should be used for displaying attachments in apps. */ url: string | null; } type Products = Products.Item[]; namespace Products { /** * A product is a digital good or service sold on Whop. Products contain plans for pricing and experiences for content delivery. */ interface Item { /** The unique identifier for the product. */ id: string; /** URL slug in the product's public link, e.g. `pickaxe-analytics` in whop.com/company/pickaxe-analytics. */ route: string; /** The display name of the product shown to customers on the product page and in search results. */ title: string; } } }