import { default as React, ReactNode } from 'react'; import { BorderColor, ElementDensity, ElementElevation, ElementFocusEffect, ElementFont, ElementHoverEffect, ElementOutline, ElementPlacement, ElementPressedEffect, ElementSelectedEffect, ElementShape, ElementSize, ElementTextPlacement, ElementTouchEffect, SemanticColor } from '../../utils'; /** * Props for the Switch component. * * Low-level boolean control. * * @category Switch */ export interface SwitchProps extends Omit, 'color' | 'size' | 'type'> { /** Border style when outlined. */ border?: ElementOutline; /** Border color override. */ borderColor?: BorderColor; /** Border color when unchecked. */ uncheckedBorderColor?: BorderColor; /** Custom content rendered inside the control. */ children?: ReactNode; /** Additional root class name. */ className?: string; /** Semantic color used for the checked state. */ color?: SemanticColor; /** Semantic color used for the unchecked state. */ uncheckedColor?: SemanticColor; /** Visual density affecting layout spacing. */ density?: ElementDensity; /** Supporting text displayed below the label. */ description?: string; /** Elevation level of the control surface. */ elevation?: ElementElevation; /** Error message text. Overrides description when present. */ error?: string; /** Focus ring color override. */ focusColor?: BorderColor; /** Visual effects applied on focus. */ focusEffects?: ElementFocusEffect[]; /** Font token applied to the label text. */ font?: ElementFont; /** Enables full color rendering for the unchecked state. */ fullColor?: boolean; /** Visual effects applied on hover. */ hoverEffects?: ElementHoverEffect[]; /** Icon rendered when checked. */ icon?: ReactNode; /** DOM id. Auto-generated if not provided. */ id?: string; /** Text label associated with the control. */ label?: string; /** Name attribute forwarded to the input element. */ name?: string; /** Change event handler. */ onChange?: React.ChangeEventHandler; /** Visual effects applied on press. */ pressedEffects?: ElementPressedEffect[]; /** Marks the control as required. Visual only. */ required?: boolean; /** Visual effects applied when checked. */ selectedEffects?: ElementSelectedEffect[]; /** Shape variant of the control. */ shape?: ElementShape; /** Size of the control. */ size?: ElementSize; /** Layout of text relative to the control. */ textPlacement?: ElementTextPlacement; /** Tooltip alignment relative to the control. */ tooltipAlign?: ElementPlacement; /** Touch and click visual effects. */ touchEffects?: ElementTouchEffect[]; /** Border style when unchecked. */ uncheckedBorder?: ElementOutline; /** Icon rendered when unchecked. */ uncheckedIcon?: ReactNode; /** Controlled value forwarded to the input element. */ value?: string; /** Duration of the thumb transition between checked and unchecked states. */ duration?: number; /** Marks the control as read-only. Applies aria-readonly. */ readOnly?: boolean; } /** * Switch control used to toggle a setting on or off. * * Represents an immediate boolean preference. * * @function Switch * @param props Component properties. * * @example * * * @category Switch */ export declare const Switch: React.ForwardRefExoticComponent>;