import * as React from "react";
type Props = {
    /**
     * The initial values of the buttons selected, defaults to null (no
     * selection).
     */
    values: ReadonlyArray<any> | null | undefined;
    /**
     * The set of buttons to display in this MultiButtonGroup.
     */
    buttons: ReadonlyArray<{
        /**
         * the value returned when the button is selected
         */
        value: any;
        /**
         * The content shown within the button, typically a string that gets
         * rendered as the button's display text.
         */
        content: React.ReactNode;
        /**
         * The title-text shown on hover
         */
        title?: string;
    }>;
    /**
     * A function that is provided with the updated set of selected value
     * (which it then is responsible for updating)
     */
    onChange: (values?: any) => unknown;
    /**
     * If false, at least one button must be selected at all times.
     *
     * Defaults to `true`
     */
    allowEmpty?: boolean;
};
type DefaultProps = {
    allowEmpty: Props["allowEmpty"];
    values: Props["values"];
};
/**
 * MultiButtonGroup is an aesthetically pleasing group of buttons,
 * which allows multiple buttons to be selected at the same time.
 *
 * NOTE: This component is almost identical to ./button-group.jsx except that
 * this component allows multiple selection!
 */
declare class MultiButtonGroup extends React.Component<Props> {
    buttonContainerRef: React.RefObject<HTMLDivElement>;
    static defaultProps: DefaultProps;
    focus(): boolean;
    toggleSelect: (arg1?: any) => void;
    render(): React.ReactNode;
}
export default MultiButtonGroup;
