import * as react from 'react'; /** * Theming props for the Profile Widget. * These map to CSS custom properties used internally. */ interface ProfileThemingProps { /** Container background color */ profileBackgroundColor?: string; /** Primary text color */ profileTextColor?: string; /** Secondary text color */ profileSecondaryTextColor?: string; /** Border color */ profileBorderColor?: string; /** Container border radius, e.g. "12px" */ profileBorderRadius?: string; /** Container padding */ profilePadding?: string; /** Container box shadow */ profileShadow?: string; /** Primary accent color */ profilePrimaryColor?: string; /** Primary hover color */ profilePrimaryHover?: string; /** Accent color */ profileAccentColor?: string; /** Card background */ profileCardBg?: string; /** Card border */ profileCardBorder?: string; /** Card border radius */ profileCardRadius?: string; /** Card box shadow */ profileCardShadow?: string; /** Card padding */ profileCardPadding?: string; /** Avatar size, e.g. "80px" */ profileAvatarSize?: string; /** Avatar border radius */ profileAvatarRadius?: string; /** Avatar border */ profileAvatarBorder?: string; /** Avatar box shadow */ profileAvatarShadow?: string; /** Header background */ profileHeaderBg?: string; /** Header height */ profileHeaderHeight?: string; /** Badge background */ profileBadgeBg?: string; /** Badge text color */ profileBadgeColor?: string; /** Badge border radius */ profileBadgeRadius?: string; /** Stat background */ profileStatBg?: string; /** Stat border */ profileStatBorder?: string; /** Stat value text color */ profileStatValueColor?: string; /** Stat label text color */ profileStatLabelColor?: string; /** Tab active background */ profileTabActiveBg?: string; /** Tab active text color */ profileTabActiveColor?: string; /** Tab text color */ profileTabColor?: string; /** Tab hover background */ profileTabHoverBg?: string; /** Tab border radius */ profileTabRadius?: string; /** Button background */ profileButtonBg?: string; /** Button hover background */ profileButtonHoverBg?: string; /** Button text color */ profileButtonColor?: string; /** Button border radius */ profileButtonRadius?: string; /** Font family */ profileFontFamily?: string; /** Name font size */ profileNameSize?: string; /** Name font weight */ profileNameWeight?: string; /** Username font size */ profileUsernameSize?: string; /** Bio font size */ profileBioSize?: string; /** Stat font size */ profileStatSize?: string; /** Label font size */ profileLabelSize?: string; /** Divider color */ profileDividerColor?: string; /** Transition duration, e.g. "0.2s" */ profileTransitionDuration?: string; /** Hover scale factor, e.g. "1.02" */ profileHoverScale?: string; } /** * Core configuration props for the Profile Widget. */ interface ProfileWidgetProps extends ProfileThemingProps { /** Base URL of the Legion application (required) */ baseUrl: string; /** JWT auth token for authenticated profile viewing */ authToken?: string; /** Theme preset. Default: "light" */ theme?: "light" | "dark"; /** Widget width CSS value. Default: "400px" */ width?: string; /** Widget height CSS value. Default: "400px" */ 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; 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 profile widget iframe URL. */ declare const PROFILE_THEMING_PROP_TO_PARAM: Record; /** * Ref handle exposed by LegionProfile for imperative control. */ interface LegionProfileHandle { /** Reload the widget iframe */ refresh: () => void; } /** * Build the iframe src URL from widget props. */ declare function buildProfileWidgetUrl(props: ProfileWidgetProps): string; /** * LegionProfile – a React component that embeds the Legion Profile widget * via an iframe. * * @example * ```tsx * import { LegionProfile } from '@legionhandtech/lht-react-widgets'; * * function App() { * return ( * * ); * } * ``` */ declare const LegionProfile: react.ForwardRefExoticComponent>; export { LegionProfile, type LegionProfileHandle, PROFILE_THEMING_PROP_TO_PARAM, type ProfileThemingProps, type ProfileWidgetProps, buildProfileWidgetUrl };