import { ElementRef, Injector, OnDestroy, OnInit } from '@angular/core';
import { FormControl } from '@angular/forms';
import { Subject } from 'rxjs';
import { IconData } from '@ironsource/fusion-ui/components/icon/v1';
import { SearchTestIdModifiers } from '@ironsource/fusion-ui/entities';
import { TestIdsService } from '@ironsource/fusion-ui/services/test-ids';
import * as i0 from "@angular/core";
export declare class SearchComponent implements OnInit, OnDestroy {
    private injector;
    /** @internal */
    inputElRef: ElementRef;
    private _placeholder;
    set placeholder(value: string);
    get placeholder(): string;
    private _showClearIcon;
    set showClearIcon(value: boolean);
    get showClearIcon(): boolean;
    /** @internal */
    testId: string;
    /** @internal */
    searchFormControl: FormControl<any>;
    /** @internal */
    onDestroy$: Subject<void>;
    /** @internal */
    searchIcon: IconData;
    /** @internal */
    clearIcon: IconData;
    /** @internal */
    searchTestIdModifiers: typeof SearchTestIdModifiers;
    /** @internal */
    testIdsService: TestIdsService;
    constructor(injector: Injector);
    ngOnInit(): void;
    ngOnDestroy(): void;
    /**
     * Method to call when value has changes.
     * @ignore
     */
    propagateChange: (_: boolean) => void;
    /**
     * Method to call when the component is touched (when it was is clicked).
     * @ignore
     */
    propagateTouched: () => void;
    /**
     * update value from model to the component
     * @ignore
     */
    writeValue(value: string): void;
    /**
     * Informs the outside world about changes.
     * see method propagateChange call - this.propagateChange(this.model);
     * @ignore
     */
    registerOnChange(fn: any): void;
    /**
     * on click
     * @ignore
     */
    registerOnTouched(fn: any): void;
    /**
     * on set form controll enabled / disabled
     * also do UI Component enabled / disabled
     * @ignore
     */
    setDisabledState?(disabled: boolean): void;
    clearInput(withEvent?: boolean): void;
    private setFocus;
    static ɵfac: i0.ɵɵFactoryDeclaration<SearchComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<SearchComponent, "fusion-search", never, { "placeholder": { "alias": "placeholder"; "required": false; }; "showClearIcon": { "alias": "showClearIcon"; "required": false; }; "testId": { "alias": "testId"; "required": false; }; }, {}, never, never, true, never>;
}
