import type { DataEventDetail } from './DataEvent.js'; import type { Column as DataTableColumn, ColumnCollection as DataTableColumnCollection, Row as DataTableRow, RowObject as DataTableRowObject } from './DataTable.js'; import type DataTableOptions from './DataTableOptions.js'; /** * Class to manage columns and rows in a table structure. It provides methods * to add, remove, and manipulate columns and rows, as well as to retrieve data * from specific cells. * * @class * @name Highcharts.DataTable * * @param {Highcharts.DataTableOptions} [options] * Options to initialize the new DataTable instance. */ declare class DataTableCore { /** * Constructs an instance of the DataTable class. * * @example * const dataTable = new Highcharts.DataTableCore({ * columns: { * year: [2020, 2021, 2022, 2023], * cost: [11, 13, 12, 14], * revenue: [12, 15, 14, 18] * } * }); * * @param {Highcharts.DataTableOptions} [options] * Options to initialize the new DataTable instance. */ constructor(options?: DataTableOptions); readonly autoId: boolean; readonly columns: Record; readonly id: string; modified?: this; rowCount: number; protected versionTag: string; /** * Applies a row count to the table by setting the `rowCount` property and * adjusting the length of all columns. * * @private * @param {number} rowCount The new row count. */ protected applyRowCount(rowCount: number): void; /** * Delete rows. Simplified version of the full * `DataTable.deleteRows` method. * * @param {number} rowIndex * The start row index * * @param {number} [rowCount=1] * The number of rows to delete * * @return {void} * * @emits #afterDeleteRows */ deleteRows(rowIndex: number, rowCount?: number): void; /** * Fetches the given column by the canonical column name. Simplified version * of the full `DataTable.getRow` method, always returning by reference. * * @param {string} columnId * Name of the column to get. * * @return {Highcharts.DataTableColumn|undefined} * A copy of the column, or `undefined` if not found. */ getColumn(columnId: string, asReference?: true): (DataTableColumn | undefined); /** * Retrieves all or the given columns. Simplified version of the full * `DataTable.getColumns` method, always returning by reference. * * @param {Array} [columnIds] * Column ids to retrieve. * * @return {Highcharts.DataTableColumnCollection} * Collection of columns. If a requested column was not found, it is * `undefined`. */ getColumns(columnIds?: Array, asReference?: true): DataTableColumnCollection; /** * Retrieves the row at a given index. * * @param {number} rowIndex * Row index to retrieve. First row has index 0. * * @param {Array} [columnIds] * Column names to retrieve. * * @return {Record|undefined} * Returns the row values, or `undefined` if not found. */ getRow(rowIndex: number, columnIds?: Array): (DataTableRow | undefined); /** * Sets cell values for a column. Will insert a new column, if not found. * * @param {string} columnId * Column name to set. * * @param {Highcharts.DataTableColumn} [column] * Values to set in the column. * * @param {number} [rowIndex] * Index of the first row to change. (Default: 0) * * @param {Record} [eventDetail] * Custom information for pending events. * * @emits #setColumns * @emits #afterSetColumns */ setColumn(columnId: string, column?: DataTableColumn, rowIndex?: number, eventDetail?: DataEventDetail): void; /** * Sets cell values for multiple columns. Will insert new columns, if not * found. Simplified version of the full `DataTableCore.setColumns`, limited * to full replacement of the columns (undefined `rowIndex`). * * @param {Highcharts.DataTableColumnCollection} columns * Columns as a collection, where the keys are the column names. * * @param {number} [rowIndex] * Index of the first row to change. Ignored in the `DataTableCore`, as it * always replaces the full column. * * @param {Record} [eventDetail] * Custom information for pending events. * * @emits #setColumns * @emits #afterSetColumns */ setColumns(columns: DataTableColumnCollection, rowIndex?: number, eventDetail?: DataEventDetail): void; /** * Sets cell values of a row. Will insert a new row if no index was * provided, or if the index is higher than the total number of table rows. * A simplified version of the full `DateTable.setRow`, limited to objects. * * @param {Record} row * Cell values to set. * * @param {number} [rowIndex] * Index of the row to set. Leave `undefined` to add as a new row. * * @param {boolean} [insert] * Whether to insert the row at the given index, or to overwrite the row. * * @param {Record} [eventDetail] * Custom information for pending events. * * @emits #afterSetRows */ setRow(row: DataTableRowObject, rowIndex?: number, insert?: boolean, eventDetail?: DataEventDetail): void; /** * Returns the modified (clone) or the original data table if the modified * one does not exist. * * @return {Highcharts.DataTableCore} * The modified (clone) or the original data table. */ getModified(): this; } export default DataTableCore;