import { TemplateRef, AfterViewInit, OnDestroy, EventEmitter, QueryList, ElementRef, OnInit, SimpleChanges, OnChanges } from '@angular/core';
import { TemplatePortal } from '@angular/cdk/portal';
import { BehaviorSubject } from 'rxjs';
import { BaseStatesDirective } from '@eui/components/shared';
import { OpenedDialog } from './models/opened-dialog.model';
import { EuiDialogVerticalPosition } from './models/eui-dialog-alignment';
import * as i0 from "@angular/core";
import * as i1 from "@eui/components/shared";
export declare class EuiDialogComponent implements AfterViewInit, OnDestroy, OnInit, OnChanges {
    e2eAttr: string;
    title: string;
    acceptLabel: string;
    dismissLabel: string;
    verticalPosition: EuiDialogVerticalPosition;
    width: string;
    height: string;
    isFullScreen: boolean;
    hasCloseButton: boolean;
    hasAcceptButton: boolean;
    hasDismissButton: boolean;
    hasMobileCustomSize: boolean;
    hasClosedOnClickOutside: boolean;
    hasClosedOnEscape: boolean;
    isHandleCloseOnDismiss: boolean;
    isHandleCloseOnClose: boolean;
    isHandleCloseOnAccept: boolean;
    isHandleCloseOnClickOutside: boolean;
    isHandleCloseOnEscape: boolean;
    isMessageBox: boolean;
    isDraggable: boolean;
    hasNoBodyPadding: boolean;
    hasFooter: boolean;
    classList: string;
    clickOutside: EventEmitter<any>;
    escape: EventEmitter<any>;
    dialogOpen: EventEmitter<any>;
    dialogClose: EventEmitter<any>;
    dismiss: EventEmitter<any>;
    accept: EventEmitter<any>;
    content: string | TemplatePortal;
    isOpen$: BehaviorSubject<boolean>;
    templateRefHeader: TemplateRef<EuiDialogHeaderDirective>;
    templateRefContent: TemplateRef<ElementRef>;
    templateRefFooter: TemplateRef<EuiDialogFooterDirective>;
    euiDialogHeaderDirective: QueryList<EuiDialogHeaderDirective>;
    euiDialogFooterDirective: QueryList<EuiDialogFooterDirective>;
    baseStatesDirective: BaseStatesDirective;
    private dialog;
    private templatePortalHeader;
    private templatePortalContent;
    private templatePortalFooter;
    private destroy$;
    private viewContainerRef;
    private euiDialogService;
    ngOnChanges(changes: SimpleChanges): void;
    ngOnInit(): void;
    ngAfterViewInit(): void;
    ngOnDestroy(): void;
    /**
     * Whether the eui-dialog is open.
     *
     * @usageNotes
     * ```html
     * <eui-dialog #dialog>
     *      \@if (dialog.isOpen) {
     *          <my-component></my-component>
     *      }
     * </eui-dialog>
     * ```
     * @returns A boolean with value `true` when open, otherwise `false`.
     */
    get isOpen(): boolean;
    /**
     * Open a dialog.
     *
     * @returns A dialog object of type `OpenedDialog`
     */
    openDialog<HC, HCC, BC, BCC, FC, FCC>(): OpenedDialog;
    /**
     * Close a Dialog
     */
    closeDialog(): void;
    /**
     * Disable Accept button of default eui-dialog footer.
     */
    disableAcceptButton(): void;
    /**
     * Enable Accept button of default eui-dialog footer.
     */
    enableAcceptButton(): void;
    /**
     * Disable Dismiss button of default eui-dialog footer.
     */
    disableDismissButton(): void;
    /**
     * Enable Dismiss button of default eui-dialog footer.
     */
    enableDismissButton(): void;
    /**
     * Scroll to the bottom of the content
     */
    scrollToBottom(): void;
    /**
     * Scroll to the top of the content
     */
    scrollToTop(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<EuiDialogComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<EuiDialogComponent, "eui-dialog", never, { "e2eAttr": { "alias": "e2eAttr"; "required": false; }; "title": { "alias": "title"; "required": false; }; "acceptLabel": { "alias": "acceptLabel"; "required": false; }; "dismissLabel": { "alias": "dismissLabel"; "required": false; }; "verticalPosition": { "alias": "verticalPosition"; "required": false; }; "width": { "alias": "width"; "required": false; }; "height": { "alias": "height"; "required": false; }; "isFullScreen": { "alias": "isFullScreen"; "required": false; }; "hasCloseButton": { "alias": "hasCloseButton"; "required": false; }; "hasAcceptButton": { "alias": "hasAcceptButton"; "required": false; }; "hasDismissButton": { "alias": "hasDismissButton"; "required": false; }; "hasMobileCustomSize": { "alias": "hasMobileCustomSize"; "required": false; }; "hasClosedOnClickOutside": { "alias": "hasClosedOnClickOutside"; "required": false; }; "hasClosedOnEscape": { "alias": "hasClosedOnEscape"; "required": false; }; "isHandleCloseOnDismiss": { "alias": "isHandleCloseOnDismiss"; "required": false; }; "isHandleCloseOnClose": { "alias": "isHandleCloseOnClose"; "required": false; }; "isHandleCloseOnAccept": { "alias": "isHandleCloseOnAccept"; "required": false; }; "isHandleCloseOnClickOutside": { "alias": "isHandleCloseOnClickOutside"; "required": false; }; "isHandleCloseOnEscape": { "alias": "isHandleCloseOnEscape"; "required": false; }; "isMessageBox": { "alias": "isMessageBox"; "required": false; }; "isDraggable": { "alias": "isDraggable"; "required": false; }; "hasNoBodyPadding": { "alias": "hasNoBodyPadding"; "required": false; }; "hasFooter": { "alias": "hasFooter"; "required": false; }; "classList": { "alias": "classList"; "required": false; }; }, { "clickOutside": "clickOutside"; "escape": "escape"; "dialogOpen": "dialogOpen"; "dialogClose": "dialogClose"; "dismiss": "dismiss"; "accept": "accept"; }, ["euiDialogHeaderDirective", "euiDialogFooterDirective"], ["eui-dialog-header", "*", "eui-dialog-footer"], true, [{ directive: typeof i1.BaseStatesDirective; inputs: { "euiPrimary": "euiPrimary"; "euiSecondary": "euiSecondary"; "euiInfo": "euiInfo"; "euiSuccess": "euiSuccess"; "euiWarning": "euiWarning"; "euiDanger": "euiDanger"; "euiAccent": "euiAccent"; "euiVariant": "euiVariant"; }; outputs: {}; }]>;
    static ngAcceptInputType_isFullScreen: unknown;
    static ngAcceptInputType_hasCloseButton: unknown;
    static ngAcceptInputType_hasAcceptButton: unknown;
    static ngAcceptInputType_hasDismissButton: unknown;
    static ngAcceptInputType_hasMobileCustomSize: unknown;
    static ngAcceptInputType_hasClosedOnClickOutside: unknown;
    static ngAcceptInputType_hasClosedOnEscape: unknown;
    static ngAcceptInputType_isHandleCloseOnDismiss: unknown;
    static ngAcceptInputType_isHandleCloseOnClose: unknown;
    static ngAcceptInputType_isHandleCloseOnAccept: unknown;
    static ngAcceptInputType_isHandleCloseOnClickOutside: unknown;
    static ngAcceptInputType_isHandleCloseOnEscape: unknown;
    static ngAcceptInputType_isMessageBox: unknown;
    static ngAcceptInputType_isDraggable: unknown;
    static ngAcceptInputType_hasNoBodyPadding: unknown;
    static ngAcceptInputType_hasFooter: unknown;
}
export declare class EuiDialogHeaderDirective {
    static ɵfac: i0.ɵɵFactoryDeclaration<EuiDialogHeaderDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<EuiDialogHeaderDirective, "eui-dialog-header", never, {}, {}, never, never, true, never>;
}
export declare class EuiDialogFooterDirective {
    static ɵfac: i0.ɵɵFactoryDeclaration<EuiDialogFooterDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<EuiDialogFooterDirective, "eui-dialog-footer", never, {}, {}, never, never, true, never>;
}
//# sourceMappingURL=eui-dialog.component.d.ts.map