import React from 'react';
export interface YRouterItem {
    path: string;
    param?: string;
    url?: string;
    origion_url: string;
    name: string;
    meta: {
        title: string;
        icon?: string;
    };
    component?: React.FunctionComponent;
    hidden?: boolean;
    children?: YRouterItem[];
}
export interface YApplicationProps {
    config: ApplicationConfig;
}
export interface ApplicationConfig {
    routers?: YRouterItem[];
    routerConfig: YRouterConfig;
    primaryDefaultMenu?: string;
    secondaryDefaultMenu?: string;
    projectId: string;
}
export interface YRouterConfig {
    [id: string]: {
        component?: React.FunctionComponent;
        icon?: string;
        hidden?: boolean;
        url?: string;
        param?: string;
    };
}
export interface SiderProps {
    dataSource?: YRouterItem[];
    config: ApplicationConfig;
}
export interface ApplicationAction {
    type: ApplicationType;
    payload: {
        data: any;
    };
}
export interface ApplicationState {
    menus: YRouterItem[];
    defaultSelectedMenus?: string[];
    defaultOpenMenus?: string[];
    defaultMenu?: YRouterItem;
    selectedMenu?: string[];
    openMenu?: string[];
    permissions: string[];
    pageName: string;
    pageData?: {
        [propName: string]: any;
    };
    isInit: boolean;
}
declare type ApplicationType = 'init_menu' | 'others' | 'name_page' | 'set_each_data' | 'set_all_data';
export {};
//# sourceMappingURL=application.interface.d.ts.map