import type { Component, Snippet } from 'svelte'; import type { ChipBarItem } from '../../molecules/ChipBar/ChipBar.svelte'; export type SearchResultKind = 'doc' | 'component' | 'page' | 'person' | 'file' | string; export type SearchResultsLayout = 'list' | 'grid' | 'compact'; export type SearchResultsSort = 'relevance' | 'newest' | 'oldest' | 'az'; export interface SearchResultItem { id: string; title: string; description?: string; meta?: string; href?: string; kind?: SearchResultKind; badge?: string; badgeVariant?: 'default' | 'primary' | 'secondary' | 'success' | 'warning' | 'error' | 'info'; tags?: string[]; image?: string; icon?: Component; author?: string; avatar?: string; date?: string | Date | number; score?: number; } export interface SearchSuggestion { id: string; label: string; } interface SearchResultsProps { query?: string; results?: SearchResultItem[]; filters?: ChipBarItem[]; filter?: string; sort?: SearchResultsSort; layout?: SearchResultsLayout; total?: number; page?: number; totalPages?: number; loading?: boolean; placeholder?: string; suggestions?: SearchSuggestion[]; recent?: SearchSuggestion[]; didYouMean?: string; showSort?: boolean; showLayoutToggle?: boolean; showPagination?: boolean; class?: string; children?: Snippet; emptyAction?: Snippet; toolbar?: Snippet; onsearch?: (q: string) => void; onfilter?: (id: string) => void; onsort?: (sort: SearchResultsSort) => void; onlayout?: (layout: SearchResultsLayout) => void; onselect?: (id: string) => void; onpage?: (page: number) => void; onsuggest?: (id: string) => void; onclearFilters?: () => void; oncorrection?: (term: string) => void; } declare const SearchResults: Component; type SearchResults = ReturnType; export default SearchResults;