import { M4LOverridesStyleRules } from '../../@types/augmentations';
import { SettingsLayoutSlots } from './slots/SettingsLayoutEnum';
import { SETTINGS_LAYOUT_COMPONENT_KEY } from './constants';
import { Theme } from '@mui/material';
import { Sizes, ThemeUserColor } from '@m4l/styles';
import { ThemeSettingsStore } from '@m4l/graphics';
export interface SettingsLayoutProps {
    /**
     * Propiedad que define el ancho del componente.
     */
    width?: number;
    /**
     * Medida de tamaño para el componente.
     */
    size?: Extract<Sizes, 'small' | 'medium'>;
    /**
     * Nombre de clase css.
     */
    className?: string;
    /**
     * Identificador usado para pruebas del componente.
     */
    dataTestId?: string;
    /**
     * Identificador del módulo.
     */
    moduleId?: string;
}
/**
 * Tipo para las ranuras del componente.
 * Este tipo se refiere a las claves dentro de `SettingsLayoutSlots`, que determinan los diferentes elementos
 * estilizados dentro del componente, como el `root`, `backdrop`, etc.
 */
export type SettingsLayoutSlotsType = keyof typeof SettingsLayoutSlots;
/**
 * Combinación de las propiedades del componente y su estado propietario.
 * Este tipo se utiliza para describir el estado completo del componente , incluyendo
 * las propiedades pasadas al componente y el estado calculado.
 */
export interface SettingsLayoutOwnerState extends Pick<ThemeSettingsStore['themeUserSettings'], 'themeDirection'> {
    width: SettingsLayoutProps['width'];
    size: SettingsLayoutProps['size'];
    color?: ThemeUserColor;
    [key: string]: unknown;
}
/**
 * Tipos de estilos para el componente.
 * Esta interfaz extiende las reglas de estilo personalizadas para las ranuras del componente (`SettingsLayoutSlots`)
 * y permite su sobrescritura.
 */
export type SettingsLayoutstyles = M4LOverridesStyleRules<SettingsLayoutSlots, typeof SETTINGS_LAYOUT_COMPONENT_KEY, Theme>;
//# sourceMappingURL=types.d.ts.map