import { AnimationEvent } from '@angular/animations';
import { AfterContentInit, AfterViewChecked, ChangeDetectorRef, ElementRef, EventEmitter, OnDestroy, QueryList, Renderer2, TemplateRef } from '@angular/core';
import { MenuItem, OverlayService, PrimeNGConfig, PrimeTemplate } from 'primeng/api';
import { ConnectedOverlayScrollHandler } from 'primeng/dom';
import { Nullable, VoidListener } from 'primeng/ts-helpers';
import * as i0 from "@angular/core";
import * as i1 from "@angular/common";
import * as i2 from "@angular/router";
import * as i3 from "primeng/tooltip";
import * as i4 from "primeng/api";
import * as i5 from "primeng/icons/caretleft";
import * as i6 from "primeng/icons/caretright";
import * as i7 from "primeng/icons/angleright";
export declare class SlideMenuSub implements OnDestroy {
    private document;
    private platformId;
    private renderer;
    item: MenuItem | undefined;
    root: boolean | undefined;
    backLabel: string;
    menuWidth: number | undefined;
    effectDuration: any;
    easing: string;
    index: number | undefined;
    sublistViewChild: ElementRef | undefined;
    slideMenu: SlideMenu;
    transitionEndListener: VoidListener;
    constructor(slideMenu: SlideMenu, document: Document, platformId: any, renderer: Renderer2);
    activeItem: any;
    itemClick(event: MouseEvent, item: MenuItem, listitem: any): void;
    focusNextList(listitem: HTMLElement): void;
    onItemKeyDown(event: KeyboardEvent): void;
    unbindTransitionEndListener(): void;
    ngOnDestroy(): void;
    get isActive(): boolean;
    static ɵfac: i0.ɵɵFactoryDeclaration<SlideMenuSub, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<SlideMenuSub, "p-slideMenuSub", never, { "item": { "alias": "item"; "required": false; }; "root": { "alias": "root"; "required": false; }; "backLabel": { "alias": "backLabel"; "required": false; }; "menuWidth": { "alias": "menuWidth"; "required": false; }; "effectDuration": { "alias": "effectDuration"; "required": false; }; "easing": { "alias": "easing"; "required": false; }; "index": { "alias": "index"; "required": false; }; }, {}, never, never, false, never>;
}
/**
 * SlideMenu displays submenus with slide animation.
 * @group Components
 */
export declare class SlideMenu implements AfterViewChecked, AfterContentInit, OnDestroy {
    private document;
    private platformId;
    el: ElementRef;
    renderer: Renderer2;
    cd: ChangeDetectorRef;
    config: PrimeNGConfig;
    overlayService: OverlayService;
    /**
     * An array of menuitems.
     * @group Props
     */
    model: MenuItem[] | undefined;
    /**
     * Defines if menu would displayed as a popup.
     * @group Props
     */
    popup: boolean | undefined;
    /**
     * Inline style of the element.
     * @group Props
     */
    style: {
        [klass: string]: any;
    } | null | undefined;
    /**
     * Class of the element.
     * @group Props
     */
    styleClass: string | undefined;
    /**
     * Width of the submenus.
     * @group Props
     */
    menuWidth: number;
    /**
     * Height of the scrollable area, a scrollbar appears if a menu height is longer than this value.
     * @group Props
     */
    viewportHeight: number;
    /**
     * Duration of the sliding animation in milliseconds.
     * @group Props
     */
    effectDuration: any;
    /**
     * Easing animation to use for sliding.
     * @group Props
     */
    easing: string;
    /**
     * Label of element to navigate back.
     * @group Props
     */
    backLabel: string;
    /**
     * Target element to attach the overlay, valid values are "body" or a local ng-template variable of another element (note: use binding with brackets for template variables, e.g. [appendTo]="mydiv" for a div element having #mydiv as variable name).
     * @group Props
     */
    appendTo: HTMLElement | ElementRef | TemplateRef<any> | string | null | undefined | any;
    /**
     * Whether to automatically manage layering.
     * @group Props
     */
    autoZIndex: boolean;
    /**
     * Base zIndex value to use in layering.
     * @group Props
     */
    baseZIndex: number;
    /**
     * Transition options of the show animation.
     * @group Props
     */
    showTransitionOptions: string;
    /**
     * Transition options of the hide animation.
     * @group Props
     */
    hideTransitionOptions: string;
    /**
     * Callback to invoke when overlay menu is shown.
     * @group Emits
     */
    onShow: EventEmitter<any>;
    /**
     * Callback to invoke when overlay menu is hidden.
     * @group Emits
     */
    onHide: EventEmitter<any>;
    templates: QueryList<PrimeTemplate> | undefined;
    containerViewChild: ElementRef | undefined;
    backwardViewChild: ElementRef | undefined;
    slideMenuContentViewChild: ElementRef | undefined;
    documentClickListener: VoidListener;
    documentResizeListener: VoidListener;
    preventDocumentDefault: boolean | undefined;
    scrollHandler: Nullable<ConnectedOverlayScrollHandler>;
    left: number;
    animating: boolean;
    target: any;
    visible: boolean | undefined;
    viewportUpdated: boolean | undefined;
    window: Window;
    submenuIconTemplate: TemplateRef<any> | undefined;
    backIconTemplate: TemplateRef<any> | undefined;
    constructor(document: Document, platformId: any, el: ElementRef, renderer: Renderer2, cd: ChangeDetectorRef, config: PrimeNGConfig, overlayService: OverlayService);
    ngAfterViewChecked(): void;
    ngAfterContentInit(): void;
    set container(element: ElementRef);
    set backward(element: ElementRef);
    set slideMenuContent(element: ElementRef);
    updateViewPort(): void;
    /**
     * Toggles the visibility of the popup menu.
     * @param {Event} event - Browser event.
     * @group Method
     */
    toggle(event: Event): void;
    /**
     * Displays the popup menu.
     * @param {Event} event - Browser event.
     * @group Method
     */
    show(event: Event): void;
    onOverlayClick(event: MouseEvent): void;
    onOverlayAnimationStart(event: AnimationEvent): void;
    onOverlayAnimationEnd(event: AnimationEvent): void;
    appendOverlay(): void;
    restoreOverlayAppend(): void;
    moveOnTop(): void;
    /**
     * Hides the popup menu.
     * @group Method
     */
    hide(): void;
    onWindowResize(): void;
    goBack(): void;
    onBackwardKeydown(event: KeyboardEvent): void;
    bindDocumentClickListener(): void;
    unbindDocumentClickListener(): void;
    bindDocumentResizeListener(): void;
    unbindDocumentResizeListener(): void;
    bindScrollListener(): void;
    unbindScrollListener(): void;
    onOverlayHide(): void;
    ngOnDestroy(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<SlideMenu, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<SlideMenu, "p-slideMenu", never, { "model": { "alias": "model"; "required": false; }; "popup": { "alias": "popup"; "required": false; }; "style": { "alias": "style"; "required": false; }; "styleClass": { "alias": "styleClass"; "required": false; }; "menuWidth": { "alias": "menuWidth"; "required": false; }; "viewportHeight": { "alias": "viewportHeight"; "required": false; }; "effectDuration": { "alias": "effectDuration"; "required": false; }; "easing": { "alias": "easing"; "required": false; }; "backLabel": { "alias": "backLabel"; "required": false; }; "appendTo": { "alias": "appendTo"; "required": false; }; "autoZIndex": { "alias": "autoZIndex"; "required": false; }; "baseZIndex": { "alias": "baseZIndex"; "required": false; }; "showTransitionOptions": { "alias": "showTransitionOptions"; "required": false; }; "hideTransitionOptions": { "alias": "hideTransitionOptions"; "required": false; }; }, { "onShow": "onShow"; "onHide": "onHide"; }, ["templates"], never, false, never>;
}
export declare class SlideMenuModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<SlideMenuModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<SlideMenuModule, [typeof SlideMenu, typeof SlideMenuSub], [typeof i1.CommonModule, typeof i2.RouterModule, typeof i3.TooltipModule, typeof i4.SharedModule, typeof i5.CaretLeftIcon, typeof i6.CaretRightIcon, typeof i7.AngleRightIcon], [typeof SlideMenu, typeof i2.RouterModule, typeof i3.TooltipModule, typeof i4.SharedModule]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<SlideMenuModule>;
}
