import { SerializeOptions, StructureNode, Serializable } from './StructureNodes'; import { MenuItem, MenuItemBuilder } from './MenuItem'; import { MenuItemGroup, MenuItemGroupBuilder } from './MenuItemGroup'; export interface Component extends StructureNode { component: Function; menuItems: MenuItem[]; menuItemGroups: MenuItemGroup[]; } export interface ComponentInput extends StructureNode { component: Function; menuItems?: (MenuItem | MenuItemBuilder)[]; menuItemGroups?: (MenuItemGroup | MenuItemGroupBuilder)[]; } export interface BuildableComponent extends Partial { component?: Function; menuItems?: (MenuItem | MenuItemBuilder)[]; menuItemGroups?: (MenuItemGroup | MenuItemGroupBuilder)[]; } export declare class ComponentBuilder implements Serializable { protected spec: BuildableComponent; constructor(spec?: ComponentInput); id(id: string): ComponentBuilder; getId(): string | undefined; title(title: string): ComponentBuilder; getTitle(): string | undefined; component(component: Function): ComponentBuilder; getComponent(): Function | undefined; menuItems(menuItems: (MenuItem | MenuItemBuilder)[]): ComponentBuilder; getMenuItems(): (MenuItem | MenuItemBuilder)[] | undefined; menuItemGroups(menuItemGroups: (MenuItemGroup | MenuItemGroupBuilder)[]): ComponentBuilder; getMenuItemGroups(): (MenuItemGroup | MenuItemGroupBuilder)[] | undefined; serialize(options?: SerializeOptions): Component; clone(withSpec?: BuildableComponent): ComponentBuilder; }