import { AfterViewInit, EventEmitter, OnDestroy, OnInit } from '@angular/core';
import { User } from '../../user/models/user';
import 'hammerjs';
import { BreakpointObserver } from '@angular/cdk/layout';
import { MatDrawerToggleResult, MatSidenav } from '@angular/material/sidenav';
import { LoggerService } from '../../logger/services/logger.service';
import { BehaviorSubject, Subscription } from 'rxjs';
import { ResizeEvent } from 'angular-resizable-element';
import { UserPreferenceService } from '../../user/services/user-preference.service';
import { MenuResizeEvent } from '../model/navigation-menu-events';
import * as i0 from "@angular/core";
export declare abstract class AbstractNavigationDrawerComponent implements OnInit, AfterViewInit, OnDestroy {
    protected breakpoint: BreakpointObserver;
    protected _log: LoggerService;
    protected userPreferenceService: UserPreferenceService;
    showUser: boolean;
    user: User;
    showQuickPanel: boolean;
    quickPanelItems: Array<any>;
    navigation: boolean;
    openedChange: EventEmitter<boolean>;
    resized: EventEmitter<MenuResizeEvent>;
    protected _sideNav: MatSidenav;
    opened: boolean;
    protected _fixed: boolean;
    protected subBreakpoint: Subscription;
    width: number;
    contentWidth: BehaviorSubject<number>;
    protected _config: {
        mode: string;
        opened: boolean;
        disableClose: boolean;
    };
    constructor(breakpoint: BreakpointObserver, _log: LoggerService, userPreferenceService: UserPreferenceService);
    ngOnInit(): void;
    ngAfterViewInit(): void;
    ngOnDestroy(): void;
    get config(): {
        mode: string;
        opened: boolean;
        disableClose: boolean;
    };
    get fixed(): boolean;
    set fixed(value: boolean);
    open(): Promise<MatDrawerToggleResult>;
    close(): Promise<MatDrawerToggleResult>;
    toggle(): Promise<MatDrawerToggleResult>;
    private resolveLayout;
    swipeRight(): void;
    swipeLeft(): void;
    onResizeEvent(event: ResizeEvent): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<AbstractNavigationDrawerComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<AbstractNavigationDrawerComponent, "ncc-abstract-navigation-drawer", never, { "showUser": { "alias": "showUser"; "required": false; }; "user": { "alias": "user"; "required": false; }; "showQuickPanel": { "alias": "showQuickPanel"; "required": false; }; "quickPanelItems": { "alias": "quickPanelItems"; "required": false; }; "navigation": { "alias": "navigation"; "required": false; }; "fixed": { "alias": "fixed"; "required": false; }; }, { "openedChange": "openedChange"; "resized": "resized"; }, never, never, false, never>;
}
