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;