import { M4LOverridesStyleRules } from '../../@types/augmentations';
import { ActionsGroupSlots } from './slots/ActionsGroupEnum';
import { ACTIONS_GROUP_KEY_COMPONENT } from './constants';
import { Theme } from '@mui/material';
import { Sizes } from '@m4l/styles';
export type ActionsGroupValueType = string | number | null;
export interface ActionGroupItem<T extends ActionsGroupValueType> {
    id: T;
    label: string;
    iconUrl: string;
    onClick?: (item: T) => void;
    disabled?: boolean;
}
export interface ActionsGroupProps<T extends ActionsGroupValueType> {
    /**
     * Indica si el grupo de acciones está deshabilitado.
     */
    disabled?: boolean;
    /**
     * Clase personalizada para el grupo de acciones.
     */
    className?: string;
    /**
     * Etiqueta accesible para el grupo (role toolbar).
     */
    ariaLabel?: string;
    /**
     * ID de elemento que etiqueta al grupo (alternativa a ariaLabel).
     */
    ariaLabelledBy?: string;
    /**
     * Item seleccionado.
     */
    value: T;
    /**
     * Función que se ejecuta cuando se selecciona una acción.
     */
    onChange: (newValue: T) => void;
    /**
     * Tamaño del grupo de acciones.
     */
    size?: Extract<Sizes, 'small' | 'medium'>;
    /**
     * Lista de acciones para el grupo.
     */
    actions: ActionGroupItem<T>[];
    /**
     * Variante del grupo de acciones.
     */
    variant?: 'vertical' | 'horizontal';
}
export type ActionsGroupSlotsType = keyof typeof ActionsGroupSlots;
export type ActionsGroupOwnerState = {
    size?: Extract<Sizes, 'small' | 'medium'>;
    disabled?: boolean;
    variant?: 'vertical' | 'horizontal';
    itemSelected?: boolean;
    itemDisabled?: boolean;
};
export type ActionsGroupStyles = M4LOverridesStyleRules<ActionsGroupSlotsType, typeof ACTIONS_GROUP_KEY_COMPONENT, Theme>;
//# sourceMappingURL=types.d.ts.map