import { AbstractLayout, Event, InitModelOf, LookupRow, Popup, ProposalChooser, ProposalChooserActiveFilterSelectedEvent, ProposalChooserLookupRowSelectedEvent, ScoutKeyboardEvent, SmartField, SmartFieldLookupResult, SmartFieldPopupEventMap, SmartFieldPopupModel, SomeRequired, StatusOrModel } from '../../../index';
/**
 * IMPORTANT: this popup logic is partially also implemented in <code>SmartFieldTouchPopup</code>. If you make changes here, also check the touch popup.
 */
export declare class SmartFieldPopup<TValue> extends Popup implements SmartFieldPopupModel<TValue> {
    model: SmartFieldPopupModel<TValue>;
    initModel: SomeRequired<this['model'], 'parent' | 'field'>;
    eventMap: SmartFieldPopupEventMap<TValue>;
    self: SmartFieldPopup<any>;
    field: SmartField<TValue>;
    lookupResult: SmartFieldLookupResult<TValue>;
    smartField: SmartField<TValue>;
    proposalChooser: ProposalChooser<TValue, any, any>;
    constructor();
    protected _init(options: InitModelOf<this>): void;
    protected _createProposalChooser(): ProposalChooser<TValue, any, any>;
    protected _createLayout(): AbstractLayout;
    protected _render(): void;
    setLookupResult(result: SmartFieldLookupResult<TValue>): void;
    /**
     * @returns the selected lookup row from the proposal chooser. If the row is disabled this function returns null.
     */
    getSelectedLookupRow(): LookupRow<TValue>;
    setStatus(status: StatusOrModel): void;
    selectFirstLookupRow(): void;
    selectLookupRow(): void;
    /**
     * Delegates the key event to the proposal chooser.
     */
    delegateKeyEvent(event: ScoutKeyboardEvent & JQuery.Event): void;
    protected _triggerEvent(event: ProposalChooserActiveFilterSelectedEvent<TValue> | ProposalChooserLookupRowSelectedEvent<TValue>): void;
    /**
     * This event handler is called before the mousedown handler on the _document_ is triggered
     * This allows us to prevent the default, which is important for the CellEditorPopup which
     * should stay open when the SmartField popup is closed. It also prevents the focus blur
     * event on the SmartField input-field.
     */
    protected _onContainerMouseDown(event: JQuery.MouseDownEvent): boolean;
    protected _onRemoveSmartField(event: Event<SmartField<TValue>>): void;
    protected _isMouseDownOnAnchor(event: MouseEvent): boolean;
    /** @internal */
    _onAnimationEnd(): void;
    static hasPopupAnimation(): boolean;
}
//# sourceMappingURL=SmartFieldPopup.d.ts.map