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 SelectSearchComponent implements OnChanges, OnDestroy {
    modal: IonModal;
    label: string;
    labelProperty: string;
    valueProperty: string;
    multiple: boolean;
    placeholder: string;
    /**
     * Input configuration object.
     * @type {InputMetadata}
     * @property control - The Angular FormControl for the select input.
     * @property label - The label for the select.
     * @property options - The available options for the select.
     * @property placeholder - The placeholder text.
     */
    props: InputMetadata & {
        mode?: 'legacy' | 'strict';
    };
    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 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;
    isItemSelected(item: any): boolean;
    updateDisplayValue(): void;
    applyChanges(): void;
    reset(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<SelectSearchComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<SelectSearchComponent, "val-select-search", never, { "label": { "alias": "label"; "required": false; }; "labelProperty": { "alias": "labelProperty"; "required": false; }; "valueProperty": { "alias": "valueProperty"; "required": false; }; "multiple": { "alias": "multiple"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "props": { "alias": "props"; "required": false; }; }, {}, never, never, true, never>;
}
