import { IPropertiesService, RefreshMode } from '../IPropertiesService.js';
import { IProperty } from '../IProperty.js';
import { IDesignItem } from '../../../item/IDesignItem.js';
import { ValueType } from '../ValueType.js';
import { BindingTarget } from '../../../item/BindingTarget.js';
import { IBinding } from '../../../item/IBinding.js';
import { IPropertyGroup } from '../IPropertyGroup.js';
import { IContextMenuItem } from '../../../helper/contextMenu/IContextMenuItem.js';
export declare abstract class AbstractPropertiesService implements IPropertiesService {
    constructor(recreateElementsOnPropertyChange?: boolean);
    protected _recreateElementsOnPropertyChange: boolean;
    private static _stylesCache;
    private _cssCacheClearTimer;
    private static _bindingsCache;
    private static _bindingsCacheClearTimer;
    abstract getRefreshMode(designItem: IDesignItem): RefreshMode;
    abstract isHandledElement(designItem: IDesignItem): boolean;
    protected _notifyChangedProperty(designItem: IDesignItem, property: IProperty, value: any): void;
    getProperty(designItem: IDesignItem, name: string): Promise<IProperty>;
    abstract getProperties(designItem: IDesignItem): Promise<IProperty[] | IPropertyGroup[]>;
    setValue(designItems: IDesignItem[], property: IProperty, value: any): Promise<void>;
    getPropertyTarget(designItem: IDesignItem, property: IProperty): BindingTarget;
    clearValue(designItems: IDesignItem[], property: IProperty, clearType: 'all' | 'binding' | 'value'): void;
    isSet(designItems: IDesignItem[], property: IProperty): ValueType;
    static getOrBuildCachedBindings(designItem: IDesignItem): IBinding[];
    getValue(designItems: IDesignItem[], property: IProperty): any;
    getBinding(designItems: IDesignItem[], property: IProperty): IBinding;
    getUnsetValue(designItems: IDesignItem[], property: IProperty): any;
    protected static recreateElements(service: IPropertiesService, designItems: IDesignItem[]): void;
    getContextMenu(designItems: IDesignItem[], property: IProperty): IContextMenuItem[];
}
