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

declare class Popover implements AfterViewInit {
    /**
     * Defines the header text.
  
  **Note:** If `header` slot is provided, the `headerText` is ignored.
     */
    headerText: _angular_core.InputSignal<string | undefined>;
    /**
     * Determines on which side the component is placed at.
     */
    placement: _angular_core.InputSignal<"Start" | "End" | "Top" | "Bottom" | undefined>;
    /**
     * Determines the horizontal alignment of the component.
     */
    horizontalAlign: _angular_core.InputSignal<"Start" | "End" | "Center" | "Stretch" | undefined>;
    /**
     * Determines the vertical alignment of the component.
     */
    verticalAlign: _angular_core.InputSignal<"Top" | "Bottom" | "Center" | "Stretch" | undefined>;
    /**
     * Defines whether the component should close when
  clicking/tapping outside of the popover.
  If enabled, it blocks any interaction with the background.
     */
    modal: _angular_core.InputSignalWithTransform<boolean, unknown>;
    /**
     * Determines whether the component arrow is hidden.
     */
    hideArrow: _angular_core.InputSignalWithTransform<boolean, unknown>;
    /**
     * Determines if there is no enough space, the component can be placed
  over the target.
     */
    allowTargetOverlap: _angular_core.InputSignalWithTransform<boolean, unknown>;
    /**
     * Defines the ID or DOM Reference of the element at which the popover is shown.
  When using this attribute in a declarative way, you must only use the `id` (as a string) of the element at which you want to show the popover.
  You can only set the `opener` attribute to a DOM Reference when using JavaScript.
     */
    opener: _angular_core.InputSignal<string | HTMLElement | null | 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<_Popover, "before-open">>;
    /**
     * Fired after the component is opened.
     */
    ui5Open: _angular_core.OutputEmitterRef<UI5CustomEvent<_Popover, "open">>;
    /**
     * Fired before the component is closed. This event can be cancelled, which will prevent the popup from closing.
     */
    ui5BeforeClose: _angular_core.OutputEmitterRef<UI5CustomEvent<_Popover, "before-close">>;
    /**
     * Fired after the component is closed.
     */
    ui5Close: _angular_core.OutputEmitterRef<UI5CustomEvent<_Popover, "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.
     * - **footer**: Defines the footer HTML Element.
     * - **(default)**: Defines the content of the Popup.
     *
     * @example
     * ```html
     * <ui5-popover>
     *   <div slot="header">Custom header content</div>
     *   <p>Default slot content</p>
     * </ui5-popover>
     * ```
     *
     * @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<_Popover>;
    injector: Injector;
    get element(): _Popover;
    ngAfterViewInit(): void;
    static ɵfac: _angular_core.ɵɵFactoryDeclaration<Popover, never>;
    static ɵcmp: _angular_core.ɵɵComponentDeclaration<Popover, "ui5-popover, [ui5-popover]", ["ui5Popover"], { "headerText": { "alias": "headerText"; "required": false; "isSignal": true; }; "placement": { "alias": "placement"; "required": false; "isSignal": true; }; "horizontalAlign": { "alias": "horizontalAlign"; "required": false; "isSignal": true; }; "verticalAlign": { "alias": "verticalAlign"; "required": false; "isSignal": true; }; "modal": { "alias": "modal"; "required": false; "isSignal": true; }; "hideArrow": { "alias": "hideArrow"; "required": false; "isSignal": true; }; "allowTargetOverlap": { "alias": "allowTargetOverlap"; "required": false; "isSignal": true; }; "opener": { "alias": "opener"; "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 { Popover };
