import { AlignmentOptions, AlignmentValues } from "../types";
/**
 * @class userInteraction
 * @memberof ui5
 */
export declare class UserInteraction {
    private vlf;
    private ErrorHandler;
    private static readonly TEXTAREA_METADATA;
    private static readonly TEXTAREA_MACROS_METADATA;
    private static readonly SUPPORTED_TEXTAREA_METADATA;
    private static readonly SELECT_DEPRECATION_MESSAGE;
    /**
     * @function click
     * @memberOf ui5.userInteraction
     * @description Clicks on the element with the given selector.
     * @param {Object} selector - The selector describing the element.
     * @param {Number} [index=0] - The index of the selector (in case there are more than one elements visible at the same time).
     * @param {Number} [timeout=30000] - The timeout to wait (ms).
     * @example await ui5.userInteraction.click(selector);
     */
    click(selector: any, index?: number, timeout?: number): Promise<void>;
    /**
     * @function clickAndRetry
     * @memberOf ui5.userInteraction
     * @description Clicks on the element with the given selector and retries the action in case of a failure.
     * @param {Object} selector - The selector describing the element.
     * @param {Number} [index=0] - The index of the selector (in case there are more than one elements visible at the same time).
     * @param {Number} [timeout=30000] - The timeout to wait (ms).
     * @param {Number} [retries=3] - The number of retries, can be set in config for all functions under params stepsRetries.
     * @param {Number} [interval=5000] - The delay between the retries (ms). Can be set in config for all functions under params.stepRetriesIntervals.
     * @example await ui5.userInteraction.clickAndRetry(selector);
     */
    clickAndRetry(selector: any, index?: number, timeout?: number, retries?: number, interval?: number): Promise<void>;
    /**
     * @function doubleClick
     * @memberOf ui5.userInteraction
     * @description Double Clicks on the passed element.
     * @param {Object} selector - The selector describing the element.
     * @param {Number} [index=0] - The index of the selector (in case there are more than one elements visible at the same time).
     * @param {Number} [timeout=30000] - The timeout to wait (ms).
     * @example await ui5.userInteraction.doubleClick(selector);
     */
    doubleClick(selector: any, index?: number, timeout?: number): Promise<void>;
    /**
     * @function rightClick
     * @memberOf ui5.userInteraction
     * @description Right Clicks on the passed element.
     * @param {Object} selector - The selector describing the element.
     * @param {Number} [index=0] - The index of the selector (in case there are more than one elements visible at the same time).
     * @param {Number} [timeout=30000] - The timeout to wait (ms).
     * @example const elem = await nonUi5.element.getById("button01");
     * await ui5.userInteraction.rightClick(elem);
     */
    rightClick(selector: any, index?: number, timeout?: number): Promise<void>;
    /**
     * @function clickTab
     * @memberOf ui5.userInteraction
     * @description Clicks on the tab with the given selector and checks if the tab got selected successfully.
     * The function retries the click for maximal 3 times if the selection of the tab (blue underline) was not successful.
     * @param {Object} selector - The selector describing the element.
     * @param {Number} [index=0] - The index of the selector (in case there are more than one elements visible at the same time).
     * @param {Number} [timeout=30000] - The timeout to wait (ms).
     * @example await ui5.userInteraction.clickTab(selector);
     */
    clickTab(selector: any, index?: number, timeout?: number): Promise<void>;
    /**
     * @function clickListItem
     * @memberOf ui5.userInteraction
     * @description Clicks or opens the list item with the given selector (e.g. ColumnListItem, StandardListItem).
     * In some cases the default click function is not working correctly (clicks an element within the list item).
     * Therefore we recommend to use this function to open a specific list item.
     * @param {Object} selector - The selector describing the element.
     * @param {Number} [index=0] - The index of the selector (in case there are more than one elements visible at the same time).
     * @param {Number} [timeout=30000] - The timeout to wait (ms).
     * @example await ui5.userInteraction.clickListItem(selector);
     */
    clickListItem(selector: any, index?: number, timeout?: number): Promise<void>;
    /**
     * @function check
     * @memberOf ui5.userInteraction
     * @description Checks the checkbox with the given selector.
     * @param {Object} selector - The selector describing the element.
     * @param {Number} [index=0] - The index of the selector (in case there are more than one elements visible at the same time).
     * @param {Number} [timeout=30000] - The timeout to wait (ms).
     * @example await ui5.userInteraction.check(selector);
     */
    check(selector: any, index?: number, timeout?: number): Promise<void>;
    /**
     * @function uncheck
     * @memberOf ui5.userInteraction
     * @description Unchecks the checkbox with the given selector.
     * @param {Object} selector - The selector describing the element.
     * @param {Number} [index=0] - The index of the selector (in case there are more than one elements visible at the same time).
     * @param {Number} [timeout=30000] - The timeout to wait (ms).
     * @example await ui5.userInteraction.uncheck(selector);
     */
    uncheck(selector: any, index?: number, timeout?: number): Promise<void>;
    /**
     * @function fill
     * @memberOf ui5.userInteraction
     * @description Fills the input field with the given selector.
     * @param {Object} selector - The selector describing the element.
     * @param {String | Number} value - The value to enter.
     * @param {Number} [index=0] - The index of the selector (in case there are more than one elements visible at the same time).
     * @param {Number} [timeout=30000] - The timeout to wait (ms).
     * @example await ui5.userInteraction.fill(selector, "My Value");
     */
    fill(selector: any, value: string | number, index?: number, timeout?: number): Promise<void>;
    /**
     * @function fillAndRetry
     * @memberOf ui5.userInteraction
     * @description Fills the input field with the given selector and retries the action in case of a failure.
     * @param {Object} selector - The selector describing the element.
     * @param {String | Number} value - The value to enter.
     * @param {Number} [index=0] - The index of the selector (in case there are more than one elements visible at the same time).
     * @param {Number} [timeout=30000] - The timeout to wait (ms).
     * @param {Number} [retries=3] - The number of retries, can be set in config for all functions under params stepsRetries.
     * @param {Number} [interval=5000] - The delay between the retries (ms). Can be set in config for all functions under params.stepRetriesIntervals.
     * @example await ui5.userInteraction.fillAndRetry(selector, "My Value");
     */
    fillAndRetry(selector: any, value: string | number, index?: number, timeout?: number, retries?: number, interval?: number): Promise<void>;
    /**
     * @function clear
     * @memberOf ui5.userInteraction
     * @description Clears the input with the given selector.
     * @param {Object} selector - The selector describing the element.
     * @param {Number} [index=0] - The index of the selector (in case there are more than one elements visible at the same time).
     * @param {Number} [timeout=30000] - The timeout to wait (ms).
     * @example await ui5.userInteraction.clear(selector);
     */
    clear(selector: any, index?: number, timeout?: number): Promise<void>;
    /**
     * @function clearAndRetry
     * @memberOf ui5.userInteraction
     * @description  Clears the input with the given selector and retries the action in case of a failure
     * @param {Object} selector - The selector describing the element.
     * @param {Number} [index=0] - The index of the selector (in case there are more than one elements visible at the same time).
     * @param {Number} [timeout=30000] - The timeout to wait (ms).
     * @param {Number} [retries=3] - The number of retries, can be set in config for all functions under params stepsRetries.
     * @param {Number} [interval=5000] - The delay between the retries (ms). Can be set in config for all functions under params.stepRetriesIntervals.
     * @example await ui5.userInteraction.clearAndRetry(selector);
     */
    clearAndRetry(selector: any, index?: number, timeout?: number, retries?: number, interval?: number): Promise<void>;
    /**
     * @function clearAndFill
     * @memberOf ui5.userInteraction
     * @description Clears the input field with the given selector and fills the given value.
     * @param {Object} selector - The selector describing the element.
     * @param {String | Number} value - The value to enter.
     * @param {Number} [index=0] - The index of the selector (in case there are more than one elements visible at the same time).
     * @param {Number} [timeout=30000] - The timeout to wait (ms).
     * @example await ui5.userInteraction.clearAndFill(selector, "My Value");
     */
    clearAndFill(selector: any, value: string | number, index?: number, timeout?: number): Promise<void>;
    /**
     * @function clearAndFillAndRetry
     * @memberOf ui5.userInteraction
     * @description Clears the input field with the given selector and fills the given value. Retries the action in case of a failure.
     * @param {Object} selector - The selector describing the element.
     * @param {String} value - The value to enter.
     * @param {Number} [index=0] - The index of the selector (in case there are more than one elements visible at the same time).
     * @param {Number} [timeout=30000] - The timeout to wait (ms).
     * @param {Number} [retries=3] - The number of retries, can be set in config for all functions under params stepsRetries.
     * @param {Number} [interval=5000] - The delay between the retries (ms). Can be set in config for all functions under params.stepRetriesIntervals.
     * @param {Boolean} [verify=true] - Specifies if the filled value should be verified.
     * @example await ui5.userInteraction.clearAndFillAndRetry(selector, "My Value");
     */
    clearAndFillAndRetry(selector: any, value: string, index?: number, timeout?: number, retries?: number, interval?: number, verify?: boolean): Promise<void>;
    /**
     * @function clearSmartFieldInput
     * @memberOf ui5.userInteraction
     * @description Clears the smart filed with the given selector.
     * @param {Object} selector - The selector describing the element.
     * @param {Number} [index=0] - The index of the selector (in case there are more than one elements visible at the same time).
     * @param {Number} [timeout=30000] - The timeout to wait (ms).
     * @example await ui5.userInteraction.clearSmartFieldInput(selector);
     */
    clearSmartFieldInput(selector: any, index?: number, timeout?: number): Promise<void>;
    /**
     * @function clearAndFillSmartFieldInput
     * @memberOf ui5.userInteraction
     * @description Clears the smart filed with the given selector and fills the given value.
     * @param {Object} selector - The selector describing the element.
     * @param {String} value - The value to enter.
     * @param {Number} [index=0] - The index of the selector (in case there are more than one elements visible at the same time).
     * @param {Number} [timeout=30000] - The timeout to wait (ms).
     * @example await ui5.userInteraction.clearAndFillSmartFieldInput(selector, "My Value");
     */
    clearAndFillSmartFieldInput(selector: any, value: string, index?: number, timeout?: number): Promise<void>;
    /**
     * @function clearAndFillSmartFieldInputAndRetry
     * @memberOf ui5.userInteraction
     * @description Clears the smart filed with the given selector and fills the given value and retries the action in case of a failure.
     * @param {Object} selector - The selector describing the element.
     * @param {String} value - The value to enter.
     * @param {Number} [index=0] - The index of the selector (in case there are more than one elements visible at the same time).
     * @param {Number} [timeout=30000] - The timeout to wait (ms).
     * @param {Number} [retries=3] - The number of retries, can be set in config for all functions under params stepsRetries.
     * @param {Number} [interval=5000] - The delay between the retries (ms). Can be set in config for all functions under params.stepRetriesIntervals.
     * @example await ui5.userInteraction.clearAndFillSmartFieldInputAndRetry(selector, "My Value");
     */
    clearAndFillSmartFieldInputAndRetry(selector: any, value: string, index?: number, timeout?: number, retries?: number, interval?: number): Promise<void>;
    /**
     * @function select
     * @memberOf ui5.userInteraction
     * @description Selects a value from a UI5 dropdown control.
     * @param {Object} selector - The selector describing the element.
     * @param {String} value - The value to select.
     * @param {Number} [index=0] - The index of the selector (in case there are more than one elements visible at the same time).
     * @example await ui5.userInteraction.select(selector, "Germany");
     */
    select(selector: any, value: string | Array<string>, index?: number): Promise<void>;
    selectBox(selector: any, value: string, index?: number): Promise<void>;
    selectComboBox(selector: any, value: string, index?: number): Promise<void>;
    selectMultiComboBox(selector: any, values: any[], index?: number): Promise<void>;
    /**
     * @function clickSelectArrow
     * @memberOf ui5.userInteraction
     * @description Clicks the arrow icon at the passed selector (select box).
     * @param {Object} selector - The selector describing the element.
     * @param {Number} [index=0] - The index of the selector (in case there are more than one elements visible at the same time).
     * @example await ui5.userInteraction.clickSelectArrow(selector);
     */
    clickSelectArrow(selector: any, index?: number): Promise<void>;
    /**
     * @function clickSelectArrowAndRetry
     * @memberOf ui5.userInteraction
     * @description Clicks the arrow icon at the passed selector (select box), and retries in case it fails.
     * @param {Object} selector - The selector describing the element
     * @param {Number} [index=0] - The index of the selector (in case there are more than one elements visible at the same time).
     * @param {Number} [retries=3] - The number of retries, can be set in config for all functions under params stepsRetries.
     * @param {Number} [interval=5000] - The delay between the retries (ms). Can be set in config for all functions under params.stepRetriesIntervals.
     * @example await ui5.userInteraction.clickSelectArrowAndRetry(selector);
     */
    clickSelectArrowAndRetry(selector: any, index?: number, retries?: number, interval?: number): Promise<void>;
    /**
     * @function selectFromTab
     * @memberOf ui5.userInteraction
     * @description Selects the passed value on the tab with the given selector and checks if the tab got selected successfully.
     * The function retries the click for maximal 3 times if the selection of the tab (blue underline) was not successful.
     * @param {Object} selector - The selector describing the element.
     * @param {String} value - The value to select.
     * @param {Number} [index=0] - The index of the selector (in case there are more than one elements visible at the same time).
     * @param {Number} [timeout=30000] - The timeout to wait (ms).
     * @example await ui5.userInteraction.selectFromTab(selector);
     */
    selectFromTab(selector: any, value: string, index?: number, timeout?: number): Promise<void>;
    /**
     * @function mouseOverElement
     * @memberOf ui5.userInteraction
     * @description Moves the cursor/focus to the element with the given selector.
     * @param {Object} selector - The selector describing the element.
     * @param {Number} [index=0] - The index of the selector (in case there are more than one elements visible at the same time).
     * @param {Number} [timeout=30000] - The timeout to wait (ms).
     * @example await ui5.userInteraction.mouseOverElement(selector);
     */
    mouseOverElement(selector: any, index?: number, timeout?: number): Promise<undefined>;
    /**
     * @function scrollToElement
     * @memberOf ui5.userInteraction
     * @description Scrolls the element with the given selector into view.
     * @param {Object} selector - The selector describing the element.
     * @param {Number} [index=0] - The index of the selector (in case there are more than one elements visible at the same time).
     * @param {String | Object} [alignment="center"] - The alignment option for scrolling.
     *   Can be one of: "start", "center", "end", "nearest", or an object with properties:
     *   - block: Vertical alignment ("start", "center", "end", "nearest").
     *   - inline: Horizontal alignment ("start", "center", "end", "nearest").
     * @param {Number} [timeout=30000] - The timeout to wait (ms).
     *
     * @example
     * // Scroll to element with center alignment.
     * await nonUi5.userInteraction.scrollToElement(selector, 0, "center");
     *
     * @example
     * // Scroll to element with custom alignment.
     * const alignment = {
     *   block: "start",
     *   inline: "center"
     * };
     * await nonUi5.userInteraction.scrollToElement(selector, 0, alignment);
     */
    scrollToElement(selector: any, index?: number, alignment?: AlignmentOptions | AlignmentValues, timeout?: number): Promise<void>;
    /**
     * @function selectAll
     * @memberOf ui5.userInteraction
     * @description Performs "select all" (ctrl + a) at the element with the given selector.
     * @param {Object} [selector] - The selector describing the element.
     * @param {Number} [index=0] - The index of the selector, in case there are more than one elements visible at the same time.
     * @param {Number} [timeout=30000] - The timeout to wait (ms).
     * @example await ui5.userInteraction.selectAll(selector);
     */
    selectAll(selector: any, index?: number, timeout?: number): Promise<void>;
    /**
     * @function openF4Help
     * @memberOf ui5.userInteraction
     * @description Opens the F4-help of the element with the given selector.
     * @param {Object} selector - The selector describing the element.
     * @param {Number} [index=0] - The index of the selector (in case there are more than one elements visible at the same time).
     * @param {Number} [timeout=30000] - The timeout to wait (ms).
     * @param {Boolean} useF4Key - Specifies if the help is opened by pressing the F4-key or via the button.
     * The default value is true (triggered by pressing the F4-key). Set "useF4Key" to false, to trigger the search by clicking the button.
     * @example await ui5.userInteraction.openF4Help(selector, 0, 30000, false);
     */
    openF4Help(selector: any, index?: number, timeout?: number, useF4Key?: boolean): Promise<void>;
    /**
     * @function searchFor
     * @memberOf ui5.userInteraction
     * @description Searches for the passed value and executes the search.
     * In case that the search is already filled, it will reset the field first.
     * @param {Object} selector - The selector describing the element.
     * @param {Number} [index=0] - The index of the selector (in case there are more than one elements visible at the same time).
     * @param {Number} [timeout=30000] - The timeout to wait (ms).
     * @param {Boolean} useEnter - Specifies if the search is triggered by pressing the Enter-key or via the search button.
     * The default value is true (triggered by pressing the Enter-key). Set "useEnter" to false, to trigger the search by clicking the search button.
     * @example await ui5.userInteraction.searchFor(selector, "My Value", 0, 30000, false);
     */
    searchFor(selector: any, value: string, index?: number, timeout?: number, useEnter?: boolean): Promise<void>;
    /**
     * @function resetSearch
     * @memberOf ui5.userInteraction
     * @description Resets the search field.
     * @param {Object} selector - The selector describing the element.
     * @param {Number} [index=0] - The index of the selector (in case there are more than one elements visible at the same time).
     * @param {Number} [timeout=30000] - The timeout to wait (ms).
     * @example await ui5.userInteraction.resetSearch(selector);
     */
    resetSearch(selector: any, index?: number, timeout?: number): Promise<void>;
    private _verifyTabSwitch;
    private _selectOption;
    private _selectMultipleOptions;
}
declare const _default: UserInteraction;
export default _default;
