/**
 * @license chowa v1.1.3
 *
 * Copyright (c) Chowa Techonlogies Co.,Ltd.(http://www.chowa.cn).
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */
import * as React from 'react';
import { MenuItempProps } from './menu-item';
import { MenuGroupProps } from './menu-group';
import { MenuSubmenuProps } from './menu-submenu';
export interface CollapseManager {
    [parentKey: string]: number[];
}
export interface Extras {
    icon: React.ReactNode;
    text: React.ReactNode;
    hasWrapper: boolean;
}
export interface Item extends MenuItempProps {
    tier: number;
    type: 'item';
    content: React.ReactNode;
    extras: Extras;
}
export interface Group extends MenuGroupProps {
    tier: number;
    key: React.ReactText;
    type: 'group';
    data: Data;
}
export interface Submenu extends MenuSubmenuProps {
    tier: number;
    key: React.ReactText;
    type: 'submenu';
    inSubmenu: boolean;
    parentKey: string;
    collapseKey: number;
    data: Data;
    extras: Extras;
}
export declare type Record = Item | Group | Submenu;
export declare type Data = Record[];
export declare const tierSpace = 22;
export declare function computedIconAndText(children: React.ReactNode): {
    icon: React.ReactNode;
    text: React.ReactNode;
    hasWrapper: boolean;
};
export declare function transformReactNodeToData(children: React.ReactNode, tier?: number, inSubmenu?: boolean, parentKey?: string): Data;
export declare function hasActiveRecord(data: Data, activeIndex: React.ReactText): any;
export declare function initCollapseManager(data: Data, accordion: boolean, activeIndex: React.ReactText): CollapseManager;
export declare function isActiveCollpase(manager: CollapseManager, parentKey: string, collapseKey: number): boolean;
export declare function cloneManager(manager: CollapseManager): CollapseManager;
export declare function mergeOuterItemToSubmenu(data: Data, index: number): Data;
