import * as React from 'react';
import { IgrRowIslandCollection } from "./igr-row-island-collection";
import { IgrRowType } from "./igr-row-type";
import { IgrCellType } from "./igr-cell-type";
import { IgrHierarchicalGridBaseDirective, IIgrHierarchicalGridBaseDirectiveProps } from "./igr-hierarchical-grid-base-directive";
import { HierarchicalGrid } from "./HierarchicalGrid";
import { IgrRowIsland } from "./igr-row-island";
/**
 * Hierarchical grid
 * @igxModule IgxHierarchicalGridModule
*/
export declare class IgrHierarchicalGrid extends IgrHierarchicalGridBaseDirective<IIgrHierarchicalGridProps & Omit<React.HTMLAttributes<HTMLElement>, keyof IIgrHierarchicalGridProps>> {
    protected createImplementation(): HierarchicalGrid;
    /**
                                 * @hidden
                                 */
    get i(): HierarchicalGrid;
    protected _initializeAdapters(): void;
    protected _updateAdapters(): void;
    constructor(props: IIgrHierarchicalGridProps & Omit<React.HTMLAttributes<HTMLElement>, keyof IIgrHierarchicalGridProps>);
    componentDidMount(): void;
    render(): React.DetailedReactHTMLElement<any, HTMLElement>;
    protected _elRef: HTMLElement;
    protected _getMainRef(ref: any): void;
    private _childLayoutList;
    private _actualChildLayoutList;
    get actualChildLayoutList(): IgrRowIsland[];
    private _contentChildLayoutList;
    get contentChildLayoutList(): IgrRowIsland[];
    private _childLayoutListAdapter;
    /**
     * @hidden
    */
    get childLayoutList(): IgrRowIslandCollection;
    get id(): string;
    set id(v: string);
    get data(): any[];
    set data(v: any[]);
    /**
     * Gets/Sets the total number of records in the data source.
     * @remarks
     * This property is required for remote grid virtualization to function when it is bound to remote data.
     * @example
     * ```typescript
     * const itemCount = this.grid1.totalItemCount;
     * this.grid1.totalItemCount = 55;
     * ```
    */
    get totalItemCount(): number;
    set totalItemCount(v: number);
    get expandChildren(): boolean;
    set expandChildren(v: boolean);
    /**
     * Gets the unique identifier of the parent row. It may be a `string` or `number` if `primaryKey` of the
     * parent grid is set or an object reference of the parent record otherwise.
     * ```typescript
     * const foreignKey = this.grid.foreignKey;
     * ```
     * @memberof IgxHierarchicalGridComponent
    */
    get foreignKey(): any;
    /**
     * Returns an array of the selected `IgxGridCell`s.
     * @example
     * ```typescript
     * const selectedCells = this.grid.selectedCells;
     * ```
    */
    get selectedCells(): IgrCellType[];
    findByName(name: string): any;
    /**
     * Returns the `RowType` by index.
     * @example
     * ```typescript
     * const myRow = this.grid1.getRowByIndex(1);
     * ```
     * index
    
    * @param   * index
    */
    getRowByIndex(index: number): IgrRowType;
    /**
     * Returns the `RowType` by key.
     * @example
     * ```typescript
     * const myRow = this.grid1.getRowByKey(1);
     * ```
     * key
    
    * @param   * key
    */
    getRowByKey(key: any): IgrRowType;
    getCellByColumn(rowIndex: number, columnField: string): IgrCellType;
    getCellByKey(rowSelector: any, columnField: string): IgrCellType;
    pinRow(rowID: any, index?: number): boolean;
    unpinRow(rowID: any): boolean;
    getDefaultExpandState(record: any): void;
}
export interface IIgrHierarchicalGridProps extends IIgrHierarchicalGridBaseDirectiveProps {
    id?: string;
    data?: any[];
    /**
     * Gets/Sets the total number of records in the data source.
     * @remarks
     * This property is required for remote grid virtualization to function when it is bound to remote data.
     * @example
     * ```typescript
     * const itemCount = this.grid1.totalItemCount;
     * this.grid1.totalItemCount = 55;
     * ```
    */
    totalItemCount?: number | string;
    expandChildren?: boolean | string;
}
