UNPKG

trieve-search-component

Version:

The easiest way to get up and running in your app using trieve search.

243 lines 8.3 kB
import React from "react"; import { Chunk, ChunkWithHighlights, GroupChunk } from "../types"; import { ChunkFilter, ChunkGroup, SearchChunksReqPayload, TrieveSDK, DefaultSearchQuery } from "trieve-ts-sdk"; export declare const ALL_TAG: { tag: string; label: string; icon: null; iconClassName: string; }; type simpleSearchReqPayload = Omit<SearchChunksReqPayload, "query" | "highlight_options">; type customAutoCompleteAddOn = { use_autocomplete?: boolean; }; export type PagefindApi = any; export type currencyPosition = "before" | "after"; export type ModalTypes = "ecommerce" | "docs" | "pdf"; export type SearchModes = "chat" | "search"; export type searchOptions = simpleSearchReqPayload & customAutoCompleteAddOn; export interface PagefindOptions { usePagefind: boolean; cdnBaseUrl?: string; } export interface TagProp { tag: string; label: string; selected?: boolean; description?: string; range?: { min?: number; max?: number; }; } export declare const defaultRelevanceToolCallOptions: RelevanceToolCallOptions; export interface RelevanceToolCallOptions { userMessageTextPrefix?: string; includeImages?: boolean; toolDescription: string; highDescription?: string; mediumDescription?: string; lowDescription?: string; } export interface SearchToolCallOptions { userMessageTextPrefix?: string; toolDescription: string; } export declare const defaultSearchToolCallOptions: SearchToolCallOptions; export declare const defaultNotFilterToolCallOptions: NotFilterToolCallOptions; export declare const defaultPriceToolCallOptions: PriceToolCallOptions; export interface PriceToolCallOptions { toolDescription: string; minPriceDescription?: string; maxPriceDescription?: string; } export interface NotFilterToolCallOptions { userMessageTextPrefix?: string; toolDescription: string; } export interface FilterSidebarSection { key: string; filterKey: string; title: string; selectionType: "single" | "multiple" | "range"; filterType: "match_any" | "match_all" | "range"; options: TagProp[]; } export interface FilterSidebarProps { sections: FilterSidebarSection[]; } export interface SearchPageProps { filterSidebarProps?: FilterSidebarProps; display?: boolean; } export interface AiQuestion { questionText: string; promptForAI?: string; products?: { id: string; groupId: string; }[]; } export declare function isAiQuestion(question: string | AiQuestion | DefaultSearchQuery): question is AiQuestion; export declare function isDefaultSearchQuery(question: string | AiQuestion | DefaultSearchQuery): question is DefaultSearchQuery; export type ModalProps = { datasetId: string; apiKey: string; partnerSettings?: { partnerCompanyName?: string; partnerCompanyUrl?: string; partnerCompanyFaviconUrl?: string; }; baseUrl?: string; onResultClick?: (chunk: Chunk) => void; theme?: "light" | "dark"; searchOptions?: searchOptions; chatFilters?: ChunkFilter; placeholder?: string; chatPlaceholder?: string; chat?: boolean; analytics?: boolean; ButtonEl?: JSX.ElementType; suggestedQueries?: boolean; allowRefreshSuggestedQueries?: boolean; followupQuestions?: boolean; numberOfSuggestions?: number; defaultSearchQueries?: DefaultSearchQuery[] | string[]; defaultAiQuestions?: AiQuestion[] | DefaultSearchQuery[] | string[]; brandLogoImgSrcUrl?: string; brandName?: string; problemLink?: string; brandColor?: string; brandFontFamily?: string; openKeyCombination?: { key?: string; label?: string; ctrl?: boolean; }[]; tags?: TagProp[]; relevanceToolCallOptions?: RelevanceToolCallOptions; priceToolCallOptions?: PriceToolCallOptions; searchToolCallOptions?: SearchToolCallOptions; notFilterToolCallOptions?: NotFilterToolCallOptions; defaultSearchMode?: SearchModes; usePagefind?: boolean; type?: ModalTypes; useGroupSearch?: boolean; allowSwitchingModes?: boolean; defaultCurrency?: string; currencyPosition?: currencyPosition; responsive?: boolean; open?: boolean; openLinksInNewTab?: boolean; onOpenChange?: (open: boolean) => void; debounceMs?: number; buttonTriggers?: { selector: string; mode: SearchModes; removeListeners?: boolean; }[]; inline?: boolean; inlineCarousel?: boolean; zIndex?: number; showFloatingButton?: boolean; floatingButtonPosition?: "top-left" | "top-right" | "bottom-left" | "bottom-right"; floatingButtonVersion?: "brand-logo" | "brand-color"; floatingSearchIconPosition?: "left" | "right"; showFloatingSearchIcon?: boolean; disableFloatingSearchIconClick?: boolean; showFloatingInput?: boolean; inlineHeader?: string; groupTrackingId?: string; cleanGroupName?: string; cssRelease?: string; hideOpenButton?: boolean; defaultImageQuestion?: string; onAddToCart?: (chunk: Chunk) => Promise<void> | void; showTrieve?: boolean; getCartQuantity?: (trackingId: string) => Promise<number> | number; showResultHighlights?: boolean; initialAiMessage?: string; ignoreEventListeners?: boolean; hideOverlay?: boolean; hidePrice?: boolean; hideChunkHtml?: boolean; componentName?: string; displayModal?: boolean; searchPageProps?: SearchPageProps; recommendOptions?: { queriesToTriggerRecommendations: string[]; productId: string; filter?: ChunkFilter; }; usePortal?: boolean; previewTopicId?: string; overrideFetch?: boolean; searchBar?: boolean; defaultSearchQuery?: string; experimentIds?: string[]; systemPrompt?: string; imageStarterText?: string; }; declare const ModalProvider: ({ children, onLoadProps, }: { children: React.ReactNode; onLoadProps: ModalProps; }) => React.JSX.Element; declare function useModalState(): { props: ModalProps; trieveSDK: TrieveSDK; query: string; imageUrl: string; audioBase64: string | undefined; uploadingImage: boolean; fingerprint: string; setFingerprint: React.Dispatch<React.SetStateAction<string>>; setQuery: React.Dispatch<React.SetStateAction<string>>; setImageUrl: React.Dispatch<React.SetStateAction<string>>; setAudioBase64: React.Dispatch<React.SetStateAction<string | undefined>>; setUploadingImage: React.Dispatch<React.SetStateAction<boolean>>; results: ChunkWithHighlights[] | GroupChunk[][]; setResults: React.Dispatch<React.SetStateAction<ChunkWithHighlights[] | GroupChunk[][]>>; requestID: string; setRequestID: React.Dispatch<React.SetStateAction<string>>; loadingResults: boolean; setLoadingResults: React.Dispatch<React.SetStateAction<boolean>>; open: boolean; setOpen: React.Dispatch<React.SetStateAction<boolean>>; inputRef: React.RefObject<HTMLInputElement>; mode: string; setMode: React.Dispatch<React.SetStateAction<SearchModes>>; modalRef: React.RefObject<HTMLDivElement>; setContextProps: (props: ModalProps) => void; selectedTags: TagProp[]; setSelectedTags: React.Dispatch<React.SetStateAction<TagProp[] | undefined>>; currentGroup: ChunkGroup | null; setCurrentGroup: React.Dispatch<React.SetStateAction<ChunkGroup | null>>; pagefind?: PagefindApi; isRecording: boolean; setIsRecording: React.Dispatch<React.SetStateAction<boolean>>; selectedSidebarFilters: { section: FilterSidebarSection; range?: { min?: number; max?: number; }; tags?: string[]; }[]; setSelectedSidebarFilters: React.Dispatch<React.SetStateAction<{ section: FilterSidebarSection; range?: { min?: number; max?: number; }; tags?: string[]; }[]>>; minHeight: number; resetHeight: () => void; addHeight: (height: number) => void; display: boolean; abTreatment?: string; transcribedQuery: string; setTranscribedQuery: React.Dispatch<React.SetStateAction<string>>; }; export { ModalProvider, useModalState }; //# sourceMappingURL=modal-context.d.ts.map