import { default as React } from 'react';
import { TableRpcResultSelectRecord, TableRpcResultSelectDTO, RelationalDatabaseSchemaTable, TableRpc } from '@kottster/common';
export interface TableColumn {
    /** Column name to be displayed in the table */
    label?: string;
    /** Column name in the database table */
    column?: string;
    columns?: string[];
    /** Custom width for the column */
    width?: number;
    /** Custom render function for the column */
    render?: (row: TableRpcResultSelectRecord) => any;
    /** Key of the linked item in `linked` config */
    linkedKey?: string;
    /** Index of the column in the table */
    position?: number;
}
interface TableRowProps {
    columns: TableColumn[];
    record: TableRpcResultSelectRecord;
    selected?: boolean;
    checkboxSelected?: boolean;
    canOpen?: boolean;
    canOpenLinkedRecord?: boolean;
    canUpdate?: boolean;
    canDelete?: boolean;
    canSelect?: boolean;
    canSelectCheckbox?: boolean;
    onClickOpen?: () => void;
    onClickUpdate?: () => void;
    onClickDelete?: () => void;
    onClickSelect?: () => void;
    onClickCheckboxSelect?: (selected: boolean) => void;
    onClickViewLinkedRecords?: (columnIndex: number) => void;
    onClickViewLinkedRecord?: (columnIndex: number, primaryKeyValue: string) => void;
    tableSchema?: RelationalDatabaseSchemaTable;
    selectData: TableRpcResultSelectDTO;
    linked: TableRpc['linked'];
    actionsColumnWithShadow?: boolean;
    columnWidths?: Record<string, number>;
}
export declare function TableRow({ columns, record, selected, checkboxSelected, canOpen, canUpdate, canDelete, canSelect, canSelectCheckbox, canOpenLinkedRecord, onClickOpen, onClickUpdate, onClickDelete, onClickSelect, onClickCheckboxSelect, onClickViewLinkedRecords, onClickViewLinkedRecord, tableSchema, linked, selectData, actionsColumnWithShadow, columnWidths, }: TableRowProps): React.JSX.Element;
export {};
