import { ExecutionContext } from './execution-context.js';
import { Frame } from './frame.js';
import { SendPostOptions } from './inject/toolkit.js';
import { RemoteObject } from './remote-object.js';
import { BoxModel, CdpNode, CdpRemoteObject, Point, Quad } from './types.js';
export declare class RemoteElement extends RemoteObject {
    objectId: string;
    description: string;
    constructor(executionContext: ExecutionContext, cdpRemoteObject: CdpRemoteObject);
    isDocument(): boolean;
    isOption(): boolean;
    isFrame(): boolean;
    querySelectorAll(selector: string): Promise<RemoteElement[]>;
    querySelector(selector: string): Promise<RemoteElement | null>;
    queryXPathAll(expression: string): Promise<RemoteElement[]>;
    queryXPathOne(expression: string): Promise<RemoteElement | null>;
    matches(selector: string): Promise<boolean>;
    parent(): Promise<RemoteElement | null>;
    closest(selector: string): Promise<RemoteElement | null>;
    children(): Promise<RemoteElement[]>;
    previousSibling(): Promise<RemoteElement | null>;
    nextSibling(): Promise<RemoteElement | null>;
    contains(otherEl: RemoteElement): Promise<boolean>;
    isEqualTo(otherEl: RemoteElement): Promise<boolean>;
    click(options?: ClickOptions): Promise<void>;
    typeText(text: string, options?: TypeTextOptions): Promise<void>;
    hover(options?: ClickOptions): Promise<void>;
    selectOption(): Promise<void>;
    describeNode(): Promise<CdpNode>;
    isConnected(): Promise<boolean>;
    checkConnected(): Promise<void>;
    scrollIntoViewIfNeeded(): Promise<void>;
    scrollIntoView(): Promise<void>;
    getInfo(): Promise<RemoteElementInfo>;
    isVisible(): Promise<boolean>;
    checkVisible(): Promise<void>;
    getStablePoint(): Promise<Point>;
    getClickablePoint(forceScroll?: boolean): Promise<Point>;
    getContentQuads(): Promise<Quad[]>;
    getClientRects(): Promise<DOMRect[]>;
    getBoundingClientRect(): Promise<DOMRect>;
    getBoxModel(): Promise<BoxModel>;
    stashOverlays(): Promise<void>;
    unstashAll(): Promise<void>;
    selectText(): Promise<void>;
    focus(): Promise<void>;
    blur(): Promise<void>;
    getClickTarget(): Promise<RemoteElement>;
    resolveFrame(): Promise<Frame | null>;
    contentDocument(): Promise<RemoteElement>;
    ownerDocument(): Promise<RemoteElement>;
    shadowRoot(): Promise<RemoteElement>;
    createSelector(scopeEl: RemoteElement, unique?: boolean): Promise<string>;
    sendPost(url: string, postParams: Array<[string, string]>, options?: SendPostOptions): Promise<void>;
    highlight(): void;
    hideHighlight(): void;
}
export interface RemoteElementInfo {
    nodeType: number;
    nodeName: string;
    tagName: string;
    isConnected: boolean;
    attributes: {
        [name: string]: string;
    };
    classList: string[];
    text: string;
    innerText: string;
    textContent: string;
    childText: string;
    value: string;
    checked?: boolean;
    selected?: boolean;
    disabled?: boolean;
    indeterminate?: boolean;
}
export interface ClickOptions {
    waitForStable?: boolean;
    hideOverlays?: boolean;
    altKey?: boolean;
    ctrlKey?: boolean;
    metaKey?: boolean;
    shiftKey?: boolean;
    button?: 'left' | 'right' | 'middle' | 'none';
    clickCount?: number;
    delay?: number;
}
export interface TypeTextOptions {
    click?: boolean;
    clickOptions?: ClickOptions;
    focus?: boolean;
    clear?: boolean;
    enter?: boolean;
    blur?: boolean;
    parallel?: boolean;
    delay?: number;
}
//# sourceMappingURL=remote-element.d.ts.map