import type { Ref } from "vue"; import type { TLogSearchBarMode, TLogSearchBarState } from "../components/TLogSearchBar.js"; import type { TLogViewHandle, TLogViewScrollMetrics, TLogViewSearchMarker, TLogViewSearchState } from "../components/TLogView.js"; import type { UseTLogSearchResultsPageOptions } from "./use-tlog-search-results-page.js"; import { useTLogSearchResultsPage } from "./use-tlog-search-results-page.js"; export type TLogSavedSearch = Readonly<{ id: string; label?: string; query: string; mode: TLogSearchBarMode; caseSensitive?: boolean; wholeWord?: boolean; regexFlags?: string; }>; export type UseTLogSearchControllerOptions = Readonly; export declare function useTLogSearchController(logView: Ref, options?: UseTLogSearchControllerOptions): { query: Ref; mode: Ref; caseSensitive: Ref; wholeWord: Ref; regexFlags: Ref; searchState: Ref; searchBarState: Ref; resultsPage: ReturnType; markers: Ref; metrics: Ref; searchHistory: Ref; savedSearches: Ref; updateQuery: (value: string) => void; updateMode: (value: TLogSearchBarMode) => void; updateCaseSensitive: (value: boolean) => void; updateWholeWord: (value: boolean) => void; updateRegexFlags: (value: string) => void; nextMatch: () => void; previousMatch: () => void; clearSearch: () => void; selectMatch: (matchIndex: number) => boolean; refresh: () => void; saveCurrentSearch: (label?: string) => TLogSavedSearch | null; applySavedSearch: (id: string) => boolean; setSearchHistory: (value: readonly string[]) => void; setSavedSearches: (value: readonly TLogSavedSearch[]) => void; };