import { AfterViewInit, ChangeDetectorRef, ElementRef, EventEmitter, OnDestroy, OnInit } from '@angular/core';
import { LayoutHeaderComponentConfiguration, LayoutHeaderContentTitle, PageHeaderPosition } from './components/layout-header/layout-header-entity';
import { SidebarConfiguration, SidebarMenuItem } from '@ironsource/fusion-ui/components/sidebar/common/entities';
import { LayoutUser } from '@ironsource/fusion-ui/entities';
import { LayoutComponentConfiguration, LayoutForceScreenMode } from './layout.entity';
import { BehaviorSubject } from 'rxjs';
import { DynamicComponentConfiguration } from '@ironsource/fusion-ui/components/dynamic-components/common/entities';
import * as i0 from "@angular/core";
export declare class LayoutComponent implements OnInit, OnDestroy, AfterViewInit {
    private cdRef;
    set configuration(value: LayoutComponentConfiguration);
    set sidebarDynamicContent(value: DynamicComponentConfiguration);
    forceScreenMode: LayoutForceScreenMode;
    menuSidebarItemClicked: EventEmitter<SidebarMenuItem>;
    menuHeaderItemClicked: EventEmitter<SidebarMenuItem>;
    routeNavigationEnded: EventEmitter<any>;
    userLogout: EventEmitter<LayoutUser>;
    logoClicked: EventEmitter<any>;
    mainContent: ElementRef;
    mediaSizeDetector: ElementRef;
    get forceModeClass(): string;
    sidebarConfiguration: SidebarConfiguration;
    sidebarOpen: boolean;
    headerConfiguration: LayoutHeaderComponentConfiguration;
    pageHeaderTitle$: BehaviorSubject<LayoutHeaderContentTitle>;
    pageHeaderBehaviourType$: BehaviorSubject<string>;
    pageHeaderPositionEnum: typeof PageHeaderPosition;
    pageHeaderPosition$: BehaviorSubject<PageHeaderPosition>;
    sidebarClosedHovered$: BehaviorSubject<boolean>;
    private onDestroy$;
    private currentMediaSizeType;
    constructor(cdRef: ChangeDetectorRef);
    ngOnInit(): void;
    ngOnDestroy(): void;
    /**
     * Here will checked initial media-type (Desktop, Tablet, Mobile).
     * in case media-type not desktop will set sidebar closed (collapsed).
     */
    ngAfterViewInit(): void;
    /**
     * Emitted from header. Occur by click on 'hamburger' icon
     */
    onSidebarStateChanged(): void;
    /**
     * Emitted from header. Occur by menu item in header menu clicked
     * - menuItem
     */
    onHeaderMenuItemClicked(menuItem: SidebarMenuItem): void;
    /**
     * Emitted from side-bar. Occur by menu item in side-bar clicked
     * - menuItem
     */
    onSidebarMenuItemClicked(menuItem: SidebarMenuItem): void;
    /**
     * Emitted from side-bar. Occur when sidebar closed (collapsed) and mouse over it.
     * - isHovered: mouse on sidebar - true
     */
    onSidebarClosedHovered(isHovered: boolean): void;
    /**
     * Occur when user clicked on main content overlay. (relevant for mobile media-type only)
     */
    onMobileOverlayClicked(): void;
    /**
     * Emitted from side-bar. Occur when user click logout icon. (rendered in sidebar for mobile media-type only)
     * - user
     */
    onLogoutIconClicked(user: LayoutUser): void;
    /**
     * Emitted from side-bar. Occur when user clicked on logo
     */
    onLogoClicked(): void;
    /**
     * Emitted from side-bar. Occur when route navigation ended (side-bar has observer for it)
     */
    onNavigationEnded(): void;
    /**
     * Make scroll top for the main content
     * - offset (optional, default - 0)
     */
    mainContentScrollTop(offset?: number): void;
    showPageHeaderContent(hasContent: boolean): boolean;
    /**
     * Subscribe on window resize event for media-type size check.
     */
    private initResizeListener;
    /**
     * Scroll on main content listener used for page header behaviour
     */
    private initScrollListener;
    private setHeaderBehaviour;
    /**
     * For detection media size (supported: desktop, tablet, mobile)
     * used hidden DOM element for it
     */
    private getMediaType;
    private getForcedMediaType;
    /**
     * For media-size tablet and mobile
     * - isClosed
     */
    private forceSidebarStateChange;
    static ɵfac: i0.ɵɵFactoryDeclaration<LayoutComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<LayoutComponent, "fusion-layout", never, { "configuration": { "alias": "configuration"; "required": false; }; "sidebarDynamicContent": { "alias": "sidebarDynamicContent"; "required": false; }; "forceScreenMode": { "alias": "forceScreenMode"; "required": false; }; }, { "menuSidebarItemClicked": "menuSidebarItemClicked"; "menuHeaderItemClicked": "menuHeaderItemClicked"; "routeNavigationEnded": "routeNavigationEnded"; "userLogout": "userLogout"; "logoClicked": "logoClicked"; }, never, ["*"], false, never>;
}
