import "./social_post_preview.css"; import type * as React from "react"; import { useRender } from "@base-ui/react/use-render"; import { type DisplayFile } from "./file_thumbnail"; import { type StyleProps } from "./style_props"; import { type SocialNetwork, type SocialPostDraft } from "./social_post_rules"; export interface SocialPostPreviewProps extends SocialPostDraft, StyleProps { network: SocialNetwork; /** Who the post goes out as — the name and handle the feed prints. */ author: { name: string; handle?: string; avatarUrl?: string; }; /** The timestamp line. Defaults to the locale's "just now", which is what a * post that has not gone out yet would read. */ when?: string; onFilePress?: (file: DisplayFile) => void; testID?: string; ref?: React.Ref; render?: useRender.RenderProp; } /** * A post as one network's feed would show it — the author line, the text * folded where that feed folds it, the media in the shape that feed lays it out, * the link as the card or the plain text it becomes — with the count against * the limit and every rule the API would refuse, in words, under it. * * It is a PREVIEW, so it never writes and never publishes: the app owns the * draft and the button. What it owns is the knowledge of what each network * does with the same three inputs, which is exactly the thing a person cannot * see from an editor and finds out from a refused request otherwise. That * knowledge is `social_post_rules`, which the publish gate reads too, so the * button refuses exactly what the preview shows. */ export declare function SocialPostPreview(props: SocialPostPreviewProps): React.JSX.Element;