import type { Ref } from 'lit/directives/ref.js';
import type IgcInputComponent from '../../input/input.js';
import type IgcComboListComponent from '../combo-list.js';
import type { ComboHost } from '../types.js';
import type { DataState } from './data.js';
type ComboNavigationConfig = {
    /** The primary input of the combo component. */
    input: Ref<IgcInputComponent>;
    /** The search input of the combo component. */
    search: Ref<IgcInputComponent>;
    /** The combo virtualized dropdown list. */
    list: Ref<IgcComboListComponent>;
    interactions: {
        show: () => Promise<boolean>;
        hide: () => Promise<boolean>;
        toggleSelection: (index: number) => void;
        select: (index: number) => void;
        clearSelection: () => void;
    };
};
export declare class ComboNavigationController<T extends object> {
    private readonly _host;
    private readonly _state;
    private readonly _config;
    private get _input();
    private get _searchInput();
    private get _list();
    private get _firstItem();
    private get _lastItem();
    active: number;
    constructor(host: ComboHost<T>, state: DataState<T>, config: ComboNavigationConfig);
    hostDisconnected(): void;
    private _onSpace;
    private _onEnter;
    private _onTab;
    private _onEscape;
    private _onMainInputArrowDown;
    private _onSearchArrowDown;
    private _onHome;
    private _onEnd;
    private _onArrowUp;
    private _onArrowDown;
    private _scrollToActive;
    private _getNearestItem;
    private _getNextItem;
}
export {};
