/**
 * @file TreeList.tsx
 * @input Uses React, StyleX, theme tokens, TreeListItem, TreeListTypes, useTreeFocus
 * @output Exports TreeList component, TreeListProps type
 * @position Core implementation; consumed by index.ts
 *
 * SYNC: When modified, update these files to stay in sync:
 * - /packages/core/src/TreeList/TreeList.doc.mjs
 * - /packages/core/src/TreeList/index.ts
 * - /apps/storybook/stories/TreeList.stories.tsx
 * - /packages/cli/assets/templates/blocks/components/TreeList/ (showcase blocks)
 */
import { type ReactNode } from 'react';
import type { BaseProps } from '../BaseProps';
import type { TreeListItemData, TreeListDensity, TreeListVariant } from './TreeListTypes';
export { type TreeListDensity, type TreeListVariant } from './TreeListTypes';
export interface TreeListProps extends BaseProps<HTMLDivElement> {
    /** Ref forwarded to the root element */
    ref?: React.Ref<HTMLDivElement>;
    /**
     * Tree items as a recursive data structure.
     * Each item can have nested `children` arrays.
     */
    items: TreeListItemData[];
    /**
     * Spacing density for tree list items.
     * - 'compact': Tighter spacing for dense UIs
     * - 'balanced': Standard spacing
     * - 'spacious': Extra spacing for readability
     * @default 'balanced'
     */
    density?: TreeListDensity;
    /**
     * Visual treatment of the hierarchy guide (connector) lines.
     * - `lineGuides`: connector lines between parent and child rows
     * - `noGuides`: no connector lines; indentation alone conveys nesting
     *
     * Orthogonal to `density` (which controls spacing) — the two compose.
     * @default 'lineGuides'
     */
    variant?: TreeListVariant;
    /**
     * Header content rendered above the tree list.
     * Semantically associated via aria-labelledby.
     */
    header?: ReactNode;
    /**
     * Test ID for testing frameworks.
     */
    'data-testid'?: string;
}
/**
 * A data-driven tree list component for rendering hierarchical data.
 *
 * Accepts an `items` array of recursive config objects. Expansion state is
 * managed internally — seed initial state by setting `isExpanded: true` on
 * individual items in the data.
 * Positional data (nestedLevel, isLast, ancestorsIsLast) is computed during
 * rendering — no context, no cloneElement, no force-update mechanism.
 *
 * @example
 * ```
 * <TreeList
 *   items={[
 *     { id: 'src', label: 'src', isExpanded: true, children: [
 *       { id: 'app', label: 'App.tsx' },
 *       { id: 'index', label: 'index.tsx' },
 *     ]},
 *     { id: 'pkg', label: 'package.json' },
 *   ]}
 * />
 * ```
 */
export declare function TreeList({ items, density, variant, header, xstyle, className, style, 'data-testid': testId, ref, }: TreeListProps): import("react").JSX.Element;
export declare namespace TreeList {
    var displayName: string;
}
//# sourceMappingURL=TreeList.d.ts.map