import { QueryList, ElementRef, NgZone, ChangeDetectorRef, IterableDiffers, ViewContainerRef, ComponentFactoryResolver } from '@angular/core';
import { IgxGridBaseComponent } from '../grid-base.component';
import { GridBaseAPIService } from '../api.service';
import { IgxHierarchicalGridAPIService } from './hierarchical-grid-api.service';
import { IgxRowIslandComponent } from './row-island.component';
import { IgxFilteringService } from '../filtering/grid-filtering.service';
import { IDisplayDensityOptions } from '../../core/displayDensity';
import { IgxColumnComponent, IgxColumnGroupComponent, IGridDataBindable } from '../grid';
import { IgxHierarchicalTransactionService } from '../../services/index';
import { IgxHierarchicalSelectionAPIService } from './selection';
import { IgxHierarchicalGridNavigationService } from './hierarchical-grid-navigation.service';
import { IgxGridSummaryService } from '../summaries/grid-summary.service';
export declare const IgxHierarchicalTransactionServiceFactory: {
    provide: import("@angular/core").InjectionToken<string>;
    useFactory: typeof hierarchicalTransactionServiceFactory;
};
export declare function hierarchicalTransactionServiceFactory(): () => IgxHierarchicalTransactionService<import("../../services").HierarchicalTransaction, import("../../services").HierarchicalState>;
export interface IPathSegment {
    rowID: any;
    rowIslandKey: string;
}
export declare abstract class IgxHierarchicalGridBaseComponent extends IgxGridBaseComponent {
    protected transactionFactory: any;
    document: any;
    summaryService: IgxGridSummaryService;
    protected _displayDensityOptions: IDisplayDensityOptions;
    abstract rootGrid: any;
    expandChildren: boolean;
    /**
     * @hidden
     */
    childColumns: QueryList<IgxColumnComponent>;
    /**
     * @hidden
     */
    readonly maxLevelHeaderDepth: any;
    /**
     * @hidden
     */
    hgridAPI: IgxHierarchicalGridAPIService;
    /**
     * @hidden
     */
    parentIsland: IgxRowIslandComponent;
    protected _expandChildren: boolean;
    constructor(gridAPI: GridBaseAPIService<IgxGridBaseComponent & IGridDataBindable>, selection: IgxHierarchicalSelectionAPIService, transactionFactory: any, elementRef: ElementRef, zone: NgZone, document: any, cdr: ChangeDetectorRef, resolver: ComponentFactoryResolver, differs: IterableDiffers, viewRef: ViewContainerRef, navigation: IgxHierarchicalGridNavigationService, filteringService: IgxFilteringService, summaryService: IgxGridSummaryService, _displayDensityOptions: IDisplayDensityOptions);
    /**
     * @hidden
     */
    createColumnsList(cols: Array<any>): void;
    protected _createColumn(col: any): any;
    protected _createColGroupComponent(col: IgxColumnGroupComponent): import("@angular/core").ComponentRef<IgxColumnGroupComponent>;
    protected _createColComponent(col: any): import("@angular/core").ComponentRef<IgxColumnComponent>;
    protected getGridsForIsland(islandKey: string): import("./hierarchical-grid.component").IgxHierarchicalGridComponent[];
    protected getChildGrid(path: Array<IPathSegment>): any;
}
