export interface Post { /** * Post ID. * @readonly */ id?: string; /** Post title. */ title?: string; /** * Post excerpt. * Can be selected by a site contributor. By default, it is extracted from the content text's first characters. * * Max: 500 characters */ excerpt?: string; /** * The post's content in plain text. * @readonly */ contentText?: string | null; /** Date the post was first published. */ firstPublishedDate?: Date | null; /** * Date the post was last published. * @readonly */ lastPublishedDate?: Date | null; /** Post URL. */ url?: PageUrl; /** Post slug. For example, `'post-slug'`. */ slug?: string; /** Whether the post is marked as featured. */ featured?: boolean; /** Whether the post is pinned. If `true`, the post is placed at the top of the post list. */ pinned?: boolean; /** [Category IDs](https://dev.wix.com/docs/rest/business-solutions/blog/category/introduction) of the post. */ categoryIds?: string[]; /** * __Deprecated.__ Use `media` instead. * This property will be removed on June 30, 2023. * * Post cover media. * @deprecated * @replacedBy media * @targetRemovalDate 2024-06-30 */ coverMedia?: CoverMedia; /** Post owner's [member ID](https://dev.wix.com/api/rest/members). */ memberId?: string; /** * Hashtags in the post. * @readonly */ hashtags?: string[]; /** Whether commenting on the post is enabled. */ commentingEnabled?: boolean; /** Estimated reading time (calculated automatically). */ minutesToRead?: number; /** Image placed at the top of the blog page. */ heroImage?: Image; /** * IDs of [tags](https://dev.wix.com/docs/rest/business-solutions/blog/tags) the post is tagged with. * @readonly */ tagIds?: string[]; /** * IDs of posts related to the post. * @readonly */ relatedPostIds?: string[]; /** * [Pricing plan IDs](https://dev.wix.com/api/rest/wix-pricing-plans). Only relevant if a post is assigned to a specific pricing plan. * @readonly */ pricingPlanIds?: string[]; /** ID of the translations of this post. All translations of a single post share the same `translationId`. */ translationId?: string | null; /** * Language the post is written in. * * 2-or-4-letter language code in [IETF BCP 47 language tag](https://en.wikipedia.org/wiki/IETF_language_tag) format. */ language?: string | null; /** SEO data. */ seoData?: SeoSchema; /** * Reserved for internal use. * @readonly */ content?: string | null; /** Post owner's [contact ID](https://dev.wix.com/api/rest/contacts). */ contactId?: string | null; /** * Post rich content * * * See Ricos document reference * * @readonly */ richContent?: RichContent; /** * Whether the returned content is a preview of premium content. Defaults to `false`. * A preview displays a limited number of paragraphs of paid content to non-subscribed users. * @readonly */ preview?: boolean; /** Reserved for internal use. */ contentId?: string | null; /** * Reserved for internal use. * @readonly */ mostRecentContributorId?: string | null; /** * 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). * @readonly */ moderationDetails?: ModerationDetails; /** Post cover media. */ media?: Media; /** * Indicates if there is a draft post with changes that have not yet been published. * @readonly */ hasUnpublishedChanges?: boolean; /** * Post reference ID. You can reference the post from other entities, for example, comments. * @readonly */ referenceId?: string | null; } export interface PageUrl { /** The base URL. For premium sites, this is the domain. For free sites, this is the site URL. For example, `mysite.wixsite.com/mysite`. */ base?: string; /** The relative path for the page within the site. For example, `/product-page/a-product`. */ path?: string; } export interface CoverMedia extends CoverMediaMediaOneOf { /** Image url. */ image?: Image; /** Video url. */ video?: Video; /** * Is cover media enabled. * Selected by user whether to display cover media on the feed * @deprecated Is cover media enabled. * Selected by user whether to display cover media on the feed * @replacedBy displayed * @targetRemovalDate 2024-06-30 */ enabled?: boolean; /** Whether cover media is displayed. */ displayed?: boolean; /** Whether cover media is custom. If `false` the cover image is set to the first media item that appears in the content. */ custom?: boolean; /** Media alternative text. */ altText?: string | null; } /** @oneof */ export interface CoverMediaMediaOneOf { /** Image url. */ image?: Image; /** Video url. */ video?: Video; } export interface Image { /** WixMedia image ID. */ id?: string; /** Image URL. */ url?: string; /** * Original image height. * @readonly */ height?: number; /** * Original image width. * @readonly */ width?: number; /** Image alt text. */ altText?: string | null; /** * Image filename. * @readonly */ filename?: string | null; } export interface FocalPoint { /** X-coordinate of the focal point. */ x?: number; /** Y-coordinate of the focal point. */ y?: number; /** crop by height */ height?: number | null; /** crop by width */ width?: number | null; } /** Deprecated - use VideoV2 */ export interface Video { /** WixMedia ID */ id?: string; /** URL of video */ url?: string; /** * Original image height * @readonly */ height?: number; /** * Original image width * @readonly */ width?: number; /** Video poster */ thumbnail?: Image; } export interface PostCountInfo { /** * Total number of post comments * @readonly */ comments?: number; /** * Total number of post likes * @readonly */ likes?: number; /** * Total number of post views * @readonly */ views?: number; } export interface Metrics { /** * Total number of post comments. * @readonly */ comments?: number; /** * Total number of post likes. * @readonly */ likes?: number; /** * Total number of post views. * @readonly */ views?: number; } /** * The SEO schema object contains data about different types of meta tags. It makes sure that the information about your page is presented properly to search engines. * The search engines use this information for ranking purposes, or to display snippets in the search results. * This data will override other sources of tags (for example patterns) and will be included in the section of the HTML document, while not being displayed on the page itself. */ export interface SeoSchema { /** SEO tag information. */ tags?: Tag[]; /** SEO general settings. */ settings?: Settings; } export interface Keyword { /** Keyword value. */ term?: string; /** Whether the keyword is the main focus keyword. */ isMain?: boolean; /** The source that added the keyword terms to the SEO settings. */ origin?: string | null; } export interface Tag { /** * SEO tag type. * * * Supported values: `title`, `meta`, `script`, `link`. */ type?: string; /** * A `{"key": "value"}` pair object where each SEO tag property (`"name"`, `"content"`, `"rel"`, `"href"`) contains a value. * For example: `{"name": "description", "content": "the description itself"}`. */ props?: Record | null; /** SEO tag meta data. For example, `{"height": 300, "width": 240}`. */ meta?: Record | null; /** SEO tag inner content. For example, ` inner content `. */ children?: string; /** Whether the tag is a custom tag. */ custom?: boolean; /** Whether the tag is disabled. */ disabled?: boolean; } export interface Settings { /** * Whether the Auto Redirect feature, which creates `301 redirects` on a slug change, is enabled. * * * Default: `false` (Auto Redirect is enabled.) */ preventAutoRedirect?: boolean; /** User-selected keyword terms for a specific page. */ keywords?: Keyword[]; } export interface RichContent { /** Node objects representing a rich content document. */ nodes?: Node[]; /** Object metadata. */ metadata?: Metadata; /** Global styling for header, paragraph, block quote, and code block nodes in the object. */ documentStyle?: DocumentStyle; } export interface Node extends NodeDataOneOf { /** Data for a button node. */ buttonData?: ButtonData; /** Data for a code block node. */ codeBlockData?: CodeBlockData; /** Data for a divider node. */ dividerData?: DividerData; /** Data for a file node. */ fileData?: FileData; /** Data for a gallery node. */ galleryData?: GalleryData; /** Data for a GIF node. */ gifData?: GIFData; /** Data for a heading node. */ headingData?: HeadingData; /** Data for an embedded HTML node. */ htmlData?: HTMLData; /** Data for an image node. */ imageData?: ImageData; /** Data for a link preview node. */ linkPreviewData?: LinkPreviewData; /** @deprecated */ mapData?: MapData; /** Data for a paragraph node. */ paragraphData?: ParagraphData; /** Data for a poll node. */ pollData?: PollData; /** Data for a text node. Used to apply decorations to text. */ textData?: TextData; /** Data for an app embed node. */ appEmbedData?: AppEmbedData; /** Data for a video node. */ videoData?: VideoData; /** Data for an oEmbed node. */ embedData?: EmbedData; /** Data for a collapsible list node. */ collapsibleListData?: CollapsibleListData; /** Data for a table node. */ tableData?: TableData; /** Data for a table cell node. */ tableCellData?: TableCellData; /** Data for a custom external node. */ externalData?: Record | null; /** Data for an audio node. */ audioData?: AudioData; /** Data for an ordered list node. */ orderedListData?: OrderedListData; /** Data for a bulleted list node. */ bulletedListData?: BulletedListData; /** Data for a block quote node. */ blockquoteData?: BlockquoteData; /** Data for a caption node. */ captionData?: CaptionData; /** LayoutData layout_data = 31; // Data for a layout node. Reserved for future use. */ layoutCellData?: LayoutCellData; /** 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. */ type?: NodeType; /** Node ID. */ id?: string; /** A list of child nodes. */ nodes?: Node[]; /** Padding and background color styling for the node. */ style?: NodeStyle; } /** @oneof */ export interface NodeDataOneOf { /** Data for a button node. */ buttonData?: ButtonData; /** Data for a code block node. */ codeBlockData?: CodeBlockData; /** Data for a divider node. */ dividerData?: DividerData; /** Data for a file node. */ fileData?: FileData; /** Data for a gallery node. */ galleryData?: GalleryData; /** Data for a GIF node. */ gifData?: GIFData; /** Data for a heading node. */ headingData?: HeadingData; /** Data for an embedded HTML node. */ htmlData?: HTMLData; /** Data for an image node. */ imageData?: ImageData; /** Data for a link preview node. */ linkPreviewData?: LinkPreviewData; /** @deprecated */ mapData?: MapData; /** Data for a paragraph node. */ paragraphData?: ParagraphData; /** Data for a poll node. */ pollData?: PollData; /** Data for a text node. Used to apply decorations to text. */ textData?: TextData; /** Data for an app embed node. */ appEmbedData?: AppEmbedData; /** Data for a video node. */ videoData?: VideoData; /** Data for an oEmbed node. */ embedData?: EmbedData; /** Data for a collapsible list node. */ collapsibleListData?: CollapsibleListData; /** Data for a table node. */ tableData?: TableData; /** Data for a table cell node. */ tableCellData?: TableCellData; /** Data for a custom external node. */ externalData?: Record | null; /** Data for an audio node. */ audioData?: AudioData; /** Data for an ordered list node. */ orderedListData?: OrderedListData; /** Data for a bulleted list node. */ bulletedListData?: BulletedListData; /** Data for a block quote node. */ blockquoteData?: BlockquoteData; /** Data for a caption node. */ captionData?: CaptionData; /** LayoutData layout_data = 31; // Data for a layout node. Reserved for future use. */ layoutCellData?: LayoutCellData; } export declare enum NodeType { PARAGRAPH = "PARAGRAPH", TEXT = "TEXT", HEADING = "HEADING", BULLETED_LIST = "BULLETED_LIST", ORDERED_LIST = "ORDERED_LIST", LIST_ITEM = "LIST_ITEM", BLOCKQUOTE = "BLOCKQUOTE", CODE_BLOCK = "CODE_BLOCK", VIDEO = "VIDEO", DIVIDER = "DIVIDER", FILE = "FILE", GALLERY = "GALLERY", GIF = "GIF", HTML = "HTML", IMAGE = "IMAGE", LINK_PREVIEW = "LINK_PREVIEW", /** @deprecated */ MAP = "MAP", POLL = "POLL", APP_EMBED = "APP_EMBED", BUTTON = "BUTTON", COLLAPSIBLE_LIST = "COLLAPSIBLE_LIST", TABLE = "TABLE", EMBED = "EMBED", COLLAPSIBLE_ITEM = "COLLAPSIBLE_ITEM", COLLAPSIBLE_ITEM_TITLE = "COLLAPSIBLE_ITEM_TITLE", COLLAPSIBLE_ITEM_BODY = "COLLAPSIBLE_ITEM_BODY", TABLE_CELL = "TABLE_CELL", TABLE_ROW = "TABLE_ROW", EXTERNAL = "EXTERNAL", AUDIO = "AUDIO", CAPTION = "CAPTION", LAYOUT = "LAYOUT", LAYOUT_CELL = "LAYOUT_CELL" } export interface NodeStyle { /** The top padding value in pixels. */ paddingTop?: string | null; /** The bottom padding value in pixels. */ paddingBottom?: string | null; /** The background color as a hexadecimal value. */ backgroundColor?: string | null; } export interface ButtonData { /** Styling for the button's container. */ containerData?: PluginContainerData; /** The button type. */ type?: Type; /** Styling for the button. */ styles?: Styles; /** The text to display on the button. */ text?: string | null; /** Button link details. */ link?: Link; } export interface Border { /** Border width in pixels. */ width?: number | null; /** Border radius in pixels. */ radius?: number | null; } export interface Colors { /** The text color as a hexadecimal value. */ text?: string | null; /** The border color as a hexadecimal value. */ border?: string | null; /** The background color as a hexadecimal value. */ background?: string | null; } export interface PluginContainerData { /** The width of the node when it's displayed. */ width?: PluginContainerDataWidth; /** The node's alignment within its container. */ alignment?: PluginContainerDataAlignment; /** Spoiler cover settings for the node. */ spoiler?: Spoiler; /** The height of the node when it's displayed. */ height?: Height; /** 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. Defaults to `true` for all node types except 'DIVIVDER' where it defaults to `false`. */ textWrap?: boolean | null; } export declare enum WidthType { /** Width matches the content width */ CONTENT = "CONTENT", /** Small Width */ SMALL = "SMALL", /** Width will match the original asset width */ ORIGINAL = "ORIGINAL", /** coast-to-coast display */ FULL_WIDTH = "FULL_WIDTH" } export interface PluginContainerDataWidth extends PluginContainerDataWidthDataOneOf { /** * One of the following predefined width options: * `CONTENT`: The width of the container matches the content width. * `SMALL`: A small width. * `ORIGINAL`: For `imageData` containers only. The width of the container matches the original image width. * `FULL_WIDTH`: For `imageData` containers only. The image container takes up the full width of the screen. */ size?: WidthType; /** A custom width value in pixels. */ custom?: string | null; } /** @oneof */ export interface PluginContainerDataWidthDataOneOf { /** * One of the following predefined width options: * `CONTENT`: The width of the container matches the content width. * `SMALL`: A small width. * `ORIGINAL`: For `imageData` containers only. The width of the container matches the original image width. * `FULL_WIDTH`: For `imageData` containers only. The image container takes up the full width of the screen. */ size?: WidthType; /** A custom width value in pixels. */ custom?: string | null; } export declare enum PluginContainerDataAlignment { /** Center Alignment */ CENTER = "CENTER", /** Left Alignment */ LEFT = "LEFT", /** Right Alignment */ RIGHT = "RIGHT" } export interface Spoiler { /** Sets whether the spoiler cover is enabled for this node. Defaults to `false`. */ enabled?: boolean | null; /** The description displayed on top of the spoiler cover. */ description?: string | null; /** The text for the button used to remove the spoiler cover. */ buttonText?: string | null; } export interface Height { /** A custom height value in pixels. */ custom?: string | null; } export declare enum Type { /** Regular link button */ LINK = "LINK", /** Triggers custom action that is defined in plugin configuration by the consumer */ ACTION = "ACTION" } export interface Styles { /** Border attributes. */ border?: Border; /** Color attributes. */ colors?: Colors; } export interface Link extends LinkDataOneOf { /** The absolute URL for the linked document. */ url?: string; /** The target node's ID. Used for linking to another node in this object. */ anchor?: string; /** * he HTML `target` attribute value for the link. This property defines where the linked document opens as follows: * `SELF` - Default. Opens the linked document in the same frame as the link. * `BLANK` - Opens the linked document in a new browser tab or window. * `PARENT` - Opens the linked document in the link's parent frame. * `TOP` - Opens the linked document in the full body of the link's browser tab or window. */ target?: Target; /** The HTML `rel` attribute value for the link. This object specifies the relationship between the current document and the linked document. */ rel?: Rel; /** A serialized object used for a custom or external link panel. */ customData?: string | null; } /** @oneof */ export interface LinkDataOneOf { /** The absolute URL for the linked document. */ url?: string; /** The target node's ID. Used for linking to another node in this object. */ anchor?: string; } export declare enum Target { /** Opens the linked document in the same frame as it was clicked (this is default) */ SELF = "SELF", /** Opens the linked document in a new window or tab */ BLANK = "BLANK", /** Opens the linked document in the parent frame */ PARENT = "PARENT", /** Opens the linked document in the full body of the window */ TOP = "TOP" } export interface Rel { /** Indicates to search engine crawlers not to follow the link. Defaults to `false`. */ nofollow?: boolean | null; /** Indicates to search engine crawlers that the link is a paid placement such as sponsored content or an advertisement. Defaults to `false`. */ sponsored?: boolean | null; /** 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. Defaults to `false`. */ ugc?: boolean | null; /** Indicates that this link protect referral information from being passed to the target website. */ noreferrer?: boolean | null; } export interface CodeBlockData { /** Styling for the code block's text. */ textStyle?: TextStyle; } export interface TextStyle { /** Text alignment. Defaults to `AUTO`. */ textAlignment?: TextAlignment; /** A CSS `line-height` value for the text expressed as a ratio relative to the font size. For example, if the font size is 20px, a `lineHeight` value of `'1.5'`` results in a line height of 30px. */ lineHeight?: string | null; } export declare enum TextAlignment { /** browser default, eqivalent to `initial` */ AUTO = "AUTO", /** Left align */ LEFT = "LEFT", /** Right align */ RIGHT = "RIGHT", /** Center align */ CENTER = "CENTER", /** Text is spaced to line up its left and right edges to the left and right edges of the line box, except for the last line */ JUSTIFY = "JUSTIFY" } export interface DividerData { /** Styling for the divider's container. */ containerData?: PluginContainerData; /** Divider line style. */ lineStyle?: LineStyle; /** Divider width. */ width?: Width; /** Divider alignment. */ alignment?: Alignment; } export declare enum LineStyle { /** Single Line */ SINGLE = "SINGLE", /** Double Line */ DOUBLE = "DOUBLE", /** Dashed Line */ DASHED = "DASHED", /** Dotted Line */ DOTTED = "DOTTED" } export declare enum Width { /** Large line */ LARGE = "LARGE", /** Medium line */ MEDIUM = "MEDIUM", /** Small line */ SMALL = "SMALL" } export declare enum Alignment { /** Center alignment */ CENTER = "CENTER", /** Left alignment */ LEFT = "LEFT", /** Right alignment */ RIGHT = "RIGHT" } export interface FileData { /** Styling for the file's container. */ containerData?: PluginContainerData; /** The source for the file's data. */ src?: FileSource; /** File name. */ name?: string | null; /** File type. */ type?: string | null; /** * Use `sizeInKb` instead. * @deprecated */ size?: number | null; /** Settings for PDF files. */ pdfSettings?: PDFSettings; /** File MIME type. */ mimeType?: string | null; /** File path. */ path?: string | null; /** File size in KB. */ sizeInKb?: string | null; } export declare enum ViewMode { /** No PDF view */ NONE = "NONE", /** Full PDF view */ FULL = "FULL", /** Mini PDF view */ MINI = "MINI" } export interface FileSource extends FileSourceDataOneOf { /** The absolute URL for the file's source. */ url?: string | null; /** * Custom ID. Use `id` instead. * @deprecated */ custom?: string | null; /** An ID that's resolved to a URL by a resolver function. */ id?: string | null; /** Indicates whether the file's source is private. Defaults to `false`. */ private?: boolean | null; } /** @oneof */ export interface FileSourceDataOneOf { /** The absolute URL for the file's source. */ url?: string | null; /** * Custom ID. Use `id` instead. * @deprecated */ custom?: string | null; /** An ID that's resolved to a URL by a resolver function. */ id?: string | null; } export interface PDFSettings { /** * PDF view mode. One of the following: * `NONE` : The PDF isn't displayed. * `FULL` : A full page view of the PDF is displayed. * `MINI` : A mini view of the PDF is displayed. */ viewMode?: ViewMode; /** Sets whether the PDF download button is disabled. Defaults to `false`. */ disableDownload?: boolean | null; /** Sets whether the PDF print button is disabled. Defaults to `false`. */ disablePrint?: boolean | null; } export interface GalleryData { /** Styling for the gallery's container. */ containerData?: PluginContainerData; /** The items in the gallery. */ items?: Item[]; /** Options for defining the gallery's appearance. */ options?: GalleryOptions; /** Sets whether the gallery's expand button is disabled. Defaults to `false`. */ disableExpand?: boolean | null; /** Sets whether the gallery's download button is disabled. Defaults to `false`. */ disableDownload?: boolean | null; } export interface V1Media { /** The source for the media's data. */ src?: FileSource; /** Media width in pixels. */ width?: number | null; /** Media height in pixels. */ height?: number | null; /** Media duration in seconds. Only relevant for audio and video files. */ duration?: number | null; } export interface ItemImage { /** Image file details. */ media?: V1Media; /** Link details for images that are links. */ link?: Link; } export interface ItemVideo { /** Video file details. */ media?: V1Media; /** Video thumbnail file details. */ thumbnail?: V1Media; } export interface Item extends ItemDataOneOf { /** An image item. */ image?: ItemImage; /** A video item. */ video?: ItemVideo; /** Item title. */ title?: string | null; /** Item's alternative text. */ altText?: string | null; } /** @oneof */ export interface ItemDataOneOf { /** An image item. */ image?: ItemImage; /** A video item. */ video?: ItemVideo; } export interface GalleryOptions { /** Gallery layout. */ layout?: Layout; /** Styling for gallery items. */ item?: ItemStyle; /** Styling for gallery thumbnail images. */ thumbnails?: Thumbnails; } export declare enum LayoutType { /** Collage type */ COLLAGE = "COLLAGE", /** Masonry type */ MASONRY = "MASONRY", /** Grid type */ GRID = "GRID", /** Thumbnail type */ THUMBNAIL = "THUMBNAIL", /** Slider type */ SLIDER = "SLIDER", /** Slideshow type */ SLIDESHOW = "SLIDESHOW", /** Panorama type */ PANORAMA = "PANORAMA", /** Column type */ COLUMN = "COLUMN", /** Magic type */ MAGIC = "MAGIC", /** Fullsize images type */ FULLSIZE = "FULLSIZE" } export declare enum Orientation { /** Rows Orientation */ ROWS = "ROWS", /** Columns Orientation */ COLUMNS = "COLUMNS" } export declare enum Crop { /** Crop to fill */ FILL = "FILL", /** Crop to fit */ FIT = "FIT" } export declare enum ThumbnailsAlignment { /** Top alignment */ TOP = "TOP", /** Right alignment */ RIGHT = "RIGHT", /** Bottom alignment */ BOTTOM = "BOTTOM", /** Left alignment */ LEFT = "LEFT", /** No thumbnail */ NONE = "NONE" } export interface Layout { /** Gallery layout type. */ type?: LayoutType; /** Sets whether horizontal scroll is enabled. Defaults to `true` unless the layout `type` is set to `GRID` or `COLLAGE`. */ horizontalScroll?: boolean | null; /** Gallery orientation. */ orientation?: Orientation; /** The number of columns to display on full size screens. */ numberOfColumns?: number | null; /** The number of columns to display on mobile screens. */ mobileNumberOfColumns?: number | null; } export interface ItemStyle { /** Desirable dimension for each item in pixels (behvaior changes according to gallery type) */ targetSize?: number | null; /** Item ratio */ ratio?: number | null; /** Sets how item images are cropped. */ crop?: Crop; /** The spacing between items in pixels. */ spacing?: number | null; } export interface Thumbnails { /** Thumbnail alignment. */ placement?: ThumbnailsAlignment; /** Spacing between thumbnails in pixels. */ spacing?: number | null; } export interface GIFData { /** Styling for the GIF's container. */ containerData?: PluginContainerData; /** The source of the full size GIF. */ original?: GIF; /** The source of the downsized GIF. */ downsized?: GIF; /** Height in pixels. */ height?: number; /** Width in pixels. */ width?: number; } export interface GIF { /** GIF format URL. */ gif?: string | null; /** MP4 format URL. */ mp4?: string | null; /** Thumbnail URL. */ still?: string | null; } export interface HeadingData { /** Heading level from 1-6. */ level?: number; /** Styling for the heading text. */ textStyle?: TextStyle; /** Indentation level from 1-4. */ indentation?: number | null; } export interface HTMLData extends HTMLDataDataOneOf { /** The URL for the HTML code for the node. */ url?: string; /** The HTML code for the node. */ html?: string; /** * Whether this is an AdSense element. Use `source` instead. * @deprecated */ isAdsense?: boolean | null; /** Styling for the HTML node's container. */ containerData?: PluginContainerData; /** The type of HTML code. */ source?: Source; } /** @oneof */ export interface HTMLDataDataOneOf { /** The URL for the HTML code for the node. */ url?: string; /** The HTML code for the node. */ html?: string; /** * Whether this is an AdSense element. Use `source` instead. * @deprecated */ isAdsense?: boolean | null; } export declare enum Source { HTML = "HTML", ADSENSE = "ADSENSE" } export interface ImageData { /** Styling for the image's container. */ containerData?: PluginContainerData; /** Image file details. */ image?: V1Media; /** Link details for images that are links. */ link?: Link; /** Sets whether the image expands to full screen when clicked. Defaults to `false`. */ disableExpand?: boolean | null; /** Image's alternative text. */ altText?: string | null; /** * Deprecated: use Caption node instead. * @deprecated */ caption?: string | null; /** Sets whether the image's download button is disabled. Defaults to `false`. */ disableDownload?: boolean | null; } export interface LinkPreviewData { /** Styling for the link preview's container. */ containerData?: PluginContainerData; /** Link details. */ link?: Link; /** Preview title. */ title?: string | null; /** Preview thumbnail URL. */ thumbnailUrl?: string | null; /** Preview description. */ description?: string | null; /** The preview content as HTML. */ html?: string | null; } export interface MapData { /** Styling for the map's container. */ containerData?: PluginContainerData; /** Map settings. */ mapSettings?: MapSettings; } export interface MapSettings { /** The address to display on the map. */ address?: string | null; /** Sets whether the map is draggable. */ draggable?: boolean | null; /** Sets whether the location marker is visible. */ marker?: boolean | null; /** Sets whether street view control is enabled. */ streetViewControl?: boolean | null; /** Sets whether zoom control is enabled. */ zoomControl?: boolean | null; /** Location latitude. */ lat?: number | null; /** Location longitude. */ lng?: number | null; /** Location name. */ locationName?: string | null; /** Sets whether view mode control is enabled. */ viewModeControl?: boolean | null; /** Initial zoom value. */ initialZoom?: number | null; /** Map type. `HYBRID` is a combination of the `ROADMAP` and `SATELLITE` map types. */ mapType?: MapType; } export declare enum MapType { /** Roadmap map type */ ROADMAP = "ROADMAP", /** Satellite map type */ SATELITE = "SATELITE", /** Hybrid map type */ HYBRID = "HYBRID", /** Terrain map type */ TERRAIN = "TERRAIN" } export interface ParagraphData { /** Styling for the paragraph text. */ textStyle?: TextStyle; /** Indentation level from 1-4. */ indentation?: number | null; /** Paragraph level */ level?: number | null; } export interface PollData { /** Styling for the poll's container. */ containerData?: PluginContainerData; /** Poll data. */ poll?: Poll; /** Layout settings for the poll and voting options. */ layout?: PollDataLayout; /** Styling for the poll and voting options. */ design?: Design; } export declare enum ViewRole { /** Only Poll creator can view the results */ CREATOR = "CREATOR", /** Anyone who voted can see the results */ VOTERS = "VOTERS", /** Anyone can see the results, even if one didn't vote */ EVERYONE = "EVERYONE" } export declare enum VoteRole { /** Logged in member */ SITE_MEMBERS = "SITE_MEMBERS", /** Anyone */ ALL = "ALL" } export interface Permissions { /** Sets who can view the poll results. */ view?: ViewRole; /** Sets who can vote. */ vote?: VoteRole; /** Sets whether one voter can vote multiple times. Defaults to `false`. */ allowMultipleVotes?: boolean | null; } export interface Option { /** Option ID. */ id?: string | null; /** Option title. */ title?: string | null; /** The image displayed with the option. */ image?: V1Media; } export interface PollSettings { /** Permissions settings for voting. */ permissions?: Permissions; /** Sets whether voters are displayed in the vote results. Defaults to `true`. */ showVoters?: boolean | null; /** Sets whether the vote count is displayed. Defaults to `true`. */ showVotesCount?: boolean | null; } export declare enum PollLayoutType { /** List */ LIST = "LIST", /** Grid */ GRID = "GRID" } export declare enum PollLayoutDirection { /** Left-to-right */ LTR = "LTR", /** Right-to-left */ RTL = "RTL" } export interface PollLayout { /** The layout for displaying the voting options. */ type?: PollLayoutType; /** The direction of the text displayed in the voting options. Text can be displayed either right-to-left or left-to-right. */ direction?: PollLayoutDirection; /** Sets whether to display the main poll image. Defaults to `false`. */ enableImage?: boolean | null; } export interface OptionLayout { /** Sets whether to display option images. Defaults to `false`. */ enableImage?: boolean | null; } export declare enum BackgroundType { /** Color background type */ COLOR = "COLOR", /** Image background type */ IMAGE = "IMAGE", /** Gradiant background type */ GRADIENT = "GRADIENT" } export interface Gradient { /** The gradient angle in degrees. */ angle?: number | null; /** The start color as a hexademical value. */ startColor?: string | null; /** The end color as a hexademical value. */ lastColor?: string | null; } export interface Background extends BackgroundBackgroundOneOf { /** The background color as a hexademical value. */ color?: string | null; /** An image to use for the background. */ image?: V1Media; /** Details for a gradient background. */ gradient?: Gradient; /** Background type. For each option, include the relevant details. */ type?: BackgroundType; } /** @oneof */ export interface BackgroundBackgroundOneOf { /** The background color as a hexademical value. */ color?: string | null; /** An image to use for the background. */ image?: V1Media; /** Details for a gradient background. */ gradient?: Gradient; } export interface PollDesign { /** Background styling. */ background?: Background; /** Border radius in pixels. */ borderRadius?: number | null; } export interface OptionDesign { /** Border radius in pixels. */ borderRadius?: number | null; } export interface Poll { /** Poll ID. */ id?: string | null; /** Poll title. */ title?: string | null; /** Poll creator ID. */ creatorId?: string | null; /** Main poll image. */ image?: V1Media; /** Voting options. */ options?: Option[]; /** The poll's permissions and display settings. */ settings?: PollSettings; } export interface PollDataLayout { /** Poll layout settings. */ poll?: PollLayout; /** Voting otpions layout settings. */ options?: OptionLayout; } export interface Design { /** Styling for the poll. */ poll?: PollDesign; /** Styling for voting options. */ options?: OptionDesign; } export interface TextData { /** The text to apply decorations to. */ text?: string; /** The decorations to apply. */ decorations?: Decoration[]; } /** Adds appearence changes to text */ export interface Decoration extends DecorationDataOneOf { /** Data for an anchor link decoration. */ anchorData?: AnchorData; /** Data for a color decoration. */ colorData?: ColorData; /** Data for an external link decoration. */ linkData?: LinkData; /** Data for a mention decoration. */ mentionData?: MentionData; /** Data for a font size decoration. */ fontSizeData?: FontSizeData; /** Font weight for a bold decoration. */ fontWeightValue?: number | null; /** Data for an italic decoration. Defaults to `true`. */ italicData?: boolean | null; /** Data for an underline decoration. Defaults to `true`. */ underlineData?: boolean | null; /** Data for a spoiler decoration. */ spoilerData?: SpoilerData; /** The type of decoration to apply. */ type?: DecorationType; } /** @oneof */ export interface DecorationDataOneOf { /** Data for an anchor link decoration. */ anchorData?: AnchorData; /** Data for a color decoration. */ colorData?: ColorData; /** Data for an external link decoration. */ linkData?: LinkData; /** Data for a mention decoration. */ mentionData?: MentionData; /** Data for a font size decoration. */ fontSizeData?: FontSizeData; /** Font weight for a bold decoration. */ fontWeightValue?: number | null; /** Data for an italic decoration. Defaults to `true`. */ italicData?: boolean | null; /** Data for an underline decoration. Defaults to `true`. */ underlineData?: boolean | null; /** Data for a spoiler decoration. */ spoilerData?: SpoilerData; } export declare enum DecorationType { BOLD = "BOLD", ITALIC = "ITALIC", UNDERLINE = "UNDERLINE", SPOILER = "SPOILER", ANCHOR = "ANCHOR", MENTION = "MENTION", LINK = "LINK", COLOR = "COLOR", FONT_SIZE = "FONT_SIZE", EXTERNAL = "EXTERNAL" } export interface AnchorData { /** The target node's ID. */ anchor?: string; } export interface ColorData { /** The text's background color as a hexadecimal value. */ background?: string | null; /** The text's foreground color as a hexadecimal value. */ foreground?: string | null; } export interface LinkData { /** Link details. */ link?: Link; } export interface MentionData { /** The mentioned user's name. */ name?: string; /** The version of the user's name that appears after the `@` character in the mention. */ slug?: string; /** Mentioned user's ID. */ id?: string | null; } export interface FontSizeData { /** The units used for the font size. */ unit?: FontType; /** Font size value. */ value?: number | null; } export declare enum FontType { PX = "PX", EM = "EM" } export interface SpoilerData { /** Spoiler ID. */ id?: string | null; } export interface AppEmbedData extends AppEmbedDataAppDataOneOf { /** Data for embedded Wix Bookings content. */ bookingData?: BookingData; /** Data for embedded Wix Events content. */ eventData?: EventData; /** The type of Wix App content being embedded. */ type?: AppType; /** The ID of the embedded content. */ itemId?: string | null; /** The name of the embedded content. */ name?: string | null; /** * Deprecated: Use `image` instead. * @deprecated */ imageSrc?: string | null; /** The URL for the embedded content. */ url?: string | null; /** An image for the embedded content. */ image?: V1Media; } /** @oneof */ export interface AppEmbedDataAppDataOneOf { /** Data for embedded Wix Bookings content. */ bookingData?: BookingData; /** Data for embedded Wix Events content. */ eventData?: EventData; } export declare enum AppType { PRODUCT = "PRODUCT", EVENT = "EVENT", BOOKING = "BOOKING" } export interface BookingData { /** Booking duration in minutes. */ durations?: string | null; } export interface EventData { /** Event schedule. */ scheduling?: string | null; /** Event location. */ location?: string | null; } export interface VideoData { /** Styling for the video's container. */ containerData?: PluginContainerData; /** Video details. */ video?: V1Media; /** Video thumbnail details. */ thumbnail?: V1Media; /** Sets whether the video's download button is disabled. Defaults to `false`. */ disableDownload?: boolean | null; /** Video title. */ title?: string | null; /** Video options. */ options?: PlaybackOptions; } export interface PlaybackOptions { /** Sets whether the media will automatically start playing. */ autoPlay?: boolean | null; /** Sets whether media's will be looped. */ playInLoop?: boolean | null; /** Sets whether media's controls will be shown. */ showControls?: boolean | null; } export interface EmbedData { /** Styling for the oEmbed node's container. */ containerData?: PluginContainerData; /** An [oEmbed](https://www.oembed.com) object. */ oembed?: Oembed; /** Origin asset source. */ src?: string | null; } export interface Oembed { /** The resource type. */ type?: string | null; /** The width of the resource specified in the `url` property in pixels. */ width?: number | null; /** The height of the resource specified in the `url` property in pixels. */ height?: number | null; /** Resource title. */ title?: string | null; /** The source URL for the resource. */ url?: string | null; /** HTML for embedding a video player. The HTML should have no padding or margins. */ html?: string | null; /** The name of the author or owner of the resource. */ authorName?: string | null; /** The URL for the author or owner of the resource. */ authorUrl?: string | null; /** The name of the resource provider. */ providerName?: string | null; /** The URL for the resource provider. */ providerUrl?: string | null; /** The URL for a thumbnail image for the resource. If this property is defined, `thumbnailWidth` and `thumbnailHeight` must also be defined. */ thumbnailUrl?: string | null; /** The width of the resource's thumbnail image. If this property is defined, `thumbnailUrl` and `thumbnailHeight` must also be defined. */ thumbnailWidth?: string | null; /** The height of the resource's thumbnail image. If this property is defined, `thumbnailUrl` and `thumbnailWidth`must also be defined. */ thumbnailHeight?: string | null; /** The URL for an embedded viedo. */ videoUrl?: string | null; /** The oEmbed version number. This value must be `1.0`. */ version?: string | null; } export interface CollapsibleListData { /** Styling for the collapsible list's container. */ containerData?: PluginContainerData; /** If `true`, only one item can be expanded at a time. Defaults to `false`. */ expandOnlyOne?: boolean | null; /** Sets which items are expanded when the page loads. */ initialExpandedItems?: InitialExpandedItems; /** The direction of the text in the list. Either left-to-right or right-to-left. */ direction?: Direction; /** If `true`, The collapsible item will appear in search results as an FAQ. */ isQapageData?: boolean | null; } export declare enum InitialExpandedItems { /** First item will be expended initally */ FIRST = "FIRST", /** All items will expended initally */ ALL = "ALL", /** All items collapsed initally */ NONE = "NONE" } export declare enum Direction { /** Left-to-right */ LTR = "LTR", /** Right-to-left */ RTL = "RTL" } export interface TableData { /** Styling for the table's container. */ containerData?: PluginContainerData; /** The table's dimensions. */ dimensions?: Dimensions; /** * Deprecated: Use `rowHeader` and `columnHeader` instead. * @deprecated */ header?: boolean | null; /** Sets whether the table's first row is a header. Defaults to `false`. */ rowHeader?: boolean | null; /** Sets whether the table's first column is a header. Defaults to `false`. */ columnHeader?: boolean | null; } export interface Dimensions { /** An array representing relative width of each column in relation to the other columns. */ colsWidthRatio?: number[]; /** An array representing the height of each row in pixels. */ rowsHeight?: number[]; /** An array representing the minimum width of each column in pixels. */ colsMinWidth?: number[]; } export interface TableCellData { /** Styling for the cell's background color and text alignment. */ cellStyle?: CellStyle; /** The cell's border colors. */ borderColors?: BorderColors; } export declare enum VerticalAlignment { /** Top alignment */ TOP = "TOP", /** Middle alignment */ MIDDLE = "MIDDLE", /** Bottom alignment */ BOTTOM = "BOTTOM" } export interface CellStyle { /** Vertical alignment for the cell's text. */ verticalAlignment?: VerticalAlignment; /** Cell background color as a hexadecimal value. */ backgroundColor?: string | null; } export interface BorderColors { /** Left border color as a hexadecimal value. */ left?: string | null; /** Right border color as a hexadecimal value. */ right?: string | null; /** Top border color as a hexadecimal value. */ top?: string | null; /** Bottom border color as a hexadecimal value. */ bottom?: string | null; } /** * `NullValue` is a singleton enumeration to represent the null value for the * `Value` type union. * * The JSON representation for `NullValue` is JSON `null`. */ export declare enum NullValue { /** Null value. */ NULL_VALUE = "NULL_VALUE" } /** * `ListValue` is a wrapper around a repeated field of values. * * The JSON representation for `ListValue` is JSON array. */ export interface ListValue { /** Repeated field of dynamically typed values. */ values?: any[]; } export interface AudioData { /** Styling for the audio node's container. */ containerData?: PluginContainerData; /** Audio file details. */ audio?: V1Media; /** Sets whether the audio node's download button is disabled. Defaults to `false`. */ disableDownload?: boolean | null; /** Cover image. */ coverImage?: V1Media; /** Track name. */ name?: string | null; /** Author name. */ authorName?: string | null; /** An HTML version of the audio node. */ html?: string | null; } export interface OrderedListData { /** Indentation level from 0-4. */ indentation?: number; /** Offset level from 0-4. */ offset?: number | null; /** List start number. */ start?: number | null; } export interface BulletedListData { /** Indentation level from 0-4. */ indentation?: number; /** Offset level from 0-4. */ offset?: number | null; } export interface BlockquoteData { /** Indentation level from 1-4. */ indentation?: number; } export interface CaptionData { textStyle?: TextStyle; } export interface LayoutCellData { /** Size of the cell in 12 columns grid. */ colSpan?: number | null; } export interface Metadata { /** Schema version. */ version?: number; /** * When the object was created. * @readonly * @deprecated */ createdTimestamp?: Date | null; /** * When the object was most recently updated. * @deprecated */ updatedTimestamp?: Date | null; /** Object ID. */ id?: string | null; } export interface DocumentStyle { /** Styling for H1 nodes. */ headerOne?: TextNodeStyle; /** Styling for H2 nodes. */ headerTwo?: TextNodeStyle; /** Styling for H3 nodes. */ headerThree?: TextNodeStyle; /** Styling for H4 nodes. */ headerFour?: TextNodeStyle; /** Styling for H5 nodes. */ headerFive?: TextNodeStyle; /** Styling for H6 nodes. */ headerSix?: TextNodeStyle; /** Styling for paragraph nodes. */ paragraph?: TextNodeStyle; /** Styling for block quote nodes. */ blockquote?: TextNodeStyle; /** Styling for code block nodes. */ codeBlock?: TextNodeStyle; } export interface TextNodeStyle { /** The decorations to apply to the node. */ decorations?: Decoration[]; /** Padding and background color for the node. */ nodeStyle?: NodeStyle; /** Line height for text in the node. */ lineHeight?: string | null; } export interface ModerationDetails { /** Member ID of the person submitting the draft post for review. */ submittedBy?: string; /** Date the post was submitted for review. */ submittedDate?: Date | null; /** Status indicating whether the submission was approved or rejected by the moderator. */ status?: ModerationStatusStatus; /** Member ID of the person who approved or rejected the post. */ moderatedBy?: string | null; /** Date the post was approved or rejected. */ moderationDate?: Date | null; } export declare enum ModerationStatusStatus { UNKNOWN = "UNKNOWN", APPROVED = "APPROVED", REJECTED = "REJECTED" } export interface Media extends MediaMediaOneOf { /** Wix Media details. */ wixMedia?: WixMedia; /** Embed media details. */ embedMedia?: EmbedMedia; /** Whether cover media is displayed. */ displayed?: boolean; /** Whether custom cover media has been specified. If `false`, the first media item in the post's content serves as cover media. */ custom?: boolean; /** Media alternative text. */ altText?: string | null; } /** @oneof */ export interface MediaMediaOneOf { /** Wix Media details. */ wixMedia?: WixMedia; /** Embed media details. */ embedMedia?: EmbedMedia; } export interface WixMedia { /** Image details. */ image?: Image; /** Video details. */ videoV2?: VideoV2; } export interface VideoV2 { /** WixMedia ID. */ id?: string; /** * Available resolutions for the video, starting with the optimal resolution. * @readonly */ resolutions?: VideoResolution[]; /** * Video filename. * @readonly */ filename?: string | null; } export interface VideoResolution { /** Video URL. */ url?: string; /** Video height. */ height?: number; /** Video width. */ width?: number; /** Video format for example, mp4, hls. */ format?: string; } export interface EmbedMedia { /** Thumbnail details. */ thumbnail?: EmbedThumbnail; /** Video details. */ video?: EmbedVideo; } export interface EmbedThumbnail { /** Thumbnail url. */ url?: string; /** Thumbnail width. */ width?: number; /** Thumbnail height. */ height?: number; } export interface EmbedVideo { /** Video url. */ url?: string; /** Video width. */ width?: number; /** Video height. */ height?: number; } export interface PostTranslation { /** Post ID. */ id?: string; /** Language the post is written in. */ language?: string | null; /** Post slug. For example, 'post-slug'. */ slug?: string | null; /** SEO data. */ seoData?: SeoSchema; /** Post URL. */ url?: PageUrl; } export interface OldBlogMigratedEvent { /** Instance id of new version of blog */ newBlogInstanceId?: string; /** Instance id of old version of blog */ oldBlogInstanceId?: string; } export interface PostCategoriesUpdated { /** ID of the post which counters were updated. */ postId?: string; /** Current categories of the post. */ categories?: string[]; /** Previous categories of the post. */ previousCategories?: string[]; } export interface PostTagsUpdated { /** ID of the post which counters were updated. */ postId?: string; /** Current tags of the post. */ tags?: string[]; /** Previous tags of the post. */ previousTags?: string[]; } export interface ScheduledPostPublished { /** ID of the scheduled post which was published. */ postId?: string; } export interface DomainEvent extends DomainEventBodyOneOf { createdEvent?: EntityCreatedEvent; updatedEvent?: EntityUpdatedEvent; deletedEvent?: EntityDeletedEvent; actionEvent?: ActionEvent; /** * Unique event ID. * Allows clients to ignore duplicate webhooks. */ id?: string; /** * Assumes actions are also always typed to an entity_type * Example: wix.stores.catalog.product, wix.bookings.session, wix.payments.transaction */ entityFqdn?: string; /** * This is top level to ease client code dispatching of messages (switch on entity_fqdn+slug) * This is although the created/updated/deleted notion is duplication of the oneof types * Example: created/updated/deleted/started/completed/email_opened */ slug?: string; /** ID of the entity associated with the event. */ entityId?: string; /** Event timestamp in [ISO-8601](https://en.wikipedia.org/wiki/ISO_8601) format and UTC time. For example: 2020-04-26T13:57:50.699Z */ eventTime?: Date | null; /** * Whether the event was triggered as a result of a privacy regulation application * (for example, GDPR). */ triggeredByAnonymizeRequest?: boolean | null; /** If present, indicates the action that triggered the event. */ originatedFrom?: string | null; /** * A sequence number defining the order of updates to the underlying entity. * For example, given that some entity was updated at 16:00 and than again at 16:01, * it is guaranteed that the sequence number of the second update is strictly higher than the first. * As the consumer, you can use this value to ensure that you handle messages in the correct order. * To do so, you will need to persist this number on your end, and compare the sequence number from the * message against the one you have stored. Given that the stored number is higher, you should ignore the message. */ entityEventSequence?: string | null; } /** @oneof */ export interface DomainEventBodyOneOf { createdEvent?: EntityCreatedEvent; updatedEvent?: EntityUpdatedEvent; deletedEvent?: EntityDeletedEvent; actionEvent?: ActionEvent; } export interface EntityCreatedEvent { entityAsJson?: string; /** Indicates the event was triggered by a restore-from-trashbin operation for a previously deleted entity */ restoreInfo?: RestoreInfo; } export interface RestoreInfo { deletedDate?: Date | null; } export interface EntityUpdatedEvent { /** * Since platformized APIs only expose PATCH and not PUT we can't assume that the fields sent from the client are the actual diff. * This means that to generate a list of changed fields (as opposed to sent fields) one needs to traverse both objects. * We don't want to impose this on all developers and so we leave this traversal to the notification recipients which need it. */ currentEntityAsJson?: string; } export interface EntityDeletedEvent { /** Entity that was deleted */ deletedEntityAsJson?: string | null; } export interface ActionEvent { bodyAsJson?: string; } export interface MessageEnvelope { /** App instance ID. */ instanceId?: string | null; /** Event type. */ eventType?: string; /** The identification type and identity data. */ identity?: IdentificationData; /** Stringify payload. */ data?: string; } export interface IdentificationData extends IdentificationDataIdOneOf { /** ID of a site visitor that has not logged in to the site. */ anonymousVisitorId?: string; /** ID of a site visitor that has logged in to the site. */ memberId?: string; /** ID of a Wix user (site owner, contributor, etc.). */ wixUserId?: string; /** ID of an app. */ appId?: string; /** @readonly */ identityType?: WebhookIdentityType; } /** @oneof */ export interface IdentificationDataIdOneOf { /** ID of a site visitor that has not logged in to the site. */ anonymousVisitorId?: string; /** ID of a site visitor that has logged in to the site. */ memberId?: string; /** ID of a Wix user (site owner, contributor, etc.). */ wixUserId?: string; /** ID of an app. */ appId?: string; } export declare enum WebhookIdentityType { UNKNOWN = "UNKNOWN", ANONYMOUS_VISITOR = "ANONYMOUS_VISITOR", MEMBER = "MEMBER", WIX_USER = "WIX_USER", APP = "APP" } export interface ConvertDraftJsToRichContentRequest { /** DraftJs content to convert to Rich content. */ content?: Record | null; } export interface ConvertDraftJsToRichContentResponse { /** Rich content converted from DraftJs content. */ richContent?: string; } export interface ConvertRichContentToDraftJsRequest { /** Rich content to convert to DraftJs content. */ richContent?: string; } export interface ConvertRichContentToDraftJsResponse { /** DraftJs content converted from Rich content. */ content?: Record | null; } export interface ListDemoPostsRequest { /** * Whether to return only featured posts. * * Default: `false` */ featured?: boolean; /** * Hashtag filter. * * Pass an array of hashtags to return only posts containing any of the provided hashtags. * If omitted, all posts with or without hashtags are returned. */ hashtags?: string[]; /** * Category filter. * * Pass an array of category IDs to return only posts with any of the provided categories. * If omitted, all posts with or without associated categories are returned. */ categoryIds?: string[]; /** * Tag filter. * * Pass an array of tag IDs to return only posts with any of the provided tags. * If omitted, all posts with or without tags are returned. */ tagIds?: string[]; /** * Sorting options. * * - `FEED`: Ordered by `firstPublishedDate` in descending order with pinned posts first. * - `VIEW_COUNT`: Ordered by total number of views in descending order. * - `LIKE_COUNT`: Ordered by total number of likes in descending order. * - `PUBLISHED_DATE_ASC`: Ordered by `firstPublishedDate` in ascending order. * - `PUBLISHED_DATE_DESC`: Ordered by `firstPublishedDate` in descending order. * - `TITLE_ASC`: Ordered by `title` in ascening order. * - `TITLE_DESC`: Ordered by `title` in descending order. * - `RATING`: reserved for internal use. * * Default: `FEED` */ sort?: GetPostsSort; /** Pagination options. */ paging?: BlogPaging; /** * __Deprecated.__ Use `fieldsets` instead. * This parameter will be removed on June 30, 2023. * * List of post fields to be included in the response. * @deprecated __Deprecated.__ Use `fieldsets` instead. * This parameter will be removed on June 30, 2023. * * List of post fields to be included in the response. * @replacedBy fieldsets * @targetRemovalDate 2024-06-30 */ fieldsToInclude?: PostFieldField[]; /** * Language filter. * * 2-or-4-letter language code in [IETF BCP 47 language tag](https://en.wikipedia.org/wiki/IETF_language_tag) format. * Pass a language to only receive posts that are in that language. * If omitted, posts in all languages are returned. */ language?: string | null; /** Post owner's member ID. */ memberId?: string | null; /** * List of additional post fields to include in the response. For example, use the `URL` fieldset to retrieve the url field in * the response in addition to the post’s base fields. Base fields don’t include any of the supported fieldset values. By default * only the post’s base fields are returned. */ fieldsets?: PostFieldField[]; } export declare enum GetPostsSort { /** Ordered by `firstPublishedDate` in descending order with pinned posts first. */ FEED = "FEED", /** Ordered by `firstPublishedDate` in ascending order. */ PUBLISHED_DATE_ASC = "PUBLISHED_DATE_ASC", /** Ordered by `firstPublishedDate` in descending order. */ PUBLISHED_DATE_DESC = "PUBLISHED_DATE_DESC", /** Ordered by total number of views in descending order. */ VIEW_COUNT = "VIEW_COUNT", /** Ordered by total number of likes in descending order. */ LIKE_COUNT = "LIKE_COUNT", /** Ordered by `title` in ascening order. */ TITLE_ASC = "TITLE_ASC", /** Ordered by `title` in descending order. */ TITLE_DESC = "TITLE_DESC" } export interface BlogPaging { /** * Number of items to skip in the current sort order. * * * Default: `0` */ offset?: number; /** * Number of items to return. * * * Default:`50` */ limit?: number; /** Pointer to the next or previous page in the list of results. */ cursor?: string | null; } export declare enum PostFieldField { UNKNOWN = "UNKNOWN", /** Includes Post url when present. */ URL = "URL", /** Includes Post content text string when present. */ CONTENT_TEXT = "CONTENT_TEXT", /** Includes Post metrics when present. */ METRICS = "METRICS", /** Includes SEO data. */ SEO = "SEO", /** Includes post owner's contact ID */ CONTACT_ID = "CONTACT_ID", /** Includes post rich content. */ RICH_CONTENT = "RICH_CONTENT", /** Includes post reference id field. */ REFERENCE_ID = "REFERENCE_ID" } export interface ListDemoPostsResponse { /** List of posts. */ posts?: Post[]; /** Details on the paged set of results returned. */ metaData?: MetaData; } export interface MetaData { /** Number of items returned in this response. */ count?: number; /** Requested offset. */ offset?: number; /** Total number of items that match the query. */ total?: number; /** Pointer to the next or previous page in the list of results. */ cursor?: string | null; } export interface ListTemplatesRequest { /** Filter post templates by given template category ids */ categoryIds?: string[]; /** Filter post templates by provided language */ language?: string | null; /** Returns post template categories when set to TRUE */ listTemplateCategories?: boolean; /** Sort order by ascending/descending publish date. Default is ascending publish date sort */ sort?: GetPostTemplatesSort; /** Pagination options. */ paging?: BlogPaging; } export declare enum GetPostTemplatesSort { /** Sort by ascending publishing date. */ PUBLISHED_DATE_ASC = "PUBLISHED_DATE_ASC", /** Sort by descending publishing date. */ PUBLISHED_DATE_DESC = "PUBLISHED_DATE_DESC" } export interface ListTemplatesResponse { /** Available post templates */ postTemplates?: Post[]; /** Details on the paged set of posts templates returned. */ postTemplatesMetaData?: MetaData; /** Post template categories. This value is returned empty unless asked explicitly */ templateCategories?: Category[]; } export interface Category { /** Category ID. */ id?: string; /** Category label. Displayed in the Category Menu. */ label?: string; /** * Number of posts in the category. * @readonly */ postCount?: number; /** * The `url` of the page that lists every post with the specified category. * @readonly */ url?: PageUrl; /** Category description. */ description?: string | null; /** * Category title. * @deprecated Category title. * @targetRemovalDate 2025-07-16 */ title?: string; /** * Position of the category in the [Category Menu](https://support.wix.com/en/article/wix-blog-adding-and-customizing-a-category-menu). * Categories are displayed in ascending order. Categories with a position of `-1` appear at the end of the sequence. * * Default: `-1` */ displayPosition?: number | null; /** ID of the category's translations. All translations of a single category share the same `translationId`. */ translationId?: string | null; /** * Category language. * * 2-or-4-letter language code in [IETF BCP 47 language tag](https://en.wikipedia.org/wiki/IETF_language_tag) format. */ language?: string | null; /** Part of a category's URL that refers to a specific category. For example, the slug of `https:/example.com/blog/category/famous-cats` is `famous-cats`. */ slug?: string; /** * Reserved for internal use. * @readonly */ internalId?: string | null; /** SEO data. */ seoData?: SeoSchema; /** Category cover image. */ coverImage?: Image; /** * Date and time the Category was last updated. * @readonly */ updatedDate?: Date | null; } export interface CategoryTranslation { /** Category ID. */ id?: string; /** Label displayed in the categories menu on the site. */ label?: string | null; /** Language of the category. */ language?: string | null; /** URL of this category page. */ url?: PageUrl; } export interface GetTemplateRequest { /** Post template id */ postTemplateId?: string; } export interface GetTemplateResponse { /** Post template */ postTemplate?: Post; } export interface CreateDraftPostFromTemplateRequest { /** Post template id */ postTemplateId?: string; } export interface CreateDraftPostFromTemplateResponse { /** Created draft post */ draftPost?: DraftPost; } export interface DraftPost { /** * Draft post ID. * @readonly */ id?: string; /** Draft post title. */ title?: string; /** * Draft post excerpt. * * If no excerpt has been manually set, an excerpt is automatically generated from the post's text. * This can be retrieved using the `GENERATED_EXCERPT` fieldset. */ excerpt?: string | null; /** Whether the draft post is marked as featured. */ featured?: boolean | null; /** Category IDs of the draft post. */ categoryIds?: string[]; /** Draft post owner's member ID. */ memberId?: string | null; /** Hashtags in the post. */ hashtags?: string[]; /** Whether commenting on the draft post is enabled. */ commentingEnabled?: boolean | null; /** * Estimated reading time of the draft post (calculated automatically). * @readonly */ minutesToRead?: number; /** Image placed at the top of the blog page. */ heroImage?: Image; /** Tag IDs the draft post is tagged with. */ tagIds?: string[]; /** IDs of posts related to this draft post. */ relatedPostIds?: string[]; /** [Pricing plan IDs](https://dev.wix.com/api/rest/wix-pricing-plans). Only relevant if a post is assigned to a specific pricing plan. */ pricingPlanIds?: string[]; /** * ID of the draft post's translations. * * All translations of a single post share the same `translationId`. * Available only if the [Multilingual](https://support.wix.com/en/article/wix-multilingual-an-overview) app is installed. */ translationId?: string | null; /** * Language the draft post is written in. * * 2-or-4-letter language code in [IETF BCP 47 language tag](https://en.wikipedia.org/wiki/IETF_language_tag) format. */ language?: string | null; /** * Reserved for internal use. * @readonly */ changeOrigin?: Origin; /** * Reserved for internal use. * @readonly */ contentId?: string | null; /** Reserved for internal use. */ editingSessionId?: string | null; /** * Draft Post rich content. * * * See Ricos document reference * */ richContent?: RichContent; /** * Status of the draft post. * @readonly */ status?: Status; /** Details of the draft post in review. Only relevant to posts submitted by guest writers. */ moderationDetails?: ModerationDetails; /** * Reserved for internal use. * @readonly */ mostRecentContributorId?: string | null; /** * Indicates if there are changes made to the draft post that have not yet been published. * @readonly */ hasUnpublishedChanges?: boolean; /** * Date the draft post was last edited. * @readonly */ editedDate?: Date | null; /** * Date the draft post is scheduled to be published. * @readonly */ scheduledPublishDate?: Date | null; /** Reserved for internal use. */ content?: Record | null; /** Date the post was first published. */ firstPublishedDate?: Date | null; /** SEO data. */ seoData?: SeoSchema; /** * Reserved for internal use. * @deprecated * @replacedBy preview_text_paragraph * @targetRemovalDate 2024-06-30 */ paidContentParagraph?: number | null; /** * Reserved for internal use. * @readonly */ slugs?: string[]; /** * Draft post URL preview. What the URL will look like once the post is published. * @readonly */ url?: PageUrl; /** * Date the draft post was first created. * @readonly */ createdDate?: Date | null; /** SEO slug. */ seoSlug?: string | null; /** Post cover media. */ media?: Media; /** Number of paragraphs to display in a paid content preview for non-paying users. */ previewTextParagraph?: number | null; /** * Reserved for internal use. * @readonly */ internalId?: string | null; } export declare enum Origin { UNKNOWN = "UNKNOWN", /** Changed by admin */ ADMIN = "ADMIN", /** Categories were changed */ ADD_CATEGORIES = "ADD_CATEGORIES", /** Saved automatically */ AUTO_SAVE = "AUTO_SAVE", /** Copied from template */ COPY_TEMPLATE = "COPY_TEMPLATE", /** Imported */ IMPORT = "IMPORT", /** Imported in bulk */ IMPORT_BULK = "IMPORT_BULK", /** Imported with html import */ IMPORT_HTML = "IMPORT_HTML", /** Patch import */ IMPORT_PATCH = "IMPORT_PATCH", /** Changed language */ LANGUAGE_CHANGE = "LANGUAGE_CHANGE", /** Saved manually */ MANUAL_SAVE = "MANUAL_SAVE", /** Affected by migration */ MIGRATION = "MIGRATION", /** Affected by moderation */ MODERATION = "MODERATION", /** Moved to trash */ MOVE_TO_TRASH = "MOVE_TO_TRASH", /** Pricing plans were changed */ PRICING_PLANS_CHANGE = "PRICING_PLANS_CHANGE", /** Was provisioned */ PROVISION = "PROVISION", /** Was published */ PUBLISH = "PUBLISH", /** Owner was reassigned */ REASSIGN_OWNER = "REASSIGN_OWNER", /** Was reblogged */ REBLOG = "REBLOG", /** Was restored */ RESTORE = "RESTORE", /** Reverted to draft */ REVERT_TO_DRAFT = "REVERT_TO_DRAFT", /** Was translated */ TRANSLATION = "TRANSLATION", /** Was unpublished */ UNPUBLISH = "UNPUBLISH", /** Was unscheduled */ UNSCHEDULE = "UNSCHEDULE", /** New edit session started which updated editing_session_id id */ NEW_EDIT_SESSION = "NEW_EDIT_SESSION", /** Was scheduled by Later */ SCHEDULING_SERVICE_SCHEDULE = "SCHEDULING_SERVICE_SCHEDULE", /** Was unscheduled by Later */ SCHEDULING_SERVICE_UNSCHEDULE = "SCHEDULING_SERVICE_UNSCHEDULE", /** Was published by Later */ SCHEDULING_SERVICE_PUBLISH = "SCHEDULING_SERVICE_PUBLISH", /** Was scheduled */ SCHEDULE = "SCHEDULE", /** Was removed from moderation */ REMOVE_FROM_MODERATION = "REMOVE_FROM_MODERATION", /** Was rejected from moderation */ REJECT_FROM_MODERATION = "REJECT_FROM_MODERATION", /** Was approved in moderation */ APPROVE_IN_MODERATION = "APPROVE_IN_MODERATION", /** Tag was deleted */ DELETE_TAG = "DELETE_TAG", /** Post was pinned */ PIN = "PIN", /** Post was unpinned */ UNPIN = "UNPIN", /** Saved automatically by AI tool. */ AI_AUTO_SAVE = "AI_AUTO_SAVE" } export declare enum Status { UNKNOWN = "UNKNOWN", /** Status indicating the draft post is published. */ PUBLISHED = "PUBLISHED", /** Status indicating the draft post is unpublished. */ UNPUBLISHED = "UNPUBLISHED", /** Status indicating the draft post is scheduled for publication. */ SCHEDULED = "SCHEDULED", /** Status indicating the draft post is deleted. */ DELETED = "DELETED", /** * Deprecated. Use `IN_REVIEW` instead. Status indicating the draft post is in review. * Target removal date 2024-06-30 * Reserved for internal use. */ IN_MODERATION = "IN_MODERATION", /** Status indicating the draft post is in review. */ IN_REVIEW = "IN_REVIEW" } export interface DraftPostTranslation { /** Post ID. */ id?: string; /** Post status. */ status?: Status; /** Language the post is written in. */ language?: string | null; /** Post slug. For example, 'post-slug'. */ slug?: string | null; /** SEO data. */ seoData?: SeoSchema; /** Post URL. */ url?: PageUrl; } export interface GetTotalLikesPerMemberRequest { /** Member ID. */ memberId?: string; } export interface GetTotalLikesPerMemberResponse { /** The total number of likes of the member. */ total?: number; } export interface PostLiked extends PostLikedInitiatorOneOf { /** Member ID of person who liked the post (only returned when the member was logged in when liking the post). */ memberId?: string | null; /** Visitor ID of person who liked the post when they are not logged in. */ anonymousVisitorId?: string | null; /** ID of the liked post. */ postId?: string; } /** @oneof */ export interface PostLikedInitiatorOneOf { /** Member ID of person who liked the post (only returned when the member was logged in when liking the post). */ memberId?: string | null; /** Visitor ID of person who liked the post when they are not logged in. */ anonymousVisitorId?: string | null; } export interface PostUnliked extends PostUnlikedInitiatorOneOf { /** Member ID of person who unliked the post (returned when the member was logged in when unliking the post). */ memberId?: string | null; /** Visitor ID of person who unliked the post when they are not logged in. */ anonymousVisitorId?: string | null; /** ID of the unliked post. */ postId?: string; } /** @oneof */ export interface PostUnlikedInitiatorOneOf { /** Member ID of person who unliked the post (returned when the member was logged in when unliking the post). */ memberId?: string | null; /** Visitor ID of person who unliked the post when they are not logged in. */ anonymousVisitorId?: string | null; } export interface PostCountersUpdated extends PostCountersUpdatedInitiatorOneOf { /** Member ID of person who triggered the counter update */ memberId?: string | null; /** Visitor ID if person that liked the post is not logged in */ anonymousVisitorId?: string | null; /** ID of the post which counters were updated. */ postId?: string; /** Field of the updated counter. */ updatedCounterField?: Field; /** New counter value. */ counter?: number; } /** @oneof */ export interface PostCountersUpdatedInitiatorOneOf { /** Member ID of person who triggered the counter update */ memberId?: string | null; /** Visitor ID if person that liked the post is not logged in */ anonymousVisitorId?: string | null; } export declare enum Field { /** Undefined field. */ UNKNOWN = "UNKNOWN", /** Total comments field. */ TOTAL_COMMENTS = "TOTAL_COMMENTS", /** Like count field. */ LIKE_COUNT = "LIKE_COUNT", /** View count field. */ VIEW_COUNT = "VIEW_COUNT", /** Rating count field. */ RATING_COUNT = "RATING_COUNT" } export interface PostOwnerChanged { } export interface InitialPostsCopied { /** Number of posts copied. */ count?: number; } export interface GetPostRequest { /** Post ID. */ postId: string; /** * __Deprecated.__ Use `fieldsets` instead. * This parameter will be removed on June 30, 2023. * * List of post fields to be included in the response. * @deprecated __Deprecated.__ Use `fieldsets` instead. * This parameter will be removed on June 30, 2023. * * List of post fields to be included in the response. * @replacedBy fieldsets * @targetRemovalDate 2024-06-30 */ fieldsToInclude?: PostFieldField[]; /** * List of additional post fields to include in the response. For example, use the `URL` fieldset to retrieve the url field in * the response in addition to the post’s base fields. Base fields don’t include any of the supported fieldset values. By default * only the post’s base fields are returned. */ fieldsets?: PostFieldField[]; } export interface GetPostResponse { /** Post info. */ post?: Post; } export interface GetPostBySlugRequest { /** Slug of the post to retrieve. */ slug: string; /** * __Deprecated.__ Use `fieldsets` instead. * This parameter will be removed on June 30, 2023. * * List of post fields to be included in the response. * @deprecated __Deprecated.__ Use `fieldsets` instead. * This parameter will be removed on June 30, 2023. * * List of post fields to be included in the response. * @replacedBy fieldsets * @targetRemovalDate 2024-06-30 */ fieldsToInclude?: PostFieldField[]; /** * List of additional post fields to include in the response. For example, use the `URL` fieldset to retrieve the url field in * the response in addition to the post’s base fields. Base fields don’t include any of the supported fieldset values. By default * only the post’s base fields are returned. */ fieldsets?: PostFieldField[]; } export interface GetPostBySlugResponse { /** Post info. */ post?: Post; } export interface ListPostsRequest { /** * Whether to return only featured posts. * * Default: `false` */ featured?: boolean; /** * Hashtag filter. * * Pass an array of hashtags to return only posts containing any of the provided hashtags. * If omitted, all posts with or without hashtags are returned. */ hashtags?: string[]; /** * Category filter. * * Pass an array of category IDs to return only posts with any of the provided categories. * If omitted, all posts with or without associated categories are returned. */ categoryIds?: string[]; /** * Tag filter. * * Pass an array of tag IDs to return only posts with any of the provided tags. * If omitted, all posts with or without tags are returned. */ tagIds?: string[]; /** * Sorting options. * * Default: `FEED` */ sort?: GetPostsSort; /** Pagination options. */ paging?: BlogPaging; /** * __Deprecated.__ Use `fieldsets` instead. * This parameter will be removed on June 30, 2023. * * List of post fields to be included in the response. * @deprecated __Deprecated.__ Use `fieldsets` instead. * This parameter will be removed on June 30, 2023. * * List of post fields to be included in the response. * @replacedBy fieldsets * @targetRemovalDate 2024-06-30 */ fieldsToInclude?: PostFieldField[]; /** * Language filter. * * 2-or-4-letter language code in [IETF BCP 47 language tag](https://en.wikipedia.org/wiki/IETF_language_tag) format. * Pass a language to only receive posts that are in that language. * If omitted, posts in all languages are returned. */ language?: string | null; /** Post owner's member ID. */ memberId?: string | null; /** * List of additional post fields to include in the response. For example, use the `URL` fieldset to retrieve the url field in * the response in addition to the post’s base fields. Base fields don’t include any of the supported fieldset values. By default * only the post’s base fields are returned. */ fieldsets?: PostFieldField[]; } export interface ListPostsResponse { /** List of posts. */ posts?: Post[]; /** Details on the paged set of results returned. */ metaData?: MetaData; } export interface QueryPostsRequest { /** * __Deprecated.__ Use `query` instead. * This parameter will be removed on June 30, 2023. * * Pagination options. * @deprecated __Deprecated.__ Use `query` instead. * This parameter will be removed on June 30, 2023. * * Pagination options. * @replacedBy query * @targetRemovalDate 2024-06-30 */ paging?: BlogPaging; /** * __Deprecated.__ Use `query` instead. * This parameter will be removed on June 30, 2023. * * Filter object. * @deprecated __Deprecated.__ Use `query` instead. * This parameter will be removed on June 30, 2023. * * Filter object. * @replacedBy query * @targetRemovalDate 2024-06-30 */ filter?: Record | null; /** * __Deprecated.__ Use `query` instead. * This parameter will be removed on June 30, 2023. * * Sorting options. For a list of sortable fields, see [Field Support for Filtering and Sorting](https://dev.wix.com/docs/rest/business-solutions/blog/posts-stats/filter-and-sort). * @deprecated __Deprecated.__ Use `query` instead. * This parameter will be removed on June 30, 2023. * * Sorting options. For a list of sortable fields, see [Field Support for Filtering and Sorting](https://dev.wix.com/docs/rest/business-solutions/blog/posts-stats/filter-and-sort). * @replacedBy query * @targetRemovalDate 2024-06-30 */ sort?: Sorting[]; /** * __Deprecated.__ Use `fieldsets` instead. * This parameter will be removed on June 30, 2023. * * List of post fields to be included in the response. * @deprecated __Deprecated.__ Use `fieldsets` instead. * This parameter will be removed on June 30, 2023. * * List of post fields to be included in the response. * @replacedBy fieldsets * @targetRemovalDate 2024-06-30 */ fieldsToInclude?: PostFieldField[]; /** Query options. */ query?: PlatformQuery; /** * List of additional post fields to include in the response. For example, use the `URL` fieldset to retrieve the url field in * the response in addition to the post’s base fields. Base fields don’t include any of the supported fieldset values. By default * only the post’s base fields are returned. */ fieldsets?: PostFieldField[]; } export interface Sorting { /** Name of the field to sort by. */ fieldName?: string; /** Sort order. */ order?: SortOrder; } export declare enum SortOrder { ASC = "ASC", DESC = "DESC" } export interface PlatformQuery extends PlatformQueryPagingMethodOneOf { /** Paging options to limit and skip the number of items. */ paging?: Paging; /** 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`. */ cursorPaging?: CursorPaging; /** * Filter object in the following format: * `"filter" : { * "fieldName1": "value1", * "fieldName2":{"$operator":"value2"} * }` * Example of operators: `$eq`, `$ne`, `$lt`, `$lte`, `$gt`, `$gte`, `$in`, `$hasSome`, `$hasAll`, `$startsWith`, `$contains` */ filter?: Record | null; /** * Sort object in the following format: * `[{"fieldName":"sortField1","order":"ASC"},{"fieldName":"sortField2","order":"DESC"}]` */ sort?: Sorting[]; } /** @oneof */ export interface PlatformQueryPagingMethodOneOf { /** Paging options to limit and skip the number of items. */ paging?: Paging; /** 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`. */ cursorPaging?: CursorPaging; } export interface Paging { /** Number of items to load. */ limit?: number | null; /** Number of items to skip in the current sort order. */ offset?: number | null; } export interface CursorPaging { /** Number of items to load. */ limit?: number | null; /** * Pointer to the next or previous page in the list of results. * * You can get the relevant cursor token * from the `pagingMetadata` object in the previous call's response. * Not relevant for the first request. */ cursor?: string | null; } export interface QueryPostsResponse { /** List of posts. */ posts?: Post[]; /** * __Deprecated.__ Use `pagingMetadata` instead. * This property will be removed on June 30, 2023. * * Details on the paged set of results returned. * @deprecated __Deprecated.__ Use `pagingMetadata` instead. * This property will be removed on June 30, 2023. * * Details on the paged set of results returned. * @replacedBy pagingMetadata * @targetRemovalDate 2024-06-30 */ metaData?: MetaData; /** Details on the paged set of results returned. */ pagingMetadata?: PagingMetadataV2; } export interface PagingMetadataV2 { /** Number of items returned in the response. */ count?: number | null; /** Offset that was requested. */ offset?: number | null; /** Total number of items that match the query. Returned if offset paging is used and the `tooManyToCount` flag is not set. */ total?: number | null; /** Flag that indicates the server failed to calculate the `total` field. */ tooManyToCount?: boolean | null; /** Cursors to navigate through the result pages using `next` and `prev`. Returned if cursor paging is used. */ cursors?: Cursors; } export interface Cursors { /** Cursor pointing to next page in the list of results. */ next?: string | null; /** Cursor pointing to previous page in the list of results. */ prev?: string | null; } export interface GetPostMetricsRequest { /** Post ID. */ postId: string; } export interface GetPostMetricsResponse { /** Post metrics. */ metrics?: Metrics; } export interface BulkGetPostMetricsRequest { /** Post IDs. */ postIds?: string[]; } export interface BulkGetPostMetricsResponse { /** Map of post.id to metrics */ metrics?: Record; } export interface ViewPostRequest { /** Post ID. */ postId?: string; } export interface ViewPostResponse { /** Total number of post views */ views?: number; } export interface LikePostRequest { /** Post ID. */ postId?: string; /** * List of additional post fields to include in the response. For example, use the `URL` fieldset to retrieve the url field in * the response in addition to the post’s base fields. Base fields don’t include any of the supported fieldset values. By default * only the post’s base fields are returned. */ fieldsets?: PostFieldField[]; } export interface LikePostResponse { /** Post info. */ post?: Post; } export interface UnlikePostRequest { /** Post ID. */ postId?: string; /** * List of additional post fields to include in the response. For example, use the `URL` fieldset to retrieve the url field in * the response in addition to the post’s base fields. Base fields don’t include any of the supported fieldset values. By default * only the post’s base fields are returned. */ fieldsets?: PostFieldField[]; } export interface UnlikePostResponse { /** Post info. */ post?: Post; } export interface PinPostRequest { /** Post ID. */ postId?: string; /** * List of additional post fields to include in the response. For example, use the `URL` fieldset to retrieve the url field in * the response in addition to the post’s base fields. Base fields don’t include any of the supported fieldset values. By default * only the post’s base fields are returned. */ fieldsets?: PostFieldField[]; } export interface PinPostResponse { /** Post info. */ post?: Post; } export interface UnpinPostRequest { /** Post ID. */ postId?: string; /** * List of additional post fields to include in the response. For example, use the `URL` fieldset to retrieve the url field in * the response in addition to the post’s base fields. Base fields don’t include any of the supported fieldset values. By default * only the post’s base fields are returned. */ fieldsets?: PostFieldField[]; } export interface UnpinPostResponse { /** Post info. */ post?: Post; } export interface ListPostsArchiveRequest { /** Month */ month?: number | null; /** Year */ year?: number; /** Time zone */ timeZone?: string | null; /** Pagination options. */ paging?: BlogPaging; /** * Language filter. * * 2-or-4-letter language code in [IETF BCP 47 language tag](https://en.wikipedia.org/wiki/IETF_language_tag) format. * Pass a language to only receive posts that are in that language. * If omitted, posts in all languages are returned. */ language?: string | null; /** * List of additional post fields to include in the response. For example, use the `URL` fieldset to retrieve the url field in * the response in addition to the post’s base fields. Base fields don’t include any of the supported fieldset values. By default * only the post’s base fields are returned. */ fieldsets?: PostFieldField[]; } export interface ListPostsArchiveResponse { /** List of posts. */ posts?: Post[]; /** Details on the paged set of results returned. */ metaData?: MetaData; /** Details on the paged set of results returned. */ pagingMetadata?: PagingMetadataV2; } export interface BulkGetPostReactionsRequest { /** Post IDs. */ postIds?: string[]; } export interface BulkGetPostReactionsResponse { /** Map of post.id to reactions */ reactionsMap?: Record; } export interface Reactions { /** * Is post liked by the current user * @readonly */ liked?: boolean; } /** Get Blog Publications Count Stats request */ export interface QueryPublicationsCountStatsRequest { /** Start of time range to return, in ISO 8601 date and time format. */ rangeStart?: Date | null; /** Non-inclusive end of time range to return, in ISO 8601 date and time format. */ rangeEnd?: Date | null; /** Order of the returned results. */ order?: QueryPublicationsCountStatsRequestOrder; /** Number of months to include in the response. */ months?: number; /** * Language filter * * 2-or-4-letter language code in [IETF BCP 47 language tag](https://en.wikipedia.org/wiki/IETF_language_tag) format. */ language?: string | null; /** Timezone of the client. */ timeZone?: string | null; } export declare enum QueryPublicationsCountStatsRequestOrder { UNKNOWN = "UNKNOWN", OLDEST = "OLDEST", NEWEST = "NEWEST" } /** Get Blog Publications Count Stats response */ export interface QueryPublicationsCountStatsResponse { /** Chronologically ordered list of publications. */ stats?: PeriodPublicationsCount[]; } /** Publications count for a specific time period */ export interface PeriodPublicationsCount { /** Start of time range in ISO 8601 date and time format. */ periodStart?: Date | null; /** Number of posts published during this month. */ publicationsCount?: number; } /** Get Blog Post Count Stats request */ export interface QueryPostCountStatsRequest { /** Start of time range to return, in ISO 8601 date and time format. */ rangeStart?: Date | null; /** * __Deprecated.__ Use `months` instead. * This property will be removed on June 30, 2023. * * Non-inclusive end of time range to return, in ISO 8601 date and time format. * @deprecated __Deprecated.__ Use `months` instead. * This property will be removed on June 30, 2023. * * Non-inclusive end of time range to return, in ISO 8601 date and time format. * @replacedBy months * @targetRemovalDate 2024-06-30 */ rangeEnd?: Date | null; /** * Order of returned results. * * - `OLDEST`: posts by date in ascending order. * - `NEWEST`: posts by date in descending order. * * Default: `OLDEST` */ order?: Order; /** Number of months to include in response. */ months?: number; /** * Language filter. * * 2-or-4-letter language code in [IETF BCP 47 language tag](https://en.wikipedia.org/wiki/IETF_language_tag) format. * Pass a language to only receive the period post count for that specified language. */ language?: string | null; /** * Time zone to use when calculating the start of the month. * * [UTC timezone offset](https://en.wikipedia.org/wiki/List_of_UTC_offsets) format. For example, New York time zone is `-05`. */ timeZone?: string | null; } export declare enum Order { UNKNOWN = "UNKNOWN", OLDEST = "OLDEST", NEWEST = "NEWEST" } /** Get Blog Post Count Stats response */ export interface QueryPostCountStatsResponse { /** List of published post counts by month. */ stats?: PeriodPostCount[]; } /** Post count for a specific time period */ export interface PeriodPostCount { /** Start of time range in ISO 8601 date and time format. */ periodStart?: Date | null; /** Number of posts published during this month. */ postCount?: number; } export interface GetTotalPublicationsRequest { /** Language filter */ language?: string | null; } export interface GetTotalPublicationsResponse { /** Total amount of publications. */ total?: number; } export interface GetTotalPostsRequest { /** * Language filter. * * 2-or-4-letter language code in [IETF BCP 47 language tag](https://en.wikipedia.org/wiki/IETF_language_tag) format. * Pass a language to receive the total amount of posts in that specified language. */ language?: string | null; } export interface GetTotalPostsResponse { /** Total amount of published posts. */ total?: number; } interface PageUrlNonNullableFields { base: string; path: string; } interface FocalPointNonNullableFields { x: number; y: number; } interface ImageNonNullableFields { id: string; url: string; height: number; width: number; focalPoint?: FocalPointNonNullableFields; } interface VideoNonNullableFields { id: string; url: string; height: number; width: number; thumbnail?: ImageNonNullableFields; } interface CoverMediaNonNullableFields { image?: ImageNonNullableFields; video?: VideoNonNullableFields; enabled: boolean; displayed: boolean; custom: boolean; } interface PostCountInfoNonNullableFields { comments: number; likes: number; views: number; } interface MetricsNonNullableFields { comments: number; likes: number; views: number; totalRatings: number; averageRating: number; } interface TagNonNullableFields { type: string; children: string; custom: boolean; disabled: boolean; } interface KeywordNonNullableFields { term: string; isMain: boolean; } interface SettingsNonNullableFields { preventAutoRedirect: boolean; keywords: KeywordNonNullableFields[]; } interface SeoSchemaNonNullableFields { tags: TagNonNullableFields[]; settings?: SettingsNonNullableFields; } interface PluginContainerDataWidthNonNullableFields { size: WidthType; } interface PluginContainerDataNonNullableFields { width?: PluginContainerDataWidthNonNullableFields; alignment: PluginContainerDataAlignment; } interface LinkNonNullableFields { url: string; anchor: string; target: Target; } interface ButtonDataNonNullableFields { containerData?: PluginContainerDataNonNullableFields; type: Type; link?: LinkNonNullableFields; } interface TextStyleNonNullableFields { textAlignment: TextAlignment; } interface CodeBlockDataNonNullableFields { textStyle?: TextStyleNonNullableFields; } interface DividerDataNonNullableFields { containerData?: PluginContainerDataNonNullableFields; lineStyle: LineStyle; width: Width; alignment: Alignment; } interface PDFSettingsNonNullableFields { viewMode: ViewMode; } interface FileDataNonNullableFields { containerData?: PluginContainerDataNonNullableFields; pdfSettings?: PDFSettingsNonNullableFields; } interface ItemImageNonNullableFields { link?: LinkNonNullableFields; } interface ItemNonNullableFields { image?: ItemImageNonNullableFields; } interface LayoutNonNullableFields { type: LayoutType; orientation: Orientation; } interface ItemStyleNonNullableFields { crop: Crop; } interface ThumbnailsNonNullableFields { placement: ThumbnailsAlignment; } interface GalleryOptionsNonNullableFields { layout?: LayoutNonNullableFields; item?: ItemStyleNonNullableFields; thumbnails?: ThumbnailsNonNullableFields; } interface GalleryDataNonNullableFields { containerData?: PluginContainerDataNonNullableFields; items: ItemNonNullableFields[]; options?: GalleryOptionsNonNullableFields; } interface GIFDataNonNullableFields { containerData?: PluginContainerDataNonNullableFields; height: number; width: number; } interface HeadingDataNonNullableFields { level: number; textStyle?: TextStyleNonNullableFields; } interface HTMLDataNonNullableFields { url: string; html: string; containerData?: PluginContainerDataNonNullableFields; source: Source; } interface ImageDataNonNullableFields { containerData?: PluginContainerDataNonNullableFields; link?: LinkNonNullableFields; } interface LinkPreviewDataNonNullableFields { containerData?: PluginContainerDataNonNullableFields; link?: LinkNonNullableFields; } interface MapSettingsNonNullableFields { mapType: MapType; } interface MapDataNonNullableFields { containerData?: PluginContainerDataNonNullableFields; mapSettings?: MapSettingsNonNullableFields; } interface ParagraphDataNonNullableFields { textStyle?: TextStyleNonNullableFields; } interface PermissionsNonNullableFields { view: ViewRole; vote: VoteRole; } interface PollSettingsNonNullableFields { permissions?: PermissionsNonNullableFields; } interface PollNonNullableFields { settings?: PollSettingsNonNullableFields; } interface PollLayoutNonNullableFields { type: PollLayoutType; direction: PollLayoutDirection; } interface PollDataLayoutNonNullableFields { poll?: PollLayoutNonNullableFields; } interface BackgroundNonNullableFields { type: BackgroundType; } interface PollDesignNonNullableFields { background?: BackgroundNonNullableFields; } interface DesignNonNullableFields { poll?: PollDesignNonNullableFields; } interface PollDataNonNullableFields { containerData?: PluginContainerDataNonNullableFields; poll?: PollNonNullableFields; layout?: PollDataLayoutNonNullableFields; design?: DesignNonNullableFields; } interface AnchorDataNonNullableFields { anchor: string; } interface LinkDataNonNullableFields { link?: LinkNonNullableFields; } interface MentionDataNonNullableFields { name: string; slug: string; } interface FontSizeDataNonNullableFields { unit: FontType; } interface DecorationNonNullableFields { anchorData?: AnchorDataNonNullableFields; linkData?: LinkDataNonNullableFields; mentionData?: MentionDataNonNullableFields; fontSizeData?: FontSizeDataNonNullableFields; type: DecorationType; } interface TextDataNonNullableFields { text: string; decorations: DecorationNonNullableFields[]; } interface AppEmbedDataNonNullableFields { type: AppType; } interface VideoDataNonNullableFields { containerData?: PluginContainerDataNonNullableFields; } interface EmbedDataNonNullableFields { containerData?: PluginContainerDataNonNullableFields; } interface CollapsibleListDataNonNullableFields { containerData?: PluginContainerDataNonNullableFields; initialExpandedItems: InitialExpandedItems; direction: Direction; } interface DimensionsNonNullableFields { colsWidthRatio: number[]; rowsHeight: number[]; colsMinWidth: number[]; } interface TableDataNonNullableFields { containerData?: PluginContainerDataNonNullableFields; dimensions?: DimensionsNonNullableFields; } interface CellStyleNonNullableFields { verticalAlignment: VerticalAlignment; } interface TableCellDataNonNullableFields { cellStyle?: CellStyleNonNullableFields; } interface AudioDataNonNullableFields { containerData?: PluginContainerDataNonNullableFields; } interface OrderedListDataNonNullableFields { indentation: number; } interface BulletedListDataNonNullableFields { indentation: number; } interface BlockquoteDataNonNullableFields { indentation: number; } interface CaptionDataNonNullableFields { textStyle?: TextStyleNonNullableFields; } interface NodeNonNullableFields { buttonData?: ButtonDataNonNullableFields; codeBlockData?: CodeBlockDataNonNullableFields; dividerData?: DividerDataNonNullableFields; fileData?: FileDataNonNullableFields; galleryData?: GalleryDataNonNullableFields; gifData?: GIFDataNonNullableFields; headingData?: HeadingDataNonNullableFields; htmlData?: HTMLDataNonNullableFields; imageData?: ImageDataNonNullableFields; linkPreviewData?: LinkPreviewDataNonNullableFields; mapData?: MapDataNonNullableFields; paragraphData?: ParagraphDataNonNullableFields; pollData?: PollDataNonNullableFields; textData?: TextDataNonNullableFields; appEmbedData?: AppEmbedDataNonNullableFields; videoData?: VideoDataNonNullableFields; embedData?: EmbedDataNonNullableFields; collapsibleListData?: CollapsibleListDataNonNullableFields; tableData?: TableDataNonNullableFields; tableCellData?: TableCellDataNonNullableFields; audioData?: AudioDataNonNullableFields; orderedListData?: OrderedListDataNonNullableFields; bulletedListData?: BulletedListDataNonNullableFields; blockquoteData?: BlockquoteDataNonNullableFields; captionData?: CaptionDataNonNullableFields; type: NodeType; id: string; nodes: NodeNonNullableFields[]; } interface MetadataNonNullableFields { version: number; } interface TextNodeStyleNonNullableFields { decorations: DecorationNonNullableFields[]; } interface DocumentStyleNonNullableFields { headerOne?: TextNodeStyleNonNullableFields; headerTwo?: TextNodeStyleNonNullableFields; headerThree?: TextNodeStyleNonNullableFields; headerFour?: TextNodeStyleNonNullableFields; headerFive?: TextNodeStyleNonNullableFields; headerSix?: TextNodeStyleNonNullableFields; paragraph?: TextNodeStyleNonNullableFields; blockquote?: TextNodeStyleNonNullableFields; codeBlock?: TextNodeStyleNonNullableFields; } interface RichContentNonNullableFields { nodes: NodeNonNullableFields[]; metadata?: MetadataNonNullableFields; documentStyle?: DocumentStyleNonNullableFields; } interface ModerationDetailsNonNullableFields { submittedBy: string; status: ModerationStatusStatus; } interface VideoResolutionNonNullableFields { url: string; height: number; width: number; poster?: ImageNonNullableFields; format: string; } interface VideoV2NonNullableFields { id: string; url: string; resolutions: VideoResolutionNonNullableFields[]; posters: ImageNonNullableFields[]; } interface WixMediaNonNullableFields { image?: ImageNonNullableFields; videoV2?: VideoV2NonNullableFields; } interface EmbedThumbnailNonNullableFields { url: string; width: number; height: number; } interface EmbedVideoNonNullableFields { url: string; width: number; height: number; } interface EmbedMediaNonNullableFields { thumbnail?: EmbedThumbnailNonNullableFields; video?: EmbedVideoNonNullableFields; } interface MediaNonNullableFields { wixMedia?: WixMediaNonNullableFields; embedMedia?: EmbedMediaNonNullableFields; displayed: boolean; custom: boolean; } interface PostTranslationNonNullableFields { id: string; seoData?: SeoSchemaNonNullableFields; url?: PageUrlNonNullableFields; } interface PostNonNullableFields { id: string; title: string; excerpt: string; url?: PageUrlNonNullableFields; slug: string; featured: boolean; pinned: boolean; categoryIds: string[]; coverMedia?: CoverMediaNonNullableFields; memberId: string; hashtags: string[]; commentingEnabled: boolean; postCountInfo?: PostCountInfoNonNullableFields; minutesToRead: number; heroImage?: ImageNonNullableFields; tagIds: string[]; relatedPostIds: string[]; pricingPlanIds: string[]; metrics?: MetricsNonNullableFields; seoData?: SeoSchemaNonNullableFields; richContent?: RichContentNonNullableFields; preview: boolean; moderationDetails?: ModerationDetailsNonNullableFields; media?: MediaNonNullableFields; hasUnpublishedChanges: boolean; translations: PostTranslationNonNullableFields[]; customExcerpt: boolean; internalCategoryIds: string[]; internalRelatedPostIds: string[]; } export interface GetPostResponseNonNullableFields { post?: PostNonNullableFields; } export interface GetPostBySlugResponseNonNullableFields { post?: PostNonNullableFields; } interface MetaDataNonNullableFields { count: number; offset: number; total: number; } export interface ListPostsResponseNonNullableFields { posts: PostNonNullableFields[]; metaData?: MetaDataNonNullableFields; } export interface QueryPostsResponseNonNullableFields { posts: PostNonNullableFields[]; metaData?: MetaDataNonNullableFields; } export interface GetPostMetricsResponseNonNullableFields { metrics?: MetricsNonNullableFields; } interface PeriodPostCountNonNullableFields { postCount: number; } export interface QueryPostCountStatsResponseNonNullableFields { stats: PeriodPostCountNonNullableFields[]; } export interface GetTotalPostsResponseNonNullableFields { total: number; } export {};