import { type SocialIconLink } from '../utils/social-platforms'; /** Re-exported for call sites that already import the link type from this module. */ export type { SocialIconLink }; interface SocialIconRowProps { className?: string; links?: SocialIconLink[]; variant?: 'accent' | 'outline' | 'transparent' | 'destructive' | null | undefined; /** Quiet metadata row for page-level identity/share slots: 32px ghost * icon buttons (size="icon-sm", 16px glyphs), gap-2, w-fit container, * variant defaulting to "transparent" (an explicit `variant` still wins). * Default false: 44/48px buttons stretching across the container — * the original card-width behavior (TMCG member cards, footers). */ compact?: boolean; /** Render the `external` links and the `internal` links as two groups split * by a thin divider (only when BOTH groups are non-empty). Visibility is * presentation-only here — the caller must still gate which links it passes * server-side. Default false keeps a single flat row. */ groupByVisibility?: boolean; } type SocialIconComponent = (props: { className?: string; }) => React.ReactElement; /** * Platform name → glyph. The ONLY thing about a social platform that lives in * code, because an icon is a component and a table cannot hold one; the DB * names the glyph it wants through `social_platforms.icon_name`. * * Deliberately an OPEN record, not `satisfies Record`: the set of * platforms is the `social_platforms` table's to decide, and a row added there * must render — with the globe, until somebody adds art for it — rather than * fail to type-check against a list in this file. */ export declare const SOCIAL_ICON_COMPONENTS: Record; export declare function SocialIconRow({ className, links, variant, compact, groupByVisibility, }: SocialIconRowProps): import("react").JSX.Element; //# sourceMappingURL=social-icon-row.d.ts.map