import { ElementRef, EventEmitter, OnDestroy, OnInit } from '@angular/core';
import { LayoutUser } from '@ironsource/fusion-ui/entities';
import { BehaviorSubject } from 'rxjs';
import { SidebarMenuItem, SidebarConfiguration } from '@ironsource/fusion-ui/components/sidebar/common/entities';
import { SidebarMenuService } from '@ironsource/fusion-ui/components/sidebar/common/services';
import { DynamicComponentConfiguration } from '@ironsource/fusion-ui/components/dynamic-components/common/entities';
import { WindowService } from '@ironsource/fusion-ui/services/window';
import * as i0 from "@angular/core";
export declare abstract class SidebarBaseComponent implements OnInit, OnDestroy {
    private windowRef;
    private elementRef;
    private sidebarMenuService;
    set configuration(value: SidebarConfiguration);
    set sidebarOpen(value: boolean);
    saveSidebarState: boolean;
    sidebarOpenChange: EventEmitter<boolean>;
    sidebarMenuItemClicked: EventEmitter<SidebarMenuItem>;
    navigationEnded: EventEmitter<any>;
    sidebarClosedHovered: EventEmitter<boolean>;
    logoutIconClicked: EventEmitter<LayoutUser>;
    logoClicked: EventEmitter<any>;
    get sidebarClosed(): boolean;
    menuItems: SidebarMenuItem[];
    user: LayoutUser;
    dynamicContent: DynamicComponentConfiguration;
    pathNameNormalizeRegex: RegExp;
    isLogoClickable: boolean;
    isSidebarOpen: boolean;
    openedMenuItem$: BehaviorSubject<SidebarMenuItem>;
    isSidebarClosedHovered$: BehaviorSubject<boolean>;
    private listenHostMouseEvents$;
    private sidebarMouseEventSubscription$;
    private onDestroy$;
    constructor(windowRef: WindowService, elementRef: ElementRef, sidebarMenuService: SidebarMenuService);
    ngOnInit(): void;
    ngOnDestroy(): void;
    onLogoClicked(): void;
    onMenuItemClicked(menuItem: SidebarMenuItem): void;
    onNavigationEnded(): void;
    onLogoutIconClicked(): void;
    private initHostMouseEventListeners;
    private setSidebarState;
    private getSidebarState;
    static ɵfac: i0.ɵɵFactoryDeclaration<SidebarBaseComponent, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<SidebarBaseComponent, never, never, { "configuration": { "alias": "configuration"; "required": false; }; "sidebarOpen": { "alias": "sidebarOpen"; "required": false; }; "saveSidebarState": { "alias": "saveSidebarState"; "required": false; }; }, { "sidebarOpenChange": "sidebarOpenChange"; "sidebarMenuItemClicked": "sidebarMenuItemClicked"; "navigationEnded": "navigationEnded"; "sidebarClosedHovered": "sidebarClosedHovered"; "logoutIconClicked": "logoutIconClicked"; "logoClicked": "logoClicked"; }, never, never, false, never>;
}
