import { default as React } from 'react';
interface DataNodeBase {
    /** Optional identity; falls back to position when omitted. */
    id?: string;
    /** Label shown on the left. */
    term: React.ReactNode;
}
/**
 * A node is one of three shapes: a **leaf** (`value`), a **group**
 * (`children`), or **empty** (neither → em dash). `value` and `children`
 * are mutually exclusive — the union enforces it at the type level.
 */
export type DataNode = DataNodeBase & ({
    value?: React.ReactNode;
    children?: never;
} | {
    value?: never;
    children: DataNode[];
});
export interface DataTreeProps {
    nodes: DataNode[];
    /**
     * Allow nested groups to collapse. Uses native `<details>`, so there's
     * no client-side state — open/closed is owned by the browser. Default off.
     */
    collapsible?: boolean;
    /**
     * Nesting levels open by default when `collapsible` (a group at `depth`
     * is open when `depth < defaultOpenDepth`). Top-level groups are depth 0.
     * Default 1.
     */
    defaultOpenDepth?: number;
    /** Ochre left rule on nested groups instead of the neutral border. Default true. */
    accentRule?: boolean;
    /** Divider line under leaf rows. Default true. */
    rowDividers?: boolean;
    className?: string;
}
/**
 * Recursive term/value renderer for nested data. Owns layout, indentation
 * and dividers; the caller pre-renders every leaf `value`. Renders as a
 * server component — collapsing uses native `<details>`, so there's no
 * `'use client'`.
 */
export declare function DataTree({ nodes, collapsible, defaultOpenDepth, accentRule, rowDividers, className, }: DataTreeProps): React.ReactElement;
export {};
//# sourceMappingURL=DataTree.d.ts.map