import { UmbLitElement } from '../../../lit-element/index.js';
import { type UmbPropertyEditorConfig } from '../../../property-editor/index.js';
import type { UmbPropertyTypeAppearanceModel, UmbPropertyTypeValidationModel } from '../../../../content/content-type/index.js';
/**
 *  @element umb-property
 *  @description Component for displaying a property with editor from extension registry.
 *	The Element will render a Property Editor based on the Property Editor UI alias passed to the element.
 *  This will also render all Property Actions related to the Property Editor UI Alias.
 */
export declare class UmbPropertyElement extends UmbLitElement {
    #private;
    /**
     * Label. Name of the property
     * @type {string}
     * @default
     */
    set label(label: string | undefined);
    get label(): string | undefined;
    /**
     * Description: render a description underneath the label.
     * @type {string}
     * @default
     */
    set description(description: string | undefined);
    get description(): string | undefined;
    /**
     * Appearance: Appearance settings for the property.
     */
    set appearance(appearance: UmbPropertyTypeAppearanceModel | undefined);
    get appearance(): UmbPropertyTypeAppearanceModel | undefined;
    /**
     * Alias
     * @public
     * @type {string}
     * @default
     */
    set alias(alias: string);
    get alias(): string;
    /**
     * Property Editor UI Alias. Render the Property Editor UI registered for this alias.
     * @public
     * @type {string}
     * @default
     */
    set propertyEditorUiAlias(value: string | undefined);
    get propertyEditorUiAlias(): string;
    private _propertyEditorUiAlias?;
    set propertyEditorDataSourceAlias(value: string | undefined);
    get propertyEditorDataSourceAlias(): string | undefined;
    /**
     * Config. Configuration to pass to the Property Editor UI. This is also the configuration data stored on the Data Type.
     * @public
     * @type {string}
     * @default
     */
    set config(value: UmbPropertyEditorConfig | undefined);
    get config(): UmbPropertyEditorConfig | undefined;
    /**
     * Validation: Validation settings for the property.
     */
    set validation(validation: UmbPropertyTypeValidationModel | undefined);
    get validation(): UmbPropertyTypeValidationModel | undefined;
    /**
     * DataPath, declare the path to the value of the data that this property represents.
     * @public
     * @type {string}
     * @default
     */
    set dataPath(dataPath: string | undefined);
    get dataPath(): string | undefined;
    /**
     * Sets the property to readonly, meaning value cannot be changed but still able to read and select its content.
     * @type {boolean}
     * @default false
     */
    private _readonly;
    set readonly(value: boolean);
    get readonly(): boolean;
    private _variantDifferenceTerm?;
    private _element?;
    private _invalid?;
    private _alias?;
    private _label?;
    private _description?;
    private _orientation;
    private _mandatory?;
    private _supportsReadOnly;
    private _isReadOnly;
    constructor();
    private _onPropertyEditorChange;
    private _observePropertyEditorUI;
    private _gotEditorUI;
    render(): import("lit-html").TemplateResult<1>;
    static styles: import("lit").CSSResult[];
}
declare global {
    interface HTMLElementTagNameMap {
        'umb-property': UmbPropertyElement;
    }
}
