import { KeyboardEvent, MouseEvent } from 'react'; import { DataTrackingId } from '../../types'; import { ButtonProps } from '../Button/Button'; export type ButtonToggleState = { pressed: boolean; value?: string; }; /** * Props for the ButtonToggle component * @extends Omit */ export type ButtonToggleProps = Omit & { /** * The default pressed(selected) state of the toggle button. * @default false */ defaultChecked?: boolean; /** * The controlled pressed(selected) state of the toggle button. */ checked?: boolean; /** * The value of the toggle button. */ value?: string; /** * Callback for when pressed(selected) changes. */ onChange?: (e: MouseEvent | KeyboardEvent, state: ButtonToggleState) => void; } & /** * Data tracking id */ DataTrackingId; /** * ButtonToggle component for creating toggleable button states. * * Features: * - Supports both controlled and uncontrolled state management * - Toggle state with pressed/selected visual feedback * - Full accessibility support with aria-pressed attribute * - Callback support for state changes * - Supports layout utilities for positioning and spacing * - Inherits all button features except appearance and loading * - Flexible content with text and/or icons * - Keyboard interaction support * - Value association for form-like behavior * - Automatic tracking ID generation for analytics * * @example * console.log('Toggle state:', state.pressed)} * > * Toggle Me * */ export declare const ButtonToggle: import('react').ForwardRefExoticComponent & { /** * The default pressed(selected) state of the toggle button. * @default false */ defaultChecked?: boolean; /** * The controlled pressed(selected) state of the toggle button. */ checked?: boolean; /** * The value of the toggle button. */ value?: string; /** * Callback for when pressed(selected) changes. */ onChange?: (e: MouseEvent | KeyboardEvent, state: ButtonToggleState) => void; } & DataTrackingId & import('react').RefAttributes>;