import type { Ref, ReactNode, ReactElement, ComponentType } from 'react';
import type { BaseProps, ForwardProps, NoChildrenProp } from '../../types';
export interface DefaultRowData {
    id: string | number;
}
export interface ColumnProps<RowData extends DefaultRowData = DefaultRowData> {
    /** Render cell content for a column with a component or by passing a property key on the row object to serve as an accessor. */
    renderer: ComponentType<RowData> | keyof RowData;
    /** The visual label for the column. */
    label: string;
    /**
     * The text alignment of the column header and the row contents for the column.
     * @default 'left'
     */
    align?: 'left' | 'center' | 'right';
    /**
     * If true, this column will not wrap text on overflow.
     * @default false
     */
    noWrap?: boolean;
}
export interface TableProps<RowData extends DefaultRowData = DefaultRowData> extends BaseProps, NoChildrenProp {
    /** The column headers that will structure the Table. */
    columns: ColumnProps<RowData>[];
    /**
     * The content of the Table, represented as an array of objects with key value pairs.
     * @default []
     */
    data?: RowData[];
    /**
     * Should the data rows highlight when the mouse hovers over them.
     * @default false
     */
    hoverHighlight?: boolean;
    /**
     * Indicates if the data to populate the Table is still loading.
     * @default false
     */
    loading?: boolean;
    /** A message to be displayed when Table data is loading. */
    loadingMessage?: string;
    /** The title that will render above the Table if provided. */
    title?: ReactNode;
    /** Ref for the wrapping element. */
    ref?: Ref<HTMLTableElement>;
}
export declare const StyledTableWrapper: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, {}, never>;
declare const Table: <RowData extends DefaultRowData = DefaultRowData>(props: TableProps<RowData> & ForwardProps) => ReactElement | null;
export default Table;
//# sourceMappingURL=Table.d.ts.map