import { Column, RowsChangeData } from 'react-data-grid';
import { Maybe } from '@m4l/core';
import { ListViewConfig, RowKey } from '../../../../types';
/**
 * Props para el componente ListRow.
 * Mismo tipado que CardRowProps (mismas props, mismos tipos); solo el tipo de customRender viene de ListViewConfig.
 */
export interface ListRowProps<TRow, TKey extends RowKey = RowKey> {
    /**
     * Fila que se mostrará en la fila de lista
     */
    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 (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>;
    /**
     * Custom render configuration for the row
     */
    customRender?: Extract<ListViewConfig<TRow>, {
        customRender: unknown;
    }>['customRender'];
    /**
     * Whether the row is checked
     */
    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;
    /**
     * Indica si se debe mostrar el botón de expansión (detalle)
     * @default true
     */
    showExpandButton?: boolean;
    /**
     * Opcional. Cuando se proporciona, el botón de expansión llama a esta función en lugar de abrir el modal de detalle.
     */
    onExpandClick?: (row: TRow) => void;
}
//# sourceMappingURL=types.d.ts.map