import { QdColumnDetails, QdColumnsDetails, QdGroupColumnDetails } from '../model/tree-column-detail.interface';
import { QdTreeConfig, QdTreeConfigColumn } from '../model/tree-config.interface';
import * as i0 from "@angular/core";
export declare class QdTreeGroupService<T extends string> {
    config: QdTreeConfig<T>;
    columnsDetails: QdColumnsDetails<T>;
    groupColumn: QdGroupColumnDetails<T>;
    ungroupedColumns: QdColumnDetails<T>[];
    /**
     * Groups columns that matches the given function and returns resulting columns with details.
     *
     * @param config table config
     * @param isColumnGrouped function to define the grouping condition
     * @throws QdGroupedIndicesNotConsecutiveError
     */
    initialize(config: QdTreeConfig<T>, isColumnGrouped: (column: QdTreeConfigColumn<T>) => boolean): void;
    updateTableConfig(config: QdTreeConfig<T>, isColumnGrouped: (column: QdTreeConfigColumn<T>) => boolean): void;
    private getColumnsDetailsAfterGrouping;
    private getGroupedColumnsIndices;
    private groupIndices;
    private areNumbersConsecutive;
    private getGroupColumnDetails;
    private getColumnDetails;
    private getMainColumn;
    static ɵfac: i0.ɵɵFactoryDeclaration<QdTreeGroupService<any>, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<QdTreeGroupService<any>>;
}
//# sourceMappingURL=tree-group.service.d.ts.map