/// <reference types="cheerio" />
import { DOMElement } from "./domelement";
import { iAssertionContext, iValue, KeyValue, FindOptions, FindAllOptions } from "../interfaces";
import { ValuePromise } from "../value-promise";
export declare class HTMLElement extends DOMElement implements iValue {
    protected _path: string;
    protected _input: cheerio.Cheerio | cheerio.Element;
    get $(): cheerio.Cheerio | cheerio.Element;
    protected get el(): cheerio.Cheerio;
    static create(input: any, context: iAssertionContext, name?: string | null, path?: string): Promise<HTMLElement>;
    protected constructor(input: any, context: iAssertionContext, name?: string | null, path?: string);
    find(selector: string, a?: string | RegExp | FindOptions, b?: FindOptions): ValuePromise;
    findAll(selector: string, a?: string | RegExp | FindAllOptions, b?: FindAllOptions): Promise<iValue[]>;
    getAncestorOrSelf(selector: string): Promise<iValue>;
    getFirstChild(selector: string): Promise<iValue>;
    getLastChild(selector: string): Promise<iValue>;
    getChildren(selector?: string): Promise<HTMLElement[]>;
    getSiblings(selector: string): Promise<iValue[]>;
    getFirstSibling(selector: string): Promise<iValue>;
    getLastSibling(selector: string): Promise<iValue>;
    getAncestor(selector?: string): Promise<HTMLElement | iValue>;
    getParent(): Promise<HTMLElement | iValue>;
    getPreviousSibling(selector?: string): Promise<HTMLElement | iValue>;
    getPreviousSiblings(selector?: string): Promise<HTMLElement[]>;
    getNextSibling(selector?: string): Promise<HTMLElement | iValue>;
    getNextSiblings(selector?: string): Promise<HTMLElement[]>;
    click(): Promise<iValue>;
    fillForm(attributeName: string, formData: KeyValue): Promise<iValue>;
    fillForm(formData: KeyValue): Promise<iValue>;
    submit(): Promise<iValue>;
    protected _getText(): Promise<string>;
    protected _getValue(): Promise<any>;
    protected _getProperty(key: string): Promise<any>;
    protected _getInnerText(): Promise<string>;
    protected _getInnerHtml(): Promise<string>;
    protected _getOuterHtml(): Promise<any>;
    protected _getClassName(): Promise<string>;
    protected _getTagName(): Promise<string>;
    protected _getAttribute(key: string): Promise<string | null>;
}
