import { ValuSearch } from "."; import { OrderedGroups } from "./components/GroupInfo"; export declare type ValuSearchEvent = { /** * Fired after RVS has mounted * and all its components are in DOM */ name: "loaded"; instance: ValuSearch; } | { /** * Fired on RVS UI open */ name: "opened"; instance: ValuSearch; } | { /** * Fired on RVS UI closed */ name: "closed"; instance: ValuSearch; } | { /** * Fired when user clicks a search result */ name: "search-result-clicked"; terms: string; url: string; resultTitle: string; instance: ValuSearch; } | { /** * Fired on each search except for search more * searches. * NOTE: RVS searches as you type, * this event is fired a lot. */ name: "search"; terms: string; instance: ValuSearch; } | { /** * Fired with debounce from searches * except for search more searches. */ name: "search-debounced"; terms: string; instance: ValuSearch; } | { /** * Fired when navigating to group details * from groupped preview. */ name: "group-results-clicked"; terms: string; groupTitle: string; instance: ValuSearch; } | { /** * Fired when extra component GroupNav is * clicked. */ name: "group-nav-clicked"; terms: string; groupTitle: string; instance: ValuSearch; } | { /** * Fired when the search UI back button is * clicked. */ name: "back-button-clicked"; terms: string; groupTitle: string; instance: ValuSearch; } | { /** * Fired when RVS gets search response in * groupped preview */ name: "search-response"; terms: string; countTotal: number; responseGroups: { groupTitle: string; total: number; lang: string | undefined; }[]; lang: string; instance: ValuSearch; } | { /** * Fired with debounce after getting search * response / responses in groupped preview */ name: "search-response-debounced"; terms: string; countTotal: number; responseGroups: { groupTitle: string; total: number; lang: string | undefined; }[]; lang: string; instance: ValuSearch; } | { /** * Fired when RVS gets search response in * group details. * * NOTE: When scrolling for more search results * this event is fired with each search response. */ name: "search-response-group-details"; terms: string; countTotal: number; responseGroups: { groupTitle: string; total: number; lang: string | undefined; }[]; lang: string; instance: ValuSearch; } | { /** * Fired with debounce after getting search * response in group details view */ name: "search-response-group-details-debounced"; terms: string; countTotal: number; responseGroups: { groupTitle: string; total: number; lang: string | undefined; }[]; lang: string; instance: ValuSearch; } | { /** * Fired when group result is clicked. */ name: "search-result-clicked-extended"; terms: string; url: string; resultTitle: string; normalizedRelevancy: number; position: number; lang: string; uiLocation: string; groupTitle: string; bestResult: { title: string; url: string; }; instance: ValuSearch; }; export interface ValuSearchBrowserEvent extends Event { valuSearchEvent: ValuSearchEvent; } export interface ValuSearchEventListener { (event: ValuSearchEvent): void; } /** * Omit from union * https://stackoverflow.com/a/57103940/153718 */ declare type DistributiveOmit = T extends any ? Omit : never; export declare class ValuSearchEvents { instance: ValuSearch; listeners: ValuSearchEventListener[]; constructor(instance: ValuSearch); emit: (event: DistributiveOmit) => void; emitDebouncedResponse: { (this: any, event: Omit<{ /** * Fired after RVS has mounted * and all its components are in DOM */ name: "loaded"; instance: ValuSearch; }, "instance"> | Omit<{ /** * Fired on RVS UI open */ name: "opened"; instance: ValuSearch; }, "instance"> | Omit<{ /** * Fired on RVS UI closed */ name: "closed"; instance: ValuSearch; }, "instance"> | Omit<{ /** * Fired when user clicks a search result */ name: "search-result-clicked"; terms: string; url: string; resultTitle: string; instance: ValuSearch; }, "instance"> | Omit<{ /** * Fired on each search except for search more * searches. * NOTE: RVS searches as you type, * this event is fired a lot. */ name: "search"; terms: string; instance: ValuSearch; }, "instance"> | Omit<{ /** * Fired with debounce from searches * except for search more searches. */ name: "search-debounced"; terms: string; instance: ValuSearch; }, "instance"> | Omit<{ /** * Fired when navigating to group details * from groupped preview. */ name: "group-results-clicked"; terms: string; groupTitle: string; instance: ValuSearch; }, "instance"> | Omit<{ /** * Fired when extra component GroupNav is * clicked. */ name: "group-nav-clicked"; terms: string; groupTitle: string; instance: ValuSearch; }, "instance"> | Omit<{ /** * Fired when the search UI back button is * clicked. */ name: "back-button-clicked"; terms: string; groupTitle: string; instance: ValuSearch; }, "instance"> | Omit<{ /** * Fired when RVS gets search response in * groupped preview */ name: "search-response"; terms: string; countTotal: number; responseGroups: { groupTitle: string; total: number; lang: string | undefined; }[]; lang: string; instance: ValuSearch; }, "instance"> | Omit<{ /** * Fired with debounce after getting search * response / responses in groupped preview */ name: "search-response-debounced"; terms: string; countTotal: number; responseGroups: { groupTitle: string; total: number; lang: string | undefined; }[]; lang: string; instance: ValuSearch; }, "instance"> | Omit<{ /** * Fired when RVS gets search response in * group details. * * NOTE: When scrolling for more search results * this event is fired with each search response. */ name: "search-response-group-details"; terms: string; countTotal: number; responseGroups: { groupTitle: string; total: number; lang: string | undefined; }[]; lang: string; instance: ValuSearch; }, "instance"> | Omit<{ /** * Fired with debounce after getting search * response in group details view */ name: "search-response-group-details-debounced"; terms: string; countTotal: number; responseGroups: { groupTitle: string; total: number; lang: string | undefined; }[]; lang: string; instance: ValuSearch; }, "instance"> | Omit<{ /** * Fired when group result is clicked. */ name: "search-result-clicked-extended"; terms: string; url: string; resultTitle: string; normalizedRelevancy: number; position: number; lang: string; uiLocation: string; groupTitle: string; bestResult: { title: string; url: string; }; instance: ValuSearch; }, "instance">): void | undefined; cancel(): void; }; emitSearchResponseEvent(options: { terms: string; responses: { groupTitle: string; total: number; lang: string | undefined; }[]; lang: string | undefined; }): void; /** * Adds a listener if it has not been added already. * Return true if listener was added and false if not. * @param listener */ addListener(listener: ValuSearchEventListener): boolean; removeListener(listener: ValuSearchEventListener): void; emitSearchResultClickedEvent(options: { resultTitle: string; url: string; terms: string; score: number; lang: string | undefined; qs: URLSearchParams; groupTitle: string; instanceId: string; orderedGroups: OrderedGroups[]; }): void; emitDebouncedSearch: { (this: any, event: Omit<{ /** * Fired after RVS has mounted * and all its components are in DOM */ name: "loaded"; instance: ValuSearch; }, "instance"> | Omit<{ /** * Fired on RVS UI open */ name: "opened"; instance: ValuSearch; }, "instance"> | Omit<{ /** * Fired on RVS UI closed */ name: "closed"; instance: ValuSearch; }, "instance"> | Omit<{ /** * Fired when user clicks a search result */ name: "search-result-clicked"; terms: string; url: string; resultTitle: string; instance: ValuSearch; }, "instance"> | Omit<{ /** * Fired on each search except for search more * searches. * NOTE: RVS searches as you type, * this event is fired a lot. */ name: "search"; terms: string; instance: ValuSearch; }, "instance"> | Omit<{ /** * Fired with debounce from searches * except for search more searches. */ name: "search-debounced"; terms: string; instance: ValuSearch; }, "instance"> | Omit<{ /** * Fired when navigating to group details * from groupped preview. */ name: "group-results-clicked"; terms: string; groupTitle: string; instance: ValuSearch; }, "instance"> | Omit<{ /** * Fired when extra component GroupNav is * clicked. */ name: "group-nav-clicked"; terms: string; groupTitle: string; instance: ValuSearch; }, "instance"> | Omit<{ /** * Fired when the search UI back button is * clicked. */ name: "back-button-clicked"; terms: string; groupTitle: string; instance: ValuSearch; }, "instance"> | Omit<{ /** * Fired when RVS gets search response in * groupped preview */ name: "search-response"; terms: string; countTotal: number; responseGroups: { groupTitle: string; total: number; lang: string | undefined; }[]; lang: string; instance: ValuSearch; }, "instance"> | Omit<{ /** * Fired with debounce after getting search * response / responses in groupped preview */ name: "search-response-debounced"; terms: string; countTotal: number; responseGroups: { groupTitle: string; total: number; lang: string | undefined; }[]; lang: string; instance: ValuSearch; }, "instance"> | Omit<{ /** * Fired when RVS gets search response in * group details. * * NOTE: When scrolling for more search results * this event is fired with each search response. */ name: "search-response-group-details"; terms: string; countTotal: number; responseGroups: { groupTitle: string; total: number; lang: string | undefined; }[]; lang: string; instance: ValuSearch; }, "instance"> | Omit<{ /** * Fired with debounce after getting search * response in group details view */ name: "search-response-group-details-debounced"; terms: string; countTotal: number; responseGroups: { groupTitle: string; total: number; lang: string | undefined; }[]; lang: string; instance: ValuSearch; }, "instance"> | Omit<{ /** * Fired when group result is clicked. */ name: "search-result-clicked-extended"; terms: string; url: string; resultTitle: string; normalizedRelevancy: number; position: number; lang: string; uiLocation: string; groupTitle: string; bestResult: { title: string; url: string; }; instance: ValuSearch; }, "instance">): void | undefined; cancel(): void; }; emitSearchEvent(options: { terms: string; }): void; emitDebouncedSearchGroupDetails: { (this: any, event: Omit<{ /** * Fired after RVS has mounted * and all its components are in DOM */ name: "loaded"; instance: ValuSearch; }, "instance"> | Omit<{ /** * Fired on RVS UI open */ name: "opened"; instance: ValuSearch; }, "instance"> | Omit<{ /** * Fired on RVS UI closed */ name: "closed"; instance: ValuSearch; }, "instance"> | Omit<{ /** * Fired when user clicks a search result */ name: "search-result-clicked"; terms: string; url: string; resultTitle: string; instance: ValuSearch; }, "instance"> | Omit<{ /** * Fired on each search except for search more * searches. * NOTE: RVS searches as you type, * this event is fired a lot. */ name: "search"; terms: string; instance: ValuSearch; }, "instance"> | Omit<{ /** * Fired with debounce from searches * except for search more searches. */ name: "search-debounced"; terms: string; instance: ValuSearch; }, "instance"> | Omit<{ /** * Fired when navigating to group details * from groupped preview. */ name: "group-results-clicked"; terms: string; groupTitle: string; instance: ValuSearch; }, "instance"> | Omit<{ /** * Fired when extra component GroupNav is * clicked. */ name: "group-nav-clicked"; terms: string; groupTitle: string; instance: ValuSearch; }, "instance"> | Omit<{ /** * Fired when the search UI back button is * clicked. */ name: "back-button-clicked"; terms: string; groupTitle: string; instance: ValuSearch; }, "instance"> | Omit<{ /** * Fired when RVS gets search response in * groupped preview */ name: "search-response"; terms: string; countTotal: number; responseGroups: { groupTitle: string; total: number; lang: string | undefined; }[]; lang: string; instance: ValuSearch; }, "instance"> | Omit<{ /** * Fired with debounce after getting search * response / responses in groupped preview */ name: "search-response-debounced"; terms: string; countTotal: number; responseGroups: { groupTitle: string; total: number; lang: string | undefined; }[]; lang: string; instance: ValuSearch; }, "instance"> | Omit<{ /** * Fired when RVS gets search response in * group details. * * NOTE: When scrolling for more search results * this event is fired with each search response. */ name: "search-response-group-details"; terms: string; countTotal: number; responseGroups: { groupTitle: string; total: number; lang: string | undefined; }[]; lang: string; instance: ValuSearch; }, "instance"> | Omit<{ /** * Fired with debounce after getting search * response in group details view */ name: "search-response-group-details-debounced"; terms: string; countTotal: number; responseGroups: { groupTitle: string; total: number; lang: string | undefined; }[]; lang: string; instance: ValuSearch; }, "instance"> | Omit<{ /** * Fired when group result is clicked. */ name: "search-result-clicked-extended"; terms: string; url: string; resultTitle: string; normalizedRelevancy: number; position: number; lang: string; uiLocation: string; groupTitle: string; bestResult: { title: string; url: string; }; instance: ValuSearch; }, "instance">): void | undefined; cancel(): void; }; emitSearchResponseGroupDetailsEvent(options: { terms: string; responses: { groupTitle: string; total: number; lang: string | undefined; }[]; lang: string | undefined; }): void; } export {};