import * as React from 'react'; /** "New to OpenFrame?" one-time notification config. `null` hides the card. */ export interface MingoWelcomePromo { title: React.ReactNode; description: React.ReactNode; } /** Extra quick-action chip rendered after the built-in "Start Guide Chat". */ export interface MingoQuickAction { /** Stable React key. */ id: string; label: string; icon?: React.ReactNode; /** `'primary'` = accent (yellow) chip, `'outline'` = bordered chip. */ variant?: 'primary' | 'outline'; onClick?: () => void; /** Full prompt text previewed as ghost text in the composer on hover/focus. * The chip `label` is short; this reveals what the action will actually ask. * Omitted → falls back to `label`. */ prompt?: string; } export interface MingoWelcomeProps { /** Greeting heading. Defaults to `Hey, I'm Mingo`. */ title?: React.ReactNode; /** Greeting sub-line under the heading. */ subtitle?: React.ReactNode; /** One-time "New to OpenFrame?" notification below the grid. `null` hides * it; omitting falls back to the OpenFrame default (only rendered when * `onStartGuideChat` is wired, i.e. Guide mode exists to advertise). */ promo?: MingoWelcomePromo | null; /** Storage key used to remember the promo dismissal. */ promoStorageKey?: string; /** Where the dismissal is persisted. `'local'` (default) survives across * sessions; `'session'` clears when the tab closes. */ promoStorage?: 'local' | 'session'; /** Extra quick-action chips appended after the "Start Guide Chat" chip. */ quickActions?: ReadonlyArray; /** Pointer/keyboard focus enters a quick-action chip — e.g. preview the * action's full `prompt` in the composer input. */ onQuickActionHover?: (action: MingoQuickAction) => void; /** Pointer/keyboard focus leaves the chip — e.g. restore the composer. */ onQuickActionHoverEnd?: () => void; /** Returning-user variation: the user already has chats. Hides the * "New to OpenFrame?" notification entirely and renders the "Start Guide * Chat" chip in the muted `outline` style instead of the accent yellow. */ hasExistingChats?: boolean; /** Returning-user main content — when provided (typically a * ``), it replaces the greeting + feature grid and owns * its own scroll region. The chips below stay pinned. */ dialogHistory?: React.ReactNode; /** True while the FIRST page of dialogs is still loading and we don't yet * know if the user is new or returning. Renders a history skeleton in place * of both the greeting+grid and the history, so the empty state doesn't * flash the new-user layout before the list arrives. Ignored once * `dialogHistory` is provided. */ isLoadingHistory?: boolean; /** The dialog-list load FAILED (e.g. backend down) and there's nothing * cached. Renders an error + retry block in place of the new-user empty * state (which would otherwise misleadingly advertise Guide). Takes * priority over `isLoadingHistory`. Ignored once `dialogHistory` is set. */ loadError?: boolean; /** Retry handler for the `loadError` state. */ onRetry?: () => void; /** When provided, renders the "Start Guide Chat" chip (the only wired * action — switches the host chat to Guide mode) and enables the default * promo notification. When omitted, both are suppressed. */ onStartGuideChat?: () => void; /** Agent this empty state belongs to — forwarded to the quick-action * {@link QuickActionWall} so a built-in agent (`'fae'`/`'mingo'`) caps the * brick stack at 2 rows. Defaults to `'mingo'` (this is the Mingo surface). */ agentSlug?: string; /** Appended to the root element. */ className?: string; } /** * MingoWelcome — Figma node `113:69208`. * * Default (Mingo-mode) chat empty state: a vertically-centred greeting that * grows to fill available height, then a pinned stack of an optional one-time * "New to OpenFrame?" notification and a quick-action chip row. The Guide-mode * empty state keeps the slash-command onboarding list. * * Content is configurable (props) with OpenFrame defaults so the kit stays * platform-agnostic. The "Start Guide Chat" chip is the only wired action — * it switches the host chat to Guide mode via `onStartGuideChat`. The * notification carries no action; its dismiss "X" persists to local/session * storage so it shows only until the user closes it once. */ export declare function MingoWelcome({ title, subtitle, promo, promoStorageKey, promoStorage, quickActions, onQuickActionHover, onQuickActionHoverEnd, hasExistingChats, dialogHistory, isLoadingHistory, loadError, onRetry, onStartGuideChat, agentSlug, className, }: MingoWelcomeProps): React.JSX.Element; //# sourceMappingURL=mingo-welcome.d.ts.map