/// <reference types="jquery" />
import { Event, InitModelOf, LookupRow, PropertyChangeEvent, ProposalChooser, ProposalChooserActiveFilterSelectedEvent, ProposalChooserLookupRowSelectedEvent, ScoutKeyboardEvent, SmartField, SmartFieldLookupResult, SmartFieldTouchPopupEventMap, SmartFieldTouchPopupModel, Status, StatusOrModel, TouchPopup } from '../../../index';
/**
 * Info: this class must have the same interface as SmartFieldPopup. That's why there's some
 * copy/pasted code here, because we don't have multi inheritance.
 */
export declare class SmartFieldTouchPopup<TValue> extends TouchPopup implements SmartFieldTouchPopupModel<TValue> {
    model: SmartFieldTouchPopupModel<TValue>;
    eventMap: SmartFieldTouchPopupEventMap<TValue>;
    self: SmartFieldTouchPopup<any>;
    _field: SmartField<TValue>;
    protected _widget: ProposalChooser<TValue, any, any>;
    field: SmartField<TValue>;
    lookupResult: SmartFieldLookupResult<TValue>;
    smartField: SmartField<TValue>;
    protected _initialFieldState: SmartFieldTouchPopupInitialFieldState<TValue>;
    constructor();
    protected _init(options: InitModelOf<this>): void;
    protected _initDelegatedEvents(): string[];
    protected _initWidget(options: SmartFieldTouchPopupModel<TValue>): void;
    protected _getFieldState(): SmartFieldTouchPopupInitialFieldState<TValue>;
    protected _createProposalChooser(): ProposalChooser<TValue, any, any>;
    protected _fieldOverrides(): InitModelOf<SmartField<TValue>>;
    protected _onMouseDownOutside(): void;
    /**
     * Delegates the key event to the proposal chooser.
     */
    delegateKeyEvent(event: ScoutKeyboardEvent & JQuery.Event): void;
    getSelectedLookupRow(): LookupRow<TValue>;
    protected _triggerEvent(event: ProposalChooserActiveFilterSelectedEvent<TValue> | ProposalChooserLookupRowSelectedEvent<TValue>): void;
    setLookupResult(result: SmartFieldLookupResult<TValue>): void;
    setStatus(status: StatusOrModel): void;
    clearLookupRows(): void;
    selectFirstLookupRow(): void;
    selectLookupRow(): void;
    protected _onPropertyChange(event: PropertyChangeEvent<any, SmartField<TValue>>): void;
    protected _beforeClosePopup(event: Event<SmartFieldTouchPopup<TValue>>): void;
}
export type SmartFieldTouchPopupInitialFieldState<TValue> = {
    value: TValue;
    displayText: string;
    errorStatus: Status;
    lookupRow: LookupRow<TValue>;
};
//# sourceMappingURL=SmartFieldTouchPopup.d.ts.map