import { OnInit, EventEmitter, ElementRef } from '@angular/core';
import { CfCoreComponent } from '../core/core.component';
import { MenuModel } from '../../models/menu/menu.model';
import { MenuStylingModel } from '../../models/menu/menu-styling.model';
import { MdMenuTrigger } from '@angular/material';
import { TemplateService } from '../../services/template-service/template.service';
/**
 * <p>CF Menu Component</p>
 * <pre>
 * <code>
 * import { MenuModel } from 'cedrus-fusion'
 * import { MenuStylingModel } from 'cedrus-fusion'
 * <</code>cf-menu<code>></code><code><</code><code>/</code>cf-menu<code>>
 * </code>
 * </pre>
 */
export declare class CfMenuComponent extends CfCoreComponent implements OnInit {
    /**@hidden */ elementRef: ElementRef;
    /**@hidden */
    notifacationClickable: string;
    /**@hidden
     * It is an array with menu items generated by MenuItemModel Class and used in Menu component template to render list of menu items.
     */
    cfMenu: MenuModel;
    /**
     * <pre>{
     *  display: boolean,							// True or False <b>Default: True</b>
     *  disable: boolean,							// True or False <b>Default: False</b>
     *  menuItems: MenuItemModel,			// Array of menu items with type MenuItemModel
     *  triggerIcon: IconModel,				//Refer to icon component
     *}
     * </pre>
     * <p>Example</p>
     * <pre>{
     *	display: true,
     *	disable: true,
     *  menuItems:[
     *   {
     *    buttonProperty:{
     *     label: "USD account",
     *     iconProperty:{
     *      name: 'fa-usd',
     *      size: '24px'
     *     },
     *     iconPosition:"left"
     *    }
     *   },
     *   {
     *    buttonProperty:{
     *     label: "EURO account",
     *     iconProperty:{
     *      name: 'fa-eur',
     *      size: '24px'
     *     },
     *     iconPosition:"left"
     *    }
     *	 }
     *  ]
     *  triggerIcon:{
     *   name: "account_balance",
     *   size: "30px"
     *  }
     *}
     * </pre>
   */
    properties: MenuModel;
    /**
      *<p> dynamicClass: function() -> string,	// Function that returns name of the class </p>
        *<p> class: string												// Name of the css class selector </p>
        *<p> themeColor: string										// primary/accent/warn </p>
      *<pre>
        *{
      *	// Container surrounding the Menu
      *	container:{
      *   dynamicClass,
      *   class
      *	},
      *	// Check Icon Component
      *	iconStyling:IconStylingModel,
      *	// Toggle Icon styling with same structure as above
      *	menuItemStyling:{
      *   container: {},
        *   //Check Button Component
      *   buttonStyling:ButtonStylingModel
      * }
      *}
      * </pre>
      */
    styling: MenuStylingModel;
    /**
     * <p> To show / hide menu trigger icon</p>
     */
    show: boolean;
    /**
     * Menu trigger icon to be disabled
     */
    disabled: boolean;
    /**
     * <p>Emit event on menu item click</p>
     * <p>Event has object with structure:</p>
     * <pre>{
     * 	 cfIndex: index, // index of menu item clicked
     * 	 cfItem: item // menu of menu item clicked
     * }
     * </pre>
     */
    cfItemAction: EventEmitter<any>;
    /**@hidden */
    /** @hidden
     * It is Menu trigger element (icon) in the DOM which give access to open menu programmatically from other GCs Components (like GC Button) by calling function <b>openMenu()</b>.
     */
    trigger: MdMenuTrigger;
    /** @hidden
     * It is function which is called after click on Menu icon (trigger) from other GCs Components (like GC Button) to open list with menu items.
     */
    openMenu(): void;
    /** @hidden
     * It is function for creating Notification click events by using Core Component <b>notificationAction</b> event emmiter.
     * @param notification	it is json notification object
     */
    cfNotificationAction(notification: any): void;
    /**@hidden */
    constructor(/**@hidden */ elementRef: ElementRef, /**@hidden */ templateService: TemplateService);
    /**@hidden
     * <p>On Menu component initialization next things are heppening:</p>
     * <ul>
     * <li>menu array passed via <b>[menu]</b> attribute of <b>cf-menu</b> directive is assigned to <b>cfMenu</b> array which is used inside Menu Component template
     * <li>on each <b>ngFor</b> iteration menu item is generated with MenuItemModel Class (inside which also Icon Class can be called to generate menu item icon)
     * </ul>
     *
     */
    ngOnInit(): void;
}
