import type * as Whop from "../../../../index.js"; /** * @example * { * experience_id: "exp_xxxxxxxxxxxxxx" * } */ export interface CreateForumPostsRequest { /** The unique identifier of the company whose public forum to post in. Required when experience_id is 'public'. For example, 'biz_xxxxx'. */ account_id?: string | null; /** A list of file attachments to include with the post, such as images or videos. */ attachments?: CreateForumPostsRequest.Attachments.Item[] | null; /** The main body of the post in Markdown format. For example, 'Check out this **update**'. Hidden if the post is paywalled and the viewer has not purchased access. */ content?: string | null; /** The unique identifier of the experience to create this post in. For example, 'exp_xxxxx'. Pass 'public' along with account_id to automatically use the account's public forum. */ experience_id: string; /** Whether to send this post as a mention notification to all users in the experience who have mentions enabled. */ is_mention?: boolean | null; /** The unique identifier of the parent post to comment on. Omit this field to create a top-level post. */ parent_id?: string | null; /** The price to unlock this post in the specified paywall currency. For example, 5.00 for $5.00. When set, users must purchase access to view the post content. */ paywall_amount?: number | null; /** The currency for the paywall price on this post. When set along with paywall_amount, users must purchase access to view the post content. */ paywall_currency?: Whop.Currencies | null; /** Whether this post should be pinned to the top of the forum. */ pinned?: boolean | null; /** A poll to attach to this post, allowing members to vote on options. */ poll?: CreateForumPostsRequest.Poll | null; /** The rich content of the post in Tiptap JSON format. When provided, takes priority over the markdown content field for rendering. */ rich_content?: string | null; /** The title of the post, displayed prominently at the top. Required for paywalled posts as it remains visible to non-purchasers. */ title?: string | null; /** Controls who can see this forum post, such as members only or public. */ visibility?: Whop.ForumPostVisibilityTypes | null; } export declare namespace CreateForumPostsRequest { type Attachments = Attachments.Item[]; namespace Attachments { /** * Input for an attachment */ interface Item { /** The ID of an existing file object. */ id: string; } } /** * A poll to attach to this post, allowing members to vote on options. */ interface Poll { /** The options for the poll. Must have sequential IDs starting from 1 */ options: Poll.Options.Item[]; } namespace Poll { type Options = Options.Item[]; namespace Options { /** * Input type for a single poll option */ interface Item { /** Sequential ID for the poll option (starting from '1') */ id: string; /** The text of the poll option */ text: string; } } } }