import { ButtonProps } from './main';
import { ReactRef } from '@flexi-ui/react-utils';
import { ButtonGroupVariantProps } from '@flexi-ui/theme';
import { HTMLFlexiUIProps, PropGetter } from '@flexi-ui/system';
interface Props extends HTMLFlexiUIProps, ButtonGroupVariantProps {
    /**
     * Ref to the DOM node.
     */
    ref?: ReactRef<HTMLDivElement | null>;
    /**
     * Whether the buttons are disabled.
     * @default false
     */
    isDisabled?: ButtonProps['isDisabled'];
}
export type ContextType = {
    size?: ButtonProps['size'];
    color?: ButtonProps['color'];
    variant?: ButtonProps['variant'];
    radius?: ButtonProps['radius'];
    isDisabled?: ButtonProps['isDisabled'];
    disableAnimation?: ButtonProps['disableAnimation'];
    disableRipple?: ButtonProps['disableRipple'];
    isIconOnly?: ButtonProps['isIconOnly'];
    fullWidth?: boolean;
};
export type UseButtonGroupProps = Props & Partial<Pick<ButtonProps, 'size' | 'color' | 'radius' | 'variant' | 'isIconOnly' | 'disableAnimation' | 'disableRipple'>>;
export declare function useButtonGroup(originalProps: UseButtonGroupProps): {
    Component: import('@flexi-ui/system').As<any>;
    children: import('react').ReactNode;
    domRef: import('react').RefObject<HTMLDivElement | null>;
    context: ContextType;
    classNames: string;
    getButtonGroupProps: PropGetter;
};
export type UseButtonGroupReturn = ReturnType<typeof useButtonGroup>;
export {};
