import { TemplateRef, AfterViewInit, OnDestroy, EventEmitter, QueryList, ElementRef } from '@angular/core';
import { TemplatePortal } from '@angular/cdk/portal';
import { BaseStatesDirective } from '@eui/components/shared';
import * as i0 from "@angular/core";
import * as i1 from "@eui/components/shared";
/**
 * @description
 * Component for displaying modal message boxes with structured content and customizable actions.
 * This component provides a user-friendly interface for confirmation dialogs, alerts, and other
 * types of modal messages.
 *
 * The component supports various styling variants through the BaseStatesDirective hostDirective,
 * customizable buttons, and configurable behavior for dialog actions.
 */
export declare class EuiMessageBoxComponent implements AfterViewInit, OnDestroy {
    /**
     * Data attribute for e2e testing purposes.
     * @default 'eui-dialog'
     */
    e2eAttr: string;
    /**
     * Title text displayed in the message box header.
     */
    title: string;
    /**
     * Width of the message box.
     * @default '33rem'
     */
    width: string;
    /**
     * Height of the message box.
     * @default 'auto'
     */
    height: string;
    /**
     * Whether to show the accept/confirm button.
     * @default true
     */
    hasAcceptButton: boolean;
    /**
     * Whether to show the dismiss/cancel button.
     * @default true
     */
    hasDismissButton: boolean;
    /**
     * Label for the accept/confirm button. Can be a translation key.
     * @default 'eui.OK'
     */
    acceptLabel: string;
    /**
     * Label for the dismiss/cancel button. Can be a translation key.
     * @default 'eui.CANCEL'
     */
    dismissLabel: string;
    /**
     * Whether to manually handle closing the dialog on dismiss button click.
     * @default false
     */
    isHandleCloseOnDismiss: boolean;
    /**
     * Whether to manually handle closing the dialog on close button click.
     * @default false
     */
    isHandleCloseOnClose: boolean;
    /**
     * Whether to manually handle closing the dialog on accept button click.
     * @default false
     */
    isHandleCloseOnAccept: boolean;
    /**
     * Whether the message box can be dragged around the screen.
     * @default false
     */
    isDraggable: boolean;
    /**
     * Whether to remove padding from the message box body.
     * @default false
     */
    hasNoBodyPadding: boolean;
    /**
     * Event emitted when the message box opens.
     */
    messageBoxOpen: EventEmitter<any>;
    /**
     * Event emitted when the message box closes.
     */
    messageBoxClose: EventEmitter<any>;
    /**
     * Event emitted when the dismiss/cancel button is clicked.
     */
    dismiss: EventEmitter<any>;
    /**
     * Event emitted when the accept/confirm button is clicked.
     */
    accept: EventEmitter<any>;
    /**
     * Reference to the template containing the message box content.
     * This will be used to create a portal for the content section.
     */
    templateRefContent: TemplateRef<ElementRef>;
    /**
     * Reference to the template containing the message box footer.
     * This will be used to create a portal for the footer section.
     */
    templateRefFooter: TemplateRef<EuiMessageBoxFooterDirective>;
    /**
     * Reference to any custom footer content provided through the eui-message-box-footer directive.
     * Forward reference is used to resolve the circular dependency between the component and directive.
     */
    euiMessageBoxFooterDirective: QueryList<EuiMessageBoxFooterDirective>;
    baseStatesDirective: BaseStatesDirective;
    /**
     * Content that will be displayed in the message box body.
     * Can be either a simple string message or a TemplatePortal for more complex content.
     */
    content: string | TemplatePortal;
    /**
     * Portal instance for the content section of the message box.
     * Created from the templateRefContent template reference.
     */
    private templatePortalContent;
    /**
     * Portal instance for the footer section of the message box.
     * Created from the templateRefFooter template reference when a custom footer is provided.
     */
    private templatePortalFooter;
    /**
     * Subject used for cleaning up subscriptions when the component is destroyed.
     */
    private destroy$;
    private viewContainerRef;
    private euiMessageBoxService;
    /**
     * Lifecycle hook called after Angular has fully initialized the component's view.
     * Creates the template portals for content and footer (if available).
     */
    ngAfterViewInit(): void;
    /**
     * Lifecycle hook that's called when the component is destroyed.
     * Cleans up any subscriptions to prevent memory leaks.
     */
    ngOnDestroy(): void;
    /**
     * Opens the message box with the current configuration.
     * This method configures and displays the message box using the EuiMessageBoxService.
     */
    openMessageBox<HC, HCC, BC, BCC, FC, FCC>(): void;
    /**
     * Closes the currently open message box.
     * This method uses the EuiMessageBoxService to close the dialog.
     */
    closeMessageBox(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<EuiMessageBoxComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<EuiMessageBoxComponent, "eui-message-box", never, { "e2eAttr": { "alias": "e2eAttr"; "required": false; }; "title": { "alias": "title"; "required": false; }; "width": { "alias": "width"; "required": false; }; "height": { "alias": "height"; "required": false; }; "hasAcceptButton": { "alias": "hasAcceptButton"; "required": false; }; "hasDismissButton": { "alias": "hasDismissButton"; "required": false; }; "acceptLabel": { "alias": "acceptLabel"; "required": false; }; "dismissLabel": { "alias": "dismissLabel"; "required": false; }; "isHandleCloseOnDismiss": { "alias": "isHandleCloseOnDismiss"; "required": false; }; "isHandleCloseOnClose": { "alias": "isHandleCloseOnClose"; "required": false; }; "isHandleCloseOnAccept": { "alias": "isHandleCloseOnAccept"; "required": false; }; "isDraggable": { "alias": "isDraggable"; "required": false; }; "hasNoBodyPadding": { "alias": "hasNoBodyPadding"; "required": false; }; }, { "messageBoxOpen": "messageBoxOpen"; "messageBoxClose": "messageBoxClose"; "dismiss": "dismiss"; "accept": "accept"; }, ["euiMessageBoxFooterDirective"], ["*", "eui-message-box-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_hasAcceptButton: unknown;
    static ngAcceptInputType_hasDismissButton: unknown;
    static ngAcceptInputType_isHandleCloseOnDismiss: unknown;
    static ngAcceptInputType_isHandleCloseOnClose: unknown;
    static ngAcceptInputType_isHandleCloseOnAccept: unknown;
    static ngAcceptInputType_isDraggable: unknown;
    static ngAcceptInputType_hasNoBodyPadding: unknown;
}
export declare class EuiMessageBoxFooterDirective {
    static ɵfac: i0.ɵɵFactoryDeclaration<EuiMessageBoxFooterDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<EuiMessageBoxFooterDirective, "eui-message-box-footer", never, {}, {}, never, never, true, never>;
}
//# sourceMappingURL=eui-message-box.component.d.ts.map