import { ComputedRef, Ref } from 'vue'; import { MetadataFilterRequest } from '../types/core/MetadataFilter'; export interface FilterSuggestion { name: string; displayName: string; usageCount?: number; } interface FilterSuggestionsData { suggestions: FilterSuggestion[]; hasMore?: boolean; } interface FilterConstraint { key: string; value: string; } interface UseFilterSuggestionsOptions { entity?: MetadataFilterRequest['entity']; filterKey?: string; includeDraftValues?: boolean; isSection?: boolean; isTemplate?: boolean; ownerId?: number | null; limit?: number; } export default function useFilterSuggestions(options?: UseFilterSuggestionsOptions): { suggestionsData: Ref<{ suggestions: { name: string; displayName: string; usageCount?: number | undefined; }[]; hasMore?: boolean | undefined; }, FilterSuggestionsData | { suggestions: { name: string; displayName: string; usageCount?: number | undefined; }[]; hasMore?: boolean | undefined; }>; isLoading: Ref; isEnabled: ComputedRef; fetchSuggestions: (currentFilters?: Record) => Promise; debouncedFetch: (currentFilters?: Record, delay?: number) => Promise; buildConstraints: (currentFilters: Record, excludeCurrentField?: boolean) => FilterConstraint[]; cleanup: () => void; }; export {};