/**
* @fileoverview Toggle — two-state button with pressed/unpressed styling, size variants, and outline mode.
* @module packages/ui/components/ui/toggle
* @layer core
*
* @component
* @example
* import { Toggle } from '@saasflare/ui';
*
*
*
*/
import * as React from "react";
import { type VariantProps } from "class-variance-authority";
import * as TogglePrimitive from "@radix-ui/react-toggle";
import { type SaasflareComponentProps } from "../../providers";
/**
* Toggle variant definitions (cva): `variant` (default | outline) × `size`
* (sm | md | lg). Consumed by {@link Toggle} and shared with ToggleGroupItem
* so grouped items match standalone toggles.
*/
declare const toggleVariants: (props?: ({
variant?: "outline" | "default" | null | undefined;
size?: "sm" | "md" | "lg" | null | undefined;
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
/**
* Props for {@link Toggle}.
*
* Extends the Radix Toggle root props with {@link SaasflareComponentProps},
* so `surface`, `radius`, `animated`, and `iconWeight` can be supplied
* per-instance or inherited from .
*/
interface ToggleProps extends Omit, keyof SaasflareComponentProps>, Omit, "size">, SaasflareComponentProps {
/** Visual size. (`"default"` is a deprecated alias for `"md"`.) */
size?: VariantProps["size"] | "default";
}
/**
* Two-state button that switches between pressed and unpressed — e.g. toolbar
* formatting controls like bold or italic. Icon-only usage requires an
* `aria-label` for an accessible name.
*
* @component
* @layer core
*
* @example
*
*
*
*/
declare function Toggle({ className, variant, size, surface, radius, animated, iconWeight, ...props }: ToggleProps): import("react/jsx-runtime").JSX.Element;
export { Toggle, toggleVariants, type ToggleProps };