import { AfterViewInit, OnInit, QueryList } from '@angular/core';
import { UntypedFormControl } from '@angular/forms';
import { KbqOption, KbqPseudoCheckboxState } from '@koobiq/components/core';
import { KbqSelect } from '@koobiq/components/select';
import { Observable } from 'rxjs';
import { KbqSelectValue } from '../filter-bar.types';
import { KbqBasePipe } from './base-pipe';
import * as i0 from "@angular/core";
export declare class KbqPipeMultiSelectComponent extends KbqBasePipe<KbqSelectValue[]> implements AfterViewInit, OnInit {
    /** control for search options */
    searchControl: UntypedFormControl;
    /** filtered by search options */
    filteredOptions: Observable<any[]>;
    /** @docs-private */
    select: KbqSelect;
    /** @docs-private */
    options: QueryList<KbqOption>;
    /** selected value */
    get selected(): KbqSelectValue[] | null;
    /** Whether the current pipe is empty. */
    get isEmpty(): boolean;
    /** state for checkbox 'select all'. */
    get checkboxState(): KbqPseudoCheckboxState;
    /** true if all visible options selected */
    get allVisibleOptionsSelected(): boolean;
    /** true if all options selected */
    get allOptionsSelected(): boolean;
    get selectedAllEqualsSelectedNothing(): boolean;
    private get visibleOptions();
    private selectionAllInProgress;
    /** @docs-private */
    ngOnInit(): void;
    ngAfterViewInit(): void;
    /** @docs-private */
    onSelect(item: KbqSelectValue[]): void;
    /** @docs-private */
    onClear(): void;
    /** @docs-private */
    toggleSelectionAllByEnterKey(): void;
    /** @docs-private */
    toggleSelectionAll(emitEvent?: boolean): void;
    private emitChangePipeEvent;
    /** Comparator of selected options */
    compareByValue: (o1: any, o2: any) => boolean;
    /** handler for select all options in select */
    selectAllHandler: (event: KeyboardEvent) => void;
    onClose(): void;
    /** opens select */
    open(): void;
    private getFilteredOptions;
    static ɵfac: i0.ɵɵFactoryDeclaration<KbqPipeMultiSelectComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<KbqPipeMultiSelectComponent, "kbq-pipe-multi-select", never, {}, {}, never, never, true, never>;
}
