import { AfterViewInit, ChangeDetectorRef, ElementRef, OnDestroy, OnInit } from '@angular/core';
import { Router } from '@angular/router';
import { Subscription } from 'rxjs';
import { FocusTrapService, HasElementRef, RtlService } from '@fundamental-ngx/cdk/utils';
import { DialogSize } from '../utils/dialog-width-to-size';
import { DialogConfigBase } from './dialog-config-base.class';
import { DialogRefBase } from './dialog-ref-base.class';
import * as i0 from "@angular/core";
export declare abstract class DialogBase<T = any, D extends DialogRefBase<T> = DialogRefBase<T>> implements OnInit, AfterViewInit, OnDestroy, HasElementRef {
    /** @hidden Reference to dialog window element*/
    abstract dialogWindow: ElementRef;
    /**
     * @hidden
     */
    _dir: string;
    /** @hidden Dialog padding sizes */
    dialogPaddingSize: DialogSize;
    /** @hidden */
    readonly _focusTrapService: FocusTrapService;
    /** @hidden */
    readonly _changeDetectorRef: ChangeDetectorRef;
    /** @hidden */
    readonly elementRef: ElementRef<any>;
    /** @hidden */
    protected readonly _router: Router;
    /** @hidden */
    protected readonly _rtlService: RtlService | null;
    /** @hidden */
    protected _focusTrapId: string;
    /** @hidden */
    protected _subscriptions: Subscription;
    /** @hidden */
    abstract get _ref(): D;
    /** @hidden */
    abstract get _config(): DialogConfigBase<any>;
    /**
     * @hidden
     * Used to mute errors of focus trap during unit tests (jsdom incompatibility).
     */
    private readonly _focusTrapError;
    /** @hidden */
    private readonly _zone;
    /** @hidden Listen and close dialog on Escape key */
    closeDialogEsc(event: KeyboardEvent): void;
    /** @hidden Listen and close dialog on Backdrop click */
    closeDialog(target: ElementRef): void;
    /** @hidden */
    ngOnInit(): void;
    /** @hidden */
    ngAfterViewInit(): void;
    /** @hidden */
    ngOnDestroy(): void;
    /** @hidden Determine dialog padding size based on dialogs window width */
    adjustResponsivePadding(): void;
    /** @hidden Listen on NavigationStart event and dismiss the dialog */
    private _listenAndCloseOnNavigation;
    /** @hidden Trap focus inside dialog window */
    private _trapFocus;
    /** @hidden */
    private _deactivateFocusTrap;
    /** @hidden Set dialog window position */
    private _setPosition;
    /** @hidden Set dialog window width and height */
    private _setWidthHeight;
    /** @hidden Listen on window resize and adjust padding */
    private _listenOnWindowResize;
    /** @hidden */
    private _onMicrotaskEmpty;
    static ɵfac: i0.ɵɵFactoryDeclaration<DialogBase<any, any>, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<DialogBase<any, any>, never, never, {}, {}, never, never, true, never>;
}
