import { FocusMonitor } from '@angular/cdk/a11y';
import { AfterViewInit, ChangeDetectorRef, DestroyRef, EventEmitter, InjectionToken } from '@angular/core';
import { ControlValueAccessor } from '@angular/forms';
import { BehaviorSubject } from 'rxjs';
import * as i0 from "@angular/core";
/** default configuration of search-expandable */
export declare const KBQ_SEARCH_EXPANDABLE_DEFAULT_CONFIGURATION: {
    tooltip: string;
    placeholder: string;
};
/** Injection Token for providing configuration of search-expandable */
export declare const KBQ_SEARCH_EXPANDABLE_CONFIGURATION: InjectionToken<unknown>;
export declare const defaultValue = "";
export declare const defaultEmitValueTimeout = 200;
export declare class KbqSearchExpandable implements ControlValueAccessor, AfterViewInit {
    /** @docs-private */
    protected readonly focusMonitor: FocusMonitor;
    /** @docs-private */
    protected readonly localeService: import("@koobiq/components/core").KbqLocaleService | null;
    /** @docs-private */
    protected readonly destroyRef: DestroyRef;
    /** @docs-private */
    protected readonly changeDetectorRef: ChangeDetectorRef;
    /** @docs-private */
    protected readonly nativeElement: HTMLElement;
    readonly externalConfiguration: unknown;
    private input;
    private button;
    private tooltip;
    configuration: any;
    /** Current value in input. */
    value: BehaviorSubject<string>;
    protected lastFocusOrigin: 'touch' | 'mouse' | 'keyboard' | 'program' | null;
    /** state of component. */
    isOpened: boolean;
    /** Emit event by enter or not. Default is false */
    isEmitValueByEnterEnabled: boolean;
    /** Timeout in milliseconds for emit event. The default value is taken from defaultEmitValueTimeout */
    emitValueTimeout: number;
    /** Placeholder for input when expanded */
    get placeholder(): string;
    set placeholder(value: string);
    private _placeholder;
    /** Event emitted when the search has been toggled. */
    readonly isOpenedChange: EventEmitter<boolean>;
    /** localized data
     * @docs-private */
    get localeData(): any;
    private lastEmittedValue;
    constructor();
    ngAfterViewInit(): void;
    /** @docs-private */
    onChange: (value: string) => void;
    /** @docs-private */
    onTouch: () => void;
    /** Implemented as part of ControlValueAccessor. */
    registerOnChange(fn: (value: string) => void): void;
    /** Implemented as part of ControlValueAccessor. */
    registerOnTouched(fn: () => void): void;
    /** Implemented as part of ControlValueAccessor. */
    writeValue(value: string): void;
    toggle(): void;
    private updateLocaleParams;
    private initDefaultParams;
    private emitValue;
    static ɵfac: i0.ɵɵFactoryDeclaration<KbqSearchExpandable, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<KbqSearchExpandable, "kbq-search-expandable", never, { "isOpened": { "alias": "isOpened"; "required": false; }; "isEmitValueByEnterEnabled": { "alias": "isEmitValueByEnterEnabled"; "required": false; }; "emitValueTimeout": { "alias": "emitValueTimeout"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; }, { "isOpenedChange": "isOpenedChange"; }, never, never, true, never>;
    static ngAcceptInputType_isOpened: unknown;
    static ngAcceptInputType_emitValueTimeout: unknown;
}
