import type { SwitchContextType, ISwitchProps, ISwitchThumbProps, ISwitchIconProps } from './Switch.types';
declare const useSwitch: () => SwitchContextType;
/**
* Switch root component with animated tap interactions.
*
* Wraps Base UI `Switch.Root` with a `motion.button` render element,
* providing tap start/end tracking for press animation support on the thumb.
* Supports both controlled and uncontrolled checked state via `useControlledState`.
*
* @param props - Switch props including Base UI root props, motion props, slots, and config
* @returns A switch button element with press tracking
*
* @example
* ```tsx
*
*
*
* ```
*/
declare function Switch({ name, defaultChecked, checked, onCheckedChange, nativeButton, disabled, readOnly, required, inputRef, id, className, slots, config: _config, ...props }: ISwitchProps): import("react/jsx-runtime").JSX.Element;
/**
* SwitchThumb renders the sliding thumb indicator with spring-based layout animation.
*
* Uses Motion `layout` for smooth position transitions between checked/unchecked states.
* Optionally accepts a `pressedAnimation` target applied while the switch is being pressed.
*
* @param props - Thumb props including motion props, pressed animation, and slot overrides
* @returns An animated thumb div element
*
* @example
* ```tsx
*
* ```
*
* @example
* ```tsx
* // Default spring animation
*
* ```
*/
declare function SwitchThumb({ pressedAnimation, transition, className, slots, ...props }: ISwitchThumbProps): import("react/jsx-runtime").JSX.Element;
/**
* SwitchIcon renders an animated icon at a specified position within the switch.
*
* - `left` position: visible when the switch is ON (checked)
* - `right` position: visible when the switch is OFF (unchecked)
* - `thumb` position: always visible on the thumb element
*
* Uses spring-based scale and opacity transitions for smooth show/hide animations.
*
* @param props - Icon props including position, motion props, and slot overrides
* @returns An animated icon container div
*
* @example
* ```tsx
*
*
*
* ```
*
* @example
* ```tsx
*
*
*
* ```
*/
declare function SwitchIcon({ position, transition, className, slots, ...props }: ISwitchIconProps): import("react/jsx-runtime").JSX.Element;
export { Switch, SwitchThumb, SwitchIcon, useSwitch, };
export type { ISwitchProps, ISwitchThumbProps, ISwitchIconProps, ISwitchConfig, SwitchContextType, SwitchIconPosition, SwitchSlot, } from './Switch.types';
export { switchStyles } from './Switch.styles';
//# sourceMappingURL=index.d.ts.map