import { Sizes, ComponentPalletColor } from '@m4l/styles';
import { Theme } from '@mui/material';
import { CircularProgressProps as MUICircularProgressProps } from '@mui/material/CircularProgress';
import { OverridesStyleRules } from '@mui/material/styles/overrides';
import { CircularProgressSlots } from './slots/CircularProgressEnum';
import { CIRCULAR_PROGRESS_KEY_COMPONENT } from './constants';
/**
 * Props del componente `CircularProgress`.
 *
 * Extiende las propiedades del componente de Material-UI (`MUICircularProgressProps`),
 * eliminando las propiedades nativas de HTML mediante `OmitHTMLProps`
 * y omitiendo las propiedades `color` y `size` para redefinirlas con valores personalizados.
 */
export interface CircularProgressProps extends Omit<MUICircularProgressProps, 'color' | 'size'> {
    /**
     * Define el color del componente `CircularProgress`.
     * Este debe ser un valor de la paleta de colores personalizada (`ComponentPalletColor`),
     * restringido actualmente al color `primary`.
     */
    color?: ComponentPalletColor;
    /**
     * Tamaño del componente.
     * Solo se aceptan los valores `small` y `medium`, que representan tamaños predefinidos.
     */
    size?: Extract<Sizes, 'small' | 'medium'>;
    /**
     * Identificador opcional para pruebas unitarias.
     * Este valor puede ser utilizado para localizar el componente en el DOM durante pruebas automatizadas.
     */
    instaceDataTestId?: string;
}
/**
 * Estado propietario del componente `CircularProgress`.
 * Contiene una de las props principales.
 */
export type CircularProgressOwnerState = Pick<CircularProgressProps, 'size' | 'color'>;
/**
 * Define los tipos de `slots` disponibles para el componente `CircularProgress`.
 *
 * Los valores corresponden a las claves definidas en `CircularProgressSlots`.
 */
export type CircularProgressSlotsType = keyof typeof CircularProgressSlots;
/**
 * Estilos aplicables al componente `CircularProgress` utilizando el tema y `slots` personalizados.
 *
 * Basado en las reglas de sobrescritura de Material-UI (`OverridesStyleRules`).
 */
export type CircularProgressStyles = Partial<OverridesStyleRules<CircularProgressSlotsType, typeof CIRCULAR_PROGRESS_KEY_COMPONENT, Theme>> | undefined;
//# sourceMappingURL=types.d.ts.map