import type { Select } from '..';
import { type ListOption } from '../../list-option';
/**
 * Page object for the `nimble-select` component to provide consistent ways
 * of querying and interacting with the component during tests.
 */
export declare class SelectPageObject {
    protected readonly selectElement: Select;
    constructor(selectElement: Select);
    openAndSetFilterText(filterText: string): Promise<void>;
    closeDropdown(): Promise<void>;
    setOptions(options: ListOption[]): Promise<void>;
    getFilteredOptions(): ListOption[];
    getSelectedOption(): ListOption | null;
    getActiveOption(): ListOption | null;
    getDisplayText(): string;
    getGroupLabels(): string[];
    getGroupOptionLabelsByIndex(groupIndex: number): string[];
    getGroupOptionLabelsByLabel(groupLabel: string): string[];
    /**
     * Gets the label text of the element
     * @returns The current slotted label text, if any
     */
    getLabelText(): string;
    /**
     * Either opens or closes the dropdown depending on its current state
     */
    clickSelect(): void;
    clickActiveItem(): void;
    clickFilterInput(): Promise<void>;
    /**
     * Selects an option using an index value into the list of visible options.
     * Options that have the `hidden` or `visuallyHidden` attribute set to true
     * are not considered visible.
     * @param index The index of the option in the visible set to be selected
     * @remarks Prefer clickOptionWithDisplayText where possible. This method is
     * useful when the display text is not unique and the index is known.
     */
    clickOption(index: number): void;
    /**
     * Click the option with the text provided by the 'displayText' parameter.
     * @param value The text of the option to be selected
     * @remarks This method is useful when the display text is unique. If the
     * display text is not unique, the first option with the matching text will
     * be selected.
     */
    clickOptionWithDisplayText(displayText: string): void;
    clickClearButton(): void;
    clickAway(): Promise<void>;
    pressEnterKey(): void;
    pressEscapeKey(): void;
    pressTabKey(): void;
    pressArrowDownKey(): void;
    pressArrowUpKey(): void;
    pressCharacterKey(character: string): void;
    pressSpaceKey(): Promise<void>;
    /**
     * This method will set the filter input value to the provided text, which
     * will result in the synchronous dispatch of the 'filter-input' event. The
     * dropdown must be open for this method to work.
     * @param filterText
     */
    setFilter(filterText: string): void;
    /**
     * This method will clear any present filter text, which will result in the
     * synchronous dispatch of the 'filter-input' event. The dropdown must be
     * open for this method to work.
     */
    clearFilter(): void;
    isDropdownVisible(): boolean;
    isClearButtonVisible(): boolean;
    isFilterInputVisible(): boolean;
    isOptionVisible(index: number): boolean;
    isNoResultsLabelVisible(): boolean;
    isLoadingVisualVisible(): boolean;
    getFilterInputText(): string;
    private getVisibleOptions;
    private getFilterInput;
    private getClearButton;
}
