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 { 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 { ISearchInfo } from '../common/events';
import { IgxRowIslandAPIService } from './row-island-api.service';
import { PlatformUtil } from '../../core/utils';
import { IForOfState } from '../../directives/for-of/for_of.directive';
import { IgxColumnResizingService } from '../resizing/resizing.service';
import { GridType, IgxGridPaginatorTemplateContext } from '../common/grid.interface';
import { IgxGridToolbarTemplateContext } from '../toolbar/common';
import { IgxActionStripToken } from '../../action-strip/token';
import { IgxFlatTransactionFactory } from '../../services/transaction/transaction-factory.service';
import { IGridCreatedEventArgs } from './events';
import { IgxGridValidationService } from '../grid/grid-validation.service';
import { IgxTextHighlightService } from '../../directives/text-highlight/text-highlight.service';
import * as i0 from "@angular/core";
/**
 * Row island
 *
 * @igxModule IgxHierarchicalGridModule
 * @igxParent IgxHierarchicalGridComponent, IgxRowIslandComponent
 *
 */
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;
    /**
     * Sets the key of the row island by which child data would be taken from the row data if such is provided.
     * @hidden @internal
     */
    get childDataKey(): string;
    set childDataKey(value: string);
    /**
     * @hidden
     */
    children: QueryList<IgxRowIslandComponent>;
    /**
     * @hidden @internal
     */
    childLayoutList: QueryList<IgxRowIslandComponent>;
    /**
     * @hidden
     */
    childColumns: QueryList<IgxColumnComponent>;
    protected toolbarDirectiveTemplate: TemplateRef<IgxGridToolbarTemplateContext>;
    protected paginatorDirectiveTemplate: TemplateRef<any>;
    /**
     * Sets/Gets the toolbar template for each child grid created from this row island.
    */
    get toolbarTemplate(): TemplateRef<IgxGridToolbarTemplateContext>;
    set toolbarTemplate(template: TemplateRef<IgxGridToolbarTemplateContext>);
    /**
     * Sets/Gets the paginator template for each child grid created from this row island.
    */
    get paginatorTemplate(): TemplateRef<IgxGridPaginatorTemplateContext>;
    set paginatorTemplate(template: TemplateRef<IgxGridPaginatorTemplateContext>);
    /** @hidden @internal */
    protected actionStripComponents: QueryList<IgxActionStripToken>;
    /**
     * @hidden
     */
    layoutChange: EventEmitter<any>;
    /**
     * Event emitted 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;
    /** @hidden */
    readonly data: any[] | null;
    /** @hidden */
    get hiddenColumnsCount(): number;
    /** @hidden */
    get pinnedColumnsCount(): number;
    /** @hidden */
    get lastSearchInfo(): ISearchInfo;
    /** @hidden */
    get filteredData(): any;
    /** @hidden */
    get filteredSortedData(): any[];
    /** @hidden */
    get virtualizationState(): IForOfState;
    /** @hidden */
    get pinnedColumns(): IgxColumnComponent[];
    /** @hidden */
    get unpinnedColumns(): IgxColumnComponent[];
    /** @hidden */
    get visibleColumns(): IgxColumnComponent[];
    /** @hidden */
    get dataView(): any[];
    private ri_columnListDiffer;
    private layout_id;
    private isInit;
    private _toolbarTemplate;
    private _paginatorTemplate;
    /**
     * 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, textHighlightService: IgxTextHighlightService, overlayService: IgxOverlayService, summaryService: IgxGridSummaryService, 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, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<IgxRowIslandComponent, "igx-row-island", never, { "key": { "alias": "key"; "required": false; }; "childDataKey": { "alias": "childDataKey"; "required": false; }; "toolbarTemplate": { "alias": "toolbarTemplate"; "required": false; }; "paginatorTemplate": { "alias": "paginatorTemplate"; "required": false; }; "expandChildren": { "alias": "expandChildren"; "required": false; }; }, { "layoutChange": "layoutChange"; "gridCreated": "gridCreated"; "gridInitialized": "gridInitialized"; }, ["toolbarDirectiveTemplate", "paginatorDirectiveTemplate", "children", "childLayoutList", "childColumns", "actionStripComponents"], ["igx-column,igc-column,igx-column-group,igc-column-group,igx-action-strip,igc-action-strip", "igx-row-island,igc-row-island"], true, never>;
    static ngAcceptInputType_expandChildren: unknown;
}
