import { OnChanges, OnInit, TemplateRef } from '@angular/core';
import { DropdownBaseComponent } from '@ironsource/fusion-ui/components/dropdown/common/base';
import { DropdownOption } from '@ironsource/fusion-ui/components/dropdown-option/entities';
import { Observable } from 'rxjs';
import * as i0 from "@angular/core";
export declare abstract class MultiDropdownBaseComponent extends DropdownBaseComponent implements OnInit, OnChanges {
    /** @ignore */
    confirm: boolean;
    /** @ignore */
    selectAllLabel: string;
    /** @ignore */
    templateRef: TemplateRef<any>;
    /** @ignore */
    tempSelected: DropdownOption[];
    /** @ignore */
    tempOptions: DropdownOption[];
    /** @ignore */
    optionsWithoutScroll: number;
    /** @ignore */
    hasSearchValue$: Observable<boolean>;
    /** @ignore */
    showSelectedFirst: boolean;
    testId: string;
    get isMulti(): boolean;
    ngOnInit(): void;
    /**
     * Relevant only for auto complete mode.
     * If options changed outside compoenent we need to update tempOptions to
     * be the new options
     */
    ngOnChanges(changes: any): void;
    /** @ignore */
    getHolderCSSClasses(): string[];
    /** @ignore */
    getOptionClasses(option: DropdownOption, index?: number): {
        [x: string]: string | boolean;
        'fu-group': boolean;
        'fu-group-first': boolean;
        'fu-group-hide': boolean;
    };
    /**
     * Open dropdown windows
     * @internal
     */
    openDropdown(event: MouseEvent): void;
    /**
     * Set to clear / select all by the given default action button
     * @internal
     */
    selectAll(checked?: boolean): void;
    clearAll(): void;
    /**
     * Saving selected options
     * @internal
     */
    applySelect(close?: boolean, doSelectedChanged?: boolean): void;
    /**
     * select / remove option from selected list
     * @internal
     */
    changeSelected(option: any): void;
    /** @ignore */
    isSelected(option: DropdownOption): boolean;
    /**
     * Check if dropdown is in default button mode.
     * If all options selected Or if none of the options selected.
     * @internal
     */
    isInSelectAllAction(): void;
    /**
     * @returns number - index of selected in options array or -1 if not selected
     * @internal
     */
    getSelectedIndex(option: any): number;
    /** @ignore */
    optionParentClicked($event: any): void;
    /**
     * copy arrays without reference
     */
    private cloneArray;
    private isGroupOption;
    private hideGroup;
    private getSelectedOptionsFirst;
    /** @ignore */
    writeValue(value: any): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<MultiDropdownBaseComponent, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<MultiDropdownBaseComponent, never, never, { "confirm": { "alias": "confirm"; "required": false; }; "selectAllLabel": { "alias": "selectAllLabel"; "required": false; }; "templateRef": { "alias": "templateRef"; "required": false; }; "testId": { "alias": "testId"; "required": false; }; }, {}, never, never, false, never>;
}
