import { type ChangeEvent, Component, type ReactElement, type RefObject } from 'react'; import { type DraggableLocation, type DragStart, type DropResult } from '@hello-pangea/dnd'; import { DraggableItemList, type Range, type RenderItemProps } from '@deephaven/components'; import { type SortDirection } from '@deephaven/jsapi-utils'; import memoize from 'memoizee'; import './RollupRows.scss'; import type { dh } from '@deephaven/jsapi-types'; import type IrisGridModel from '../IrisGridModel'; import { type ColumnName } from '../CommonTypes'; export interface UIRollupConfig { columns: ColumnName[]; showConstituents: boolean; showNonAggregatedColumns: boolean; includeDescriptions: true; } interface RollupRowsProps { model: IrisGridModel; onChange: (rollupConfig: UIRollupConfig) => void; config: UIRollupConfig | null; } interface RollupRowsState { ungroupedSelectedRanges: readonly Range[]; columns: ColumnName[]; groupedSelectedRanges: readonly Range[]; searchFilter: string; showConstituents: boolean; showNonAggregatedColumns: boolean; dragSource: DraggableLocation | null; sort: SortDirection; } declare class RollupRows extends Component { static SORT: Readonly<{ ASCENDING: "ASC"; DESCENDING: "DESC"; }>; static defaultProps: { config: null; onChange: () => void; }; static renderColumn({ item, isClone, selectedCount, }: RenderItemProps & { isClone?: boolean; selectedCount?: number; }): ReactElement; static addGroupings(currentGroupings: string[], newGroupings: string[], index?: number): string[]; static isGroupable(column: dh.Column): boolean; constructor(props: RollupRowsProps); componentDidUpdate(prevProps: RollupRowsProps, prevState: RollupRowsState): void; componentWillUnmount(): void; ungroupedList: RefObject>; groupedList: RefObject>; handleSearchChange(event: ChangeEvent): void; handleSortAscending(): void; handleSortDescending(): void; resetSelection(): void; search: import("lodash").DebouncedFunc<(searchFilter: string) => void>; handleDragStart(e: DragStart): void; handleDragEnd(e: DropResult): void; handleUngroupedSelect(itemIndex: number): void; handleUngroupedSelectionChange(ungroupedSelectedRanges: readonly Range[]): void; handleGroupedSelectionChange(groupedSelectedRanges: readonly Range[]): void; handleDeleteClicked(index: number): void; handleShowConstituentsChange(): void; handleShowNonAggregatedColumnsChange(): void; updateFromConfig(): void; sendChange(): void; getCachedUngroupedColumns: ((columns: readonly dh.Column[], groupedColumns: readonly ColumnName[]) => readonly dh.Column[]) & memoize.Memoized<(columns: readonly dh.Column[], groupedColumns: readonly ColumnName[]) => readonly dh.Column[]>; getCachedSortedColumns: ((columns: readonly dh.Column[], sort?: SortDirection) => readonly dh.Column[]) & memoize.Memoized<(columns: readonly dh.Column[], sort?: SortDirection) => readonly dh.Column[]>; getUngroupedColumns(): readonly dh.Column[]; getSortedUngroupedColumns(): readonly dh.Column[]; renderGroupedItem({ item, itemIndex, isClone, selectedCount, }: RenderItemProps & { isClone?: boolean; selectedCount?: number; }): ReactElement; render(): ReactElement; } export default RollupRows; //# sourceMappingURL=RollupRows.d.ts.map