import react__default from 'react'; /** * Theming props for the Community Gallery Widget. * These map to CSS custom properties used internally. */ interface CommunityGalleryThemingProps { /** Primary accent color, e.g. "#228be6" */ galleryPrimaryColor?: string; /** Container background color */ galleryBackgroundColor?: string; /** Primary text color */ galleryTextColor?: string; /** Overlay gradient background */ galleryOverlayBg?: string; /** Card border radius, e.g. "12px" */ galleryCardRadius?: string; /** Card box shadow */ galleryCardShadow?: string; /** Grid gap, e.g. "8px" */ galleryGap?: string; /** Hover scale factor, e.g. "1.03" */ galleryHoverScale?: string; /** Transition duration, e.g. "0.2s" */ galleryTransitionDuration?: string; /** Username text size, e.g. "12px" */ galleryUsernameSize?: string; /** Username text color */ galleryUsernameColor?: string; /** Media icon size, e.g. "20px" */ galleryIconSize?: string; /** Font family */ galleryFontFamily?: string; } /** * Core configuration props for the Community Gallery Widget. */ interface CommunityGalleryWidgetProps extends CommunityGalleryThemingProps { /** Base URL of the Legion application (required) */ baseUrl: string; /** Number of gallery items to display (1-12). Default: 4 */ count?: number; /** Theme preset. Default: "light" */ theme?: "light" | "dark"; /** Show "View all in Gallery" link. Default: true */ showViewAll?: boolean; /** URL for the "View all" link. Default: "/gallery" */ viewAllUrl?: string; /** URL to open when clicking on a media item */ communityUrl?: string; /** Widget height: "auto" or a specific CSS value. Default: "auto" */ height?: 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 the kebab-case query * parameter names used by the community gallery widget iframe URL. */ declare const GALLERY_THEMING_PROP_TO_PARAM: Record; /** * Ref handle exposed by LegionCommunityGallery for imperative control. */ interface LegionCommunityGalleryHandle { /** Reload the widget iframe */ refresh: () => void; } /** * Build the iframe src URL from widget props. */ declare function buildGalleryWidgetUrl(props: CommunityGalleryWidgetProps): string; /** * LegionCommunityGallery – a React component that embeds the Legion * Community Gallery widget via an iframe. * * @example * ```tsx * import { LegionCommunityGallery } from '@legionhandtech/lht-react-widgets'; * * function App() { * return ( * * ); * } * ``` */ declare const LegionCommunityGallery: react__default.ForwardRefExoticComponent>; export { type CommunityGalleryThemingProps, type CommunityGalleryWidgetProps, GALLERY_THEMING_PROP_TO_PARAM, LegionCommunityGallery, type LegionCommunityGalleryHandle, buildGalleryWidgetUrl };