import * as Data from "../Data/Interfaces.js";
import { IEditor } from "../Data/Interfaces.js";
import Model from "../Data/Model.js";
import FeatureModel, { ISetValueOptions } from "./FeatureModel.js";
import GroupModel from "./GroupModel.js";
import SetModel from "./SetModel.js";
import RootModel from "./RootModel.js";
import ControllerModel from "./ControllerModel.js";
export interface IEditorModelOptions {
    data: IEditor;
    feature: FeatureModel;
}
export default class EditorModel extends Model {
    private m_feature;
    constructor(options: IEditorModelOptions);
    get feature(): FeatureModel;
    get group(): GroupModel;
    get set(): SetModel;
    get root(): RootModel;
    get controller(): ControllerModel;
    get attributes(): Data.IDictionary;
    get script(): string;
    get uid(): string;
    getFeatureValue(name: string, defaultValue?: any): any;
    setFeatureValue(name: string, value: any, options?: ISetValueOptions): void;
    getRemoteFeatureValue(name: string, defaultValue?: any): any;
    setRemoteFeatureValue(name: string, value: any, options?: ISetValueOptions): void;
    private setSilence;
    private setChangeSource;
}
