import { Theme } from '@mui/material';
import { OverridesStyleRules } from '@mui/material/styles/overrides';
import { ToggleableProps } from '../../../../hocs/withToggle/types';
import { IconButtonProps } from '../IconButton/types';
import { TOGGLE_ICON_BUTTON_KEY_COMPONENT } from './constants';
import { ToggleIconButtonSlots } from './slots';
/**
 * Enumerado de slots para el componente ToggleIconButton.
 */
export type ToggleIconButtonSlotsType = keyof typeof ToggleIconButtonSlots;
/**
 * Props para el componente ToggleIconButton.
 * Extiende las propiedades originales de IconButton y Toggleable.
 */
export interface ToggleIconButtonProps extends Omit<IconButtonProps, 'onClick' | 'variant' | 'onToggle'>, ToggleableProps {
    /** Valor de la variante del componente. */
    variant?: 'text' | 'outline';
    /** dataTestId para el componente. */
    dataTestId?: string;
}
/**
 * Estado del propietario del componente ToggleIconButton.
 */
export interface ToggleIconButtonOwnerState extends Record<string, unknown> {
    disabled?: boolean;
    /** Indica si el valor es verdadero o falso. */
    isToggled?: boolean;
    /** Valor de la variante del componente. */
    variant?: 'text' | 'outline';
}
/**
 * Estilos personalizados para el componente ToggleIconButton.
 */
export type ToggleIconButtonStyles = Partial<OverridesStyleRules<ToggleIconButtonSlotsType, typeof TOGGLE_ICON_BUTTON_KEY_COMPONENT, Theme>>;
//# sourceMappingURL=types.d.ts.map