import { TablePaginationProps } from '../TablePagination/tablePagination';
import { Column, RowActions, TableActions, TableSorting, Translate } from './types/base';
import { CustomColumn } from './types/customColumn';
export interface TableProps<T = unknown> extends Omit<React.HTMLAttributes<HTMLTableElement>, "translate"> {
    data: T[];
    columns?: Column<T>[];
    translate?: Translate;
    customColumns?: {
        [K in keyof T]?: CustomColumn<T[K]>;
    };
    onDeleteRows?: (rows: T[]) => void;
    title?: string;
    description?: React.ReactNode;
    actions?: TableActions[];
    customActions?: React.ReactNode;
    leftActions?: TableActions[];
    rowActions?: RowActions<T>[];
    columnOrder?: (keyof T)[];
    pagination?: TablePaginationProps;
    noDataComponent?: React.ReactNode;
    hiddenColumns?: (keyof T)[];
    sorting?: TableSorting<T>;
    loading?: boolean;
    onRowClick?: (row: T) => void;
    onCreate?: () => void;
    customRowActions?: (row: T) => React.ReactNode;
    canSelectRows?: boolean;
    /**
     * @name testId
     * @description Optional data-testid attribute for the table element for E2E testing.
     * Individual rows will get `{testId}-row-{index}` or `{testId}-row-{id}` if data has id property.
     * @default undefined
     * @type string
     * @example
     * ```tsx
     * <Table testId="locations-table" data={locations} />
     * // Table: <table data-testid="locations-table" />
     * // Rows: <tr data-testid="locations-table-row-0" data-row-id="abc-123" />
     * ```
     */
    testId?: string;
    /**
     * @name getRowId
     * @description Function to extract unique ID from row data for generating test IDs.
     * If not provided, falls back to row.id or row index.
     * @default (row) => row.id ?? index
     * @type (row: T) => string | number
     * @example
     * ```tsx
     * <Table getRowId={(location) => location.locationId} data={locations} testId="locations-table" />
     * // Rows will have: <tr data-testid="locations-table-row-123" />
     * ```
     */
    getRowId?: (row: T) => string | number;
}
export declare const Table: <T>({ data, leftActions, title, description, customColumns, translate, onDeleteRows, actions, customActions, rowActions, customRowActions, className, pagination, noDataComponent, hiddenColumns, sorting, loading, onRowClick, onCreate, columnOrder, canSelectRows, testId, getRowId, }: TableProps<T>) => import("react/jsx-runtime").JSX.Element;
//# sourceMappingURL=Table.d.ts.map