import 'reflect-metadata';
import { type Locator, type WebDriver, type WebElement } from 'selenium-webdriver';
import type { ShadowRootPromise } from 'selenium-webdriver/lib/webdriver.js';
import { ComponentManager } from './componentManager.js';
export declare abstract class BaseComponent extends ComponentManager {
    parent: ComponentManager;
    driver: WebDriver;
    stalenessCache: WebElement | null;
    findFromParent: boolean;
    abstract locator: Locator | null;
    constructor(parent: ComponentManager, driver: WebDriver, ..._args: unknown[]);
    protected getReferenceNode(): Promise<WebElement | WebDriver>;
    getElement(): Promise<WebElement>;
    isPresent(): Promise<boolean>;
    switchToParentFrame(): Promise<void>;
    cacheElementForStalenessCheck(): Promise<void>;
    cacheHasGoneStale(): Promise<boolean>;
    private isCacheStale;
    clear(): Promise<void>;
    click(): Promise<void>;
    findElement(locator: Locator): Promise<WebElement>;
    findElements(locator: Locator): Promise<WebElement[]>;
    getAttribute(attributeName: string): Promise<string | null>;
    getCssValue(cssStyleProperty: string): Promise<string>;
    getId(): Promise<string>;
    getRect(): Promise<{
        height: number;
        width: number;
        x: number;
        y: number;
    }>;
    getTagName(): Promise<string>;
    getText(): Promise<string>;
    isDisplayed(): Promise<boolean>;
    isEnabled(): Promise<boolean>;
    isSelected(): Promise<boolean>;
    sendKeys(...args: Parameters<WebElement['sendKeys']>): Promise<void>;
    submit(): Promise<void>;
    takeScreenshot(scroll?: boolean): Promise<string>;
    getShadowRoot(): Promise<ShadowRootPromise>;
}
export declare function Component(...args: unknown[]): (target: ComponentManager, propertyKey: string) => void;
