/// <reference types="react" />
import * as React from 'react';
import { BaseComponent, IClassNames } from '../../Utilities';
import { IGroupedList, IGroupedListProps, IGroup, IGroupedListStyleProps, IGroupedListStyles } from './GroupedList.types';
import { ScrollToMode } from '../../List';
import { SelectionMode } from '../../utilities/selection/index';
export declare const getClassNames: (getStyles?: ((props: IGroupedListStyleProps) => Partial<IGroupedListStyles>) | Partial<IGroupedListStyles> | undefined, styleProps?: IGroupedListStyleProps | undefined) => IClassNames<IGroupedListStyles>;
export interface IGroupedListState {
    lastWidth?: number;
    lastSelectionMode?: SelectionMode;
    groups?: IGroup[];
}
export declare class GroupedListBase extends BaseComponent<IGroupedListProps, IGroupedListState> implements IGroupedList {
    static defaultProps: {
        selectionMode: SelectionMode;
        isHeaderVisible: boolean;
        groupProps: {};
    };
    refs: {
        [key: string]: React.ReactInstance;
    };
    private _classNames;
    private _list;
    private _isSomeGroupExpanded;
    constructor(props: IGroupedListProps);
    scrollToIndex(index: number, measureItem?: (itemIndex: number) => number, scrollToMode?: ScrollToMode): void;
    getStartItemIndexInView(): number;
    componentWillReceiveProps(newProps: IGroupedListProps): void;
    render(): JSX.Element;
    forceUpdate(): void;
    toggleCollapseAll(allCollapsed: boolean): void;
    private _renderGroup;
    private _returnOne();
    private _getPageHeight;
    private _getGroupKey(group, index);
    private _getGroupNestingDepth();
    private _onToggleCollapse;
    private _onToggleSelectGroup;
    private _forceListUpdates(groups?);
    private _onToggleSummarize;
    private _getPageSpecification;
    private _computeIsSomeGroupExpanded(groups);
    private _updateIsSomeGroupExpanded();
}
