import { LitElement } from 'lit';
import type { RootClickController } from '../controllers/root-click.js';
import type { UnpackCustomEvent } from './event-emitter.js';
interface IgcBaseComboBoxEventMap {
    igcOpening: CustomEvent<void>;
    igcOpened: CustomEvent<void>;
    igcClosing: CustomEvent<void>;
    igcClosed: CustomEvent<void>;
}
export declare abstract class IgcBaseComboBoxLikeComponent extends LitElement {
    emitEvent: <K extends keyof IgcBaseComboBoxEventMap, D extends UnpackCustomEvent<IgcBaseComboBoxEventMap[K]>>(event: K, eventInitDict?: CustomEventInit<D>) => boolean;
    protected abstract _rootClickController: RootClickController;
    /**
     * Whether the component dropdown should be kept open on selection.
     * @attr keep-open-on-select
     */
    keepOpenOnSelect: boolean;
    /**
     * Whether the component dropdown should be kept open on clicking outside of it.
     * @attr keep-open-on-outside-click
     */
    keepOpenOnOutsideClick: boolean;
    /**
     * Sets the open state of the component.
     * @attr
     */
    open: boolean;
    protected emitClosing(): boolean;
    protected emitClosed(): boolean;
    protected emitOpening(): boolean;
    protected emitOpened(): boolean;
    protected handleAnchorClick(): void;
    protected _hide(emitEvent?: boolean): Promise<boolean>;
    protected _show(emitEvent?: boolean): Promise<boolean>;
    /** Shows the component. */
    show(): Promise<boolean>;
    /** Hides the component. */
    hide(): Promise<boolean>;
    /** Toggles the open state of the component. */
    toggle(): Promise<boolean>;
}
export declare function getItems<T extends HTMLElement>(root: Node, tagName: string): Generator<T, any, any>;
export declare function getActiveItems<T extends HTMLElement & {
    disabled: boolean;
}>(root: Node, tagName: string): Generator<T, any, any>;
export declare function getNextActiveItem<T extends HTMLElement & {
    disabled: boolean;
}>(items: T[], from: T): T;
export declare function getPreviousActiveItem<T extends HTMLElement & {
    disabled: boolean;
}>(items: T[], from: T): T;
export declare function setInitialSelectionState<T extends HTMLElement & {
    selected: boolean;
}>(items: T[]): T | null;
export {};
