import { SwitchProps as MUISwitchProps, Theme } from '@mui/material';
import { ComponentPalletColor, Sizes } from '@m4l/styles';
import { M4LOverridesStyleRules } from '../../../../@types/augmentations';
import { SwitchSlots } from './slots/SwitchEnum';
import { SWITCH_KEY_COMPONENT } from './constants';
/** Props for the Switch component. */
export interface SwitchProps extends MUISwitchProps {
    /** Optional label displayed inline next to the switch. */
    label?: string;
    /** Position of the label relative to the switch. Defaults to 'end' (right). */
    labelPlacement?: 'start' | 'end';
    /** Size of the switch. */
    size?: Extract<Sizes, 'small' | 'medium'>;
    /** Color variant. */
    color?: Extract<ComponentPalletColor, 'default'>;
    /** Indicates an error state. */
    error?: boolean;
}
/** Internal owner state used by styled slots. */
export interface SwitchOwnerState {
    /** Whether the switch is checked. */
    checked?: boolean;
    /** Whether the switch is disabled. */
    disabled?: boolean;
    /** Size of the switch. */
    size: Extract<Sizes, 'small' | 'medium'>;
    /** Color variant. */
    color: Extract<ComponentPalletColor, 'default'>;
    /** Whether the switch is in an error state. */
    error?: boolean;
}
/** Union of slot keys for the Switch component. */
export type SwitchSlotsType = keyof typeof SwitchSlots;
/** Style rules type for the Switch component. */
export type SwitchStyles = M4LOverridesStyleRules<SwitchSlotsType, typeof SWITCH_KEY_COMPONENT, Theme>;
//# sourceMappingURL=types.d.ts.map