import { AfterViewInit, OnInit } from '@angular/core';
import { UntypedFormControl } from '@angular/forms';
import { KbqPseudoCheckboxState } from '@koobiq/components/core';
import { FlatTreeControl, KbqTreeFlatDataSource, KbqTreeFlattener, KbqTreeSelection } from '@koobiq/components/tree';
import { KbqTreeSelect } from '@koobiq/components/tree-select';
import { Observable } from 'rxjs';
import { KbqPipeTemplate, KbqSelectValue, KbqTreeSelectFlatNode, KbqTreeSelectNode } from '../filter-bar.types';
import { KbqBasePipe } from './base-pipe';
import * as i0 from "@angular/core";
export declare class KbqPipeMultiTreeSelectComponent extends KbqBasePipe<KbqSelectValue[]> implements OnInit, AfterViewInit {
    /** control for search options */
    searchControl: UntypedFormControl;
    /** filtered by search options */
    filteredOptions: Observable<any[]>;
    treeControl: FlatTreeControl<KbqTreeSelectFlatNode>;
    treeFlattener: KbqTreeFlattener<KbqTreeSelectNode, KbqTreeSelectFlatNode>;
    dataSource: KbqTreeFlatDataSource<KbqTreeSelectNode, KbqTreeSelectFlatNode>;
    template: any;
    /** @docs-private */
    select: KbqTreeSelect;
    /** @docs-private */
    tree: KbqTreeSelection;
    /** selected value */
    get selected(): KbqSelectValue[] | null;
    /** Whether the current pipe is empty. */
    get isEmpty(): boolean;
    get selectAllCheckboxState(): KbqPseudoCheckboxState;
    get numberOfSelectedLeaves(): number;
    /** true if all options selected */
    get allOptionsSelected(): boolean;
    get selectedAllEqualsSelectedNothing(): boolean;
    /** true if all visible options selected */
    get allVisibleOptionsSelected(): boolean;
    constructor();
    ngOnInit(): void;
    ngAfterViewInit(): void;
    isNodeHasChild(_: number, nodeData: any): any;
    isNodeSelectAll(_: number, nodeData: any): boolean;
    onSelect({ value: option }: {
        value: any;
    }): void;
    searchKeydownHandler(): void;
    toggleSelectAllNode(emitEvent?: boolean): void;
    /** updates values for selection and value template */
    updateTemplates: (templates: KbqPipeTemplate[] | null) => void;
    /** opens select */
    open(): void;
    onOpen(): void;
    onClose(): void;
    /** handler for select all options in select */
    selectAllHandler: (event: KeyboardEvent) => void;
    private emitChangePipeEvent;
    private toggleParents;
    private transformer;
    private getLevel;
    private isExpandable;
    private getChildren;
    private getValue;
    private getViewValue;
    static ɵfac: i0.ɵɵFactoryDeclaration<KbqPipeMultiTreeSelectComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<KbqPipeMultiTreeSelectComponent, "kbq-pipe-multi-tree-select", never, {}, {}, never, never, true, never>;
}
