/**
 * Copyright IBM Corp. 2022, 2022
 *
 * This source code is licensed under the Apache-2.0 license found in the
 * LICENSE file in the root directory of this source tree.
 */
import { Size, Theme } from './types';
import { Column } from 'react-table';
import React from 'react';
export interface DataSpreadsheetProps {
    /**
     * Specifies the cell height
     */
    cellSize?: Size;
    /**
     * Provide an optional class to be applied to the containing node.
     */
    className?: string;
    /**
     * The data that will build the column headers
     */
    columns?: readonly Column<object>[];
    /**
     * Disable column swapping, default false
     */
    disableColumnSwapping?: boolean;
    /**
     * The spreadsheet data that will be rendered in the body of the spreadsheet component
     */
    data?: readonly object[];
    /**
     * Sets the number of empty rows to be created when there is no data provided
     */
    defaultEmptyRowCount?: number;
    /**
     * Check if has custom row header component attached
     */
    hasCustomRowHeader?: boolean;
    /**
     * The spreadsheet id
     */
    id?: number | string;
    /**
     * The event handler that is called when the active cell changes
     */
    onActiveCellChange?: () => void;
    /**
     * Callback for columns after being dragged
     */
    onColDrag?: ({ ...args }: {
        [x: string]: any;
    }) => void;
    /**
     * The setter fn for the data prop
     */
    onDataUpdate?: ({ ...args }: {
        [x: string]: any;
    }) => void;
    /**
     * The event handler that is called when the selection area values change
     */
    onSelectionAreaChange?: () => void;
    /**
     * Read-only table
     */
    readOnlyTable?: boolean;
    /**
     * Position of the custom row numbering component
     */
    renderRowHeaderDirection?: 'left' | 'right';
    /**
     * Component next to numbering rows
     */
    renderRowHeader?: (index: number) => any[];
    /**
     * The aria label applied to the Select all button
     */
    selectAllAriaLabel: string;
    /**
     * The aria label applied to the Data spreadsheet component
     */
    spreadsheetAriaLabel: string;
    /**
     * The theme the DataSpreadsheet should use (only used to render active cell/selection area colors on dark theme)
     */
    theme?: Theme;
    /**
     * The total number of columns to be initially visible, additional columns will be rendered and
     * visible via horizontal scrollbar
     */
    totalVisibleColumns?: number;
}
/**
 * DataSpreadsheet: used to organize and display large amounts of structured data, separated by columns and rows in a grid-like format.
 */
export declare let DataSpreadsheet: React.ForwardRefExoticComponent<DataSpreadsheetProps & React.RefAttributes<HTMLDivElement>>;
