import { OnChanges, OnDestroy, SimpleChanges } from '@angular/core';
import { IonModal } from '@ionic/angular';
import { IconService } from '../../../services/icons.service';
import { InputMetadata, InputOption } from '../../types';
import * as i0 from "@angular/core";
export declare class MultiSelectSearchComponent implements OnChanges, OnDestroy {
    modal: IonModal;
    label: string;
    labelProperty: string;
    valueProperty: string;
    placeholder: string;
    props: InputMetadata;
    icon: IconService;
    private changeDetector;
    private i18n;
    /** Get resolved label with i18n fallback */
    getLabel(): string;
    /** Get resolved placeholder with i18n fallback */
    getPlaceholder(): string;
    /** Get close button text */
    getCloseText(): string;
    /** Get no results text */
    getNoResultsText(): string;
    /** Get select all text */
    getSelectAllText(): string;
    /** Get clear text */
    getClearText(): string;
    /** Get apply text */
    getApplyText(): string;
    /** Get items selected text */
    getItemsSelectedText(count: number): string;
    searchTerm: string;
    filteredItems: InputOption[];
    selectedItems: InputOption[];
    displayValue: string;
    private previousOptions;
    private isProcessingChanges;
    private valueChangesSubscription?;
    ngOnInit(): void;
    ngOnDestroy(): void;
    ngOnChanges(changes: SimpleChanges): void;
    ionViewWillEnter(): void;
    private subscribeToValueChanges;
    private areOptionsEqual;
    private initializeItems;
    private syncControlValueWithSelectedItems;
    private applyDefaultValue;
    onFilter(event: any): void;
    onFocus(): void;
    onBlur(): void;
    openModal(): void;
    preventDefaultBehavior(event: MouseEvent): void;
    /**
     * Reset state only - called by didDismiss event
     * Separated from closeModal to avoid double dismissal and scroll issues
     */
    resetState(): void;
    /**
     * Close modal only - does not reset state (didDismiss will handle that)
     */
    closeModal(): void;
    /**
     * @deprecated Use closeModal() instead. Kept for backwards compatibility.
     */
    cancelModal(): void;
    selectItem(item: any): void;
    selectAll(): void;
    clearAll(): void;
    isItemSelected(item: any): boolean;
    updateDisplayValue(): void;
    applyChanges(): void;
    applyAndClose(): void;
    reset(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<MultiSelectSearchComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<MultiSelectSearchComponent, "val-multi-select-search", never, { "label": { "alias": "label"; "required": false; }; "labelProperty": { "alias": "labelProperty"; "required": false; }; "valueProperty": { "alias": "valueProperty"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "props": { "alias": "props"; "required": false; }; }, {}, never, never, true, never>;
}
