import { PipeTransform } from '@angular/core';
import { GridBaseAPIService } from '../api.service';
import { ITreeGridRecord } from './tree-grid.interfaces';
import { IgxGridBaseDirective } from '../grid';
import { ISortingExpression } from '../../data-operations/sorting-expression.interface';
import { GridType } from '../common/grid.interface';
import { IGridSortingStrategy } from '../../data-operations/sorting-strategy';
/**
 * @hidden
 */
export declare class IgxTreeGridHierarchizingPipe implements PipeTransform {
    private gridAPI;
    constructor(gridAPI: GridBaseAPIService<IgxGridBaseDirective & GridType>);
    transform(collection: any[], primaryKey: string, foreignKey: string, childDataKey: string, id: string, pipeTrigger: number): ITreeGridRecord[];
    private getRowID;
    private hierarchizeFlatData;
    private setIndentationLevels;
    private hierarchizeRecursive;
}
/**
 * @hidden
 */
export declare class IgxTreeGridFlatteningPipe implements PipeTransform {
    private gridAPI;
    constructor(gridAPI: GridBaseAPIService<IgxGridBaseDirective & GridType>);
    transform(collection: ITreeGridRecord[], id: string, expandedLevels: number, expandedStates: Map<any, boolean>, pipeTrigger: number): any[];
    private getFlatDataRecursive;
    private updateNonProcessedRecordExpansion;
}
/** @hidden */
export declare class IgxTreeGridSortingPipe implements PipeTransform {
    private gridAPI;
    constructor(gridAPI: GridBaseAPIService<IgxGridBaseDirective & GridType>);
    transform(hierarchicalData: ITreeGridRecord[], expressions: ISortingExpression[], sorting: IGridSortingStrategy, id: string, pipeTrigger: number, pinned?: boolean): ITreeGridRecord[];
    private flattenTreeGridRecords;
}
/** @hidden */
export declare class IgxTreeGridPagingPipe implements PipeTransform {
    private gridAPI;
    constructor(gridAPI: GridBaseAPIService<IgxGridBaseDirective & GridType>);
    transform(collection: ITreeGridRecord[], page: number, perPage: number, id: string, pipeTrigger: number): ITreeGridRecord[];
}
/** @hidden */
export declare class IgxTreeGridTransactionPipe implements PipeTransform {
    private gridAPI;
    constructor(gridAPI: GridBaseAPIService<IgxGridBaseDirective & GridType>);
    transform(collection: any[], id: string, pipeTrigger: number): any[];
}
/**
 * This pipe maps the original record to ITreeGridRecord format used in TreeGrid.
 */
export declare class IgxTreeGridNormalizeRecordsPipe implements PipeTransform {
    private gridAPI;
    constructor(gridAPI: GridBaseAPIService<IgxGridBaseDirective & GridType>);
    transform(collection: any[], pipeTrigger: number): any[];
}
