import ColumnDef from "../../types/ColumnDef"; import { ColumnEditorConfig } from "../../types/ColumnEditorConfig"; import { IconsConfig } from "../../types/IconsConfig"; import { FlattenedHeader, HoveredSeparator } from "./columnEditorUtils"; import { ColumnVisibilityState } from "../../types/ColumnVisibilityTypes"; import { PanelSection } from "../pinnedColumnUtils"; export interface CreateColumnEditorRowOptions { allHeaders: ColumnDef[]; clearHoverSeparator?: () => void; depth: number; doesAnyHeaderHaveChildren: boolean; draggingRow: FlattenedHeader | null; getDraggingRow?: () => FlattenedHeader | null; getHoveredSeparator?: () => HoveredSeparator; expandedHeaders: Set; flattenedHeaders: FlattenedHeader[]; forceExpanded: boolean; header: ColumnDef; hoveredSeparator: HoveredSeparator; panelSection?: PanelSection; rowIndex: number; setDraggingRow: (row: FlattenedHeader | null) => void; setExpandedHeaders: (headers: Set) => void; setHoveredSeparator: (value: HoveredSeparator) => void; columnEditorConfig: ColumnEditorConfig; /** Resolved table icons; `icons.drag` overrides the default column-editor drag handle. */ icons?: IconsConfig; essentialAccessors?: ReadonlySet; headers: ColumnDef[]; setHeaders: (headers: ColumnDef[]) => void; onColumnVisibilityChange?: (state: ColumnVisibilityState) => void; onColumnOrderChange?: (headers: ColumnDef[]) => void; /** When set (e.g. after expand toggle), used with updateExpandIconState so the chevron animates like table cells. */ previousExpandedHeaders?: ReadonlySet; } export interface CreateColumnEditorRowResult { fragment: DocumentFragment; /** Run after the row fragment is connected to the document (e.g. listEl.appendChild). */ scheduleExpandIconAnimation?: () => void; } export declare const createColumnEditorRow: (options: CreateColumnEditorRowOptions) => CreateColumnEditorRowResult;