import { XDataTreeValue } from "./XDataTreeValue";
import { IDataDefinition } from "./Definitions/IDataDefinition";
import { IDataDefinitionOwner } from "./IDataDefinitionOwner";
import { XDataType } from "./XDataType";
import { IConfigStorage } from "../IConfigStorage";
export declare class XDataDefinition implements IDataDefinitionOwner, IConfigStorage {
    fields: IDataDefinition[];
    value: {
        [propertyName: string]: any;
    };
    toJSONSchema(fields?: IDataDefinition[]): string;
    toJSONObject(dataObj?: object, fields?: IDataDefinition[]): string;
    mergeJSONSchema(schema: string, removeItemsNotInSchema?: boolean, reorderElementsToMatchSchema?: boolean): void;
    private static validateSchema;
    private static parseSchemaNode;
    private static parseProperty;
    static reconcileFieldList(removeItemsNotInSchema: boolean, reorderElementsToMatch: boolean, newFieldList: IDataDefinition[], newFieldsMap: {
        [p: string]: IDataDefinition;
    }, existingFields: IDataDefinition[]): IDataDefinition[];
    mergeJSON(json: string, removeItemsNotInSchema?: boolean, reorderElementsToMatch?: boolean): void;
    mergeObject(data: object, removeItemsNotInSchema?: boolean, reorderElementsToMatch?: boolean): void;
    toSampleJson(): string;
    toSampleObject(): object;
    getFieldByDataPath(dataPath: string): IDataDefinition | undefined;
    getDataValues(type: XDataType | {}, isList: boolean): XDataTreeValue[];
    private static _TYPEMAP;
    private static TYPEMAPFILLED;
    private static fillTypeMap;
    static get TYPEMAP(): {
        [p: string]: IDataDefinition;
    };
    getValueObject(): {
        [p: string]: any;
    };
    getStorageData(): object;
    setStorageData(data: object): void;
}
