import * as _angular_core from '@angular/core';
import { AfterViewInit, ElementRef, Injector } from '@angular/core';
import _Form from '@ui5/webcomponents/dist/Form.js';

declare class Form implements AfterViewInit {
    /**
     * Defines the accessible ARIA name of the component.
     */
    accessibleName: _angular_core.InputSignal<string | undefined>;
    /**
     * Defines id (or many ids) of the element (or elements) that label the component.
     */
    accessibleNameRef: _angular_core.InputSignal<string | undefined>;
    /**
     * Defines the accessibility mode of the component in "edit" and "display" use-cases.
  
  Based on the mode, the component renders different HTML elements and ARIA attributes,
  which are appropriate for the use-case.
  
  **Usage:**
  - Set this property to "Display", when the form consists of non-editable (e.g. texts) form items.
  - Set this property to "Edit", when the form consists of editable (e.g. input fields) form items.
     */
    accessibleMode: _angular_core.InputSignal<"Display" | "Edit" | undefined>;
    /**
     * Defines the number of columns to distribute the form content by breakpoint.
  
  Supported values:
  - `S` - 1 column by default (1 column is recommended)
  - `M` - 1 column by default (up to 2 columns are recommended)
  - `L` - 2 columns by default (up to 3 columns are recommended)
  - `XL` - 3 columns by default (up to 6 columns  are recommended)
     */
    layout: _angular_core.InputSignal<string | undefined>;
    /**
     * Defines the width proportion of the labels and fields of a form item by breakpoint.
  
  By default, the labels take 4/12 (or 1/3) of the form item in M,L and XL sizes,
  and 12/12 in S size, e.g in S the label is on top of its associated field.
  
  The supported values are between 1 and 12. Greater the number, more space the label will use.
  
  **Note:** If "12" is set, the label will be displayed on top of its assosiated field.
     */
    labelSpan: _angular_core.InputSignal<string | undefined>;
    /**
     * Defines the number of cells that are empty at the end of each form item, configurable by breakpoint.
  
  By default, a form item spans 12 cells, fully divided between its label (4 cells) and field (8 cells), with no empty space at the end.
  The `emptySpan` provides additional layout flexibility by defining empty space at the form item’s end.
  
  **Note:**
  - The maximum allowable empty space is 10 cells. At least 1 cell each must remain for the label and the field.
  - When `emptySpan` is specified (greater than 0), ensure that the combined value of `emptySpan` and `labelSpan` does not exceed 11. This guarantees a minimum of 1 cell for the field.
     */
    emptySpan: _angular_core.InputSignal<string | undefined>;
    /**
     * Defines the header text of the component.
  
  **Note:** The property gets overridden by the `header` slot.
     */
    headerText: _angular_core.InputSignal<string | undefined>;
    /**
     * Defines the compoennt heading level,
  set by the `headerText`.
     */
    headerLevel: _angular_core.InputSignal<"H1" | "H2" | "H3" | "H4" | "H5" | "H6" | undefined>;
    /**
     * Defines the vertical spacing between form items.
  
  **Note:** If the Form is meant to be switched between "display"("non-edit") and "edit" modes,
  we recommend using "Large" item spacing in "display"("non-edit") mode, and "Normal" - for "edit" mode,
  to avoid "jumping" effect, caused by the hight difference between texts in "display"("non-edit") mode and the input fields in "edit" mode.
     */
    itemSpacing: _angular_core.InputSignal<"Normal" | "Large" | undefined>;
    /**
     * 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 component header area.
  
  **Note:** When a `header` is provided, the `headerText` property is ignored.
     * - **(default)**: Defines the component content - FormGroups or FormItems.
  
  **Note:** Mixing FormGroups and standalone FormItems (not belonging to a group) is not supported.
  Either use FormGroups and make sure all FormItems are part of a FormGroup, or use just FormItems without any FormGroups.
     *
     * @example
     * ```html
     * <ui5-form>
     *   <div slot="header">Custom header content</div>
     *   <p>Default slot content</p>
     * </ui5-form>
     * ```
     *
     * @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<_Form>;
    injector: Injector;
    get element(): _Form;
    ngAfterViewInit(): void;
    static ɵfac: _angular_core.ɵɵFactoryDeclaration<Form, never>;
    static ɵcmp: _angular_core.ɵɵComponentDeclaration<Form, "ui5-form, [ui5-form]", ["ui5Form"], { "accessibleName": { "alias": "accessibleName"; "required": false; "isSignal": true; }; "accessibleNameRef": { "alias": "accessibleNameRef"; "required": false; "isSignal": true; }; "accessibleMode": { "alias": "accessibleMode"; "required": false; "isSignal": true; }; "layout": { "alias": "layout"; "required": false; "isSignal": true; }; "labelSpan": { "alias": "labelSpan"; "required": false; "isSignal": true; }; "emptySpan": { "alias": "emptySpan"; "required": false; "isSignal": true; }; "headerText": { "alias": "headerText"; "required": false; "isSignal": true; }; "headerLevel": { "alias": "headerLevel"; "required": false; "isSignal": true; }; "itemSpacing": { "alias": "itemSpacing"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
}

export { Form };
