import { ElementRef, NgZone, ChangeDetectorRef, IterableDiffers, ViewContainerRef, ComponentFactoryResolver, TemplateRef } from '@angular/core';
import { IgxGridBaseDirective } from '../grid-base.directive';
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 { IgxOverlayService, IgxTransactionService, Transaction, TransactionService, State } from '../../services/index';
import { IgxHierarchicalGridNavigationService } from './hierarchical-grid-navigation.service';
import { IgxGridSummaryService } from '../summaries/grid-summary.service';
import { IgxGridSelectionService, IgxGridCRUDService } from '../selection/selection.service';
import { IgxChildGridRowComponent } from './child-grid-row.component';
import { IgxColumnResizingService } from '../resizing/resizing.service';
import { GridType } from '../common/grid.interface';
import { IgxColumnGroupComponent } from '../columns/column-group.component';
import { IgxColumnComponent } from '../columns/column.component';
export declare const IgxHierarchicalTransactionServiceFactory: {
    provide: import("@angular/core").InjectionToken<string>;
    useFactory: typeof hierarchicalTransactionServiceFactory;
};
export declare function hierarchicalTransactionServiceFactory(): IgxTransactionService<Transaction, State>;
export interface IPathSegment {
    rowID: any;
    rowIslandKey: string;
}
export declare class IgxHierarchicalGridBaseDirective extends IgxGridBaseDirective {
    selectionService: IgxGridSelectionService;
    colResizingService: IgxColumnResizingService;
    protected transactionFactory: TransactionService<Transaction, State>;
    document: any;
    protected overlayService: IgxOverlayService;
    summaryService: IgxGridSummaryService;
    protected _displayDensityOptions: IDisplayDensityOptions;
    rootGrid: any;
    expandChildren: boolean;
    hasChildrenKey: string;
    showExpandAll: boolean;
    /**
     * @hidden
     */
    get maxLevelHeaderDepth(): any;
    /**
     * @hidden
     */
    protected get outlet(): any;
    /**
     * @hidden
     */
    hgridAPI: IgxHierarchicalGridAPIService;
    /**
     * @hidden
     */
    parentIsland: IgxRowIslandComponent;
    /**
     * @hidden
     */
    childRow: IgxChildGridRowComponent;
    /**
     * @hidden
     * @internal
     */
    dragIndicatorIconBase: TemplateRef<any>;
    constructor(selectionService: IgxGridSelectionService, crudService: IgxGridCRUDService, colResizingService: IgxColumnResizingService, gridAPI: GridBaseAPIService<IgxGridBaseDirective & GridType>, transactionFactory: TransactionService<Transaction, State>, elementRef: ElementRef, zone: NgZone, document: any, cdr: ChangeDetectorRef, resolver: ComponentFactoryResolver, differs: IterableDiffers, viewRef: ViewContainerRef, navigation: IgxHierarchicalGridNavigationService, filteringService: IgxFilteringService, overlayService: IgxOverlayService, 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(rowIslandID: string): import("./hierarchical-grid.component").IgxHierarchicalGridComponent[];
    protected getChildGrid(path: Array<IPathSegment>): any;
}
