import { coord, t } from '../../common';
import { Cell } from '../Cell';
export declare type IGridArgs = {
    table?: Handsontable;
    totalColumns?: number;
    totalRows?: number;
    ns: t.INs | string;
    cells?: t.IGridData['cells'];
    columns?: t.IGridData['columns'];
    rows?: t.IGridData['rows'];
    defaults?: Partial<t.IGridDefaults>;
    keyBindings?: t.KeyBindings<t.GridCommand>;
    getFunc?: t.GetFunc;
};
export declare class Grid implements t.IGrid {
    static create(args: IGridArgs): Grid;
    static defaults(input?: Partial<t.IGridDefaults>): t.IGridDefaults;
    static toDataArray(args: {
        cells: t.IGridData['cells'];
        totalColumns: number;
        totalRows: number;
    }): coord.cell.ICellData<Partial<t.IGridCellPropsAll>>[];
    static toNs(input?: t.INs | string): t.INs;
    static isDefaultValue(args: {
        defaults?: t.IGridDefaults;
        kind: t.GridCellType;
        value?: any;
    }): boolean;
    private constructor();
    private _init;
    initialize(args: {
        table: Handsontable;
    }): this;
    private readonly _;
    clipboard: t.IGridClipboardPending | undefined;
    readonly dispose$: import("rxjs").Observable<void>;
    readonly events$: import("rxjs").Observable<t.GridEvent>;
    readonly keyboard$: import("rxjs").Observable<t.IGridKeydown>;
    private getValueSync;
    readonly refsTable: coord.cell.IRefsTable;
    get id(): string;
    get totalColumns(): number;
    get totalRows(): number;
    get defaults(): t.IGridDefaults;
    get keyBindings(): t.KeyBindings<t.GridCommand>;
    get isInitialized(): boolean;
    get isDisposed(): boolean;
    get isReady(): boolean;
    get isEditing(): boolean;
    get data(): t.IGridData;
    private setCells;
    get calc(): t.IGridCalculate;
    get selection(): t.IGridSelection;
    get selectionValues(): t.IGridData['cells'];
    dispose(): void;
    mergeCells(args: {
        cells: t.IGridData['cells'];
        init?: boolean;
    }): this;
    changeCells(cells: t.IGridData['cells'], options?: {
        source?: t.GridCellChangeType;
        silent?: boolean;
        init?: boolean;
    }): this;
    changeColumns(columns: t.IGridData['columns'], options?: {
        source?: t.GridColumnChangeType;
    }): this;
    changeRows(rows: t.IGridData['rows'], options?: {
        source?: t.GridColumnChangeType;
    }): this;
    cell(key: {
        row: number;
        column: number;
    } | string): Cell<Partial<t.IGridCellPropsAll>>;
    scrollTo(args: {
        cell: t.GridCellRef;
        snapToBottom?: boolean;
        snapToRight?: boolean;
    }): this;
    select(args: {
        cell: t.GridCellRef;
        ranges?: t.GridCellRangeKey[];
        scrollToCell?: boolean;
    }): this;
    deselect(): this;
    focus(): this;
    blur(): this;
    redraw(): this;
    toPosition(ref: t.GridCellRef): {
        row: number;
        column: number;
    };
    updateHashes(options?: {
        force?: boolean;
    }): this;
    command: t.GridFireCommand;
    fire: t.GridFire;
}
