import { Injector, ChangeDetectorRef, QueryList } from '@angular/core'; import { KbqTreeSelection } from '@koobiq/components/tree'; import { KbqTreeSelect, KbqTreeSelectChange } from '@koobiq/components/tree-select'; import { Observable, BehaviorSubject } from 'rxjs'; import { ValidatableByParentControl } from '@mosaic-design/infosec-components/core-components/common'; import { DestroyService } from '@mosaic-design/infosec-components/services'; import { TreeNode, TreeFlatNode } from '@mosaic-design/infosec-components/types'; import { TreeBase } from '../tree/tree'; import * as i0 from "@angular/core"; type Value = string[] | string | undefined | null; type NormalizedValue = NonNullable | string[] | string; export declare abstract class ValidatableByParentTreeSelect, FlatNode extends TreeFlatNode, ParentValue extends Value, ControlValue extends NonNullable = NonNullable> extends ValidatableByParentControl { #private; abstract readonly selects: QueryList | undefined; abstract readonly select: KbqTreeSelect | undefined; abstract readonly treeSelection: KbqTreeSelection | undefined; abstract readonly tree: TreeBase; protected _nodes: BehaviorSubject; protected readonly parentValue$: Observable; protected constructor(injector: Injector, changeDetectorRef: ChangeDetectorRef, destroyed$: DestroyService); private static forceTreeSelectTagsStateUpdating; get isMultiple(): boolean; protected get isEmitPrevent(): boolean; protected abstract setTreeFormControlEmptyValue(): void; protected abstract setTreeFormControlValue(value: NormalizedValue): void; protected normalizeParentValue(value: ParentValue): NormalizedValue; protected normalizeValue(value: ControlValue): NormalizedValue; protected createTagsForcedStateUpdatingSubscription(trigger$: Observable): void; protected setNodes(value: Node[] | undefined): void; onSelectionChange(event: KbqTreeSelectChange): void; protected toggleParents(parent: FlatNode | undefined): void; private nodesReceived$; private actualizeIsMultiple; private isSelectReadyToCurrentMultiple$; private selectReadyToCurrentMultiple$; private actualizeIsMultiple$; private createParentValueSubscription; writeValue(value: ParentValue): void; static ɵfac: i0.ɵɵFactoryDeclaration, never>; static ɵdir: i0.ɵɵDirectiveDeclaration, never, never, {}, {}, never, never, false, never>; } export {};