/**
 * @license
 * Copyright 2023 Tyler Technologies, Inc. 
 * License: Apache-2.0
 */
import { IListDropdownOption, IListDropdownOpenConfig, IListDropdownOptionGroup } from './list-dropdown-constants';
export interface IListDropdownAdapter {
    dropdownElement: HTMLElement | undefined;
    open(config: IListDropdownOpenConfig, selectCallback: (value: any, id: string) => void, closeCb: () => void): void;
    close(): void;
    setScrollBottomListener(listener: () => void, scrollThreshold: number): void;
    removeScrollBottomListener(listener: () => void): void;
    getActiveOptionIndex(): number;
    getSelectedOptionIndex(): number;
    getActiveOptionIdByIndex(index: number): string | null;
    toggleOptionMultiple(index: number, isSelected: boolean): void;
    scrollOptionIntoView(index: number): void;
    scrollSelectedOptionIntoView(animate?: boolean): void;
    activateSelectedOption(config: IListDropdownOpenConfig): void;
    activateOption(index: number, activeChangeCallback: ((id: string) => void) | undefined, animate?: boolean): void;
    setSelectedValues(values: any[], multiple?: boolean): void;
    clearActiveOption(): void;
    syncWidth(sync: boolean, targetWidthCallback?: () => number): void;
    setOptions(config: IListDropdownOpenConfig): void;
    appendOptions(options: Array<IListDropdownOption | IListDropdownOptionGroup>, config: IListDropdownOpenConfig): void;
    setBusyVisibility(isVisible: boolean): void;
    getScreenWidth(): number;
}
export declare class ListDropdownAdapter implements IListDropdownAdapter {
    private _targetElement;
    private _dropdownElement;
    private _listElement;
    private _announcerElement;
    private _scrollObserver;
    private _asyncElement;
    private _busyElement;
    private _headerElement;
    private _footerElement;
    constructor(_targetElement: HTMLElement);
    get dropdownElement(): HTMLElement | undefined;
    open(config: IListDropdownOpenConfig, selectCallback: (value: any, id: string) => void, closeCb: () => void): void;
    close(): void;
    setScrollBottomListener(listener: () => void, scrollThreshold: number): void;
    removeScrollBottomListener(listener: () => void): void;
    getActiveOptionIndex(): number;
    getSelectedOptionIndex(): number;
    getActiveOptionIdByIndex(index: number): string | null;
    toggleOptionMultiple(index: number, isSelected: boolean): void;
    scrollOptionIntoView(index: number, animate?: boolean): void;
    scrollSelectedOptionIntoView(animate?: boolean): void;
    activateSelectedOption(config: IListDropdownOpenConfig): void;
    activateOption(index: number, activeChangeCallback: ((id: string) => void) | undefined, animate?: boolean): void;
    setSelectedValues(values: any[], multiple?: boolean): void;
    clearActiveOption(): void;
    syncWidth(sync: boolean, targetWidthCallback?: () => number): void;
    setOptions(config: IListDropdownOpenConfig): void;
    appendOptions(options: Array<IListDropdownOption | IListDropdownOptionGroup>, config: IListDropdownOpenConfig): void;
    setBusyVisibility(isVisible: boolean): void;
    getScreenWidth(): number;
    private _getListItemElements;
    private _toggleSelectedOption;
    private _getTargetElementWidth;
    private _activateListOption;
    private _scrollListItemIntoView;
    private _getSelectedListItem;
}
