/**
 * @license
 * Copyright 2023 Tyler Technologies, Inc. 
 * License: Apache-2.0
 */
import { BaseComponent, IBaseComponent } from '../core/base/base-component';
import { ListDropdownHeaderBuilder, ListDropdownFooterBuilder } from './list-dropdown-constants';
export interface IListDropdownAware extends IBaseComponent {
    popupClasses: string | string[];
    popupHeaderBuilder: ListDropdownHeaderBuilder;
    popupFooterBuilder: ListDropdownHeaderBuilder;
    syncPopupWidth: boolean;
    optionLimit: number;
    observeScroll: boolean;
    observeScrollThreshold: number;
    constrainPopupWidth: boolean;
    wrapOptionText: boolean;
}
export declare class ListDropdownAware extends BaseComponent {
    constructor();
    attributeChangedCallback(name: string, oldValue: string, newValue: string): void;
    /** Gets/sets the list of classes to apply to the popup element. */
    popupClasses: string | string[];
    /** Gets/sets the callback function for generating header content within the popup. */
    popupHeaderBuilder: ListDropdownHeaderBuilder;
    /** Gets/sets the callback function for generating header content within the popup. */
    popupFooterBuilder: ListDropdownFooterBuilder;
    /** Gets/sets whether the popup width is synchronized with the popup target width. */
    syncPopupWidth: boolean;
    /** Gets/sets the maximum number of options to display in the dropdown. */
    optionLimit: number;
    /** Controls the observation of scroll events on the dropdown. */
    observeScroll: boolean;
    /** The number of pixels from the bottom to trigger the scroll bottom event. Only applicable if `observeScroll` is true. */
    observeScrollThreshold: number;
    /** Gets/sets whether the popup width will be constrained to a max width of the viewport width (default: `100vw`). */
    constrainPopupWidth: boolean;
    /**
     * Gets/sets whether the options will wrap their text or not.
     * This only applies if `constrainPopupWidth` is `true`, if there is an explicit width set via CSS.
     * */
    wrapOptionText: boolean;
}
