import { Subject } from 'rxjs/Subject';
import { Observable } from 'rxjs/Observable';
import { EventEmitter } from '@angular/core';
import { Column } from './data-set/column';
import { Row } from './data-set/row';
import { DataSet } from './data-set/data-set';
import { DataSource } from './data-source/data-source';
export declare class Grid {
    createFormShown: boolean;
    source: DataSource;
    settings: any;
    dataSet: DataSet;
    onSelectRowSource: Subject<any>;
    constructor(source: DataSource, settings: any);
    showActionColumn(position: string): boolean;
    isCurrentActionsPosition(position: string): boolean;
    isActionsVisible(): boolean;
    isMultiSelectVisible(): boolean;
    getNewRow(): Row;
    setSettings(settings: Object): void;
    getDataSet(): DataSet;
    setSource(source: DataSource): void;
    getSetting(name: string, defaultValue?: any): any;
    getColumns(): Array<Column>;
    getRows(): Array<Row>;
    selectRow(row: Row): void;
    multipleSelectRow(row: Row): void;
    onSelectRow(): Observable<any>;
    edit(row: Row): void;
    create(row: Row, confirmEmitter: EventEmitter<any>): void;
    save(row: Row, confirmEmitter: EventEmitter<any>): void;
    delete(row: Row, confirmEmitter: EventEmitter<any>): void;
    processDataChange(changes: any): void;
    shouldProcessChange(changes: any): boolean;
    determineRowToSelect(changes: any): Row;
    prepareSource(source: any): DataSource;
    getInitialSort(): any;
    getSelectedRows(): Array<any>;
    selectAllRows(status: any): void;
    getFirstRow(): Row;
    getLastRow(): Row;
}
