import { type TranscriptMatch } from "../../ui-core/state/transcript-search.js"; import { type TranscriptItem, type TranscriptState } from "../../ui-core/state/transcript-types.js"; import type { InkTheme, ThemeToken } from "../render/ink-theme.js"; import { type PanelFrameInput } from "./panel-frame.js"; import { type PanelKeyResult } from "./panel-effect.js"; export interface SearchPanelState { readonly query: string; readonly cursor: number; readonly top: number; } export declare const SEARCH_INITIAL_STATE: SearchPanelState; export declare function itemGlyph(ink: InkTheme, item: TranscriptItem): { readonly glyph: string; readonly token: ThemeToken; }; export interface SearchKeyInput { readonly state: SearchPanelState; readonly chord: string; readonly text?: string | undefined; readonly transcript: TranscriptState; readonly rows: number; } export declare function searchKey(input: SearchKeyInput): PanelKeyResult; export interface SearchViewInput { readonly ink: InkTheme; readonly columns: number; readonly rows: number; readonly transcript: TranscriptState; readonly state: SearchPanelState; } export declare function matchExcerpt(ink: InkTheme, text: string, match: TranscriptMatch, width: number): string; export declare function searchView(input: SearchViewInput): PanelFrameInput;