import { Theme } from '@mui/material';
import { DeepKeyOf } from '../../../utils/types';
import { Sizes } from '@m4l/styles';
import { IconsFormatterSlots } from './slots/IconsFormatterEnum';
import { M4LOverridesStyleRules } from '../../../@types/augmentations';
import { ICONS_FORMATTER_KEY_COMPONENT } from './constants';
import { IconProps } from '@m4l/base';
export type IconColorDeep = DeepKeyOf<Theme['vars']['palette']> | string;
/**
 * Configuración para un solo icono
 */
export interface IconConfig {
    /**
     * URL o ruta de la imagen del icono
     */
    iconUrl: IconProps['src'];
    /**
     * Tooltip que se mostrará al pasar el cursor sobre el icono
     */
    tooltip?: string;
    /**
     * Función que se ejecuta al hacer clic en el icono
     */
    onClick?: () => void;
    /**
     * Data test id para testing
     */
    dataTestId?: string;
    /**
     * Controla la visibilidad del icono
     */
    visible?: boolean;
    /**
     * Color del icono
     */
    color?: IconColorDeep;
    /**
     * Tamaño del icono
     */
    size?: Extract<Sizes, 'small' | 'medium'>;
}
/**
 * Props para el IconsFormatter
 */
export interface IconsFormatterProps {
    /**
     * Array de configuraciones de iconos (puede ser uno o varios)
     */
    icons: IconConfig | IconConfig[];
}
/**
 * Owner state del IconsFormatter
 */
export type IconsFormatterOwnerState = {};
/**
 * Tipos de slots disponibles para el TagFormatter
 */
export type IconsFormatterSlotsType = IconsFormatterSlots;
/**
 * Estilos aplicables al TagFormatter
 */
export type IconsFormatterStyles = M4LOverridesStyleRules<IconsFormatterSlotsType, typeof ICONS_FORMATTER_KEY_COMPONENT, Theme>;
//# sourceMappingURL=types.d.ts.map