import React from 'react'; import { FlintSwitch as FlintSwitchElement } from '@getufy/flint-ui/switch/flint-switch'; export interface FlintSwitchChangeDetail { checked: boolean; } /** * A Switch component for toggling settings. * * @slot icon-on - Optional icon to show when the switch is ON. * @slot icon-off - Optional icon to show when the switch is OFF. * @slot (default) - Optional label content (used when the `label` prop is not set). */ export interface FlintSwitchProps extends Omit, 'defaultChecked'> { /** Current checked state (controlled). When set, the component reflects this state and does not manage its own state. */ checked?: boolean; /** Disables the switch and prevents interaction. */ disabled?: boolean; /** Marks the switch as required for form validation. */ required?: boolean; /** * Size of the switch control. * Allowed values: 'sm' | 'md' | 'lg' */ size?: 'sm' | 'md' | 'lg'; /** Visible label text displayed next to the switch. */ label?: string; /** Form field name used when submitting form data. */ name?: string; /** Value submitted with form data when checked. */ value?: string; /** Initial checked state (uncontrolled). Only used on first render; ignored after mount. */ defaultChecked?: boolean; /** Accessible label for screen readers when no visible label is provided. */ ariaLabel?: string | null; /** * Dispatched when the switch state changes. Detail: `{ checked: boolean }` * DOM event: `flint-switch-change` */ onFlintSwitchChange?: (event: CustomEvent) => void; } export declare const FlintSwitch: React.ForwardRefExoticComponent>;