import { AnchorHTMLAttributes, ButtonHTMLAttributes, ElementType, HTMLAttributes, InputHTMLAttributes, RefObject } from 'react'; import { AriaBaseButtonProps, AriaButtonElementTypeProps, ButtonAria, ButtonProps } from './useButton'; import { DOMAttributes } from '@react-types/shared'; import { ToggleState } from 'react-stately/useToggleState'; export interface ToggleButtonProps extends ButtonProps { /** Whether the element should be selected (controlled). */ isSelected?: boolean; /** Whether the element should be selected (uncontrolled). */ defaultSelected?: boolean; /** Handler that is called when the element's selection state changes. */ onChange?: (isSelected: boolean) => void; } export interface AriaToggleButtonProps extends ToggleButtonProps, Omit, AriaButtonElementTypeProps { } export interface AriaToggleButtonOptions extends Omit, 'children'> { } export interface ToggleButtonAria extends ButtonAria { /** Whether the button is selected. */ isSelected: boolean; /** Whether the button is disabled. */ isDisabled: boolean; } export declare function useToggleButton(props: AriaToggleButtonOptions<'button'>, state: ToggleState, ref: RefObject): ToggleButtonAria>; export declare function useToggleButton(props: AriaToggleButtonOptions<'a'>, state: ToggleState, ref: RefObject): ToggleButtonAria>; export declare function useToggleButton(props: AriaToggleButtonOptions<'div'>, state: ToggleState, ref: RefObject): ToggleButtonAria>; export declare function useToggleButton(props: AriaToggleButtonOptions<'input'>, state: ToggleState, ref: RefObject): ToggleButtonAria>; export declare function useToggleButton(props: AriaToggleButtonOptions<'span'>, state: ToggleState, ref: RefObject): ToggleButtonAria>; export declare function useToggleButton(props: AriaToggleButtonOptions, state: ToggleState, ref: RefObject): ToggleButtonAria;