import { EventEmitter, OnInit, TemplateRef } from '@angular/core';
import { SiderBarModel, TreeNode, TreeNodeParent } from './side-bar-interface';
export declare class SideBarComponent implements OnInit {
    /** click navi event */
    onNavi: EventEmitter<{}>;
    /** toggle side-bar */
    toggle: EventEmitter<{}>;
    /** side-bar data */
    data: SiderBarModel;
    /** side-bar default selected node */
    selectedNodeId: string;
    optionTpl: TemplateRef<any>;
    /** search-box placeholder */
    searchPlaceholder: string;
    /** Use search recommendation or not */
    isSuggestion: boolean;
    /**
     * storage tree-nodes as list
     * @docs-private
     */
    private _listTreeNodes;
    /**
     * storage search matched tree-nodes as list
     * @docs-private
     */
    private _listSearchNodes;
    /**
     * tree title node
     * @docs-private
     */
    root: string;
    /**
     * side-bar tree data
     * @docs-private
     */
    treeData: TreeNode[];
    /**
     * search-box suggestion content
     * @docs-private
     */
    suggestionValue: Array<string | undefined>;
    /**
     * side-bar tree-node expanded or not
     * @docs-private
     */
    expanded: boolean;
    /**
     * judge treeData has data or not
     * @docs-private
     */
    hasTreeData: boolean;
    /**
     * selected node
     * @docs-private
     */
    selectedNode: TreeNode;
    /**
     * temp original data
     * @docs-private
     */
    tempData: SiderBarModel;
    constructor();
    ngOnInit(): void;
    /**
     * set selected node id
     * @docs-private
     */
    setSelectNodeId(): void;
    /**
     * side-bar static search fuzzy match
     * @param {string} keyWord 搜索的字符串片段
     * @param {string} fullWord 完整的字符串
     * @returns boolean 字符串片段在字符串中的位置
     */
    fuzzySearch(keyWord: string, fullWord: string): boolean;
    /**
     * init tree node property
     * @docs-private
     */
    initTreeNodeProperty(): void;
    /**
     * temp data index
     * @docs-private
     */
    tempDataIndex(): void;
    /**
     * change data-tree when data soure change
     * @docs-private
     */
    changeTree(): TreeNode[];
    /**
     * init tree data
     * @docs-private
     */
    initTree(treeData: TreeNode[], expanded: boolean): void;
    /**
     * transfer tree to list
     * @docs-private
     */
    transferTreeToList(treeData: TreeNode[]): void;
    /**
     * listen the search-box search keyword suggest event
     * @docs-private
     */
    searchSuggestion(event: string): void;
    /**
     * get matched keyword the suggest tree-node
     * @docs-private
     */
    getSuggestionNodes(event: string): TreeNode[];
    /**
     * check tree data has data or not
     * @docs-private
     */
    checkTreeData(): boolean;
    /**
     * listen search-box clear keyword event
     * @docs-private
     */
    clear(event: string): void;
    /**
     * listen tree-root refresh tree event
     * @docs-private
     */
    refreshTree(): void;
    /**
     * listen search-box filter tree-node event
     * @docs-private
     */
    search(event?: string): void;
    /**
     * find all the tree nodes associated with the key words
     * @docs-private
     */
    searchNodes(node: TreeNode): void;
    /**
     * get tree-node parent node
     * @docs-private
     */
    getParentNode(parent: TreeNodeParent): TreeNode | undefined;
    /**
     * push matched keyword search node into _listSearchNodes
     * @docs-private
     */
    setSearchNodes(node: TreeNode): void;
    /**
     * judge in _listSearchNodes has repeat node or not
     * @docs-private
     */
    isExistRepetition(targetNode: TreeNode): boolean;
    /**
     * get root nodes
     * @docs-private
     */
    getRootNodes(rootNodes: TreeNode[]): TreeNode[];
    /**
     * render filtered tree-node
     * @docs-private
     */
    renderSelectedNode(rootNode: TreeNode, targetNode: TreeNode): void;
    /**
     * throw the navigation click event out
     * @docs-private
     */
    nodeSelect(event: TreeNode): void;
    /**
     * fold or unfold side-bar
     * @docs-private
     */
    fold(): void;
    /**
     * set selected node
     * @docs-private
     */
    setSelectedNode(node: TreeNode): TreeNode | undefined;
    /**
     * get node the first child
     * @param node
     * @docs-private
     */
    getFirstChild(node: TreeNode): TreeNode | undefined;
}
