import { Subject } from 'rxjs';
import { IGroupByExpandState } from '../data-operations/groupby-expand-state.interface';
import { IGroupByRecord } from '../data-operations/groupby-record.interface';
import { ISortingExpression, SortingDirection } from '../data-operations/sorting-expression.interface';
import { IgxGridCellComponent } from './cell.component';
import { IgxColumnComponent } from './column.component';
import { IgxGridComponent } from './grid.component';
import { IgxGridRowComponent } from './row.component';
import { IFilteringOperation, IFilteringExpressionsTree } from '../../public_api';
export declare class IgxGridAPIService {
    change: Subject<any>;
    protected state: Map<string, IgxGridComponent>;
    protected editCellState: Map<string, any>;
    protected summaryCacheMap: Map<string, Map<string, any[]>>;
    register(grid: IgxGridComponent): void;
    unsubscribe(grid: IgxGridComponent): void;
    get(id: string): IgxGridComponent;
    unset(id: string): void;
    get_column_by_name(id: string, name: string): IgxColumnComponent;
    set_summary_by_column_name(id: string, name: string): void;
    get_summaries(id: string): Map<string, any[]>;
    remove_summary(id: string, name?: string): void;
    set_cell_inEditMode(gridId: string, cell: any, editMode: boolean): void;
    escape_editMode(gridId: any, cellId?: any): void;
    get_cell_inEditMode(gridId: any): any;
    get_row_by_key(id: string, rowSelector: any): IgxGridRowComponent;
    get_row_by_index(id: string, rowIndex: number): IgxGridRowComponent;
    get_cell_by_key(id: string, rowSelector: any, field: string): IgxGridCellComponent;
    notify(id: string): void;
    get_cell_by_index(id: string, rowIndex: number, columnIndex: number): IgxGridCellComponent;
    get_cell_by_visible_index(id: string, rowIndex: number, columnIndex: number): IgxGridCellComponent;
    submit_value(gridId: any): void;
    update_cell(id: string, rowID: any, columnID: any, editValue: any): void;
    update_row(value: any, id: string, row: IgxGridRowComponent): void;
    sort(id: string, fieldName: string, dir: SortingDirection, ignoreCase: boolean): void;
    sort_multiple(id: string, expressions: ISortingExpression[]): void;
    groupBy(id: string, fieldName: string, dir: SortingDirection, ignoreCase: boolean): void;
    groupBy_multiple(id: string, expressions: ISortingExpression[]): void;
    clear_groupby(id: string, name?: string): void;
    groupBy_get_expanded_for_group(id: string, groupRow: IGroupByRecord): IGroupByExpandState;
    groupBy_toggle_group(id: string, groupRow: IGroupByRecord): void;
    filter(id: string, fieldName: string, term: any, conditionOrExpressionsTree: IFilteringOperation | IFilteringExpressionsTree, ignoreCase: boolean): void;
    filter_global(id: any, term: any, condition: any, ignoreCase: any): void;
    clear_filter(id: any, fieldName: any): void;
    protected calculateSummaries(id: string, column: any, data: any): void;
    clear_sort(id: any, fieldName: any): void;
    protected prepare_filtering_expression(filteringState: IFilteringExpressionsTree, fieldName: string, searchVal: any, conditionOrExpressionsTree: IFilteringOperation | IFilteringExpressionsTree, ignoreCase: boolean): void;
    protected prepare_sorting_expression(states: any, expression: ISortingExpression): void;
    arrange_sorting_expressions(id: any): void;
    protected remove_grouping_expression(id: any, fieldName: any): void;
}
