export interface IDropdownItemOption { value: string; text: string; title?: string; icon?: string; [key: string]: any; } export declare abstract class DropdownBase { private static openedDropdowns; protected className: string; protected dropdownOpenedClass: string; protected itemClassSelected: string; protected dropdownElement: HTMLDivElement; protected dropdownHeader: HTMLDivElement; protected dropdownList: HTMLUListElement; protected dropdownContainer: HTMLDivElement; protected optionItems: IDropdownItemOption[]; protected currentFocusIndex: number; protected handleClickOutsideRef: (event: MouseEvent) => void; constructor(defaultClassName: string); get isOpen(): boolean; render(): HTMLDivElement; protected createDropdownElement(): HTMLDivElement; protected createList(): HTMLUListElement; protected createContainer(): HTMLDivElement; protected createArrow(arrowClassName?: string): HTMLDivElement; protected showPopup(): void; protected hidePopup(): void; private closeOtherOpenedDropdowns; protected focusItem(index: number, updateAriaSelected?: boolean): void; protected updateOptions(): void; protected createOptionItem(option: IDropdownItemOption): HTMLLIElement; protected handleOptionClick(e: MouseEvent, option: IDropdownItemOption, dropdownItem: HTMLLIElement): void; protected handleKeyDown(e: KeyboardEvent): void; protected handleClickOutside(event: MouseEvent): void; protected bindEvents(): void; protected handleHeaderClick(e: MouseEvent): void; protected onBeforePopupShow(): void; protected onOpenedByKeyboard(): void; protected onDropdownOpened(): void; protected updateItemSelection(): void; protected updateOption(option: IDropdownItemOption, item: HTMLLIElement): void; protected shouldUpdateAriaSelectedOnFocus(): boolean; protected abstract createHeader(): HTMLDivElement; protected abstract getOptions(): IDropdownItemOption[]; protected abstract isOptionSelected(option: IDropdownItemOption): boolean; protected abstract onOptionSelect(option: IDropdownItemOption, dropdownItem: HTMLLIElement): void; protected abstract updateSelect(): void; protected abstract attachMethodsToElement(): void; }