import { ReactiveLayoutItemSettings, IReactiveLayoutItemsSettingsStore, BlockSettings, IMessageBusTopicSubscription } from "../../../models";
import { MessageBusTopicMediator } from "../../../core";
interface ReactiveLayoutItemSettingsExtends extends ReactiveLayoutItemSettings {
    readyWatchSettings?: boolean;
}
export declare class ReactiveLayoutItemsSettingsStore implements IReactiveLayoutItemsSettingsStore {
    private settings;
    onSettingsElementUpdated: MessageBusTopicMediator<ReactiveLayoutItemSettings>;
    onSettingUpdated: MessageBusTopicMediator<ReactiveLayoutItemSettings>;
    private _messages;
    private _state;
    private _vm;
    private _uniqueSuffix;
    constructor(settings: {
        [key: string]: any;
    });
    updateSetting(value: ReactiveLayoutItemSettings): void;
    getSetting(key: string): ReactiveLayoutItemSettings;
    hasSetting(key: string): boolean;
    copySetting(existingKey: string, newKey: string): ReactiveLayoutItemSettings;
    deleteSetting(key: string): void;
    resetSetting(key: string): void;
    updateSettingsElement(id: string, element: string): void;
    registerWatchSettings(settings: ReactiveLayoutItemSettingsExtends): void;
    getSettingsSubcriber<TSettings = void>(settingKey: string): IMessageBusTopicSubscription<TSettings>;
    getSettings(): BlockSettings;
    destroy(): void;
    private notifySettingsChanged;
    private getMessageBusTopicMediator;
    private makeReactiveSafeName;
    private createReactiveSetting;
}
export {};
