import { Switch as SwitchPrimitives } from "@base-ui/react/switch";
import { VoidFunc } from "../../../fd-toolbox/functions/internal-getter-setter-functions";
/**
 * Props of {@link Switch}
 *
 * @see {@link https:/ui.shadcn.com/docs/components/switch ShadCN Switch} — the base component
 */
export interface SwitchProps {
    id?: string;
    name?: string;
    className?: string;
    /** Text displayed to the right of the toggle.*/
    label: string;
    /** Stores the current state of the switch. Managed by the parent component. */
    checked: boolean;
    /** Disables the toggle, making it inactive.*/
    disabled?: boolean;
    /** Universal change handler */
    onCheckedChange?: VoidFunc<boolean>;
    /** Makes the switch read-only. */
    readOnly?: boolean;
}
/**
 * Advanced switch component with label
 *
 * @param SwitchProps {@link SwitchProps}
 *
 * Based on {@link https:/ui.shadcn.com/docs/components/switch Switch}
 *
 * @example
 * ```tsx
 * function Example() {
 *     const [isChecked, setIsChecked] = useState(false);
 *
 *   return (
 *     <Switch
 *       label="Enable notifications"
 *       checked={isChecked}
 *       onCheckedChange={setIsChecked}
 *     />
 *   );
 * }
 * ```
 */
export declare function Switch({ className, label, id, name, checked, disabled, readOnly, onCheckedChange, ref, }: SwitchProps & {
    ref?: React.Ref<React.ComponentRef<typeof SwitchPrimitives.Root>>;
}): import("react").JSX.Element;
export declare namespace Switch {
    var displayName: string;
}
