import { EventEmitter, OnDestroy, OnInit } from '@angular/core';
import { ControlValueAccessor } from '@angular/forms';
import { Observable } from 'rxjs';
import * as i0 from "@angular/core";
/** Filter component to query for objects. */
export declare class FilterComponent implements ControlValueAccessor, OnInit, OnDestroy {
    static idCounter: number;
    private touched;
    private _searchValue;
    disabled: boolean;
    /** id for the input. If left blank, it is autogenerated */
    inputId: string;
    /** Placeholder default text. */
    placeholder: string;
    /** Search value introduced by the user. */
    get searchValue(): string;
    set searchValue(v: string);
    /** Search on type: (default true) Auto-search when user types in. */
    searchOnType: boolean;
    /** Custom aria label in case of not using a label */
    ariaLabel: string;
    private debounceValue;
    /** Debounce time in milliseconds. (defaults to 300 ms) */
    set debounce(val: number);
    get debounce(): number;
    /** Search value changed by user. */
    searchValueChange: EventEmitter<string>;
    searchValue$: Observable<string>;
    private subject;
    private sub;
    constructor();
    onChange: (value: any) => void;
    onTouched: () => void;
    writeValue(value: any): void;
    registerOnChange(onChange: any): void;
    registerOnTouched(onTouched: any): void;
    markAsTouched(): void;
    setDisabledState(disabled: boolean): void;
    ngOnInit(): void;
    ngOnDestroy(): void;
    clear(): void;
    search(): void;
    keyup(event: KeyboardEvent, newValue: string): void;
    onInputValueChange(newValue: string): void;
    private recreateObservable;
    private freeSubscriptions;
    private searchNow;
    private addEvent;
    static ɵfac: i0.ɵɵFactoryDeclaration<FilterComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<FilterComponent, "lux-filter", never, { "disabled": { "alias": "disabled"; "required": false; }; "inputId": { "alias": "inputId"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "searchValue": { "alias": "searchValue"; "required": false; }; "searchOnType": { "alias": "searchOnType"; "required": false; }; "ariaLabel": { "alias": "aria-label"; "required": false; }; "debounce": { "alias": "debounce"; "required": false; }; }, { "searchValueChange": "searchValueChange"; }, never, never, false, never>;
}
