import * as Data from "../Data/Interfaces.js";
import { default as BaseModel, IBaseModelOptions } from "./BaseModel.js";
import GroupModel from "./GroupModel.js";
import { default as EditorModel } from "./EditorModel.js";
import { default as ErrorModel } from "./ErrorModel.js";
export interface ISetValueOptions {
    postback?: boolean;
    silent?: boolean;
}
export interface IFeatureModelOptions extends IBaseModelOptions {
    parent: GroupModel;
    data: Data.IFeatureData;
}
export default class FeatureModel extends BaseModel {
    private m_errors;
    private m_index;
    private m_parent;
    private m_initializer;
    private m_postbackOnChangeThrottle;
    constructor(options: IFeatureModelOptions);
    get id(): string;
    get attributes(): Data.IDictionary;
    get binding(): string;
    get parent(): GroupModel;
    get initializers(): any;
    get index(): number;
    get errors(): Array<ErrorModel>;
    private get featureSet();
    getEditors(): Array<EditorModel>;
    getValue(id: string, defaultValue?: any): any;
    setValue(id: string, value: any, options?: ISetValueOptions): void;
    getRemoteValue(key: string, defaultValue?: any): any;
    setRemoteValue(key: string, value: string, options?: ISetValueOptions): void;
    setErrors(): void;
    toJSON(): Data.IFeatureData;
    protected onStateChanged(): void;
    private getIndex;
}
