import * as react from 'react'; /** * Theming props for the Community Groups Widget. * These map to CSS custom properties used internally. */ interface CommunityGroupsThemingProps { /** Primary color */ groupsPrimaryColor?: string; /** Container background color */ groupsBackgroundColor?: string; /** Primary text color */ groupsTextColor?: string; /** Secondary text color */ groupsSecondaryTextColor?: string; /** Border color */ groupsBorderColor?: string; /** Card background */ groupsCardBg?: string; /** Card border radius */ groupsCardRadius?: string; /** Card box shadow */ groupsCardShadow?: string; /** Card hover box shadow */ groupsCardHoverShadow?: string; /** Card padding */ groupsCardPadding?: string; /** Avatar size */ groupsAvatarSize?: string; /** Avatar border radius */ groupsAvatarRadius?: string; /** Group name font size */ groupsNameSize?: string; /** Group name font weight */ groupsNameWeight?: string; /** Meta text font size */ groupsMetaSize?: string; /** Font family */ groupsFontFamily?: string; /** Grid gap */ groupsGridGap?: string; /** Transition duration */ groupsTransitionDuration?: string; /** Hover scale factor */ groupsHoverScale?: string; } /** * Core configuration props for the Community Groups Widget. */ interface CommunityGroupsWidgetProps extends CommunityGroupsThemingProps { /** Base URL of the Legion application (required) */ baseUrl: string; /** JWT auth token for authenticated features, sent via postMessage */ authToken?: string; /** Number of groups to display (1-20). Default: 6 */ count?: number; /** Layout mode. Default: "grid" */ layout?: "grid" | "list"; /** Theme preset. Default: "light" */ theme?: "light" | "dark"; /** Show "View all" link. Default: true */ showViewAll?: boolean; /** Community URL prefix. Default: "/community" */ communityUrl?: string; /** URL for the "View all" link. Default: "{communityUrl}/groups" */ viewAllUrl?: string; /** Sort order. Default: "trending" */ sortBy?: "trending" | "popular" | "recent"; /** Widget height CSS value. Default: "auto" */ height?: string; /** Widget width CSS value. Default: "100%" */ width?: string; /** Additional CSS class name for the container */ className?: string; /** Additional inline styles for the container */ style?: React.CSSProperties; /** Callback when the widget iframe has loaded */ onLoad?: (detail: { widget: string; count: number; theme: string; }) => void; /** Callback when the widget iframe fails to load */ onError?: (message: string) => void; } /** * Mapping from camelCase theming prop names to kebab-case query params. */ declare const GROUPS_THEMING_PROP_TO_PARAM: Record; /** * Ref handle exposed by LegionCommunityGroups for imperative control. */ interface LegionCommunityGroupsHandle { /** Reload the widget iframe */ refresh: () => void; } /** * Build the iframe src URL from widget props. */ declare function buildCommunityGroupsWidgetUrl(props: CommunityGroupsWidgetProps): string; /** * LegionCommunityGroups – a React component that embeds the Legion * Community Groups widget via an iframe. */ declare const LegionCommunityGroups: react.ForwardRefExoticComponent>; export { type CommunityGroupsThemingProps, type CommunityGroupsWidgetProps, GROUPS_THEMING_PROP_TO_PARAM, LegionCommunityGroups, type LegionCommunityGroupsHandle, buildCommunityGroupsWidgetUrl };