import type { WorkspaceEntry } from "./useWorkspaceEntries.js";
import type { WorkspaceContentSearcher } from "./WorkspaceContentSearcher.js";
import type { OpenFileOptions } from "../internal/store/index.js";
import type { SelectedWorkspaceFile } from "../internal/store/workspace-file-selection-store.js";
/** Props for {@link WorkspaceContentSearch}. */
export interface WorkspaceContentSearchProps {
    /** All workspace entries to search across. */
    readonly entries: readonly WorkspaceEntry[];
    /** Platform-injected content searcher. `undefined` → content search is unavailable. */
    readonly searcher: WorkspaceContentSearcher | undefined;
    /**
     * Opens a result's file in the viewer, jumping to the matched line. The
     * `options.line` carries the hit's 1-based line so the viewer scrolls to and
     * highlights it (DR-1/DR-2).
     */
    readonly onOpenFile: (entryId: string, path: string, options?: OpenFileOptions) => void;
    /** The file currently open in the viewer, highlighted in the results. */
    readonly selectedFile?: SelectedWorkspaceFile | null;
    /** Additional CSS classes for the root element. */
    readonly className?: string;
}
/**
 * Workspace-wide content (text) search surface.
 *
 * Greps file contents across every workspace entry (via
 * {@link useWorkspaceContentSearch}) and opens a hit's file in the viewer
 * through `onOpenFile` — the same seam a file-tree click and filename search
 * use. Results are a VS Code-style `file → line` layout: each matched file is a
 * header, each hit a line row with a line-number gutter and a highlighted
 * preview. Filename search lives in the sibling {@link WorkspaceFileSearch}; a
 * `Name | Text` toggle in the surface switches between them (DD-09).
 *
 * Keyboard/a11y mirrors the filename sibling (and `McpServerPicker`): the input
 * is a `role="combobox"` driving `aria-activedescendant`; results are a
 * `role="listbox"` of `role="option"` line rows; ArrowUp/Down move a virtual
 * focus over the flat line-hit index (across files and entries) with Enter to
 * open — focus stays in the input. All visual properties flow through `--stgm-*`
 * tokens (DD-005).
 */
export declare function WorkspaceContentSearch({ entries, searcher, onOpenFile, selectedFile, className, }: WorkspaceContentSearchProps): import("react/jsx-runtime").JSX.Element;
//# sourceMappingURL=WorkspaceContentSearch.d.ts.map