import * as React from 'react'; export declare const useDataTable: (inProps?: unknown) => import("@primereact/types/core").HeadlessInstance | undefined; expandedKeys: import("@primereact/types/headless/datatable").ExpandedKeys; page: number; rows: number; first: number; pageCount: number; totalRecords: number; selectionKeys: import("@primereact/types/headless/datatable").SelectionKeys; sortField: string | undefined; sortOrder: import("@primereact/types/headless/datatable").SortOrder | undefined; multiSortMeta: import("@primereact/types/headless/datatable").SortMeta[] | undefined; processedData: Record[]; paginatedData: Record[]; loading: boolean; }; rootProps: { 'data-resizable-columns'?: string | undefined; 'data-scrollable'?: string | undefined; 'data-show-gridlines'?: string | undefined; 'data-striped-rows'?: string | undefined; 'data-size'?: "small" | "large" | undefined; 'data-selection-mode'?: "multiple" | "single" | undefined; 'data-highlight-on-select'?: string | undefined; 'data-row-hover'?: string | undefined; 'data-loading'?: string | undefined; 'data-scope': string; 'data-part': string; ref: (el: HTMLElement | null) => void; }; tableContainerProps: { 'data-scope': string; 'data-part': string; style: React.CSSProperties; }; tableProps: { 'data-scope': string; 'data-part': string; role: "table" | "treegrid"; }; getRowKey: (item: Record, index: number) => string | number; sort: { onSort: (event: React.SyntheticEvent, field: string, multiSort?: boolean) => void; isSorted: (field: string) => boolean; getSortOrder: (field: string) => import("@primereact/types/headless/datatable").SortOrder; getSortIndex: (field: string) => number; getSortProps: (field: string) => { role: "button"; tabIndex: number; 'aria-label': string; 'aria-sort': "none" | "ascending" | "descending"; onClick: (event: React.MouseEvent | React.KeyboardEvent) => void; onKeyDown: (event: React.KeyboardEvent) => void; 'data-sorted': string; 'data-sort-order': string; 'data-scope': string; 'data-part': string; } | { role: "button"; tabIndex: number; 'aria-label': string; 'aria-sort': "none" | "ascending" | "descending"; onClick: (event: React.MouseEvent | React.KeyboardEvent) => void; onKeyDown: (event: React.KeyboardEvent) => void; 'data-unsorted': string; 'data-scope': string; 'data-part': string; }; }; selection: { isSelected: (key: string | number) => boolean; isPartiallySelected: (key: string | number) => boolean; toggleSelection: (event: React.SyntheticEvent, key: string | number, mode: "checkbox" | "radio" | "single") => void; toggleAll: (event: React.SyntheticEvent) => void; isAllSelected: () => boolean; isSomeSelected: () => boolean; onRowClick: (event: React.MouseEvent, key: string | number) => void; }; pagination: { page: number; rows: number; first: number; pageCount: number; totalRecords: number; onPageChange: (event: React.SyntheticEvent, newPage: number) => void; onRowsChange: (event: React.SyntheticEvent, newRows: number) => void; }; expansion: { isExpanded: (key: string | number) => boolean; toggleExpansion: (event: React.SyntheticEvent, key: string | number) => void; getRowToggleProps: (rowKey: string | number | undefined, item?: Record | null) => { isSpacer: true; spacerProps: { 'data-scope': string; 'data-part': string; 'data-tree-level': number; style: React.CSSProperties; }; rootProps?: undefined; isExpanded?: undefined; } | { isSpacer: false; rootProps: Record; isExpanded: boolean; spacerProps?: undefined; }; }; columnReorder: { onDragStart: (event: React.DragEvent, columnIndex: number) => void; onDragOver: (event: React.DragEvent, columnIndex: number) => void; onDragEnter: (event: React.DragEvent, columnIndex: number) => void; onDragLeave: (_event: React.DragEvent) => void; onDrop: (event: React.DragEvent, columnIndex: number) => void; onDragEnd: (_event: React.DragEvent) => void; registerDropTarget: (columnIndex: number, notify: (state: { side: "start" | "end"; } | null) => void) => () => void; getColumnReorderHandleProps: () => { 'data-scope': string; 'data-part': string; style: React.CSSProperties; }; getColumnReorderIndicatorUpProps: () => { 'data-scope': string; 'data-part': string; ref: (el: HTMLElement | null) => void; }; getColumnReorderIndicatorDownProps: () => { 'data-scope': string; 'data-part': string; ref: (el: HTMLElement | null) => void; }; }; columnResize: { onResizeStart: (event: React.PointerEvent, columnIndex: number, headerCell: HTMLElement) => void; registerIndicator: (el: HTMLElement | null) => void; getColumnResizerProps: (columnIndex?: number) => { 'data-scope': string; 'data-part': string; style: React.CSSProperties; onPointerDown: (event: React.PointerEvent) => void; }; }; editing: { isEditing: (key: string | number) => boolean; startRowEdit: (event: React.SyntheticEvent, key: string | number, rowData?: Record, rowIndex?: number) => void; saveRowEdit: (event: React.SyntheticEvent, key: string | number, rowData?: Record, newData?: Record, rowIndex?: number) => void; cancelRowEdit: (event: React.SyntheticEvent, key: string | number, rowData?: Record, rowIndex?: number) => void; startCellEdit: (event: React.SyntheticEvent, rowIndex: number, field: string, rowKey?: string | number) => void; completeCellEdit: (event: import("@primereact/types/headless/datatable").UseDataTableCellEditEvent) => boolean; cancelCellEdit: (event: React.SyntheticEvent, rowIndex: number, field: string) => void; isCellEditing: (rowIndex: number, field: string, rowKey?: string | number) => boolean; getCellEditorRootProps: (params: { rowIndex: number; field: string; rowKey?: string | number; isEditing: boolean; }) => { 'data-editing'?: string | undefined; 'data-row-key'?: string | undefined; 'data-scope': string; 'data-part': string; 'data-row-index': string; 'data-field': string; }; getRowEditorInitProps: () => { 'data-scope': string; 'data-part': string; type: "button"; 'aria-label': string; }; getRowEditorSaveProps: () => { 'data-scope': string; 'data-part': string; type: "button"; 'aria-label': string; }; getRowEditorCancelProps: () => { 'data-scope': string; 'data-part': string; type: "button"; 'aria-label': string; }; }; filter: { setFieldFilter: (event: React.SyntheticEvent, field: string, meta: import(".").ColumnFilterMeta) => void; clearFieldFilter: (event: React.SyntheticEvent, field: string) => void; clearAllFilters: (event: React.SyntheticEvent) => void; addConstraint: (event: React.SyntheticEvent, field: string, defaultMatchMode?: import(".").FilterMatchMode) => void; removeConstraint: (event: React.SyntheticEvent, field: string, index: number) => void; setOperator: (event: React.SyntheticEvent, field: string, operator: "and" | "or") => void; setConstraintValue: (event: React.SyntheticEvent, field: string, index: number, value: unknown, matchMode?: import(".").FilterMatchMode) => void; setConstraintMatchMode: (event: React.SyntheticEvent, field: string, index: number, matchMode: import(".").FilterMatchMode) => void; hasFilterValue: (field: string) => boolean; isFiltered: () => boolean; getFieldFilterMeta: (field: string) => import(".").ColumnFilterMeta; getFilterRootProps: (field: string, display?: "row" | "menu") => { 'data-active'?: string | undefined; 'data-scope': string; 'data-part': string; 'data-display': "menu" | "row"; }; }; rowReorder: { onDragStart: (event: React.DragEvent, rowIndex: number) => void; onDragOver: (event: React.DragEvent, rowIndex: number) => void; onDragEnter: (event: React.DragEvent, rowIndex: number) => void; onDragLeave: (event: React.DragEvent) => void; onDrop: (event: React.DragEvent) => void; onDragEnd: () => void; getRowReorderHandleProps: () => { 'data-scope': string; 'data-part': string; style: React.CSSProperties; onPointerDown: (event: React.PointerEvent) => void; onPointerUp: (event: React.PointerEvent) => void; }; }; exportData: { exportCSV: (exportOptions?: import("./features").DataTableExportOptions) => void; }; keyboard: { getRowTabIndex: (index: number) => number; onRowKeyDown: (event: React.KeyboardEvent, index: number) => void; focusRow: (tbody: HTMLElement | null, index: number) => void; }; }>;