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

declare class Button implements AfterViewInit {
    /**
     * Defines the component design.
     */
    design: _angular_core.InputSignal<"Default" | "Positive" | "Negative" | "Transparent" | "Emphasized" | "Attention" | undefined>;
    /**
     * Defines whether the component is disabled.
  A disabled component can't be pressed or
  focused, and it is not in the tab chain.
     */
    disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
    /**
     * Defines the icon, displayed as graphical element within the component.
  The SAP-icons font provides numerous options.
  
  Example:
  See all the available icons within the [Icon Explorer](https://sdk.openui5.org/test-resources/sap/m/demokit/iconExplorer/webapp/index.html).
     */
    icon: _angular_core.InputSignal<string | undefined>;
    /**
     * Defines the icon, displayed as graphical element within the component after the button text.
  
  **Note:** It is highly recommended to use `endIcon` property only together with `icon` and/or `text` properties.
  Usage of `endIcon` only should be avoided.
  
  The SAP-icons font provides numerous options.
  
  Example:
  See all the available icons within the [Icon Explorer](https://sdk.openui5.org/test-resources/sap/m/demokit/iconExplorer/webapp/index.html).
     */
    endIcon: _angular_core.InputSignal<string | undefined>;
    /**
     * When set to `true`, the component will
  automatically submit the nearest HTML form element on `press`.
  
  **Note:** This property is only applicable within the context of an HTML Form element.`
     */
    submits: _angular_core.InputSignalWithTransform<boolean, unknown>;
    /**
     * Defines the tooltip of the component.
  
  **Note:** A tooltip attribute should be provided for icon-only buttons, in order to represent their exact meaning/function.
     */
    tooltip: _angular_core.InputSignal<string | undefined>;
    /**
     * Defines the accessible ARIA name of the component.
     */
    accessibleName: _angular_core.InputSignal<string | undefined>;
    /**
     * Receives id(or many ids) of the elements that label the component.
     */
    accessibleNameRef: _angular_core.InputSignal<string | undefined>;
    /**
     * Defines the additional accessibility attributes that will be applied to the component.
  The following fields are supported:
  
  - **expanded**: Indicates whether the button, or another grouping element it controls, is currently expanded or collapsed.
  Accepts the following string values: `true` or `false`
  
  - **hasPopup**: Indicates the availability and type of interactive popup element, such as menu or dialog, that can be triggered by the button.
  Accepts the following string values: `dialog`, `grid`, `listbox`, `menu` or `tree`.
  
  - **ariaLabel**: Defines the accessible ARIA name of the component.
  Accepts any string value.
  
   - **ariaKeyShortcuts**: Defines keyboard shortcuts that activate or give focus to the button.
  
  - **controls**: Identifies the element (or elements) whose contents or presence are controlled by the button element.
  Accepts a lowercase string value.
     */
    accessibilityAttributes: _angular_core.InputSignal<ButtonAccessibilityAttributes | undefined>;
    /**
     * Defines the accessible description of the component.
     */
    accessibleDescription: _angular_core.InputSignal<string | undefined>;
    /**
     * Defines whether the button has special form-related functionality.
  
  **Note:** This property is only applicable within the context of an HTML Form element.
     */
    type: _angular_core.InputSignal<"Button" | "Submit" | "Reset" | undefined>;
    /**
     * Describes the accessibility role of the button.
  
  **Note:** Use <code>ButtonAccessibleRole.Link</code> role only with a press handler, which performs a navigation. In all other scenarios the default button semantics are recommended.
     */
    accessibleRole: _angular_core.InputSignal<"Button" | "Link" | undefined>;
    /**
     * Defines whether the button shows a loading indicator.
  
  **Note:** If set to `true`, a busy indicator component will be displayed on the related button.
     */
    loading: _angular_core.InputSignalWithTransform<boolean, unknown>;
    /**
     * Specifies the delay in milliseconds before the loading indicator appears within the associated button.
     */
    loadingDelay: _angular_core.InputSignal<number | undefined>;
    /**
     * Fired when the component is activated either with a mouse/tap or by using the Enter or Space key.
  
  **Note:** The event will not be fired if the `disabled` property is set to `true`.
     */
    ui5Click: _angular_core.OutputEmitterRef<UI5CustomEvent<_Button, "click">>;
    /**
     * 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.
     *
     * - **(default)**: Defines the text of the component.
  
  **Note:** Although this slot accepts HTML Elements, it is strongly recommended that you only use text in order to preserve the intended design.
     * - **badge**: Adds a badge to the button.
     *
     * @example
     * ```html
     * <ui5-button>
     *   <div slot="header">Custom header content</div>
     *   <p>Default slot content</p>
     * </ui5-button>
     * ```
     *
     * @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;
        since?: undefined;
    } | {
        name: string;
        description: string;
        since: string;
    })[];
    elementRef: ElementRef<_Button>;
    injector: Injector;
    get element(): _Button;
    ngAfterViewInit(): void;
    static ɵfac: _angular_core.ɵɵFactoryDeclaration<Button, never>;
    static ɵcmp: _angular_core.ɵɵComponentDeclaration<Button, "ui5-button, [ui5-button]", ["ui5Button"], { "design": { "alias": "design"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "endIcon": { "alias": "endIcon"; "required": false; "isSignal": true; }; "submits": { "alias": "submits"; "required": false; "isSignal": true; }; "tooltip": { "alias": "tooltip"; "required": false; "isSignal": true; }; "accessibleName": { "alias": "accessibleName"; "required": false; "isSignal": true; }; "accessibleNameRef": { "alias": "accessibleNameRef"; "required": false; "isSignal": true; }; "accessibilityAttributes": { "alias": "accessibilityAttributes"; "required": false; "isSignal": true; }; "accessibleDescription": { "alias": "accessibleDescription"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "accessibleRole": { "alias": "accessibleRole"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "loadingDelay": { "alias": "loadingDelay"; "required": false; "isSignal": true; }; }, { "ui5Click": "ui5Click"; }, never, ["*"], true, never>;
}

export { Button };
