import { ChangeDetectorRef, OnDestroy, OnInit, Renderer2 } from '@angular/core';
import { AgRendererComponent } from 'ag-grid-angular';
import { AbstractComboBox } from '../abstract-combobox.component';
import { Observable } from 'rxjs';
import { PreferencesService } from 'systelab-preferences';
import * as i0 from "@angular/core";
export declare class ComboTreeNode<T> {
    nodeData: T;
    level: number;
    constructor(pNodeData?: T, pLevel?: number);
}
export declare abstract class AbstractApiTreeComboBox<T> extends AbstractComboBox<ComboTreeNode<T>> implements AgRendererComponent, OnInit, OnDestroy {
    myRenderer: Renderer2;
    chref: ChangeDetectorRef;
    preferencesService?: PreferencesService;
    static readonly FAVOURITEID = "favourite";
    isParentSelectable: boolean;
    isAllSelectable: boolean;
    totalItemsLoaded: boolean;
    isFirstTime: boolean;
    isTree: boolean;
    constructor(myRenderer: Renderer2, chref: ChangeDetectorRef, preferencesService?: PreferencesService);
    ngOnInit(): void;
    protected configGrid(): void;
    getInstance(): ComboTreeNode<T>;
    getDescriptionField(): string;
    getCodeField(): string;
    getIdField(): string;
    abstract getData(): Observable<Array<T>>;
    abstract getTotalItems(): number;
    abstract getLevelDescriptionField(level: number): string;
    abstract getLevelIdField(level: number): string;
    abstract getAllNodeId(): string | number;
    abstract getAllNodeDescription(): string;
    abstract getSelectionPrefix(level: number): string;
    protected getFavouriteText(): string;
    getLabelForLevel(comboTreeNode: ComboTreeNode<T>): string;
    closeDropDown(): void;
    loop(): void;
    setDropdownHeight(): void;
    getRows(): void;
    protected checkIfIsFavourite(id: string | number): void;
    protected toggleFavourite(): void;
    onRowSelected(event: any): void;
    onSelectionChanged(event: any): void;
    refresh(params: any): boolean;
    private getFavouriteElements;
    static ɵfac: i0.ɵɵFactoryDeclaration<AbstractApiTreeComboBox<any>, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<AbstractApiTreeComboBox<any>, never, never, { "isParentSelectable": { "alias": "isParentSelectable"; "required": false; }; "isAllSelectable": { "alias": "isAllSelectable"; "required": false; }; }, {}, never, never, false, never>;
}
