import { RawCellContent } from 'hyperformula';
import { EventDispatcher } from '../../events/Events.module';
import { DataRowState, DataTable } from '../Data.module';
import { IWithId } from '../../stateChanger/StateChanger.module';
export interface DataItem {
    guidRow: string;
    guidColumn: string;
    value: any;
}
export interface DataRowJSON {
    items: Array<DataItem>;
    id: string;
}
/**
 * Класс строки данных
 */
export declare class DataRow implements IWithId {
    private _index;
    private _table;
    private _items;
    private _sheetItems;
    private _state;
    private _onDataRowStateChanged;
    id: string;
    constructor();
    /**
     * Индекс строки
     */
    get index(): number;
    set index(value: number);
    static createNew(table: DataTable, items?: RawCellContent[]): DataRow;
    static fromJSON(json: DataRowJSON | string): DataRow;
    toJSON(): DataRowJSON;
    private setItems;
    /** Не предназначен для использования внешним кодом */
    silentSetItems(values: RawCellContent[]): void;
    /**
     * Событие изменения состояния строки
     */
    get onDataRowStateChanged(): EventDispatcher<DataRowStateChangedArg>;
    /**
     * Возврвщает массив оригинальных элементов строки
     */
    get items(): Array<RawCellContent>;
    /**
     * Возврвщает массив рассчитанных элементов строки
     */
    get sheetItems(): Array<RawCellContent>;
    /**
     * Задает массив рассчитанных элементов строки
     */
    set sheetItems(value: Array<RawCellContent>);
    /**
     * Возвращает признак состояния строки
     */
    get state(): DataRowState;
    /**
     * Задает признак состояния записи
     */
    set state(value: DataRowState);
    toString(): string;
}
export declare class DataRowStateChangedArg {
    newState: DataRowState;
    constructor(newState: DataRowState);
}
