import * as _siemens_element_translate_ng_translate from '@siemens/element-translate-ng/translate';
import * as _angular_core from '@angular/core';
import { OnInit, OnDestroy, OnChanges, SimpleChanges } from '@angular/core';
import { ControlValueAccessor } from '@angular/forms';
import { BackgroundColorVariant } from '@siemens/element-ng/common';

declare class SiSearchBarComponent implements OnInit, OnDestroy, ControlValueAccessor, OnChanges {
    private readonly inputRef;
    private debouncer;
    private readonly disabledNgControl;
    /**
     * Time unit change of search input takes effect.
     *
     * @defaultValue 400
     */
    readonly debounceTime: _angular_core.InputSignalWithTransform<number, unknown>;
    /**
     * Prohibited characters restricting search.
     */
    readonly prohibitedCharacters: _angular_core.InputSignal<string | undefined>;
    /**
     * Define search input placeholder.
     *
     * @defaultValue ''
     */
    readonly placeholder: _angular_core.InputSignal<string>;
    /**
     * Display search icon before search input.
     *
     * @defaultValue false
     */
    readonly showIcon: _angular_core.InputSignalWithTransform<boolean, unknown>;
    /**
     * Whether the search is tabbable or not.
     *
     * @defaultValue true
     */
    readonly tabbable: _angular_core.InputSignalWithTransform<boolean, unknown>;
    /**
     * Define search input content.
     */
    readonly value: _angular_core.InputSignal<string | undefined>;
    /** @defaultValue false */
    readonly readonly: _angular_core.InputSignalWithTransform<boolean, unknown>;
    /**
     * Color to use for component background
     *
     * @defaultValue 'base-1'
     */
    readonly colorVariant: _angular_core.InputSignal<BackgroundColorVariant>;
    /** @defaultValue false */
    readonly disabledInput: _angular_core.InputSignalWithTransform<boolean, unknown>;
    /**
     * Aria label for the clear button.
     *
     * @defaultValue
     * ```
     * t(() => $localize`:@@SI_SEARCH_BAR.CLEAR_BUTTON:clear`)
     * ```
     */
    readonly clearButtonAriaLabel: _angular_core.InputSignal<_siemens_element_translate_ng_translate.TranslatableString>;
    /**
     * Output callback event will provide you with search term if search input changes.
     */
    readonly searchChange: _angular_core.OutputEmitterRef<string>;
    protected isInvalid: boolean;
    protected inFocus: boolean;
    protected onChange: (val: any) => void;
    protected onTouch: () => void;
    protected readonly disabled: _angular_core.Signal<boolean>;
    protected readonly searchValue: _angular_core.WritableSignal<string>;
    protected readonly icons: Record<"elementCancel" | "elementSearch", string>;
    /** @internal */
    writeValue(value: string): void;
    /** @internal */
    registerOnChange(fn: any): void;
    /** @internal */
    registerOnTouched(fn: () => void): void;
    /** @internal */
    setDisabledState(disabled: boolean): void;
    ngOnChanges(changes: SimpleChanges<this>): void;
    ngOnInit(): void;
    ngOnDestroy(): void;
    private setSearch;
    private isProhibitedCharactersUsed;
    /** @internal */
    focus(): void;
    protected onCancelFocus(event: Event): void;
    protected input(event: Event): void;
    protected onBlur(): void;
    protected resetForm(): void;
    protected writeSearchValue(value: string): void;
    static ɵfac: _angular_core.ɵɵFactoryDeclaration<SiSearchBarComponent, never>;
    static ɵcmp: _angular_core.ɵɵComponentDeclaration<SiSearchBarComponent, "si-search-bar", never, { "debounceTime": { "alias": "debounceTime"; "required": false; "isSignal": true; }; "prohibitedCharacters": { "alias": "prohibitedCharacters"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "showIcon": { "alias": "showIcon"; "required": false; "isSignal": true; }; "tabbable": { "alias": "tabbable"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "colorVariant": { "alias": "colorVariant"; "required": false; "isSignal": true; }; "disabledInput": { "alias": "disabled"; "required": false; "isSignal": true; }; "clearButtonAriaLabel": { "alias": "clearButtonAriaLabel"; "required": false; "isSignal": true; }; }, { "searchChange": "searchChange"; }, never, never, true, never>;
}

declare class SiSearchBarModule {
    static ɵfac: _angular_core.ɵɵFactoryDeclaration<SiSearchBarModule, never>;
    static ɵmod: _angular_core.ɵɵNgModuleDeclaration<SiSearchBarModule, never, [typeof SiSearchBarComponent], [typeof SiSearchBarComponent]>;
    static ɵinj: _angular_core.ɵɵInjectorDeclaration<SiSearchBarModule>;
}

export { SiSearchBarComponent, SiSearchBarModule };
