import { ObservableMap } from 'mobx';
import Record from './Record';
export default class Group {
    readonly name: string | symbol;
    parentName?: string | symbol;
    readonly value: any;
    parentValue?: any;
    records: Record[];
    readonly totalRecords: Record[];
    subGroups: Group[];
    subHGroups?: Set<Group>;
    readonly parentGroup?: Group | undefined;
    readonly index: number;
    state?: ObservableMap<string, any>;
    children?: Group[] | undefined;
    parent?: Group | undefined;
    get isExpanded(): boolean;
    set isExpanded(isExpanded: boolean);
    get level(): number;
    get expandedRecords(): Record[];
    constructor(name: string | symbol, index: number, value?: any, parentGroup?: Group);
    getState(key: string): any;
    setState(key: string, value: any): ObservableMap<any, any> | undefined;
    mergeState(newState: ObservableMap<string, any>): void;
}
