import type { ComponentProps, Renderer } from '../../types'; export type PromptSuggestionsClassNames = { root?: string | string[]; header?: string | string[]; headerTitle?: string | string[]; suggestion?: string | string[]; skeleton?: string | string[]; skeletonItem?: string | string[]; }; export type PromptSuggestionsTranslations = { /** * The title displayed in the header. */ headerTitle: string; }; export type PromptSuggestionsHeaderComponentProps = { classNames: Partial>; translations: PromptSuggestionsTranslations; }; export type PromptSuggestionsOwnProps = ComponentProps<'div'> & { suggestions?: string[]; onSuggestionClick: (suggestion: string) => void; /** * Whether suggestions are currently being fetched. When true and no * non-blank suggestion has arrived yet, renders `skeletonCount` placeholder * pills; once partial suggestions stream in they render normally but ignore * clicks until loading finishes, so an unfinished prompt can't be sent (their * appearance is unchanged — only `disabled` styles the pills). */ isLoading?: boolean; /** * Number of skeleton placeholder pills shown while loading. * @default 3 */ skeletonCount?: number; /** * Disables every pill (e.g. when a downstream chat is mid-stream). */ disabled?: boolean; /** * Component to render the header. Set to `false` to disable the header. */ headerComponent?: ((props: PromptSuggestionsHeaderComponentProps) => JSX.Element) | false; /** * Optional translations for the component. */ translations?: Partial; /** * Optional class names for elements */ classNames?: Partial; }; export declare function createPromptSuggestionsComponent({ createElement }: Renderer): (userProps: PromptSuggestionsOwnProps) => JSX.Element;