/** @jsx createElement */ import type { Hooks, RecordWithObjectID, Renderer } from '../../../types'; import type { ClientSideToolComponentProps } from '../types'; export type DisplayResultsTranslations = { /** * Caption shown under the groups while the tool is still streaming its * output. Defaults to "Curating results…". */ streamingLabel: string; }; /** * An item handed to a group's carousel: the record (hydrated from the search * tool) augmented with the display tool's own result object under a separate * `__displayToolResult` namespace, so the tool's curation fields (e.g. `why`) * can never collide with record fields in either direction. */ export type DisplayResultsItem = RecordWithObjectID & { __displayToolResult: RecordWithObjectID; }; export type DisplayResultsGroupCarouselProps = { items: Array>; sendEvent: ClientSideToolComponentProps['sendEvent']; }; export type DisplayResultsToolProps = { toolProps: ClientSideToolComponentProps; /** * Renders a single group's carousel. The framework wrapper owns the * carousel implementation (and its internal hooks/refs) — ui-components * just lays out the intro, per-group headers, and the streaming caption. */ groupCarouselComponent: (props: DisplayResultsGroupCarouselProps) => JSX.Element; translations?: Partial; }; export declare function createDisplayResultsToolComponent({ createElement, Fragment, useMemo }: Renderer & Pick): (userProps: DisplayResultsToolProps) => JSX.Element;