import { CSSProperties, ReactNode, Ref } from 'react'; import { FormValidator } from '../../services/formValidation/index.js'; import { SlotClassNames, SlotStyles, HtmlProps } from '../types/slots.types.js'; export type SwitchSlots = 'track' | 'thumb' | 'label'; export interface SwitchProps extends Omit { label?: string; selected?: boolean; onToggle?: (isToggled: boolean, event?: React.MouseEvent | React.KeyboardEvent) => void; /** Applied to the root wrapper element */ className?: string; style?: CSSProperties; disabled?: boolean; title?: string; tabIndex?: number; formValidator?: FormValidator | null; children?: ReactNode; /** Ref to the root element. */ ref?: Ref; classNames?: SlotClassNames; styles?: SlotStyles; }