import { IButtonProps } from '../Button/Button';
import React from 'react';
import { StandardProps } from '../../util/component-types';
export interface IButtonGroupState {
    selectedIndices: number[];
}
export interface IButtonGroupProps extends StandardProps {
    /** A function that is called with the index of the child button clicked. */
    onSelect: (selectedIndex: number, { event, props }: {
        event: React.MouseEvent;
        props: IButtonProps;
    }) => void;
    /** An array of currently selected \`ButtonGroup.Button\`s indices. You can
    also pass the prop \`isActive\` to individual \`ButtonGroup.Button\`
    components. */
    selectedIndices: number[];
}
declare class ButtonGroup extends React.Component<IButtonGroupProps, IButtonGroupState> {
    static displayName: string;
    static peek: {
        description: string;
        categories: string[];
        madeFrom: string[];
    };
    static Button: {
        (_props: Partial<import("../../util/component-types").Overwrite<React.DetailedHTMLProps<React.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, import("../Button/Button").IButtonPropsRaw>>): null;
        displayName: string;
        peek: {
            description: string;
        };
    };
    static reducers: {
        onSelect(state: IButtonGroupState | undefined, index: number): IButtonGroupState;
    };
    static defaultProps: {
        onSelect: (...args: any[]) => void;
        selectedIndices: never[];
    };
    static propTypes: {
        onSelect: any;
        className: any;
        children: any;
        selectedIndices: any;
    };
    handleSelect: ({ event, props: childProps, }: {
        event: React.MouseEvent<HTMLButtonElement>;
        props: IButtonProps;
    }) => void;
    render(): JSX.Element;
}
declare const _default: typeof ButtonGroup & import("../../util/state-management").IHybridComponent<IButtonGroupProps, IButtonGroupState>;
export default _default;
export { ButtonGroup as ButtonGroupDumb };
