import * as react from 'react'; /** * Theming props for the Saved Opportunities Widget. * These map to CSS custom properties used internally. */ interface SavedOpportunitiesThemingProps { /** Primary color */ savedPrimaryColor?: string; /** Accent color */ savedAccentColor?: string; /** Container background color */ savedBackgroundColor?: string; /** Card background */ savedCardBg?: string; /** Card hover background */ savedCardHoverBg?: string; /** Primary text color */ savedTextColor?: string; /** Secondary text color */ savedSecondaryTextColor?: string; /** Heading color */ savedHeadingColor?: string; /** Border color */ savedBorderColor?: string; /** Card border color */ savedCardBorder?: string; /** Container border radius */ savedBorderRadius?: string; /** Card border radius */ savedCardRadius?: string; /** Button border radius */ savedButtonRadius?: string; /** Container box shadow */ savedShadow?: string; /** Card box shadow */ savedCardShadow?: string; /** Container padding */ savedPadding?: string; /** Card padding */ savedCardPadding?: string; /** Gap between cards */ savedGap?: string; /** Font family */ savedFontFamily?: string; /** Title font size */ savedTitleSize?: string; /** Body font size */ savedBodySize?: string; /** Meta font size */ savedMetaSize?: string; /** Title font weight */ savedTitleWeight?: string; /** Button background */ savedButtonBg?: string; /** Button text color */ savedButtonColor?: string; /** Button hover background */ savedButtonHoverBg?: string; /** Empty state icon color */ savedEmptyIconColor?: string; /** Empty state text color */ savedEmptyTextColor?: string; /** Transition duration */ savedTransitionDuration?: string; /** Hover scale factor */ savedHoverScale?: string; } /** * Props for the LegionSavedOpportunities React component. */ interface SavedOpportunitiesWidgetProps extends SavedOpportunitiesThemingProps { /** Base URL of your Legion deployment (required). */ baseUrl: string; /** JWT / API key for authenticated access (sent via postMessage, never in URL). */ authToken?: string; /** Theme preset. */ theme?: "light" | "dark"; /** Widget width (CSS value). */ width?: string; /** Widget height (CSS value). */ height?: string; /** CSS class applied to the outer container. */ className?: string; /** Inline styles merged into the container. */ style?: React.CSSProperties; /** Called when the widget iframe finishes loading. */ onLoad?: (detail: { widget: string; theme: string; }) => void; /** Called if the widget iframe fails to load. */ onError?: (message: string) => void; } /** * Maps camelCase theming prop names to their kebab-case CSS variable query param names. */ declare const SAVED_THEMING_PROP_TO_PARAM: Record; /** * Ref handle exposed by LegionSavedOpportunities for imperative control. */ interface LegionSavedOpportunitiesHandle { /** Reload the widget iframe */ refresh: () => void; } /** * Build the iframe src URL from widget props. */ declare function buildSavedOpportunitiesWidgetUrl(props: SavedOpportunitiesWidgetProps): string; /** * LegionSavedOpportunities – a React component that embeds the Legion * Saved Opportunities widget via an iframe. * * @example * ```tsx * import { LegionSavedOpportunities } from '@legionhandtech/lht-react-widgets'; * * function App() { * return ( * * ); * } * ``` */ declare const LegionSavedOpportunities: react.ForwardRefExoticComponent>; export { LegionSavedOpportunities, type LegionSavedOpportunitiesHandle, SAVED_THEMING_PROP_TO_PARAM, type SavedOpportunitiesThemingProps, type SavedOpportunitiesWidgetProps, buildSavedOpportunitiesWidgetUrl };