/// <reference types="node" />
import { EventEmitter } from 'events';
import { ExecutionContext } from './execution-context.js';
import { Page } from './page.js';
import { RemoteElement } from './remote-element.js';
import { RemoteObject } from './remote-object.js';
import { CdpFrame, RemoteExpression } from './types.js';
export declare class Frame extends EventEmitter {
    page: Page;
    frameId: string;
    parentFrame?: Frame | undefined;
    childFrames: Set<Frame>;
    loaded: boolean;
    ready: boolean;
    failed: boolean;
    url: string;
    securityOrigin: string;
    mimeType: string;
    protected _isolatedWorld: ExecutionContext | null;
    protected _defaultExecCtx: ExecutionContext | null;
    constructor(page: Page, frameId: string, parentFrame?: Frame | undefined);
    get logger(): import("../logger.js").Logger;
    isMainFrame(): boolean;
    getCurrentExecutionContext(): Promise<ExecutionContext>;
    protected initIsolatedWorld(): Promise<ExecutionContext>;
    getDefaultExecutionContext(): Promise<ExecutionContext>;
    clearExecutionContexts(): void;
    evaluate(pageFn: RemoteExpression, ...args: any[]): Promise<RemoteObject>;
    evaluateElement(pageFn: RemoteExpression, ...args: any[]): Promise<RemoteElement | null>;
    evaluateJson(pageFn: RemoteExpression, ...args: any[]): Promise<any>;
    document(): Promise<RemoteElement>;
    querySelectorAll(selector: string): Promise<RemoteElement[]>;
    querySelector(selector: string): Promise<RemoteElement | null>;
    onNavigated(cdpFrame: CdpFrame): void;
    onStoppedLoading(): void;
    onExecutionContextCreated(context: any): void;
    onExecutionContextDestroyed(executionContextId: string): void;
    onExecutionContextsCleared(): void;
    captureHtmlSnapshot(): Promise<string>;
    private htmlSnapshotPopulateFrameIds;
    private htmlSnapshotEvalWithFrameRefs;
    private htmlSnapshotResolveFrameRefs;
}
//# sourceMappingURL=frame.d.ts.map