import * as React from 'react';
import { GenericHTMLProps } from '../utils/types.js';
export declare function useToggle(parameters: useToggle.Parameters): useToggle.ReturnValue;
export declare namespace useToggle {
    interface Parameters {
        buttonRef?: React.Ref<HTMLElement>;
        /**
         * Whether the toggle button is currently active.
         */
        pressed?: boolean;
        /**
         * The default pressed state. Use when the component is not controlled.
         * @default false
         */
        defaultPressed?: boolean;
        /**
         * Whether the component should ignore user interaction.
         * @default false
         */
        disabled: boolean;
        /**
         * Callback fired when the pressed state is changed.
         *
         * @param {boolean} pressed The new pressed state.
         * @param {Event} event The corresponding event that initiated the change.
         */
        onPressedChange: (pressed: boolean, event: Event) => void;
        /**
         * State setter for toggle group value when used in a toggle group
         */
        setGroupValue: (newValue: string, nextPressed: boolean, event: Event) => void;
        /**
         * A unique string that identifies the component when used
         * inside a ToggleGroup.
         */
        value: string;
    }
    interface ReturnValue {
        /**
         * Resolver for the root slot's props.
         * @param externalProps props for the root slot.
         * @returns props that should be spread on the root slot.
         */
        getRootProps: (externalProps?: GenericHTMLProps) => GenericHTMLProps;
        /**
         * Whether the component should ignore user interaction.
         */
        disabled: boolean;
        /**
         * Whether the toggle button is currently active.
         */
        pressed: boolean;
    }
}
