import { TemplateResult } from "lit";
import "@openremote/or-asset-tree";
import "@openremote/or-translate";
import "@openremote/or-mwc-components/or-mwc-input";
import "@openremote/or-mwc-components/or-mwc-list";
import { OrMwcInput } from "@openremote/or-mwc-components/or-mwc-input";
import { Attribute, AttributeDescriptor } from "@openremote/model";
import { DialogAction, DialogActionBase, OrMwcDialog } from "@openremote/or-mwc-components/or-mwc-dialog";
export declare abstract class AttributePickerPickedEvent extends CustomEvent<any> {
}
/**
 * @summary Abstract implementation of the Attribute Picker UI. Wraps around OrMwcDialog and provides some utility properties and functions to inherit.
 *
 * @attribute {boolean} multiSelect - Whether selecting multiple attributes is allowed or not.
 * @attribute {boolean} showOnlyDatapointAttrs - Whether only attributes with the 'STORE_DATAPOINT' meta item should be shown.
 * @attribute {boolean} showOnlyRuleStateAttrs - Whether only attributes with the 'RULE_STATE' meta item should be shown.
 *
 * @remarks This class is abstract
 */
export declare abstract class AttributePicker extends OrMwcDialog {
    protected abstract _setDialogContent(): void;
    protected abstract _setDialogActions(): void;
    multiSelect?: boolean;
    showOnlyDatapointAttrs?: boolean;
    showOnlyRuleStateAttrs?: boolean;
    protected addBtn: OrMwcInput;
    connectedCallback(): void;
    setShowOnlyDatapointAttrs(showOnlyDatapointAttrs: boolean | undefined): this;
    setShowOnlyRuleStateAttrs(showOnlyRuleStateAttrs: boolean | undefined): this;
    setMultiSelect(multiSelect: boolean | undefined): this;
    setOpen(isOpen: boolean): this;
    setHeading(heading: TemplateResult | string | undefined): this;
    setContent(_content: TemplateResult | (() => TemplateResult) | undefined): this;
    setActions(_actions: DialogAction[] | undefined): this;
    setDismissAction(_action: DialogActionBase | null | undefined): this;
    setStyles(_styles: string | TemplateResult | undefined): this;
    setAvatar(_avatar: boolean | undefined): this;
    /**
     * Convenient function to update the dialog content manually,
     * since updating the UI is handled different for {@link OrMwcDialog}.
     */
    protected _updateDialogContent(): void;
    /**
     * Convenient function to update the dialog actions manually,
     * since updating the UI is handled different for {@link OrMwcDialog}.
     */
    protected _updateDialogActions(): void;
    /**
     * Function that creates the HTML template for selecting attributes.
     * Currently uses {@link OrMwcList} with or without checkboxes, and uses {@link Util.getAttributeLabel} to formulate the text.
     *
     * @remarks TODO: Move this template into a separate component, such as an "or-attribute-list"
     */
    protected _getAttributesTemplate(attributes?: Attribute<any>[], descriptors?: AttributeDescriptor[], selectedNames?: string[], multi?: boolean, onSelect?: (attrNames: string[]) => void): Promise<TemplateResult>;
    /**
     * Simple function that creates the CSS styles for this component
     */
    protected _getStyles(): string;
}
//# sourceMappingURL=attribute-picker.d.ts.map