@postrun/react 2.3.0 → 2.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.cts CHANGED
@@ -2,8 +2,8 @@ import * as react from 'react';
2
2
  import { ReactNode, CSSProperties } from 'react';
3
3
  import * as _tanstack_react_query from '@tanstack/react-query';
4
4
  import { QueryClient, QueryKey } from '@tanstack/react-query';
5
- import { PostrunClient, ListProfilesQuery, DiscoverableAccountList, Connection, ConnectionKind, ConnectionStatus, ListMediaQuery, ListPostsQuery, ConnectablePlatform, MediaResource, MediaTarget, Metadata, ComposePostInput, PostValidation, MediaKind, XPostVariant, LinkedInPostVariant } from '@postrun/js';
6
- export { PostValidation, PostVariant, PostVariantError, TikTokCreatorInfo, ValidationIssue } from '@postrun/js';
5
+ import { PostrunClient, ListProfilesQuery, DiscoverableAccountList, Connection, ConnectionKind, ConnectionStatus, ListMediaQuery, ListPostsQuery, ConnectablePlatform, MediaResource, MediaTarget, Metadata, ComposePostInput, PostValidation, MediaKind, XPostVariant, LinkedInPostVariant, TikTokPostVariant, TikTokCreatorInfo, TikTokOptionsValue } from '@postrun/js';
6
+ export { PostValidation, PostVariant, PostVariantError, TIKTOK_CAPTION_MAX, TikTokCreatorInfo, ValidationIssue, captionMaxFor } from '@postrun/js';
7
7
  import { TwitterComponents } from 'react-tweet';
8
8
 
9
9
  /**
@@ -1374,6 +1374,7 @@ declare function useValidatePost(profileId: string): {
1374
1374
  got?: string;
1375
1375
  variant_index: number;
1376
1376
  path: Array<string | number>;
1377
+ platform?: "x" | "linkedin" | "facebook_page" | "instagram" | "tiktok";
1377
1378
  display_error: string;
1378
1379
  }[];
1379
1380
  isPending: boolean;
@@ -1764,4 +1765,136 @@ declare function LinkedInPostPreviewImpl({ variant, author, media, theme, time,
1764
1765
  * absorbs unstable media arrays). */
1765
1766
  declare const LinkedInPostPreview: react.MemoExoticComponent<typeof LinkedInPostPreviewImpl>;
1766
1767
 
1767
- export { type CalendarFilters, Connect, type ConnectErrorReason, type ConnectOutcome, type ConnectProps, type ConnectRenderApi, type ConnectState, type ConnectionsFilter, type DiscoverableAccount, type InfiniteList, LinkedInPostPreview, type LinkedInPostPreviewProps, type LinkedInPreviewAuthor, type LiveOptions, type MediaUploadItem, type MediaUploadOptions, type MediaUploadStatus, type PostrunContextValue, PostrunProvider, type PostrunProviderProps, type PreviewMedia, type PreviewMediaKind, UploadError, type UseConnectParams, type UseConnectResult, type UseMediaUploadOptions, type UseMediaUploadResult, XPostPreview, type XPostPreviewProps, type XPreviewAuthor, type XPreviewMedia, type XPreviewQuotedTweet, connectionKeys, mediaKeys, postKeys, profileKeys, tiktokKeys, useCalendar, useConnect, useConnection, useConnections, useCreatePost, useCreateProfile, useDeleteMedia, useDeletePost, useDeleteProfile, useDisconnect, useDiscoverableAccounts, useInfiniteList, useMedia, useMediaInfinite, useMediaList, useMediaUpload, usePost, usePostrun, usePosts, usePostsInfinite, useProfile, useProfiles, useProfilesInfinite, useSelectAccount, useTikTokCreatorInfo, useUpdateMedia, useUpdatePost, useUpdateProfile, useValidatePost };
1768
+ /**
1769
+ * Public props for the TikTok post preview — a faithful render of how a post will
1770
+ * look on TikTok, driven straight from our Post object plus the live creator info
1771
+ * the Content-Posting policy requires the publishing UI to show.
1772
+ *
1773
+ * The component is presentational: the host collects the variant + creator info
1774
+ * (via `useTikTokCreatorInfo`) + resolves media pixels, and passes them in. Later
1775
+ * chunks add the editable caption + the consent-gated Post button.
1776
+ */
1777
+ interface TikTokPostPreviewProps {
1778
+ /** The TikTok variant from our schema — the content source, untouched. */
1779
+ variant: TikTokPostVariant;
1780
+ /** Live creator info (nickname/avatar, audience options, interaction flags). */
1781
+ creatorInfo: TikTokCreatorInfo;
1782
+ /** Resolved media pixels (processed URLs or compose-time File blobs). */
1783
+ media?: PreviewMedia[];
1784
+ /** Class applied to the phone frame — your hook for sizing. */
1785
+ className?: string;
1786
+ /** Inline styles on the frame. */
1787
+ style?: CSSProperties;
1788
+ }
1789
+
1790
+ declare function TikTokPostPreviewImpl({ variant, creatorInfo, media, className, style, }: TikTokPostPreviewProps): react.JSX.Element;
1791
+ /** Memoized: the resolved-media hook absorbs unstable media arrays. */
1792
+ declare const TikTokPostPreview: react.MemoExoticComponent<typeof TikTokPostPreviewImpl>;
1793
+
1794
+ /**
1795
+ * Theming for the TikTok publish PANEL. The preview card itself is always dark
1796
+ * (TikTok's video surface is always dark), so only the panel adapts. We expose a
1797
+ * small set of CSS custom properties on the panel root; controls read
1798
+ * `var(--pr-tt-*)`, so a customer can restyle via `style`/`className` without a
1799
+ * fork. Mirrors the LinkedIn preview's theme approach.
1800
+ */
1801
+ type TikTokTheme = 'light' | 'dark' | 'auto';
1802
+
1803
+ /**
1804
+ * The TikTok publish/confirmation panel — the Required-UX surface that turns a
1805
+ * preview into a compliant publish flow. It composes the editable caption (#2),
1806
+ * audience (#5), interaction (#6), commercial disclosure (#7), the video-only
1807
+ * AIGC toggle (SHOULD), the processing notice (#10), the consent declaration
1808
+ * directly above the button (#8), and the consent-gated Post button (#9) — which
1809
+ * fires `onPost` ONLY on an explicit click and is disabled until the post is
1810
+ * valid.
1811
+ *
1812
+ * All logic comes from `@postrun/js` (the single source); this is the render.
1813
+ */
1814
+ interface TikTokPublishPanelProps {
1815
+ /** The variant — drives post_type (caps, interaction set) + media count. */
1816
+ variant: TikTokPostVariant;
1817
+ /** Live creator info (audience options, interaction gates). */
1818
+ creatorInfo: TikTokCreatorInfo;
1819
+ /** Editable caption (controlled) + its setter. */
1820
+ caption: string;
1821
+ onCaptionChange: (value: string) => void;
1822
+ /** The TikTok options value (controlled) + its setter. */
1823
+ options: TikTokOptionsValue;
1824
+ onOptionsChange: (value: TikTokOptionsValue) => void;
1825
+ /** Fired ONLY on an explicit Post click — the affirmative-consent gate (#9). */
1826
+ onPost: () => void;
1827
+ /** Disable the button + show a busy label while a publish is in flight. */
1828
+ posting?: boolean;
1829
+ /** Colour scheme. `auto` (default) follows the OS preference. */
1830
+ theme?: TikTokTheme;
1831
+ className?: string;
1832
+ style?: CSSProperties;
1833
+ }
1834
+ declare function TikTokPublishPanel({ variant, creatorInfo, caption, onCaptionChange, options, onOptionsChange, onPost, posting, theme, className, style, }: TikTokPublishPanelProps): react.JSX.Element;
1835
+
1836
+ interface TikTokCaptionFieldProps {
1837
+ /** The caption text (controlled). */
1838
+ value: string;
1839
+ /** Fired on every edit — keep your variant `body` in sync with this. */
1840
+ onChange: (value: string) => void;
1841
+ /** Drives the cap (video → 2200, photo → 4000). */
1842
+ postType: TikTokPostVariant['post_type'];
1843
+ /** Placeholder shown when empty. */
1844
+ placeholder?: string;
1845
+ className?: string;
1846
+ style?: CSSProperties;
1847
+ }
1848
+ declare function TikTokCaptionField({ value, onChange, postType, placeholder, className, style, }: TikTokCaptionFieldProps): react.JSX.Element;
1849
+
1850
+ /**
1851
+ * The audience / privacy selector — MUST #5. TikTok mandates an explicit choice
1852
+ * with NO default, so the select opens on a disabled placeholder and an unchosen
1853
+ * value shows the required hint. Options come from the creator's allowed set;
1854
+ * branded content drops SELF_ONLY (handled in `audiencePrivacyOptions`).
1855
+ */
1856
+ declare function AudienceSelect({ creatorInfo, value, onChange, }: {
1857
+ creatorInfo: TikTokCreatorInfo;
1858
+ value: TikTokOptionsValue;
1859
+ onChange: (value: TikTokOptionsValue) => void;
1860
+ }): react.JSX.Element;
1861
+
1862
+ /**
1863
+ * The interaction toggles — MUST #6. Video shows Comment / Duet / Stitch; a photo
1864
+ * post shows only Comment (TikTok mandate). None default on; an interaction the
1865
+ * creator forbids renders disabled and forced off. The rows + the forbidden flags
1866
+ * come from `interactionRows` (the single source).
1867
+ */
1868
+ declare function InteractionToggles({ creatorInfo, value, onChange, isVideo, }: {
1869
+ creatorInfo: TikTokCreatorInfo;
1870
+ value: TikTokOptionsValue;
1871
+ onChange: (value: TikTokOptionsValue) => void;
1872
+ isVideo: boolean;
1873
+ }): react.JSX.Element;
1874
+
1875
+ /**
1876
+ * Commercial-content disclosure — MUST #7. Off by default. When on, the user must
1877
+ * pick at least one of "Your brand" / "Branded content" (else the required hint
1878
+ * blocks publish), and the resulting label notice is shown verbatim:
1879
+ * Your brand → "Your photo/video will be labeled as 'Promotional content'"
1880
+ * Branded content→ "Your photo/video will be labeled as 'Paid partnership'"
1881
+ * Branded content can't be private (handled in `setBrandKind` / the audience list).
1882
+ */
1883
+ declare function CommercialDisclosure({ value, onChange, }: {
1884
+ value: TikTokOptionsValue;
1885
+ onChange: (value: TikTokOptionsValue) => void;
1886
+ }): react.JSX.Element;
1887
+
1888
+ /**
1889
+ * The consent declaration — MUST #8. Rendered DIRECTLY above the Post button. The
1890
+ * wording switches on whether the post is disclosed as branded content (verbatim
1891
+ * TikTok copy):
1892
+ * default → "By posting, you agree to TikTok's Music Usage Confirmation"
1893
+ * branded → "By posting, you agree to TikTok's Branded Content Policy and
1894
+ * Music Usage Confirmation."
1895
+ */
1896
+ declare function Declaration({ brandedContent }: {
1897
+ brandedContent: boolean;
1898
+ }): react.JSX.Element;
1899
+
1900
+ export { AudienceSelect, type CalendarFilters, CommercialDisclosure, Connect, type ConnectErrorReason, type ConnectOutcome, type ConnectProps, type ConnectRenderApi, type ConnectState, type ConnectionsFilter, Declaration, type DiscoverableAccount, type InfiniteList, InteractionToggles, LinkedInPostPreview, type LinkedInPostPreviewProps, type LinkedInPreviewAuthor, type LiveOptions, type MediaUploadItem, type MediaUploadOptions, type MediaUploadStatus, type PostrunContextValue, PostrunProvider, type PostrunProviderProps, type PreviewMedia, type PreviewMediaKind, TikTokCaptionField, type TikTokCaptionFieldProps, TikTokPostPreview, type TikTokPostPreviewProps, TikTokPublishPanel, type TikTokPublishPanelProps, type TikTokTheme, UploadError, type UseConnectParams, type UseConnectResult, type UseMediaUploadOptions, type UseMediaUploadResult, XPostPreview, type XPostPreviewProps, type XPreviewAuthor, type XPreviewMedia, type XPreviewQuotedTweet, connectionKeys, mediaKeys, postKeys, profileKeys, tiktokKeys, useCalendar, useConnect, useConnection, useConnections, useCreatePost, useCreateProfile, useDeleteMedia, useDeletePost, useDeleteProfile, useDisconnect, useDiscoverableAccounts, useInfiniteList, useMedia, useMediaInfinite, useMediaList, useMediaUpload, usePost, usePostrun, usePosts, usePostsInfinite, useProfile, useProfiles, useProfilesInfinite, useSelectAccount, useTikTokCreatorInfo, useUpdateMedia, useUpdatePost, useUpdateProfile, useValidatePost };
package/dist/index.d.ts CHANGED
@@ -2,8 +2,8 @@ import * as react from 'react';
2
2
  import { ReactNode, CSSProperties } from 'react';
3
3
  import * as _tanstack_react_query from '@tanstack/react-query';
4
4
  import { QueryClient, QueryKey } from '@tanstack/react-query';
5
- import { PostrunClient, ListProfilesQuery, DiscoverableAccountList, Connection, ConnectionKind, ConnectionStatus, ListMediaQuery, ListPostsQuery, ConnectablePlatform, MediaResource, MediaTarget, Metadata, ComposePostInput, PostValidation, MediaKind, XPostVariant, LinkedInPostVariant } from '@postrun/js';
6
- export { PostValidation, PostVariant, PostVariantError, TikTokCreatorInfo, ValidationIssue } from '@postrun/js';
5
+ import { PostrunClient, ListProfilesQuery, DiscoverableAccountList, Connection, ConnectionKind, ConnectionStatus, ListMediaQuery, ListPostsQuery, ConnectablePlatform, MediaResource, MediaTarget, Metadata, ComposePostInput, PostValidation, MediaKind, XPostVariant, LinkedInPostVariant, TikTokPostVariant, TikTokCreatorInfo, TikTokOptionsValue } from '@postrun/js';
6
+ export { PostValidation, PostVariant, PostVariantError, TIKTOK_CAPTION_MAX, TikTokCreatorInfo, ValidationIssue, captionMaxFor } from '@postrun/js';
7
7
  import { TwitterComponents } from 'react-tweet';
8
8
 
9
9
  /**
@@ -1374,6 +1374,7 @@ declare function useValidatePost(profileId: string): {
1374
1374
  got?: string;
1375
1375
  variant_index: number;
1376
1376
  path: Array<string | number>;
1377
+ platform?: "x" | "linkedin" | "facebook_page" | "instagram" | "tiktok";
1377
1378
  display_error: string;
1378
1379
  }[];
1379
1380
  isPending: boolean;
@@ -1764,4 +1765,136 @@ declare function LinkedInPostPreviewImpl({ variant, author, media, theme, time,
1764
1765
  * absorbs unstable media arrays). */
1765
1766
  declare const LinkedInPostPreview: react.MemoExoticComponent<typeof LinkedInPostPreviewImpl>;
1766
1767
 
1767
- export { type CalendarFilters, Connect, type ConnectErrorReason, type ConnectOutcome, type ConnectProps, type ConnectRenderApi, type ConnectState, type ConnectionsFilter, type DiscoverableAccount, type InfiniteList, LinkedInPostPreview, type LinkedInPostPreviewProps, type LinkedInPreviewAuthor, type LiveOptions, type MediaUploadItem, type MediaUploadOptions, type MediaUploadStatus, type PostrunContextValue, PostrunProvider, type PostrunProviderProps, type PreviewMedia, type PreviewMediaKind, UploadError, type UseConnectParams, type UseConnectResult, type UseMediaUploadOptions, type UseMediaUploadResult, XPostPreview, type XPostPreviewProps, type XPreviewAuthor, type XPreviewMedia, type XPreviewQuotedTweet, connectionKeys, mediaKeys, postKeys, profileKeys, tiktokKeys, useCalendar, useConnect, useConnection, useConnections, useCreatePost, useCreateProfile, useDeleteMedia, useDeletePost, useDeleteProfile, useDisconnect, useDiscoverableAccounts, useInfiniteList, useMedia, useMediaInfinite, useMediaList, useMediaUpload, usePost, usePostrun, usePosts, usePostsInfinite, useProfile, useProfiles, useProfilesInfinite, useSelectAccount, useTikTokCreatorInfo, useUpdateMedia, useUpdatePost, useUpdateProfile, useValidatePost };
1768
+ /**
1769
+ * Public props for the TikTok post preview — a faithful render of how a post will
1770
+ * look on TikTok, driven straight from our Post object plus the live creator info
1771
+ * the Content-Posting policy requires the publishing UI to show.
1772
+ *
1773
+ * The component is presentational: the host collects the variant + creator info
1774
+ * (via `useTikTokCreatorInfo`) + resolves media pixels, and passes them in. Later
1775
+ * chunks add the editable caption + the consent-gated Post button.
1776
+ */
1777
+ interface TikTokPostPreviewProps {
1778
+ /** The TikTok variant from our schema — the content source, untouched. */
1779
+ variant: TikTokPostVariant;
1780
+ /** Live creator info (nickname/avatar, audience options, interaction flags). */
1781
+ creatorInfo: TikTokCreatorInfo;
1782
+ /** Resolved media pixels (processed URLs or compose-time File blobs). */
1783
+ media?: PreviewMedia[];
1784
+ /** Class applied to the phone frame — your hook for sizing. */
1785
+ className?: string;
1786
+ /** Inline styles on the frame. */
1787
+ style?: CSSProperties;
1788
+ }
1789
+
1790
+ declare function TikTokPostPreviewImpl({ variant, creatorInfo, media, className, style, }: TikTokPostPreviewProps): react.JSX.Element;
1791
+ /** Memoized: the resolved-media hook absorbs unstable media arrays. */
1792
+ declare const TikTokPostPreview: react.MemoExoticComponent<typeof TikTokPostPreviewImpl>;
1793
+
1794
+ /**
1795
+ * Theming for the TikTok publish PANEL. The preview card itself is always dark
1796
+ * (TikTok's video surface is always dark), so only the panel adapts. We expose a
1797
+ * small set of CSS custom properties on the panel root; controls read
1798
+ * `var(--pr-tt-*)`, so a customer can restyle via `style`/`className` without a
1799
+ * fork. Mirrors the LinkedIn preview's theme approach.
1800
+ */
1801
+ type TikTokTheme = 'light' | 'dark' | 'auto';
1802
+
1803
+ /**
1804
+ * The TikTok publish/confirmation panel — the Required-UX surface that turns a
1805
+ * preview into a compliant publish flow. It composes the editable caption (#2),
1806
+ * audience (#5), interaction (#6), commercial disclosure (#7), the video-only
1807
+ * AIGC toggle (SHOULD), the processing notice (#10), the consent declaration
1808
+ * directly above the button (#8), and the consent-gated Post button (#9) — which
1809
+ * fires `onPost` ONLY on an explicit click and is disabled until the post is
1810
+ * valid.
1811
+ *
1812
+ * All logic comes from `@postrun/js` (the single source); this is the render.
1813
+ */
1814
+ interface TikTokPublishPanelProps {
1815
+ /** The variant — drives post_type (caps, interaction set) + media count. */
1816
+ variant: TikTokPostVariant;
1817
+ /** Live creator info (audience options, interaction gates). */
1818
+ creatorInfo: TikTokCreatorInfo;
1819
+ /** Editable caption (controlled) + its setter. */
1820
+ caption: string;
1821
+ onCaptionChange: (value: string) => void;
1822
+ /** The TikTok options value (controlled) + its setter. */
1823
+ options: TikTokOptionsValue;
1824
+ onOptionsChange: (value: TikTokOptionsValue) => void;
1825
+ /** Fired ONLY on an explicit Post click — the affirmative-consent gate (#9). */
1826
+ onPost: () => void;
1827
+ /** Disable the button + show a busy label while a publish is in flight. */
1828
+ posting?: boolean;
1829
+ /** Colour scheme. `auto` (default) follows the OS preference. */
1830
+ theme?: TikTokTheme;
1831
+ className?: string;
1832
+ style?: CSSProperties;
1833
+ }
1834
+ declare function TikTokPublishPanel({ variant, creatorInfo, caption, onCaptionChange, options, onOptionsChange, onPost, posting, theme, className, style, }: TikTokPublishPanelProps): react.JSX.Element;
1835
+
1836
+ interface TikTokCaptionFieldProps {
1837
+ /** The caption text (controlled). */
1838
+ value: string;
1839
+ /** Fired on every edit — keep your variant `body` in sync with this. */
1840
+ onChange: (value: string) => void;
1841
+ /** Drives the cap (video → 2200, photo → 4000). */
1842
+ postType: TikTokPostVariant['post_type'];
1843
+ /** Placeholder shown when empty. */
1844
+ placeholder?: string;
1845
+ className?: string;
1846
+ style?: CSSProperties;
1847
+ }
1848
+ declare function TikTokCaptionField({ value, onChange, postType, placeholder, className, style, }: TikTokCaptionFieldProps): react.JSX.Element;
1849
+
1850
+ /**
1851
+ * The audience / privacy selector — MUST #5. TikTok mandates an explicit choice
1852
+ * with NO default, so the select opens on a disabled placeholder and an unchosen
1853
+ * value shows the required hint. Options come from the creator's allowed set;
1854
+ * branded content drops SELF_ONLY (handled in `audiencePrivacyOptions`).
1855
+ */
1856
+ declare function AudienceSelect({ creatorInfo, value, onChange, }: {
1857
+ creatorInfo: TikTokCreatorInfo;
1858
+ value: TikTokOptionsValue;
1859
+ onChange: (value: TikTokOptionsValue) => void;
1860
+ }): react.JSX.Element;
1861
+
1862
+ /**
1863
+ * The interaction toggles — MUST #6. Video shows Comment / Duet / Stitch; a photo
1864
+ * post shows only Comment (TikTok mandate). None default on; an interaction the
1865
+ * creator forbids renders disabled and forced off. The rows + the forbidden flags
1866
+ * come from `interactionRows` (the single source).
1867
+ */
1868
+ declare function InteractionToggles({ creatorInfo, value, onChange, isVideo, }: {
1869
+ creatorInfo: TikTokCreatorInfo;
1870
+ value: TikTokOptionsValue;
1871
+ onChange: (value: TikTokOptionsValue) => void;
1872
+ isVideo: boolean;
1873
+ }): react.JSX.Element;
1874
+
1875
+ /**
1876
+ * Commercial-content disclosure — MUST #7. Off by default. When on, the user must
1877
+ * pick at least one of "Your brand" / "Branded content" (else the required hint
1878
+ * blocks publish), and the resulting label notice is shown verbatim:
1879
+ * Your brand → "Your photo/video will be labeled as 'Promotional content'"
1880
+ * Branded content→ "Your photo/video will be labeled as 'Paid partnership'"
1881
+ * Branded content can't be private (handled in `setBrandKind` / the audience list).
1882
+ */
1883
+ declare function CommercialDisclosure({ value, onChange, }: {
1884
+ value: TikTokOptionsValue;
1885
+ onChange: (value: TikTokOptionsValue) => void;
1886
+ }): react.JSX.Element;
1887
+
1888
+ /**
1889
+ * The consent declaration — MUST #8. Rendered DIRECTLY above the Post button. The
1890
+ * wording switches on whether the post is disclosed as branded content (verbatim
1891
+ * TikTok copy):
1892
+ * default → "By posting, you agree to TikTok's Music Usage Confirmation"
1893
+ * branded → "By posting, you agree to TikTok's Branded Content Policy and
1894
+ * Music Usage Confirmation."
1895
+ */
1896
+ declare function Declaration({ brandedContent }: {
1897
+ brandedContent: boolean;
1898
+ }): react.JSX.Element;
1899
+
1900
+ export { AudienceSelect, type CalendarFilters, CommercialDisclosure, Connect, type ConnectErrorReason, type ConnectOutcome, type ConnectProps, type ConnectRenderApi, type ConnectState, type ConnectionsFilter, Declaration, type DiscoverableAccount, type InfiniteList, InteractionToggles, LinkedInPostPreview, type LinkedInPostPreviewProps, type LinkedInPreviewAuthor, type LiveOptions, type MediaUploadItem, type MediaUploadOptions, type MediaUploadStatus, type PostrunContextValue, PostrunProvider, type PostrunProviderProps, type PreviewMedia, type PreviewMediaKind, TikTokCaptionField, type TikTokCaptionFieldProps, TikTokPostPreview, type TikTokPostPreviewProps, TikTokPublishPanel, type TikTokPublishPanelProps, type TikTokTheme, UploadError, type UseConnectParams, type UseConnectResult, type UseMediaUploadOptions, type UseMediaUploadResult, XPostPreview, type XPostPreviewProps, type XPreviewAuthor, type XPreviewMedia, type XPreviewQuotedTweet, connectionKeys, mediaKeys, postKeys, profileKeys, tiktokKeys, useCalendar, useConnect, useConnection, useConnections, useCreatePost, useCreateProfile, useDeleteMedia, useDeletePost, useDeleteProfile, useDisconnect, useDiscoverableAccounts, useInfiniteList, useMedia, useMediaInfinite, useMediaList, useMediaUpload, usePost, usePostrun, usePosts, usePostsInfinite, useProfile, useProfiles, useProfilesInfinite, useSelectAccount, useTikTokCreatorInfo, useUpdateMedia, useUpdatePost, useUpdateProfile, useValidatePost };