/// <reference types="react" />
import { INaming } from "../../NamingCaption";
import { IParentFormManager } from "../../Page/ElementsOfFormFactory";
import { UserInfo } from "../Models/UserInfo/UserInfo";
import { ITypeOfFormForRoute, MenuFactory } from "./1-MenuFactory";
import { MenuSubItemFactory } from "./3-MenuSubItemFactory";
export declare class MenuItemFactory {
    menuFactory: MenuFactory;
    caption: string;
    accounting: boolean;
    purchase: boolean;
    sale: boolean;
    treasury: boolean;
    warehouse: boolean;
    produce: boolean;
    pms: boolean;
    costOfGoods: boolean;
    payment: boolean;
    asset: boolean;
    warranty: boolean;
    automation: boolean;
    dailyDistribution: boolean;
    preventindMaintainance: boolean;
    workflow: boolean;
    users?: number[] | undefined;
    path?: string | undefined;
    Page?: import("react").ComponentType<{
        parentFormManager: IParentFormManager;
    }> | undefined;
    exact?: boolean | undefined;
    onClick?: (() => void) | undefined;
    get currentSelected(): boolean;
    visible: boolean;
    keyOfItem: string;
    constructor(menuFactory: MenuFactory, caption: string, accounting: boolean, purchase: boolean, sale: boolean, treasury: boolean, warehouse: boolean, produce: boolean, pms: boolean, costOfGoods: boolean, payment: boolean, asset: boolean, warranty: boolean, automation: boolean, dailyDistribution: boolean, preventindMaintainance: boolean, workflow: boolean, users?: number[] | undefined, path?: string | undefined, Page?: import("react").ComponentType<{
        parentFormManager: IParentFormManager;
    }> | undefined, exact?: boolean | undefined, onClick?: (() => void) | undefined);
    subMenuItems: MenuSubItemFactory[];
    addNewSubMenuItem(caption: INaming | string, path?: string, Page?: React.ComponentType<{
        parentFormManager: IParentFormManager;
    }>, exact?: boolean, onClick?: () => void, accounting?: boolean, purchase?: boolean, sale?: boolean, treasury?: boolean, warehouse?: boolean, produce?: boolean, pms?: boolean, costOfGoods?: boolean, payment?: boolean, asset?: boolean, warranty?: boolean, automation?: boolean, dailyDistribution?: boolean, preventindMaintainance?: boolean, workflow?: boolean, typeOfForm?: ITypeOfFormForRoute): MenuSubItemFactory;
    get isAllSystems(): boolean;
    get userInfo(): UserInfo;
    private get isNotAdminUser();
    get isInRole(): boolean;
    get isSystemSelected(): boolean;
}
