import { type JSX } from 'solid-js'; /** * The pre-conversation state, reproducing TORUK Core's landing phase * (`features/home/components/LandingPhase.jsx` + `hooks/useHomeStyles.js`). * * Core's landing is one vertically-centred column over a decorative backdrop, in this order: * arrow artwork and glow behind, then logo, headline, composer, starter tiles — with a 1rem gap * between every step. The composer is *inside* that column, not pinned to the bottom of the * screen, which is why it arrives here as a slot: the same element `Bot` renders at the bottom of * an active conversation is handed to this component while the conversation is still empty, so the * landing → chat transition moves one element rather than swapping two different composers. * * Core shows no greeting line on this screen (its `greeting` style is unused by `LandingPhase`), * so `heroGreeting` renders only when an embedder explicitly asks for one. * * The bubble popup keeps its own composition: it is a genuinely different surface — far too narrow * for the wordmark, the artwork or a three-across tile grid — and Core's full-page landing is not * a design that can simply be scaled down into it. */ type HeroSectionProps = { isBubbleWindow?: boolean; /** Render Core's arrow-field artwork behind the landing column. Defaults to on. */ showLandingArtwork?: boolean; backgroundColor?: string; heroIconColor: string; welcomeMessage?: string; heroGreeting?: string; heroHeadline?: string; starterPrompts: string[]; starterPromptFontSize?: number; /** * Resolved theme mode. TORUK Core's landing picks between two real logo assets * (toruk_black_logo.svg / toruk_white_logo.svg) rather than recolouring one, and so does this. */ themeMode?: 'light' | 'dark'; /** The composer, rendered inside the landing column exactly as Core's `inputContainer` does. */ composer?: JSX.Element; onPromptClick: (prompt: string) => void; }; export declare const HeroSection: (props: HeroSectionProps) => JSX.Element; export {};