import type { SelectedWorkspaceFile } from "../internal/store/index.js";
import type { WorkspaceEntry } from "./useWorkspaceEntries.js";
import type { WorkspaceFileLister } from "./WorkspaceFileLister.js";
/** Props for {@link ExplorerTree}. */
export interface ExplorerTreeProps {
    /** Workspace entries, each rendered as a collapsible root (multi-root). */
    readonly entries: readonly WorkspaceEntry[];
    /** Platform-injected file lister. */
    readonly lister: WorkspaceFileLister;
    /** The active file, highlighted in the tree. */
    readonly selectedFile: SelectedWorkspaceFile | null;
    /** Single click: open as a preview tab. */
    readonly onOpenFile: (entryId: string, path: string) => void;
    /** Double click: pin the file (persistent tab). */
    readonly onActivateFile: (entryId: string, path: string) => void;
    /**
     * Detach a workspace entry. When provided, each root header carries a remove
     * control (VS Code's "Remove Folder from Workspace"); when absent the
     * explorer is browse-only.
     */
    readonly onRemoveEntry?: (entryId: string) => void;
}
/**
 * The workspace surface's multi-root file explorer — the bare, VS Code-style
 * tree: file-type icons, indent guides, single-click preview / double-click
 * pin, optional per-root remove controls. Search lives in the surface's rail,
 * not per root; listings come from the shared `useWorkspaceFiles` cache.
 *
 * All visual properties flow through `--stgm-*` tokens (DD-005).
 */
export declare function ExplorerTree({ entries, lister, selectedFile, onOpenFile, onActivateFile, onRemoveEntry, }: ExplorerTreeProps): import("react/jsx-runtime").JSX.Element;
//# sourceMappingURL=ExplorerTree.d.ts.map