import { ConfigurationItem, IDynamicProperty } from "../abstractions"; import { ConfigurationManager } from "../configurationManager"; import * as rx from 'rxjs'; export interface IUpdatableProperty { updateValue(val: ConfigurationItem): any; } export declare class DynamicProperty implements IDynamicProperty, IUpdatableProperty { protected manager: ConfigurationManager; name: string; protected defaultValue: T; protected val: T; protected removed: boolean; protected notifying: boolean; private _propertyChanged; constructor(manager: ConfigurationManager, name: string, defaultValue: T); readonly propertyChanged: rx.Observable>; readonly value: T; set(val: T): void; updateValue(item: ConfigurationItem): void; protected onPropertyChanged(): void; dispose(): void; toJSON(key: string): string; }