import type { TreeNode } from "./tree-node";
/**
 * MIME type used to transfer workspace file-reference data during
 * drag-and-drop. The payload is `JSON.stringify({ path })` where
 * `path` is the workspace-relative file path.
 */
export declare const FILE_REF_MIME = "application/x-stigmer-file-ref";
export interface FileTreeNodeProps {
    readonly node: TreeNode;
    readonly selectedPath: string;
    readonly onSelect: (path: string) => void;
    readonly depth: number;
    /**
     * When `true`, file nodes (not folders) become draggable and emit
     * the `application/x-stigmer-file-ref` MIME type on drag start.
     *
     * Defaults to `false` to avoid unintended drag behavior in contexts
     * where file referencing is not applicable (e.g., SkillFileBrowser).
     */
    readonly enableDrag?: boolean;
    /**
     * Maximum depth at which folders start collapsed instead of expanded.
     * Folders at depth >= maxInitialDepth render collapsed by default,
     * reducing DOM node count for large trees. Users can still expand
     * them manually.
     *
     * When `undefined`, all folders start expanded (original behavior).
     */
    readonly maxInitialDepth?: number;
}
/**
 * Recursive tree-node renderer for a {@link TreeNode} hierarchy.
 *
 * Renders folders as expandable disclosure rows and files as selectable
 * leaf rows. When `enableDrag` is `true`, file rows are draggable and
 * emit a custom MIME type for the SessionComposer drop target.
 *
 * Uses `role="treeitem"` / `role="group"` for a11y and `--stgm-*`
 * theme tokens for all visual properties.
 */
export declare function FileTreeNode({ node, selectedPath, onSelect, depth, enableDrag, maxInitialDepth, }: FileTreeNodeProps): import("react/jsx-runtime").JSX.Element;
//# sourceMappingURL=FileTreeNode.d.ts.map