import { AttributePicker, AttributePickerPickedEvent } from "./attribute-picker";
import { Asset, Attribute, AttributeRef } from "@openremote/model";
import { OrAssetTreeSelectionEvent } from "@openremote/or-asset-tree";
/**
 * Custom Event that is dispatched upon closing the dialog.
 * Contains a list of {@link AttributeRef} of the selected attributes.
 */
export declare class OrAssetAttributePickerPickedEvent extends AttributePickerPickedEvent {
    static readonly NAME = "or-asset-attribute-picker-picked";
    constructor(attrRefs: AttributeRef[]);
}
declare global {
    export interface HTMLElementEventMap {
        [OrAssetAttributePickerPickedEvent.NAME]: OrAssetAttributePickerPickedEvent;
    }
}
/**
 * The "Attribute Picker" component using the {@link OrAssetTree} component for selecting assets and its attributes.
 *
 * @attribute {object} attributeFilter - Callback method for consumers to filter the attribute list shown. Returning true will make the attribute visible, returning false hides it.
 */
export declare class OrAssetAttributePicker extends AttributePicker {
    attributeFilter?: (attribute: Attribute<any>) => boolean;
    protected _assetAttributes?: (Attribute<any>)[];
    selectedAssets: string[];
    selectedAttributes: AttributeRef[];
    protected _asset?: Asset;
    setAttributeFilter(attributeFilter: ((attribute: Attribute<any>) => boolean) | undefined): this;
    setSelectedAssets(selectedAssets: string[]): this;
    setSelectedAttributes(selectedAttributes: AttributeRef[]): this;
    protected _setDialogActions(): void;
    protected _setDialogContent(): void;
    /**
     * Event callback function that is triggered once a user selects an asset.
     * It fetches the attributes of that specific asset, and caches these to be displayed later.
     * Also applies the filtering such as {@link showOnlyDatapointAttrs}, {@link showOnlyRuleStateAttrs} and {@link attributeFilter} if set.
     */
    protected _onAssetSelectionChanged(event: OrAssetTreeSelectionEvent): Promise<void>;
    /**
     * HTML Callback function when the selected attributes have been updated.
     *
     * @remarks
     * The {@link attrNames} parameter contains a list of attribute names VISIBLE in the list.
     * So, selected attributes of other assets, will merge together with the new {@link attrNames}.
     */
    protected _onAttributesSelect(attrNames: string[]): void;
}
//# sourceMappingURL=asset-attribute-picker.d.ts.map