import { iValue } from "../interfaces/ivalue";
import { JSHandle, ElementHandle, EvaluateFn, Page, PageFnOptions, SerializableOrJSHandle } from "puppeteer-core";
import { DOMElement } from "../html/dom-element";
import { ValuePromise } from "../value-promise";
import { iAssertionContext } from "../interfaces/iassertioncontext";
export declare abstract class PuppeteerElement extends DOMElement implements iValue {
    protected abstract _input: ElementHandle | JSHandle;
    abstract get $(): ElementHandle | JSHandle;
    protected get _page(): Page;
    protected constructor(input: JSHandle | ElementHandle, context: iAssertionContext, name: string, path?: string);
    toString(): string;
    clearThenType(textToType: string, opts?: any): ValuePromise;
    eval(js: string): Promise<any>;
    waitForFunction(js: EvaluateFn<any>, timeout: number, ...args: SerializableOrJSHandle[]): ValuePromise;
    waitForFunction(js: EvaluateFn<any>, opts?: PageFnOptions, ...args: SerializableOrJSHandle[]): ValuePromise;
    waitForHidden(timeout?: number): ValuePromise;
    waitForVisible(timeout?: number): ValuePromise;
    protected _getSourceCode(): Promise<string>;
    protected _eval(js: EvaluateFn<any>, arg?: any): Promise<any>;
    protected _getProperty(key: string): Promise<unknown>;
    protected _waitForIt(fn: EvaluateFn, verb: string, timeout?: number): ValuePromise;
    protected _waitForFunction(fn: EvaluateFn, timeout?: number): Promise<this>;
}
