import * as _angular_core from '@angular/core';
import { AfterViewInit, ElementRef, Injector } from '@angular/core';
import _Dialog from '@ui5/webcomponents/dist/Dialog.js';
import { UI5CustomEvent } from '@ui5/webcomponents-base';

declare class Dialog implements AfterViewInit {
    /**
     * Defines the header text.
  
  **Note:** If `header` slot is provided, the `headerText` is ignored.
     */
    headerText: _angular_core.InputSignal<string | undefined>;
    /**
     * Determines if the dialog will be stretched to full screen on mobile. On desktop,
  the dialog will be stretched to approximately 90% of the viewport.
  
  **Note:** For better usability of the component it is recommended to set this property to "true" when the dialog is opened on phone.
     */
    stretch: _angular_core.InputSignalWithTransform<boolean, unknown>;
    /**
     * Determines whether the component is draggable.
  If this property is set to true, the Dialog will be draggable by its header.
  
  **Note:** The component can be draggable only in desktop mode.
  
  **Note:** This property overrides the default HTML "draggable" attribute native behavior.
  When "draggable" is set to true, the native browser "draggable"
  behavior is prevented and only the Dialog custom logic ("draggable by its header") works.
     */
    draggable: _angular_core.InputSignalWithTransform<boolean, unknown>;
    /**
     * Configures the component to be resizable.
  If this property is set to true, the Dialog will have a resize handle in its bottom right corner in LTR languages.
  In RTL languages, the resize handle will be placed in the bottom left corner.
  
  **Note:** The component can be resizable only in desktop mode.
  
  **Note:** Upon resizing, externally defined height and width styling will be ignored.
     */
    resizable: _angular_core.InputSignalWithTransform<boolean, unknown>;
    /**
     * Defines the state of the `Dialog`.
  
  **Note:** If `"Negative"` and `"Critical"` states is set, it will change the
  accessibility role to "alertdialog", if the accessibleRole property is set to `"Dialog"`.
     */
    state: _angular_core.InputSignal<"None" | "Positive" | "Critical" | "Negative" | "Information" | undefined>;
    /**
     * Defines the ID of the HTML Element, which will get the initial focus.
  
  **Note:** If an element with `autofocus` attribute is added inside the component,
  `initialFocus` won't take effect.
     */
    initialFocus: _angular_core.InputSignal<string | undefined>;
    /**
     * Defines if the focus should be returned to the previously focused element,
  when the popup closes.
     */
    preventFocusRestore: _angular_core.InputSignalWithTransform<boolean, unknown>;
    /**
     * Defines the accessible name of the component.
     */
    accessibleName: _angular_core.InputSignal<string | undefined>;
    /**
     * Defines the IDs of the elements that label the component.
     */
    accessibleNameRef: _angular_core.InputSignal<string | undefined>;
    /**
     * Allows setting a custom role.
     */
    accessibleRole: _angular_core.InputSignal<"None" | "Dialog" | "AlertDialog" | undefined>;
    /**
     * Defines the accessible description of the component.
     */
    accessibleDescription: _angular_core.InputSignal<string | undefined>;
    /**
     * Receives id(or many ids) of the elements that describe the component.
     */
    accessibleDescriptionRef: _angular_core.InputSignal<string | undefined>;
    /**
     * Indicates whether initial focus should be prevented.
     */
    preventInitialFocus: _angular_core.InputSignalWithTransform<boolean, unknown>;
    /**
     * Indicates if the element is open
     */
    open: _angular_core.InputSignalWithTransform<boolean, unknown>;
    /**
     * Fired before the component is opened. This event can be cancelled, which will prevent the popup from opening.
     */
    ui5BeforeOpen: _angular_core.OutputEmitterRef<UI5CustomEvent<_Dialog, "before-open">>;
    /**
     * Fired after the component is opened.
     */
    ui5Open: _angular_core.OutputEmitterRef<UI5CustomEvent<_Dialog, "open">>;
    /**
     * Fired before the component is closed. This event can be cancelled, which will prevent the popup from closing.
     */
    ui5BeforeClose: _angular_core.OutputEmitterRef<UI5CustomEvent<_Dialog, "before-close">>;
    /**
     * Fired after the component is closed.
     */
    ui5Close: _angular_core.OutputEmitterRef<UI5CustomEvent<_Dialog, "close">>;
    /**
     * Available slots for content projection in this component.
     *
     * Slots allow you to insert custom content into predefined areas of the web component.
     * Use the `slot` attribute on child elements to target specific slots.
     *
     * - **header**: Defines the header HTML Element.
  
  **Note:** When a `ui5-bar` is used in the header, you should remove the default dialog's paddings.
  
  **Note:** If `header` slot is provided, the labelling of the dialog is a responsibility of the application developer.
  `accessibleName` should be used.
     * - **footer**: Defines the footer HTML Element.
  
  **Note:** When a `ui5-bar` is used in the footer, you should remove the default dialog's paddings.
     * - **(default)**: Defines the content of the Popup.
     *
     * @example
     * ```html
     * <ui5-dialog>
     *   <div slot="header">Custom header content</div>
     *   <p>Default slot content</p>
     * </ui5-dialog>
     * ```
     *
     * @readonly
     * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/Web_components/Using_templates_and_slots | MDN Web Components Slots}
     */
    readonly slots: {
        name: string;
        description: string;
    }[];
    elementRef: ElementRef<_Dialog>;
    injector: Injector;
    get element(): _Dialog;
    ngAfterViewInit(): void;
    static ɵfac: _angular_core.ɵɵFactoryDeclaration<Dialog, never>;
    static ɵcmp: _angular_core.ɵɵComponentDeclaration<Dialog, "ui5-dialog, [ui5-dialog]", ["ui5Dialog"], { "headerText": { "alias": "headerText"; "required": false; "isSignal": true; }; "stretch": { "alias": "stretch"; "required": false; "isSignal": true; }; "draggable": { "alias": "draggable"; "required": false; "isSignal": true; }; "resizable": { "alias": "resizable"; "required": false; "isSignal": true; }; "state": { "alias": "state"; "required": false; "isSignal": true; }; "initialFocus": { "alias": "initialFocus"; "required": false; "isSignal": true; }; "preventFocusRestore": { "alias": "preventFocusRestore"; "required": false; "isSignal": true; }; "accessibleName": { "alias": "accessibleName"; "required": false; "isSignal": true; }; "accessibleNameRef": { "alias": "accessibleNameRef"; "required": false; "isSignal": true; }; "accessibleRole": { "alias": "accessibleRole"; "required": false; "isSignal": true; }; "accessibleDescription": { "alias": "accessibleDescription"; "required": false; "isSignal": true; }; "accessibleDescriptionRef": { "alias": "accessibleDescriptionRef"; "required": false; "isSignal": true; }; "preventInitialFocus": { "alias": "preventInitialFocus"; "required": false; "isSignal": true; }; "open": { "alias": "open"; "required": false; "isSignal": true; }; }, { "ui5BeforeOpen": "ui5BeforeOpen"; "ui5Open": "ui5Open"; "ui5BeforeClose": "ui5BeforeClose"; "ui5Close": "ui5Close"; }, never, ["*"], true, never>;
}

export { Dialog };
