import { Column, RowsChangeData } from 'react-data-grid';
import { CardsViewConfig, RowKey } from '../../../../types';
import { Maybe } from '@m4l/core';
/**
 * Props para el componente CardRow
 */
export interface CardRowProps<TRow, TKey extends RowKey = RowKey> {
    /**
     * Fila que se mostrará en la tarjeta
     */
    row: TRow;
    /**
     * Array completo de todas las filas (necesario para reconstruir el array al editar)
     */
    rows: readonly TRow[];
    /**
     * Índice de la fila actual en el array de filas
     */
    rowIndex: number;
    /**
     * Columnas que se mostrarán en la tarjeta (procesadas, filtradas por visibilidad)
     */
    columns: readonly Column<TRow, any>[];
    /**
     * Columnas originales sin filtrar (para el modal de detalle)
     */
    originalColumns: readonly Column<TRow, any>[];
    /**
     * Función que devuelve la clave de la fila
     */
    rowKeyGetter: (row: TRow) => TKey;
    /**
     * Filas seleccionadas actualmente
     */
    selectedRows?: ReadonlySet<TKey>;
    /**
     * Función para manejar el cambio de filas seleccionadas
     */
    onSelectedRowsChange?: (mapRowsSelected: ReadonlySet<TKey>) => void;
    /**
     * Función para manejar cambios en las filas (para editores)
     */
    onRowsChange?: Maybe<(rows: TRow[], data: RowsChangeData<TRow, any>) => void>;
    /**
     * Indica si se debe renderizar el contenido personalizado de la tarjeta
     */
    customRender?: CardsViewConfig<TRow>['customRender'];
    /**
     * Altura mínima de la tarjeta
     */
    minHeight: number;
    /**
     * Indica si la fila está chequeada
     */
    isChecked: boolean;
    /**
     * Indica si se debe mostrar el checkbox para checkedRows
     */
    showCheckbox: boolean;
    /**
     * Filas chequeadas actualmente
     */
    checkedRows?: ReadonlySet<TKey>;
    /**
     * Función para manejar el cambio de filas chequeadas
     */
    onCheckedRowsChange?: (mapRowsChecked: ReadonlySet<TKey>) => void;
    /**
     * Función para abrir el modal de detalle de la fila
     */
    onOpenDetail: (row: TRow) => void;
    /**
     * When true, shows the expand (details) button in the card header.
     * @default true
     */
    showExpandButton?: boolean;
    /**
     * Optional custom handler when the expand button is clicked. When provided, called instead of opening the detail modal.
     */
    onExpandClick?: (row: TRow) => void;
}
//# sourceMappingURL=types.d.ts.map