import type { WorkspaceEntry } from "./useWorkspaceEntries.js";
import type { WorkspaceFileLister } from "./WorkspaceFileLister.js";
import type { SelectedWorkspaceFile } from "../internal/store/workspace-file-selection-store.js";
/** Props for {@link WorkspaceFileSearch}. */
export interface WorkspaceFileSearchProps {
    /** All workspace entries to search across. */
    readonly entries: readonly WorkspaceEntry[];
    /** Platform-injected file lister. `undefined` → search is unavailable. */
    readonly lister: WorkspaceFileLister | undefined;
    /** Opens a result in the viewer. */
    readonly onOpenFile: (entryId: string, path: string) => 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 filename/path search surface.
 *
 * Searches the already-loaded listings across every workspace entry (via
 * {@link useWorkspaceFileSearch}) and opens a hit in the viewer through
 * `onOpenFile` — the same seam a file-tree click uses. Filename-first by design;
 * content search is a separate substrate-specific capability (DD-09).
 *
 * Keyboard/a11y follows the platform's combobox+listbox pattern (see
 * `mcp-server/McpServerPicker`): the input is a `role="combobox"` driving
 * `aria-activedescendant`, results are a `role="listbox"` of `role="option"`
 * rows, and ArrowUp/Down move a virtual focus with Enter to open — focus stays
 * in the input. All visual properties flow through `--stgm-*` tokens (DD-005).
 */
export declare function WorkspaceFileSearch({ entries, lister, onOpenFile, selectedFile, className, }: WorkspaceFileSearchProps): import("react/jsx-runtime").JSX.Element;
//# sourceMappingURL=WorkspaceFileSearch.d.ts.map