import { CdkDrag, CdkDragDrop, CdkDropList } from '@angular/cdk/drag-drop';
import { ElementRef, OnDestroy } from '@angular/core';
import { AbstractControl, FormGroup } from '@angular/forms';
import { ChoiceViewModel, DragAndDropService, FieldViewModel, IDraggableViewModel } from '@nakedobjects/view-models';
import { Dictionary } from 'lodash';
import { BehaviorSubject } from 'rxjs';
import * as i0 from "@angular/core";
export declare class AutoCompleteComponent implements OnDestroy {
    private readonly dragAndDrop;
    constructor(dragAndDrop: DragAndDropService);
    private fieldViewModel;
    private bSubject?;
    private sub?;
    private currentIndex;
    inputField?: ElementRef;
    canDrop: boolean;
    dragOver: boolean;
    set model(m: FieldViewModel);
    get model(): FieldViewModel;
    form: FormGroup;
    get modelPaneId(): string;
    get modelId(): string;
    get control(): AbstractControl;
    get choices(): ChoiceViewModel[];
    get accept(): (cdkDrag: CdkDrag<IDraggableViewModel>, _cdkDropList: CdkDropList) => boolean;
    drop(event: CdkDragDrop<CdkDrag<IDraggableViewModel>>): void;
    exit(): void;
    enter(): void;
    classes(): Dictionary<boolean | null>;
    get description(): string;
    paste(event: KeyboardEvent): void;
    clear(): void;
    select(item: ChoiceViewModel): void;
    choiceName: (choice: ChoiceViewModel) => string;
    get subject(): BehaviorSubject<unknown>;
    isSelected(i: number): {
        selected: boolean;
    };
    onArrowUp(): boolean;
    onArrowDown(): boolean;
    selectCurrent(): boolean;
    ngOnDestroy(): void;
    focus(): boolean;
    static ɵfac: i0.ɵɵFactoryDeclaration<AutoCompleteComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<AutoCompleteComponent, "nof-auto-complete", never, { "model": { "alias": "model"; "required": true; }; "form": { "alias": "form"; "required": true; }; }, {}, never, never, false, never>;
}
