import { ElementRef, NgZone, ChangeDetectorRef, IterableDiffers, ViewContainerRef, ComponentFactoryResolver, TemplateRef } 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 { IgxHierarchicalTransactionService, IgxOverlayService } 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(): () => IgxHierarchicalTransactionService<import("../../services").HierarchicalTransaction, import("../../services").HierarchicalState>;
export interface IPathSegment {
    rowID: any;
    rowIslandKey: string;
}
export declare class IgxHierarchicalGridBaseComponent extends IgxGridBaseComponent {
    selectionService: IgxGridSelectionService;
    colResizingService: IgxColumnResizingService;
    protected transactionFactory: any;
    document: any;
    protected overlayService: IgxOverlayService;
    summaryService: IgxGridSummaryService;
    protected _displayDensityOptions: IDisplayDensityOptions;
    rootGrid: any;
    expandChildren: boolean;
    hasChildrenKey: string;
    showExpandAll: boolean;
    /**
     * @hidden
     */
    readonly maxLevelHeaderDepth: any;
    /**
    * @hidden
    */
    protected readonly outlet: any;
    /**
     * @hidden
     */
    hgridAPI: IgxHierarchicalGridAPIService;
    /**
     * @hidden
     */
    parentIsland: IgxRowIslandComponent;
    /**
     * @hidden
    */
    childRow: IgxChildGridRowComponent;
    protected _expandChildren: boolean;
    /**
     * @hidden
     * @internal
     */
    dragIndicatorIconBase: TemplateRef<any>;
    /**
     * The custom template, if any, that should be used when rendering the row drag indicator icon
     *
     * ```typescript
     * // Set in typescript
     * const myCustomTemplate: TemplateRef<any> = myComponent.customTemplate;
     * myComponent.dragIndicatorIconTemplate = myCustomTemplate;
     * ```
     * ```html
     * <!-- Set in markup -->
     *  <igx-grid #grid>
     *      ...
     *      <ng-template igxDragIndicatorIcon>
     *          <igx-icon fontSet="material">info</igx-icon>
     *      </ng-template>
     *  </igx-grid>
     * ```
     */
    dragIndicatorIconTemplate: TemplateRef<any>;
    constructor(selectionService: IgxGridSelectionService, crudService: IgxGridCRUDService, colResizingService: IgxColumnResizingService, gridAPI: GridBaseAPIService<IgxGridBaseComponent & GridType>, transactionFactory: any, 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;
}
