import { AfterViewInit, ElementRef, OnChanges, OnDestroy, OnInit } from '@angular/core';
import { CssClassBuilder } from '@fundamental-ngx/cdk/utils';
import { DialogBase } from './base/dialog-base.class';
import { DialogBodyComponent } from './dialog-body/dialog-body.component';
import { DialogFooterComponent } from './dialog-footer/dialog-footer.component';
import { DialogHeaderComponent } from './dialog-header/dialog-header.component';
import { DialogTitleDirective } from './directives/dialog-title.directive';
import { DialogConfig } from './utils/dialog-config.class';
import { DialogRef } from './utils/dialog-ref.class';
import * as i0 from "@angular/core";
/**
 * Dialog component.
 *
 * ```html
 * <fd-dialog>
 *      <fd-dialog-header></fd-dialog-header>
 *      <fd-dialog-body></fd-dialog-body>
 *      <fd-dialog-footer></fd-dialog-footer>
 * </fd-dialog>
 * ```
 */
export declare class DialogComponent extends DialogBase<DialogRef> implements OnInit, OnChanges, AfterViewInit, OnDestroy, CssClassBuilder {
    dialogConfig: DialogConfig;
    private _dialogRef;
    /** Custom classes */
    set class(userClass: string);
    /** DialogRef - should be used for Template based Dialog implementation */
    set embeddedDialogRef(value: DialogRef);
    get embeddedDialogRef(): DialogRef;
    /** DialogConfig - should be used for Template based Dialog implementation */
    set embeddedDialogConfig(value: DialogConfig);
    /** @hidden */
    dialogWindow: ElementRef;
    /** @hidden If dialog sub-components didn't receive DialogConfig from Injector, DialogConfig is passed from parent.
     * This is necessary when dialog has been passed as TemplateRef and created as EmbeddedView.
     * In such case parent injector of DialogComponent is the component that DECLARED the TemplateRef.
     **/
    set dialogHeaderConfig(component: DialogHeaderComponent);
    /** @hidden */
    set dialogBodyConfig(component: DialogBodyComponent);
    /** @hidden */
    set dialogFooterConfig(component: DialogFooterComponent);
    /** @hidden */
    set dialogTitle(component: DialogTitleDirective);
    /** @hidden Whenever dialog should be visible */
    showDialogWindow: boolean;
    /** @hidden Whenever dialog is dragged */
    isDragged: boolean;
    /**
     * @hidden
     * Whether the Dialog in full-screen mode.
     */
    _fullScreen: boolean;
    /** @hidden */
    private _class;
    /** @hidden */
    private _onHidden;
    /** @hidden */
    constructor(dialogConfig: DialogConfig, _dialogRef: DialogRef);
    /** @hidden */
    get _config(): DialogConfig;
    /** @hidden */
    get _ref(): DialogRef;
    /** @hidden */
    buildComponentCssClass(): string[];
    /** @hidden */
    ngOnInit(): void;
    /** @hidden */
    ngOnChanges(): void;
    /** @hidden */
    ngAfterViewInit(): void;
    /** @hidden */
    ngOnDestroy(): void;
    /** @hidden */
    private _listenOnFullScreen;
    /** @hidden Listen on Dialog visibility */
    private _listenOnHidden;
    static ɵfac: i0.ɵɵFactoryDeclaration<DialogComponent, [{ optional: true; }, { optional: true; }]>;
    static ɵcmp: i0.ɵɵComponentDeclaration<DialogComponent, "fd-dialog", never, { "class": { "alias": "class"; "required": false; }; "embeddedDialogRef": { "alias": "dialogRef"; "required": false; }; "embeddedDialogConfig": { "alias": "dialogConfig"; "required": false; }; }, {}, ["dialogHeaderConfig", "dialogBodyConfig", "dialogFooterConfig", "dialogTitle"], ["fd-dialog-header", "fd-dialog-body", "fd-dialog-footer"], true, never>;
}
