import { OnDestroy } from '@angular/core';
import { Observable } from 'rxjs';
import { Subject } from 'rxjs';
import { GridSelection } from './grid-selection.class';
import { InternationalizationService } from './internationalization/internationalization.service';
import { GridState } from '@true-directive/base';
import { Column } from '@true-directive/base';
import { CellPosition } from '@true-directive/base';
import { DataQuery } from '@true-directive/base';
import { ValueChangedEvent, FilterShowEvent } from '@true-directive/base';
import { UIAction } from '@true-directive/base';
export declare class GridStateService extends GridState implements OnDestroy {
    internationalization: InternationalizationService;
    protected _onDataQuery: Subject<DataQuery>;
    readonly onDataQuery: Observable<DataQuery>;
    protected _onDataFetch: Subject<void>;
    readonly onDataFetch: Observable<void>;
    protected _onColumnsChanged: Subject<void>;
    readonly onColumnsChanged: Observable<void>;
    protected _onQueryChanged: Subject<void>;
    readonly onQueryChanged: Observable<void>;
    protected _onSummariesChanged: Subject<Column>;
    readonly onSummariesChanged: Observable<Column>;
    protected _onValueChanged: Subject<ValueChangedEvent>;
    readonly onValueChanged: Observable<ValueChangedEvent>;
    protected _onDrag: Subject<UIAction>;
    readonly onDrag: Observable<UIAction>;
    protected _onDrop: Subject<UIAction>;
    readonly onDrop: Observable<UIAction>;
    protected _onColumnResizing: Subject<UIAction>;
    readonly onColumnResizing: Observable<UIAction>;
    protected _onColumnResize: Subject<UIAction>;
    readonly onColumnResize: Observable<UIAction>;
    protected _onFilterShow: Subject<FilterShowEvent>;
    readonly onFilterShow: Observable<FilterShowEvent>;
    protected _onSelect: Subject<CellPosition>;
    readonly onSelect: Observable<CellPosition>;
    protected _onStartEditing: Subject<CellPosition>;
    readonly onStartEditing: Observable<CellPosition>;
    protected _onStopEditing: Subject<boolean>;
    readonly onStopEditing: Observable<boolean>;
    protected _onRowUnfiltered: Subject<any>;
    readonly onRowUnfiltered: Observable<any>;
    selection: GridSelection;
    focusChangedSubscription: any;
    selectionChangedSubscription: any;
    localeChangedSubscription: any;
    protected dataQueryEvent(query: DataQuery): void;
    protected dataFetchEvent(query: DataQuery): void;
    protected columnsChangedEvent(): void;
    protected queryChangedEvent(): void;
    protected summariesChangedEvent(c: Column): void;
    protected valueChangedEvent(e: ValueChangedEvent): void;
    protected dragEvent(e: UIAction): void;
    protected dropEvent(e: UIAction): void;
    protected columnResizeEvent(e: UIAction): void;
    protected filterShowEvent(e: FilterShowEvent): void;
    protected selectEvent(cp: CellPosition): void;
    protected startEditingEvent(cp: CellPosition): void;
    protected stopEditingEvent(returnFocus: boolean): void;
    updateDataAsync(): Observable<any>;
    ngOnDestroy(): void;
    constructor(internationalization: InternationalizationService);
}
