/// <reference types="node" />
import { Value } from "./value";
import { iValue, iAssertionContext, iScenario, iMessageAndCallback } from "./interfaces";
import { Link } from "./link";
import { ResponseType } from "./enums";
import { HttpRequestOptions } from "./httprequest";
export declare abstract class DOMElement extends Value {
    get name(): string;
    protected constructor(input: any, context: iAssertionContext, name?: string | null, path?: string);
    abstract find(selector: string): Promise<iValue>;
    abstract findAll(selector: string): Promise<iValue[]>;
    protected abstract _getTagName(): Promise<string>;
    protected abstract _getAttribute(key: string): Promise<string | null>;
    toString(): string;
    getClassName(): Promise<iValue>;
    hasClassName(className: string): Promise<iValue>;
    getInnerText(): Promise<iValue>;
    getInnerHtml(): Promise<iValue>;
    getOuterHtml(): Promise<iValue>;
    hasAttribute(key: string): Promise<iValue>;
    getAttribute(key: string): Promise<iValue>;
    getStyleProperty(key: string): Promise<iValue>;
    hasProperty(key: string): Promise<iValue>;
    getProperty(key: string): Promise<iValue>;
    hasData(key: string): Promise<iValue>;
    getData(key: string): Promise<iValue>;
    getValue(): Promise<iValue>;
    getText(): Promise<iValue>;
    download(): Promise<Buffer | null>;
    download(localFilePath: string): Promise<Buffer | null>;
    download(localFilePath: string, opts: HttpRequestOptions): Promise<Buffer | null>;
    download(opts: HttpRequestOptions): Promise<Buffer | null>;
    download(localFilePath: string, opts: HttpRequestOptions): Promise<string | null>;
    download(opts: HttpRequestOptions): Promise<string | null>;
    load(): iScenario;
    load(message: string): iScenario;
    load(callback: Function): iScenario;
    load(scenario: iScenario): iScenario;
    load(message: string, callback: Function): iScenario;
    protected _isFormTag(): Promise<boolean>;
    protected _isButtonTag(): Promise<boolean>;
    protected _isLinkTag(): Promise<boolean>;
    protected _isImageTag(): Promise<boolean>;
    protected _isVideoTag(): Promise<boolean>;
    protected _isAudioTag(): Promise<boolean>;
    protected _isScriptTag(): Promise<boolean>;
    protected _isStylesheetTag(): Promise<boolean>;
    protected _isClickable(): Promise<boolean>;
    protected _getUrl(): Promise<string | null>;
    protected _getLambdaScenarioType(): Promise<ResponseType>;
    protected _getLink(): Promise<Link>;
    protected _getLambdaScenarioOpts(newScenarioType: ResponseType): any;
    protected _createSubScenario(overloaded: iMessageAndCallback, defaultResponseType?: ResponseType, defaultOpts?: any): iScenario;
    protected _loadSubScenario(overloaded: iMessageAndCallback): iScenario;
}
