import React, { ReactNode, ReactElement } from 'react';
import { History } from 'history-with-query';
import { Dispatch, AnyAction } from 'redux';
import './index.less';
export declare const classPrefix = "ccs-layout";
export declare type LayoutType = 'left' | 'top';
export interface RenderHeaderType extends Pick<CcsBasicLayoutPorps, 'logo' | 'location'> {
    menuData: MenuType[];
    layout: LayoutType;
    menus: MenuType[];
}
export interface MenuParentType {
    key: string;
    url: string;
    name: string;
}
export interface MenuType {
    nodeId: string;
    nodeName: string;
    leaf: boolean;
    icon: string;
    nodeData: {
        menuCode: string;
        menuName: string;
        menuUrl: string;
        menuType: number;
        menuDesc: string;
    };
    children?: MenuType[];
    topUrl?: string;
    parents?: MenuParentType[];
}
export interface UserDetailType {
    menuData?: MenuType[];
    userName?: string;
    loginCode?: string;
    urls?: string[];
    token?: string;
    loginId?: number;
    orgs?: any[];
    roles?: any[];
}
export interface CcsBasicDefaultLayout {
    /** 菜单收起状态 */
    collapsed: boolean;
    /** 系统布局 */
    layout: LayoutType;
}
export interface CcsBasicLayoutPorps {
    /** logo图片 */
    logo?: string;
    /** umi history */
    history: History;
    /** umi location */
    location: Location;
    /** umi router children */
    children: ReactElement;
    /** 用户信息 */
    userDetail: UserDetailType;
    /** 布局配置 */
    layoutConfig: CcsBasicLayoutConfigType;
    /** 用户下拉菜单 */
    userOverlayMenu: ReactNode;
    /** 头部额外信息 */
    headerExtra: ReactNode;
    /** dva dispatch */
    dispatch: Dispatch<AnyAction>;
    /** 自定义header */
    renderHeader?: ({ logo, layout, menus, menuData, location }: RenderHeaderType) => ReactNode;
}
export interface CcsBasicLayoutConfigType {
    /** app名称 */
    AppName: string;
    /** 主题色 */
    BrandPrimary: string;
    /** 菜单展开宽度 */
    MenuExpandWidth: number;
    /** 菜单收起宽度 */
    MenuCollapsedWidth: number;
    /** 启用tabs缓存页面 */
    IsTabsPage: boolean;
    /** 启用按钮权限 */
    IsAuthButton: boolean;
    /** 暗黑模式 */
    IsDark: boolean;
    /** 用户首次访问菜单模式 left | top */
    LayoutMode: 'left' | 'top';
    /** 菜单在收起状态，或者顶部菜单模式，查看下级菜单模式 default | all (一次性展开所有下级菜单) */
    MenuExpandMode: 'default' | 'all';
    /** 接口名称统一前缀 */
    Api: string;
    /** url上下文名称 */
    Context: string;
}
/**
 * 布局
 * @param CcsBasicLayoutPorps
 */
declare const CcsBasicLayout: React.FC<CcsBasicLayoutPorps>;
export default CcsBasicLayout;
