import type { Page } from '../../lib/pages-service.js';
import type { PageTreeRow } from '../../lib/pages-tree.js';
/**
 * Tree-mode table for the Pages list ("Pages (tree version)" design):
 * nested parent/child rows with indentation (24px per level), a 20×20
 * expand chevron that rotates -90° when collapsed, 56px rows, and hover
 * actions (labeled Edit + Add sub-page / Duplicate / Delete icons).
 *
 * When `flattened` is true (search or status filter active) every match
 * renders at depth 0 and expand state is ignored — the caller passes
 * pre-flattened rows, this component just skips the leaf spacers' tree
 * semantics.
 *
 * Drag-reparent: rows can be dragged (grip handle) and dropped onto
 * another row to become its child. There is intentionally no "drop to
 * make top-level" zone — with `parentPageId` cleared, the tree falls back
 * to path-prefix derivation, which would silently re-nest most pages, so
 * un-nesting stays an editor operation. Disabled while flattened.
 */
interface PagesTreeTableProps {
    rows: PageTreeRow[];
    loading: boolean;
    error: string | null;
    /** true when search/status filters flattened the tree */
    flattened: boolean;
    selected: Set<string>;
    expanded: Set<string>;
    onToggleExpand: (id: string) => void;
    onToggleSelect: (id: string) => void;
    onToggleAll: (checked: boolean) => void;
    onOpen: (page: Page) => void;
    onAddSubPage: (page: Page) => void;
    onDuplicate: (page: Page) => void;
    onDelete: (page: Page) => void;
    /** Drop handler: `source` becomes a child of `targetParent`. */
    onReparent: (sourceId: string, targetParentId: string) => void;
    /** Validity gate for a drop (cycle/self/no-op checks live in the caller). */
    canReparent: (sourceId: string, targetParentId: string) => boolean;
    onRetry: () => void;
    onClearFilters: () => void;
    onNewPage: () => void;
}
export declare function PagesTreeTable({ rows, loading, error, flattened, selected, expanded, onToggleExpand, onToggleSelect, onToggleAll, onOpen, onAddSubPage, onDuplicate, onDelete, onReparent, canReparent, onRetry, onClearFilters, onNewPage, }: PagesTreeTableProps): import("react/jsx-runtime").JSX.Element;
export {};
//# sourceMappingURL=PagesTreeTable.d.ts.map