import { EventEmitter, OnChanges, SimpleChanges, TemplateRef } from '@angular/core';
import { FormControl, UntypedFormControl } from '@angular/forms';
import { BehaviorSubject, Observable } from 'rxjs';
import * as i0 from "@angular/core";
export declare class SelectSearchComponent implements OnChanges {
    form: FormControl<any>;
    options?: any[] | null;
    placeholder: string;
    optionTemplate: TemplateRef<unknown>;
    selectedValueTemplate: TemplateRef<unknown>;
    multiple?: boolean | undefined;
    label: string;
    keys?: string[];
    canAddNew: boolean;
    required: boolean;
    appearance: 'fill' | 'outline';
    errorsTemplate: TemplateRef<unknown>;
    prefixTemplate: TemplateRef<unknown>;
    disabled: boolean;
    valueCallback?: (option: any) => any;
    searchCallback$?: (options: any[], query: string) => Observable<(any | undefined)[]>;
    addNewValue: EventEmitter<any>;
    formFilterControl: UntypedFormControl;
    options$: BehaviorSubject<unknown[]>;
    searchedOptions: unknown[];
    searchResults$: Observable<any[]>;
    ngOnChanges(changes: SimpleChanges): void;
    removeSelection(value?: unknown): void;
    clearValue(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<SelectSearchComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<SelectSearchComponent, "ax-select-search", never, { "form": { "alias": "form"; "required": false; }; "options": { "alias": "options"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "optionTemplate": { "alias": "optionTemplate"; "required": false; }; "selectedValueTemplate": { "alias": "selectedValueTemplate"; "required": false; }; "multiple": { "alias": "multiple"; "required": false; }; "label": { "alias": "label"; "required": false; }; "keys": { "alias": "keys"; "required": false; }; "canAddNew": { "alias": "canAddNew"; "required": false; }; "required": { "alias": "required"; "required": false; }; "appearance": { "alias": "appearance"; "required": false; }; "errorsTemplate": { "alias": "errorsTemplate"; "required": false; }; "prefixTemplate": { "alias": "prefixTemplate"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "valueCallback": { "alias": "valueCallback"; "required": false; }; "searchCallback$": { "alias": "searchCallback$"; "required": false; }; }, { "addNewValue": "addNewValue"; }, never, never, false, never>;
}
