import { EventEmitter, OnChanges, SimpleChanges } from '@angular/core';
import { InternalTreeNodeItem, TreeNodeEdit, TreeNodeItem } from './Models/tree.models';
import * as i0 from "@angular/core";
/**
 * @description Componente de árvore hierárquica com suporte a seleção única ou múltipla,
 * checkboxes, noós expansíveis e edição inline de rótulos. Gerencia o estado interno
 * dos nós e emite eventos na seleção, expansão, colapso e edição.
 *
 * @example
 * ```html
 * <s-tree
 *   [treeData]="nos"
 *   selectionMode="multiple"
 *   [showCheckbox]="true"
 *   (selectedChange)="onSelecaoMudou($event)" />
 * ```
 *
 * @category Data
 */
export declare class TreeComponent implements OnChanges {
    /** @description Lista de nós raíz da árvore. @default [] */
    treeData: TreeNodeItem[];
    private _selected;
    /** @description Nó(s) selecionado(s). Suporta array ou item único dependendo de `selectionMode`. @default [] */
    get selected(): TreeNodeItem[];
    set selected(value: TreeNodeItem[] | TreeNodeItem | undefined);
    /** @description Exibe indicador de carregamento nos nós. @default false */
    loading: boolean;
    /** @description Modo de seleção: `'single'` ou `'multiple'`. @default 'single' */
    selectionMode: 'single' | 'multiple';
    /** @description Exibe checkboxes nos nós para seleção visual. @default false */
    showCheckbox: boolean;
    /** @description Expão todos os nós inicialmente. @default false */
    allExpanded: boolean;
    /** @description Emitido quando a seleção muda, com o(s) nó(s) selecionado(s). */
    selectedChange: EventEmitter<TreeNodeItem[] | TreeNodeItem>;
    /** @description Emitido quando o usuário clica em um nó da árvore. */
    treeNodeItemClicked: EventEmitter<TreeNodeItem>;
    /** @description Emitido após uma edição inline de rótulo de nó. */
    treeNodeEdit: EventEmitter<TreeNodeEdit>;
    /** @description Emitido quando um nó é expandido pelo usuário. */
    nodeExpanded: EventEmitter<TreeNodeItem>;
    /** @description Emitido quando um nó é colapsado pelo usuário. */
    nodeCollapsed: EventEmitter<TreeNodeItem>;
    ngOnChanges(changes: SimpleChanges): void;
    onTreeNodeItemClicked({ item }: {
        item: InternalTreeNodeItem;
    }): void;
    onTreeNodeEdit(payload: TreeNodeEdit): void;
    onNodeExpanded(item: InternalTreeNodeItem): void;
    onNodeCollapsed(item: InternalTreeNodeItem): void;
    private toggleChecked;
    private checkTreeDataChildren;
    private setSelected;
    private onChanges;
    private syncSelectedChanges;
    private collapseAll;
    private expandAll;
    private get selectedElements();
    private get multiple();
    static ɵfac: i0.ɵɵFactoryDeclaration<TreeComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<TreeComponent, "s-tree", never, { "treeData": { "alias": "treeData"; "required": false; }; "selected": { "alias": "selected"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; "selectionMode": { "alias": "selectionMode"; "required": false; }; "showCheckbox": { "alias": "showCheckbox"; "required": false; }; "allExpanded": { "alias": "allExpanded"; "required": false; }; }, { "selectedChange": "selectedChange"; "treeNodeItemClicked": "treeNodeItemClicked"; "treeNodeEdit": "treeNodeEdit"; "nodeExpanded": "nodeExpanded"; "nodeCollapsed": "nodeCollapsed"; }, never, never, false, never>;
}
