/// 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; }; }