import * as React from 'react';
/** A single capability cell in the 2-up feature grid. */
export interface MingoFeatureCard {
    /** Stable React key. */
    id: string;
    /** Leading 16×16 icon (monochrome `ods-text-secondary`). */
    icon?: React.ReactNode;
    /** Caption text. Line breaks (`\n`) are honoured (`whitespace-pre-line`)
     *  so the two-line wrap stays fixed regardless of panel width. */
    text: React.ReactNode;
}
/** "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;
}
export interface MingoWelcomeProps {
    /** First name woven into the greeting. Empty/undefined → no-name variant. */
    userName?: string;
    /** Greeting heading. Defaults to `Hey{, name}, I'm Mingo`. */
    title?: React.ReactNode;
    /** Greeting sub-line under the heading. */
    subtitle?: React.ReactNode;
    /** 2-up capability grid. Defaults to the four OpenFrame highlights. */
    featureCards?: ReadonlyArray<MingoFeatureCard>;
    /** 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<MingoQuickAction>;
    /** 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
     *  `<MingoChatHistory>`), 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;
    /** Appended to the root element. */
    className?: string;
}
/**
 * MingoWelcome — Figma node `7532:222444`.
 *
 * Default (Mingo-mode) chat empty state: a vertically-centred greeting that
 * grows to fill available height, then a pinned stack of a 2-up capability
 * grid, 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({ userName, title, subtitle, featureCards, promo, promoStorageKey, promoStorage, quickActions, hasExistingChats, dialogHistory, isLoadingHistory, loadError, onRetry, onStartGuideChat, className, }: MingoWelcomeProps): React.JSX.Element;
//# sourceMappingURL=mingo-welcome.d.ts.map