import { Element } from "../../../../@types/wdio";
/**
 * @class element
 * @memberof ui5
 */
export declare class ElementModule {
    private vlf;
    private ErrorHandler;
    /**
     * @function waitForAll
     * @memberOf ui5.element
     * @description Waits for all elements matching the given selector.
     * @param {Object} selector - The selector describing the elements.
     * @param {Number} [timeout=30000] - The timeout to wait (ms).
     * @example await ui5.element.waitForAll(selector);
     */
    waitForAll(selector: any, timeout?: number): Promise<void>;
    /**
     * @function getAllDisplayed
     * @memberOf ui5.element
     * @description Returns the visible elements with the given selector.
     * @param {Object} selector - The selector describing the elements.
     * @param {Number} [timeout=30000] - The timeout to wait (ms).
     * @returns {Object[]} - The found elements.
     * @example const elem = await ui5.element.getAllDisplayed(selector);
     */
    getAllDisplayed(selector: any, timeout?: number): Promise<Element[]>;
    /**
     * @function getDisplayed
     * @memberOf ui5.element
     * @description Returns the visible 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).
     * @returns {Object} The found element.
     * @example const elem = await ui5.element.getDisplayed(selector);
     */
    getDisplayed(selector: any, index?: number, timeout?: number): Promise<Element>;
    /**
     * @function getByText
     * @memberOf ui5.element
     * @description Returns the element with the given selector and text value.
     * @param {Object} selector - The selector describing the element.
     * @param {String} value - The text value of 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).
     * @returns {Object} The found element.
     * @example const elem = await ui5.element.getByText(selector, "Home");
     */
    getByText(selector: any, value: string, index?: number, timeout?: number): Promise<Element>;
    /**
     * @function getByChild
     * @memberOf ui5.element
     * @description Gets an element by its selector and child selector.
     * Can be used as unique combination between element and child properties when multiple elements have the same properties.
     * Note: For nested selectors, all properties except of the "elementProperties" are being ignored.
     * @param {String} elementSelector - The selector describing the requested element.
     * @param {String} childSelector - The selector describing a child element of the requested element.
     * @param {Number} [index=0] - The index of the element (in case the combination applies to more than one element).
     * @param {Number} [timeout=30000] - The timeout to wait (ms).
     * @returns {Object} The found element.
     * @example const elementSelector = {
     *  "elementProperties": {...}
     * };
     * const childSelector = {
     *  "elementProperties": {...}
     * };
     * const elem = await ui5.element.getByChild(elementSelector, childSelector);
     */
    getByChild(elementSelector: any, childSelector: any, index?: number, timeout?: number): Promise<Element>;
    /**
     * @function getByParent
     * @memberOf ui5.element
     * @description Gets an element by its selector and parent selector.
     * Can be used as unique combination between element and parent properties when multiple elements have the same properties.
     * Note: For nested selectors, all properties except of the "elementProperties" are being ignored.
     * @param {String} elementSelector - The selector describing the requested element.
     * @param {String} parentSelector - The selector describing the parent element of the requested element.
     * @param {Number} [index=0] - The index of the element (in case the combination applies to more than one element).
     * @param {Number} [timeout=30000] - The timeout to wait (ms).
     * @returns {Object} The found element.
     * @example const elementSelector = {
     *  "elementProperties": {...}
     * };
     * const parentSelector = {
     *  "elementProperties": {...}
     * };
     * const elem = await ui5.element.getByParent(elementSelector, parentSelector);
     */
    getByParent(elementSelector: any, parentSelector: any, index?: number, timeout?: number): Promise<Element>;
    /**
     * @function getId
     * @memberOf ui5.element
     * @description Returns the id 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).
     * @returns {String} The id of the element.
     * @example const elemId = await ui5.element.getId(selector);
     */
    getId(selector: any, index?: number, timeout?: number): Promise<string>;
    /**
     * @function getPropertyValue
     * @memberOf ui5.element
     * @description Returns the UI5 property value of the passed element.
     * @param {Object} selector - The selector describing the element.
     * @param {String} property - The property of 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).
     * @returns {any} The property value of the element.
     * @example const elemValue = await ui5.element.getPropertyValue(selector, "text");
     */
    getPropertyValue(selector: any, property: string, index?: number, timeout?: number): Promise<any>;
    getInnerAttribute(elem: Element, name: string): Promise<any>;
    /**
     * @function getValue
     * @memberOf ui5.element
     * @description Returns the inner value of 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).
     * @returns {String} The value of the element.
     * @example const elemValue = await ui5.element.getValue(selector);
     */
    getValue(selector: any, index?: number, timeout?: number): Promise<string>;
    /**
     * @function getCssPropertyValue
     * @memberOf ui5.element
     * @description Returns the value of the passed CSS property of the element.
     * @param {Object} selector - The selector describing the element.
     * @param {String} cssProperty - The CSS property of the element to get value.
     * @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).
     * @returns {String} The value of the CSS property.
     * @example const cssPropertyValue = await ui5.element.getCssPropertyValue(selector, "visibility");
     */
    getCssPropertyValue(selector: any, cssProperty: string, index?: number, timeout?: number): Promise<string>;
    /**
     * @function getBindingValue
     * @memberOf ui5.element
     * @description Returns the value of the given binding property for a specific element.
     * @param {Object} selector - The selector describing the element.
     * @param {String} bindingContext - The binding property to retrieve.
     * @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).
     * @returns {String} The binding property value.
     * @example const elemBindingValue = await ui5.element.getBindingValue(selector, "InvoiceGrossAmount");
     */
    getBindingValue(selector: any, bindingContext: string, index?: number, timeout?: number): Promise<string>;
    /**
     * @function isVisible
     * @memberOf ui5.element
     * @description Determines if the element is visible.
     * @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).
     * @returns {Boolean} The bool value 'true' or 'false' if the element is visible or not.
     * @example const isVisible = await ui5.element.isVisible(selector);
     */
    isVisible(selector: any, index?: number, timeout?: number): Promise<boolean>;
    /**
     * @function highlight
     * @memberOf ui5.element
     * @description Highlights the element with the given selector.
     * @param {Object} selector - The selector describing the element.
     * @param {Number} [duration=2000] - The duration of the highlighting (ms).
     * @param {String} [color="red"] - The color of the highlighting (CSS color).
     * @example await ui5.element.highlight(selector, 3000, "green");
     */
    highlight(selector: any, duration?: number, color?: string): Promise<void>;
    private _throwSelectorError;
}
declare const _default: ElementModule;
export default _default;
