import type { ChatContextItem, ChatContextPickerConfig } from './types/context-item.types'; /** Default ceiling on selected context items (Figma spec). */ export declare const CHAT_CONTEXT_ITEMS_DEFAULT_MAX = 10; export interface ChatComposerPlusMenuProps { /** Toggle the entity-context picker open/closed. */ onToggle: () => void; /** Whether the picker is currently open (drives the lit/yellow state). */ open?: boolean; /** Disable the trigger (e.g. while streaming). */ disabled?: boolean; /** The context dropdown — rendered anchored to THIS button (so the popover * aligns to the `+`, not the whole input). Pass ``. */ dropdown?: React.ReactNode; } /** * The composer `+` button (Figma node 31:28275 — sits INSIDE the input as a * start adornment). Per the Figma annotation on 31:28312 ("don't show for * first version — show dropdown with item types"), there is NO intermediate * "Upload File / Assign Item" menu: the `+` opens the single `ChatContextPicker` * dropdown (type list → searchable items) directly. * * The 24×24 glyph is grey at rest, WHITE on hover of the glyph itself, and * accent-yellow while pressed or while the dropdown is open. `data-context- * trigger` lets the picker's outside-click handler ignore clicks on this button * so toggling works cleanly. */ export declare function ChatComposerPlusMenu({ onToggle, open, disabled, dropdown, }: ChatComposerPlusMenuProps): import("react").JSX.Element; export interface ChatContextPickerProps { /** When false the popover renders nothing. */ open: boolean; config: ChatContextPickerConfig; /** Currently-selected items (drives the ✓ state in the list). */ selectedItems: ChatContextItem[]; /** Toggle an item in/out of the selection. */ onToggleItem: (item: ChatContextItem) => void; /** Close the popover (Escape, outside-click, header X). */ onClose: () => void; /** * Query seeded from the `@`-mention trigger. Filters the entity-type list * while the picker sits on level 1; consumed when a type is opened. */ mentionQuery?: string | null; className?: string; } export declare function ChatContextPicker({ open, config, selectedItems, onToggleItem, onClose, mentionQuery, className, }: ChatContextPickerProps): import("react").JSX.Element | null; export interface ChatContextChipStripProps { items: ChatContextItem[]; /** Remove handler. When omitted the chips are read-only (message bubble). */ onRemove?: (item: ChatContextItem) => void; /** Lead icon resolver, e.g. the entity-type icon. Optional. */ resolveIcon?: (item: ChatContextItem) => React.ReactNode; /** * Optional host renderer that REPLACES the default label-only pill for an * item — e.g. a self-fetching entity chip that resolves its own live display * name by id, identical to an inline `@marker:id` mention. Return * `null`/`undefined` for an item to fall back to the default pill. The lib * owns no entity knowledge, so the host node owns its full chrome (the * `onRemove` affordance is NOT wrapped around host-rendered items — this is * meant for the read-only message bubble, mirroring `renderMention`). */ renderItem?: (item: ChatContextItem) => React.ReactNode; disabled?: boolean; className?: string; } /** * Horizontal strip of selected-context chips. Returns `null` when empty — no * permanent footprint. Used both in the composer (removable) and on the sent * user bubble (read-only, no `onRemove`). */ export declare function ChatContextChipStrip({ items, onRemove, resolveIcon, renderItem, disabled, className, }: ChatContextChipStripProps): import("react").JSX.Element | null; //# sourceMappingURL=chat-context-picker.d.ts.map