import { IDataDefinition } from "./IDataDefinition";
import { IDataDefinitionOwner } from "../IDataDefinitionOwner";
import { XDataType } from "../XDataType";
import { IConfigStorage } from "../../IConfigStorage";
import { ValidationIssue } from "../../IDesignValidationProvider";
export declare abstract class BaseDataDefinition<T> implements IDataDefinition, IConfigStorage {
    readonly abstract type: XDataType;
    name: string;
    list: boolean;
    description?: string;
    valueIsDefault: boolean;
    owner?: IDataDefinitionOwner;
    constructor(name?: string);
    getValue(): T | undefined;
    setValue(value: T): void;
    getListValue(): T[] | undefined;
    setListValue(value: T[]): void;
    getStorageData(): object;
    setStorageData(data: object): void;
    abstract verifyValueType(value: any): ValidationIssue | undefined;
    abstract convert(value: any): any;
}
