import { ChangeDetectorRef, EventEmitter, QueryList } from "@angular/core";
import { SimpleGridColumnDirective } from "./simple-grid-column.directive";
import { CdkDrag, CdkDragDrop, CdkDropList } from "@angular/cdk/drag-drop";
import { Subject } from "rxjs";
export declare abstract class BaseSimpleGridComponent {
    protected changeDetection: ChangeDetectorRef;
    readonly MIN_COLUMN_WIDTH: number;
    readonly dataChanged: Subject<void>;
    set content(columnComponents: QueryList<SimpleGridColumnDirective>);
    set data(value: Object[]);
    get data(): Object[];
    set exportData(value: Object[]);
    get exportData(): Object[];
    dragDropEnabled: boolean;
    resizable: boolean;
    inlineEdit: boolean;
    showEdit: boolean;
    showToolbar: boolean;
    autoAddRow: boolean;
    /**
     * Should component emit drag and drop actions instead of handle
     * (update collection) by itself
     */
    emitDragDrop: boolean;
    set extraColumns(value: SimpleGridColumnDirective[]);
    onDrop: EventEmitter<{
        from: number;
        to: number;
    }>;
    selectRow: EventEmitter<{}>;
    deselectRow: EventEmitter<void>;
    dblClickRow: EventEmitter<{}>;
    saveRow: EventEmitter<{}>;
    deleteRow: EventEmitter<{}>;
    addRow: EventEmitter<void>;
    rowVisible: EventEmitter<{}>;
    handleMouseMove(event: MouseEvent): void;
    handleMouseUp(event: MouseEvent): void;
    columns: SimpleGridColumnDirective[];
    headerColumns: SimpleGridColumnDirective[];
    headerColumnsCopy: SimpleGridColumnDirective[];
    protected _data: Object[];
    protected _exportData: Object[];
    protected disabledRows: number[];
    private _columnForResize;
    private _prepared;
    private _startMousePositionX;
    constructor(changeDetection: ChangeDetectorRef);
    handleSizerMouseDown(event: MouseEvent, column: SimpleGridColumnDirective): void;
    handleCanDragDrop(drag: CdkDrag, drop: CdkDropList): boolean;
    handleDrop(event: CdkDragDrop<Object[]>): void;
    isSingleColumnRow(row: Object): boolean;
    singleColumnIndex(row: Object): number;
    protected prepareDataRow(row: any, index: number): Promise<void>;
    private _setColumns;
    private _prepareData;
    private _resizeColumnsToFit;
    private _setWidthOfAllColumns;
}
