import { DataColumnCollection, DataType } from '../Data.module';
export interface DataColumnJSON {
    dataType: DataType;
    name: string;
    index: number;
    width: number;
    id: string;
}
interface IWithId {
    id: string;
}
/**
 * Класс колонки данных
 */
export declare class DataColumn implements IWithId {
    protected _columnCollection: DataColumnCollection | null;
    protected _dataType: DataType;
    protected _name: string;
    protected _index: number;
    protected _symbol: string;
    protected _width: number;
    id: string;
    private readonly _MIN_WIDTH_COLUMN;
    /** Конструктор
     * Не предназначен для использования внешним кодом.
     * Следует использовать DataColumn.createNew()
     */
    constructor();
    static createNew(name: string, dataType?: DataType): DataColumn;
    static fromJSON(json: DataColumnJSON | string): DataColumn;
    toJSON(): DataColumnJSON;
    /**
     * Ширина колонки
     */
    get width(): number;
    set width(value: number);
    /**
     * Индекс колонки в коллекции
     */
    get index(): number;
    set index(value: number);
    /**
     * Символический индекс колонки в коллекции (A, B, и т.д.)
     */
    get symbol(): string;
    /**
     * Задает коллекцию, в которой находится колонка
     * @param columnCollection Коллекция
     */
    setCollection(columnCollection: DataColumnCollection | null): void;
    /**
     * Возвращает тип данных колонки
     */
    get dataType(): DataType;
    /**
     * Задает тип данных колонки
     */
    set dataType(value: DataType);
    /**
     * Возвращает имя колонки
     */
    get name(): string;
    /**
     * Задает имя колонки
     */
    set name(value: string);
}
export {};
