import { ElementRef } from '@angular/core';
import { BaseInputDirective } from '../../../components/base/base-input/base-input.directive';
import { SignalFormHostDirective } from '../../../components/base/host-directive/signal-form-host.directive';
import { type RuntimeAutocompleteSignalField } from '../../../models/signal-field-types.model';
import { type FormOption } from '../../../models/signal-form.model';
import * as i0 from "@angular/core";
import * as i1 from "../../base/host-directive/signal-form-host.directive";
export declare class SignalFormAutocompleteFieldComponent<TModel extends object, K extends keyof TModel = keyof TModel> extends BaseInputDirective<RuntimeAutocompleteSignalField<TModel, K>, TModel, K> {
    private readonly signalFormHostDirective;
    inputRef: import("@angular/core").Signal<ElementRef<HTMLElement> | undefined>;
    protected search: import("@angular/core").WritableSignal<string>;
    protected loadedOptions: import("@angular/core").WritableSignal<FormOption<string | number | boolean | object, unknown>[]>;
    protected showDropdown: import("@angular/core").WritableSignal<boolean>;
    private lastQuery;
    private cachedOptions;
    private readonly destroyRef;
    private readonly dropdownService;
    constructor(signalFormHostDirective: SignalFormHostDirective);
    private get hostViewContainerRef();
    private optionsOverlayEffect;
    private updateValue;
    onSelect(option: FormOption): void;
    protected handleFocus(): void;
    private searchQueryChangeEffect;
    static ɵfac: i0.ɵɵFactoryDeclaration<SignalFormAutocompleteFieldComponent<any, any>, [{ optional: true; }]>;
    static ɵcmp: i0.ɵɵComponentDeclaration<SignalFormAutocompleteFieldComponent<any, any>, "signal-form-autocomplete-field", never, {}, {}, never, never, true, [{ directive: typeof i1.SignalFormHostDirective; inputs: {}; outputs: {}; }]>;
}
