///
import IRegisteredEventListener from '@secret-agent/core-interfaces/IRegisteredEventListener';
import ITypedEventEmitter from '@secret-agent/core-interfaces/ITypedEventEmitter';
import IRect from '@secret-agent/core-interfaces/IRect';
import { IPuppetFrame, IPuppetFrameManagerEvents } from './IPuppetFrame';
import { IPuppetKeyboard, IPuppetMouse } from './IPuppetInput';
import { IPuppetNetworkEvents } from './IPuppetNetworkEvents';
import { IPuppetWorker } from './IPuppetWorker';
export interface IPuppetPage extends ITypedEventEmitter {
id: string;
devtoolsSessionId: string;
mouse: IPuppetMouse;
keyboard: IPuppetKeyboard;
frames: IPuppetFrame[];
workers: IPuppetWorker[];
mainFrame: IPuppetFrame;
opener?: IPuppetPage;
isClosed: boolean;
navigate(url: string, options?: {
referrer?: string;
}): Promise;
goBack(): Promise;
goForward(): Promise;
reload(): Promise;
close(): Promise;
bringToFront(): Promise;
screenshot(format?: 'jpeg' | 'png', clipRect?: IRect & {
scale: number;
}, quality?: number): Promise;
popupInitializeFn?: (page: IPuppetPage, openParams: {
url: string;
windowName: string;
}) => Promise;
workerInitializeFn?: (worker: IPuppetWorker) => Promise;
getIndexedDbDatabaseNames(): Promise<{
frameId: string;
origin: string;
databases: string[];
}[]>;
setJavaScriptEnabled(enabled: boolean): Promise;
evaluate(expression: string): Promise;
addNewDocumentScript(script: string, isolateFromWebPageEnvironment: boolean): Promise;
addPageCallback(name: string, onCallback: (payload: any, frameId: string) => any): Promise;
}
export interface IPuppetPageEvents extends IPuppetFrameManagerEvents, IPuppetNetworkEvents {
close: undefined;
worker: {
worker: IPuppetWorker;
};
crashed: {
error: Error;
fatal?: boolean;
};
console: {
frameId: string;
type: string;
message: string;
location: string;
};
'page-error': {
frameId: string;
error: Error;
};
}