import { type ComponentType, type ReactNode } from 'react'; import type { CustomCellRendererProps } from 'ag-grid-react'; /** Private marker written onto the synthetic detail node's data. */ export declare const EXPANDED_ROW_MARKER = "__dsDetailOf"; /** Row class stamped on the synthetic detail row (styled in ag-grid-theme.css). */ export declare const EXPANDED_ROW_CLASS = "ds-data-table-expanded-row"; export type ExpandedRowDetail = TData & { [EXPANDED_ROW_MARKER]: string; }; /** * True when `data` is the synthetic detail node DataTable interleaves * beneath the expanded row. Custom export / iteration code that walks * `api.forEachNode*` should skip these. */ export declare function isExpandedRowDetail(data: TData | null | undefined): data is ExpandedRowDetail; /** Row id AG Grid sees for the detail node beneath `parentId`. */ export declare function expandedRowDetailId(parentId: string): string; /** * True when a `row-id` read off the DOM belongs to the synthetic detail * row rather than a record. The DOM-side twin of `isExpandedRowDetail`. */ export declare function isExpandedRowDetailId(rowId: string): boolean; /** Build the synthetic node: the parent's values plus the marker. */ export declare function seedExpandedRowDetail(parent: TData, parentId: string): ExpandedRowDetail; export interface ExpandedRowContextValue { renderExpandedRow: ((row: TData) => ReactNode) | undefined; onExpandedRowChange: ((id: string | null) => void) | undefined; /** The one open row — the renderer hands its original object to `renderExpandedRow`. */ expanded: { id: string; row: TData; } | null; /** Measured detail heights by detail row id; served back through `getRowHeight`. */ heights: Map; /** Consumer's own full-width renderer, honoured for non-detail full-width rows. */ fallbackRenderer: ComponentType> | undefined; } export declare const ExpandedRowContext: import("react").Context | null>; /** * `fullWidthCellRenderer` for the synthetic detail node. Measures its own * content (Community has no auto-height for full-width rows) and pushes * the height into the node. Escape — on the grid-focused row or anywhere * inside the surface — asks the consumer to close; Enter on the row moves * focus into the content. */ export declare function ExpandedRowRenderer(props: CustomCellRendererProps): import("react/jsx-runtime").JSX.Element | null; //# sourceMappingURL=expanded-row-renderer.d.ts.map