import * as Data from "../Data/Interfaces.js";
import { default as BaseModel, IBaseModelOptions } from "./BaseModel.js";
import SetModel from "./SetModel.js";
import ArbiterModel from "./ArbiterModel.js";
import RootModel from "./RootModel.js";
import ContextAttributes from "./ContextAttributes.js";
import { GlobalEnvironment } from "../Environment/GlobalEnvironment.js";
import StorageManager from "./Storage/StorageManager.js";
export interface IContextModelOptions extends IBaseModelOptions {
    parent: RootModel;
    data: Data.IContextData;
}
export default class ContextModel extends BaseModel {
    private m_attributes;
    private m_arbiter;
    private m_set;
    private m_data;
    private m_parent;
    private m_environment;
    private m_storage;
    constructor(options: IContextModelOptions);
    get attributes(): ContextAttributes;
    get arbiter(): ArbiterModel;
    get featureSet(): SetModel;
    get parent(): RootModel;
    get globals(): GlobalEnvironment;
    get storage(): StorageManager;
    get data(): Data.IContextData;
    toJSON(): Data.IContextData;
}
