import { AfterContentInit, AfterViewInit, ChangeDetectorRef, ElementRef, EnvironmentInjector, EventEmitter, Injector, IterableDiffers, NgZone, OnChanges, OnDestroy, OnInit, QueryList, TemplateRef, ViewContainerRef } from '@angular/core';
import { IgxHierarchicalGridAPIService } from './hierarchical-grid-api.service';
import { IgxFilteringService } from '../filtering/grid-filtering.service';
import { IDisplayDensityOptions } from '../../core/density';
import { IgxGridSummaryService } from '../summaries/grid-summary.service';
import { IgxHierarchicalGridBaseDirective } from './hierarchical-grid-base.directive';
import { IgxHierarchicalGridNavigationService } from './hierarchical-grid-navigation.service';
import { IgxGridSelectionService } from '../selection/selection.service';
import { IgxOverlayService } from '../../services/public_api';
import { IgxColumnComponent } from '../columns/column.component';
import { IgxRowIslandAPIService } from './row-island-api.service';
import { PlatformUtil } from '../../core/utils';
import { IgxColumnResizingService } from '../resizing/resizing.service';
import { GridType } from '../common/grid.interface';
import { IgxGridToolbarTemplateContext } from '../toolbar/common';
import { IgxActionStripComponent } from '../../action-strip/action-strip.component';
import { IgxFlatTransactionFactory } from '../../services/transaction/transaction-factory.service';
import { IGridCreatedEventArgs } from './events';
import { IgxGridValidationService } from '../grid/grid-validation.service';
import * as i0 from "@angular/core";
export declare class IgxRowIslandComponent extends IgxHierarchicalGridBaseDirective implements AfterContentInit, AfterViewInit, OnChanges, OnInit, OnDestroy {
    rowIslandAPI: IgxRowIslandAPIService;
    /**
     * Sets the key of the row island by which child data would be taken from the row data if such is provided.
     * ```html
     * <igx-hierarchical-grid [data]="Data" [autoGenerate]="true">
     *      <igx-row-island [key]="'childData'">
     *          <!-- ... -->
     *      </igx-row-island>
     * </igx-hierarchical-grid>
     * ```
     *
     * @memberof IgxRowIslandComponent
     */
    key: string;
    /**
     * @hidden
     */
    children: QueryList<IgxRowIslandComponent>;
    /**
     * @hidden
     */
    childColumns: QueryList<IgxColumnComponent>;
    islandToolbarTemplate: TemplateRef<IgxGridToolbarTemplateContext>;
    islandPaginatorTemplate: TemplateRef<any>;
    /** @hidden @internal **/
    actionStrips: QueryList<IgxActionStripComponent>;
    /**
     * @hidden
     */
    layoutChange: EventEmitter<any>;
    /**
     * Event emmited when a grid is being created based on this row island.
     * ```html
     * <igx-hierarchical-grid [data]="Data" [autoGenerate]="true">
     *      <igx-row-island [key]="'childData'" (gridCreated)="gridCreated($event)" #rowIsland>
     *          <!-- ... -->
     *      </igx-row-island>
     * </igx-hierarchical-grid>
     * ```
     *
     * @memberof IgxRowIslandComponent
     */
    gridCreated: EventEmitter<IGridCreatedEventArgs>;
    /**
     * Emitted after a grid is being initialized for this row island.
     * The emitting is done in `ngAfterViewInit`.
     * ```html
     * <igx-hierarchical-grid [data]="Data" [autoGenerate]="true">
     *      <igx-row-island [key]="'childData'" (gridInitialized)="gridInitialized($event)" #rowIsland>
     *          <!-- ... -->
     *      </igx-row-island>
     * </igx-hierarchical-grid>
     * ```
     *
     * @memberof IgxRowIslandComponent
     */
    gridInitialized: EventEmitter<IGridCreatedEventArgs>;
    /**
     * @hidden
     */
    initialChanges: any[];
    /**
     * @hidden
     */
    rootGrid: GridType;
    readonly data: any[] | null;
    private ri_columnListDiffer;
    private layout_id;
    private isInit;
    /**
     * Sets if all immediate children of the grids for this `IgxRowIslandComponent` should be expanded/collapsed.
     * ```html
     * <igx-hierarchical-grid [data]="Data" [autoGenerate]="true">
     *      <igx-row-island [key]="'childData'" [expandChildren]="true" #rowIsland>
     *          <!-- ... -->
     *      </igx-row-island>
     * </igx-hierarchical-grid>
     * ```
     *
     * @memberof IgxRowIslandComponent
     */
    set expandChildren(value: boolean);
    /**
     * Gets if all immediate children of the grids for this `IgxRowIslandComponent` have been set to be expanded/collapsed.
     * ```typescript
     * const expanded = this.rowIsland.expandChildren;
     * ```
     *
     * @memberof IgxRowIslandComponent
     */
    get expandChildren(): boolean;
    /**
     * @hidden
     */
    get id(): string;
    /**
     * @hidden
     */
    get parentId(): any;
    /**
     * @hidden
     */
    get level(): number;
    constructor(validationService: IgxGridValidationService, selectionService: IgxGridSelectionService, colResizingService: IgxColumnResizingService, gridAPI: IgxHierarchicalGridAPIService, transactionFactory: IgxFlatTransactionFactory, elementRef: ElementRef<HTMLElement>, zone: NgZone, document: any, cdr: ChangeDetectorRef, differs: IterableDiffers, viewRef: ViewContainerRef, injector: Injector, envInjector: EnvironmentInjector, navigation: IgxHierarchicalGridNavigationService, filteringService: IgxFilteringService, overlayService: IgxOverlayService, summaryService: IgxGridSummaryService, _displayDensityOptions: IDisplayDensityOptions, rowIslandAPI: IgxRowIslandAPIService, localeId: string, platform: PlatformUtil);
    /**
     * @hidden
     */
    ngOnInit(): void;
    /**
     * @hidden
     */
    ngAfterContentInit(): void;
    /**
     * @hidden
     */
    ngAfterViewInit(): void;
    /**
     * @hidden
     */
    ngOnChanges(changes: any): void;
    /**
     * @hidden
     */
    ngOnDestroy(): void;
    /**
     * @hidden
     */
    reflow(): void;
    /**
     * @hidden
     */
    calculateGridHeight(): void;
    /**
     * @hidden
     */
    calculateGridWidth(): void;
    protected _childColumns: any[];
    protected updateColumnList(): void;
    protected updateChildren(): void;
    private cleanGridState;
    static ɵfac: i0.ɵɵFactoryDeclaration<IgxRowIslandComponent, [null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, { optional: true; }, null, null, null]>;
    static ɵcmp: i0.ɵɵComponentDeclaration<IgxRowIslandComponent, "igx-row-island", never, { "key": { "alias": "key"; "required": false; }; "expandChildren": { "alias": "expandChildren"; "required": false; }; }, { "layoutChange": "layoutChange"; "gridCreated": "gridCreated"; "gridInitialized": "gridInitialized"; }, ["islandToolbarTemplate", "islandPaginatorTemplate", "children", "childColumns", "actionStrips"], never, true, never>;
}
