@searchcraft/vue-sdk 0.9.6 → 0.10.0

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.
@@ -0,0 +1,2747 @@
1
+ // Generated by dts-bundle-generator v9.5.1
2
+
3
+ import { HTMLStencilElement, JSXBase } from '@stencil/core/internal';
4
+
5
+ declare enum LogLevel {
6
+ DEBUG = 0,
7
+ INFO = 1,
8
+ WARN = 2,
9
+ ERROR = 3
10
+ }
11
+ export interface SDKDebuggerOptions {
12
+ logLevel: LogLevel;
13
+ logFormatter?: (level: LogLevel, message: string) => string;
14
+ }
15
+ declare class Logger {
16
+ private logLevel;
17
+ private logFormatter;
18
+ constructor(options: SDKDebuggerOptions);
19
+ private defaultFormatter;
20
+ debug(message: string): void;
21
+ info(message: string): void;
22
+ warn(message: string): void;
23
+ error(message: string): void;
24
+ log(level: LogLevel, message: string): void;
25
+ }
26
+ /**
27
+ * A data type representing an index field value, along with properties
28
+ * describing how to format and display the index field value.
29
+ */
30
+ export type SearchResultFieldName = {
31
+ /**
32
+ * The index field name.
33
+ */
34
+ fieldName: string;
35
+ /**
36
+ * The data type to treat this index field as.
37
+ */
38
+ dataType: "text" | "date" | "number";
39
+ /**
40
+ * The locale to use when formatting dataType: `number`
41
+ */
42
+ numberFormatLocale?: string;
43
+ /**
44
+ * If it's a number, the number format to apply.
45
+ * reference: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat
46
+ */
47
+ numberFormatOptions?: Intl.NumberFormatOptions;
48
+ /**
49
+ * A scale factor to apply to a `number` value.
50
+ */
51
+ numberScale?: number;
52
+ /**
53
+ * TODO: Implement DateFormatOptions, for date formatting
54
+ */
55
+ dateFormatOptions?: unknown;
56
+ };
57
+ /**
58
+ * A data type representing the mapping of index fields, for the purpose of rendering them
59
+ * in search result item.
60
+ */
61
+ export type SearchResultMapping = {
62
+ /**
63
+ * The fields to map to.
64
+ */
65
+ fieldNames: SearchResultFieldName[];
66
+ /**
67
+ * The delimiter used to join them.
68
+ */
69
+ delimiter?: string;
70
+ };
71
+ export type PopoverResultMappings = {
72
+ title?: SearchResultMapping;
73
+ subtitle?: SearchResultMapping;
74
+ imageSource?: SearchResultMapping;
75
+ imageAlt?: SearchResultMapping;
76
+ href?: SearchResultMapping;
77
+ };
78
+ export interface FilterItem {
79
+ type: "facets" | "dateRange" | "numericRange" | "exactMatchToggle" | "mostRecentToggle";
80
+ label: string;
81
+ options: object | null;
82
+ }
83
+ export interface FacetsFilterItem extends FilterItem {
84
+ fieldName: string;
85
+ type: "facets";
86
+ options: {
87
+ showSublevel: boolean;
88
+ };
89
+ }
90
+ export interface NumericFilterItem extends FilterItem {
91
+ fieldName: string;
92
+ type: "numericRange";
93
+ options: {
94
+ min: number;
95
+ max: number;
96
+ granularity: number;
97
+ };
98
+ }
99
+ export interface DateRangeFilterItem extends FilterItem {
100
+ fieldName: string;
101
+ type: "dateRange";
102
+ options: {
103
+ minDate: Date;
104
+ maxDate: Date;
105
+ granularity: "year" | "month" | "day" | "hour";
106
+ };
107
+ }
108
+ export interface ExactMatchToggleFilterItem extends FilterItem {
109
+ type: "exactMatchToggle";
110
+ options: {
111
+ subLabel?: string;
112
+ };
113
+ }
114
+ export interface MostRecentToggleFilterItem extends FilterItem {
115
+ type: "mostRecentToggle";
116
+ options: {
117
+ subLabel?: string;
118
+ };
119
+ }
120
+ export type TemplateHtml = (strings: TemplateStringsArray, ...values: (string | number | undefined)[]) => string;
121
+ export type SearchResultTemplate<T> = (data: T, index: number, utils: {
122
+ html: TemplateHtml;
123
+ }) => string;
124
+ export type SearchResultTemplateData = any;
125
+ export type ResultsInfoTemplate = (data: {
126
+ range: [
127
+ number,
128
+ number
129
+ ];
130
+ count: number;
131
+ responseTime: string;
132
+ }, utils: {
133
+ html: TemplateHtml;
134
+ }) => string;
135
+ export type CustomAdTemplate = (data: {
136
+ adContainerId: string;
137
+ searchTerm: string;
138
+ }, utils: {
139
+ html: TemplateHtml;
140
+ }) => string;
141
+ /**
142
+ * The SearchcraftConfig object is used to initialize Searchcraft in your application.
143
+ */
144
+ export interface SearchcraftConfig {
145
+ /**
146
+ * Host IP Address and port number configured and created using Vektron
147
+ */
148
+ endpointURL: string;
149
+ /**
150
+ * Name or names of search indices configured using Vektron. Given as an array of strings
151
+ */
152
+ index: string[];
153
+ /**
154
+ * A unique user identifier for the end user.
155
+ */
156
+ userId?: string;
157
+ /**
158
+ * The Index read key provided by Vektron.
159
+ */
160
+ readKey: string;
161
+ /**
162
+ * The amount of delay, in milliseconds, to debounce search requests. Defaults to `0`.
163
+ */
164
+ searchDebounceDelay?: number;
165
+ /**
166
+ * The maximum number of results to return per page.
167
+ */
168
+ searchResultsPerPage?: number;
169
+ /**
170
+ * Name of the ad source to use.
171
+ */
172
+ adSource?: "adMarketplace" | "Nativo" | "Custom" | "None";
173
+ /**
174
+ * The maximum number of product ads to show for a single search term.
175
+ */
176
+ admProductAdQuantity?: number;
177
+ /**
178
+ * The maximum number of text ads to show for a single search term.
179
+ */
180
+ admTextAdQuantity?: number;
181
+ /**
182
+ * The adm sub value.
183
+ */
184
+ admSub?: string;
185
+ /**
186
+ * The amount of debounce delay to add before calling the ad_container_rendered event
187
+ */
188
+ adContainerRenderedDebounceDelay?: number;
189
+ /**
190
+ * The number of custom ads to render at the start of the search results page.
191
+ */
192
+ customAdStartQuantity?: number;
193
+ /**
194
+ * The number of custom ads to render at the end of the search results page.
195
+ */
196
+ customAdEndQuantity?: number;
197
+ /**
198
+ * Renders a custom ad in between search results, at the specified interval.
199
+ */
200
+ customAdInterstitialInterval?: number;
201
+ /**
202
+ * Specifies the number of ads to be rendered in each interstitial in between search results.
203
+ */
204
+ customAdInterstitialQuantity?: number;
205
+ /**
206
+ * A callback function responsible for rendering the custom ad containers.
207
+ */
208
+ customAdTemplate?: CustomAdTemplate;
209
+ /**
210
+ * The placement id to use for Nativo ads.
211
+ */
212
+ nativoPlacementId?: number;
213
+ /**
214
+ * The class name for nativo ad containers.
215
+ */
216
+ nativoAdClassName?: string;
217
+ /**
218
+ * The number of custom ads to render at the start of the search results page.
219
+ */
220
+ nativoAdStartQuantity?: number;
221
+ /**
222
+ * The number of custom ads to render at the end of the search results page.
223
+ */
224
+ nativoAdEndQuantity?: number;
225
+ /**
226
+ * Renders a custom ad in between search results, at the specified interval.
227
+ */
228
+ nativoAdInterstitialInterval?: number;
229
+ /**
230
+ * Specify how many normal search results to render before rendering the first interstitial ad grouping.
231
+ */
232
+ nativoAdInterstialStartIndex?: number;
233
+ /**
234
+ * Specifies the number of ads to be rendered in each interstitial in between search results.
235
+ */
236
+ nativoAdInterstitialQuantity?: number;
237
+ }
238
+ export type SearchcraftAdSource = "adMarketplace" | "Nativo" | "Custom" | "None";
239
+ /**
240
+ * Used internally by consuming packages as part of the core sdk constructor.
241
+ */
242
+ export interface SearchcraftSDKInfo {
243
+ sdkName: string;
244
+ sdkVersion: string;
245
+ }
246
+ export interface AdClientResponseItem {
247
+ id: string;
248
+ adSource: SearchcraftAdSource;
249
+ }
250
+ /**
251
+ * A Facet object returned in a search response.
252
+ */
253
+ export type FacetRoot = {
254
+ [key: string]: FacetChild[];
255
+ };
256
+ export type FacetPrime = FacetRoot[];
257
+ /**
258
+ * Represents the structure of facets, which group search results into categories.
259
+ */
260
+ export interface FacetChild {
261
+ count: number;
262
+ path: string;
263
+ children?: FacetChild[];
264
+ }
265
+ /**
266
+ * Types of measure requests that can be sent to the /measure/event endpoint.
267
+ */
268
+ export type MeasureEventName = "sdk_initialized" | "search_requested" | "search_response_received" | "document_clicked";
269
+ /**
270
+ * Properties attached to a measure request.
271
+ */
272
+ export interface MeasureRequestProperties {
273
+ searchcraft_organization_id?: string;
274
+ searchcraft_application_id?: string;
275
+ searchcraft_index_names: string[];
276
+ search_term?: string;
277
+ number_of_documents?: number;
278
+ external_document_id?: string;
279
+ document_position?: number;
280
+ session_id?: string;
281
+ }
282
+ /**
283
+ * User properties attached to a measure request.
284
+ */
285
+ export interface MeasureRequestUser {
286
+ user_id: string;
287
+ country?: string;
288
+ city?: string;
289
+ device_id?: string;
290
+ client_ip?: string;
291
+ locale?: string;
292
+ os?: string;
293
+ platform?: string;
294
+ region?: string;
295
+ sdk_name?: string;
296
+ sdk_version?: string;
297
+ user_agent?: string;
298
+ latitude?: number;
299
+ longitude?: number;
300
+ }
301
+ /**
302
+ * The structure of a response returned from a Searchcraft operation.
303
+ */
304
+ export interface SearchcraftResponse {
305
+ status: number;
306
+ data: SearchcraftResponseData | SearchcraftResponseError;
307
+ }
308
+ /**
309
+ * Error returned when a search is unsuccessful.
310
+ */
311
+ export type SearchcraftResponseError = {
312
+ status: number;
313
+ message?: string;
314
+ code?: number;
315
+ hits?: [
316
+ ];
317
+ facets?: null;
318
+ count?: number;
319
+ time_taken?: number;
320
+ };
321
+ /**
322
+ * Top-level result returned when a search is successful.
323
+ */
324
+ export interface SearchcraftResponseData {
325
+ count?: number;
326
+ facets?: FacetPrime;
327
+ hits?: SearchIndexEntry[];
328
+ time_taken?: number;
329
+ }
330
+ /**
331
+ * Represents an entry in the search index returned as part of a search result.
332
+ */
333
+ export interface SearchIndexEntry {
334
+ doc?: SearchDocument;
335
+ document_id?: string;
336
+ score?: number;
337
+ }
338
+ /**
339
+ * Data document returned within a SearchResult.
340
+ */
341
+ export interface SearchDocument extends Record<string, string | number> {
342
+ id: number;
343
+ [key: string]: string | number;
344
+ }
345
+ export interface SearchClientResponseItem {
346
+ id: string;
347
+ document: SearchDocument;
348
+ }
349
+ export type FacetPathsForIndexField = {
350
+ fieldName: string;
351
+ value: string;
352
+ };
353
+ export type RangeValueForIndexField = {
354
+ fieldName: string;
355
+ value: string;
356
+ };
357
+ /**
358
+ * Parameters required to make a successful Search request.
359
+ */
360
+ export type SearchParams = {
361
+ /**
362
+ * The search mode, which can be either 'fuzzy' or 'exact'.
363
+ */
364
+ mode: "fuzzy" | "exact";
365
+ /**
366
+ * The starting point for the results, used for pagination.
367
+ * Optional parameter.
368
+ */
369
+ offset?: number;
370
+ /**
371
+ * The number of results returned.
372
+ * Optional parameter.
373
+ */
374
+ limit?: number;
375
+ /**
376
+ * The field to order the results by (e.g., 'date_published', 'title', etc.).
377
+ * Optional parameter.
378
+ */
379
+ order_by?: string;
380
+ /**
381
+ * The search term provided by the user.
382
+ */
383
+ searchTerm: string;
384
+ /**
385
+ * The sort order, which can be either 'asc' or 'desc'.
386
+ * Optional parameter.
387
+ */
388
+ sort?: "asc" | "desc";
389
+ facetPathsForIndexFields?: Record<string, FacetPathsForIndexField>;
390
+ rangeValueForIndexFields?: Record<string, RangeValueForIndexField>;
391
+ };
392
+ export interface SubscriptionEventMap {
393
+ ad_container_rendered: AdContainerRenderedSubscriptionEvent;
394
+ ad_container_viewed: AdContainerViewedSubscriptionEvent;
395
+ query_fetched: QueryFetchedEvent;
396
+ query_submitted: QuerySubmittedEvent;
397
+ input_cleared: InputClearedEvent;
398
+ no_results_returned: NoResultsReturnedEvent;
399
+ }
400
+ export interface AdContainerRenderedSubscriptionEvent extends SubscriptionEvent {
401
+ name: "ad_container_rendered";
402
+ data: {
403
+ adContainerId: string;
404
+ adSource: SearchcraftAdSource;
405
+ searchTerm: string;
406
+ };
407
+ }
408
+ export interface AdContainerViewedSubscriptionEvent extends SubscriptionEvent {
409
+ name: "ad_container_viewed";
410
+ data: {
411
+ adContainerId: string;
412
+ adSource: SearchcraftAdSource;
413
+ searchTerm: string;
414
+ };
415
+ }
416
+ export interface QuerySubmittedEvent extends SubscriptionEvent {
417
+ name: "query_submitted";
418
+ data: {
419
+ searchTerm: string;
420
+ };
421
+ }
422
+ export interface QueryFetchedEvent extends SubscriptionEvent {
423
+ name: "query_fetched";
424
+ data: {
425
+ searchTerm: string;
426
+ };
427
+ }
428
+ export interface InputClearedEvent extends SubscriptionEvent {
429
+ name: "input_cleared";
430
+ }
431
+ export interface NoResultsReturnedEvent extends SubscriptionEvent {
432
+ name: "no_results_returned";
433
+ }
434
+ export type SubscriptionEventName = keyof SubscriptionEventMap;
435
+ export type SubscriptionEventCallback<T extends SubscriptionEventName> = (event: SubscriptionEventMap[T]) => void;
436
+ export type UnsubscribeFunction = () => void;
437
+ export interface SubscriptionEvent {
438
+ name: SubscriptionEventName;
439
+ }
440
+ declare class AdClient {
441
+ config: SearchcraftConfig;
442
+ constructor(config: SearchcraftConfig);
443
+ getAdsForSearchParams(_params: SearchParams): Promise<AdClientResponseItem[]>;
444
+ onQuerySubmitted(_params: SearchParams): Promise<void>;
445
+ onQueryFetched(_params: SearchParams, _response: SearchcraftResponse): Promise<void>;
446
+ onInputCleared(): Promise<void>;
447
+ onAdContainerRendered(_data: {
448
+ adClientResponseItem?: AdClientResponseItem;
449
+ adContainerId: string;
450
+ adSource: SearchcraftAdSource;
451
+ searchTerm: string;
452
+ }): Promise<void>;
453
+ onAdContainerViewed(_data: {
454
+ adClientResponseItem?: AdClientResponseItem;
455
+ adContainerId: string;
456
+ adSource: SearchcraftAdSource;
457
+ searchTerm: string;
458
+ }): Promise<void>;
459
+ }
460
+ declare class MeasureClient {
461
+ private measureRequestTimeout;
462
+ private measureRequestsBatched;
463
+ private config;
464
+ private sdkInfo;
465
+ private userId;
466
+ private sessionId;
467
+ constructor(config: SearchcraftConfig, sdkInfo: SearchcraftSDKInfo, userId: string);
468
+ /**
469
+ * Getter for the base url used by the /measure endpoints.
470
+ */
471
+ private get baseMeasureUrl();
472
+ /**
473
+ * Getter for the measure request user. Uses config values + navigator values.
474
+ */
475
+ private get measureRequestUser();
476
+ /**
477
+ * Sends a measure event to the `/measure/event` endpoint for analytics purposes.
478
+ *
479
+ * @param {MeasureEventName} eventName - Name of the event.
480
+ * @param {Partial<MeasureRequestProperties>} properties - Additional properties to send with the event.
481
+ * @param {Partial<MeasureRequestUser>} user - Additional user properites to send with the event.
482
+ */
483
+ sendMeasureEvent: (eventName: MeasureEventName, properties?: Partial<MeasureRequestProperties>, user?: Partial<MeasureRequestUser>) => void;
484
+ }
485
+ declare class SearchClient {
486
+ private config;
487
+ private userId;
488
+ private parent;
489
+ constructor(parent: SearchcraftCore, config: SearchcraftConfig, userId: string);
490
+ /**
491
+ * Getter for the base url used by the /search endpoint.
492
+ */
493
+ private get baseSearchUrl();
494
+ /**
495
+ * Performs a search operation.
496
+ * @param {SearchParams} searchParams - The parameters for the search.
497
+ */
498
+ getSearchResponse: (searchParams: SearchParams) => Promise<SearchcraftResponse>;
499
+ }
500
+ /**
501
+ * Javascript Class providing the functionality to interact with the Searchcraft BE
502
+ */
503
+ export declare class SearchcraftCore {
504
+ config: SearchcraftConfig;
505
+ measureClient: MeasureClient | undefined;
506
+ searchClient: SearchClient | undefined;
507
+ adClient: AdClient | undefined;
508
+ userId: string;
509
+ private requestTimeout;
510
+ private subscriptionEvents;
511
+ constructor(config: SearchcraftConfig, sdkInfo: SearchcraftSDKInfo);
512
+ private initInputForms;
513
+ /**
514
+ * When changes happen in the DOM, we want to link any input forms found to the instance of the core.
515
+ */
516
+ private startObservingMutations;
517
+ private initClients;
518
+ emitEvent<T extends SubscriptionEventName>(eventName: T, event: SubscriptionEventMap[T]): void;
519
+ subscribe<T extends SubscriptionEventName>(eventName: T, callback: SubscriptionEventCallback<T>): UnsubscribeFunction;
520
+ /**
521
+ * Called when a `<searchcraft-ad>` component is rendered
522
+ */
523
+ handleAdContainerRendered(data: {
524
+ adClientResponseItem?: AdClientResponseItem;
525
+ adContainerId: string;
526
+ adSource: SearchcraftAdSource;
527
+ searchTerm: string;
528
+ }): void;
529
+ /**
530
+ * Called when a `<searchcraft-ad>` is viewed
531
+ */
532
+ handleAdContainerViewed(data: {
533
+ adClientResponseItem?: AdClientResponseItem;
534
+ adContainerId: string;
535
+ adSource: SearchcraftAdSource;
536
+ searchTerm: string;
537
+ }): void;
538
+ /**
539
+ * Perform various actions when the input is cleared
540
+ */
541
+ handleInputCleared(): void;
542
+ /**
543
+ * Gets items from the SearchClient and the AdClient.
544
+ */
545
+ getItems: (searchParams: SearchParams, itemsCallback: (response: SearchcraftResponse, items: SearchClientResponseItem[]) => void, adCallback: (adClientResponseItems: AdClientResponseItem[]) => void) => void;
546
+ }
547
+ /**
548
+ * Callable functions made available by the SearchcraftStore.
549
+ */
550
+ export interface SearchcraftStateFunctions {
551
+ addFacetPathsForIndexField: (data: FacetPathsForIndexField) => void;
552
+ addRangeValueForIndexField: (data: RangeValueForIndexField) => void;
553
+ getSearchcraftInstance: () => SearchcraftCore | undefined;
554
+ initialize: (searchcraft: unknown, debug?: boolean) => void;
555
+ removeFacetPathsForIndexField: (fieldName: string) => void;
556
+ removeRangeValueForIndexField: (fieldName: string) => void;
557
+ resetFacetPaths: () => void;
558
+ search: () => Promise<void>;
559
+ setPopoverVisibility: (isVisible: boolean) => void;
560
+ setSearchClientResponseItems: (results: SearchClientResponseItem[]) => void;
561
+ setSearchResultsPage: (page: number) => void;
562
+ setSearchResultsPerPage: (perPage: number) => void;
563
+ setSearchTerm: (searchTerm: string) => void;
564
+ setSearchMode: (mode: "fuzzy" | "exact") => void;
565
+ setSortType: (type: "asc" | "desc") => void;
566
+ }
567
+ /**
568
+ * Values stored in SearchcraftStore.
569
+ */
570
+ export interface SearchcraftStateValues {
571
+ adClientResponseItems: AdClientResponseItem[];
572
+ core: SearchcraftCore | undefined;
573
+ logger: Logger | undefined;
574
+ facetPathsForIndexFields: Record<string, FacetPathsForIndexField>;
575
+ isPopoverVisible: boolean;
576
+ isSearchInProgress: boolean;
577
+ rangeValueForIndexFields: Record<string, RangeValueForIndexField>;
578
+ searchMode: "fuzzy" | "exact";
579
+ searchClientResponseItems: SearchClientResponseItem[];
580
+ searchResponseTimeTaken: number | undefined;
581
+ searchResponseFacetPrime: FacetPrime | undefined;
582
+ searchResultsCount: number;
583
+ searchResultsPage: number;
584
+ searchResultsPerPage: number;
585
+ searchTerm: string;
586
+ sortType: "asc" | "desc";
587
+ }
588
+ export interface SearchcraftState extends SearchcraftStateFunctions, SearchcraftStateValues {
589
+ }
590
+ export declare const searchcraftStore: import("zustand").StoreApi<SearchcraftState>;
591
+ export declare function parseCustomStyles(styles: string | Record<string, string>): Record<string, string>;
592
+ export declare function serializeStyles(styles: Record<string, Record<string, string>>): string;
593
+ export type SearchcraftSelectOption = {
594
+ label: string;
595
+ value: string | number;
596
+ selected?: boolean;
597
+ };
598
+ export namespace Components {
599
+ /**
600
+ * An inline ad meant to be rendered in a list of search results.
601
+ */
602
+ interface SearchcraftAd {
603
+ "adClientResponseItem"?: AdClientResponseItem;
604
+ "adContainerId": string;
605
+ "adSource": SearchcraftAdSource;
606
+ }
607
+ /**
608
+ * This web component represents a button.
609
+ * It provides a clear, interactive way for users to submit search queries or trigger actions in a search interface.
610
+ */
611
+ interface SearchcraftButton {
612
+ /**
613
+ * Whether the button is disabled.
614
+ */
615
+ "disabled"?: boolean;
616
+ /**
617
+ * Controls the visual representation of the button.
618
+ */
619
+ "hierarchy"?: "primary" | "tertiary";
620
+ /**
621
+ * The icon element.
622
+ */
623
+ "icon"?: Element;
624
+ /**
625
+ * Should the button only display an icon.
626
+ */
627
+ "iconOnly"?: boolean;
628
+ /**
629
+ * The position of the icon.
630
+ */
631
+ "iconPosition"?: "left" | "right";
632
+ /**
633
+ * The label for the button.
634
+ */
635
+ "label": string;
636
+ /**
637
+ * The type of the button.
638
+ */
639
+ "type"?: "submit" | "reset" | "button";
640
+ }
641
+ /**
642
+ * This web component is designed to display a user-friendly error message when a search query fails, providing clear feedback to users and enhancing their experience when an issue arises during the search process.
643
+ * @js-example ```html
644
+ * <searchcraft-error-message>
645
+ * No search results found for query
646
+ * </searchcraft-error-message>
647
+ * ```
648
+ */
649
+ interface SearchcraftErrorMessage {
650
+ }
651
+ /**
652
+ * This web component is designed to display facets in a search interface, allowing users to refine their search results by applying filters based on various attributes.
653
+ * It is consumed within the `searchcraft-filter-panel`.
654
+ * @js-example ```html
655
+ * <!-- index.html -->
656
+ * <searchcraft-facet-list field-name="title" />
657
+ * ```
658
+ * ```js
659
+ * // index.js
660
+ * const facetList = document.querySelector('searchcraft-facet-list');
661
+ * facetList.addEventListener('facetSelectionUpdated', () => {
662
+ * console.log('Facet selection updated');
663
+ * });
664
+ * ```
665
+ */
666
+ interface SearchcraftFacetList {
667
+ /**
668
+ * The name of the field where facets are applied.
669
+ */
670
+ "fieldName": string;
671
+ }
672
+ /**
673
+ * This web component represents a series of filters that allows users to refine and control their search queries by applying various filter criteria.
674
+ * @import ```jsx
675
+ * // react
676
+ * import { SearchcraftFilterPanel } from "@searchcraft/react-sdk";
677
+ * // vue
678
+ * import { SearchcraftFilterPanel } from "@searchcraft/vue-sdk";
679
+ * ```
680
+ * @js-example ```html
681
+ * <!-- index.html -->
682
+ * <searchcraft-filter-panel />
683
+ * ```
684
+ * ```js
685
+ * // index.js
686
+ * const filterPanel = document.querySelector('searchcraft-filter-panel');
687
+ * if (filterPanel) {
688
+ * filterPanel.items = [];
689
+ * }
690
+ * ```
691
+ * @react-example ```jsx
692
+ * <SearchcraftFilterPanel items={[]} />
693
+ * ```
694
+ * @vue-example ```jsx
695
+ * <SearchcraftFilterPanel :items="[]" />
696
+ * ```
697
+ */
698
+ interface SearchcraftFilterPanel {
699
+ /**
700
+ * The items to filter.
701
+ */
702
+ "items": FilterItem[];
703
+ }
704
+ /**
705
+ * This web component provides a user-friendly interface for querying an indexed dataset, enabling users to easily search large collections of data.
706
+ * It abstracts the complexities of index-based searching, making it accessible to users of all technical levels.
707
+ * @import ```jsx
708
+ * // react
709
+ * import { SearchcraftInputForm } from "@searchcraft/react-sdk";
710
+ * // vue
711
+ * import { SearchcraftInputForm } from "@searchcraft/vue-sdk";
712
+ * ```
713
+ * @js-example ```html
714
+ * <searchcraft-input-form auto-search />
715
+ * ```
716
+ * @react-example ```jsx
717
+ * <SearchcraftInputForm autoSearch />
718
+ * ```
719
+ * @vue-example ```jsx
720
+ * <SearchcraftInputForm autoSearch />
721
+ * ```
722
+ */
723
+ interface SearchcraftInputForm {
724
+ /**
725
+ * Whether or not to automatically submit the search term when the input changes.
726
+ */
727
+ "autoSearch"?: boolean;
728
+ /**
729
+ * The label for the submit button.
730
+ */
731
+ "buttonLabel"?: string;
732
+ /**
733
+ * Where to place the search button.
734
+ */
735
+ "buttonPlacement"?: "left" | "right" | "none";
736
+ "core"?: SearchcraftCore;
737
+ /**
738
+ * The label rendered above the input.
739
+ */
740
+ "inputLabel"?: string;
741
+ /**
742
+ * The input element's placeholder value.
743
+ */
744
+ "placeholderValue"?: string;
745
+ }
746
+ /**
747
+ * This web component serves as the input label for the searchcraft-input-form component.
748
+ * @js-example ```html
749
+ * <searchcraft-input-label label="Search" />
750
+ * ```
751
+ */
752
+ interface SearchcraftInputLabel {
753
+ /**
754
+ * The classname applied to the label element.
755
+ */
756
+ "inputLabelClassName"?: string | undefined;
757
+ "label": string;
758
+ }
759
+ /**
760
+ * This web component is designed to facilitate pagination of search results. Once a query is submitted, calculates the number for pages.
761
+ * @import ```jsx
762
+ * // react
763
+ * import { SearchcraftPagination } from "@searchcraft/react-sdk";
764
+ * // vue
765
+ * import { SearchcraftPagination } from "@searchcraft/vue-sdk";
766
+ * ```
767
+ * @js-example ```html
768
+ * <searchcraft-pagination />
769
+ * ```
770
+ * @react-example ```jsx
771
+ * <SearchcraftPagination />
772
+ * ```
773
+ * @vue-example ```jsx
774
+ * <SearchcraftPagination />
775
+ * ```
776
+ */
777
+ interface SearchcraftPagination {
778
+ }
779
+ /**
780
+ * Renders a button which, when clicked, turns on popover visibility.
781
+ * @import ```jsx
782
+ * // react
783
+ * import { SearchcraftPopoverButton } from "@searchcraft/react-sdk";
784
+ * // vue
785
+ * import { SearchcraftPopoverButton } from "@searchcraft/vue-sdk";
786
+ * ```
787
+ * @js-example ```html
788
+ * <searchcraft-popover-button>
789
+ * Open popover
790
+ * </searchcraft-popover-button>
791
+ * ```
792
+ * @react-example ```jsx
793
+ * <SearchcraftPopoverButton>
794
+ * Open popover
795
+ * </SearchcraftPopoverButton>
796
+ * ```
797
+ * @vue-example ```jsx
798
+ * <SearchcraftPopoverButton>
799
+ * Open popover
800
+ * </SearchcraftPopoverButton>
801
+ * ```
802
+ */
803
+ interface SearchcraftPopoverButton {
804
+ }
805
+ /**
806
+ * This web component is designed to display search results in a popover container that dynamically appears when the user interacts with a search input field, or when a popover-button is pressed.
807
+ * @import ```jsx
808
+ * // react
809
+ * import { SearchcraftPopoverForm } from "@searchcraft/react-sdk";
810
+ * // vue
811
+ * import { SearchcraftPopoverForm } from "@searchcraft/vue-sdk";
812
+ * ```
813
+ * @js-example ```html
814
+ * <!-- index.html -->
815
+ * <searchcraft-popover-form type="inline" />
816
+ * ```
817
+ * ```js
818
+ * // index.js
819
+ * const popoverForm = document.querySelector('searchcraft-popover-form');
820
+ * popoverForm.popoverResultMappings = {};
821
+ * ```
822
+ * @react-example ```jsx
823
+ * <SearchcraftPopoverForm type="inline" popoverResultMappings={[]} />
824
+ * ```
825
+ * @vue-example ```jsx
826
+ * <SearchcraftPopoverForm type="inline" :popoverResultMappings="[]"" />
827
+ * ```
828
+ */
829
+ interface SearchcraftPopoverForm {
830
+ /**
831
+ * The hotkey that activates the popover.
832
+ */
833
+ "hotkey"?: string;
834
+ /**
835
+ * The hotkey modifier that activates the popover. Used together with the `hotkey` prop.
836
+ */
837
+ "hotkeyModifier"?: "ctrl" | "meta" | "alt" | "option";
838
+ /**
839
+ * Formats the content rendered for each result.
840
+ */
841
+ "popoverResultMappings"?: PopoverResultMappings;
842
+ /**
843
+ * The type of popover form to render. - `inline` - Renders inline with the rest of the content on the page. The search results pop over the page content. - `fullscreen` - Renders in fullscreen view. Used together with the `searchcraft-popover-button` component. - `modal` - Renders in a modal view. Used together with the `searchcraft-popover-button` component.
844
+ */
845
+ "type"?: "inline" | "fullscreen" | "modal";
846
+ }
847
+ /**
848
+ * A single list item rendered in a searchcraft-popover-list-view.
849
+ */
850
+ interface SearchcraftPopoverListItem {
851
+ /**
852
+ * The document position relative to the search results (For Measure)
853
+ */
854
+ "documentPosition": number;
855
+ "item": SearchClientResponseItem | undefined;
856
+ "popoverResultMappings": PopoverResultMappings | undefined;
857
+ }
858
+ /**
859
+ * This web component is designed to display a list of results within a popover interface.
860
+ * It is consumed within the `searchcraft-popover-form` component.
861
+ * @js-example ```html
862
+ * <searchcraft-popover-list-view />
863
+ * ```
864
+ */
865
+ interface SearchcraftPopoverListView {
866
+ "adClientResponseItems": AdClientResponseItem[] | undefined;
867
+ /**
868
+ * The mappings that define how the data in the documents are mapped to the list-view-item elements.
869
+ */
870
+ "popoverResultMappings": PopoverResultMappings | undefined;
871
+ /**
872
+ * The items to render in the list view.
873
+ */
874
+ "searchClientResponseItems": SearchClientResponseItem[] | undefined;
875
+ "searchResultsPage": number;
876
+ "searchResultsPerPage": number;
877
+ }
878
+ /**
879
+ * This web component is designed to display the number of results returned from a search query.
880
+ * @import ```jsx
881
+ * // react
882
+ * import { SearchcraftResultsInfo } from "@searchcraft/react-sdk";
883
+ * // vue
884
+ * import { SearchcraftResultsInfo } from "@searchcraft/vue-sdk";
885
+ * ```
886
+ * @js-example ```html
887
+ * <!-- index.html -->
888
+ * <searchcraft-results-info />
889
+ * ```
890
+ * ```js
891
+ * // index.js
892
+ * const resultsInfo = document.querySelector('searchcraft-results-info');
893
+ * resultsInfo.template = (info, { html }) => html`
894
+ * ${info.range[0]}-${info.range[1]} of ${info.count} results in ${info.responseTime}ms
895
+ * `;
896
+ * ```
897
+ * @react-example ```jsx
898
+ * <SearchcraftResultsInfo
899
+ * template={(info, { html }) => html`
900
+ * ${info.range[0]}-${info.range[1]} of ${info.count} results in ${info.responseTime}ms
901
+ * `}
902
+ * />
903
+ * @vue-example ```jsx
904
+ * <SearchcraftResultsInfo
905
+ * :template={(info, { html }) => html`
906
+ * ${info.range[0]}-${info.range[1]} of ${info.count} results in ${info.responseTime}ms
907
+ * `}
908
+ * />
909
+ */
910
+ interface SearchcraftResultsInfo {
911
+ /**
912
+ * A callback function responsible for rendering the results info.
913
+ * @example ```ts resultsInfo.template = html` ${range[0]}-${range[1]} of ${count} results in ${responseTime}ms `; ```
914
+ */
915
+ "template"?: ResultsInfoTemplate;
916
+ }
917
+ /**
918
+ * This web component is designed to display detailed information for a single search result. Once a query is submitted, the component formats and presents the result.
919
+ */
920
+ interface SearchcraftSearchResult {
921
+ /**
922
+ * The position in the document. Used with the "document_clicked" measure event.
923
+ */
924
+ "documentPosition": number;
925
+ /**
926
+ * The index.
927
+ */
928
+ "index": number;
929
+ "item"?: SearchClientResponseItem;
930
+ /**
931
+ * A callback function responsible for rendering a result.
932
+ */
933
+ "template"?: SearchResultTemplate<SearchResultTemplateData>;
934
+ }
935
+ /**
936
+ * This web component is responsible for displaying the results of a search query. Once a query is submitted, the component formats and presents an ordered list of the results.
937
+ * @import ```jsx
938
+ * // react
939
+ * import { SearchcraftSearchResults } from "@searchcraft/react-sdk";
940
+ * // vue
941
+ * import { SearchcraftSearchResults } from "@searchcraft/vue-sdk";
942
+ * ```
943
+ * @js-example ```html
944
+ * <!-- index.html -->
945
+ * <searchcraft-search-results
946
+ * ad-interval="4"
947
+ * place-ad-at-start="true"
948
+ * />
949
+ * ```
950
+ * ```js
951
+ * // index.js
952
+ * const searchResults = document.querySelector('searchcraft-search-results');
953
+ * searchResults.template = (item, index, { html }) => html`
954
+ * <h2>${item.title}</h2>
955
+ * `;
956
+ * ```
957
+ * @react-example ```jsx
958
+ * <SearchcraftSearchResults
959
+ * adInterval={4}
960
+ * placeAdAtState={true}
961
+ * template={(item, index, { html }) => html`
962
+ * <h2>${item.title}</h2>
963
+ * `}
964
+ * />
965
+ * ```
966
+ * @vue-example ```jsx
967
+ * <SearchcraftSearchResults
968
+ * adInterval={4}
969
+ * placeAdAtState={true}
970
+ * :template={(item, index, { html }) => html`
971
+ * <h2>${item.title}</h2>
972
+ * `}
973
+ * />
974
+ * ```
975
+ */
976
+ interface SearchcraftSearchResults {
977
+ /**
978
+ * A callback function responsible for rendering a result. Passed to `searchcraft-search-result`.
979
+ */
980
+ "template"?: SearchResultTemplate<SearchResultTemplateData>;
981
+ }
982
+ /**
983
+ * This web component is designed to choose the number of search results displayed.
984
+ * @import ```jsx
985
+ * // react
986
+ * import { SearchcraftSearchResultsPerPage } from "@searchcraft/react-sdk";
987
+ * // vue
988
+ * import { SearchcraftSearchResultsPerPage } from "@searchcraft/vue-sdk";
989
+ * ```
990
+ * @js-example ```html
991
+ * <!-- index.html -->
992
+ * <searchcraft-search-results-per-page increment="20" />
993
+ * ```
994
+ * @react-example ```jsx
995
+ * <SearchcraftSearchResultsPerPage increment={20} />
996
+ * ```
997
+ * @vue-example ```jsx
998
+ * <SearchcraftSearchResultsPerPage increment="20" />
999
+ * ```
1000
+ */
1001
+ interface SearchcraftSearchResultsPerPage {
1002
+ /**
1003
+ * The amount the options will increase (e.g. 20 = [20, 40, 60, 80, 100]). The base value is defined by the `searchResultsPerPage` option in the configuration.
1004
+ */
1005
+ "increment": string | number;
1006
+ }
1007
+ /**
1008
+ * This web component is designed to allow users to select between a group of options.
1009
+ * @js-example ```html
1010
+ * <!-- index.html -->
1011
+ * <searchcraft-select
1012
+ * inputId="searchcraft-select"
1013
+ * name="searchcraft-select"
1014
+ * options="[{ label: 'label', value: 'value' }]"
1015
+ * />
1016
+ * ```
1017
+ */
1018
+ interface SearchcraftSelect {
1019
+ /**
1020
+ * The caption displayed below the select input.
1021
+ */
1022
+ "caption"?: string;
1023
+ /**
1024
+ * Whether the select input is disabled.
1025
+ */
1026
+ "disabled"?: boolean;
1027
+ /**
1028
+ * The ID for the select input.
1029
+ */
1030
+ "inputId": string;
1031
+ /**
1032
+ * The label of the select input.
1033
+ */
1034
+ "label"?: string;
1035
+ /**
1036
+ * The ID for the label of the select input.
1037
+ */
1038
+ "labelId"?: string;
1039
+ /**
1040
+ * The name of the select input.
1041
+ */
1042
+ "name": string;
1043
+ /**
1044
+ * The options for the select input.
1045
+ */
1046
+ "options": SearchcraftSelectOption[] | string;
1047
+ }
1048
+ /**
1049
+ * This web component is designed to allow users to select a value from a range defined by a minimum and maximum value. The component renders a slider interface, which can be used to visually choose a value between two boundaries.
1050
+ */
1051
+ interface SearchcraftSlider {
1052
+ /**
1053
+ * The type of data allowed.
1054
+ */
1055
+ "dataType": "number" | "date";
1056
+ /**
1057
+ * The granularity that the value must adhere to.
1058
+ */
1059
+ "granularity": number;
1060
+ /**
1061
+ * The maximum value allowed.
1062
+ */
1063
+ "max": number;
1064
+ /**
1065
+ * The minimum value allowed.
1066
+ */
1067
+ "min": number;
1068
+ }
1069
+ /**
1070
+ * This web component adds Searchcraft's built-in css theme to your page. It does not render anything visible, its only function is to manage the css styles on the page.'
1071
+ * @import ```jsx
1072
+ * // react
1073
+ * import { SearchcraftTheme } from "@searchcraft/react-sdk";
1074
+ * // vue
1075
+ * import { SearchcraftTheme } from "@searchcraft/vue-sdk";
1076
+ * ```
1077
+ * @js-example ```html
1078
+ * <searchcraft-theme />
1079
+ * ```
1080
+ * @react-example ```jsx
1081
+ * <SearchcraftTheme />
1082
+ * ```
1083
+ * @vue-example ```jsx
1084
+ * <SearchcraftTheme />
1085
+ * ```
1086
+ */
1087
+ interface SearchcraftTheme {
1088
+ }
1089
+ /**
1090
+ * This web component simulates a light switch functionality, providing a simple and intuitive toggle between two states—on and off.
1091
+ */
1092
+ interface SearchcraftToggleButton {
1093
+ /**
1094
+ * The label.
1095
+ */
1096
+ "label": string;
1097
+ /**
1098
+ * The secondary label displayed below the main label.
1099
+ */
1100
+ "subLabel": string | undefined;
1101
+ }
1102
+ }
1103
+ export interface SearchcraftButtonCustomEvent<T> extends CustomEvent<T> {
1104
+ detail: T;
1105
+ target: HTMLSearchcraftButtonElement;
1106
+ }
1107
+ export interface SearchcraftFacetListCustomEvent<T> extends CustomEvent<T> {
1108
+ detail: T;
1109
+ target: HTMLSearchcraftFacetListElement;
1110
+ }
1111
+ export interface SearchcraftInputFormCustomEvent<T> extends CustomEvent<T> {
1112
+ detail: T;
1113
+ target: HTMLSearchcraftInputFormElement;
1114
+ }
1115
+ export interface SearchcraftSelectCustomEvent<T> extends CustomEvent<T> {
1116
+ detail: T;
1117
+ target: HTMLSearchcraftSelectElement;
1118
+ }
1119
+ export interface SearchcraftSliderCustomEvent<T> extends CustomEvent<T> {
1120
+ detail: T;
1121
+ target: HTMLSearchcraftSliderElement;
1122
+ }
1123
+ export interface SearchcraftToggleButtonCustomEvent<T> extends CustomEvent<T> {
1124
+ detail: T;
1125
+ target: HTMLSearchcraftToggleButtonElement;
1126
+ }
1127
+ declare global {
1128
+ /**
1129
+ * An inline ad meant to be rendered in a list of search results.
1130
+ */
1131
+ interface HTMLSearchcraftAdElement extends Components.SearchcraftAd, HTMLStencilElement {
1132
+ }
1133
+ var HTMLSearchcraftAdElement: {
1134
+ prototype: HTMLSearchcraftAdElement;
1135
+ new (): HTMLSearchcraftAdElement;
1136
+ };
1137
+ interface HTMLSearchcraftButtonElementEventMap {
1138
+ "buttonClick": void;
1139
+ }
1140
+ /**
1141
+ * This web component represents a button.
1142
+ * It provides a clear, interactive way for users to submit search queries or trigger actions in a search interface.
1143
+ */
1144
+ interface HTMLSearchcraftButtonElement extends Components.SearchcraftButton, HTMLStencilElement {
1145
+ addEventListener<K extends keyof HTMLSearchcraftButtonElementEventMap>(type: K, listener: (this: HTMLSearchcraftButtonElement, ev: SearchcraftButtonCustomEvent<HTMLSearchcraftButtonElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
1146
+ addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
1147
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
1148
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
1149
+ removeEventListener<K extends keyof HTMLSearchcraftButtonElementEventMap>(type: K, listener: (this: HTMLSearchcraftButtonElement, ev: SearchcraftButtonCustomEvent<HTMLSearchcraftButtonElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
1150
+ removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
1151
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
1152
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
1153
+ }
1154
+ var HTMLSearchcraftButtonElement: {
1155
+ prototype: HTMLSearchcraftButtonElement;
1156
+ new (): HTMLSearchcraftButtonElement;
1157
+ };
1158
+ /**
1159
+ * This web component is designed to display a user-friendly error message when a search query fails, providing clear feedback to users and enhancing their experience when an issue arises during the search process.
1160
+ * @js-example ```html
1161
+ * <searchcraft-error-message>
1162
+ * No search results found for query
1163
+ * </searchcraft-error-message>
1164
+ * ```
1165
+ */
1166
+ interface HTMLSearchcraftErrorMessageElement extends Components.SearchcraftErrorMessage, HTMLStencilElement {
1167
+ }
1168
+ var HTMLSearchcraftErrorMessageElement: {
1169
+ prototype: HTMLSearchcraftErrorMessageElement;
1170
+ new (): HTMLSearchcraftErrorMessageElement;
1171
+ };
1172
+ interface HTMLSearchcraftFacetListElementEventMap {
1173
+ "facetSelectionUpdated": {
1174
+ paths: string[];
1175
+ };
1176
+ }
1177
+ /**
1178
+ * This web component is designed to display facets in a search interface, allowing users to refine their search results by applying filters based on various attributes.
1179
+ * It is consumed within the `searchcraft-filter-panel`.
1180
+ * @js-example ```html
1181
+ * <!-- index.html -->
1182
+ * <searchcraft-facet-list field-name="title" />
1183
+ * ```
1184
+ * ```js
1185
+ * // index.js
1186
+ * const facetList = document.querySelector('searchcraft-facet-list');
1187
+ * facetList.addEventListener('facetSelectionUpdated', () => {
1188
+ * console.log('Facet selection updated');
1189
+ * });
1190
+ * ```
1191
+ */
1192
+ interface HTMLSearchcraftFacetListElement extends Components.SearchcraftFacetList, HTMLStencilElement {
1193
+ addEventListener<K extends keyof HTMLSearchcraftFacetListElementEventMap>(type: K, listener: (this: HTMLSearchcraftFacetListElement, ev: SearchcraftFacetListCustomEvent<HTMLSearchcraftFacetListElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
1194
+ addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
1195
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
1196
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
1197
+ removeEventListener<K extends keyof HTMLSearchcraftFacetListElementEventMap>(type: K, listener: (this: HTMLSearchcraftFacetListElement, ev: SearchcraftFacetListCustomEvent<HTMLSearchcraftFacetListElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
1198
+ removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
1199
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
1200
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
1201
+ }
1202
+ var HTMLSearchcraftFacetListElement: {
1203
+ prototype: HTMLSearchcraftFacetListElement;
1204
+ new (): HTMLSearchcraftFacetListElement;
1205
+ };
1206
+ /**
1207
+ * This web component represents a series of filters that allows users to refine and control their search queries by applying various filter criteria.
1208
+ * @import ```jsx
1209
+ * // react
1210
+ * import { SearchcraftFilterPanel } from "@searchcraft/react-sdk";
1211
+ * // vue
1212
+ * import { SearchcraftFilterPanel } from "@searchcraft/vue-sdk";
1213
+ * ```
1214
+ * @js-example ```html
1215
+ * <!-- index.html -->
1216
+ * <searchcraft-filter-panel />
1217
+ * ```
1218
+ * ```js
1219
+ * // index.js
1220
+ * const filterPanel = document.querySelector('searchcraft-filter-panel');
1221
+ * if (filterPanel) {
1222
+ * filterPanel.items = [];
1223
+ * }
1224
+ * ```
1225
+ * @react-example ```jsx
1226
+ * <SearchcraftFilterPanel items={[]} />
1227
+ * ```
1228
+ * @vue-example ```jsx
1229
+ * <SearchcraftFilterPanel :items="[]" />
1230
+ * ```
1231
+ */
1232
+ interface HTMLSearchcraftFilterPanelElement extends Components.SearchcraftFilterPanel, HTMLStencilElement {
1233
+ }
1234
+ var HTMLSearchcraftFilterPanelElement: {
1235
+ prototype: HTMLSearchcraftFilterPanelElement;
1236
+ new (): HTMLSearchcraftFilterPanelElement;
1237
+ };
1238
+ interface HTMLSearchcraftInputFormElementEventMap {
1239
+ "inputFocus": void;
1240
+ "inputBlur": void;
1241
+ "inputInit": void;
1242
+ }
1243
+ /**
1244
+ * This web component provides a user-friendly interface for querying an indexed dataset, enabling users to easily search large collections of data.
1245
+ * It abstracts the complexities of index-based searching, making it accessible to users of all technical levels.
1246
+ * @import ```jsx
1247
+ * // react
1248
+ * import { SearchcraftInputForm } from "@searchcraft/react-sdk";
1249
+ * // vue
1250
+ * import { SearchcraftInputForm } from "@searchcraft/vue-sdk";
1251
+ * ```
1252
+ * @js-example ```html
1253
+ * <searchcraft-input-form auto-search />
1254
+ * ```
1255
+ * @react-example ```jsx
1256
+ * <SearchcraftInputForm autoSearch />
1257
+ * ```
1258
+ * @vue-example ```jsx
1259
+ * <SearchcraftInputForm autoSearch />
1260
+ * ```
1261
+ */
1262
+ interface HTMLSearchcraftInputFormElement extends Components.SearchcraftInputForm, HTMLStencilElement {
1263
+ addEventListener<K extends keyof HTMLSearchcraftInputFormElementEventMap>(type: K, listener: (this: HTMLSearchcraftInputFormElement, ev: SearchcraftInputFormCustomEvent<HTMLSearchcraftInputFormElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
1264
+ addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
1265
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
1266
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
1267
+ removeEventListener<K extends keyof HTMLSearchcraftInputFormElementEventMap>(type: K, listener: (this: HTMLSearchcraftInputFormElement, ev: SearchcraftInputFormCustomEvent<HTMLSearchcraftInputFormElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
1268
+ removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
1269
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
1270
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
1271
+ }
1272
+ var HTMLSearchcraftInputFormElement: {
1273
+ prototype: HTMLSearchcraftInputFormElement;
1274
+ new (): HTMLSearchcraftInputFormElement;
1275
+ };
1276
+ /**
1277
+ * This web component serves as the input label for the searchcraft-input-form component.
1278
+ * @js-example ```html
1279
+ * <searchcraft-input-label label="Search" />
1280
+ * ```
1281
+ */
1282
+ interface HTMLSearchcraftInputLabelElement extends Components.SearchcraftInputLabel, HTMLStencilElement {
1283
+ }
1284
+ var HTMLSearchcraftInputLabelElement: {
1285
+ prototype: HTMLSearchcraftInputLabelElement;
1286
+ new (): HTMLSearchcraftInputLabelElement;
1287
+ };
1288
+ /**
1289
+ * This web component is designed to facilitate pagination of search results. Once a query is submitted, calculates the number for pages.
1290
+ * @import ```jsx
1291
+ * // react
1292
+ * import { SearchcraftPagination } from "@searchcraft/react-sdk";
1293
+ * // vue
1294
+ * import { SearchcraftPagination } from "@searchcraft/vue-sdk";
1295
+ * ```
1296
+ * @js-example ```html
1297
+ * <searchcraft-pagination />
1298
+ * ```
1299
+ * @react-example ```jsx
1300
+ * <SearchcraftPagination />
1301
+ * ```
1302
+ * @vue-example ```jsx
1303
+ * <SearchcraftPagination />
1304
+ * ```
1305
+ */
1306
+ interface HTMLSearchcraftPaginationElement extends Components.SearchcraftPagination, HTMLStencilElement {
1307
+ }
1308
+ var HTMLSearchcraftPaginationElement: {
1309
+ prototype: HTMLSearchcraftPaginationElement;
1310
+ new (): HTMLSearchcraftPaginationElement;
1311
+ };
1312
+ /**
1313
+ * Renders a button which, when clicked, turns on popover visibility.
1314
+ * @import ```jsx
1315
+ * // react
1316
+ * import { SearchcraftPopoverButton } from "@searchcraft/react-sdk";
1317
+ * // vue
1318
+ * import { SearchcraftPopoverButton } from "@searchcraft/vue-sdk";
1319
+ * ```
1320
+ * @js-example ```html
1321
+ * <searchcraft-popover-button>
1322
+ * Open popover
1323
+ * </searchcraft-popover-button>
1324
+ * ```
1325
+ * @react-example ```jsx
1326
+ * <SearchcraftPopoverButton>
1327
+ * Open popover
1328
+ * </SearchcraftPopoverButton>
1329
+ * ```
1330
+ * @vue-example ```jsx
1331
+ * <SearchcraftPopoverButton>
1332
+ * Open popover
1333
+ * </SearchcraftPopoverButton>
1334
+ * ```
1335
+ */
1336
+ interface HTMLSearchcraftPopoverButtonElement extends Components.SearchcraftPopoverButton, HTMLStencilElement {
1337
+ }
1338
+ var HTMLSearchcraftPopoverButtonElement: {
1339
+ prototype: HTMLSearchcraftPopoverButtonElement;
1340
+ new (): HTMLSearchcraftPopoverButtonElement;
1341
+ };
1342
+ /**
1343
+ * This web component is designed to display search results in a popover container that dynamically appears when the user interacts with a search input field, or when a popover-button is pressed.
1344
+ * @import ```jsx
1345
+ * // react
1346
+ * import { SearchcraftPopoverForm } from "@searchcraft/react-sdk";
1347
+ * // vue
1348
+ * import { SearchcraftPopoverForm } from "@searchcraft/vue-sdk";
1349
+ * ```
1350
+ * @js-example ```html
1351
+ * <!-- index.html -->
1352
+ * <searchcraft-popover-form type="inline" />
1353
+ * ```
1354
+ * ```js
1355
+ * // index.js
1356
+ * const popoverForm = document.querySelector('searchcraft-popover-form');
1357
+ * popoverForm.popoverResultMappings = {};
1358
+ * ```
1359
+ * @react-example ```jsx
1360
+ * <SearchcraftPopoverForm type="inline" popoverResultMappings={[]} />
1361
+ * ```
1362
+ * @vue-example ```jsx
1363
+ * <SearchcraftPopoverForm type="inline" :popoverResultMappings="[]"" />
1364
+ * ```
1365
+ */
1366
+ interface HTMLSearchcraftPopoverFormElement extends Components.SearchcraftPopoverForm, HTMLStencilElement {
1367
+ }
1368
+ var HTMLSearchcraftPopoverFormElement: {
1369
+ prototype: HTMLSearchcraftPopoverFormElement;
1370
+ new (): HTMLSearchcraftPopoverFormElement;
1371
+ };
1372
+ /**
1373
+ * A single list item rendered in a searchcraft-popover-list-view.
1374
+ */
1375
+ interface HTMLSearchcraftPopoverListItemElement extends Components.SearchcraftPopoverListItem, HTMLStencilElement {
1376
+ }
1377
+ var HTMLSearchcraftPopoverListItemElement: {
1378
+ prototype: HTMLSearchcraftPopoverListItemElement;
1379
+ new (): HTMLSearchcraftPopoverListItemElement;
1380
+ };
1381
+ /**
1382
+ * This web component is designed to display a list of results within a popover interface.
1383
+ * It is consumed within the `searchcraft-popover-form` component.
1384
+ * @js-example ```html
1385
+ * <searchcraft-popover-list-view />
1386
+ * ```
1387
+ */
1388
+ interface HTMLSearchcraftPopoverListViewElement extends Components.SearchcraftPopoverListView, HTMLStencilElement {
1389
+ }
1390
+ var HTMLSearchcraftPopoverListViewElement: {
1391
+ prototype: HTMLSearchcraftPopoverListViewElement;
1392
+ new (): HTMLSearchcraftPopoverListViewElement;
1393
+ };
1394
+ /**
1395
+ * This web component is designed to display the number of results returned from a search query.
1396
+ * @import ```jsx
1397
+ * // react
1398
+ * import { SearchcraftResultsInfo } from "@searchcraft/react-sdk";
1399
+ * // vue
1400
+ * import { SearchcraftResultsInfo } from "@searchcraft/vue-sdk";
1401
+ * ```
1402
+ * @js-example ```html
1403
+ * <!-- index.html -->
1404
+ * <searchcraft-results-info />
1405
+ * ```
1406
+ * ```js
1407
+ * // index.js
1408
+ * const resultsInfo = document.querySelector('searchcraft-results-info');
1409
+ * resultsInfo.template = (info, { html }) => html`
1410
+ * ${info.range[0]}-${info.range[1]} of ${info.count} results in ${info.responseTime}ms
1411
+ * `;
1412
+ * ```
1413
+ * @react-example ```jsx
1414
+ * <SearchcraftResultsInfo
1415
+ * template={(info, { html }) => html`
1416
+ * ${info.range[0]}-${info.range[1]} of ${info.count} results in ${info.responseTime}ms
1417
+ * `}
1418
+ * />
1419
+ * @vue-example ```jsx
1420
+ * <SearchcraftResultsInfo
1421
+ * :template={(info, { html }) => html`
1422
+ * ${info.range[0]}-${info.range[1]} of ${info.count} results in ${info.responseTime}ms
1423
+ * `}
1424
+ * />
1425
+ */
1426
+ interface HTMLSearchcraftResultsInfoElement extends Components.SearchcraftResultsInfo, HTMLStencilElement {
1427
+ }
1428
+ var HTMLSearchcraftResultsInfoElement: {
1429
+ prototype: HTMLSearchcraftResultsInfoElement;
1430
+ new (): HTMLSearchcraftResultsInfoElement;
1431
+ };
1432
+ /**
1433
+ * This web component is designed to display detailed information for a single search result. Once a query is submitted, the component formats and presents the result.
1434
+ */
1435
+ interface HTMLSearchcraftSearchResultElement extends Components.SearchcraftSearchResult, HTMLStencilElement {
1436
+ }
1437
+ var HTMLSearchcraftSearchResultElement: {
1438
+ prototype: HTMLSearchcraftSearchResultElement;
1439
+ new (): HTMLSearchcraftSearchResultElement;
1440
+ };
1441
+ /**
1442
+ * This web component is responsible for displaying the results of a search query. Once a query is submitted, the component formats and presents an ordered list of the results.
1443
+ * @import ```jsx
1444
+ * // react
1445
+ * import { SearchcraftSearchResults } from "@searchcraft/react-sdk";
1446
+ * // vue
1447
+ * import { SearchcraftSearchResults } from "@searchcraft/vue-sdk";
1448
+ * ```
1449
+ * @js-example ```html
1450
+ * <!-- index.html -->
1451
+ * <searchcraft-search-results
1452
+ * ad-interval="4"
1453
+ * place-ad-at-start="true"
1454
+ * />
1455
+ * ```
1456
+ * ```js
1457
+ * // index.js
1458
+ * const searchResults = document.querySelector('searchcraft-search-results');
1459
+ * searchResults.template = (item, index, { html }) => html`
1460
+ * <h2>${item.title}</h2>
1461
+ * `;
1462
+ * ```
1463
+ * @react-example ```jsx
1464
+ * <SearchcraftSearchResults
1465
+ * adInterval={4}
1466
+ * placeAdAtState={true}
1467
+ * template={(item, index, { html }) => html`
1468
+ * <h2>${item.title}</h2>
1469
+ * `}
1470
+ * />
1471
+ * ```
1472
+ * @vue-example ```jsx
1473
+ * <SearchcraftSearchResults
1474
+ * adInterval={4}
1475
+ * placeAdAtState={true}
1476
+ * :template={(item, index, { html }) => html`
1477
+ * <h2>${item.title}</h2>
1478
+ * `}
1479
+ * />
1480
+ * ```
1481
+ */
1482
+ interface HTMLSearchcraftSearchResultsElement extends Components.SearchcraftSearchResults, HTMLStencilElement {
1483
+ }
1484
+ var HTMLSearchcraftSearchResultsElement: {
1485
+ prototype: HTMLSearchcraftSearchResultsElement;
1486
+ new (): HTMLSearchcraftSearchResultsElement;
1487
+ };
1488
+ /**
1489
+ * This web component is designed to choose the number of search results displayed.
1490
+ * @import ```jsx
1491
+ * // react
1492
+ * import { SearchcraftSearchResultsPerPage } from "@searchcraft/react-sdk";
1493
+ * // vue
1494
+ * import { SearchcraftSearchResultsPerPage } from "@searchcraft/vue-sdk";
1495
+ * ```
1496
+ * @js-example ```html
1497
+ * <!-- index.html -->
1498
+ * <searchcraft-search-results-per-page increment="20" />
1499
+ * ```
1500
+ * @react-example ```jsx
1501
+ * <SearchcraftSearchResultsPerPage increment={20} />
1502
+ * ```
1503
+ * @vue-example ```jsx
1504
+ * <SearchcraftSearchResultsPerPage increment="20" />
1505
+ * ```
1506
+ */
1507
+ interface HTMLSearchcraftSearchResultsPerPageElement extends Components.SearchcraftSearchResultsPerPage, HTMLStencilElement {
1508
+ }
1509
+ var HTMLSearchcraftSearchResultsPerPageElement: {
1510
+ prototype: HTMLSearchcraftSearchResultsPerPageElement;
1511
+ new (): HTMLSearchcraftSearchResultsPerPageElement;
1512
+ };
1513
+ interface HTMLSearchcraftSelectElementEventMap {
1514
+ "selectChange": string;
1515
+ }
1516
+ /**
1517
+ * This web component is designed to allow users to select between a group of options.
1518
+ * @js-example ```html
1519
+ * <!-- index.html -->
1520
+ * <searchcraft-select
1521
+ * inputId="searchcraft-select"
1522
+ * name="searchcraft-select"
1523
+ * options="[{ label: 'label', value: 'value' }]"
1524
+ * />
1525
+ * ```
1526
+ */
1527
+ interface HTMLSearchcraftSelectElement extends Components.SearchcraftSelect, HTMLStencilElement {
1528
+ addEventListener<K extends keyof HTMLSearchcraftSelectElementEventMap>(type: K, listener: (this: HTMLSearchcraftSelectElement, ev: SearchcraftSelectCustomEvent<HTMLSearchcraftSelectElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
1529
+ addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
1530
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
1531
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
1532
+ removeEventListener<K extends keyof HTMLSearchcraftSelectElementEventMap>(type: K, listener: (this: HTMLSearchcraftSelectElement, ev: SearchcraftSelectCustomEvent<HTMLSearchcraftSelectElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
1533
+ removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
1534
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
1535
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
1536
+ }
1537
+ var HTMLSearchcraftSelectElement: {
1538
+ prototype: HTMLSearchcraftSelectElement;
1539
+ new (): HTMLSearchcraftSelectElement;
1540
+ };
1541
+ interface HTMLSearchcraftSliderElementEventMap {
1542
+ "rangeChanged": any;
1543
+ }
1544
+ /**
1545
+ * This web component is designed to allow users to select a value from a range defined by a minimum and maximum value. The component renders a slider interface, which can be used to visually choose a value between two boundaries.
1546
+ */
1547
+ interface HTMLSearchcraftSliderElement extends Components.SearchcraftSlider, HTMLStencilElement {
1548
+ addEventListener<K extends keyof HTMLSearchcraftSliderElementEventMap>(type: K, listener: (this: HTMLSearchcraftSliderElement, ev: SearchcraftSliderCustomEvent<HTMLSearchcraftSliderElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
1549
+ addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
1550
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
1551
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
1552
+ removeEventListener<K extends keyof HTMLSearchcraftSliderElementEventMap>(type: K, listener: (this: HTMLSearchcraftSliderElement, ev: SearchcraftSliderCustomEvent<HTMLSearchcraftSliderElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
1553
+ removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
1554
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
1555
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
1556
+ }
1557
+ var HTMLSearchcraftSliderElement: {
1558
+ prototype: HTMLSearchcraftSliderElement;
1559
+ new (): HTMLSearchcraftSliderElement;
1560
+ };
1561
+ /**
1562
+ * This web component adds Searchcraft's built-in css theme to your page. It does not render anything visible, its only function is to manage the css styles on the page.'
1563
+ * @import ```jsx
1564
+ * // react
1565
+ * import { SearchcraftTheme } from "@searchcraft/react-sdk";
1566
+ * // vue
1567
+ * import { SearchcraftTheme } from "@searchcraft/vue-sdk";
1568
+ * ```
1569
+ * @js-example ```html
1570
+ * <searchcraft-theme />
1571
+ * ```
1572
+ * @react-example ```jsx
1573
+ * <SearchcraftTheme />
1574
+ * ```
1575
+ * @vue-example ```jsx
1576
+ * <SearchcraftTheme />
1577
+ * ```
1578
+ */
1579
+ interface HTMLSearchcraftThemeElement extends Components.SearchcraftTheme, HTMLStencilElement {
1580
+ }
1581
+ var HTMLSearchcraftThemeElement: {
1582
+ prototype: HTMLSearchcraftThemeElement;
1583
+ new (): HTMLSearchcraftThemeElement;
1584
+ };
1585
+ interface HTMLSearchcraftToggleButtonElementEventMap {
1586
+ "toggleUpdated": boolean;
1587
+ }
1588
+ /**
1589
+ * This web component simulates a light switch functionality, providing a simple and intuitive toggle between two states—on and off.
1590
+ */
1591
+ interface HTMLSearchcraftToggleButtonElement extends Components.SearchcraftToggleButton, HTMLStencilElement {
1592
+ addEventListener<K extends keyof HTMLSearchcraftToggleButtonElementEventMap>(type: K, listener: (this: HTMLSearchcraftToggleButtonElement, ev: SearchcraftToggleButtonCustomEvent<HTMLSearchcraftToggleButtonElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
1593
+ addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
1594
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
1595
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
1596
+ removeEventListener<K extends keyof HTMLSearchcraftToggleButtonElementEventMap>(type: K, listener: (this: HTMLSearchcraftToggleButtonElement, ev: SearchcraftToggleButtonCustomEvent<HTMLSearchcraftToggleButtonElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
1597
+ removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
1598
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
1599
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
1600
+ }
1601
+ var HTMLSearchcraftToggleButtonElement: {
1602
+ prototype: HTMLSearchcraftToggleButtonElement;
1603
+ new (): HTMLSearchcraftToggleButtonElement;
1604
+ };
1605
+ interface HTMLElementTagNameMap {
1606
+ "searchcraft-ad": HTMLSearchcraftAdElement;
1607
+ "searchcraft-button": HTMLSearchcraftButtonElement;
1608
+ "searchcraft-error-message": HTMLSearchcraftErrorMessageElement;
1609
+ "searchcraft-facet-list": HTMLSearchcraftFacetListElement;
1610
+ "searchcraft-filter-panel": HTMLSearchcraftFilterPanelElement;
1611
+ "searchcraft-input-form": HTMLSearchcraftInputFormElement;
1612
+ "searchcraft-input-label": HTMLSearchcraftInputLabelElement;
1613
+ "searchcraft-pagination": HTMLSearchcraftPaginationElement;
1614
+ "searchcraft-popover-button": HTMLSearchcraftPopoverButtonElement;
1615
+ "searchcraft-popover-form": HTMLSearchcraftPopoverFormElement;
1616
+ "searchcraft-popover-list-item": HTMLSearchcraftPopoverListItemElement;
1617
+ "searchcraft-popover-list-view": HTMLSearchcraftPopoverListViewElement;
1618
+ "searchcraft-results-info": HTMLSearchcraftResultsInfoElement;
1619
+ "searchcraft-search-result": HTMLSearchcraftSearchResultElement;
1620
+ "searchcraft-search-results": HTMLSearchcraftSearchResultsElement;
1621
+ "searchcraft-search-results-per-page": HTMLSearchcraftSearchResultsPerPageElement;
1622
+ "searchcraft-select": HTMLSearchcraftSelectElement;
1623
+ "searchcraft-slider": HTMLSearchcraftSliderElement;
1624
+ "searchcraft-theme": HTMLSearchcraftThemeElement;
1625
+ "searchcraft-toggle-button": HTMLSearchcraftToggleButtonElement;
1626
+ }
1627
+ }
1628
+ declare namespace LocalJSX {
1629
+ /**
1630
+ * An inline ad meant to be rendered in a list of search results.
1631
+ */
1632
+ interface SearchcraftAd {
1633
+ "adClientResponseItem"?: AdClientResponseItem;
1634
+ "adContainerId"?: string;
1635
+ "adSource"?: SearchcraftAdSource;
1636
+ }
1637
+ /**
1638
+ * This web component represents a button.
1639
+ * It provides a clear, interactive way for users to submit search queries or trigger actions in a search interface.
1640
+ */
1641
+ interface SearchcraftButton {
1642
+ /**
1643
+ * Whether the button is disabled.
1644
+ */
1645
+ "disabled"?: boolean;
1646
+ /**
1647
+ * Controls the visual representation of the button.
1648
+ */
1649
+ "hierarchy"?: "primary" | "tertiary";
1650
+ /**
1651
+ * The icon element.
1652
+ */
1653
+ "icon"?: Element;
1654
+ /**
1655
+ * Should the button only display an icon.
1656
+ */
1657
+ "iconOnly"?: boolean;
1658
+ /**
1659
+ * The position of the icon.
1660
+ */
1661
+ "iconPosition"?: "left" | "right";
1662
+ /**
1663
+ * The label for the button.
1664
+ */
1665
+ "label"?: string;
1666
+ /**
1667
+ * The event fired when the button is clicked.
1668
+ */
1669
+ "onButtonClick"?: (event: SearchcraftButtonCustomEvent<void>) => void;
1670
+ /**
1671
+ * The type of the button.
1672
+ */
1673
+ "type"?: "submit" | "reset" | "button";
1674
+ }
1675
+ /**
1676
+ * This web component is designed to display a user-friendly error message when a search query fails, providing clear feedback to users and enhancing their experience when an issue arises during the search process.
1677
+ * @js-example ```html
1678
+ * <searchcraft-error-message>
1679
+ * No search results found for query
1680
+ * </searchcraft-error-message>
1681
+ * ```
1682
+ */
1683
+ interface SearchcraftErrorMessage {
1684
+ }
1685
+ /**
1686
+ * This web component is designed to display facets in a search interface, allowing users to refine their search results by applying filters based on various attributes.
1687
+ * It is consumed within the `searchcraft-filter-panel`.
1688
+ * @js-example ```html
1689
+ * <!-- index.html -->
1690
+ * <searchcraft-facet-list field-name="title" />
1691
+ * ```
1692
+ * ```js
1693
+ * // index.js
1694
+ * const facetList = document.querySelector('searchcraft-facet-list');
1695
+ * facetList.addEventListener('facetSelectionUpdated', () => {
1696
+ * console.log('Facet selection updated');
1697
+ * });
1698
+ * ```
1699
+ */
1700
+ interface SearchcraftFacetList {
1701
+ /**
1702
+ * The name of the field where facets are applied.
1703
+ */
1704
+ "fieldName"?: string;
1705
+ /**
1706
+ * When the facets are updated.
1707
+ */
1708
+ "onFacetSelectionUpdated"?: (event: SearchcraftFacetListCustomEvent<{
1709
+ paths: string[];
1710
+ }>) => void;
1711
+ }
1712
+ /**
1713
+ * This web component represents a series of filters that allows users to refine and control their search queries by applying various filter criteria.
1714
+ * @import ```jsx
1715
+ * // react
1716
+ * import { SearchcraftFilterPanel } from "@searchcraft/react-sdk";
1717
+ * // vue
1718
+ * import { SearchcraftFilterPanel } from "@searchcraft/vue-sdk";
1719
+ * ```
1720
+ * @js-example ```html
1721
+ * <!-- index.html -->
1722
+ * <searchcraft-filter-panel />
1723
+ * ```
1724
+ * ```js
1725
+ * // index.js
1726
+ * const filterPanel = document.querySelector('searchcraft-filter-panel');
1727
+ * if (filterPanel) {
1728
+ * filterPanel.items = [];
1729
+ * }
1730
+ * ```
1731
+ * @react-example ```jsx
1732
+ * <SearchcraftFilterPanel items={[]} />
1733
+ * ```
1734
+ * @vue-example ```jsx
1735
+ * <SearchcraftFilterPanel :items="[]" />
1736
+ * ```
1737
+ */
1738
+ interface SearchcraftFilterPanel {
1739
+ /**
1740
+ * The items to filter.
1741
+ */
1742
+ "items"?: FilterItem[];
1743
+ }
1744
+ /**
1745
+ * This web component provides a user-friendly interface for querying an indexed dataset, enabling users to easily search large collections of data.
1746
+ * It abstracts the complexities of index-based searching, making it accessible to users of all technical levels.
1747
+ * @import ```jsx
1748
+ * // react
1749
+ * import { SearchcraftInputForm } from "@searchcraft/react-sdk";
1750
+ * // vue
1751
+ * import { SearchcraftInputForm } from "@searchcraft/vue-sdk";
1752
+ * ```
1753
+ * @js-example ```html
1754
+ * <searchcraft-input-form auto-search />
1755
+ * ```
1756
+ * @react-example ```jsx
1757
+ * <SearchcraftInputForm autoSearch />
1758
+ * ```
1759
+ * @vue-example ```jsx
1760
+ * <SearchcraftInputForm autoSearch />
1761
+ * ```
1762
+ */
1763
+ interface SearchcraftInputForm {
1764
+ /**
1765
+ * Whether or not to automatically submit the search term when the input changes.
1766
+ */
1767
+ "autoSearch"?: boolean;
1768
+ /**
1769
+ * The label for the submit button.
1770
+ */
1771
+ "buttonLabel"?: string;
1772
+ /**
1773
+ * Where to place the search button.
1774
+ */
1775
+ "buttonPlacement"?: "left" | "right" | "none";
1776
+ "core"?: SearchcraftCore;
1777
+ /**
1778
+ * The label rendered above the input.
1779
+ */
1780
+ "inputLabel"?: string;
1781
+ /**
1782
+ * When the input becomes unfocused.
1783
+ */
1784
+ "onInputBlur"?: (event: SearchcraftInputFormCustomEvent<void>) => void;
1785
+ /**
1786
+ * When the input becomes focused.
1787
+ */
1788
+ "onInputFocus"?: (event: SearchcraftInputFormCustomEvent<void>) => void;
1789
+ /**
1790
+ * Event emitted when input initializes.
1791
+ */
1792
+ "onInputInit"?: (event: SearchcraftInputFormCustomEvent<void>) => void;
1793
+ /**
1794
+ * The input element's placeholder value.
1795
+ */
1796
+ "placeholderValue"?: string;
1797
+ }
1798
+ /**
1799
+ * This web component serves as the input label for the searchcraft-input-form component.
1800
+ * @js-example ```html
1801
+ * <searchcraft-input-label label="Search" />
1802
+ * ```
1803
+ */
1804
+ interface SearchcraftInputLabel {
1805
+ /**
1806
+ * The classname applied to the label element.
1807
+ */
1808
+ "inputLabelClassName"?: string | undefined;
1809
+ "label"?: string;
1810
+ }
1811
+ /**
1812
+ * This web component is designed to facilitate pagination of search results. Once a query is submitted, calculates the number for pages.
1813
+ * @import ```jsx
1814
+ * // react
1815
+ * import { SearchcraftPagination } from "@searchcraft/react-sdk";
1816
+ * // vue
1817
+ * import { SearchcraftPagination } from "@searchcraft/vue-sdk";
1818
+ * ```
1819
+ * @js-example ```html
1820
+ * <searchcraft-pagination />
1821
+ * ```
1822
+ * @react-example ```jsx
1823
+ * <SearchcraftPagination />
1824
+ * ```
1825
+ * @vue-example ```jsx
1826
+ * <SearchcraftPagination />
1827
+ * ```
1828
+ */
1829
+ interface SearchcraftPagination {
1830
+ }
1831
+ /**
1832
+ * Renders a button which, when clicked, turns on popover visibility.
1833
+ * @import ```jsx
1834
+ * // react
1835
+ * import { SearchcraftPopoverButton } from "@searchcraft/react-sdk";
1836
+ * // vue
1837
+ * import { SearchcraftPopoverButton } from "@searchcraft/vue-sdk";
1838
+ * ```
1839
+ * @js-example ```html
1840
+ * <searchcraft-popover-button>
1841
+ * Open popover
1842
+ * </searchcraft-popover-button>
1843
+ * ```
1844
+ * @react-example ```jsx
1845
+ * <SearchcraftPopoverButton>
1846
+ * Open popover
1847
+ * </SearchcraftPopoverButton>
1848
+ * ```
1849
+ * @vue-example ```jsx
1850
+ * <SearchcraftPopoverButton>
1851
+ * Open popover
1852
+ * </SearchcraftPopoverButton>
1853
+ * ```
1854
+ */
1855
+ interface SearchcraftPopoverButton {
1856
+ }
1857
+ /**
1858
+ * This web component is designed to display search results in a popover container that dynamically appears when the user interacts with a search input field, or when a popover-button is pressed.
1859
+ * @import ```jsx
1860
+ * // react
1861
+ * import { SearchcraftPopoverForm } from "@searchcraft/react-sdk";
1862
+ * // vue
1863
+ * import { SearchcraftPopoverForm } from "@searchcraft/vue-sdk";
1864
+ * ```
1865
+ * @js-example ```html
1866
+ * <!-- index.html -->
1867
+ * <searchcraft-popover-form type="inline" />
1868
+ * ```
1869
+ * ```js
1870
+ * // index.js
1871
+ * const popoverForm = document.querySelector('searchcraft-popover-form');
1872
+ * popoverForm.popoverResultMappings = {};
1873
+ * ```
1874
+ * @react-example ```jsx
1875
+ * <SearchcraftPopoverForm type="inline" popoverResultMappings={[]} />
1876
+ * ```
1877
+ * @vue-example ```jsx
1878
+ * <SearchcraftPopoverForm type="inline" :popoverResultMappings="[]"" />
1879
+ * ```
1880
+ */
1881
+ interface SearchcraftPopoverForm {
1882
+ /**
1883
+ * The hotkey that activates the popover.
1884
+ */
1885
+ "hotkey"?: string;
1886
+ /**
1887
+ * The hotkey modifier that activates the popover. Used together with the `hotkey` prop.
1888
+ */
1889
+ "hotkeyModifier"?: "ctrl" | "meta" | "alt" | "option";
1890
+ /**
1891
+ * Formats the content rendered for each result.
1892
+ */
1893
+ "popoverResultMappings"?: PopoverResultMappings;
1894
+ /**
1895
+ * The type of popover form to render. - `inline` - Renders inline with the rest of the content on the page. The search results pop over the page content. - `fullscreen` - Renders in fullscreen view. Used together with the `searchcraft-popover-button` component. - `modal` - Renders in a modal view. Used together with the `searchcraft-popover-button` component.
1896
+ */
1897
+ "type"?: "inline" | "fullscreen" | "modal";
1898
+ }
1899
+ /**
1900
+ * A single list item rendered in a searchcraft-popover-list-view.
1901
+ */
1902
+ interface SearchcraftPopoverListItem {
1903
+ /**
1904
+ * The document position relative to the search results (For Measure)
1905
+ */
1906
+ "documentPosition"?: number;
1907
+ "item"?: SearchClientResponseItem | undefined;
1908
+ "popoverResultMappings"?: PopoverResultMappings | undefined;
1909
+ }
1910
+ /**
1911
+ * This web component is designed to display a list of results within a popover interface.
1912
+ * It is consumed within the `searchcraft-popover-form` component.
1913
+ * @js-example ```html
1914
+ * <searchcraft-popover-list-view />
1915
+ * ```
1916
+ */
1917
+ interface SearchcraftPopoverListView {
1918
+ "adClientResponseItems"?: AdClientResponseItem[] | undefined;
1919
+ /**
1920
+ * The mappings that define how the data in the documents are mapped to the list-view-item elements.
1921
+ */
1922
+ "popoverResultMappings"?: PopoverResultMappings | undefined;
1923
+ /**
1924
+ * The items to render in the list view.
1925
+ */
1926
+ "searchClientResponseItems"?: SearchClientResponseItem[] | undefined;
1927
+ "searchResultsPage": number;
1928
+ "searchResultsPerPage": number;
1929
+ }
1930
+ /**
1931
+ * This web component is designed to display the number of results returned from a search query.
1932
+ * @import ```jsx
1933
+ * // react
1934
+ * import { SearchcraftResultsInfo } from "@searchcraft/react-sdk";
1935
+ * // vue
1936
+ * import { SearchcraftResultsInfo } from "@searchcraft/vue-sdk";
1937
+ * ```
1938
+ * @js-example ```html
1939
+ * <!-- index.html -->
1940
+ * <searchcraft-results-info />
1941
+ * ```
1942
+ * ```js
1943
+ * // index.js
1944
+ * const resultsInfo = document.querySelector('searchcraft-results-info');
1945
+ * resultsInfo.template = (info, { html }) => html`
1946
+ * ${info.range[0]}-${info.range[1]} of ${info.count} results in ${info.responseTime}ms
1947
+ * `;
1948
+ * ```
1949
+ * @react-example ```jsx
1950
+ * <SearchcraftResultsInfo
1951
+ * template={(info, { html }) => html`
1952
+ * ${info.range[0]}-${info.range[1]} of ${info.count} results in ${info.responseTime}ms
1953
+ * `}
1954
+ * />
1955
+ * @vue-example ```jsx
1956
+ * <SearchcraftResultsInfo
1957
+ * :template={(info, { html }) => html`
1958
+ * ${info.range[0]}-${info.range[1]} of ${info.count} results in ${info.responseTime}ms
1959
+ * `}
1960
+ * />
1961
+ */
1962
+ interface SearchcraftResultsInfo {
1963
+ /**
1964
+ * A callback function responsible for rendering the results info.
1965
+ * @example ```ts resultsInfo.template = html` ${range[0]}-${range[1]} of ${count} results in ${responseTime}ms `; ```
1966
+ */
1967
+ "template"?: ResultsInfoTemplate;
1968
+ }
1969
+ /**
1970
+ * This web component is designed to display detailed information for a single search result. Once a query is submitted, the component formats and presents the result.
1971
+ */
1972
+ interface SearchcraftSearchResult {
1973
+ /**
1974
+ * The position in the document. Used with the "document_clicked" measure event.
1975
+ */
1976
+ "documentPosition"?: number;
1977
+ /**
1978
+ * The index.
1979
+ */
1980
+ "index": number;
1981
+ "item"?: SearchClientResponseItem;
1982
+ /**
1983
+ * A callback function responsible for rendering a result.
1984
+ */
1985
+ "template"?: SearchResultTemplate<SearchResultTemplateData>;
1986
+ }
1987
+ /**
1988
+ * This web component is responsible for displaying the results of a search query. Once a query is submitted, the component formats and presents an ordered list of the results.
1989
+ * @import ```jsx
1990
+ * // react
1991
+ * import { SearchcraftSearchResults } from "@searchcraft/react-sdk";
1992
+ * // vue
1993
+ * import { SearchcraftSearchResults } from "@searchcraft/vue-sdk";
1994
+ * ```
1995
+ * @js-example ```html
1996
+ * <!-- index.html -->
1997
+ * <searchcraft-search-results
1998
+ * ad-interval="4"
1999
+ * place-ad-at-start="true"
2000
+ * />
2001
+ * ```
2002
+ * ```js
2003
+ * // index.js
2004
+ * const searchResults = document.querySelector('searchcraft-search-results');
2005
+ * searchResults.template = (item, index, { html }) => html`
2006
+ * <h2>${item.title}</h2>
2007
+ * `;
2008
+ * ```
2009
+ * @react-example ```jsx
2010
+ * <SearchcraftSearchResults
2011
+ * adInterval={4}
2012
+ * placeAdAtState={true}
2013
+ * template={(item, index, { html }) => html`
2014
+ * <h2>${item.title}</h2>
2015
+ * `}
2016
+ * />
2017
+ * ```
2018
+ * @vue-example ```jsx
2019
+ * <SearchcraftSearchResults
2020
+ * adInterval={4}
2021
+ * placeAdAtState={true}
2022
+ * :template={(item, index, { html }) => html`
2023
+ * <h2>${item.title}</h2>
2024
+ * `}
2025
+ * />
2026
+ * ```
2027
+ */
2028
+ interface SearchcraftSearchResults {
2029
+ /**
2030
+ * A callback function responsible for rendering a result. Passed to `searchcraft-search-result`.
2031
+ */
2032
+ "template"?: SearchResultTemplate<SearchResultTemplateData>;
2033
+ }
2034
+ /**
2035
+ * This web component is designed to choose the number of search results displayed.
2036
+ * @import ```jsx
2037
+ * // react
2038
+ * import { SearchcraftSearchResultsPerPage } from "@searchcraft/react-sdk";
2039
+ * // vue
2040
+ * import { SearchcraftSearchResultsPerPage } from "@searchcraft/vue-sdk";
2041
+ * ```
2042
+ * @js-example ```html
2043
+ * <!-- index.html -->
2044
+ * <searchcraft-search-results-per-page increment="20" />
2045
+ * ```
2046
+ * @react-example ```jsx
2047
+ * <SearchcraftSearchResultsPerPage increment={20} />
2048
+ * ```
2049
+ * @vue-example ```jsx
2050
+ * <SearchcraftSearchResultsPerPage increment="20" />
2051
+ * ```
2052
+ */
2053
+ interface SearchcraftSearchResultsPerPage {
2054
+ /**
2055
+ * The amount the options will increase (e.g. 20 = [20, 40, 60, 80, 100]). The base value is defined by the `searchResultsPerPage` option in the configuration.
2056
+ */
2057
+ "increment"?: string | number;
2058
+ }
2059
+ /**
2060
+ * This web component is designed to allow users to select between a group of options.
2061
+ * @js-example ```html
2062
+ * <!-- index.html -->
2063
+ * <searchcraft-select
2064
+ * inputId="searchcraft-select"
2065
+ * name="searchcraft-select"
2066
+ * options="[{ label: 'label', value: 'value' }]"
2067
+ * />
2068
+ * ```
2069
+ */
2070
+ interface SearchcraftSelect {
2071
+ /**
2072
+ * The caption displayed below the select input.
2073
+ */
2074
+ "caption"?: string;
2075
+ /**
2076
+ * Whether the select input is disabled.
2077
+ */
2078
+ "disabled"?: boolean;
2079
+ /**
2080
+ * The ID for the select input.
2081
+ */
2082
+ "inputId": string;
2083
+ /**
2084
+ * The label of the select input.
2085
+ */
2086
+ "label"?: string;
2087
+ /**
2088
+ * The ID for the label of the select input.
2089
+ */
2090
+ "labelId"?: string;
2091
+ /**
2092
+ * The name of the select input.
2093
+ */
2094
+ "name": string;
2095
+ /**
2096
+ * The event fired when the select is changed.
2097
+ */
2098
+ "onSelectChange"?: (event: SearchcraftSelectCustomEvent<string>) => void;
2099
+ /**
2100
+ * The options for the select input.
2101
+ */
2102
+ "options"?: SearchcraftSelectOption[] | string;
2103
+ }
2104
+ /**
2105
+ * This web component is designed to allow users to select a value from a range defined by a minimum and maximum value. The component renders a slider interface, which can be used to visually choose a value between two boundaries.
2106
+ */
2107
+ interface SearchcraftSlider {
2108
+ /**
2109
+ * The type of data allowed.
2110
+ */
2111
+ "dataType"?: "number" | "date";
2112
+ /**
2113
+ * The granularity that the value must adhere to.
2114
+ */
2115
+ "granularity"?: number;
2116
+ /**
2117
+ * The maximum value allowed.
2118
+ */
2119
+ "max"?: number;
2120
+ /**
2121
+ * The minimum value allowed.
2122
+ */
2123
+ "min"?: number;
2124
+ /**
2125
+ * When the range has changed.
2126
+ */
2127
+ "onRangeChanged"?: (event: SearchcraftSliderCustomEvent<any>) => void;
2128
+ }
2129
+ /**
2130
+ * This web component adds Searchcraft's built-in css theme to your page. It does not render anything visible, its only function is to manage the css styles on the page.'
2131
+ * @import ```jsx
2132
+ * // react
2133
+ * import { SearchcraftTheme } from "@searchcraft/react-sdk";
2134
+ * // vue
2135
+ * import { SearchcraftTheme } from "@searchcraft/vue-sdk";
2136
+ * ```
2137
+ * @js-example ```html
2138
+ * <searchcraft-theme />
2139
+ * ```
2140
+ * @react-example ```jsx
2141
+ * <SearchcraftTheme />
2142
+ * ```
2143
+ * @vue-example ```jsx
2144
+ * <SearchcraftTheme />
2145
+ * ```
2146
+ */
2147
+ interface SearchcraftTheme {
2148
+ }
2149
+ /**
2150
+ * This web component simulates a light switch functionality, providing a simple and intuitive toggle between two states—on and off.
2151
+ */
2152
+ interface SearchcraftToggleButton {
2153
+ /**
2154
+ * The label.
2155
+ */
2156
+ "label"?: string;
2157
+ /**
2158
+ * When the toggle element is changed.
2159
+ */
2160
+ "onToggleUpdated"?: (event: SearchcraftToggleButtonCustomEvent<boolean>) => void;
2161
+ /**
2162
+ * The secondary label displayed below the main label.
2163
+ */
2164
+ "subLabel"?: string | undefined;
2165
+ }
2166
+ interface IntrinsicElements {
2167
+ "searchcraft-ad": SearchcraftAd;
2168
+ "searchcraft-button": SearchcraftButton;
2169
+ "searchcraft-error-message": SearchcraftErrorMessage;
2170
+ "searchcraft-facet-list": SearchcraftFacetList;
2171
+ "searchcraft-filter-panel": SearchcraftFilterPanel;
2172
+ "searchcraft-input-form": SearchcraftInputForm;
2173
+ "searchcraft-input-label": SearchcraftInputLabel;
2174
+ "searchcraft-pagination": SearchcraftPagination;
2175
+ "searchcraft-popover-button": SearchcraftPopoverButton;
2176
+ "searchcraft-popover-form": SearchcraftPopoverForm;
2177
+ "searchcraft-popover-list-item": SearchcraftPopoverListItem;
2178
+ "searchcraft-popover-list-view": SearchcraftPopoverListView;
2179
+ "searchcraft-results-info": SearchcraftResultsInfo;
2180
+ "searchcraft-search-result": SearchcraftSearchResult;
2181
+ "searchcraft-search-results": SearchcraftSearchResults;
2182
+ "searchcraft-search-results-per-page": SearchcraftSearchResultsPerPage;
2183
+ "searchcraft-select": SearchcraftSelect;
2184
+ "searchcraft-slider": SearchcraftSlider;
2185
+ "searchcraft-theme": SearchcraftTheme;
2186
+ "searchcraft-toggle-button": SearchcraftToggleButton;
2187
+ }
2188
+ }
2189
+ declare module "@stencil/core" {
2190
+ export namespace JSX {
2191
+ interface IntrinsicElements {
2192
+ /**
2193
+ * An inline ad meant to be rendered in a list of search results.
2194
+ */
2195
+ "searchcraft-ad": LocalJSX.SearchcraftAd & JSXBase.HTMLAttributes<HTMLSearchcraftAdElement>;
2196
+ /**
2197
+ * This web component represents a button.
2198
+ * It provides a clear, interactive way for users to submit search queries or trigger actions in a search interface.
2199
+ */
2200
+ "searchcraft-button": LocalJSX.SearchcraftButton & JSXBase.HTMLAttributes<HTMLSearchcraftButtonElement>;
2201
+ /**
2202
+ * This web component is designed to display a user-friendly error message when a search query fails, providing clear feedback to users and enhancing their experience when an issue arises during the search process.
2203
+ * @js-example ```html
2204
+ * <searchcraft-error-message>
2205
+ * No search results found for query
2206
+ * </searchcraft-error-message>
2207
+ * ```
2208
+ */
2209
+ "searchcraft-error-message": LocalJSX.SearchcraftErrorMessage & JSXBase.HTMLAttributes<HTMLSearchcraftErrorMessageElement>;
2210
+ /**
2211
+ * This web component is designed to display facets in a search interface, allowing users to refine their search results by applying filters based on various attributes.
2212
+ * It is consumed within the `searchcraft-filter-panel`.
2213
+ * @js-example ```html
2214
+ * <!-- index.html -->
2215
+ * <searchcraft-facet-list field-name="title" />
2216
+ * ```
2217
+ * ```js
2218
+ * // index.js
2219
+ * const facetList = document.querySelector('searchcraft-facet-list');
2220
+ * facetList.addEventListener('facetSelectionUpdated', () => {
2221
+ * console.log('Facet selection updated');
2222
+ * });
2223
+ * ```
2224
+ */
2225
+ "searchcraft-facet-list": LocalJSX.SearchcraftFacetList & JSXBase.HTMLAttributes<HTMLSearchcraftFacetListElement>;
2226
+ /**
2227
+ * This web component represents a series of filters that allows users to refine and control their search queries by applying various filter criteria.
2228
+ * @import ```jsx
2229
+ * // react
2230
+ * import { SearchcraftFilterPanel } from "@searchcraft/react-sdk";
2231
+ * // vue
2232
+ * import { SearchcraftFilterPanel } from "@searchcraft/vue-sdk";
2233
+ * ```
2234
+ * @js-example ```html
2235
+ * <!-- index.html -->
2236
+ * <searchcraft-filter-panel />
2237
+ * ```
2238
+ * ```js
2239
+ * // index.js
2240
+ * const filterPanel = document.querySelector('searchcraft-filter-panel');
2241
+ * if (filterPanel) {
2242
+ * filterPanel.items = [];
2243
+ * }
2244
+ * ```
2245
+ * @react-example ```jsx
2246
+ * <SearchcraftFilterPanel items={[]} />
2247
+ * ```
2248
+ * @vue-example ```jsx
2249
+ * <SearchcraftFilterPanel :items="[]" />
2250
+ * ```
2251
+ */
2252
+ "searchcraft-filter-panel": LocalJSX.SearchcraftFilterPanel & JSXBase.HTMLAttributes<HTMLSearchcraftFilterPanelElement>;
2253
+ /**
2254
+ * This web component provides a user-friendly interface for querying an indexed dataset, enabling users to easily search large collections of data.
2255
+ * It abstracts the complexities of index-based searching, making it accessible to users of all technical levels.
2256
+ * @import ```jsx
2257
+ * // react
2258
+ * import { SearchcraftInputForm } from "@searchcraft/react-sdk";
2259
+ * // vue
2260
+ * import { SearchcraftInputForm } from "@searchcraft/vue-sdk";
2261
+ * ```
2262
+ * @js-example ```html
2263
+ * <searchcraft-input-form auto-search />
2264
+ * ```
2265
+ * @react-example ```jsx
2266
+ * <SearchcraftInputForm autoSearch />
2267
+ * ```
2268
+ * @vue-example ```jsx
2269
+ * <SearchcraftInputForm autoSearch />
2270
+ * ```
2271
+ */
2272
+ "searchcraft-input-form": LocalJSX.SearchcraftInputForm & JSXBase.HTMLAttributes<HTMLSearchcraftInputFormElement>;
2273
+ /**
2274
+ * This web component serves as the input label for the searchcraft-input-form component.
2275
+ * @js-example ```html
2276
+ * <searchcraft-input-label label="Search" />
2277
+ * ```
2278
+ */
2279
+ "searchcraft-input-label": LocalJSX.SearchcraftInputLabel & JSXBase.HTMLAttributes<HTMLSearchcraftInputLabelElement>;
2280
+ /**
2281
+ * This web component is designed to facilitate pagination of search results. Once a query is submitted, calculates the number for pages.
2282
+ * @import ```jsx
2283
+ * // react
2284
+ * import { SearchcraftPagination } from "@searchcraft/react-sdk";
2285
+ * // vue
2286
+ * import { SearchcraftPagination } from "@searchcraft/vue-sdk";
2287
+ * ```
2288
+ * @js-example ```html
2289
+ * <searchcraft-pagination />
2290
+ * ```
2291
+ * @react-example ```jsx
2292
+ * <SearchcraftPagination />
2293
+ * ```
2294
+ * @vue-example ```jsx
2295
+ * <SearchcraftPagination />
2296
+ * ```
2297
+ */
2298
+ "searchcraft-pagination": LocalJSX.SearchcraftPagination & JSXBase.HTMLAttributes<HTMLSearchcraftPaginationElement>;
2299
+ /**
2300
+ * Renders a button which, when clicked, turns on popover visibility.
2301
+ * @import ```jsx
2302
+ * // react
2303
+ * import { SearchcraftPopoverButton } from "@searchcraft/react-sdk";
2304
+ * // vue
2305
+ * import { SearchcraftPopoverButton } from "@searchcraft/vue-sdk";
2306
+ * ```
2307
+ * @js-example ```html
2308
+ * <searchcraft-popover-button>
2309
+ * Open popover
2310
+ * </searchcraft-popover-button>
2311
+ * ```
2312
+ * @react-example ```jsx
2313
+ * <SearchcraftPopoverButton>
2314
+ * Open popover
2315
+ * </SearchcraftPopoverButton>
2316
+ * ```
2317
+ * @vue-example ```jsx
2318
+ * <SearchcraftPopoverButton>
2319
+ * Open popover
2320
+ * </SearchcraftPopoverButton>
2321
+ * ```
2322
+ */
2323
+ "searchcraft-popover-button": LocalJSX.SearchcraftPopoverButton & JSXBase.HTMLAttributes<HTMLSearchcraftPopoverButtonElement>;
2324
+ /**
2325
+ * This web component is designed to display search results in a popover container that dynamically appears when the user interacts with a search input field, or when a popover-button is pressed.
2326
+ * @import ```jsx
2327
+ * // react
2328
+ * import { SearchcraftPopoverForm } from "@searchcraft/react-sdk";
2329
+ * // vue
2330
+ * import { SearchcraftPopoverForm } from "@searchcraft/vue-sdk";
2331
+ * ```
2332
+ * @js-example ```html
2333
+ * <!-- index.html -->
2334
+ * <searchcraft-popover-form type="inline" />
2335
+ * ```
2336
+ * ```js
2337
+ * // index.js
2338
+ * const popoverForm = document.querySelector('searchcraft-popover-form');
2339
+ * popoverForm.popoverResultMappings = {};
2340
+ * ```
2341
+ * @react-example ```jsx
2342
+ * <SearchcraftPopoverForm type="inline" popoverResultMappings={[]} />
2343
+ * ```
2344
+ * @vue-example ```jsx
2345
+ * <SearchcraftPopoverForm type="inline" :popoverResultMappings="[]"" />
2346
+ * ```
2347
+ */
2348
+ "searchcraft-popover-form": LocalJSX.SearchcraftPopoverForm & JSXBase.HTMLAttributes<HTMLSearchcraftPopoverFormElement>;
2349
+ /**
2350
+ * A single list item rendered in a searchcraft-popover-list-view.
2351
+ */
2352
+ "searchcraft-popover-list-item": LocalJSX.SearchcraftPopoverListItem & JSXBase.HTMLAttributes<HTMLSearchcraftPopoverListItemElement>;
2353
+ /**
2354
+ * This web component is designed to display a list of results within a popover interface.
2355
+ * It is consumed within the `searchcraft-popover-form` component.
2356
+ * @js-example ```html
2357
+ * <searchcraft-popover-list-view />
2358
+ * ```
2359
+ */
2360
+ "searchcraft-popover-list-view": LocalJSX.SearchcraftPopoverListView & JSXBase.HTMLAttributes<HTMLSearchcraftPopoverListViewElement>;
2361
+ /**
2362
+ * This web component is designed to display the number of results returned from a search query.
2363
+ * @import ```jsx
2364
+ * // react
2365
+ * import { SearchcraftResultsInfo } from "@searchcraft/react-sdk";
2366
+ * // vue
2367
+ * import { SearchcraftResultsInfo } from "@searchcraft/vue-sdk";
2368
+ * ```
2369
+ * @js-example ```html
2370
+ * <!-- index.html -->
2371
+ * <searchcraft-results-info />
2372
+ * ```
2373
+ * ```js
2374
+ * // index.js
2375
+ * const resultsInfo = document.querySelector('searchcraft-results-info');
2376
+ * resultsInfo.template = (info, { html }) => html`
2377
+ * ${info.range[0]}-${info.range[1]} of ${info.count} results in ${info.responseTime}ms
2378
+ * `;
2379
+ * ```
2380
+ * @react-example ```jsx
2381
+ * <SearchcraftResultsInfo
2382
+ * template={(info, { html }) => html`
2383
+ * ${info.range[0]}-${info.range[1]} of ${info.count} results in ${info.responseTime}ms
2384
+ * `}
2385
+ * />
2386
+ * @vue-example ```jsx
2387
+ * <SearchcraftResultsInfo
2388
+ * :template={(info, { html }) => html`
2389
+ * ${info.range[0]}-${info.range[1]} of ${info.count} results in ${info.responseTime}ms
2390
+ * `}
2391
+ * />
2392
+ */
2393
+ "searchcraft-results-info": LocalJSX.SearchcraftResultsInfo & JSXBase.HTMLAttributes<HTMLSearchcraftResultsInfoElement>;
2394
+ /**
2395
+ * This web component is designed to display detailed information for a single search result. Once a query is submitted, the component formats and presents the result.
2396
+ */
2397
+ "searchcraft-search-result": LocalJSX.SearchcraftSearchResult & JSXBase.HTMLAttributes<HTMLSearchcraftSearchResultElement>;
2398
+ /**
2399
+ * This web component is responsible for displaying the results of a search query. Once a query is submitted, the component formats and presents an ordered list of the results.
2400
+ * @import ```jsx
2401
+ * // react
2402
+ * import { SearchcraftSearchResults } from "@searchcraft/react-sdk";
2403
+ * // vue
2404
+ * import { SearchcraftSearchResults } from "@searchcraft/vue-sdk";
2405
+ * ```
2406
+ * @js-example ```html
2407
+ * <!-- index.html -->
2408
+ * <searchcraft-search-results
2409
+ * ad-interval="4"
2410
+ * place-ad-at-start="true"
2411
+ * />
2412
+ * ```
2413
+ * ```js
2414
+ * // index.js
2415
+ * const searchResults = document.querySelector('searchcraft-search-results');
2416
+ * searchResults.template = (item, index, { html }) => html`
2417
+ * <h2>${item.title}</h2>
2418
+ * `;
2419
+ * ```
2420
+ * @react-example ```jsx
2421
+ * <SearchcraftSearchResults
2422
+ * adInterval={4}
2423
+ * placeAdAtState={true}
2424
+ * template={(item, index, { html }) => html`
2425
+ * <h2>${item.title}</h2>
2426
+ * `}
2427
+ * />
2428
+ * ```
2429
+ * @vue-example ```jsx
2430
+ * <SearchcraftSearchResults
2431
+ * adInterval={4}
2432
+ * placeAdAtState={true}
2433
+ * :template={(item, index, { html }) => html`
2434
+ * <h2>${item.title}</h2>
2435
+ * `}
2436
+ * />
2437
+ * ```
2438
+ */
2439
+ "searchcraft-search-results": LocalJSX.SearchcraftSearchResults & JSXBase.HTMLAttributes<HTMLSearchcraftSearchResultsElement>;
2440
+ /**
2441
+ * This web component is designed to choose the number of search results displayed.
2442
+ * @import ```jsx
2443
+ * // react
2444
+ * import { SearchcraftSearchResultsPerPage } from "@searchcraft/react-sdk";
2445
+ * // vue
2446
+ * import { SearchcraftSearchResultsPerPage } from "@searchcraft/vue-sdk";
2447
+ * ```
2448
+ * @js-example ```html
2449
+ * <!-- index.html -->
2450
+ * <searchcraft-search-results-per-page increment="20" />
2451
+ * ```
2452
+ * @react-example ```jsx
2453
+ * <SearchcraftSearchResultsPerPage increment={20} />
2454
+ * ```
2455
+ * @vue-example ```jsx
2456
+ * <SearchcraftSearchResultsPerPage increment="20" />
2457
+ * ```
2458
+ */
2459
+ "searchcraft-search-results-per-page": LocalJSX.SearchcraftSearchResultsPerPage & JSXBase.HTMLAttributes<HTMLSearchcraftSearchResultsPerPageElement>;
2460
+ /**
2461
+ * This web component is designed to allow users to select between a group of options.
2462
+ * @js-example ```html
2463
+ * <!-- index.html -->
2464
+ * <searchcraft-select
2465
+ * inputId="searchcraft-select"
2466
+ * name="searchcraft-select"
2467
+ * options="[{ label: 'label', value: 'value' }]"
2468
+ * />
2469
+ * ```
2470
+ */
2471
+ "searchcraft-select": LocalJSX.SearchcraftSelect & JSXBase.HTMLAttributes<HTMLSearchcraftSelectElement>;
2472
+ /**
2473
+ * This web component is designed to allow users to select a value from a range defined by a minimum and maximum value. The component renders a slider interface, which can be used to visually choose a value between two boundaries.
2474
+ */
2475
+ "searchcraft-slider": LocalJSX.SearchcraftSlider & JSXBase.HTMLAttributes<HTMLSearchcraftSliderElement>;
2476
+ /**
2477
+ * This web component adds Searchcraft's built-in css theme to your page. It does not render anything visible, its only function is to manage the css styles on the page.'
2478
+ * @import ```jsx
2479
+ * // react
2480
+ * import { SearchcraftTheme } from "@searchcraft/react-sdk";
2481
+ * // vue
2482
+ * import { SearchcraftTheme } from "@searchcraft/vue-sdk";
2483
+ * ```
2484
+ * @js-example ```html
2485
+ * <searchcraft-theme />
2486
+ * ```
2487
+ * @react-example ```jsx
2488
+ * <SearchcraftTheme />
2489
+ * ```
2490
+ * @vue-example ```jsx
2491
+ * <SearchcraftTheme />
2492
+ * ```
2493
+ */
2494
+ "searchcraft-theme": LocalJSX.SearchcraftTheme & JSXBase.HTMLAttributes<HTMLSearchcraftThemeElement>;
2495
+ /**
2496
+ * This web component simulates a light switch functionality, providing a simple and intuitive toggle between two states—on and off.
2497
+ */
2498
+ "searchcraft-toggle-button": LocalJSX.SearchcraftToggleButton & JSXBase.HTMLAttributes<HTMLSearchcraftToggleButtonElement>;
2499
+ }
2500
+ }
2501
+ }
2502
+ export declare const defineCustomElements: () => void;
2503
+ /**
2504
+ * The Props Used by the `SearchcraftSearchResults` Component.
2505
+ */
2506
+ export interface SearchcraftSearchResultsProps extends Components.SearchcraftSearchResults {
2507
+ }
2508
+ /**
2509
+ * A component that renders a list of search results with customizable styles, layout, and link behavior.
2510
+ *
2511
+ * @example
2512
+ * ```vue
2513
+ * <script setup>
2514
+ * import SearchcraftSearchResults from '@searchcraft/vue-sdk';
2515
+ * import searchResultMappings from './searchResultMappings';
2516
+ *
2517
+ * const handleNoResults = () => {
2518
+ * console.log("No search results found");
2519
+ * };
2520
+ * </script>
2521
+ *
2522
+ * <template>
2523
+ * <SearchcraftSearchResults
2524
+ * :searchResultMappings="searchResultMappings"
2525
+ * resultImagePlacement="left"
2526
+ * buttonLabel="View More"
2527
+ * buttonTarget="_blank"
2528
+ * buttonRel="noopener"
2529
+ * containerTarget="_self"
2530
+ * containerRel="nofollow"
2531
+ * @noResults="handleNoResults"
2532
+ * />
2533
+ * </template>
2534
+ * ```
2535
+ */
2536
+ export declare const SearchcraftSearchResults: import("vue").DefineSetupFnComponent<LocalJSX.SearchcraftSearchResults & import("@stencil/vue-output-target/runtime").InputProps<string | number | boolean>, {}, {}, LocalJSX.SearchcraftSearchResults & import("@stencil/vue-output-target/runtime").InputProps<string | number | boolean>, import("vue").PublicProps>;
2537
+ /**
2538
+ * The props used by the SearchcraftFilterPanel.
2539
+ */
2540
+ export interface SearchcraftFilterPanelProps extends Components.SearchcraftFilterPanel {
2541
+ }
2542
+ /**
2543
+ * A component that represents a filter panel UI view, allowing users to refine and control their search queries by applying various filter criteria.
2544
+ *
2545
+ * @example
2546
+ * ```vue
2547
+ * <script setup>
2548
+ * import SearchcraftFilterPanel from '@my-library/vue';
2549
+ * import filterItems from './filterItems';
2550
+ * </script>
2551
+ *
2552
+ * <template>
2553
+ * <SearchcraftFilterPanel :items="filterItems" />
2554
+ * </template>
2555
+ * ```
2556
+ */
2557
+ export declare const SearchcraftFilterPanel: import("vue").DefineSetupFnComponent<LocalJSX.SearchcraftFilterPanel & import("@stencil/vue-output-target/runtime").InputProps<string | number | boolean>, {}, {}, LocalJSX.SearchcraftFilterPanel & import("@stencil/vue-output-target/runtime").InputProps<string | number | boolean>, import("vue").PublicProps>;
2558
+ /**
2559
+ * The Props for the SearchcraftInputForm component.
2560
+ */
2561
+ export interface SearchcraftInputFormProps extends Components.SearchcraftInputForm {
2562
+ }
2563
+ /**
2564
+ * A component that provides a user-friendly interface for querying an indexed dataset,
2565
+ * enabling users to easily search large collections of data. It abstracts the complexities
2566
+ * of index-based searching, making it accessible to users of all technical levels.
2567
+ *
2568
+ * @example
2569
+ * ```vue
2570
+ * <script setup>
2571
+ * import SearchcraftInputForm from '@searchcraft/vue-sdk';
2572
+ * import searchcraftConfig from './searchcraftConfig';
2573
+ *
2574
+ * const handleQuerySubmit = (event) => {
2575
+ * console.log("Query submitted", event.detail);
2576
+ * };
2577
+ * </script>
2578
+ *
2579
+ * <template>
2580
+ * <SearchcraftInputForm
2581
+ * :config="searchcraftConfig"
2582
+ * :autoSearch="true"
2583
+ * buttonPlacement="right"
2584
+ * buttonLabel="Search"
2585
+ * inputLabel="Search Database"
2586
+ * :customStyles="{ border: '1px solid gray', padding: '5px' }"
2587
+ * placeholderValue="Search here..."
2588
+ * searchTerm=""
2589
+ * @querySubmit="handleQuerySubmit"
2590
+ * @inputCleared="() => console.log('Input cleared')"
2591
+ * @noResultsReceived="() => console.log('No results found')"
2592
+ * @inputFocus="() => console.log('Input focused')"
2593
+ * @inputBlur="() => console.log('Input blurred')"
2594
+ * @inputInit="() => console.log('Input initialized')"
2595
+ * />
2596
+ * </template>
2597
+ * ```
2598
+ */
2599
+ export declare const SearchcraftInputForm: import("vue").DefineSetupFnComponent<LocalJSX.SearchcraftInputForm & import("@stencil/vue-output-target/runtime").InputProps<string | number | boolean>, {}, {}, LocalJSX.SearchcraftInputForm & import("@stencil/vue-output-target/runtime").InputProps<string | number | boolean>, import("vue").PublicProps>;
2600
+ /**
2601
+ * The Props for the SearchcraftPopoverButton.
2602
+ */
2603
+ export interface SearchcraftPopoverButtonProps extends Components.SearchcraftPopoverButton {
2604
+ }
2605
+ /**
2606
+ * A button component that, when clicked, toggles the visibility of a popover.
2607
+ *
2608
+ * @example
2609
+ * ```vue
2610
+ * <script setup>
2611
+ * import SearchcraftPopoverButton from '@searchcraft/vue-sdk';
2612
+ * </script>
2613
+ *
2614
+ * <template>
2615
+ * <SearchcraftPopoverButton>
2616
+ * Open Popover
2617
+ * </SearchcraftPopoverButton>
2618
+ * </template>
2619
+ * ```
2620
+ */
2621
+ export declare const SearchcraftPopoverButton: import("vue").DefineSetupFnComponent<LocalJSX.SearchcraftPopoverButton & import("@stencil/vue-output-target/runtime").InputProps<string | number | boolean>, {}, {}, LocalJSX.SearchcraftPopoverButton & import("@stencil/vue-output-target/runtime").InputProps<string | number | boolean>, import("vue").PublicProps>;
2622
+ /**
2623
+ * The Props for the SearchcraftPopoverForm.
2624
+ */
2625
+ export interface SearchcraftPopoverFormProps extends Components.SearchcraftPopoverForm {
2626
+ }
2627
+ /**
2628
+ * A component that displays search results in a popover container that dynamically appears
2629
+ * when the user interacts with a search input field, or when a Popover Button has been clicked.
2630
+ *
2631
+ * @example
2632
+ * ```vue
2633
+ * <script setup>
2634
+ * import SearchcraftPopoverForm from '@searchcraft/vue-sdk';
2635
+ * import searchcraftConfig from './searchcraftConfig';
2636
+ * import popoverResultMappings from './popoverResultMappings';
2637
+ * </script>
2638
+ *
2639
+ * <template>
2640
+ * <SearchcraftPopoverForm
2641
+ * :config="searchcraftConfig"
2642
+ * type="fullscreen"
2643
+ * :popoverResultMappings="popoverResultMappings"
2644
+ * hotkey="k"
2645
+ * hotkeyModifier="meta"
2646
+ * />
2647
+ * </template>
2648
+ * ```
2649
+ */
2650
+ export declare const SearchcraftPopoverForm: import("vue").DefineSetupFnComponent<LocalJSX.SearchcraftPopoverForm & import("@stencil/vue-output-target/runtime").InputProps<string | number | boolean>, {}, {}, LocalJSX.SearchcraftPopoverForm & import("@stencil/vue-output-target/runtime").InputProps<string | number | boolean>, import("vue").PublicProps>;
2651
+ /**
2652
+ * The Props for the SearchcraftResultsInfo component.
2653
+ */
2654
+ export interface SearchcraftResultsInfoProps extends Components.SearchcraftResultsInfo {
2655
+ }
2656
+ /**
2657
+ * This Vue component is designed to display the number of results returned from a search query.
2658
+ *
2659
+ * @example
2660
+ * ```vue
2661
+ * <script setup>
2662
+ * import SearchcraftResultsInfo from '@searchcraft/vue-sdk';
2663
+ *
2664
+ * const customFormatter = (range, count, responseTime) =>
2665
+ * `${range[0]}-${range[1]} of ${count} results in ${responseTime}ms`;
2666
+ * </script>
2667
+ *
2668
+ * <template>
2669
+ * <SearchcraftResultsInfo :customFormatter="customFormatter" />
2670
+ * </template>
2671
+ * ```
2672
+ */
2673
+ export declare const SearchcraftResultsInfo: import("vue").DefineSetupFnComponent<LocalJSX.SearchcraftResultsInfo & import("@stencil/vue-output-target/runtime").InputProps<string | number | boolean>, {}, {}, LocalJSX.SearchcraftResultsInfo & import("@stencil/vue-output-target/runtime").InputProps<string | number | boolean>, import("vue").PublicProps>;
2674
+ /**
2675
+ * The Props for the SearchcraftTheme component.
2676
+ */
2677
+ export interface SearchcraftThemeProps extends Components.SearchcraftTheme {
2678
+ }
2679
+ /**
2680
+ * A component that applies Searchcraft's built-in CSS theme to your page.
2681
+ * It does not render anything visible—its only function is to manage the CSS styles on the page.
2682
+ *
2683
+ * @example
2684
+ * ```vue
2685
+ * <script setup>
2686
+ * import SearchcraftTheme from '@searchcraft/vue-sdk';
2687
+ * </script>
2688
+ *
2689
+ * <template>
2690
+ * <SearchcraftTheme />
2691
+ * </template>
2692
+ * ```
2693
+ */
2694
+ export declare const SearchcraftTheme: import("vue").DefineSetupFnComponent<LocalJSX.SearchcraftTheme & import("@stencil/vue-output-target/runtime").InputProps<string | number | boolean>, {}, {}, LocalJSX.SearchcraftTheme & import("@stencil/vue-output-target/runtime").InputProps<string | number | boolean>, import("vue").PublicProps>;
2695
+ /**
2696
+ * The Props for the SearchcraftPagination component.
2697
+ */
2698
+ export interface SearchcraftPaginationProps extends Components.SearchcraftPagination {
2699
+ }
2700
+ /**
2701
+ * This React component is designed to facilitate pagination of search results.
2702
+ * Once a query is submitted, calculates the number for pages.
2703
+ *
2704
+ * @example
2705
+ * ```vue
2706
+ * <script setup>
2707
+ * import SearchcraftPagination from '@searchcraft/vue-sdk';
2708
+ * </script>
2709
+ *
2710
+ * <template>
2711
+ * <SearchcraftPagination />
2712
+ * </template>
2713
+ * ```
2714
+ */
2715
+ export declare const SearchcraftPagination: import("vue").DefineSetupFnComponent<LocalJSX.SearchcraftPagination & import("@stencil/vue-output-target/runtime").InputProps<string | number | boolean>, {}, {}, LocalJSX.SearchcraftPagination & import("@stencil/vue-output-target/runtime").InputProps<string | number | boolean>, import("vue").PublicProps>;
2716
+ /**
2717
+ * The Props for the SearchcraftSearchResultsPerPage component.
2718
+ */
2719
+ export interface SearchcraftSearchResultsPerPageProps extends Components.SearchcraftSearchResultsPerPage {
2720
+ }
2721
+ /**
2722
+ * This Vue component is designed to choose the number of search results displayed.
2723
+ *
2724
+ * @example
2725
+ * ```vue
2726
+ * <script setup>
2727
+ * import SearchcraftSearchResultsPerPage from '@searchcraft/vue-sdk';
2728
+ * </script>
2729
+ *
2730
+ * <template>
2731
+ * <SearchcraftSearchResultsPerPage increment="20" />
2732
+ * </template>
2733
+ * ```
2734
+ */
2735
+ export declare const SearchcraftSearchResultsPerPage: import("vue").DefineSetupFnComponent<LocalJSX.SearchcraftSearchResultsPerPage & import("@stencil/vue-output-target/runtime").InputProps<string | number | boolean>, {}, {}, LocalJSX.SearchcraftSearchResultsPerPage & import("@stencil/vue-output-target/runtime").InputProps<string | number | boolean>, import("vue").PublicProps>;
2736
+ /**
2737
+ * The consumer-facing Searchcraft class.
2738
+ */
2739
+ export declare class Searchcraft extends SearchcraftCore {
2740
+ constructor(config: SearchcraftConfig);
2741
+ }
2742
+
2743
+ export {
2744
+ LocalJSX as JSX,
2745
+ };
2746
+
2747
+ export {};