instantsearch.js 4.86.1 → 4.87.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (82) hide show
  1. package/cjs/connectors/autocomplete/connectAutocomplete.js +13 -5
  2. package/cjs/connectors/chat/connectChat.js +92 -20
  3. package/cjs/connectors/filter-suggestions/connectFilterSuggestions.js +255 -0
  4. package/cjs/connectors/index.js +7 -0
  5. package/cjs/connectors/index.umd.js +7 -0
  6. package/cjs/index.js +2 -2
  7. package/cjs/lib/ai-lite/abstract-chat.js +823 -0
  8. package/cjs/lib/ai-lite/index.js +57 -0
  9. package/cjs/lib/ai-lite/stream-parser.js +138 -0
  10. package/cjs/lib/ai-lite/transport.js +218 -0
  11. package/cjs/lib/ai-lite/types.js +1 -0
  12. package/cjs/lib/ai-lite/utils.js +85 -0
  13. package/cjs/lib/chat/chat.js +6 -6
  14. package/cjs/lib/chat/index.js +5 -2
  15. package/cjs/lib/version.js +1 -1
  16. package/cjs/widgets/autocomplete/autocomplete.js +15 -6
  17. package/cjs/widgets/chat/chat.js +32 -3
  18. package/cjs/widgets/filter-suggestions/filter-suggestions.js +131 -0
  19. package/cjs/widgets/index.js +7 -0
  20. package/cjs/widgets/index.umd.js +7 -0
  21. package/dist/instantsearch.development.d.ts +2551 -346
  22. package/dist/instantsearch.development.js +9408 -4314
  23. package/dist/instantsearch.development.js.map +1 -1
  24. package/dist/instantsearch.production.d.ts +2551 -346
  25. package/dist/instantsearch.production.min.d.ts +2551 -346
  26. package/dist/instantsearch.production.min.js +2 -2
  27. package/dist/instantsearch.production.min.js.map +1 -1
  28. package/es/connectors/autocomplete/connectAutocomplete.d.ts +10 -0
  29. package/es/connectors/autocomplete/connectAutocomplete.js +13 -5
  30. package/es/connectors/chat/connectChat.d.ts +24 -14
  31. package/es/connectors/chat/connectChat.js +90 -18
  32. package/es/connectors/filter-suggestions/connectFilterSuggestions.d.ts +95 -0
  33. package/es/connectors/filter-suggestions/connectFilterSuggestions.js +249 -0
  34. package/es/connectors/frequently-bought-together/connectFrequentlyBoughtTogether.d.ts +2 -2
  35. package/es/connectors/geo-search/connectGeoSearch.d.ts +1 -1
  36. package/es/connectors/hits/connectHits.d.ts +1 -1
  37. package/es/connectors/hits/connectHitsWithInsights.d.ts +1 -1
  38. package/es/connectors/index.d.ts +1 -0
  39. package/es/connectors/index.js +2 -1
  40. package/es/connectors/index.umd.d.ts +1 -0
  41. package/es/connectors/index.umd.js +2 -1
  42. package/es/connectors/infinite-hits/connectInfiniteHits.d.ts +1 -1
  43. package/es/connectors/infinite-hits/connectInfiniteHitsWithInsights.d.ts +1 -1
  44. package/es/connectors/looking-similar/connectLookingSimilar.d.ts +2 -2
  45. package/es/connectors/related-products/connectRelatedProducts.d.ts +2 -2
  46. package/es/connectors/trending-items/connectTrendingItems.d.ts +2 -2
  47. package/es/lib/ai-lite/abstract-chat.d.ts +89 -0
  48. package/es/lib/ai-lite/abstract-chat.js +818 -0
  49. package/es/lib/ai-lite/index.d.ts +11 -0
  50. package/es/lib/ai-lite/index.js +18 -0
  51. package/es/lib/ai-lite/stream-parser.d.ts +18 -0
  52. package/es/lib/ai-lite/stream-parser.js +131 -0
  53. package/es/lib/ai-lite/transport.d.ts +24 -0
  54. package/es/lib/ai-lite/transport.js +214 -0
  55. package/es/lib/ai-lite/types.d.ts +362 -0
  56. package/es/lib/ai-lite/types.js +1 -0
  57. package/es/lib/ai-lite/utils.d.ts +12 -0
  58. package/es/lib/ai-lite/utils.js +76 -0
  59. package/es/lib/chat/chat.d.ts +3 -3
  60. package/es/lib/chat/chat.js +4 -4
  61. package/es/lib/chat/index.d.ts +3 -0
  62. package/es/lib/chat/index.js +4 -1
  63. package/es/lib/version.d.ts +1 -1
  64. package/es/lib/version.js +1 -1
  65. package/es/widgets/autocomplete/autocomplete.d.ts +2 -1
  66. package/es/widgets/autocomplete/autocomplete.js +15 -6
  67. package/es/widgets/chat/chat.d.ts +22 -14
  68. package/es/widgets/chat/chat.js +33 -4
  69. package/es/widgets/filter-suggestions/filter-suggestions.d.ts +689 -0
  70. package/es/widgets/filter-suggestions/filter-suggestions.js +124 -0
  71. package/es/widgets/frequently-bought-together/frequently-bought-together.d.ts +3 -3
  72. package/es/widgets/geo-search/geo-search.d.ts +1 -1
  73. package/es/widgets/hits/hits.d.ts +1 -1
  74. package/es/widgets/index.d.ts +1 -0
  75. package/es/widgets/index.js +2 -1
  76. package/es/widgets/index.umd.d.ts +1 -0
  77. package/es/widgets/index.umd.js +2 -1
  78. package/es/widgets/infinite-hits/infinite-hits.d.ts +1 -1
  79. package/es/widgets/looking-similar/looking-similar.d.ts +3 -3
  80. package/es/widgets/related-products/related-products.d.ts +3 -3
  81. package/es/widgets/trending-items/trending-items.d.ts +3 -3
  82. package/package.json +6 -7
@@ -1,17 +1,25 @@
1
- import { AbstractChat } from 'ai';
2
1
  import { AlgoliaSearchHelper } from 'algoliasearch-helper';
3
2
  import type { AutocompleteClassNames } from 'instantsearch-ui-components';
4
3
  import type { AutocompleteIndexClassNames } from 'instantsearch-ui-components';
5
4
  import type { AutocompleteIndexConfig } from 'instantsearch-ui-components';
6
5
  import { Banner } from 'algoliasearch-helper';
7
6
  import type { CarouselProps } from 'instantsearch-ui-components';
8
- import type { ChatInit as ChatInit_2 } from 'ai';
9
- import type { ChatState as ChatState_2 } from 'ai';
10
- import type { ChatStatus } from 'ai';
7
+ import type { ChatClassNames } from 'instantsearch-ui-components';
8
+ import type { ChatHeaderProps } from 'instantsearch-ui-components';
9
+ import type { ChatMessageActionProps } from 'instantsearch-ui-components';
10
+ import type { ChatMessageBase } from 'instantsearch-ui-components';
11
+ import type { ChatMessageErrorProps } from 'instantsearch-ui-components';
12
+ import type { ChatMessageLoaderProps } from 'instantsearch-ui-components';
13
+ import type { ChatPromptProps } from 'instantsearch-ui-components';
14
+ import type { ChatToggleButtonProps } from 'instantsearch-ui-components';
15
+ import type { ClientSideToolComponentProps } from 'instantsearch-ui-components';
11
16
  import type { ClientSideTools } from 'instantsearch-ui-components';
12
17
  import { CompositionClient } from 'algoliasearch-helper/types/algoliasearch.js';
13
- import { DefaultChatTransport } from 'ai';
14
18
  import EventEmitter from '@algolia/events';
19
+ import type { FilterSuggestionsClassNames } from 'instantsearch-ui-components';
20
+ import type { FilterSuggestionsEmptyComponentProps } from 'instantsearch-ui-components';
21
+ import type { FilterSuggestionsHeaderComponentProps } from 'instantsearch-ui-components';
22
+ import type { FilterSuggestionsItemComponentProps } from 'instantsearch-ui-components';
15
23
  import { FindAnswersOptions } from 'algoliasearch-helper/types/algoliasearch.js';
16
24
  import type { FrequentlyBoughtTogetherProps } from 'instantsearch-ui-components';
17
25
  import { h } from 'preact';
@@ -30,20 +38,108 @@ import type { RecommendClassNames } from 'instantsearch-ui-components';
30
38
  import { RecommendParameters } from 'algoliasearch-helper';
31
39
  import type { RecommendParametersOptions } from 'algoliasearch-helper';
32
40
  import { RecommendResponse } from 'algoliasearch-helper/types/algoliasearch.js';
41
+ import { RecommendResponse as RecommendResponse_2 } from 'algoliasearch-helper/types/algoliasearch';
33
42
  import type { RecommendResults } from 'algoliasearch-helper';
43
+ import type { RecordWithObjectID } from 'instantsearch-ui-components';
34
44
  import type { RelatedProductsProps } from 'instantsearch-ui-components';
35
45
  import { SearchClient } from 'algoliasearch-helper/types/algoliasearch.js';
36
46
  import { SearchOptions } from 'algoliasearch-helper/types/algoliasearch.js';
37
47
  import { SearchParameters } from 'algoliasearch-helper';
38
48
  import { SearchResults } from 'algoliasearch-helper';
39
49
  import type { TrendingItemsProps } from 'instantsearch-ui-components';
40
- import { UIDataTypes } from 'ai';
41
- import { UIMessage } from 'ai';
42
- import { UITools } from 'ai';
43
50
  import type { UserClientSideTool } from 'instantsearch-ui-components';
44
51
  import { VNode } from 'preact';
45
52
  import type { VNode as VNode_2 } from 'instantsearch-ui-components';
46
53
 
54
+ /**
55
+ * Abstract base class for chat implementations.
56
+ */
57
+ declare abstract class AbstractChat<TUIMessage extends UIMessage> {
58
+ readonly id: string;
59
+ readonly generateId: IdGenerator;
60
+ protected state: ChatState<TUIMessage>;
61
+ private readonly transport?;
62
+ private onError?;
63
+ private onToolCall?;
64
+ private onFinish?;
65
+ private onData?;
66
+ private sendAutomaticallyWhen?;
67
+ private activeResponse;
68
+ private jobExecutor;
69
+ constructor({ generateId, id, transport, state, onError, onToolCall, onFinish, onData, sendAutomaticallyWhen, }: Omit<ChatInit<TUIMessage>, 'messages'> & {
70
+ state: ChatState<TUIMessage>;
71
+ });
72
+ /**
73
+ * Hook status:
74
+ *
75
+ * - `submitted`: The message has been sent to the API and we're awaiting the start of the response stream.
76
+ * - `streaming`: The response is actively streaming in from the API, receiving chunks of data.
77
+ * - `ready`: The full response has been received and processed; a new user message can be submitted.
78
+ * - `error`: An error occurred during the API request, preventing successful completion.
79
+ */
80
+ get status(): ChatStatus;
81
+ protected setStatus({ status, error, }: {
82
+ status: ChatStatus;
83
+ error?: Error;
84
+ }): void;
85
+ get error(): Error | undefined;
86
+ get messages(): TUIMessage[];
87
+ set messages(messages: TUIMessage[]);
88
+ get lastMessage(): TUIMessage | undefined;
89
+ /**
90
+ * Appends or replaces a user message to the chat list. This triggers the API call to fetch
91
+ * the assistant's response.
92
+ */
93
+ sendMessage: (message?: (CreateUIMessage<TUIMessage> & {
94
+ text?: never;
95
+ files?: never;
96
+ messageId?: string;
97
+ }) | {
98
+ text: string;
99
+ files?: FileList | FileUIPart[];
100
+ metadata?: InferUIMessageMetadata<TUIMessage>;
101
+ parts?: never;
102
+ messageId?: string;
103
+ } | {
104
+ files: FileList | FileUIPart[];
105
+ metadata?: InferUIMessageMetadata<TUIMessage>;
106
+ parts?: never;
107
+ messageId?: string;
108
+ }, options?: ChatRequestOptions) => Promise<void>;
109
+ /**
110
+ * Regenerate the assistant message with the provided message id.
111
+ * If no message id is provided, the last assistant message will be regenerated.
112
+ */
113
+ regenerate: ({ messageId, ...options }?: {
114
+ messageId?: string;
115
+ } & ChatRequestOptions) => Promise<void>;
116
+ /**
117
+ * Attempt to resume an ongoing streaming response.
118
+ */
119
+ resumeStream: (options?: ChatRequestOptions) => Promise<void>;
120
+ /**
121
+ * Clear the error state and set the status to ready if the chat is in an error state.
122
+ */
123
+ clearError: () => void;
124
+ /**
125
+ * Add a tool result for a tool call.
126
+ */
127
+ addToolResult: <TTool extends keyof InferUIMessageTools<TUIMessage>>({ tool, toolCallId, output, }: {
128
+ tool: TTool;
129
+ toolCallId: string;
130
+ output: InferUIMessageTools<TUIMessage>[TTool]["output"];
131
+ }) => Promise<void>;
132
+ /**
133
+ * Abort the current request immediately, keep the generated tokens if any.
134
+ */
135
+ stop: () => Promise<void>;
136
+ private makeRequest;
137
+ private processStreamWithCallbacks;
138
+ private handleError;
139
+ private convertFilesToParts;
140
+ private fileToDataUrl;
141
+ }
142
+
47
143
  declare type AlgoliaHit<THit extends NonNullable<object> = Record<string, any>> = {
48
144
  objectID: string;
49
145
  _highlightResult?: HitHighlightResult;
@@ -276,6 +372,10 @@ declare type AutocompleteConnectorParams = {
276
372
  * @default `true`
277
373
  */
278
374
  escapeHTML?: boolean;
375
+ /**
376
+ * Transforms the items of all indices.
377
+ */
378
+ transformItems?: (indices: TransformItemsIndicesConfig[]) => TransformItemsIndicesConfig[];
279
379
  };
280
380
 
281
381
  declare type AutocompleteCSSClasses = Partial<AutocompleteClassNames>;
@@ -381,6 +481,7 @@ declare type AutocompleteWidgetParams<TItem extends BaseHit> = {
381
481
  }>;
382
482
  cssClasses?: Partial<AutocompleteIndexClassNames>;
383
483
  };
484
+ transformItems?: (indices: TransformItemsIndicesConfig[]) => TransformItemsIndicesConfig[];
384
485
  /**
385
486
  * Search parameters to apply to the autocomplete indices.
386
487
  */
@@ -664,8 +765,8 @@ declare type CarouselTemplateProps<TObject extends Record<string, unknown>> = Pi
664
765
  };
665
766
 
666
767
  declare class Chat<TUiMessage extends UIMessage> extends AbstractChat<TUiMessage> {
667
- _state: ChatState<TUiMessage>;
668
- constructor({ messages, agentId, ...init }: ChatInit_2<TUiMessage> & {
768
+ _state: ChatState_2<TUiMessage>;
769
+ constructor({ messages, agentId, ...init }: ChatInit<TUiMessage> & {
669
770
  agentId?: string;
670
771
  });
671
772
  '~registerMessagesCallback': (onChange: () => void) => (() => void);
@@ -673,11 +774,9 @@ declare class Chat<TUiMessage extends UIMessage> extends AbstractChat<TUiMessage
673
774
  '~registerErrorCallback': (onChange: () => void) => (() => void);
674
775
  }
675
776
 
676
- declare const chat: () => never;
677
-
678
777
  declare type ChatConnectorParams<TUiMessage extends UIMessage = UIMessage> = ({
679
778
  chat: Chat<TUiMessage>;
680
- } | ChatInit<TUiMessage>) & {
779
+ } | ChatInit_2<TUiMessage>) & {
681
780
  /**
682
781
  * Whether to resume an ongoing chat generation stream.
683
782
  */
@@ -686,11 +785,48 @@ declare type ChatConnectorParams<TUiMessage extends UIMessage = UIMessage> = ({
686
785
  * Configuration for client-side tools.
687
786
  */
688
787
  tools?: Record<string, Omit<UserClientSideTool, 'layoutComponent'>>;
788
+ /**
789
+ * Identifier of this type of chat widget. This is used for the key in renderState.
790
+ * @default 'chat'
791
+ */
792
+ type?: string;
689
793
  };
690
794
 
691
- declare type ChatInit<TUiMessage extends UIMessage> = ChatInitWithoutTransport<TUiMessage> & ChatTransport;
795
+ declare type ChatCSSClasses = Partial<ChatClassNames>;
796
+
797
+ declare interface ChatInit<UI_MESSAGE extends UIMessage> {
798
+ id?: string;
799
+ messages?: UI_MESSAGE[];
800
+ generateId?: IdGenerator;
801
+ transport?: ChatTransport<UI_MESSAGE>;
802
+ onError?: ChatOnErrorCallback;
803
+ onToolCall?: ChatOnToolCallCallback<UI_MESSAGE>;
804
+ onFinish?: ChatOnFinishCallback<UI_MESSAGE>;
805
+ onData?: ChatOnDataCallback<UI_MESSAGE>;
806
+ sendAutomaticallyWhen?: (options: {
807
+ messages: UI_MESSAGE[];
808
+ }) => boolean | PromiseLike<boolean>;
809
+ }
810
+
811
+ declare type ChatInit_2<TUiMessage extends UIMessage> = ChatInitWithoutTransport<TUiMessage> & ChatTransport_2;
812
+
813
+ declare type ChatInitWithoutTransport<TUiMessage extends UIMessage> = Omit<ChatInit<TUiMessage>, 'transport'>;
814
+
815
+ declare type ChatOnDataCallback<UI_MESSAGE extends UIMessage> = (dataPart: DataUIPart<InferUIMessageData<UI_MESSAGE>>) => void;
816
+
817
+ declare type ChatOnErrorCallback = (error: Error) => void;
692
818
 
693
- declare type ChatInitWithoutTransport<TUiMessage extends UIMessage> = Omit<ChatInit_2<TUiMessage>, 'transport'>;
819
+ declare type ChatOnFinishCallback<UI_MESSAGE extends UIMessage> = (options: {
820
+ message: UI_MESSAGE;
821
+ messages: UI_MESSAGE[];
822
+ isAbort: boolean;
823
+ isDisconnect: boolean;
824
+ isError: boolean;
825
+ }) => void;
826
+
827
+ declare type ChatOnToolCallCallback<UI_MESSAGE extends UIMessage = UIMessage> = (options: {
828
+ toolCall: InferUIMessageToolCall<UI_MESSAGE>;
829
+ }) => void | PromiseLike<void>;
694
830
 
695
831
  declare type ChatRenderState<TUiMessage extends UIMessage = UIMessage> = {
696
832
  indexUiState: IndexUiState;
@@ -725,9 +861,29 @@ declare type ChatRenderState<TUiMessage extends UIMessage = UIMessage> = {
725
861
  * Tools configuration with addToolResult bound, ready to be used by the UI.
726
862
  */
727
863
  tools: ClientSideTools;
864
+ /**
865
+ * Suggestions received from the AI model.
866
+ */
867
+ suggestions?: string[];
728
868
  } & Pick<AbstractChat<TUiMessage>, 'addToolResult' | 'clearError' | 'error' | 'id' | 'messages' | 'regenerate' | 'resumeStream' | 'sendMessage' | 'status' | 'stop'>;
729
869
 
730
- declare class ChatState<TUiMessage extends UIMessage> implements ChatState_2<TUiMessage> {
870
+ declare type ChatRequestOptions = {
871
+ headers?: Record<string, string> | Headers;
872
+ body?: object;
873
+ metadata?: unknown;
874
+ };
875
+
876
+ declare interface ChatState<UI_MESSAGE extends UIMessage> {
877
+ status: ChatStatus;
878
+ error: Error | undefined;
879
+ messages: UI_MESSAGE[];
880
+ pushMessage: (message: UI_MESSAGE) => void;
881
+ popMessage: () => void;
882
+ replaceMessage: (index: number, message: UI_MESSAGE) => void;
883
+ snapshot: <T>(thing: T) => T;
884
+ }
885
+
886
+ declare class ChatState_2<TUiMessage extends UIMessage> implements ChatState<TUiMessage> {
731
887
  _messages: TUiMessage[];
732
888
  _status: ChatStatus;
733
889
  _error: Error | undefined;
@@ -753,7 +909,222 @@ declare class ChatState<TUiMessage extends UIMessage> implements ChatState_2<TUi
753
909
  _callErrorCallbacks: () => void;
754
910
  }
755
911
 
756
- declare type ChatTransport = {
912
+ /**
913
+ * Chat status:
914
+ * - `submitted`: The message has been sent to the API and we're awaiting the start of the response stream.
915
+ * - `streaming`: The response is actively streaming in from the API, receiving chunks of data.
916
+ * - `ready`: The full response has been received and processed; a new user message can be submitted.
917
+ * - `error`: An error occurred during the API request, preventing successful completion.
918
+ */
919
+ declare type ChatStatus = 'submitted' | 'streaming' | 'ready' | 'error';
920
+
921
+ declare type ChatTemplates<THit extends NonNullable<object> = BaseHit> = Partial<{
922
+ /**
923
+ * Template to use for each result. This template will receive an object containing a single record.
924
+ */
925
+ item: TemplateWithBindEvent<Hit<THit>>;
926
+ /**
927
+ * Templates to use for the header.
928
+ */
929
+ header: Partial<{
930
+ /**
931
+ * Template to use for the chat header.
932
+ */
933
+ layout: Template<ChatHeaderProps>;
934
+ /**
935
+ * Optional close icon
936
+ */
937
+ closeIcon: Template;
938
+ /**
939
+ * Optional minimize icon
940
+ */
941
+ minimizeIcon?: Template;
942
+ /**
943
+ * Optional maximize icon
944
+ */
945
+ maximizeIcon?: Template<{
946
+ maximized: boolean;
947
+ }>;
948
+ /**
949
+ * Optional title icon (defaults to sparkles)
950
+ */
951
+ titleIcon?: Template;
952
+ /**
953
+ * The title to display in the header
954
+ */
955
+ titleText: string;
956
+ /**
957
+ * Accessible label for the minimize button
958
+ */
959
+ minimizeLabelText: string;
960
+ /**
961
+ * Accessible label for the maximize button
962
+ */
963
+ maximizeLabelText: string;
964
+ /**
965
+ * Accessible label for the close button
966
+ */
967
+ closeLabelText: string;
968
+ /**
969
+ * Text for the clear button
970
+ */
971
+ clearLabelText: string;
972
+ }>;
973
+ /**
974
+ * Templates to use for the messages.
975
+ */
976
+ messages: Partial<{
977
+ /**
978
+ * Template to use when loading messages
979
+ */
980
+ loader: Template<ChatMessageLoaderProps>;
981
+ /**
982
+ * Template to use when there is an error loading messages
983
+ */
984
+ error: Template<ChatMessageErrorProps>;
985
+ /**
986
+ * Label for the scroll to bottom button
987
+ */
988
+ scrollToBottomLabelText?: string;
989
+ /**
990
+ * Text to display in the loader
991
+ */
992
+ loaderText?: string;
993
+ /**
994
+ * Label for the copy to clipboard action
995
+ */
996
+ copyToClipboardLabelText?: string;
997
+ /**
998
+ * Label for the regenerate action
999
+ */
1000
+ regenerateLabelText?: string;
1001
+ }>;
1002
+ /**
1003
+ * Templates to use for each message.
1004
+ */
1005
+ message: Partial<{
1006
+ /**
1007
+ * Label for the message actions
1008
+ */
1009
+ actionsLabelText?: string;
1010
+ /**
1011
+ * Label for the message container
1012
+ */
1013
+ messageLabelText?: string;
1014
+ }>;
1015
+ /**
1016
+ * Templates to use for the assistant message.
1017
+ */
1018
+ assistantMessage: Partial<{
1019
+ /**
1020
+ * Template to use for the assistant message leading content.
1021
+ */
1022
+ leading: Template;
1023
+ /**
1024
+ * Template to use for the assistant message footer content.
1025
+ */
1026
+ footer: Template;
1027
+ }>;
1028
+ /**
1029
+ * Templates to use for the user message.
1030
+ */
1031
+ userMessage: Partial<{
1032
+ /**
1033
+ * Template to use for the user message leading content.
1034
+ */
1035
+ leading: Template;
1036
+ /**
1037
+ * Template to use for the user message footer content.
1038
+ */
1039
+ footer: Template;
1040
+ }>;
1041
+ /**
1042
+ * Templates to use for the prompt.
1043
+ */
1044
+ prompt: Partial<{
1045
+ /**
1046
+ * Template to use for the chat prompt.
1047
+ */
1048
+ layout: Template<ChatPromptProps>;
1049
+ /**
1050
+ * Template to use for the prompt header.
1051
+ */
1052
+ header: Template;
1053
+ /**
1054
+ * Template to use for the prompt footer.
1055
+ */
1056
+ footer: Template;
1057
+ /**
1058
+ * The label for the textarea
1059
+ */
1060
+ textareaLabelText: string;
1061
+ /**
1062
+ * The placeholder text for the textarea
1063
+ */
1064
+ textareaPlaceholderText: string;
1065
+ /**
1066
+ * The tooltip for the submit button when message is empty
1067
+ */
1068
+ emptyMessageTooltipText: string;
1069
+ /**
1070
+ * The tooltip for the stop button
1071
+ */
1072
+ stopResponseTooltipText: string;
1073
+ /**
1074
+ * The tooltip for the send button
1075
+ */
1076
+ sendMessageTooltipText: string;
1077
+ /**
1078
+ * The disclaimer text shown in the footer
1079
+ */
1080
+ disclaimerText: string;
1081
+ }>;
1082
+ /**
1083
+ * Templates to use for the toggle button.
1084
+ */
1085
+ toggleButton: Partial<{
1086
+ /**
1087
+ * Template to use for the toggle button layout.
1088
+ */
1089
+ layout: Template<ChatToggleButtonProps>;
1090
+ /**
1091
+ * Template to use for the toggle button icon.
1092
+ */
1093
+ icon: Template<{
1094
+ isOpen: boolean;
1095
+ }>;
1096
+ }>;
1097
+ /**
1098
+ * Template to use for the message actions.
1099
+ */
1100
+ actions: Template<{
1101
+ actions: ChatMessageActionProps[];
1102
+ message: ChatMessageBase;
1103
+ }>;
1104
+ /**
1105
+ * Template to use for prompt suggestions.
1106
+ */
1107
+ suggestions: Template<{
1108
+ suggestions: string[];
1109
+ onSuggestionClick: (suggestion: string) => void;
1110
+ }>;
1111
+ }>;
1112
+
1113
+ declare interface ChatTransport<UI_MESSAGE extends UIMessage> {
1114
+ sendMessages: (options: {
1115
+ chatId: string;
1116
+ messages: UI_MESSAGE[];
1117
+ abortSignal: AbortSignal;
1118
+ requestMetadata?: unknown;
1119
+ trigger: 'submit-message' | 'regenerate-message';
1120
+ messageId?: string;
1121
+ } & ChatRequestOptions) => Promise<ReadableStream<UIMessageChunk>>;
1122
+ reconnectToStream: (options: {
1123
+ chatId: string;
1124
+ } & ChatRequestOptions) => Promise<ReadableStream<UIMessageChunk> | null>;
1125
+ }
1126
+
1127
+ declare type ChatTransport_2 = {
757
1128
  agentId?: string;
758
1129
  transport?: ConstructorParameters<typeof DefaultChatTransport>[0];
759
1130
  };
@@ -766,6 +1137,32 @@ declare type ChatWidgetDescription<TUiMessage extends UIMessage = UIMessage> = {
766
1137
  };
767
1138
  };
768
1139
 
1140
+ declare type ChatWidgetParams<THit extends RecordWithObjectID = RecordWithObjectID> = {
1141
+ /**
1142
+ * CSS Selector or HTMLElement to insert the widget.
1143
+ */
1144
+ container: string | HTMLElement;
1145
+ /**
1146
+ * Return the URL of the main search page with the `nextUiState`.
1147
+ * This is used to navigate to the main search page when the user clicks on "View all" in the search tool.
1148
+ *
1149
+ * @example (nextUiState) => `/search?${qs.stringify(nextUiState)}`
1150
+ */
1151
+ getSearchPageURL?: (nextUiState: IndexUiState) => string;
1152
+ /**
1153
+ * Client-side tools to add to the chat
1154
+ */
1155
+ tools?: UserClientSideToolsWithTemplate;
1156
+ /**
1157
+ * Templates to use for the widget.
1158
+ */
1159
+ templates?: ChatTemplates<THit>;
1160
+ /**
1161
+ * CSS classes to add.
1162
+ */
1163
+ cssClasses?: ChatCSSClasses;
1164
+ };
1165
+
769
1166
  declare const clearRefinements: ClearRefinementsWidget;
770
1167
 
771
1168
  declare type ClearRefinementsConnector = Connector<ClearRefinementsWidgetDescription, ClearRefinementsConnectorParams>;
@@ -933,8 +1330,6 @@ declare const connectAutocomplete: AutocompleteConnector;
933
1330
 
934
1331
  declare const connectBreadcrumb: BreadcrumbConnector;
935
1332
 
936
- declare const connectChat: () => never;
937
-
938
1333
  declare const connectClearRefinements: ClearRefinementsConnector;
939
1334
 
940
1335
  declare const connectConfigure: ConfigureConnector;
@@ -943,6 +1338,8 @@ declare const connectCurrentRefinements: CurrentRefinementsConnector;
943
1338
 
944
1339
  declare const connectDynamicWidgets: DynamicWidgetsConnector;
945
1340
 
1341
+ declare const connectFilterSuggestions: FilterSuggestionsConnector;
1342
+
946
1343
  /**
947
1344
  * **HierarchicalMenu** connector provides the logic to build a custom widget
948
1345
  * that will give the user the ability to explore facets in a tree-like structure.
@@ -1314,7 +1711,8 @@ declare namespace connectors {
1314
1711
  connectRelevantSort,
1315
1712
  _default_6 as connectFrequentlyBoughtTogether,
1316
1713
  _default_7 as connectLookingSimilar,
1317
- connectChat
1714
+ _default_8 as connectChat,
1715
+ connectFilterSuggestions
1318
1716
  }
1319
1717
  }
1320
1718
 
@@ -1441,6 +1839,11 @@ declare function createMetadataMiddleware({ $$internal, }?: {
1441
1839
 
1442
1840
  declare const createRouterMiddleware: <TUiState extends UiState = UiState, TRouteState = TUiState>(props?: RouterProps<TUiState, TRouteState>) => InternalMiddleware<TUiState>;
1443
1841
 
1842
+ declare type CreateUIMessage<UI_MESSAGE extends UIMessage> = Omit<UI_MESSAGE, 'id' | 'role'> & {
1843
+ id?: UI_MESSAGE['id'];
1844
+ role?: UI_MESSAGE['role'];
1845
+ };
1846
+
1444
1847
  /**
1445
1848
  * Creates the URL for the given value.
1446
1849
  */
@@ -1622,6 +2025,27 @@ declare type CustomSendEventForHits = (customPayload: any) => void;
1622
2025
 
1623
2026
  declare type CustomSendEventForToggle = (customPayload: any) => void;
1624
2027
 
2028
+ declare type DataUIMessageChunk<DATA_TYPES extends UIDataTypes> = ValueOf<{
2029
+ [NAME in keyof DATA_TYPES & string]: {
2030
+ type: `data-${NAME}`;
2031
+ id?: string;
2032
+ data: DATA_TYPES[NAME];
2033
+ transient?: boolean;
2034
+ };
2035
+ }>;
2036
+
2037
+ declare type DataUIPart<DATA_TYPES extends UIDataTypes> = ValueOf<{
2038
+ [NAME in keyof DATA_TYPES & string]: {
2039
+ type: `data-${NAME}`;
2040
+ id?: string;
2041
+ data: DATA_TYPES[NAME];
2042
+ };
2043
+ }>;
2044
+
2045
+ declare type DeepPartial<T> = T extends object ? {
2046
+ [P in keyof T]?: DeepPartial<T[P]>;
2047
+ } : T;
2048
+
1625
2049
  declare const _default: <TWidgetParams>(renderFn: Renderer<HitsRenderState, TWidgetParams & HitsConnectorParams>, unmountFn?: Unmounter) => <THit extends NonNullable<object> = BaseHit>(widgetParams: TWidgetParams & HitsConnectorParams<THit>) => {
1626
2050
  $$type: "ais.hits";
1627
2051
  init(initOptions: InitOptions): void;
@@ -1730,9 +2154,9 @@ declare const _default: <TWidgetParams>(renderFn: Renderer<HitsRenderState, TWid
1730
2154
  }): SearchParameters;
1731
2155
  };
1732
2156
 
1733
- declare const _default_10: <THit extends NonNullable<object> = BaseHit>(widgetParams: InfiniteHitsWidgetParams<THit> & InfiniteHitsConnectorParams<THit>) => {
1734
- $$widgetType: "ais.infiniteHits";
1735
- $$type: "ais.infiniteHits";
2157
+ declare const _default_10: <THit extends NonNullable<object> = BaseHit>(widgetParams: HitsWidgetParams<THit> & HitsConnectorParams<THit>) => {
2158
+ $$widgetType: "ais.hits";
2159
+ $$type: "ais.hits";
1736
2160
  init(initOptions: InitOptions): void;
1737
2161
  render(renderOptions: RenderOptions): void;
1738
2162
  getRenderState(renderState: {
@@ -1780,71 +2204,180 @@ declare const _default_10: <THit extends NonNullable<object> = BaseHit>(widgetPa
1780
2204
  voiceSearch?: WidgetRenderState<VoiceSearchRenderState, VoiceSearchConnectorParams> | undefined;
1781
2205
  analytics?: WidgetRenderState<Record<string, unknown>, AnalyticsWidgetParams> | undefined;
1782
2206
  places?: WidgetRenderState<Record<string, unknown>, PlacesWidgetParams> | undefined;
1783
- }, renderOptions: InitOptions | RenderOptions): IndexRenderState & InfiniteHitsWidgetDescription["indexRenderState"];
1784
- getWidgetRenderState({ results, helper, parent, state: existingState, instantSearchInstance, }: InitOptions | RenderOptions): {
1785
- hits: Hit<THit>[];
1786
- items: Hit<THit>[];
1787
- currentPageHits: Hit<THit>[];
2207
+ }, renderOptions: InitOptions | RenderOptions): IndexRenderState & HitsWidgetDescription["indexRenderState"];
2208
+ getWidgetRenderState({ results, helper, instantSearchInstance }: InitOptions | RenderOptions): {
2209
+ hits: never[];
2210
+ items: never[];
2211
+ results: undefined;
2212
+ banner: undefined;
1788
2213
  sendEvent: SendEventForHits;
1789
2214
  bindEvent: BindEventForHits;
2215
+ widgetParams: Partial<HitsWidgetParams<BaseHit>> & HitsConnectorParams<THit>;
2216
+ } | {
2217
+ hits: Hit<BaseHit>[] | Hit<THit>[];
2218
+ items: Hit<BaseHit>[] | Hit<THit>[];
2219
+ results: SearchResults<any>;
1790
2220
  banner: Banner | undefined;
1791
- results: SearchResults<any> | undefined;
1792
- showPrevious: () => void;
1793
- showMore: () => void;
1794
- isFirstPage: boolean;
1795
- isLastPage: boolean;
1796
- widgetParams: Partial<InfiniteHitsWidgetParams<BaseHit>> & InfiniteHitsConnectorParams<THit>;
2221
+ sendEvent: SendEventForHits;
2222
+ bindEvent: BindEventForHits;
2223
+ widgetParams: Partial<HitsWidgetParams<BaseHit>> & HitsConnectorParams<THit>;
1797
2224
  };
1798
2225
  dispose({ state }: DisposeOptions): SearchParameters;
1799
- getWidgetUiState(uiState: {
1800
- page?: number | undefined;
1801
- query?: string | undefined;
1802
- configure?: PlainSearchParameters | undefined;
1803
- geoSearch?: {
1804
- boundingBox: string;
1805
- } | undefined;
1806
- hierarchicalMenu?: {
1807
- [rootAttribute: string]: string[];
1808
- } | undefined;
1809
- hitsPerPage?: number | undefined;
1810
- menu?: {
1811
- [attribute: string]: string;
1812
- } | undefined;
1813
- numericMenu?: {
1814
- [attribute: string]: string;
1815
- } | undefined;
1816
- range?: {
1817
- [attribute: string]: string;
1818
- } | undefined;
1819
- ratingMenu?: {
1820
- [attribute: string]: number | undefined;
1821
- } | undefined;
1822
- refinementList?: {
1823
- [attribute: string]: string[];
1824
- } | undefined;
1825
- relevantSort?: number | undefined;
1826
- sortBy?: string | undefined;
1827
- toggle?: {
1828
- [attribute: string]: boolean;
1829
- } | undefined;
1830
- places?: {
1831
- query: string;
1832
- position: string;
1833
- } | undefined;
1834
- }, { searchParameters }: {
1835
- searchParameters: SearchParameters;
1836
- helper: AlgoliaSearchHelper;
1837
- }): {
1838
- page?: number | undefined;
1839
- query?: string | undefined;
1840
- configure?: PlainSearchParameters | undefined;
1841
- geoSearch?: {
1842
- boundingBox: string;
1843
- } | undefined;
1844
- hierarchicalMenu?: {
1845
- [rootAttribute: string]: string[];
1846
- } | undefined;
1847
- hitsPerPage?: number | undefined;
2226
+ getWidgetSearchParameters(state: SearchParameters, _uiState: {
2227
+ uiState: {
2228
+ query?: string | undefined;
2229
+ configure?: PlainSearchParameters | undefined;
2230
+ geoSearch?: {
2231
+ boundingBox: string;
2232
+ } | undefined;
2233
+ hierarchicalMenu?: {
2234
+ [rootAttribute: string]: string[];
2235
+ } | undefined;
2236
+ hitsPerPage?: number | undefined;
2237
+ page?: number | undefined;
2238
+ menu?: {
2239
+ [attribute: string]: string;
2240
+ } | undefined;
2241
+ numericMenu?: {
2242
+ [attribute: string]: string;
2243
+ } | undefined;
2244
+ range?: {
2245
+ [attribute: string]: string;
2246
+ } | undefined;
2247
+ ratingMenu?: {
2248
+ [attribute: string]: number | undefined;
2249
+ } | undefined;
2250
+ refinementList?: {
2251
+ [attribute: string]: string[];
2252
+ } | undefined;
2253
+ relevantSort?: number | undefined;
2254
+ sortBy?: string | undefined;
2255
+ toggle?: {
2256
+ [attribute: string]: boolean;
2257
+ } | undefined;
2258
+ places?: {
2259
+ query: string;
2260
+ position: string;
2261
+ } | undefined;
2262
+ };
2263
+ }): SearchParameters;
2264
+ };
2265
+
2266
+ declare const _default_11: <THit extends NonNullable<object> = BaseHit>(widgetParams: InfiniteHitsWidgetParams<THit> & InfiniteHitsConnectorParams<THit>) => {
2267
+ $$widgetType: "ais.infiniteHits";
2268
+ $$type: "ais.infiniteHits";
2269
+ init(initOptions: InitOptions): void;
2270
+ render(renderOptions: RenderOptions): void;
2271
+ getRenderState(renderState: {
2272
+ answers?: WidgetRenderState<AnswersRenderState, AnswersConnectorParams> | undefined;
2273
+ autocomplete?: WidgetRenderState<AutocompleteRenderState, AutocompleteConnectorParams> | undefined;
2274
+ breadcrumb?: {
2275
+ [rootAttribute: string]: WidgetRenderState<BreadcrumbRenderState, BreadcrumbConnectorParams>;
2276
+ } | undefined;
2277
+ chat?: WidgetRenderState<ChatRenderState<UIMessage<unknown, UIDataTypes, UITools>>, ChatConnectorParams<UIMessage<unknown, UIDataTypes, UITools>>> | undefined;
2278
+ clearRefinements?: WidgetRenderState<ClearRefinementsRenderState, ClearRefinementsConnectorParams> | undefined;
2279
+ configure?: WidgetRenderState<ConfigureRenderState, ConfigureConnectorParams> | undefined;
2280
+ currentRefinements?: WidgetRenderState<CurrentRefinementsRenderState, CurrentRefinementsConnectorParams> | undefined;
2281
+ geoSearch?: WidgetRenderState<GeoSearchRenderState<GeoHit>, GeoSearchConnectorParams<GeoHit>> | undefined;
2282
+ hierarchicalMenu?: {
2283
+ [rootAttribute: string]: WidgetRenderState<HierarchicalMenuRenderState, HierarchicalMenuConnectorParams>;
2284
+ } | undefined;
2285
+ hits?: WidgetRenderState<HitsRenderState<BaseHit>, HitsConnectorParams<BaseHit>> | undefined;
2286
+ hitsPerPage?: WidgetRenderState<HitsPerPageRenderState, HitsPerPageConnectorParams> | undefined;
2287
+ infiniteHits?: WidgetRenderState<InfiniteHitsRenderState<BaseHit>, InfiniteHitsConnectorParams<BaseHit>> | undefined;
2288
+ menu?: {
2289
+ [attribute: string]: WidgetRenderState<MenuRenderState, MenuConnectorParams>;
2290
+ } | undefined;
2291
+ numericMenu?: {
2292
+ [attribute: string]: WidgetRenderState<NumericMenuRenderState, NumericMenuConnectorParams>;
2293
+ } | undefined;
2294
+ pagination?: WidgetRenderState<PaginationRenderState, PaginationConnectorParams> | undefined;
2295
+ poweredBy?: WidgetRenderState<PoweredByRenderState, PoweredByConnectorParams> | undefined;
2296
+ queryRules?: WidgetRenderState<QueryRulesRenderState, QueryRulesConnectorParams> | undefined;
2297
+ range?: {
2298
+ [attribute: string]: WidgetRenderState<RangeRenderState, RangeConnectorParams>;
2299
+ } | undefined;
2300
+ ratingMenu?: {
2301
+ [attribute: string]: WidgetRenderState<RatingMenuRenderState, RatingMenuConnectorParams>;
2302
+ } | undefined;
2303
+ refinementList?: {
2304
+ [attribute: string]: WidgetRenderState<RefinementListRenderState, RefinementListConnectorParams>;
2305
+ } | undefined;
2306
+ relevantSort?: WidgetRenderState<RelevantSortRenderState, RelevantSortConnectorParams> | undefined;
2307
+ searchBox?: WidgetRenderState<SearchBoxRenderState, SearchBoxConnectorParams> | undefined;
2308
+ sortBy?: WidgetRenderState<SortByRenderState, SortByConnectorParams> | undefined;
2309
+ stats?: WidgetRenderState<StatsRenderState, StatsConnectorParams> | undefined;
2310
+ toggleRefinement?: {
2311
+ [attribute: string]: WidgetRenderState<ToggleRefinementRenderState, ToggleRefinementConnectorParams>;
2312
+ } | undefined;
2313
+ voiceSearch?: WidgetRenderState<VoiceSearchRenderState, VoiceSearchConnectorParams> | undefined;
2314
+ analytics?: WidgetRenderState<Record<string, unknown>, AnalyticsWidgetParams> | undefined;
2315
+ places?: WidgetRenderState<Record<string, unknown>, PlacesWidgetParams> | undefined;
2316
+ }, renderOptions: InitOptions | RenderOptions): IndexRenderState & InfiniteHitsWidgetDescription["indexRenderState"];
2317
+ getWidgetRenderState({ results, helper, parent, state: existingState, instantSearchInstance, }: InitOptions | RenderOptions): {
2318
+ hits: Hit<THit>[];
2319
+ items: Hit<THit>[];
2320
+ currentPageHits: Hit<THit>[];
2321
+ sendEvent: SendEventForHits;
2322
+ bindEvent: BindEventForHits;
2323
+ banner: Banner | undefined;
2324
+ results: SearchResults<any> | undefined;
2325
+ showPrevious: () => void;
2326
+ showMore: () => void;
2327
+ isFirstPage: boolean;
2328
+ isLastPage: boolean;
2329
+ widgetParams: Partial<InfiniteHitsWidgetParams<BaseHit>> & InfiniteHitsConnectorParams<THit>;
2330
+ };
2331
+ dispose({ state }: DisposeOptions): SearchParameters;
2332
+ getWidgetUiState(uiState: {
2333
+ page?: number | undefined;
2334
+ query?: string | undefined;
2335
+ configure?: PlainSearchParameters | undefined;
2336
+ geoSearch?: {
2337
+ boundingBox: string;
2338
+ } | undefined;
2339
+ hierarchicalMenu?: {
2340
+ [rootAttribute: string]: string[];
2341
+ } | undefined;
2342
+ hitsPerPage?: number | undefined;
2343
+ menu?: {
2344
+ [attribute: string]: string;
2345
+ } | undefined;
2346
+ numericMenu?: {
2347
+ [attribute: string]: string;
2348
+ } | undefined;
2349
+ range?: {
2350
+ [attribute: string]: string;
2351
+ } | undefined;
2352
+ ratingMenu?: {
2353
+ [attribute: string]: number | undefined;
2354
+ } | undefined;
2355
+ refinementList?: {
2356
+ [attribute: string]: string[];
2357
+ } | undefined;
2358
+ relevantSort?: number | undefined;
2359
+ sortBy?: string | undefined;
2360
+ toggle?: {
2361
+ [attribute: string]: boolean;
2362
+ } | undefined;
2363
+ places?: {
2364
+ query: string;
2365
+ position: string;
2366
+ } | undefined;
2367
+ }, { searchParameters }: {
2368
+ searchParameters: SearchParameters;
2369
+ helper: AlgoliaSearchHelper;
2370
+ }): {
2371
+ page?: number | undefined;
2372
+ query?: string | undefined;
2373
+ configure?: PlainSearchParameters | undefined;
2374
+ geoSearch?: {
2375
+ boundingBox: string;
2376
+ } | undefined;
2377
+ hierarchicalMenu?: {
2378
+ [rootAttribute: string]: string[];
2379
+ } | undefined;
2380
+ hitsPerPage?: number | undefined;
1848
2381
  menu?: {
1849
2382
  [attribute: string]: string;
1850
2383
  } | undefined;
@@ -1910,9 +2443,9 @@ declare const _default_10: <THit extends NonNullable<object> = BaseHit>(widgetPa
1910
2443
  }): SearchParameters;
1911
2444
  };
1912
2445
 
1913
- declare const _default_11: PlacesWidget;
2446
+ declare const _default_12: PlacesWidget;
1914
2447
 
1915
- declare const _default_12: <THit extends NonNullable<object> = BaseHit>(widgetParams: RelatedProductsWidgetParams<THit> & RelatedProductsConnectorParams<THit>) => {
2448
+ declare const _default_13: <THit extends NonNullable<object> = BaseHit>(widgetParams: RelatedProductsWidgetParams<THit> & RelatedProductsConnectorParams<THit>) => {
1916
2449
  $$widgetType: "ais.relatedProducts";
1917
2450
  dependsOn: "recommend";
1918
2451
  $$type: "ais.relatedProducts";
@@ -2106,7 +2639,7 @@ declare const _default_12: <THit extends NonNullable<object> = BaseHit>(widgetPa
2106
2639
  getWidgetParameters(state: RecommendParameters): RecommendParameters;
2107
2640
  };
2108
2641
 
2109
- declare const _default_13: <THit extends NonNullable<object> = BaseHit>(widgetParams: TrendingItemsWidgetParams<THit> & TrendingItemsConnectorParams<THit>) => {
2642
+ declare const _default_14: <THit extends NonNullable<object> = BaseHit>(widgetParams: TrendingItemsWidgetParams<THit> & TrendingItemsConnectorParams<THit>) => {
2110
2643
  $$widgetType: "ais.trendingItems";
2111
2644
  dependsOn: "recommend";
2112
2645
  $$type: "ais.trendingItems";
@@ -2300,7 +2833,7 @@ declare const _default_13: <THit extends NonNullable<object> = BaseHit>(widgetPa
2300
2833
  getWidgetParameters(state: RecommendParameters): RecommendParameters;
2301
2834
  };
2302
2835
 
2303
- declare const _default_14: <THit extends NonNullable<object> = BaseHit>(widgetParams: FrequentlyBoughtTogetherWidgetParams<THit> & FrequentlyBoughtTogetherConnectorParams<THit>) => {
2836
+ declare const _default_15: <THit extends NonNullable<object> = BaseHit>(widgetParams: FrequentlyBoughtTogetherWidgetParams<THit> & FrequentlyBoughtTogetherConnectorParams<THit>) => {
2304
2837
  $$widgetType: "ais.frequentlyBoughtTogether";
2305
2838
  dependsOn: "recommend";
2306
2839
  $$type: "ais.frequentlyBoughtTogether";
@@ -2494,7 +3027,7 @@ declare const _default_14: <THit extends NonNullable<object> = BaseHit>(widgetPa
2494
3027
  getWidgetParameters(state: RecommendParameters): RecommendParameters;
2495
3028
  };
2496
3029
 
2497
- declare const _default_15: <THit extends NonNullable<object> = BaseHit>(widgetParams: LookingSimilarWidgetParams<THit> & LookingSimilarConnectorParams<THit>) => {
3030
+ declare const _default_16: <THit extends NonNullable<object> = BaseHit>(widgetParams: LookingSimilarWidgetParams<THit> & LookingSimilarConnectorParams<THit>) => {
2498
3031
  $$widgetType: "ais.lookingSimilar";
2499
3032
  dependsOn: "recommend";
2500
3033
  $$type: "ais.lookingSimilar";
@@ -2688,8 +3221,9 @@ declare const _default_15: <THit extends NonNullable<object> = BaseHit>(widgetPa
2688
3221
  getWidgetParameters(state: RecommendParameters): RecommendParameters;
2689
3222
  };
2690
3223
 
2691
- declare const _default_2: <TWidgetParams extends UnknownWidgetParams>(renderFn: Renderer<InfiniteHitsRenderState, TWidgetParams>, unmountFn?: Unmounter) => <THit extends NonNullable<object> = BaseHit>(widgetParams: TWidgetParams & InfiniteHitsConnectorParams<THit>) => {
2692
- $$type: "ais.infiniteHits";
3224
+ declare const _default_17: <THit extends RecordWithObjectID = RecordWithObjectID>(widgetParams: ChatWidgetParams<THit> & ChatConnectorParams) => {
3225
+ $$widgetType: "ais.chat";
3226
+ $$type: "ais.chat";
2693
3227
  init(initOptions: InitOptions): void;
2694
3228
  render(renderOptions: RenderOptions): void;
2695
3229
  getRenderState(renderState: {
@@ -2737,105 +3271,1083 @@ declare const _default_2: <TWidgetParams extends UnknownWidgetParams>(renderFn:
2737
3271
  voiceSearch?: WidgetRenderState<VoiceSearchRenderState, VoiceSearchConnectorParams> | undefined;
2738
3272
  analytics?: WidgetRenderState<Record<string, unknown>, AnalyticsWidgetParams> | undefined;
2739
3273
  places?: WidgetRenderState<Record<string, unknown>, PlacesWidgetParams> | undefined;
2740
- }, renderOptions: InitOptions | RenderOptions): IndexRenderState & InfiniteHitsWidgetDescription["indexRenderState"];
2741
- getWidgetRenderState({ results, helper, parent, state: existingState, instantSearchInstance, }: InitOptions | RenderOptions): {
2742
- hits: Hit<THit>[];
2743
- items: Hit<THit>[];
2744
- currentPageHits: Hit<THit>[];
2745
- sendEvent: SendEventForHits;
2746
- bindEvent: BindEventForHits;
2747
- banner: Banner | undefined;
2748
- results: SearchResults<any> | undefined;
2749
- showPrevious: () => void;
2750
- showMore: () => void;
2751
- isFirstPage: boolean;
2752
- isLastPage: boolean;
2753
- widgetParams: TWidgetParams & InfiniteHitsConnectorParams<THit>;
2754
- };
2755
- dispose({ state }: DisposeOptions): SearchParameters;
2756
- getWidgetUiState(uiState: {
2757
- page?: number | undefined;
2758
- query?: string | undefined;
2759
- configure?: PlainSearchParameters | undefined;
2760
- geoSearch?: {
2761
- boundingBox: string;
2762
- } | undefined;
2763
- hierarchicalMenu?: {
2764
- [rootAttribute: string]: string[];
2765
- } | undefined;
2766
- hitsPerPage?: number | undefined;
2767
- menu?: {
2768
- [attribute: string]: string;
2769
- } | undefined;
2770
- numericMenu?: {
2771
- [attribute: string]: string;
2772
- } | undefined;
2773
- range?: {
2774
- [attribute: string]: string;
2775
- } | undefined;
2776
- ratingMenu?: {
2777
- [attribute: string]: number | undefined;
2778
- } | undefined;
2779
- refinementList?: {
2780
- [attribute: string]: string[];
2781
- } | undefined;
2782
- relevantSort?: number | undefined;
2783
- sortBy?: string | undefined;
2784
- toggle?: {
2785
- [attribute: string]: boolean;
2786
- } | undefined;
2787
- places?: {
2788
- query: string;
2789
- position: string;
2790
- } | undefined;
2791
- }, { searchParameters }: {
2792
- searchParameters: SearchParameters;
2793
- helper: AlgoliaSearchHelper;
2794
- }): {
2795
- page?: number | undefined;
2796
- query?: string | undefined;
2797
- configure?: PlainSearchParameters | undefined;
2798
- geoSearch?: {
2799
- boundingBox: string;
2800
- } | undefined;
2801
- hierarchicalMenu?: {
2802
- [rootAttribute: string]: string[];
2803
- } | undefined;
2804
- hitsPerPage?: number | undefined;
2805
- menu?: {
2806
- [attribute: string]: string;
2807
- } | undefined;
2808
- numericMenu?: {
2809
- [attribute: string]: string;
2810
- } | undefined;
2811
- range?: {
2812
- [attribute: string]: string;
2813
- } | undefined;
2814
- ratingMenu?: {
2815
- [attribute: string]: number | undefined;
2816
- } | undefined;
2817
- refinementList?: {
2818
- [attribute: string]: string[];
2819
- } | undefined;
2820
- relevantSort?: number | undefined;
2821
- sortBy?: string | undefined;
2822
- toggle?: {
2823
- [attribute: string]: boolean;
2824
- } | undefined;
2825
- places?: {
3274
+ }, renderOptions: InitOptions | RenderOptions): IndexRenderState & ChatWidgetDescription["indexRenderState"];
3275
+ getWidgetRenderState(renderOptions: InitOptions | RenderOptions): {
3276
+ indexUiState: Partial<{
2826
3277
  query: string;
2827
- position: string;
2828
- } | undefined;
2829
- };
2830
- getWidgetSearchParameters(searchParameters: SearchParameters, { uiState }: {
2831
- uiState: {
2832
- page?: number | undefined;
2833
- query?: string | undefined;
2834
- configure?: PlainSearchParameters | undefined;
2835
- geoSearch?: {
3278
+ } & {
3279
+ configure: PlainSearchParameters;
3280
+ } & {
3281
+ geoSearch: {
2836
3282
  boundingBox: string;
2837
- } | undefined;
2838
- hierarchicalMenu?: {
3283
+ };
3284
+ } & {
3285
+ hierarchicalMenu: {
3286
+ [rootAttribute: string]: string[];
3287
+ };
3288
+ } & {
3289
+ hitsPerPage: number;
3290
+ } & {
3291
+ page: number;
3292
+ } & {
3293
+ menu: {
3294
+ [attribute: string]: string;
3295
+ };
3296
+ } & {
3297
+ numericMenu: {
3298
+ [attribute: string]: string;
3299
+ };
3300
+ } & {
3301
+ page: number;
3302
+ } & {
3303
+ range: {
3304
+ [attribute: string]: string;
3305
+ };
3306
+ } & {
3307
+ ratingMenu: {
3308
+ [attribute: string]: number | undefined;
3309
+ };
3310
+ } & {
3311
+ refinementList: {
3312
+ [attribute: string]: string[];
3313
+ };
3314
+ } & {
3315
+ relevantSort: number;
3316
+ } & {
3317
+ query: string;
3318
+ } & {
3319
+ sortBy: string;
3320
+ } & {
3321
+ toggle: {
3322
+ [attribute: string]: boolean;
3323
+ };
3324
+ } & {
3325
+ query: string;
3326
+ } & {
3327
+ places: {
3328
+ query: string;
3329
+ position: string;
3330
+ };
3331
+ }>;
3332
+ input: string;
3333
+ open: boolean;
3334
+ sendEvent: SendEventForHits;
3335
+ setIndexUiState: (indexUiState: Partial<{
3336
+ query: string;
3337
+ } & {
3338
+ configure: PlainSearchParameters;
3339
+ } & {
3340
+ geoSearch: {
3341
+ boundingBox: string;
3342
+ };
3343
+ } & {
3344
+ hierarchicalMenu: {
3345
+ [rootAttribute: string]: string[];
3346
+ };
3347
+ } & {
3348
+ hitsPerPage: number;
3349
+ } & {
3350
+ page: number;
3351
+ } & {
3352
+ menu: {
3353
+ [attribute: string]: string;
3354
+ };
3355
+ } & {
3356
+ numericMenu: {
3357
+ [attribute: string]: string;
3358
+ };
3359
+ } & {
3360
+ page: number;
3361
+ } & {
3362
+ range: {
3363
+ [attribute: string]: string;
3364
+ };
3365
+ } & {
3366
+ ratingMenu: {
3367
+ [attribute: string]: number | undefined;
3368
+ };
3369
+ } & {
3370
+ refinementList: {
3371
+ [attribute: string]: string[];
3372
+ };
3373
+ } & {
3374
+ relevantSort: number;
3375
+ } & {
3376
+ query: string;
3377
+ } & {
3378
+ sortBy: string;
3379
+ } & {
3380
+ toggle: {
3381
+ [attribute: string]: boolean;
3382
+ };
3383
+ } & {
3384
+ query: string;
3385
+ } & {
3386
+ places: {
3387
+ query: string;
3388
+ position: string;
3389
+ };
3390
+ }> | ((previousIndexUiState: Partial<{
3391
+ query: string;
3392
+ } & {
3393
+ configure: PlainSearchParameters;
3394
+ } & {
3395
+ geoSearch: {
3396
+ boundingBox: string;
3397
+ };
3398
+ } & {
3399
+ hierarchicalMenu: {
3400
+ [rootAttribute: string]: string[];
3401
+ };
3402
+ } & {
3403
+ hitsPerPage: number;
3404
+ } & {
3405
+ page: number;
3406
+ } & {
3407
+ menu: {
3408
+ [attribute: string]: string;
3409
+ };
3410
+ } & {
3411
+ numericMenu: {
3412
+ [attribute: string]: string;
3413
+ };
3414
+ } & {
3415
+ page: number;
3416
+ } & {
3417
+ range: {
3418
+ [attribute: string]: string;
3419
+ };
3420
+ } & {
3421
+ ratingMenu: {
3422
+ [attribute: string]: number | undefined;
3423
+ };
3424
+ } & {
3425
+ refinementList: {
3426
+ [attribute: string]: string[];
3427
+ };
3428
+ } & {
3429
+ relevantSort: number;
3430
+ } & {
3431
+ query: string;
3432
+ } & {
3433
+ sortBy: string;
3434
+ } & {
3435
+ toggle: {
3436
+ [attribute: string]: boolean;
3437
+ };
3438
+ } & {
3439
+ query: string;
3440
+ } & {
3441
+ places: {
3442
+ query: string;
3443
+ position: string;
3444
+ };
3445
+ }>) => Partial<{
3446
+ query: string;
3447
+ } & {
3448
+ configure: PlainSearchParameters;
3449
+ } & {
3450
+ geoSearch: {
3451
+ boundingBox: string;
3452
+ };
3453
+ } & {
3454
+ hierarchicalMenu: {
3455
+ [rootAttribute: string]: string[];
3456
+ };
3457
+ } & {
3458
+ hitsPerPage: number;
3459
+ } & {
3460
+ page: number;
3461
+ } & {
3462
+ menu: {
3463
+ [attribute: string]: string;
3464
+ };
3465
+ } & {
3466
+ numericMenu: {
3467
+ [attribute: string]: string;
3468
+ };
3469
+ } & {
3470
+ page: number;
3471
+ } & {
3472
+ range: {
3473
+ [attribute: string]: string;
3474
+ };
3475
+ } & {
3476
+ ratingMenu: {
3477
+ [attribute: string]: number | undefined;
3478
+ };
3479
+ } & {
3480
+ refinementList: {
3481
+ [attribute: string]: string[];
3482
+ };
3483
+ } & {
3484
+ relevantSort: number;
3485
+ } & {
3486
+ query: string;
3487
+ } & {
3488
+ sortBy: string;
3489
+ } & {
3490
+ toggle: {
3491
+ [attribute: string]: boolean;
3492
+ };
3493
+ } & {
3494
+ query: string;
3495
+ } & {
3496
+ places: {
3497
+ query: string;
3498
+ position: string;
3499
+ };
3500
+ }>)) => void;
3501
+ setInput: (input: string) => void;
3502
+ setOpen: (open: boolean) => void;
3503
+ setMessages: (messagesParam: UIMessage<unknown, UIDataTypes, UITools>[] | ((m: UIMessage<unknown, UIDataTypes, UITools>[]) => UIMessage<unknown, UIDataTypes, UITools>[])) => void;
3504
+ suggestions: string[] | undefined;
3505
+ isClearing: boolean;
3506
+ clearMessages: () => void;
3507
+ onClearTransitionEnd: () => void;
3508
+ tools: ClientSideTools;
3509
+ widgetParams: Partial<ChatWidgetParams<RecordWithObjectID>> & ChatConnectorParams<UIMessage<unknown, UIDataTypes, UITools>>;
3510
+ addToolResult: <TTool extends string>({ tool, toolCallId, output, }: {
3511
+ tool: TTool;
3512
+ toolCallId: string;
3513
+ output: unknown;
3514
+ }) => Promise<void>;
3515
+ clearError: () => void;
3516
+ error: Error | undefined;
3517
+ id: string;
3518
+ messages: UIMessage<unknown, UIDataTypes, UITools>[];
3519
+ regenerate: ({ messageId, ...options }?: {
3520
+ messageId?: string;
3521
+ } & ChatRequestOptions) => Promise<void>;
3522
+ resumeStream: (options?: ChatRequestOptions) => Promise<void>;
3523
+ sendMessage: (message?: (Omit<UIMessage<unknown, UIDataTypes, UITools>, "id" | "role"> & {
3524
+ id?: string | undefined;
3525
+ role?: "system" | "user" | "assistant" | undefined;
3526
+ } & {
3527
+ text?: never;
3528
+ files?: never;
3529
+ messageId?: string;
3530
+ }) | {
3531
+ text: string;
3532
+ files?: FileList | FileUIPart[];
3533
+ metadata?: unknown;
3534
+ parts?: never;
3535
+ messageId?: string;
3536
+ } | {
3537
+ files: FileList | FileUIPart[];
3538
+ metadata?: unknown;
3539
+ parts?: never;
3540
+ messageId?: string;
3541
+ } | undefined, options?: ChatRequestOptions) => Promise<void>;
3542
+ status: ChatStatus;
3543
+ stop: () => Promise<void>;
3544
+ };
3545
+ dispose(): void;
3546
+ shouldRender(): true;
3547
+ chatInstance: Chat<UIMessage<unknown, UIDataTypes, UITools>>;
3548
+ };
3549
+
3550
+ declare const _default_18: (widgetParams: FilterSuggestionsWidgetParams & FilterSuggestionsConnectorParams) => {
3551
+ $$widgetType: "ais.filterSuggestions";
3552
+ parent?: IndexWidget;
3553
+ $$type: "ais.filterSuggestions";
3554
+ init?: (options: InitOptions) => void;
3555
+ shouldRender?: (options: ShouldRenderOptions) => boolean;
3556
+ render?: (options: RenderOptions) => void;
3557
+ dispose?: (options: DisposeOptions) => SearchParameters | RecommendParameters | void;
3558
+ getWidgetUiState?: ((uiState: {
3559
+ query?: string | undefined;
3560
+ configure?: PlainSearchParameters | undefined;
3561
+ geoSearch?: {
3562
+ boundingBox: string;
3563
+ } | undefined;
3564
+ hierarchicalMenu?: {
3565
+ [rootAttribute: string]: string[];
3566
+ } | undefined;
3567
+ hitsPerPage?: number | undefined;
3568
+ page?: number | undefined;
3569
+ menu?: {
3570
+ [attribute: string]: string;
3571
+ } | undefined;
3572
+ numericMenu?: {
3573
+ [attribute: string]: string;
3574
+ } | undefined;
3575
+ range?: {
3576
+ [attribute: string]: string;
3577
+ } | undefined;
3578
+ ratingMenu?: {
3579
+ [attribute: string]: number | undefined;
3580
+ } | undefined;
3581
+ refinementList?: {
3582
+ [attribute: string]: string[];
3583
+ } | undefined;
3584
+ relevantSort?: number | undefined;
3585
+ sortBy?: string | undefined;
3586
+ toggle?: {
3587
+ [attribute: string]: boolean;
3588
+ } | undefined;
3589
+ places?: {
3590
+ query: string;
3591
+ position: string;
3592
+ } | undefined;
3593
+ }, widgetUiStateOptions: {
3594
+ searchParameters: SearchParameters;
3595
+ helper: AlgoliaSearchHelper;
3596
+ }) => Partial<IndexUiState & unknown>) | undefined;
3597
+ getWidgetState?: ((uiState: {
3598
+ query?: string | undefined;
3599
+ configure?: PlainSearchParameters | undefined;
3600
+ geoSearch?: {
3601
+ boundingBox: string;
3602
+ } | undefined;
3603
+ hierarchicalMenu?: {
3604
+ [rootAttribute: string]: string[];
3605
+ } | undefined;
3606
+ hitsPerPage?: number | undefined;
3607
+ page?: number | undefined;
3608
+ menu?: {
3609
+ [attribute: string]: string;
3610
+ } | undefined;
3611
+ numericMenu?: {
3612
+ [attribute: string]: string;
3613
+ } | undefined;
3614
+ range?: {
3615
+ [attribute: string]: string;
3616
+ } | undefined;
3617
+ ratingMenu?: {
3618
+ [attribute: string]: number | undefined;
3619
+ } | undefined;
3620
+ refinementList?: {
3621
+ [attribute: string]: string[];
3622
+ } | undefined;
3623
+ relevantSort?: number | undefined;
3624
+ sortBy?: string | undefined;
3625
+ toggle?: {
3626
+ [attribute: string]: boolean;
3627
+ } | undefined;
3628
+ places?: {
3629
+ query: string;
3630
+ position: string;
3631
+ } | undefined;
3632
+ }, widgetUiStateOptions: {
3633
+ searchParameters: SearchParameters;
3634
+ helper: AlgoliaSearchHelper;
3635
+ }) => Partial<IndexUiState & unknown>) | undefined;
3636
+ getWidgetSearchParameters?: ((state: SearchParameters, widgetSearchParametersOptions: {
3637
+ uiState: {
3638
+ query?: string | undefined;
3639
+ configure?: PlainSearchParameters | undefined;
3640
+ geoSearch?: {
3641
+ boundingBox: string;
3642
+ } | undefined;
3643
+ hierarchicalMenu?: {
3644
+ [rootAttribute: string]: string[];
3645
+ } | undefined;
3646
+ hitsPerPage?: number | undefined;
3647
+ page?: number | undefined;
3648
+ menu?: {
3649
+ [attribute: string]: string;
3650
+ } | undefined;
3651
+ numericMenu?: {
3652
+ [attribute: string]: string;
3653
+ } | undefined;
3654
+ range?: {
3655
+ [attribute: string]: string;
3656
+ } | undefined;
3657
+ ratingMenu?: {
3658
+ [attribute: string]: number | undefined;
3659
+ } | undefined;
3660
+ refinementList?: {
3661
+ [attribute: string]: string[];
3662
+ } | undefined;
3663
+ relevantSort?: number | undefined;
3664
+ sortBy?: string | undefined;
3665
+ toggle?: {
3666
+ [attribute: string]: boolean;
3667
+ } | undefined;
3668
+ places?: {
3669
+ query: string;
3670
+ position: string;
3671
+ } | undefined;
3672
+ };
3673
+ }) => SearchParameters) | undefined;
3674
+ getWidgetRenderState: (renderOptions: InitOptions | RenderOptions) => Expand<WidgetRenderState<FilterSuggestionsRenderState, FilterSuggestionsConnectorParams & Partial<FilterSuggestionsWidgetParams>>>;
3675
+ getRenderState: (renderState: {
3676
+ answers?: WidgetRenderState<AnswersRenderState, AnswersConnectorParams> | undefined;
3677
+ autocomplete?: WidgetRenderState<AutocompleteRenderState, AutocompleteConnectorParams> | undefined;
3678
+ breadcrumb?: {
3679
+ [rootAttribute: string]: WidgetRenderState<BreadcrumbRenderState, BreadcrumbConnectorParams>;
3680
+ } | undefined;
3681
+ chat?: WidgetRenderState<ChatRenderState<UIMessage<unknown, UIDataTypes, UITools>>, ChatConnectorParams<UIMessage<unknown, UIDataTypes, UITools>>> | undefined;
3682
+ clearRefinements?: WidgetRenderState<ClearRefinementsRenderState, ClearRefinementsConnectorParams> | undefined;
3683
+ configure?: WidgetRenderState<ConfigureRenderState, ConfigureConnectorParams> | undefined;
3684
+ currentRefinements?: WidgetRenderState<CurrentRefinementsRenderState, CurrentRefinementsConnectorParams> | undefined;
3685
+ geoSearch?: WidgetRenderState<GeoSearchRenderState<GeoHit>, GeoSearchConnectorParams<GeoHit>> | undefined;
3686
+ hierarchicalMenu?: {
3687
+ [rootAttribute: string]: WidgetRenderState<HierarchicalMenuRenderState, HierarchicalMenuConnectorParams>;
3688
+ } | undefined;
3689
+ hits?: WidgetRenderState<HitsRenderState<BaseHit>, HitsConnectorParams<BaseHit>> | undefined;
3690
+ hitsPerPage?: WidgetRenderState<HitsPerPageRenderState, HitsPerPageConnectorParams> | undefined;
3691
+ infiniteHits?: WidgetRenderState<InfiniteHitsRenderState<BaseHit>, InfiniteHitsConnectorParams<BaseHit>> | undefined;
3692
+ menu?: {
3693
+ [attribute: string]: WidgetRenderState<MenuRenderState, MenuConnectorParams>;
3694
+ } | undefined;
3695
+ numericMenu?: {
3696
+ [attribute: string]: WidgetRenderState<NumericMenuRenderState, NumericMenuConnectorParams>;
3697
+ } | undefined;
3698
+ pagination?: WidgetRenderState<PaginationRenderState, PaginationConnectorParams> | undefined;
3699
+ poweredBy?: WidgetRenderState<PoweredByRenderState, PoweredByConnectorParams> | undefined;
3700
+ queryRules?: WidgetRenderState<QueryRulesRenderState, QueryRulesConnectorParams> | undefined;
3701
+ range?: {
3702
+ [attribute: string]: WidgetRenderState<RangeRenderState, RangeConnectorParams>;
3703
+ } | undefined;
3704
+ ratingMenu?: {
3705
+ [attribute: string]: WidgetRenderState<RatingMenuRenderState, RatingMenuConnectorParams>;
3706
+ } | undefined;
3707
+ refinementList?: {
3708
+ [attribute: string]: WidgetRenderState<RefinementListRenderState, RefinementListConnectorParams>;
3709
+ } | undefined;
3710
+ relevantSort?: WidgetRenderState<RelevantSortRenderState, RelevantSortConnectorParams> | undefined;
3711
+ searchBox?: WidgetRenderState<SearchBoxRenderState, SearchBoxConnectorParams> | undefined;
3712
+ sortBy?: WidgetRenderState<SortByRenderState, SortByConnectorParams> | undefined;
3713
+ stats?: WidgetRenderState<StatsRenderState, StatsConnectorParams> | undefined;
3714
+ toggleRefinement?: {
3715
+ [attribute: string]: WidgetRenderState<ToggleRefinementRenderState, ToggleRefinementConnectorParams>;
3716
+ } | undefined;
3717
+ voiceSearch?: WidgetRenderState<VoiceSearchRenderState, VoiceSearchConnectorParams> | undefined;
3718
+ analytics?: WidgetRenderState<Record<string, unknown>, AnalyticsWidgetParams> | undefined;
3719
+ places?: WidgetRenderState<Record<string, unknown>, PlacesWidgetParams> | undefined;
3720
+ filterSuggestions?: WidgetRenderState<FilterSuggestionsRenderState, FilterSuggestionsConnectorParams> | undefined;
3721
+ }, renderOptions: InitOptions | RenderOptions) => IndexRenderState & {
3722
+ filterSuggestions: WidgetRenderState<FilterSuggestionsRenderState, FilterSuggestionsConnectorParams>;
3723
+ };
3724
+ dependsOn?: "search";
3725
+ getWidgetParameters?: ((state: SearchParameters, widgetParametersOptions: {
3726
+ uiState: {
3727
+ query?: string | undefined;
3728
+ configure?: PlainSearchParameters | undefined;
3729
+ geoSearch?: {
3730
+ boundingBox: string;
3731
+ } | undefined;
3732
+ hierarchicalMenu?: {
3733
+ [rootAttribute: string]: string[];
3734
+ } | undefined;
3735
+ hitsPerPage?: number | undefined;
3736
+ page?: number | undefined;
3737
+ menu?: {
3738
+ [attribute: string]: string;
3739
+ } | undefined;
3740
+ numericMenu?: {
3741
+ [attribute: string]: string;
3742
+ } | undefined;
3743
+ range?: {
3744
+ [attribute: string]: string;
3745
+ } | undefined;
3746
+ ratingMenu?: {
3747
+ [attribute: string]: number | undefined;
3748
+ } | undefined;
3749
+ refinementList?: {
3750
+ [attribute: string]: string[];
3751
+ } | undefined;
3752
+ relevantSort?: number | undefined;
3753
+ sortBy?: string | undefined;
3754
+ toggle?: {
3755
+ [attribute: string]: boolean;
3756
+ } | undefined;
3757
+ places?: {
3758
+ query: string;
3759
+ position: string;
3760
+ } | undefined;
3761
+ };
3762
+ }) => SearchParameters) | undefined;
3763
+ } | {
3764
+ $$widgetType: "ais.filterSuggestions";
3765
+ parent?: IndexWidget;
3766
+ $$type: "ais.filterSuggestions";
3767
+ init?: (options: InitOptions) => void;
3768
+ shouldRender?: (options: ShouldRenderOptions) => boolean;
3769
+ render?: (options: RenderOptions) => void;
3770
+ dispose?: (options: DisposeOptions) => SearchParameters | RecommendParameters | void;
3771
+ getWidgetUiState?: ((uiState: {
3772
+ query?: string | undefined;
3773
+ configure?: PlainSearchParameters | undefined;
3774
+ geoSearch?: {
3775
+ boundingBox: string;
3776
+ } | undefined;
3777
+ hierarchicalMenu?: {
3778
+ [rootAttribute: string]: string[];
3779
+ } | undefined;
3780
+ hitsPerPage?: number | undefined;
3781
+ page?: number | undefined;
3782
+ menu?: {
3783
+ [attribute: string]: string;
3784
+ } | undefined;
3785
+ numericMenu?: {
3786
+ [attribute: string]: string;
3787
+ } | undefined;
3788
+ range?: {
3789
+ [attribute: string]: string;
3790
+ } | undefined;
3791
+ ratingMenu?: {
3792
+ [attribute: string]: number | undefined;
3793
+ } | undefined;
3794
+ refinementList?: {
3795
+ [attribute: string]: string[];
3796
+ } | undefined;
3797
+ relevantSort?: number | undefined;
3798
+ sortBy?: string | undefined;
3799
+ toggle?: {
3800
+ [attribute: string]: boolean;
3801
+ } | undefined;
3802
+ places?: {
3803
+ query: string;
3804
+ position: string;
3805
+ } | undefined;
3806
+ }, widgetUiStateOptions: {
3807
+ searchParameters: SearchParameters;
3808
+ helper: AlgoliaSearchHelper;
3809
+ }) => Partial<IndexUiState & unknown>) | undefined;
3810
+ getWidgetState?: ((uiState: {
3811
+ query?: string | undefined;
3812
+ configure?: PlainSearchParameters | undefined;
3813
+ geoSearch?: {
3814
+ boundingBox: string;
3815
+ } | undefined;
3816
+ hierarchicalMenu?: {
3817
+ [rootAttribute: string]: string[];
3818
+ } | undefined;
3819
+ hitsPerPage?: number | undefined;
3820
+ page?: number | undefined;
3821
+ menu?: {
3822
+ [attribute: string]: string;
3823
+ } | undefined;
3824
+ numericMenu?: {
3825
+ [attribute: string]: string;
3826
+ } | undefined;
3827
+ range?: {
3828
+ [attribute: string]: string;
3829
+ } | undefined;
3830
+ ratingMenu?: {
3831
+ [attribute: string]: number | undefined;
3832
+ } | undefined;
3833
+ refinementList?: {
3834
+ [attribute: string]: string[];
3835
+ } | undefined;
3836
+ relevantSort?: number | undefined;
3837
+ sortBy?: string | undefined;
3838
+ toggle?: {
3839
+ [attribute: string]: boolean;
3840
+ } | undefined;
3841
+ places?: {
3842
+ query: string;
3843
+ position: string;
3844
+ } | undefined;
3845
+ }, widgetUiStateOptions: {
3846
+ searchParameters: SearchParameters;
3847
+ helper: AlgoliaSearchHelper;
3848
+ }) => Partial<IndexUiState & unknown>) | undefined;
3849
+ getWidgetSearchParameters?: ((state: SearchParameters, widgetSearchParametersOptions: {
3850
+ uiState: {
3851
+ query?: string | undefined;
3852
+ configure?: PlainSearchParameters | undefined;
3853
+ geoSearch?: {
3854
+ boundingBox: string;
3855
+ } | undefined;
3856
+ hierarchicalMenu?: {
3857
+ [rootAttribute: string]: string[];
3858
+ } | undefined;
3859
+ hitsPerPage?: number | undefined;
3860
+ page?: number | undefined;
3861
+ menu?: {
3862
+ [attribute: string]: string;
3863
+ } | undefined;
3864
+ numericMenu?: {
3865
+ [attribute: string]: string;
3866
+ } | undefined;
3867
+ range?: {
3868
+ [attribute: string]: string;
3869
+ } | undefined;
3870
+ ratingMenu?: {
3871
+ [attribute: string]: number | undefined;
3872
+ } | undefined;
3873
+ refinementList?: {
3874
+ [attribute: string]: string[];
3875
+ } | undefined;
3876
+ relevantSort?: number | undefined;
3877
+ sortBy?: string | undefined;
3878
+ toggle?: {
3879
+ [attribute: string]: boolean;
3880
+ } | undefined;
3881
+ places?: {
3882
+ query: string;
3883
+ position: string;
3884
+ } | undefined;
3885
+ };
3886
+ }) => SearchParameters) | undefined;
3887
+ getWidgetRenderState: ((renderOptions: InitOptions | RenderOptions) => Expand<WidgetRenderState<FilterSuggestionsRenderState, FilterSuggestionsConnectorParams & Partial<FilterSuggestionsWidgetParams>>>) & ((renderOptions: InitOptions | ({
3888
+ instantSearchInstance: InstantSearch;
3889
+ parent: IndexWidget;
3890
+ templatesConfig: Record<string, unknown>;
3891
+ scopedResults: ScopedResult[];
3892
+ state: SearchParameters;
3893
+ renderState: Partial<{
3894
+ answers: WidgetRenderState<AnswersRenderState, AnswersConnectorParams>;
3895
+ } & {
3896
+ autocomplete: WidgetRenderState<AutocompleteRenderState, AutocompleteConnectorParams>;
3897
+ } & {
3898
+ breadcrumb: {
3899
+ [rootAttribute: string]: WidgetRenderState<BreadcrumbRenderState, BreadcrumbConnectorParams>;
3900
+ };
3901
+ } & {
3902
+ chat: WidgetRenderState<ChatRenderState<UIMessage<unknown, UIDataTypes, UITools>>, ChatConnectorParams<UIMessage<unknown, UIDataTypes, UITools>>>;
3903
+ } & {
3904
+ clearRefinements: WidgetRenderState<ClearRefinementsRenderState, ClearRefinementsConnectorParams>;
3905
+ } & {
3906
+ configure: WidgetRenderState<ConfigureRenderState, ConfigureConnectorParams>;
3907
+ } & {
3908
+ currentRefinements: WidgetRenderState<CurrentRefinementsRenderState, CurrentRefinementsConnectorParams>;
3909
+ } & {
3910
+ geoSearch: WidgetRenderState<GeoSearchRenderState<GeoHit>, GeoSearchConnectorParams<GeoHit>>;
3911
+ } & {
3912
+ hierarchicalMenu: {
3913
+ [rootAttribute: string]: WidgetRenderState<HierarchicalMenuRenderState, HierarchicalMenuConnectorParams>;
3914
+ };
3915
+ } & {
3916
+ hits: WidgetRenderState<HitsRenderState<BaseHit>, HitsConnectorParams<BaseHit>>;
3917
+ } & {
3918
+ hitsPerPage: WidgetRenderState<HitsPerPageRenderState, HitsPerPageConnectorParams>;
3919
+ } & {
3920
+ infiniteHits: WidgetRenderState<InfiniteHitsRenderState<BaseHit>, InfiniteHitsConnectorParams<BaseHit>>;
3921
+ } & {
3922
+ menu: {
3923
+ [attribute: string]: WidgetRenderState<MenuRenderState, MenuConnectorParams>;
3924
+ };
3925
+ } & {
3926
+ numericMenu: {
3927
+ [attribute: string]: WidgetRenderState<NumericMenuRenderState, NumericMenuConnectorParams>;
3928
+ };
3929
+ } & {
3930
+ pagination: WidgetRenderState<PaginationRenderState, PaginationConnectorParams>;
3931
+ } & {
3932
+ poweredBy: WidgetRenderState<PoweredByRenderState, PoweredByConnectorParams>;
3933
+ } & {
3934
+ queryRules: WidgetRenderState<QueryRulesRenderState, QueryRulesConnectorParams>;
3935
+ } & {
3936
+ range: {
3937
+ [attribute: string]: WidgetRenderState<RangeRenderState, RangeConnectorParams>;
3938
+ };
3939
+ } & {
3940
+ ratingMenu: {
3941
+ [attribute: string]: WidgetRenderState<RatingMenuRenderState, RatingMenuConnectorParams>;
3942
+ };
3943
+ } & {
3944
+ refinementList: {
3945
+ [attribute: string]: WidgetRenderState<RefinementListRenderState, RefinementListConnectorParams>;
3946
+ };
3947
+ } & {
3948
+ relevantSort: WidgetRenderState<RelevantSortRenderState, RelevantSortConnectorParams>;
3949
+ } & {
3950
+ searchBox: WidgetRenderState<SearchBoxRenderState, SearchBoxConnectorParams>;
3951
+ } & {
3952
+ sortBy: WidgetRenderState<SortByRenderState, SortByConnectorParams>;
3953
+ } & {
3954
+ stats: WidgetRenderState<StatsRenderState, StatsConnectorParams>;
3955
+ } & {
3956
+ toggleRefinement: {
3957
+ [attribute: string]: WidgetRenderState<ToggleRefinementRenderState, ToggleRefinementConnectorParams>;
3958
+ };
3959
+ } & {
3960
+ voiceSearch: WidgetRenderState<VoiceSearchRenderState, VoiceSearchConnectorParams>;
3961
+ } & {
3962
+ analytics: WidgetRenderState<Record<string, unknown>, AnalyticsWidgetParams>;
3963
+ } & {
3964
+ places: WidgetRenderState<Record<string, unknown>, PlacesWidgetParams>;
3965
+ }>;
3966
+ helper: AlgoliaSearchHelper;
3967
+ searchMetadata: {
3968
+ isSearchStalled: boolean;
3969
+ };
3970
+ status: InstantSearch["status"];
3971
+ error: InstantSearch["error"];
3972
+ createURL: (nextState: SearchParameters | ((state: IndexUiState) => IndexUiState)) => string;
3973
+ } & {
3974
+ results: RecommendResponse_2<any>;
3975
+ })) => Expand<WidgetRenderState<FilterSuggestionsRenderState, FilterSuggestionsConnectorParams & Partial<FilterSuggestionsWidgetParams>>>);
3976
+ getRenderState: ((renderState: {
3977
+ answers?: WidgetRenderState<AnswersRenderState, AnswersConnectorParams> | undefined;
3978
+ autocomplete?: WidgetRenderState<AutocompleteRenderState, AutocompleteConnectorParams> | undefined;
3979
+ breadcrumb?: {
3980
+ [rootAttribute: string]: WidgetRenderState<BreadcrumbRenderState, BreadcrumbConnectorParams>;
3981
+ } | undefined;
3982
+ chat?: WidgetRenderState<ChatRenderState<UIMessage<unknown, UIDataTypes, UITools>>, ChatConnectorParams<UIMessage<unknown, UIDataTypes, UITools>>> | undefined;
3983
+ clearRefinements?: WidgetRenderState<ClearRefinementsRenderState, ClearRefinementsConnectorParams> | undefined;
3984
+ configure?: WidgetRenderState<ConfigureRenderState, ConfigureConnectorParams> | undefined;
3985
+ currentRefinements?: WidgetRenderState<CurrentRefinementsRenderState, CurrentRefinementsConnectorParams> | undefined;
3986
+ geoSearch?: WidgetRenderState<GeoSearchRenderState<GeoHit>, GeoSearchConnectorParams<GeoHit>> | undefined;
3987
+ hierarchicalMenu?: {
3988
+ [rootAttribute: string]: WidgetRenderState<HierarchicalMenuRenderState, HierarchicalMenuConnectorParams>;
3989
+ } | undefined;
3990
+ hits?: WidgetRenderState<HitsRenderState<BaseHit>, HitsConnectorParams<BaseHit>> | undefined;
3991
+ hitsPerPage?: WidgetRenderState<HitsPerPageRenderState, HitsPerPageConnectorParams> | undefined;
3992
+ infiniteHits?: WidgetRenderState<InfiniteHitsRenderState<BaseHit>, InfiniteHitsConnectorParams<BaseHit>> | undefined;
3993
+ menu?: {
3994
+ [attribute: string]: WidgetRenderState<MenuRenderState, MenuConnectorParams>;
3995
+ } | undefined;
3996
+ numericMenu?: {
3997
+ [attribute: string]: WidgetRenderState<NumericMenuRenderState, NumericMenuConnectorParams>;
3998
+ } | undefined;
3999
+ pagination?: WidgetRenderState<PaginationRenderState, PaginationConnectorParams> | undefined;
4000
+ poweredBy?: WidgetRenderState<PoweredByRenderState, PoweredByConnectorParams> | undefined;
4001
+ queryRules?: WidgetRenderState<QueryRulesRenderState, QueryRulesConnectorParams> | undefined;
4002
+ range?: {
4003
+ [attribute: string]: WidgetRenderState<RangeRenderState, RangeConnectorParams>;
4004
+ } | undefined;
4005
+ ratingMenu?: {
4006
+ [attribute: string]: WidgetRenderState<RatingMenuRenderState, RatingMenuConnectorParams>;
4007
+ } | undefined;
4008
+ refinementList?: {
4009
+ [attribute: string]: WidgetRenderState<RefinementListRenderState, RefinementListConnectorParams>;
4010
+ } | undefined;
4011
+ relevantSort?: WidgetRenderState<RelevantSortRenderState, RelevantSortConnectorParams> | undefined;
4012
+ searchBox?: WidgetRenderState<SearchBoxRenderState, SearchBoxConnectorParams> | undefined;
4013
+ sortBy?: WidgetRenderState<SortByRenderState, SortByConnectorParams> | undefined;
4014
+ stats?: WidgetRenderState<StatsRenderState, StatsConnectorParams> | undefined;
4015
+ toggleRefinement?: {
4016
+ [attribute: string]: WidgetRenderState<ToggleRefinementRenderState, ToggleRefinementConnectorParams>;
4017
+ } | undefined;
4018
+ voiceSearch?: WidgetRenderState<VoiceSearchRenderState, VoiceSearchConnectorParams> | undefined;
4019
+ analytics?: WidgetRenderState<Record<string, unknown>, AnalyticsWidgetParams> | undefined;
4020
+ places?: WidgetRenderState<Record<string, unknown>, PlacesWidgetParams> | undefined;
4021
+ filterSuggestions?: WidgetRenderState<FilterSuggestionsRenderState, FilterSuggestionsConnectorParams> | undefined;
4022
+ }, renderOptions: InitOptions | RenderOptions) => IndexRenderState & {
4023
+ filterSuggestions: WidgetRenderState<FilterSuggestionsRenderState, FilterSuggestionsConnectorParams>;
4024
+ }) & ((renderState: {
4025
+ answers?: WidgetRenderState<AnswersRenderState, AnswersConnectorParams> | undefined;
4026
+ autocomplete?: WidgetRenderState<AutocompleteRenderState, AutocompleteConnectorParams> | undefined;
4027
+ breadcrumb?: {
4028
+ [rootAttribute: string]: WidgetRenderState<BreadcrumbRenderState, BreadcrumbConnectorParams>;
4029
+ } | undefined;
4030
+ chat?: WidgetRenderState<ChatRenderState<UIMessage<unknown, UIDataTypes, UITools>>, ChatConnectorParams<UIMessage<unknown, UIDataTypes, UITools>>> | undefined;
4031
+ clearRefinements?: WidgetRenderState<ClearRefinementsRenderState, ClearRefinementsConnectorParams> | undefined;
4032
+ configure?: WidgetRenderState<ConfigureRenderState, ConfigureConnectorParams> | undefined;
4033
+ currentRefinements?: WidgetRenderState<CurrentRefinementsRenderState, CurrentRefinementsConnectorParams> | undefined;
4034
+ geoSearch?: WidgetRenderState<GeoSearchRenderState<GeoHit>, GeoSearchConnectorParams<GeoHit>> | undefined;
4035
+ hierarchicalMenu?: {
4036
+ [rootAttribute: string]: WidgetRenderState<HierarchicalMenuRenderState, HierarchicalMenuConnectorParams>;
4037
+ } | undefined;
4038
+ hits?: WidgetRenderState<HitsRenderState<BaseHit>, HitsConnectorParams<BaseHit>> | undefined;
4039
+ hitsPerPage?: WidgetRenderState<HitsPerPageRenderState, HitsPerPageConnectorParams> | undefined;
4040
+ infiniteHits?: WidgetRenderState<InfiniteHitsRenderState<BaseHit>, InfiniteHitsConnectorParams<BaseHit>> | undefined;
4041
+ menu?: {
4042
+ [attribute: string]: WidgetRenderState<MenuRenderState, MenuConnectorParams>;
4043
+ } | undefined;
4044
+ numericMenu?: {
4045
+ [attribute: string]: WidgetRenderState<NumericMenuRenderState, NumericMenuConnectorParams>;
4046
+ } | undefined;
4047
+ pagination?: WidgetRenderState<PaginationRenderState, PaginationConnectorParams> | undefined;
4048
+ poweredBy?: WidgetRenderState<PoweredByRenderState, PoweredByConnectorParams> | undefined;
4049
+ queryRules?: WidgetRenderState<QueryRulesRenderState, QueryRulesConnectorParams> | undefined;
4050
+ range?: {
4051
+ [attribute: string]: WidgetRenderState<RangeRenderState, RangeConnectorParams>;
4052
+ } | undefined;
4053
+ ratingMenu?: {
4054
+ [attribute: string]: WidgetRenderState<RatingMenuRenderState, RatingMenuConnectorParams>;
4055
+ } | undefined;
4056
+ refinementList?: {
4057
+ [attribute: string]: WidgetRenderState<RefinementListRenderState, RefinementListConnectorParams>;
4058
+ } | undefined;
4059
+ relevantSort?: WidgetRenderState<RelevantSortRenderState, RelevantSortConnectorParams> | undefined;
4060
+ searchBox?: WidgetRenderState<SearchBoxRenderState, SearchBoxConnectorParams> | undefined;
4061
+ sortBy?: WidgetRenderState<SortByRenderState, SortByConnectorParams> | undefined;
4062
+ stats?: WidgetRenderState<StatsRenderState, StatsConnectorParams> | undefined;
4063
+ toggleRefinement?: {
4064
+ [attribute: string]: WidgetRenderState<ToggleRefinementRenderState, ToggleRefinementConnectorParams>;
4065
+ } | undefined;
4066
+ voiceSearch?: WidgetRenderState<VoiceSearchRenderState, VoiceSearchConnectorParams> | undefined;
4067
+ analytics?: WidgetRenderState<Record<string, unknown>, AnalyticsWidgetParams> | undefined;
4068
+ places?: WidgetRenderState<Record<string, unknown>, PlacesWidgetParams> | undefined;
4069
+ filterSuggestions?: WidgetRenderState<FilterSuggestionsRenderState, FilterSuggestionsConnectorParams> | undefined;
4070
+ }, renderOptions: InitOptions | ({
4071
+ instantSearchInstance: InstantSearch;
4072
+ parent: IndexWidget;
4073
+ templatesConfig: Record<string, unknown>;
4074
+ scopedResults: ScopedResult[];
4075
+ state: SearchParameters;
4076
+ renderState: Partial<{
4077
+ answers: WidgetRenderState<AnswersRenderState, AnswersConnectorParams>;
4078
+ } & {
4079
+ autocomplete: WidgetRenderState<AutocompleteRenderState, AutocompleteConnectorParams>;
4080
+ } & {
4081
+ breadcrumb: {
4082
+ [rootAttribute: string]: WidgetRenderState<BreadcrumbRenderState, BreadcrumbConnectorParams>;
4083
+ };
4084
+ } & {
4085
+ chat: WidgetRenderState<ChatRenderState<UIMessage<unknown, UIDataTypes, UITools>>, ChatConnectorParams<UIMessage<unknown, UIDataTypes, UITools>>>;
4086
+ } & {
4087
+ clearRefinements: WidgetRenderState<ClearRefinementsRenderState, ClearRefinementsConnectorParams>;
4088
+ } & {
4089
+ configure: WidgetRenderState<ConfigureRenderState, ConfigureConnectorParams>;
4090
+ } & {
4091
+ currentRefinements: WidgetRenderState<CurrentRefinementsRenderState, CurrentRefinementsConnectorParams>;
4092
+ } & {
4093
+ geoSearch: WidgetRenderState<GeoSearchRenderState<GeoHit>, GeoSearchConnectorParams<GeoHit>>;
4094
+ } & {
4095
+ hierarchicalMenu: {
4096
+ [rootAttribute: string]: WidgetRenderState<HierarchicalMenuRenderState, HierarchicalMenuConnectorParams>;
4097
+ };
4098
+ } & {
4099
+ hits: WidgetRenderState<HitsRenderState<BaseHit>, HitsConnectorParams<BaseHit>>;
4100
+ } & {
4101
+ hitsPerPage: WidgetRenderState<HitsPerPageRenderState, HitsPerPageConnectorParams>;
4102
+ } & {
4103
+ infiniteHits: WidgetRenderState<InfiniteHitsRenderState<BaseHit>, InfiniteHitsConnectorParams<BaseHit>>;
4104
+ } & {
4105
+ menu: {
4106
+ [attribute: string]: WidgetRenderState<MenuRenderState, MenuConnectorParams>;
4107
+ };
4108
+ } & {
4109
+ numericMenu: {
4110
+ [attribute: string]: WidgetRenderState<NumericMenuRenderState, NumericMenuConnectorParams>;
4111
+ };
4112
+ } & {
4113
+ pagination: WidgetRenderState<PaginationRenderState, PaginationConnectorParams>;
4114
+ } & {
4115
+ poweredBy: WidgetRenderState<PoweredByRenderState, PoweredByConnectorParams>;
4116
+ } & {
4117
+ queryRules: WidgetRenderState<QueryRulesRenderState, QueryRulesConnectorParams>;
4118
+ } & {
4119
+ range: {
4120
+ [attribute: string]: WidgetRenderState<RangeRenderState, RangeConnectorParams>;
4121
+ };
4122
+ } & {
4123
+ ratingMenu: {
4124
+ [attribute: string]: WidgetRenderState<RatingMenuRenderState, RatingMenuConnectorParams>;
4125
+ };
4126
+ } & {
4127
+ refinementList: {
4128
+ [attribute: string]: WidgetRenderState<RefinementListRenderState, RefinementListConnectorParams>;
4129
+ };
4130
+ } & {
4131
+ relevantSort: WidgetRenderState<RelevantSortRenderState, RelevantSortConnectorParams>;
4132
+ } & {
4133
+ searchBox: WidgetRenderState<SearchBoxRenderState, SearchBoxConnectorParams>;
4134
+ } & {
4135
+ sortBy: WidgetRenderState<SortByRenderState, SortByConnectorParams>;
4136
+ } & {
4137
+ stats: WidgetRenderState<StatsRenderState, StatsConnectorParams>;
4138
+ } & {
4139
+ toggleRefinement: {
4140
+ [attribute: string]: WidgetRenderState<ToggleRefinementRenderState, ToggleRefinementConnectorParams>;
4141
+ };
4142
+ } & {
4143
+ voiceSearch: WidgetRenderState<VoiceSearchRenderState, VoiceSearchConnectorParams>;
4144
+ } & {
4145
+ analytics: WidgetRenderState<Record<string, unknown>, AnalyticsWidgetParams>;
4146
+ } & {
4147
+ places: WidgetRenderState<Record<string, unknown>, PlacesWidgetParams>;
4148
+ }>;
4149
+ helper: AlgoliaSearchHelper;
4150
+ searchMetadata: {
4151
+ isSearchStalled: boolean;
4152
+ };
4153
+ status: InstantSearch["status"];
4154
+ error: InstantSearch["error"];
4155
+ createURL: (nextState: SearchParameters | ((state: IndexUiState) => IndexUiState)) => string;
4156
+ } & {
4157
+ results: RecommendResponse_2<any>;
4158
+ })) => IndexRenderState & {
4159
+ filterSuggestions: WidgetRenderState<FilterSuggestionsRenderState, FilterSuggestionsConnectorParams>;
4160
+ });
4161
+ dependsOn: "recommend";
4162
+ $$id?: number;
4163
+ getWidgetParameters: (state: RecommendParameters, widgetParametersOptions: {
4164
+ uiState: {
4165
+ query?: string | undefined;
4166
+ configure?: PlainSearchParameters | undefined;
4167
+ geoSearch?: {
4168
+ boundingBox: string;
4169
+ } | undefined;
4170
+ hierarchicalMenu?: {
4171
+ [rootAttribute: string]: string[];
4172
+ } | undefined;
4173
+ hitsPerPage?: number | undefined;
4174
+ page?: number | undefined;
4175
+ menu?: {
4176
+ [attribute: string]: string;
4177
+ } | undefined;
4178
+ numericMenu?: {
4179
+ [attribute: string]: string;
4180
+ } | undefined;
4181
+ range?: {
4182
+ [attribute: string]: string;
4183
+ } | undefined;
4184
+ ratingMenu?: {
4185
+ [attribute: string]: number | undefined;
4186
+ } | undefined;
4187
+ refinementList?: {
4188
+ [attribute: string]: string[];
4189
+ } | undefined;
4190
+ relevantSort?: number | undefined;
4191
+ sortBy?: string | undefined;
4192
+ toggle?: {
4193
+ [attribute: string]: boolean;
4194
+ } | undefined;
4195
+ places?: {
4196
+ query: string;
4197
+ position: string;
4198
+ } | undefined;
4199
+ };
4200
+ }) => RecommendParameters;
4201
+ };
4202
+
4203
+ declare const _default_2: <TWidgetParams extends UnknownWidgetParams>(renderFn: Renderer<InfiniteHitsRenderState, TWidgetParams>, unmountFn?: Unmounter) => <THit extends NonNullable<object> = BaseHit>(widgetParams: TWidgetParams & InfiniteHitsConnectorParams<THit>) => {
4204
+ $$type: "ais.infiniteHits";
4205
+ init(initOptions: InitOptions): void;
4206
+ render(renderOptions: RenderOptions): void;
4207
+ getRenderState(renderState: {
4208
+ answers?: WidgetRenderState<AnswersRenderState, AnswersConnectorParams> | undefined;
4209
+ autocomplete?: WidgetRenderState<AutocompleteRenderState, AutocompleteConnectorParams> | undefined;
4210
+ breadcrumb?: {
4211
+ [rootAttribute: string]: WidgetRenderState<BreadcrumbRenderState, BreadcrumbConnectorParams>;
4212
+ } | undefined;
4213
+ chat?: WidgetRenderState<ChatRenderState<UIMessage<unknown, UIDataTypes, UITools>>, ChatConnectorParams<UIMessage<unknown, UIDataTypes, UITools>>> | undefined;
4214
+ clearRefinements?: WidgetRenderState<ClearRefinementsRenderState, ClearRefinementsConnectorParams> | undefined;
4215
+ configure?: WidgetRenderState<ConfigureRenderState, ConfigureConnectorParams> | undefined;
4216
+ currentRefinements?: WidgetRenderState<CurrentRefinementsRenderState, CurrentRefinementsConnectorParams> | undefined;
4217
+ geoSearch?: WidgetRenderState<GeoSearchRenderState<GeoHit>, GeoSearchConnectorParams<GeoHit>> | undefined;
4218
+ hierarchicalMenu?: {
4219
+ [rootAttribute: string]: WidgetRenderState<HierarchicalMenuRenderState, HierarchicalMenuConnectorParams>;
4220
+ } | undefined;
4221
+ hits?: WidgetRenderState<HitsRenderState<BaseHit>, HitsConnectorParams<BaseHit>> | undefined;
4222
+ hitsPerPage?: WidgetRenderState<HitsPerPageRenderState, HitsPerPageConnectorParams> | undefined;
4223
+ infiniteHits?: WidgetRenderState<InfiniteHitsRenderState<BaseHit>, InfiniteHitsConnectorParams<BaseHit>> | undefined;
4224
+ menu?: {
4225
+ [attribute: string]: WidgetRenderState<MenuRenderState, MenuConnectorParams>;
4226
+ } | undefined;
4227
+ numericMenu?: {
4228
+ [attribute: string]: WidgetRenderState<NumericMenuRenderState, NumericMenuConnectorParams>;
4229
+ } | undefined;
4230
+ pagination?: WidgetRenderState<PaginationRenderState, PaginationConnectorParams> | undefined;
4231
+ poweredBy?: WidgetRenderState<PoweredByRenderState, PoweredByConnectorParams> | undefined;
4232
+ queryRules?: WidgetRenderState<QueryRulesRenderState, QueryRulesConnectorParams> | undefined;
4233
+ range?: {
4234
+ [attribute: string]: WidgetRenderState<RangeRenderState, RangeConnectorParams>;
4235
+ } | undefined;
4236
+ ratingMenu?: {
4237
+ [attribute: string]: WidgetRenderState<RatingMenuRenderState, RatingMenuConnectorParams>;
4238
+ } | undefined;
4239
+ refinementList?: {
4240
+ [attribute: string]: WidgetRenderState<RefinementListRenderState, RefinementListConnectorParams>;
4241
+ } | undefined;
4242
+ relevantSort?: WidgetRenderState<RelevantSortRenderState, RelevantSortConnectorParams> | undefined;
4243
+ searchBox?: WidgetRenderState<SearchBoxRenderState, SearchBoxConnectorParams> | undefined;
4244
+ sortBy?: WidgetRenderState<SortByRenderState, SortByConnectorParams> | undefined;
4245
+ stats?: WidgetRenderState<StatsRenderState, StatsConnectorParams> | undefined;
4246
+ toggleRefinement?: {
4247
+ [attribute: string]: WidgetRenderState<ToggleRefinementRenderState, ToggleRefinementConnectorParams>;
4248
+ } | undefined;
4249
+ voiceSearch?: WidgetRenderState<VoiceSearchRenderState, VoiceSearchConnectorParams> | undefined;
4250
+ analytics?: WidgetRenderState<Record<string, unknown>, AnalyticsWidgetParams> | undefined;
4251
+ places?: WidgetRenderState<Record<string, unknown>, PlacesWidgetParams> | undefined;
4252
+ }, renderOptions: InitOptions | RenderOptions): IndexRenderState & InfiniteHitsWidgetDescription["indexRenderState"];
4253
+ getWidgetRenderState({ results, helper, parent, state: existingState, instantSearchInstance, }: InitOptions | RenderOptions): {
4254
+ hits: Hit<THit>[];
4255
+ items: Hit<THit>[];
4256
+ currentPageHits: Hit<THit>[];
4257
+ sendEvent: SendEventForHits;
4258
+ bindEvent: BindEventForHits;
4259
+ banner: Banner | undefined;
4260
+ results: SearchResults<any> | undefined;
4261
+ showPrevious: () => void;
4262
+ showMore: () => void;
4263
+ isFirstPage: boolean;
4264
+ isLastPage: boolean;
4265
+ widgetParams: TWidgetParams & InfiniteHitsConnectorParams<THit>;
4266
+ };
4267
+ dispose({ state }: DisposeOptions): SearchParameters;
4268
+ getWidgetUiState(uiState: {
4269
+ page?: number | undefined;
4270
+ query?: string | undefined;
4271
+ configure?: PlainSearchParameters | undefined;
4272
+ geoSearch?: {
4273
+ boundingBox: string;
4274
+ } | undefined;
4275
+ hierarchicalMenu?: {
4276
+ [rootAttribute: string]: string[];
4277
+ } | undefined;
4278
+ hitsPerPage?: number | undefined;
4279
+ menu?: {
4280
+ [attribute: string]: string;
4281
+ } | undefined;
4282
+ numericMenu?: {
4283
+ [attribute: string]: string;
4284
+ } | undefined;
4285
+ range?: {
4286
+ [attribute: string]: string;
4287
+ } | undefined;
4288
+ ratingMenu?: {
4289
+ [attribute: string]: number | undefined;
4290
+ } | undefined;
4291
+ refinementList?: {
4292
+ [attribute: string]: string[];
4293
+ } | undefined;
4294
+ relevantSort?: number | undefined;
4295
+ sortBy?: string | undefined;
4296
+ toggle?: {
4297
+ [attribute: string]: boolean;
4298
+ } | undefined;
4299
+ places?: {
4300
+ query: string;
4301
+ position: string;
4302
+ } | undefined;
4303
+ }, { searchParameters }: {
4304
+ searchParameters: SearchParameters;
4305
+ helper: AlgoliaSearchHelper;
4306
+ }): {
4307
+ page?: number | undefined;
4308
+ query?: string | undefined;
4309
+ configure?: PlainSearchParameters | undefined;
4310
+ geoSearch?: {
4311
+ boundingBox: string;
4312
+ } | undefined;
4313
+ hierarchicalMenu?: {
4314
+ [rootAttribute: string]: string[];
4315
+ } | undefined;
4316
+ hitsPerPage?: number | undefined;
4317
+ menu?: {
4318
+ [attribute: string]: string;
4319
+ } | undefined;
4320
+ numericMenu?: {
4321
+ [attribute: string]: string;
4322
+ } | undefined;
4323
+ range?: {
4324
+ [attribute: string]: string;
4325
+ } | undefined;
4326
+ ratingMenu?: {
4327
+ [attribute: string]: number | undefined;
4328
+ } | undefined;
4329
+ refinementList?: {
4330
+ [attribute: string]: string[];
4331
+ } | undefined;
4332
+ relevantSort?: number | undefined;
4333
+ sortBy?: string | undefined;
4334
+ toggle?: {
4335
+ [attribute: string]: boolean;
4336
+ } | undefined;
4337
+ places?: {
4338
+ query: string;
4339
+ position: string;
4340
+ } | undefined;
4341
+ };
4342
+ getWidgetSearchParameters(searchParameters: SearchParameters, { uiState }: {
4343
+ uiState: {
4344
+ page?: number | undefined;
4345
+ query?: string | undefined;
4346
+ configure?: PlainSearchParameters | undefined;
4347
+ geoSearch?: {
4348
+ boundingBox: string;
4349
+ } | undefined;
4350
+ hierarchicalMenu?: {
2839
4351
  [rootAttribute: string]: string[];
2840
4352
  } | undefined;
2841
4353
  hitsPerPage?: number | undefined;
@@ -3568,8 +5080,333 @@ declare const _default_7: <TWidgetParams extends UnknownWidgetParams>(renderFn:
3568
5080
  widgetParams: TWidgetParams & LookingSimilarConnectorParams<THit>;
3569
5081
  sendEvent: SendEventForHits;
3570
5082
  };
3571
- dispose({ recommendState }: DisposeOptions): RecommendParameters;
3572
- getWidgetParameters(state: RecommendParameters): RecommendParameters;
5083
+ dispose({ recommendState }: DisposeOptions): RecommendParameters;
5084
+ getWidgetParameters(state: RecommendParameters): RecommendParameters;
5085
+ };
5086
+
5087
+ declare const _default_8: <TWidgetParams extends UnknownWidgetParams>(renderFn: Renderer<ChatRenderState, TWidgetParams & ChatConnectorParams>, unmountFn?: Unmounter) => <TUiMessage extends UIMessage = UIMessage<unknown, UIDataTypes, UITools>>(widgetParams: TWidgetParams & ChatConnectorParams<TUiMessage>) => {
5088
+ $$type: "ais.chat";
5089
+ init(initOptions: InitOptions): void;
5090
+ render(renderOptions: RenderOptions): void;
5091
+ getRenderState(renderState: {
5092
+ answers?: WidgetRenderState<AnswersRenderState, AnswersConnectorParams> | undefined;
5093
+ autocomplete?: WidgetRenderState<AutocompleteRenderState, AutocompleteConnectorParams> | undefined;
5094
+ breadcrumb?: {
5095
+ [rootAttribute: string]: WidgetRenderState<BreadcrumbRenderState, BreadcrumbConnectorParams>;
5096
+ } | undefined;
5097
+ chat?: WidgetRenderState<ChatRenderState<UIMessage<unknown, UIDataTypes, UITools>>, ChatConnectorParams<UIMessage<unknown, UIDataTypes, UITools>>> | undefined;
5098
+ clearRefinements?: WidgetRenderState<ClearRefinementsRenderState, ClearRefinementsConnectorParams> | undefined;
5099
+ configure?: WidgetRenderState<ConfigureRenderState, ConfigureConnectorParams> | undefined;
5100
+ currentRefinements?: WidgetRenderState<CurrentRefinementsRenderState, CurrentRefinementsConnectorParams> | undefined;
5101
+ geoSearch?: WidgetRenderState<GeoSearchRenderState<GeoHit>, GeoSearchConnectorParams<GeoHit>> | undefined;
5102
+ hierarchicalMenu?: {
5103
+ [rootAttribute: string]: WidgetRenderState<HierarchicalMenuRenderState, HierarchicalMenuConnectorParams>;
5104
+ } | undefined;
5105
+ hits?: WidgetRenderState<HitsRenderState<BaseHit>, HitsConnectorParams<BaseHit>> | undefined;
5106
+ hitsPerPage?: WidgetRenderState<HitsPerPageRenderState, HitsPerPageConnectorParams> | undefined;
5107
+ infiniteHits?: WidgetRenderState<InfiniteHitsRenderState<BaseHit>, InfiniteHitsConnectorParams<BaseHit>> | undefined;
5108
+ menu?: {
5109
+ [attribute: string]: WidgetRenderState<MenuRenderState, MenuConnectorParams>;
5110
+ } | undefined;
5111
+ numericMenu?: {
5112
+ [attribute: string]: WidgetRenderState<NumericMenuRenderState, NumericMenuConnectorParams>;
5113
+ } | undefined;
5114
+ pagination?: WidgetRenderState<PaginationRenderState, PaginationConnectorParams> | undefined;
5115
+ poweredBy?: WidgetRenderState<PoweredByRenderState, PoweredByConnectorParams> | undefined;
5116
+ queryRules?: WidgetRenderState<QueryRulesRenderState, QueryRulesConnectorParams> | undefined;
5117
+ range?: {
5118
+ [attribute: string]: WidgetRenderState<RangeRenderState, RangeConnectorParams>;
5119
+ } | undefined;
5120
+ ratingMenu?: {
5121
+ [attribute: string]: WidgetRenderState<RatingMenuRenderState, RatingMenuConnectorParams>;
5122
+ } | undefined;
5123
+ refinementList?: {
5124
+ [attribute: string]: WidgetRenderState<RefinementListRenderState, RefinementListConnectorParams>;
5125
+ } | undefined;
5126
+ relevantSort?: WidgetRenderState<RelevantSortRenderState, RelevantSortConnectorParams> | undefined;
5127
+ searchBox?: WidgetRenderState<SearchBoxRenderState, SearchBoxConnectorParams> | undefined;
5128
+ sortBy?: WidgetRenderState<SortByRenderState, SortByConnectorParams> | undefined;
5129
+ stats?: WidgetRenderState<StatsRenderState, StatsConnectorParams> | undefined;
5130
+ toggleRefinement?: {
5131
+ [attribute: string]: WidgetRenderState<ToggleRefinementRenderState, ToggleRefinementConnectorParams>;
5132
+ } | undefined;
5133
+ voiceSearch?: WidgetRenderState<VoiceSearchRenderState, VoiceSearchConnectorParams> | undefined;
5134
+ analytics?: WidgetRenderState<Record<string, unknown>, AnalyticsWidgetParams> | undefined;
5135
+ places?: WidgetRenderState<Record<string, unknown>, PlacesWidgetParams> | undefined;
5136
+ }, renderOptions: InitOptions | RenderOptions): IndexRenderState & ChatWidgetDescription["indexRenderState"];
5137
+ getWidgetRenderState(renderOptions: InitOptions | RenderOptions): {
5138
+ indexUiState: Partial<{
5139
+ query: string;
5140
+ } & {
5141
+ configure: PlainSearchParameters;
5142
+ } & {
5143
+ geoSearch: {
5144
+ boundingBox: string;
5145
+ };
5146
+ } & {
5147
+ hierarchicalMenu: {
5148
+ [rootAttribute: string]: string[];
5149
+ };
5150
+ } & {
5151
+ hitsPerPage: number;
5152
+ } & {
5153
+ page: number;
5154
+ } & {
5155
+ menu: {
5156
+ [attribute: string]: string;
5157
+ };
5158
+ } & {
5159
+ numericMenu: {
5160
+ [attribute: string]: string;
5161
+ };
5162
+ } & {
5163
+ page: number;
5164
+ } & {
5165
+ range: {
5166
+ [attribute: string]: string;
5167
+ };
5168
+ } & {
5169
+ ratingMenu: {
5170
+ [attribute: string]: number | undefined;
5171
+ };
5172
+ } & {
5173
+ refinementList: {
5174
+ [attribute: string]: string[];
5175
+ };
5176
+ } & {
5177
+ relevantSort: number;
5178
+ } & {
5179
+ query: string;
5180
+ } & {
5181
+ sortBy: string;
5182
+ } & {
5183
+ toggle: {
5184
+ [attribute: string]: boolean;
5185
+ };
5186
+ } & {
5187
+ query: string;
5188
+ } & {
5189
+ places: {
5190
+ query: string;
5191
+ position: string;
5192
+ };
5193
+ }>;
5194
+ input: string;
5195
+ open: boolean;
5196
+ sendEvent: SendEventForHits;
5197
+ setIndexUiState: (indexUiState: Partial<{
5198
+ query: string;
5199
+ } & {
5200
+ configure: PlainSearchParameters;
5201
+ } & {
5202
+ geoSearch: {
5203
+ boundingBox: string;
5204
+ };
5205
+ } & {
5206
+ hierarchicalMenu: {
5207
+ [rootAttribute: string]: string[];
5208
+ };
5209
+ } & {
5210
+ hitsPerPage: number;
5211
+ } & {
5212
+ page: number;
5213
+ } & {
5214
+ menu: {
5215
+ [attribute: string]: string;
5216
+ };
5217
+ } & {
5218
+ numericMenu: {
5219
+ [attribute: string]: string;
5220
+ };
5221
+ } & {
5222
+ page: number;
5223
+ } & {
5224
+ range: {
5225
+ [attribute: string]: string;
5226
+ };
5227
+ } & {
5228
+ ratingMenu: {
5229
+ [attribute: string]: number | undefined;
5230
+ };
5231
+ } & {
5232
+ refinementList: {
5233
+ [attribute: string]: string[];
5234
+ };
5235
+ } & {
5236
+ relevantSort: number;
5237
+ } & {
5238
+ query: string;
5239
+ } & {
5240
+ sortBy: string;
5241
+ } & {
5242
+ toggle: {
5243
+ [attribute: string]: boolean;
5244
+ };
5245
+ } & {
5246
+ query: string;
5247
+ } & {
5248
+ places: {
5249
+ query: string;
5250
+ position: string;
5251
+ };
5252
+ }> | ((previousIndexUiState: Partial<{
5253
+ query: string;
5254
+ } & {
5255
+ configure: PlainSearchParameters;
5256
+ } & {
5257
+ geoSearch: {
5258
+ boundingBox: string;
5259
+ };
5260
+ } & {
5261
+ hierarchicalMenu: {
5262
+ [rootAttribute: string]: string[];
5263
+ };
5264
+ } & {
5265
+ hitsPerPage: number;
5266
+ } & {
5267
+ page: number;
5268
+ } & {
5269
+ menu: {
5270
+ [attribute: string]: string;
5271
+ };
5272
+ } & {
5273
+ numericMenu: {
5274
+ [attribute: string]: string;
5275
+ };
5276
+ } & {
5277
+ page: number;
5278
+ } & {
5279
+ range: {
5280
+ [attribute: string]: string;
5281
+ };
5282
+ } & {
5283
+ ratingMenu: {
5284
+ [attribute: string]: number | undefined;
5285
+ };
5286
+ } & {
5287
+ refinementList: {
5288
+ [attribute: string]: string[];
5289
+ };
5290
+ } & {
5291
+ relevantSort: number;
5292
+ } & {
5293
+ query: string;
5294
+ } & {
5295
+ sortBy: string;
5296
+ } & {
5297
+ toggle: {
5298
+ [attribute: string]: boolean;
5299
+ };
5300
+ } & {
5301
+ query: string;
5302
+ } & {
5303
+ places: {
5304
+ query: string;
5305
+ position: string;
5306
+ };
5307
+ }>) => Partial<{
5308
+ query: string;
5309
+ } & {
5310
+ configure: PlainSearchParameters;
5311
+ } & {
5312
+ geoSearch: {
5313
+ boundingBox: string;
5314
+ };
5315
+ } & {
5316
+ hierarchicalMenu: {
5317
+ [rootAttribute: string]: string[];
5318
+ };
5319
+ } & {
5320
+ hitsPerPage: number;
5321
+ } & {
5322
+ page: number;
5323
+ } & {
5324
+ menu: {
5325
+ [attribute: string]: string;
5326
+ };
5327
+ } & {
5328
+ numericMenu: {
5329
+ [attribute: string]: string;
5330
+ };
5331
+ } & {
5332
+ page: number;
5333
+ } & {
5334
+ range: {
5335
+ [attribute: string]: string;
5336
+ };
5337
+ } & {
5338
+ ratingMenu: {
5339
+ [attribute: string]: number | undefined;
5340
+ };
5341
+ } & {
5342
+ refinementList: {
5343
+ [attribute: string]: string[];
5344
+ };
5345
+ } & {
5346
+ relevantSort: number;
5347
+ } & {
5348
+ query: string;
5349
+ } & {
5350
+ sortBy: string;
5351
+ } & {
5352
+ toggle: {
5353
+ [attribute: string]: boolean;
5354
+ };
5355
+ } & {
5356
+ query: string;
5357
+ } & {
5358
+ places: {
5359
+ query: string;
5360
+ position: string;
5361
+ };
5362
+ }>)) => void;
5363
+ setInput: (input: string) => void;
5364
+ setOpen: (open: boolean) => void;
5365
+ setMessages: (messagesParam: TUiMessage[] | ((m: TUiMessage[]) => TUiMessage[])) => void;
5366
+ suggestions: string[] | undefined;
5367
+ isClearing: boolean;
5368
+ clearMessages: () => void;
5369
+ onClearTransitionEnd: () => void;
5370
+ tools: ClientSideTools;
5371
+ widgetParams: TWidgetParams & ChatConnectorParams<TUiMessage>;
5372
+ addToolResult: <TTool extends keyof InferUIMessageTools<TUiMessage>>({ tool, toolCallId, output, }: {
5373
+ tool: TTool;
5374
+ toolCallId: string;
5375
+ output: InferUIMessageTools<TUiMessage>[TTool]["output"];
5376
+ }) => Promise<void>;
5377
+ clearError: () => void;
5378
+ error: Error | undefined;
5379
+ id: string;
5380
+ messages: TUiMessage[];
5381
+ regenerate: ({ messageId, ...options }?: {
5382
+ messageId?: string;
5383
+ } & ChatRequestOptions) => Promise<void>;
5384
+ resumeStream: (options?: ChatRequestOptions) => Promise<void>;
5385
+ sendMessage: (message?: (Omit<TUiMessage, "id" | "role"> & {
5386
+ id?: TUiMessage["id"] | undefined;
5387
+ role?: TUiMessage["role"] | undefined;
5388
+ } & {
5389
+ text?: never;
5390
+ files?: never;
5391
+ messageId?: string;
5392
+ }) | {
5393
+ text: string;
5394
+ files?: FileList | FileUIPart[];
5395
+ metadata?: InferUIMessageMetadata<TUiMessage> | undefined;
5396
+ parts?: never;
5397
+ messageId?: string;
5398
+ } | {
5399
+ files: FileList | FileUIPart[];
5400
+ metadata?: InferUIMessageMetadata<TUiMessage> | undefined;
5401
+ parts?: never;
5402
+ messageId?: string;
5403
+ } | undefined, options?: ChatRequestOptions) => Promise<void>;
5404
+ status: ChatStatus;
5405
+ stop: () => Promise<void>;
5406
+ };
5407
+ dispose(): void;
5408
+ shouldRender(): true;
5409
+ readonly chatInstance: Chat<TUiMessage>;
3573
5410
  };
3574
5411
 
3575
5412
  /**
@@ -3585,7 +5422,7 @@ declare const _default_7: <TWidgetParams extends UnknownWidgetParams>(renderFn:
3585
5422
  *
3586
5423
  * Don't forget to explicitly set the `height` of the map container (default class `.ais-geo-search--map`), otherwise it won't be shown (it's a requirement of Google Maps).
3587
5424
  */
3588
- declare const _default_8: <THit extends GeoHit = GeoHit>(widgetParams: GeoSearchWidgetParams<THit> & GeoSearchConnectorParams<THit>) => {
5425
+ declare const _default_9: <THit extends GeoHit = GeoHit>(widgetParams: GeoSearchWidgetParams<THit> & GeoSearchConnectorParams<THit>) => {
3589
5426
  $$widgetType: "ais.geoSearch";
3590
5427
  $$type: "ais.geoSearch";
3591
5428
  init(initArgs: InitOptions): void;
@@ -3736,172 +5573,63 @@ declare const _default_8: <THit extends GeoHit = GeoHit>(widgetParams: GeoSearch
3736
5573
  [attribute: string]: number | undefined;
3737
5574
  } | undefined;
3738
5575
  refinementList?: {
3739
- [attribute: string]: string[];
3740
- } | undefined;
3741
- relevantSort?: number | undefined;
3742
- sortBy?: string | undefined;
3743
- toggle?: {
3744
- [attribute: string]: boolean;
3745
- } | undefined;
3746
- places?: {
3747
- query: string;
3748
- position: string;
3749
- } | undefined;
3750
- }, { searchParameters }: {
3751
- searchParameters: SearchParameters;
3752
- helper: AlgoliaSearchHelper;
3753
- }): {
3754
- geoSearch?: {
3755
- boundingBox: string;
3756
- } | undefined;
3757
- query?: string | undefined;
3758
- configure?: PlainSearchParameters | undefined;
3759
- hierarchicalMenu?: {
3760
- [rootAttribute: string]: string[];
3761
- } | undefined;
3762
- hitsPerPage?: number | undefined;
3763
- page?: number | undefined;
3764
- menu?: {
3765
- [attribute: string]: string;
3766
- } | undefined;
3767
- numericMenu?: {
3768
- [attribute: string]: string;
3769
- } | undefined;
3770
- range?: {
3771
- [attribute: string]: string;
3772
- } | undefined;
3773
- ratingMenu?: {
3774
- [attribute: string]: number | undefined;
3775
- } | undefined;
3776
- refinementList?: {
3777
- [attribute: string]: string[];
3778
- } | undefined;
3779
- relevantSort?: number | undefined;
3780
- sortBy?: string | undefined;
3781
- toggle?: {
3782
- [attribute: string]: boolean;
3783
- } | undefined;
3784
- places?: {
3785
- query: string;
3786
- position: string;
3787
- } | undefined;
3788
- };
3789
- getWidgetSearchParameters(searchParameters: SearchParameters, { uiState }: {
3790
- uiState: {
3791
- geoSearch?: {
3792
- boundingBox: string;
3793
- } | undefined;
3794
- query?: string | undefined;
3795
- configure?: PlainSearchParameters | undefined;
3796
- hierarchicalMenu?: {
3797
- [rootAttribute: string]: string[];
3798
- } | undefined;
3799
- hitsPerPage?: number | undefined;
3800
- page?: number | undefined;
3801
- menu?: {
3802
- [attribute: string]: string;
3803
- } | undefined;
3804
- numericMenu?: {
3805
- [attribute: string]: string;
3806
- } | undefined;
3807
- range?: {
3808
- [attribute: string]: string;
3809
- } | undefined;
3810
- ratingMenu?: {
3811
- [attribute: string]: number | undefined;
3812
- } | undefined;
3813
- refinementList?: {
3814
- [attribute: string]: string[];
3815
- } | undefined;
3816
- relevantSort?: number | undefined;
3817
- sortBy?: string | undefined;
3818
- toggle?: {
3819
- [attribute: string]: boolean;
3820
- } | undefined;
3821
- places?: {
3822
- query: string;
3823
- position: string;
3824
- } | undefined;
3825
- };
3826
- }): SearchParameters;
3827
- };
3828
-
3829
- declare const _default_9: <THit extends NonNullable<object> = BaseHit>(widgetParams: HitsWidgetParams<THit> & HitsConnectorParams<THit>) => {
3830
- $$widgetType: "ais.hits";
3831
- $$type: "ais.hits";
3832
- init(initOptions: InitOptions): void;
3833
- render(renderOptions: RenderOptions): void;
3834
- getRenderState(renderState: {
3835
- answers?: WidgetRenderState<AnswersRenderState, AnswersConnectorParams> | undefined;
3836
- autocomplete?: WidgetRenderState<AutocompleteRenderState, AutocompleteConnectorParams> | undefined;
3837
- breadcrumb?: {
3838
- [rootAttribute: string]: WidgetRenderState<BreadcrumbRenderState, BreadcrumbConnectorParams>;
5576
+ [attribute: string]: string[];
3839
5577
  } | undefined;
3840
- chat?: WidgetRenderState<ChatRenderState<UIMessage<unknown, UIDataTypes, UITools>>, ChatConnectorParams<UIMessage<unknown, UIDataTypes, UITools>>> | undefined;
3841
- clearRefinements?: WidgetRenderState<ClearRefinementsRenderState, ClearRefinementsConnectorParams> | undefined;
3842
- configure?: WidgetRenderState<ConfigureRenderState, ConfigureConnectorParams> | undefined;
3843
- currentRefinements?: WidgetRenderState<CurrentRefinementsRenderState, CurrentRefinementsConnectorParams> | undefined;
3844
- geoSearch?: WidgetRenderState<GeoSearchRenderState<GeoHit>, GeoSearchConnectorParams<GeoHit>> | undefined;
5578
+ relevantSort?: number | undefined;
5579
+ sortBy?: string | undefined;
5580
+ toggle?: {
5581
+ [attribute: string]: boolean;
5582
+ } | undefined;
5583
+ places?: {
5584
+ query: string;
5585
+ position: string;
5586
+ } | undefined;
5587
+ }, { searchParameters }: {
5588
+ searchParameters: SearchParameters;
5589
+ helper: AlgoliaSearchHelper;
5590
+ }): {
5591
+ geoSearch?: {
5592
+ boundingBox: string;
5593
+ } | undefined;
5594
+ query?: string | undefined;
5595
+ configure?: PlainSearchParameters | undefined;
3845
5596
  hierarchicalMenu?: {
3846
- [rootAttribute: string]: WidgetRenderState<HierarchicalMenuRenderState, HierarchicalMenuConnectorParams>;
5597
+ [rootAttribute: string]: string[];
3847
5598
  } | undefined;
3848
- hits?: WidgetRenderState<HitsRenderState<BaseHit>, HitsConnectorParams<BaseHit>> | undefined;
3849
- hitsPerPage?: WidgetRenderState<HitsPerPageRenderState, HitsPerPageConnectorParams> | undefined;
3850
- infiniteHits?: WidgetRenderState<InfiniteHitsRenderState<BaseHit>, InfiniteHitsConnectorParams<BaseHit>> | undefined;
5599
+ hitsPerPage?: number | undefined;
5600
+ page?: number | undefined;
3851
5601
  menu?: {
3852
- [attribute: string]: WidgetRenderState<MenuRenderState, MenuConnectorParams>;
5602
+ [attribute: string]: string;
3853
5603
  } | undefined;
3854
5604
  numericMenu?: {
3855
- [attribute: string]: WidgetRenderState<NumericMenuRenderState, NumericMenuConnectorParams>;
5605
+ [attribute: string]: string;
3856
5606
  } | undefined;
3857
- pagination?: WidgetRenderState<PaginationRenderState, PaginationConnectorParams> | undefined;
3858
- poweredBy?: WidgetRenderState<PoweredByRenderState, PoweredByConnectorParams> | undefined;
3859
- queryRules?: WidgetRenderState<QueryRulesRenderState, QueryRulesConnectorParams> | undefined;
3860
5607
  range?: {
3861
- [attribute: string]: WidgetRenderState<RangeRenderState, RangeConnectorParams>;
5608
+ [attribute: string]: string;
3862
5609
  } | undefined;
3863
5610
  ratingMenu?: {
3864
- [attribute: string]: WidgetRenderState<RatingMenuRenderState, RatingMenuConnectorParams>;
5611
+ [attribute: string]: number | undefined;
3865
5612
  } | undefined;
3866
5613
  refinementList?: {
3867
- [attribute: string]: WidgetRenderState<RefinementListRenderState, RefinementListConnectorParams>;
5614
+ [attribute: string]: string[];
3868
5615
  } | undefined;
3869
- relevantSort?: WidgetRenderState<RelevantSortRenderState, RelevantSortConnectorParams> | undefined;
3870
- searchBox?: WidgetRenderState<SearchBoxRenderState, SearchBoxConnectorParams> | undefined;
3871
- sortBy?: WidgetRenderState<SortByRenderState, SortByConnectorParams> | undefined;
3872
- stats?: WidgetRenderState<StatsRenderState, StatsConnectorParams> | undefined;
3873
- toggleRefinement?: {
3874
- [attribute: string]: WidgetRenderState<ToggleRefinementRenderState, ToggleRefinementConnectorParams>;
5616
+ relevantSort?: number | undefined;
5617
+ sortBy?: string | undefined;
5618
+ toggle?: {
5619
+ [attribute: string]: boolean;
5620
+ } | undefined;
5621
+ places?: {
5622
+ query: string;
5623
+ position: string;
3875
5624
  } | undefined;
3876
- voiceSearch?: WidgetRenderState<VoiceSearchRenderState, VoiceSearchConnectorParams> | undefined;
3877
- analytics?: WidgetRenderState<Record<string, unknown>, AnalyticsWidgetParams> | undefined;
3878
- places?: WidgetRenderState<Record<string, unknown>, PlacesWidgetParams> | undefined;
3879
- }, renderOptions: InitOptions | RenderOptions): IndexRenderState & HitsWidgetDescription["indexRenderState"];
3880
- getWidgetRenderState({ results, helper, instantSearchInstance }: InitOptions | RenderOptions): {
3881
- hits: never[];
3882
- items: never[];
3883
- results: undefined;
3884
- banner: undefined;
3885
- sendEvent: SendEventForHits;
3886
- bindEvent: BindEventForHits;
3887
- widgetParams: Partial<HitsWidgetParams<BaseHit>> & HitsConnectorParams<THit>;
3888
- } | {
3889
- hits: Hit<BaseHit>[] | Hit<THit>[];
3890
- items: Hit<BaseHit>[] | Hit<THit>[];
3891
- results: SearchResults<any>;
3892
- banner: Banner | undefined;
3893
- sendEvent: SendEventForHits;
3894
- bindEvent: BindEventForHits;
3895
- widgetParams: Partial<HitsWidgetParams<BaseHit>> & HitsConnectorParams<THit>;
3896
5625
  };
3897
- dispose({ state }: DisposeOptions): SearchParameters;
3898
- getWidgetSearchParameters(state: SearchParameters, _uiState: {
5626
+ getWidgetSearchParameters(searchParameters: SearchParameters, { uiState }: {
3899
5627
  uiState: {
3900
- query?: string | undefined;
3901
- configure?: PlainSearchParameters | undefined;
3902
5628
  geoSearch?: {
3903
5629
  boundingBox: string;
3904
5630
  } | undefined;
5631
+ query?: string | undefined;
5632
+ configure?: PlainSearchParameters | undefined;
3905
5633
  hierarchicalMenu?: {
3906
5634
  [rootAttribute: string]: string[];
3907
5635
  } | undefined;
@@ -3935,6 +5663,14 @@ declare const _default_9: <THit extends NonNullable<object> = BaseHit>(widgetPar
3935
5663
  }): SearchParameters;
3936
5664
  };
3937
5665
 
5666
+ /**
5667
+ * Default chat transport implementation using NDJSON streaming.
5668
+ */
5669
+ declare class DefaultChatTransport<TUIMessage extends UIMessage> extends HttpChatTransport<TUIMessage> {
5670
+ constructor(options?: HttpChatTransportInitOptions<TUIMessage>);
5671
+ protected processResponseStream(stream: ReadableStream<Uint8Array>): ReadableStream<UIMessageChunk>;
5672
+ }
5673
+
3938
5674
  declare type DisposeOptions = {
3939
5675
  helper: AlgoliaSearchHelper;
3940
5676
  state: SearchParameters;
@@ -3942,6 +5678,36 @@ declare type DisposeOptions = {
3942
5678
  parent: IndexWidget;
3943
5679
  };
3944
5680
 
5681
+ declare type DynamicToolUIPart = {
5682
+ type: 'dynamic-tool';
5683
+ toolName: string;
5684
+ toolCallId: string;
5685
+ } & ({
5686
+ state: 'input-streaming';
5687
+ input: unknown | undefined;
5688
+ output?: never;
5689
+ errorText?: never;
5690
+ } | {
5691
+ state: 'input-available';
5692
+ input: unknown;
5693
+ output?: never;
5694
+ errorText?: never;
5695
+ callProviderMetadata?: ProviderMetadata;
5696
+ } | {
5697
+ state: 'output-available';
5698
+ input: unknown;
5699
+ output: unknown;
5700
+ errorText?: never;
5701
+ callProviderMetadata?: ProviderMetadata;
5702
+ preliminary?: boolean;
5703
+ } | {
5704
+ state: 'output-error';
5705
+ input: unknown;
5706
+ output?: never;
5707
+ errorText: string;
5708
+ callProviderMetadata?: ProviderMetadata;
5709
+ });
5710
+
3945
5711
  declare const dynamicWidgets: DynamicWidgetsWidget;
3946
5712
 
3947
5713
  declare type DynamicWidgetsConnector = Connector<DynamicWidgetsWidgetDescription, DynamicWidgetsConnectorParams>;
@@ -4058,6 +5824,127 @@ declare const EXPERIMENTAL_dynamicWidgets: DynamicWidgetsWidget;
4058
5824
 
4059
5825
  declare type FacetValue = string | boolean | number;
4060
5826
 
5827
+ declare type FetchFunction = typeof fetch;
5828
+
5829
+ declare type FileUIPart = {
5830
+ type: 'file';
5831
+ mediaType: string;
5832
+ filename?: string;
5833
+ url: string;
5834
+ providerMetadata?: ProviderMetadata;
5835
+ };
5836
+
5837
+ declare type FilterSuggestionsConnector = Connector<FilterSuggestionsWidgetDescription, FilterSuggestionsConnectorParams>;
5838
+
5839
+ declare type FilterSuggestionsConnectorParams = {
5840
+ /**
5841
+ * The ID of the agent configured in the Algolia dashboard.
5842
+ * Required unless a custom `transport` is provided.
5843
+ */
5844
+ agentId?: string;
5845
+ /**
5846
+ * Limit to specific facet attributes.
5847
+ */
5848
+ attributes?: string[];
5849
+ /**
5850
+ * Maximum number of suggestions to return.
5851
+ * @default 3
5852
+ */
5853
+ maxSuggestions?: number;
5854
+ /**
5855
+ * Debounce delay in milliseconds before fetching suggestions.
5856
+ * @default 300
5857
+ */
5858
+ debounceMs?: number;
5859
+ /**
5860
+ * Number of hits to send for context.
5861
+ * @default 5
5862
+ */
5863
+ hitsToSample?: number;
5864
+ /**
5865
+ * Function to transform the items passed to the templates.
5866
+ */
5867
+ transformItems?: TransformItems<Suggestion>;
5868
+ /**
5869
+ * Custom transport configuration for the API requests.
5870
+ * When provided, allows using a custom endpoint, headers, and request body.
5871
+ */
5872
+ transport?: FilterSuggestionsTransport;
5873
+ };
5874
+
5875
+ declare type FilterSuggestionsCSSClasses = Partial<FilterSuggestionsClassNames>;
5876
+
5877
+ declare type FilterSuggestionsRenderState = {
5878
+ /**
5879
+ * The list of suggested filters.
5880
+ */
5881
+ suggestions: Suggestion[];
5882
+ /**
5883
+ * Whether suggestions are currently being fetched.
5884
+ */
5885
+ isLoading: boolean;
5886
+ /**
5887
+ * Applies a filter for the given attribute and value.
5888
+ */
5889
+ refine: (attribute: string, value: string) => void;
5890
+ };
5891
+
5892
+ declare type FilterSuggestionsTemplates = Partial<{
5893
+ /**
5894
+ * Template to use for the header. Set to `false` to disable the header.
5895
+ */
5896
+ header: Template<FilterSuggestionsHeaderComponentProps> | false;
5897
+ /**
5898
+ * Template to use for each suggestion item.
5899
+ */
5900
+ item: Template<FilterSuggestionsItemComponentProps>;
5901
+ /**
5902
+ * Template to use when there are no suggestions.
5903
+ */
5904
+ empty: Template<FilterSuggestionsEmptyComponentProps>;
5905
+ }>;
5906
+
5907
+ declare type FilterSuggestionsTransport = {
5908
+ /**
5909
+ * The custom API endpoint URL.
5910
+ */
5911
+ api: string;
5912
+ /**
5913
+ * Custom headers to send with the request.
5914
+ */
5915
+ headers?: Record<string, string>;
5916
+ /**
5917
+ * Function to prepare the request body before sending.
5918
+ * Receives the default body and returns the modified request options.
5919
+ */
5920
+ prepareSendMessagesRequest?: (body: Record<string, unknown>) => {
5921
+ body: Record<string, unknown>;
5922
+ };
5923
+ };
5924
+
5925
+ declare type FilterSuggestionsWidgetDescription = {
5926
+ $$type: 'ais.filterSuggestions';
5927
+ renderState: FilterSuggestionsRenderState;
5928
+ indexRenderState: {
5929
+ filterSuggestions: WidgetRenderState<FilterSuggestionsRenderState, FilterSuggestionsConnectorParams>;
5930
+ };
5931
+ };
5932
+
5933
+ declare type FilterSuggestionsWidgetParams = {
5934
+ /**
5935
+ * CSS Selector or HTMLElement to insert the widget.
5936
+ */
5937
+ container: string | HTMLElement;
5938
+ /**
5939
+ * Templates to use for the widget.
5940
+ */
5941
+ templates?: FilterSuggestionsTemplates;
5942
+ /**
5943
+ * CSS classes to add.
5944
+ */
5945
+ cssClasses?: FilterSuggestionsCSSClasses;
5946
+ };
5947
+
4061
5948
  declare type FrequentlyBoughtTogetherConnectorParams<THit extends NonNullable<object> = BaseHit> = {
4062
5949
  /**
4063
5950
  * The objectIDs of the items to get the frequently bought together items for.
@@ -4971,6 +6858,35 @@ declare type HTMLMarkerArguments = {
4971
6858
  };
4972
6859
  };
4973
6860
 
6861
+ /**
6862
+ * Abstract base class for HTTP-based chat transports.
6863
+ */
6864
+ declare abstract class HttpChatTransport<TUIMessage extends UIMessage> implements ChatTransport<TUIMessage> {
6865
+ protected api: string;
6866
+ protected credentials: Resolvable<RequestCredentials> | undefined;
6867
+ protected headers: Resolvable<Record<string, string> | Headers> | undefined;
6868
+ protected body: Resolvable<object> | undefined;
6869
+ protected fetch?: FetchFunction;
6870
+ protected prepareSendMessagesRequest?: PrepareSendMessagesRequest<TUIMessage>;
6871
+ protected prepareReconnectToStreamRequest?: PrepareReconnectToStreamRequest;
6872
+ constructor({ api, credentials, headers, body, fetch: customFetch, prepareSendMessagesRequest, prepareReconnectToStreamRequest, }: HttpChatTransportInitOptions<TUIMessage>);
6873
+ sendMessages({ abortSignal, chatId, messages, requestMetadata, trigger, messageId, headers: requestHeaders, body: requestBody, }: Parameters<ChatTransport<TUIMessage>['sendMessages']>[0]): Promise<ReadableStream<UIMessageChunk>>;
6874
+ reconnectToStream({ chatId, headers: requestHeaders, body: requestBody, }: Parameters<ChatTransport<TUIMessage>['reconnectToStream']>[0]): Promise<ReadableStream<UIMessageChunk> | null>;
6875
+ protected abstract processResponseStream(stream: ReadableStream<Uint8Array>): ReadableStream<UIMessageChunk>;
6876
+ }
6877
+
6878
+ declare type HttpChatTransportInitOptions<UI_MESSAGE extends UIMessage> = {
6879
+ api?: string;
6880
+ credentials?: Resolvable<RequestCredentials>;
6881
+ headers?: Resolvable<Record<string, string> | Headers>;
6882
+ body?: Resolvable<object>;
6883
+ fetch?: FetchFunction;
6884
+ prepareSendMessagesRequest?: PrepareSendMessagesRequest<UI_MESSAGE>;
6885
+ prepareReconnectToStreamRequest?: PrepareReconnectToStreamRequest;
6886
+ };
6887
+
6888
+ declare type IdGenerator = () => string;
6889
+
4974
6890
  declare const index: (widgetParams: IndexWidgetParams) => IndexWidget;
4975
6891
 
4976
6892
  declare type IndexConfig<TItem extends BaseHit> = AutocompleteIndexConfig<TItem> & {
@@ -5108,6 +7024,28 @@ declare type IndexWidgetParams = {
5108
7024
  indexId?: string;
5109
7025
  };
5110
7026
 
7027
+ declare type InferUIMessageData<T extends UIMessage> = T extends UIMessage<unknown, infer DATA_TYPES> ? DATA_TYPES : UIDataTypes;
7028
+
7029
+ declare type InferUIMessageMetadata<T extends UIMessage> = T extends UIMessage<infer METADATA> ? METADATA : unknown;
7030
+
7031
+ declare type InferUIMessageToolCall<UI_MESSAGE extends UIMessage> = ValueOf<{
7032
+ [NAME in keyof InferUIMessageTools<UI_MESSAGE>]: {
7033
+ toolName: NAME & string;
7034
+ toolCallId: string;
7035
+ input: InferUIMessageTools<UI_MESSAGE>[NAME] extends {
7036
+ input: infer INPUT;
7037
+ } ? INPUT : never;
7038
+ dynamic?: false;
7039
+ };
7040
+ }> | {
7041
+ toolName: string;
7042
+ toolCallId: string;
7043
+ input: unknown;
7044
+ dynamic: true;
7045
+ };
7046
+
7047
+ declare type InferUIMessageTools<T extends UIMessage> = T extends UIMessage<unknown, UIDataTypes, infer TOOLS> ? TOOLS : UITools;
7048
+
5111
7049
  declare type InfiniteHitsCache<THit extends NonNullable<object> = BaseHit> = {
5112
7050
  read: Read<THit>;
5113
7051
  write: Write<THit>;
@@ -6626,8 +8564,50 @@ declare type PreparedTemplateProps<TTemplates extends Templates> = {
6626
8564
  };
6627
8565
  };
6628
8566
 
8567
+ declare type PrepareReconnectToStreamRequest = (options: {
8568
+ id: string;
8569
+ requestMetadata: unknown;
8570
+ body: Record<string, unknown> | undefined;
8571
+ credentials: RequestCredentials | undefined;
8572
+ headers: HeadersInit | undefined;
8573
+ api: string;
8574
+ }) => {
8575
+ headers?: HeadersInit;
8576
+ credentials?: RequestCredentials;
8577
+ api?: string;
8578
+ } | PromiseLike<{
8579
+ headers?: HeadersInit;
8580
+ credentials?: RequestCredentials;
8581
+ api?: string;
8582
+ }>;
8583
+
8584
+ declare type PrepareSendMessagesRequest<UI_MESSAGE extends UIMessage> = (options: {
8585
+ id: string;
8586
+ messages: UI_MESSAGE[];
8587
+ requestMetadata: unknown;
8588
+ body: Record<string, unknown> | undefined;
8589
+ credentials: RequestCredentials | undefined;
8590
+ headers: HeadersInit | undefined;
8591
+ api: string;
8592
+ } & {
8593
+ trigger: 'submit-message' | 'regenerate-message';
8594
+ messageId: string | undefined;
8595
+ }) => {
8596
+ body: object;
8597
+ headers?: HeadersInit;
8598
+ credentials?: RequestCredentials;
8599
+ api?: string;
8600
+ } | PromiseLike<{
8601
+ body: object;
8602
+ headers?: HeadersInit;
8603
+ credentials?: RequestCredentials;
8604
+ api?: string;
8605
+ }>;
8606
+
6629
8607
  declare type ProvidedInsightsClient = InsightsClient | null | undefined;
6630
8608
 
8609
+ declare type ProviderMetadata = Record<string, Record<string, unknown>>;
8610
+
6631
8611
  declare const queryRuleContext: QueryRuleContextWidget;
6632
8612
 
6633
8613
  declare type QueryRuleContextWidget = WidgetFactory<QueryRulesWidgetDescription & {
@@ -7131,6 +9111,13 @@ declare type Read<THit extends NonNullable<object>> = ({ state, }: {
7131
9111
  state: PlainSearchParameters;
7132
9112
  }) => InfiniteHitsCachedHits<THit> | null;
7133
9113
 
9114
+ declare type ReasoningUIPart = {
9115
+ type: 'reasoning';
9116
+ text: string;
9117
+ state?: 'streaming' | 'done';
9118
+ providerMetadata?: ProviderMetadata;
9119
+ };
9120
+
7134
9121
  declare type RecommendRenderOptions = SharedRenderOptions & {
7135
9122
  results: RecommendResponse<any>;
7136
9123
  };
@@ -7782,6 +9769,8 @@ declare type RequiredWidgetType<TWidgetDescription extends WidgetDescription> =
7782
9769
  $$widgetType: TWidgetDescription['$$widgetType'];
7783
9770
  };
7784
9771
 
9772
+ declare type Resolvable<T> = T | (() => T) | (() => Promise<T>);
9773
+
7785
9774
  declare function ReverseHighlight<THit extends Hit<BaseHit>>({ hit, attribute, cssClasses, ...props }: ReverseHighlightProps<THit>): h.JSX.Element;
7786
9775
 
7787
9776
  /**
@@ -8334,6 +10323,23 @@ declare type SortByWidgetParams = {
8334
10323
  transformItems?: TransformItems<SortByItem>;
8335
10324
  };
8336
10325
 
10326
+ declare type SourceDocumentUIPart = {
10327
+ type: 'source-document';
10328
+ sourceId: string;
10329
+ mediaType: string;
10330
+ title: string;
10331
+ filename?: string;
10332
+ providerMetadata?: ProviderMetadata;
10333
+ };
10334
+
10335
+ declare type SourceUrlUIPart = {
10336
+ type: 'source-url';
10337
+ sourceId: string;
10338
+ url: string;
10339
+ title?: string;
10340
+ providerMetadata?: ProviderMetadata;
10341
+ };
10342
+
8337
10343
  declare type StarRatingItems = {
8338
10344
  /**
8339
10345
  * Name corresponding to the number of stars.
@@ -8494,6 +10500,29 @@ declare type StatsWidgetParams = {
8494
10500
 
8495
10501
  declare type Status = 'initial' | 'askingPermission' | 'waiting' | 'recognizing' | 'finished' | 'error';
8496
10502
 
10503
+ declare type StepStartUIPart = {
10504
+ type: 'step-start';
10505
+ };
10506
+
10507
+ declare type Suggestion = {
10508
+ /**
10509
+ * The facet attribute name.
10510
+ */
10511
+ attribute: string;
10512
+ /**
10513
+ * The facet value to filter by.
10514
+ */
10515
+ value: string;
10516
+ /**
10517
+ * Human-readable display label.
10518
+ */
10519
+ label: string;
10520
+ /**
10521
+ * Number of records matching this filter.
10522
+ */
10523
+ count: number;
10524
+ };
10525
+
8497
10526
  declare type Template<TTemplateData = void> = string | ((data: TTemplateData, params: TemplateParams) => VNode | VNode[] | string | null);
8498
10527
 
8499
10528
  declare type Template_2<TData = Record<string, unknown>> = (params: {
@@ -8545,6 +10574,13 @@ declare type TextTemplateProps = {
8545
10574
  hasManySortedResults: boolean;
8546
10575
  };
8547
10576
 
10577
+ declare type TextUIPart = {
10578
+ type: 'text';
10579
+ text: string;
10580
+ state?: 'streaming' | 'done';
10581
+ providerMetadata?: ProviderMetadata;
10582
+ };
10583
+
8548
10584
  /**
8549
10585
  * The toggleRefinement widget lets the user either:
8550
10586
  * - switch between two values for a single facetted attribute (free_shipping / not_free_shipping)
@@ -8692,6 +10728,42 @@ declare type ToggleRefinementWidgetParams = {
8692
10728
  cssClasses?: ToggleRefinementCSSClasses;
8693
10729
  };
8694
10730
 
10731
+ declare type ToolUIPart<TOOLS extends UITools = UITools> = ValueOf<{
10732
+ [NAME in keyof TOOLS & string]: {
10733
+ type: `tool-${NAME}`;
10734
+ toolCallId: string;
10735
+ } & ({
10736
+ state: 'input-streaming';
10737
+ input: DeepPartial<TOOLS[NAME]['input']> | undefined;
10738
+ providerExecuted?: boolean;
10739
+ output?: never;
10740
+ errorText?: never;
10741
+ } | {
10742
+ state: 'input-available';
10743
+ input: TOOLS[NAME]['input'];
10744
+ providerExecuted?: boolean;
10745
+ output?: never;
10746
+ errorText?: never;
10747
+ callProviderMetadata?: ProviderMetadata;
10748
+ } | {
10749
+ state: 'output-available';
10750
+ input: TOOLS[NAME]['input'];
10751
+ output: TOOLS[NAME]['output'];
10752
+ errorText?: never;
10753
+ providerExecuted?: boolean;
10754
+ callProviderMetadata?: ProviderMetadata;
10755
+ preliminary?: boolean;
10756
+ } | {
10757
+ state: 'output-error';
10758
+ input: TOOLS[NAME]['input'] | undefined;
10759
+ rawInput?: unknown;
10760
+ output?: never;
10761
+ errorText: string;
10762
+ providerExecuted?: boolean;
10763
+ callProviderMetadata?: ProviderMetadata;
10764
+ });
10765
+ }>;
10766
+
8695
10767
  declare type TrackedFilterRefinement = string | number | boolean;
8696
10768
 
8697
10769
  /**
@@ -8699,6 +10771,13 @@ declare type TrackedFilterRefinement = string | number | boolean;
8699
10771
  */
8700
10772
  declare type TransformItems<TItem, TMetadata = TransformItemsMetadata> = (items: TItem[], metadata: TMetadata) => TItem[];
8701
10773
 
10774
+ declare type TransformItemsIndicesConfig = {
10775
+ indexName: string;
10776
+ indexId: string;
10777
+ hits: Hit[];
10778
+ results: SearchResults;
10779
+ };
10780
+
8702
10781
  declare type TransformItemsMetadata = {
8703
10782
  results: SearchResults | undefined | null;
8704
10783
  };
@@ -8802,12 +10881,125 @@ declare type TrendingItemsWidgetParams<THit extends NonNullable<object> = BaseHi
8802
10881
  cssClasses?: TrendingItemsCSSClasses;
8803
10882
  };
8804
10883
 
10884
+ declare type UIDataTypes = Record<string, unknown>;
10885
+
10886
+ declare interface UIMessage<METADATA = unknown, DATA_PARTS extends UIDataTypes = UIDataTypes, TOOLS extends UITools = UITools> {
10887
+ id: string;
10888
+ role: 'system' | 'user' | 'assistant';
10889
+ metadata?: METADATA;
10890
+ parts: Array<UIMessagePart<DATA_PARTS, TOOLS>>;
10891
+ }
10892
+
10893
+ declare type UIMessageChunk<METADATA = unknown, DATA_TYPES extends UIDataTypes = UIDataTypes> = {
10894
+ type: 'text-start';
10895
+ id: string;
10896
+ providerMetadata?: ProviderMetadata;
10897
+ } | {
10898
+ type: 'text-delta';
10899
+ delta: string;
10900
+ id: string;
10901
+ providerMetadata?: ProviderMetadata;
10902
+ } | {
10903
+ type: 'text-end';
10904
+ id: string;
10905
+ providerMetadata?: ProviderMetadata;
10906
+ } | {
10907
+ type: 'reasoning-start';
10908
+ id: string;
10909
+ providerMetadata?: ProviderMetadata;
10910
+ } | {
10911
+ type: 'reasoning-delta';
10912
+ id: string;
10913
+ delta: string;
10914
+ providerMetadata?: ProviderMetadata;
10915
+ } | {
10916
+ type: 'reasoning-end';
10917
+ id: string;
10918
+ providerMetadata?: ProviderMetadata;
10919
+ } | {
10920
+ type: 'error';
10921
+ errorText: string;
10922
+ } | {
10923
+ type: 'tool-input-available';
10924
+ toolName: string;
10925
+ toolCallId: string;
10926
+ input: unknown;
10927
+ callProviderMetadata?: ProviderMetadata;
10928
+ providerExecuted?: boolean;
10929
+ } | {
10930
+ type: 'tool-input-start';
10931
+ toolName: string;
10932
+ toolCallId: string;
10933
+ input?: unknown;
10934
+ providerExecuted?: boolean;
10935
+ } | {
10936
+ type: 'tool-input-delta';
10937
+ toolName: string;
10938
+ toolCallId: string;
10939
+ inputDelta: string;
10940
+ } | {
10941
+ type: 'tool-output-available';
10942
+ toolName: string;
10943
+ toolCallId: string;
10944
+ output: unknown;
10945
+ callProviderMetadata?: ProviderMetadata;
10946
+ preliminary?: boolean;
10947
+ } | {
10948
+ type: 'tool-error';
10949
+ toolName: string;
10950
+ toolCallId: string;
10951
+ errorText: string;
10952
+ input?: unknown;
10953
+ callProviderMetadata?: ProviderMetadata;
10954
+ } | {
10955
+ type: 'source-url';
10956
+ sourceId: string;
10957
+ url: string;
10958
+ title?: string;
10959
+ } | {
10960
+ type: 'source-document';
10961
+ sourceId: string;
10962
+ mediaType: string;
10963
+ title: string;
10964
+ filename?: string;
10965
+ providerMetadata?: ProviderMetadata;
10966
+ } | {
10967
+ type: 'file';
10968
+ url: string;
10969
+ mediaType: string;
10970
+ } | DataUIMessageChunk<DATA_TYPES> | {
10971
+ type: 'start-step';
10972
+ } | {
10973
+ type: 'finish-step';
10974
+ } | {
10975
+ type: 'start';
10976
+ messageId?: string;
10977
+ messageMetadata?: METADATA;
10978
+ } | {
10979
+ type: 'finish';
10980
+ messageMetadata?: METADATA;
10981
+ } | {
10982
+ type: 'abort';
10983
+ } | {
10984
+ type: 'message-metadata';
10985
+ messageMetadata: METADATA;
10986
+ };
10987
+
10988
+ declare type UIMessagePart<DATA_TYPES extends UIDataTypes = UIDataTypes, TOOLS extends UITools = UITools> = TextUIPart | ReasoningUIPart | ToolUIPart<TOOLS> | DynamicToolUIPart | SourceUrlUIPart | SourceDocumentUIPart | FileUIPart | DataUIPart<DATA_TYPES> | StepStartUIPart;
10989
+
8805
10990
  declare type UiState = {
8806
10991
  [indexId: string]: IndexUiState;
8807
10992
  };
8808
10993
 
8809
10994
  declare type UiStateLifeCycle<TWidgetDescription extends WidgetDescription> = TWidgetDescription extends RequiredKeys<WidgetDescription, 'indexUiState'> ? RequiredUiStateLifeCycle<TWidgetDescription> : Partial<RequiredUiStateLifeCycle<TWidgetDescription>>;
8810
10995
 
10996
+ declare type UITool = {
10997
+ input: unknown;
10998
+ output: unknown | undefined;
10999
+ };
11000
+
11001
+ declare type UITools = Record<string, UITool>;
11002
+
8811
11003
  declare type UnknownWidgetParams = NonNullable<object>;
8812
11004
 
8813
11005
  /**
@@ -8815,6 +11007,18 @@ declare type UnknownWidgetParams = NonNullable<object>;
8815
11007
  */
8816
11008
  declare type Unmounter = () => void;
8817
11009
 
11010
+ declare type UserClientSideToolsWithTemplate = Record<string, UserClientSideToolWithTemplate>;
11011
+
11012
+ declare type UserClientSideToolTemplates = Partial<{
11013
+ layout: TemplateWithBindEvent<ClientSideToolComponentProps>;
11014
+ }>;
11015
+
11016
+ declare type UserClientSideToolWithTemplate = Omit<UserClientSideTool, 'layoutComponent'> & {
11017
+ templates: UserClientSideToolTemplates;
11018
+ };
11019
+
11020
+ declare type ValueOf<T> = T[keyof T];
11021
+
8818
11022
  declare type VoiceListeningState = {
8819
11023
  status: Status;
8820
11024
  transcript: string;
@@ -8950,23 +11154,23 @@ declare namespace widgets {
8950
11154
  clearRefinements,
8951
11155
  configure,
8952
11156
  currentRefinements,
8953
- _default_8 as geoSearch,
11157
+ _default_9 as geoSearch,
8954
11158
  hierarchicalMenu,
8955
- _default_9 as hits,
11159
+ _default_10 as hits,
8956
11160
  hitsPerPage,
8957
11161
  index,
8958
11162
  IndexWidget,
8959
- _default_10 as infiniteHits,
11163
+ _default_11 as infiniteHits,
8960
11164
  menu,
8961
11165
  menuSelect,
8962
11166
  numericMenu,
8963
11167
  pagination,
8964
11168
  panel,
8965
- _default_11 as places,
11169
+ _default_12 as places,
8966
11170
  poweredBy,
8967
11171
  queryRuleContext,
8968
11172
  queryRuleCustomData,
8969
- _default_12 as relatedProducts,
11173
+ _default_13 as relatedProducts,
8970
11174
  rangeInput,
8971
11175
  rangeSlider,
8972
11176
  ratingMenu,
@@ -8976,11 +11180,12 @@ declare namespace widgets {
8976
11180
  sortBy,
8977
11181
  stats,
8978
11182
  toggleRefinement,
8979
- _default_13 as trendingItems,
11183
+ _default_14 as trendingItems,
8980
11184
  voiceSearch,
8981
- _default_14 as frequentlyBoughtTogether,
8982
- _default_15 as lookingSimilar,
8983
- chat
11185
+ _default_15 as frequentlyBoughtTogether,
11186
+ _default_16 as lookingSimilar,
11187
+ _default_17 as chat,
11188
+ _default_18 as filterSuggestions
8984
11189
  }
8985
11190
  }
8986
11191