import { ElementArray } from "webdriverio";
import { Locator } from "./locator.js";
export type PseudoElement = "::before" | "::after";
export declare class ElementFinder {
    protected locator: Locator;
    protected parent: ElementFinder | ElementArrayFinder | null;
    constructor(locator: Locator, parent?: ElementFinder | ElementArrayFinder | null);
    getLocator(): Locator;
    getLocatorsChain(): Locator[];
    byId(id: string): ElementFinder;
    byTagName(tagName: string): ElementFinder;
    byClassName(className: string): ElementFinder;
    byCSS(cssExpression: string): ElementFinder;
    byButtonText(text: string): ElementFinder;
    byElementText(tagName: string, text: string): ElementFinder;
    bySystelabTestId(systelabTestId: string): ElementFinder;
    allByTagName(tagName: string): ElementArrayFinder;
    allByClassName(className: string): ElementArrayFinder;
    allByCSS(cssExpression: string): ElementArrayFinder;
    allBySystelabTestId(systelabTestId: string): ElementArrayFinder;
    isPresent(): Promise<boolean>;
    isDisplayed(): Promise<boolean>;
    isClickable(): Promise<boolean>;
    isEnabled(): Promise<boolean>;
    isSelected(): Promise<boolean>;
    isFocused(): Promise<boolean>;
    getText(): Promise<string>;
    getValue(): Promise<string>;
    getHTML(includeSelectorTag: boolean): Promise<string>;
    getAttribute(name: string): Promise<string>;
    getCSSProperty(name: string, pseudoElement?: PseudoElement): Promise<string>;
    getProperty(name: string): Promise<any>;
    getBoundingRect(): Promise<{
        x: number;
        y: number;
        width: number;
        height: number;
    }>;
    getPosition(): Promise<{
        x: number;
        y: number;
    }>;
    getSize(): Promise<{
        width: number;
        height: number;
    }>;
    click(): Promise<void>;
    moveTo(): Promise<void>;
    clear(): Promise<void>;
    write(text: string): Promise<void>;
    tap(): Promise<void>;
    scrollToElement(options?: ScrollIntoViewOptions): Promise<void>;
    waitToBePresent(timeout?: number): Promise<void>;
    waitToBeDisplayed(timeout?: number): Promise<void>;
    waitToBeClickable(timeout?: number): Promise<void>;
    waitToBeEnabled(timeout?: number): Promise<void>;
    waitUntil(condition: () => boolean | Promise<boolean>, timeout?: number): Promise<void>;
    takeScreenshot(): Promise<string>;
    saveScreenshot(filepath: string): Promise<void>;
    findElement(): Promise<WebdriverIO.Element>;
    private findRemoteElement;
}
export declare class ElementArrayFinder {
    protected locator: Locator;
    protected parent: ElementFinder | null;
    constructor(locator: Locator, parent?: ElementFinder | null);
    getLocator(): Locator;
    getLocatorsChain(): Locator[];
    get(index: number): ElementFinder;
    count(): Promise<number>;
    findElements(): Promise<ElementArray>;
    private findRemoteElement;
}
export declare class ElementFinderBuilder {
    static build(locators: Locator[]): ElementFinder | ElementArrayFinder | null;
}
