import { ChangeDetectorRef, Component, ElementRef, EventEmitter, OnInit, Type } from '@angular/core';
import { HeaderSizes } from './header-sizes.enum';
import { HeaderOptions } from './header-options';
import { BehaviorSubject } from 'rxjs';
import { WindowService } from '@ironsource/fusion-ui/services/window';
import * as i0 from "@angular/core";
export declare abstract class HeaderOverlayBaseComponent implements OnInit {
    private windowRef;
    private elemRef;
    private cd;
    headerComponent: Type<Component>;
    width: string;
    height: string;
    showFooter: boolean;
    size: HeaderSizes;
    element: Node;
    clickOutsideActivate: boolean;
    closed: EventEmitter<any>;
    saved: EventEmitter<any>;
    isOpened: EventEmitter<any>;
    isActive: boolean;
    error: string;
    side: string;
    componentData: any;
    headerComponentData$: BehaviorSubject<{
        isActive: boolean;
        isOpen: boolean;
        componentData: any;
    }>;
    headerSizes: typeof HeaderSizes;
    set isOpen(value: boolean);
    get isOpen(): boolean;
    private isOverlayOpen;
    header: ElementRef;
    constructor(windowRef: WindowService, elemRef: ElementRef, cd: ChangeDetectorRef);
    ngOnInit(): void;
    toggleOverlay(): void;
    close(): void;
    onOutsideClick(): void;
    writeValue(value: HeaderOptions): void;
    registerOnChange(fn: any): void;
    propagateChange: (_: HeaderOptions) => void;
    registerOnTouched(fn: any): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<HeaderOverlayBaseComponent, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<HeaderOverlayBaseComponent, never, never, { "headerComponent": { "alias": "headerComponent"; "required": false; }; "width": { "alias": "width"; "required": false; }; "height": { "alias": "height"; "required": false; }; "showFooter": { "alias": "showFooter"; "required": false; }; "size": { "alias": "size"; "required": false; }; "element": { "alias": "element"; "required": false; }; "clickOutsideActivate": { "alias": "clickOutsideActivate"; "required": false; }; }, { "closed": "closed"; "saved": "saved"; "isOpened": "isOpened"; }, never, never, false, never>;
}
