import { ESLPopup } from '../../../esl-popup/core';
import { ESLSelectList } from '../../esl-select-list/core';
import type { ESLSelect } from './esl-select';
import type { ESLToggleableActionParams } from '../../../esl-toggleable/core/esl-toggleable';
import type { PositionType } from '../../../esl-popup/core/esl-popup-position';
/**
 * ESLSelectDropdown component
 * @author Alexey Stsefanovich (ala'n)
 *
 * Auxiliary inner custom component to render {@link ESLSelect} dropdown section
 * Uses {@link ESLSelectList} to render the content
 */
export declare class ESLSelectDropdown extends ESLPopup {
    static readonly is = "esl-select-dropdown";
    static register(): void;
    /** Owner ESLSelect instance */
    $owner: ESLSelect;
    /** Inner delay timer to dispose popup with list */
    protected _disposeTimeout: number;
    closeOnEsc: boolean;
    closeOnOutsideAction: boolean;
    position: PositionType;
    /** Inner ESLSelectList component */
    protected get $list(): ESLSelectList;
    protected setInitialState(): void;
    protected connectedCallback(): void;
    protected disconnectedCallback(): void;
    protected onShow(params: ESLToggleableActionParams): void;
    protected onHide(params: ESLToggleableActionParams): void;
    protected afterOnHide(params: ESLToggleableActionParams): void;
    protected _onKeyboardEvent(e: KeyboardEvent): void;
    protected _onTabKey(e: KeyboardEvent): void;
    protected _updatePosition(): void;
}
declare global {
    export interface HTMLElementTagNameMap {
        'esl-select-dropdown': ESLSelectDropdown;
    }
}
