import * as React from 'react';
import { XButtonGroup } from "./XButtonGroup";
import { IgrXButton } from './igr-x-button';
import { IgrXButtonGroupButtonCollection } from './igr-x-button-group-button-collection';
import { IgrButtonGroupSelectionChangedEventArgs } from './igr-button-group-selection-changed-event-args';
import { ButtonGroupOrientation } from './ButtonGroupOrientation';
import { ControlDisplayDensity } from "igniteui-react-core";
import { BaseControlTheme } from "igniteui-react-core";
import { ButtonGroupDisplayStyle } from './ButtonGroupDisplayStyle';
export declare class IgrXButtonGroup extends React.Component<IIgrXButtonGroupProps> {
    private _container;
    private _initialized;
    private _elRef;
    private _portalManager;
    private _wrapper;
    private _getMainRef;
    private _contentChildrenManager;
    private _updateContentChildren;
    contentButtons: IgrXButton[];
    /**
    * The style mappings actually present in the treemap. Do not directly modify this array.
    * This array's contents can be modified by causing React to reproject the child content.
    * Or adding and removing ranges from the manual ranges collection on the ranges property.
    */
    actualButtons: IgrXButton[];
    private _buttons;
    private _buttonsAdapter;
    /**
     * A collection of manually added style mappings for the treemap.
    */
    get buttons(): IgrXButtonGroupButtonCollection;
    render(): React.DetailedReactHTMLElement<{
        className: string;
        ref: (ref: any) => void;
        children: any[];
    }, any>;
    private requestRender;
    constructor(props: IIgrXButtonGroupProps);
    shouldComponentUpdate(nextProps: any, nextState: any): boolean;
    protected initializeProperties(): void;
    updateStyle(): void;
    destroy(): void;
    componentWillUnmount(): void;
    private _implementation;
    componentDidMount(): void;
    initializeContent(): void;
    protected createImplementation(): XButtonGroup;
    get i(): XButtonGroup;
    private _buttonGroup;
    /**
 * Gets or sets the display style to use for the button.
*/
    get displayType(): ButtonGroupDisplayStyle;
    set displayType(v: ButtonGroupDisplayStyle);
    /**
     * Gets or sets the base built in theme to use for the button group.
    */
    get baseTheme(): BaseControlTheme;
    set baseTheme(v: BaseControlTheme);
    /**
     * Gets or sets the display density to use for the button group.
    */
    get density(): ControlDisplayDensity;
    set density(v: ControlDisplayDensity);
    /**
     * Gets the actual display density to use for the button group.
    */
    get actualDensity(): ControlDisplayDensity;
    set actualDensity(v: ControlDisplayDensity);
    /**
     * Gets the currently selected button indices.
    */
    get selectedIndices(): number[];
    set selectedIndices(v: number[]);
    /**
     * Gets the actual item corner radius for the appropriate corners.
    */
    get actualItemCornerRadius(): number;
    set actualItemCornerRadius(v: number);
    /**
     * Gets the actual item background color.
    */
    get actualItemBackgroundColor(): string;
    set actualItemBackgroundColor(v: string);
    /**
     * Gets the actual item background color.
    */
    get actualItemDisabledBackgroundColor(): string;
    set actualItemDisabledBackgroundColor(v: string);
    /**
     * Gets the actual item text color.
    */
    get actualItemTextColor(): string;
    set actualItemTextColor(v: string);
    /**
     * Gets the actual item text color.
    */
    get actualItemDisabledTextColor(): string;
    set actualItemDisabledTextColor(v: string);
    /**
     * Gets the actual item border color.
    */
    get actualItemBorderColor(): string;
    set actualItemBorderColor(v: string);
    /**
     * Gets the actual item border color.
    */
    get actualItemDisabledBorderColor(): string;
    set actualItemDisabledBorderColor(v: string);
    /**
     * Gets the actual item border width.
    */
    get actualItemBorderWidth(): number;
    set actualItemBorderWidth(v: number);
    /**
     * Gets the actual selected item background color.
    */
    get actualSelectedItemBackgroundColor(): string;
    set actualSelectedItemBackgroundColor(v: string);
    /**
     * Gets the stroke actual selected item text color.
    */
    get actualSelectedItemTextColor(): string;
    set actualSelectedItemTextColor(v: string);
    /**
     * Gets the actual item hovered background color.
    */
    get actualItemHoverBackgroundColor(): string;
    set actualItemHoverBackgroundColor(v: string);
    /**
     * Gets the actual item text color.
    */
    get actualItemHoverTextColor(): string;
    set actualItemHoverTextColor(v: string);
    /**
     * Gets the actual selected item hovered background color.
    */
    get actualSelectedItemHoverBackgroundColor(): string;
    set actualSelectedItemHoverBackgroundColor(v: string);
    /**
     * Gets the actual selected item hovered text color.
    */
    get actualSelectedItemHoverTextColor(): string;
    set actualSelectedItemHoverTextColor(v: string);
    /**
     * Gets or sets the corner radius to use for the appropriate corners for the item buttons.
    */
    get itemCornerRadius(): number;
    set itemCornerRadius(v: number);
    /**
     * Gets or sets the color to use the background of the buttons in the group.
    */
    get itemBackgroundColor(): string;
    set itemBackgroundColor(v: string);
    /**
     * Gets or sets the disabled color to use the background of the buttons in the group.
    */
    get itemDisabledBackgroundColor(): string;
    set itemDisabledBackgroundColor(v: string);
    /**
     * Gets or sets the color to use the text of the buttons in the group.
    */
    get itemTextColor(): string;
    set itemTextColor(v: string);
    /**
     * Gets or sets the disabled color to use the text of the buttons in the group.
    */
    get itemDisabledTextColor(): string;
    set itemDisabledTextColor(v: string);
    /**
     * Gets or sets the color to use the hovered background of the buttons in the group.
    */
    get itemHoverBackgroundColor(): string;
    set itemHoverBackgroundColor(v: string);
    /**
     * Gets or sets the color to use the border of the buttons in the group.
    */
    get itemBorderColor(): string;
    set itemBorderColor(v: string);
    /**
     * Gets or sets the disabled color to use the border of the buttons in the group.
    */
    get itemDisabledBorderColor(): string;
    set itemDisabledBorderColor(v: string);
    /**
     * Gets or sets the border width to use for the buttons in the group.
    */
    get itemBorderWidth(): number;
    set itemBorderWidth(v: number);
    /**
     * Gets or sets the color to use the hovered text of the buttons in the group.
    */
    get itemHoverTextColor(): string;
    set itemHoverTextColor(v: string);
    /**
     * Gets or sets the color to use the background of the buttons in the group that are selected.
    */
    get selectedItemBackgroundColor(): string;
    set selectedItemBackgroundColor(v: string);
    /**
     * Gets or sets the color to use the text of the buttons in the group that are selected.
    */
    get selectedItemTextColor(): string;
    set selectedItemTextColor(v: string);
    /**
     * Gets or sets the color to use the hovered background of the buttons in the group that are selected.
    */
    get selectedItemHoverBackgroundColor(): string;
    set selectedItemHoverBackgroundColor(v: string);
    /**
     * Gets or sets the color to use the hovered text of the buttons in the group that are selected.
    */
    get selectedItemHoverTextColor(): string;
    set selectedItemHoverTextColor(v: string);
    /**
     * Gets or sets the corner radius to use for the appropriate corners for the outlined type item buttons.
    */
    get outlinedItemCornerRadius(): number;
    set outlinedItemCornerRadius(v: number);
    /**
     * Gets or sets the color to use the background of the buttons in the group when type is outlined.
    */
    get outlinedItemBackgroundColor(): string;
    set outlinedItemBackgroundColor(v: string);
    /**
     * Gets or sets the disabled color to use the background of the buttons in the group when type is outlined.
    */
    get outlinedItemDisabledBackgroundColor(): string;
    set outlinedItemDisabledBackgroundColor(v: string);
    /**
     * Gets or sets the color to use the text of the buttons in the group when type is outlined.
    */
    get outlinedItemTextColor(): string;
    set outlinedItemTextColor(v: string);
    /**
     * Gets or sets the disabled color to use the text of the buttons in the group when type is outlined.
    */
    get outlinedItemDisabledTextColor(): string;
    set outlinedItemDisabledTextColor(v: string);
    /**
     * Gets or sets the color to use the hovered background of the buttons in the group when type is outlined.
    */
    get outlinedItemHoverBackgroundColor(): string;
    set outlinedItemHoverBackgroundColor(v: string);
    /**
     * Gets or sets the color to use the border of the buttons in the group when type is outlined.
    */
    get outlinedItemBorderColor(): string;
    set outlinedItemBorderColor(v: string);
    /**
     * Gets or sets the disabled color to use the border of the buttons in the group when type is outlined.
    */
    get outlinedItemDisabledBorderColor(): string;
    set outlinedItemDisabledBorderColor(v: string);
    /**
     * Gets or sets the border width to use for the buttons in the group when type is outlined.
    */
    get outlinedItemBorderWidth(): number;
    set outlinedItemBorderWidth(v: number);
    /**
     * Gets or sets the color to use the hovered text of the buttons in the group when type is outlined.
    */
    get outlinedItemHoverTextColor(): string;
    set outlinedItemHoverTextColor(v: string);
    /**
     * Gets or sets the color to use the background of the buttons in the group that are selected when type is outlined.
    */
    get outlinedSelectedItemBackgroundColor(): string;
    set outlinedSelectedItemBackgroundColor(v: string);
    /**
     * Gets or sets the color to use the text of the buttons in the group that are selected when type is outlined.
    */
    get outlinedSelectedItemTextColor(): string;
    set outlinedSelectedItemTextColor(v: string);
    /**
     * Gets or sets the color to use the hovered background of the buttons in the group that are selected when type is outlined.
    */
    get outlinedSelectedItemHoverBackgroundColor(): string;
    set outlinedSelectedItemHoverBackgroundColor(v: string);
    /**
     * Gets or sets the color to use the hovered text of the buttons in the group that are selected when type is outlined.
    */
    get outlinedSelectedItemHoverTextColor(): string;
    set outlinedSelectedItemHoverTextColor(v: string);
    /**
     * Gets or sets the corner radius to use for the appropriate corners for the flat type item buttons.
    */
    get flatItemCornerRadius(): number;
    set flatItemCornerRadius(v: number);
    /**
     * Gets or sets the color to use the background of the buttons in the group when type is flat.
    */
    get flatItemBackgroundColor(): string;
    set flatItemBackgroundColor(v: string);
    /**
     * Gets or sets the disabled color to use the background of the buttons in the group when type is flat.
    */
    get flatItemDisabledBackgroundColor(): string;
    set flatItemDisabledBackgroundColor(v: string);
    /**
     * Gets or sets the color to use the text of the buttons in the group when type is flat.
    */
    get flatItemTextColor(): string;
    set flatItemTextColor(v: string);
    /**
     * Gets or sets the disabled color to use the text of the buttons in the group when type is flat.
    */
    get flatItemDisabledTextColor(): string;
    set flatItemDisabledTextColor(v: string);
    /**
     * Gets or sets the color to use the hovered background of the buttons in the group when type is flat.
    */
    get flatItemHoverBackgroundColor(): string;
    set flatItemHoverBackgroundColor(v: string);
    /**
     * Gets or sets the color to use the border of the buttons in the group when type is flat.
    */
    get flatItemBorderColor(): string;
    set flatItemBorderColor(v: string);
    /**
     * Gets or sets the disabled color to use the border of the buttons in the group when type is flat.
    */
    get flatItemDisabledBorderColor(): string;
    set flatItemDisabledBorderColor(v: string);
    /**
     * Gets or sets the border width to use for the buttons in the group when type is flat.
    */
    get flatItemBorderWidth(): number;
    set flatItemBorderWidth(v: number);
    /**
     * Gets or sets the color to use the hovered text of the buttons in the group when type is flat.
    */
    get flatItemHoverTextColor(): string;
    set flatItemHoverTextColor(v: string);
    /**
     * Gets or sets the color to use the background of the buttons in the group that are selected when type is flat.
    */
    get flatSelectedItemBackgroundColor(): string;
    set flatSelectedItemBackgroundColor(v: string);
    /**
     * Gets or sets the color to use the text of the buttons in the group that are selected when type is flat.
    */
    get flatSelectedItemTextColor(): string;
    set flatSelectedItemTextColor(v: string);
    /**
     * Gets or sets the color to use the hovered background of the buttons in the group that are selected when type is flat.
    */
    get flatSelectedItemHoverBackgroundColor(): string;
    set flatSelectedItemHoverBackgroundColor(v: string);
    /**
     * Gets or sets the color to use the hovered text of the buttons in the group that are selected when type is flat.
    */
    get flatSelectedItemHoverTextColor(): string;
    set flatSelectedItemHoverTextColor(v: string);
    /**
     * Gets or sets the oreientation to use the button group when type is outlined.
    */
    get orientation(): ButtonGroupOrientation;
    set orientation(v: ButtonGroupOrientation);
    /**
     * Gets or sets the id to use for the button group.
    */
    get id(): string;
    set id(v: string);
    /**
     * Gets or sets whether the checkbox is disabled.
    */
    get disabled(): boolean;
    set disabled(v: boolean);
    /**
     * Gets or sets whether the group supports multi-select.
    */
    get isMultiSelect(): boolean;
    set isMultiSelect(v: boolean);
    findByName(name: string): any;
    protected __p: string;
    protected _hasUserValues: Set<string>;
    protected get hasUserValues(): Set<string>;
    protected __m(propertyName: string): void;
    protected _stylingContainer: any;
    protected _stylingParent: any;
    protected _inStyling: boolean;
    protected _styling(container: any, component: any, parent?: any): void;
    onDetachedFromUI(): void;
    onAttachedToUI(): void;
    /**
     * Exports visual information about the current state of the grid.
    
    */
    exportVisualModel(): any;
    /**
     * Returns a serialized copy of the exported visual model
    
    */
    exportSerializedVisualModel(): string;
    private _selectionChanged;
    private _selectionChanged_wrapped;
    get selectionChanged(): (s: IgrXButtonGroup, e: IgrButtonGroupSelectionChangedEventArgs) => void;
    set selectionChanged(ev: (s: IgrXButtonGroup, e: IgrButtonGroupSelectionChangedEventArgs) => void);
}
export interface IIgrXButtonGroupProps {
    children?: React.ReactNode;
    /**
 * Gets or sets the display style to use for the button.
*/
    displayType?: ButtonGroupDisplayStyle | string;
    /**
     * Gets or sets the base built in theme to use for the button group.
    */
    baseTheme?: BaseControlTheme | string;
    /**
     * Gets or sets the display density to use for the button group.
    */
    density?: ControlDisplayDensity | string;
    /**
     * Gets the actual display density to use for the button group.
    */
    actualDensity?: ControlDisplayDensity | string;
    /**
     * Gets the currently selected button indices.
    */
    selectedIndices?: number[];
    /**
     * Gets the actual item corner radius for the appropriate corners.
    */
    actualItemCornerRadius?: number | string;
    /**
     * Gets the actual item background color.
    */
    actualItemBackgroundColor?: string;
    /**
     * Gets the actual item background color.
    */
    actualItemDisabledBackgroundColor?: string;
    /**
     * Gets the actual item text color.
    */
    actualItemTextColor?: string;
    /**
     * Gets the actual item text color.
    */
    actualItemDisabledTextColor?: string;
    /**
     * Gets the actual item border color.
    */
    actualItemBorderColor?: string;
    /**
     * Gets the actual item border color.
    */
    actualItemDisabledBorderColor?: string;
    /**
     * Gets the actual item border width.
    */
    actualItemBorderWidth?: number | string;
    /**
     * Gets the actual selected item background color.
    */
    actualSelectedItemBackgroundColor?: string;
    /**
     * Gets the stroke actual selected item text color.
    */
    actualSelectedItemTextColor?: string;
    /**
     * Gets the actual item hovered background color.
    */
    actualItemHoverBackgroundColor?: string;
    /**
     * Gets the actual item text color.
    */
    actualItemHoverTextColor?: string;
    /**
     * Gets the actual selected item hovered background color.
    */
    actualSelectedItemHoverBackgroundColor?: string;
    /**
     * Gets the actual selected item hovered text color.
    */
    actualSelectedItemHoverTextColor?: string;
    /**
     * Gets or sets the corner radius to use for the appropriate corners for the item buttons.
    */
    itemCornerRadius?: number | string;
    /**
     * Gets or sets the color to use the background of the buttons in the group.
    */
    itemBackgroundColor?: string;
    /**
     * Gets or sets the disabled color to use the background of the buttons in the group.
    */
    itemDisabledBackgroundColor?: string;
    /**
     * Gets or sets the color to use the text of the buttons in the group.
    */
    itemTextColor?: string;
    /**
     * Gets or sets the disabled color to use the text of the buttons in the group.
    */
    itemDisabledTextColor?: string;
    /**
     * Gets or sets the color to use the hovered background of the buttons in the group.
    */
    itemHoverBackgroundColor?: string;
    /**
     * Gets or sets the color to use the border of the buttons in the group.
    */
    itemBorderColor?: string;
    /**
     * Gets or sets the disabled color to use the border of the buttons in the group.
    */
    itemDisabledBorderColor?: string;
    /**
     * Gets or sets the border width to use for the buttons in the group.
    */
    itemBorderWidth?: number | string;
    /**
     * Gets or sets the color to use the hovered text of the buttons in the group.
    */
    itemHoverTextColor?: string;
    /**
     * Gets or sets the color to use the background of the buttons in the group that are selected.
    */
    selectedItemBackgroundColor?: string;
    /**
     * Gets or sets the color to use the text of the buttons in the group that are selected.
    */
    selectedItemTextColor?: string;
    /**
     * Gets or sets the color to use the hovered background of the buttons in the group that are selected.
    */
    selectedItemHoverBackgroundColor?: string;
    /**
     * Gets or sets the color to use the hovered text of the buttons in the group that are selected.
    */
    selectedItemHoverTextColor?: string;
    /**
     * Gets or sets the corner radius to use for the appropriate corners for the outlined type item buttons.
    */
    outlinedItemCornerRadius?: number | string;
    /**
     * Gets or sets the color to use the background of the buttons in the group when type is outlined.
    */
    outlinedItemBackgroundColor?: string;
    /**
     * Gets or sets the disabled color to use the background of the buttons in the group when type is outlined.
    */
    outlinedItemDisabledBackgroundColor?: string;
    /**
     * Gets or sets the color to use the text of the buttons in the group when type is outlined.
    */
    outlinedItemTextColor?: string;
    /**
     * Gets or sets the disabled color to use the text of the buttons in the group when type is outlined.
    */
    outlinedItemDisabledTextColor?: string;
    /**
     * Gets or sets the color to use the hovered background of the buttons in the group when type is outlined.
    */
    outlinedItemHoverBackgroundColor?: string;
    /**
     * Gets or sets the color to use the border of the buttons in the group when type is outlined.
    */
    outlinedItemBorderColor?: string;
    /**
     * Gets or sets the disabled color to use the border of the buttons in the group when type is outlined.
    */
    outlinedItemDisabledBorderColor?: string;
    /**
     * Gets or sets the border width to use for the buttons in the group when type is outlined.
    */
    outlinedItemBorderWidth?: number | string;
    /**
     * Gets or sets the color to use the hovered text of the buttons in the group when type is outlined.
    */
    outlinedItemHoverTextColor?: string;
    /**
     * Gets or sets the color to use the background of the buttons in the group that are selected when type is outlined.
    */
    outlinedSelectedItemBackgroundColor?: string;
    /**
     * Gets or sets the color to use the text of the buttons in the group that are selected when type is outlined.
    */
    outlinedSelectedItemTextColor?: string;
    /**
     * Gets or sets the color to use the hovered background of the buttons in the group that are selected when type is outlined.
    */
    outlinedSelectedItemHoverBackgroundColor?: string;
    /**
     * Gets or sets the color to use the hovered text of the buttons in the group that are selected when type is outlined.
    */
    outlinedSelectedItemHoverTextColor?: string;
    /**
     * Gets or sets the corner radius to use for the appropriate corners for the flat type item buttons.
    */
    flatItemCornerRadius?: number | string;
    /**
     * Gets or sets the color to use the background of the buttons in the group when type is flat.
    */
    flatItemBackgroundColor?: string;
    /**
     * Gets or sets the disabled color to use the background of the buttons in the group when type is flat.
    */
    flatItemDisabledBackgroundColor?: string;
    /**
     * Gets or sets the color to use the text of the buttons in the group when type is flat.
    */
    flatItemTextColor?: string;
    /**
     * Gets or sets the disabled color to use the text of the buttons in the group when type is flat.
    */
    flatItemDisabledTextColor?: string;
    /**
     * Gets or sets the color to use the hovered background of the buttons in the group when type is flat.
    */
    flatItemHoverBackgroundColor?: string;
    /**
     * Gets or sets the color to use the border of the buttons in the group when type is flat.
    */
    flatItemBorderColor?: string;
    /**
     * Gets or sets the disabled color to use the border of the buttons in the group when type is flat.
    */
    flatItemDisabledBorderColor?: string;
    /**
     * Gets or sets the border width to use for the buttons in the group when type is flat.
    */
    flatItemBorderWidth?: number | string;
    /**
     * Gets or sets the color to use the hovered text of the buttons in the group when type is flat.
    */
    flatItemHoverTextColor?: string;
    /**
     * Gets or sets the color to use the background of the buttons in the group that are selected when type is flat.
    */
    flatSelectedItemBackgroundColor?: string;
    /**
     * Gets or sets the color to use the text of the buttons in the group that are selected when type is flat.
    */
    flatSelectedItemTextColor?: string;
    /**
     * Gets or sets the color to use the hovered background of the buttons in the group that are selected when type is flat.
    */
    flatSelectedItemHoverBackgroundColor?: string;
    /**
     * Gets or sets the color to use the hovered text of the buttons in the group that are selected when type is flat.
    */
    flatSelectedItemHoverTextColor?: string;
    /**
     * Gets or sets the oreientation to use the button group when type is outlined.
    */
    orientation?: ButtonGroupOrientation | string;
    /**
     * Gets or sets the id to use for the button group.
    */
    id?: string;
    /**
     * Gets or sets whether the checkbox is disabled.
    */
    disabled?: boolean | string;
    /**
     * Gets or sets whether the group supports multi-select.
    */
    isMultiSelect?: boolean | string;
    selectionChanged?: (s: IgrXButtonGroup, e: IgrButtonGroupSelectionChangedEventArgs) => void;
}
