/**
 *
 * carbon-angular v0.0.0 | treeview.service.d.ts
 *
 * Copyright 2014, 2026 IBM
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *   http://www.apache.org/licenses/LICENSE-2.0

 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */


import { Observable } from "rxjs";
import { Node } from "./tree-node.types";
import * as i0 from "@angular/core";
export declare class TreeViewService {
    selectionObservable: Observable<any | any[]>;
    focusNodeObservable: Observable<Node>;
    /**
     * Variable used across all nodes and wrapper to determine if we should allow content projection
     * or generate the tree
     *
     * Value is updated by passing a value to `tree` input in wrapper component.
     */
    contentProjected: boolean;
    /**
     * **Experimental**
     */
    isMultiSelect: boolean;
    private selectionSubject;
    private focusNodeSubject;
    /**
     * Hold's list of selected nodes and preserves order
     */
    private value;
    constructor();
    /**
     * Emits the focused node
     * @param node: Node
     */
    focusNode(node: Node): void;
    /**
     * Store selected node in map
     * @param node: Node
     */
    selectNode(node: Node): void;
    /**
     * Removes selected node from the map
     * @param node: Node
     */
    deselectNode(node: Node): void;
    /**
     * Removes all selected nodes from the map
     */
    deselectAllNodes(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<TreeViewService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<TreeViewService>;
}
