import { AfterViewInit, ElementRef, EventEmitter, OnInit } from '@angular/core';
import { AbstractListBox } from './abstract-listbox.component';
import { Observable } from 'rxjs';
import { GetRowIdParams } from 'ag-grid-community';
import * as i0 from "@angular/core";
export declare class TreeListBoxElement<T> {
    nodeData: T;
    level: number;
    selected: boolean;
    constructor(pNodeData?: T, pLevel?: number, pSelected?: boolean);
}
export declare abstract class AbstractApiTreeListBox<T> extends AbstractListBox<TreeListBoxElement<T>> implements OnInit, AfterViewInit {
    hiddenElement: ElementRef;
    isParentSelectable: boolean;
    updateHierarchy: boolean;
    selectedTreeItemChange: EventEmitter<TreeListBoxElement<T>>;
    selectedIDListChange: EventEmitter<string>;
    columnDefs: Array<any>;
    treeValues: Array<TreeListBoxElement<T>>;
    _selectedTreeItem: TreeListBoxElement<T>;
    paddingSingleSelection: number;
    set selectedTreeItem(value: TreeListBoxElement<T>);
    get selectedTreeItem(): TreeListBoxElement<T>;
    set selectedIDList(value: string);
    get selectedIDList(): string;
    protected _selectedIDList: string;
    protected constructor();
    ngOnInit(): void;
    ngAfterViewInit(): void;
    cleanSelection(): void;
    doClick(row: any): void;
    changeValues(event: any): void;
    addSelectedItem(selected: TreeListBoxElement<T>): void;
    removeElement(seleccionado: TreeListBoxElement<T>): void;
    containsElement(seleccionado: TreeListBoxElement<T>): boolean;
    onModelUpdated(pEvent: any): void;
    protected configGrid(): void;
    protected getRowNodeId(item: GetRowIdParams): string | number | undefined;
    protected getRows(): void;
    protected loadValues(dataVector: Array<T>): void;
    protected initSelectionList(): void;
    protected selectTreeItemInGrid(): void;
    protected selectUnselectChildTree(event: any): void;
    protected selectUnselectParentTree(event: any): void;
    protected addRemoveToMultipleSelectedItem(event: any): void;
    protected abstract getData(): Observable<Array<T>>;
    protected abstract getSelectionPrefix(level: number): string;
    static ɵfac: i0.ɵɵFactoryDeclaration<AbstractApiTreeListBox<any>, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<AbstractApiTreeListBox<any>, never, never, { "isParentSelectable": { "alias": "isParentSelectable"; "required": false; }; "updateHierarchy": { "alias": "updateHierarchy"; "required": false; }; "selectedTreeItem": { "alias": "selectedTreeItem"; "required": false; }; "selectedIDList": { "alias": "selectedIDList"; "required": false; }; }, { "selectedTreeItemChange": "selectedTreeItemChange"; "selectedIDListChange": "selectedIDListChange"; }, never, never, false, never>;
}
