/**
* Switch — Studio's Switch is built on `@radix-ui/react-switch`; here it's
* re-expressed on a native `` (full a11y
* for free) styled as a track + thumb, keeping Studio's exact sizes and
* transitions. Self-contained, no radix. Accepts the native API plus an
* optional radix-style `onCheckedChange`. Plus `SwitchField`.
*
* @module react/components/ui/switch
*/
import * as React from "react";
import { type VariantProps } from "./cva.js";
declare const switchTrackVariants: (props?: ({
size?: "md" | "lg" | "sm" | null | undefined;
} & {
class?: import("../../../utils/clsx.js").ClassValue;
className?: import("../../../utils/clsx.js").ClassValue;
}) | undefined) => string;
/** Props accepted by ``. */
export interface SwitchProps extends Omit, "type" | "size">, VariantProps {
/** Radix-style convenience callback fired with the next checked state. */
onCheckedChange?: (checked: boolean) => void;
ref?: React.Ref;
}
/** A toggle switch. */
export declare function Switch({ className, size, onChange, onCheckedChange, ref, ...props }: SwitchProps): React.ReactElement;
/** Props accepted by ``. */
export interface SwitchFieldProps extends SwitchProps {
label: React.ReactNode;
description?: string;
}
/** A switch with a label + optional description, label-left / switch-right. */
export declare function SwitchField({ label, description, id, ref, ...props }: SwitchFieldProps): React.ReactElement;
export { switchTrackVariants };
//# sourceMappingURL=switch.d.ts.map