import { CSSProperties } from 'react';
import { PropagateLoaderSpinnerSlots } from './slots/PropagateLoaderSpinnerEnum';
import { PROPAGATE_LOADER_SPINNER_KEY_COMPONENT } from './constants';
import { Theme } from '@mui/material';
import { Sizes } from '@m4l/styles';
import { M4LOverridesStyleRules } from '../../../../@types/augmentations';
export type PropagateLoaderSpinnerType = keyof typeof PropagateLoaderSpinnerSlots;
/**
 * Propiedades comunes para configurar el loader.
 */
export interface PropagateLoaderSpinnerProps {
    /**
     * Indica si el loader debe mostrarse o no.
     * Por defecto: `true`.
     */
    loading?: boolean;
    /**
     * Color del loader.
     * Puede ser cualquier valor de color válido en CSS.
     */
    color?: string;
    /**
     * Factor de multiplicación de la velocidad del loader.
     * Por defecto: `1`.
     */
    speedMultiplier?: number;
    /**
     * Estilos en línea para sobrescribir los predeterminados del loader.
     */
    cssOverride?: CSSProperties;
    /**
     * Opciones de tamaño del componente.
     */
    size?: Extract<Sizes, 'small' | 'medium'>;
    /**
     * data-testid para pruebas unitarias.
     */
    dataTestId?: string;
    /**
     * Clase CSS para sobrescribir los estilos predeterminados del loader.
     */
    className?: string;
    /**
     * Props adicionales que se pueden pasar al loader.
     */
    [key: string]: unknown;
}
export type PropagateLoaderSpinnerOwnerState = {};
export type PropagateLoaderSpinnerStyles = M4LOverridesStyleRules<PropagateLoaderSpinnerType, typeof PROPAGATE_LOADER_SPINNER_KEY_COMPONENT, Theme>;
//# sourceMappingURL=types.d.ts.map