import { EventEmitter } from '@angular/core';
import { PoTreeViewItem } from './po-tree-view-item/po-tree-view-item.interface';
/**
 * @description
 *
 * O componente fornece um modelo de visualização em árvore, possibilitando a visualização das informações de maneira
 * hierárquica, desta forma sendo possível utilizar até 4 níveis.
 *
 * Nele é possível navegar entre os itens através da tecla *tab*, permitindo expandir ou colapsar o item em foco
 * por meio das teclas *enter* e *space*.
 *
 * Além da navegação, o componente possibilita também a seleção dos itens do primeiro ao último nível, tanto de forma parcial como completa.
 *
 * O componente também possui eventos disparados ao marcar/desmarcar e expandir/colapsar os itens.
 */
export declare class PoTreeViewBaseComponent {
    /**
     * @optional
     *
     * @description
     *
     * Ação que será disparada ao colapsar um item.
     *
     * > Como parâmetro o componente envia o item colapsado.
     */
    collapsed: EventEmitter<PoTreeViewItem>;
    /**
     * @optional
     *
     * @description
     *
     * Ação que será disparada ao expandir um item.
     *
     * > Como parâmetro o componente envia o item expandido.
     */
    expanded: EventEmitter<PoTreeViewItem>;
    /**
     * @optional
     *
     * @description
     *
     * Ação que será disparada ao selecionar um item.
     *
     * > Como parâmetro o componente envia o item selecionado.
     */
    selected: EventEmitter<PoTreeViewItem>;
    /**
     * @optional
     *
     * @description
     *
     * Ação que será disparada ao desfazer a seleção de um item.
     *
     * > Como parâmetro o componente envia o item que foi desmarcado.
     */
    unselected: EventEmitter<PoTreeViewItem>;
    private _componentsSize;
    private _initialComponentsSize;
    private _items;
    private _selectable;
    private _maxLevel;
    private _singleSelect;
    selectedValue: string | number;
    /**
     * @optional
     *
     * @description
     *
     * Define o tamanho dos componentes de formulário:
     * - `small`: aplica a medida small de cada componente (disponível apenas para acessibilidade AA).
     * - `medium`: aplica a medida medium de cada componente.
     *
     * > Caso a acessibilidade AA não esteja configurada, o tamanho `medium` será mantido.
     * Para mais detalhes, consulte a documentação do [po-theme](https://po-ui.io/documentation/po-theme).
     *
     * @default `medium`
     */
    set componentsSize(value: string);
    get componentsSize(): string;
    /**
     * Lista de itens do tipo `PoTreeViewItem` que será renderizada pelo componente.
     */
    inputedItems: Array<PoTreeViewItem>;
    set items(value: Array<PoTreeViewItem>);
    get items(): Array<PoTreeViewItem>;
    /**
     * @optional
     *
     * @description
     *
     * Habilita uma caixa de seleção para selecionar e/ou desmarcar um item da lista.
     *
     * @default false
     */
    set selectable(value: boolean);
    get selectable(): boolean;
    /**
     * @optional
     *
     * @description
     *
     * Habilita a seleção para item único atráves de po-radio.
     *
     * @default false
     */
    set singleSelect(value: boolean);
    get singleSelect(): boolean;
    /**
     * @optional
     *
     * @description
     *
     * Define o máximo de níveis para o tree-view.
     *
     * > O valor padrão é 4
     *
     * @default 4
     */
    set maxLevel(value: number);
    get maxLevel(): number;
    protected onThemeChange(): void;
    protected emitExpanded(treeViewItem: PoTreeViewItem): void;
    protected emitSelected(treeViewItem: PoTreeViewItem): void;
    private addChildItemInParent;
    private addItem;
    private selectAllItems;
    private selectItemBySubItems;
    private everyItemSelected;
    private expandParentItem;
    private getItemsByMaxLevel;
    private getItemsWithParentSelected;
    private updateItemsOnSelect;
    private applySizeBasedOnA11y;
}
