///
///
import type { SearchWidgetConfig, SearchApiService, SearchWidgetEmits, SearchProduct, SearchHint } from "../types";
/**
* Основной composable для виджета поиска
*/
export declare function useSearchWidget(config: SearchWidgetConfig, apiService: SearchApiService | undefined, emit: SearchWidgetEmits): {
handleInput: (event: Event) => void;
handleSearch: () => Promise;
handleFocus: () => Promise;
handleClick: () => Promise;
handleBlur: () => Promise;
hideSuggestions: () => void;
handleClear: () => void;
selectHistoryQuery: (query: string) => Promise;
selectQuery: (query: string) => Promise;
selectHint: (hint: SearchHint) => Promise;
selectFullHint: (hint: string) => Promise;
selectHintByFullText: (hint: SearchHint) => Promise;
selectProduct: (product: SearchProduct, event?: MouseEvent) => Promise;
deleteHistoryQuery: (query: string) => Promise;
clearHistory: () => Promise;
formatPrice: (price: number) => string;
handleImageError: (event: Event) => void;
searchQuery: import("vue").Ref;
showSuggestions: import("vue").Ref;
isLoading: import("vue").Ref;
isFastLoading: import("vue").Ref;
error: import("vue").Ref;
historyQueries: import("vue").Ref;
popularQueries: import("vue").Ref;
popularProducts: import("vue").Ref<{
id: string;
name: string;
description?: string | undefined;
price: number;
picture: string | null;
url: string | null;
vendor_code: string;
properties: {
name: string;
values: {
value: string;
}[];
}[];
category?: {
id: string;
name: string;
} | null | undefined;
classification_properties?: {
id: string;
name: string;
value: {
id: string;
name: string;
};
}[] | undefined;
}[], SearchProduct[] | {
id: string;
name: string;
description?: string | undefined;
price: number;
picture: string | null;
url: string | null;
vendor_code: string;
properties: {
name: string;
values: {
value: string;
}[];
}[];
category?: {
id: string;
name: string;
} | null | undefined;
classification_properties?: {
id: string;
name: string;
value: {
id: string;
name: string;
};
}[] | undefined;
}[]>;
searchResults: import("vue").Ref<{
id: string;
name: string;
description?: string | undefined;
price: number;
picture: string | null;
url: string | null;
vendor_code: string;
properties: {
name: string;
values: {
value: string;
}[];
}[];
category?: {
id: string;
name: string;
} | null | undefined;
classification_properties?: {
id: string;
name: string;
value: {
id: string;
name: string;
};
}[] | undefined;
}[], SearchProduct[] | {
id: string;
name: string;
description?: string | undefined;
price: number;
picture: string | null;
url: string | null;
vendor_code: string;
properties: {
name: string;
values: {
value: string;
}[];
}[];
category?: {
id: string;
name: string;
} | null | undefined;
classification_properties?: {
id: string;
name: string;
value: {
id: string;
name: string;
};
}[] | undefined;
}[]>;
productHints: import("vue").Ref<{
word: string;
hint: string;
}[], SearchHint[] | {
word: string;
hint: string;
}[]>;
fullHints: import("vue").Ref;
hasSearchResults: import("vue").Ref;
hasHistory: import("vue").ComputedRef;
hasPopularQueries: import("vue").ComputedRef;
hasPopularProducts: import("vue").ComputedRef;
hasSearchResultsData: import("vue").ComputedRef;
hasProductHints: import("vue").ComputedRef;
hasFullHints: import("vue").ComputedRef;
isEmptyQuery: import("vue").ComputedRef;
resetSearchState: () => void;
updateSearchQuery: (query: string) => void;
toggleSuggestions: (show: boolean) => void;
setFastLoading: (loading: boolean) => void;
};
//# sourceMappingURL=useSearchWidget.d.ts.map