/** * Vim Search System * * Implements vim-style search with / and ? commands. * * @since v1.58.0 */ import type { SearchDirection, SearchState, VimConfig } from './vim-types.js'; /** * Create initial search state */ export declare function createInitialSearchState(): SearchState; /** * Vim Search Engine */ export declare class VimSearchEngine { private state; private config; private items; private onSearchChange?; constructor(config?: Partial, onSearchChange?: (state: SearchState) => void); /** * Get current search state */ getState(): SearchState; /** * Set items to search */ setItems(items: string[]): void; /** * Start a new search */ startSearch(direction: SearchDirection): void; /** * Update search query */ updateQuery(query: string): void; /** * Append character to query */ appendToQuery(char: string): void; /** * Remove last character from query */ backspace(): void; /** * Execute the search and update results */ executeSearch(): void; /** * Prepare query based on settings */ private prepareQuery; /** * Check if an item matches the query */ private matchItem; /** * Confirm search (press Enter) */ confirmSearch(): number | null; /** * Cancel search (press Escape) */ cancelSearch(): void; /** * Go to next search result (n) */ nextResult(): number | null; /** * Go to previous search result (N) */ prevResult(): number | null; /** * Search for word under cursor (*) */ searchWordUnderCursor(word: string): number | null; /** * Search for word under cursor backward (#) */ searchWordUnderCursorBackward(word: string): number | null; /** * Toggle case sensitivity */ toggleCaseSensitive(): void; /** * Toggle regex mode */ toggleRegex(): void; /** * Get current result index in the list */ getCurrentResultIndex(): number | null; /** * Get result count info */ getResultInfo(): { current: number; total: number; } | null; /** * Check if a specific index is a search result */ isSearchResult(index: number): boolean; /** * Check if a specific index is the current search result */ isCurrentResult(index: number): boolean; /** * Find result closest to a given index */ findClosestResult(index: number, direction?: SearchDirection): number | null; /** * Repeat last search */ repeatSearch(): number | null; /** * Repeat last search in reverse */ repeatSearchReverse(): number | null; /** * Reset search state */ reset(): void; /** * Notify listeners of state change */ private notifyChange; } /** * Create a vim search engine instance */ export declare function createVimSearchEngine(config?: Partial, onSearchChange?: (state: SearchState) => void): VimSearchEngine; /** * Format search status for display */ export declare function formatSearchStatus(state: SearchState): string; /** * Format search result count for display */ export declare function formatResultCount(state: SearchState): string; //# sourceMappingURL=vim-search.d.ts.map