import { HelperErrorProps } from '../../HelperError';
import { LabelProps } from '../../Label/types';
import { SelectProps } from '../../extended/mui/Select/types';
import { Sizes } from '@m4l/styles';
import { M4LOverridesStyleRules } from '../../../@types/augmentations';
import { RHFSelectEnum } from './slots/RHFSelectEnum';
import { RHFSELECT_COMPONENT_KEY } from './constants';
import { Theme } from '@mui/material';
/**
 * Props para el componente RHFSelect, incluye las propedades esceciales del Select, Label,
 * así como las propiedades requeridas por react hook form.
 */
export interface RHFSelectProps<T extends string | number, Multiple extends boolean | undefined = false> extends Pick<SelectProps<T, Multiple>, 'options' | 'placeholder' | 'variant' | 'multiple'>, Omit<LabelProps, 'dataTestId' | 'error' | 'children' | 'className' | 'disabled' | 'size' | 'skeletonWidth'> {
    /**
     * Identificador para el manejo de campos en react hook form.
     */
    name: string;
    /**
     * Tamaño del componente
     */
    size?: Extract<Sizes, 'small' | 'medium'>;
    /**
     * Propiedad que deshabilita la interacción del componente.
     */
    disabled?: boolean;
    /**
     * Nombre de clase CSS personalizada que se aplicará al componente.
     */
    className?: string;
    /**
     * Propiedad usada para facilitar la identificación del componente en las pruebas.
     */
    dataTestId?: string;
    /**
     * medida de anchura para el esqueleto del label
     */
    labelSkeletonWidth?: LabelProps['skeletonWidth'];
    /**
     * medida de anchura para el esqueleto del helperError
     */
    helperErrorSkeletonWidth?: HelperErrorProps['skeletonWidth'];
}
/**
 * Define el estado del componente `RHFSelect`.
 */
export interface RHFSelectOwnerState {
}
/**
 * Define las claves del objeto `RHFSelectSlotsType`, que se utilizan para
 * hacer referencia a los diferentes slots disponibles para estilizar el componente
 * `RHFSelect`.
 */
export type RHFSelectSlotsType = keyof typeof RHFSelectEnum;
/**
 * Define los estilos del componente `RHFNumberInputStyles`. Permite la personalización parcial
 * de las reglas de estilo mediante `OverridesStyleRules`.
 *
 * Puede ser parcial o estar indefinido.
 */
export type RHFSelectStyles = M4LOverridesStyleRules<RHFSelectEnum, typeof RHFSELECT_COMPONENT_KEY, Theme>;
//# sourceMappingURL=types.d.ts.map