import { ElementRef, EventEmitter, NgZone, Renderer } from '@angular/core';
import { App } from '../app/app';
import { Backdrop } from '../backdrop/backdrop';
import { Config } from '../../config/config';
import { Keyboard } from '../../util/keyboard';
import { MenuController } from './menu-controller';
import { Platform } from '../../platform/platform';
import { GestureController } from '../../gestures/gesture-controller';
import { Content } from '../content/content';
import { DomController } from '../../util/dom-controller';
export declare class Menu {
    _menuCtrl: MenuController;
    private _elementRef;
    private _config;
    private _platform;
    private _renderer;
    private _keyboard;
    private _zone;
    private _gestureCtrl;
    private _domCtrl;
    private _app;
    private _cntEle;
    private _gesture;
    private _type;
    private _isEnabled;
    private _isSwipeEnabled;
    private _isAnimating;
    private _isPersistent;
    private _init;
    private _events;
    private _gestureBlocker;
    isOpen: boolean;
    backdrop: Backdrop;
    menuContent: Content;
    content: any;
    id: string;
    side: string;
    type: string;
    enabled: boolean;
    swipeEnabled: boolean;
    persistent: boolean;
    maxEdgeStart: number;
    ionDrag: EventEmitter<number>;
    ionOpen: EventEmitter<boolean>;
    ionClose: EventEmitter<boolean>;
    constructor(_menuCtrl: MenuController, _elementRef: ElementRef, _config: Config, _platform: Platform, _renderer: Renderer, _keyboard: Keyboard, _zone: NgZone, _gestureCtrl: GestureController, _domCtrl: DomController, _app: App);
    ngOnInit(): void;
    onBackdropClick(ev: UIEvent): void;
    private _setListeners();
    private _getType();
    setOpen(shouldOpen: boolean, animated?: boolean): Promise<boolean>;
    canSwipe(): boolean;
    isAnimating(): boolean;
    _swipeBeforeStart(): void;
    _swipeStart(): void;
    _swipeProgress(stepValue: number): void;
    _swipeEnd(shouldCompleteLeft: boolean, shouldCompleteRight: boolean, stepValue: number, velocity: number): void;
    private _before();
    private _after(isOpen);
    open(): Promise<boolean>;
    close(): Promise<boolean>;
    toggle(): Promise<boolean>;
    enable(shouldEnable: boolean): Menu;
    swipeEnable(shouldEnable: boolean): Menu;
    getNativeElement(): HTMLElement;
    getMenuElement(): HTMLElement;
    getContentElement(): HTMLElement;
    getBackdropElement(): HTMLElement;
    width(): number;
    getMenuController(): MenuController;
    setElementClass(className: string, add: boolean): void;
    setElementAttribute(attributeName: string, value: string): void;
    ngOnDestroy(): void;
}
