import { CellState, ColumnConfig } from '../../../shared/types/table';
/**
 * Genera las clases base para una celda de tabla según su estado
 * Mantiene consistencia en bordes, fondos y transiciones
 *
 * @param state - Estado actual de la celda (default, hover, selected, disabled, focused)
 * @param additionalClasses - Clases adicionales opcionales
 * @param locked - Si la columna está bloqueada (sticky)
 * @param isLastLocked - Si es la última columna bloqueada (para mostrar borde separador)
 * @param isEditing - Si la celda está en modo edición (para mantener color de texto original)
 * @param isRowEditing - Si la fila completa está en modo edición (para aplicar bordes brand)
 * @param isActionsColumn - Si es columna de acciones
 * @param hasFixedWidth - Si la columna tiene width definido; entonces la celda usa overflow-hidden para que el contenido se adapte (wrap/truncate)
 * @returns String con todas las clases CSS combinadas
 */
export declare const getTableCellClasses: (state?: CellState, additionalClasses?: string, locked?: boolean, isLastLocked?: boolean, isEditing?: boolean, isRowEditing?: boolean, isActionsColumn?: boolean, hasFixedWidth?: boolean) => string;
/** Ancho por defecto de la columna de acciones cuando no tiene width definido (evita que se colapse). */
export declare const DEFAULT_ACTIONS_COLUMN_WIDTH = 120;
/** Ancho mínimo por defecto para columnas sin width definido (ancho automático). Evita que se compriman y que se superpongan a la columna de acciones; fuerza scroll horizontal cuando el viewport es pequeño. */
export declare const DEFAULT_MIN_COLUMN_WIDTH = 80;
/** Ancho mínimo de la columna flex (maxWidth: 'auto' sin width). Es la que toma el espacio restante y puede truncar; con este mínimo se evita que quede demasiado estrecha. */
export declare const DEFAULT_FLEX_COLUMN_MIN_WIDTH = 300;
/**
 * Genera las propiedades comunes para una celda (data-attributes y estilos)
 * Mantiene consistencia en anchos y identificadores
 *
 * @param column - Configuración de la columna
 * @param stickyLeftOffset - Offset izquierdo para columnas bloqueadas (default: 0)
 * @returns Objeto con data-attributes y estilos para la celda
 */
export declare const getTableCellProps: (column: ColumnConfig, stickyLeft?: number, stickyRight?: number, isActionsColumn?: boolean, hasColumnMaxWidthAuto?: boolean) => {
    'data-column-id': string;
    style: {
        right?: string | undefined;
        left?: string | undefined;
        width: string | number | undefined;
        minWidth: number;
        maxWidth: number | undefined;
    };
};
/**
 * Indica si la columna es la "flex" (maxWidth: 'auto' sin width): toma el espacio restante y debe poder truncar con ellipsis.
 */
export declare const isFlexColumn: (column: ColumnConfig, hasColumnMaxWidthAuto?: boolean) => boolean;
/**
 * Devuelve el ancho mínimo efectivo en píxeles de una columna (para calcular el minWidth total de la tabla).
 */
export declare const getColumnMinWidthPx: (column: ColumnConfig, isActionsColumn?: boolean, hasColumnMaxWidthAuto?: boolean) => number;
/**
 * Genera las clases de alineamiento del contenido de una celda
 *
 * @param contentAlign - Alineamiento del contenido ('left' | 'right' | 'center')
 * @returns String con la clase de alineamiento correspondiente
 */
export declare const getContentAlignClass: (contentAlign?: "left" | "right" | "center") => string;
/**
 * Handler genérico para el click de una celda
 * Ejecuta el callback de focus sin detener la propagación
 * para permitir que onRowClick funcione correctamente
 */
export declare const handleCellClick: (_e: React.MouseEvent, onCellFocus?: () => void) => void;
//# sourceMappingURL=cellStyles.d.ts.map