import IDetachedResource from '@ulixee/hero-interfaces/IDetachedResource'; import ISessionMeta from '@ulixee/hero-interfaces/ISessionMeta'; import { IJsPath } from '@ulixee/js-path'; import IWaitForResourceOptions from '@ulixee/hero-interfaces/IWaitForResourceOptions'; import IResourceMeta from '@ulixee/unblocked-specification/agent/net/IResourceMeta'; import IUserProfile from '@ulixee/hero-interfaces/IUserProfile'; import IConfigureSessionOptions from '@ulixee/hero-interfaces/IConfigureSessionOptions'; import IWaitForOptions from '@ulixee/hero-interfaces/IWaitForOptions'; import IScreenshotOptions from '@ulixee/unblocked-specification/agent/browser/IScreenshotOptions'; import IFrameMeta from '@ulixee/hero-interfaces/IFrameMeta'; import IFileChooserPrompt from '@ulixee/unblocked-specification/agent/browser/IFileChooserPrompt'; import ISourceCodeLocation from '@ulixee/commons/interfaces/ISourceCodeLocation'; import IDomState, { IDomStateAllFn } from '@ulixee/hero-interfaces/IDomState'; import IResourceFilterProperties from '@ulixee/hero-interfaces/IResourceFilterProperties'; import ICoreCommandRequestPayload from '@ulixee/hero-interfaces/ICoreCommandRequestPayload'; import IFlowCommandOptions from '@ulixee/hero-interfaces/IFlowCommandOptions'; import CoreCommandQueue from './CoreCommandQueue'; import CoreEventHeap from './CoreEventHeap'; import IWaitForResourceFilter from '../interfaces/IWaitForResourceFilter'; import IJsPathEventTarget from '../interfaces/IJsPathEventTarget'; import ConnectionToHeroCore from '../connections/ConnectionToHeroCore'; import CoreFrameEnvironment from './CoreFrameEnvironment'; import CoreSession from './CoreSession'; import IFlowHandler from '../interfaces/IFlowHandler'; import DomState from './DomState'; export default class CoreTab implements IJsPathEventTarget { private static waitForStateCommandPlaceholder; tabId: number; sessionId: string; commandQueue: CoreCommandQueue; eventHeap: CoreEventHeap; readonly coreSession: CoreSession; get mainFrameEnvironment(): CoreFrameEnvironment; frameEnvironmentsById: Map; protected readonly meta: ISessionMeta & { sessionName: string; }; private readonly flowCommands; private readonly flowHandlers; private readonly connection; private readonly mainFrameId; constructor(meta: ISessionMeta & { sessionName: string; }, connection: ConnectionToHeroCore, coreSession: CoreSession); waitForState(state: IDomState | DomState | IDomStateAllFn, options?: Pick, sourceCode?: { callstack: string; callsitePath: ISourceCodeLocation[]; }): Promise; validateState(state: IDomState | DomState | IDomStateAllFn, callsitePath: ISourceCodeLocation[]): Promise; registerFlowHandler(name: string, state: IDomState | DomState | IDomStateAllFn, handlerFn: (error?: Error) => Promise, callsitePath: ISourceCodeLocation[]): Promise; runFlowCommand(commandFn: () => Promise, exitState: IDomState | DomState | IDomStateAllFn, callsitePath: ISourceCodeLocation[], options?: IFlowCommandOptions): Promise; shouldRetryFlowHandlers(command: CoreCommandQueue['internalState']['lastCommand'], error: Error): Promise; triggerFlowHandlers(): Promise<{ triggeredFlowHandler?: IFlowHandler; matchedFlowHandlers: IFlowHandler[]; }>; getCoreFrameEnvironments(): Promise; getCoreFrameForMeta(frameMeta: IFrameMeta): CoreFrameEnvironment; getResourceProperty(id: number, propertyPath: string): Promise; configure(options: IConfigureSessionOptions): Promise; detachResource(name: string, resourceId: number): Promise; goto(href: string, options: { timeoutMs?: number; referrer?: string; }): Promise; goBack(options: { timeoutMs?: number; }): Promise; goForward(options: { timeoutMs?: number; }): Promise; findResource(filter: IResourceFilterProperties, options?: { sinceCommandId?: number; }): Promise; findResources(filter: IResourceFilterProperties, options?: { sinceCommandId?: number; }): Promise; reload(options: { timeoutMs?: number; }): Promise; exportUserProfile(): Promise; takeScreenshot(options: IScreenshotOptions): Promise; waitForFileChooser(options: IWaitForOptions): Promise; waitForResources(filter: Pick, opts: IWaitForResourceOptions): Promise; waitForMillis(millis: number): Promise; waitForNewTab(opts: IWaitForOptions): Promise; focusTab(): Promise; dismissDialog(accept: boolean, promptText?: string): Promise; addEventListener(jsPath: IJsPath | null, eventType: string, listenerFn: (...args: any[]) => void, options?: any, extras?: Partial): Promise; removeEventListener(jsPath: IJsPath | null, eventType: string, listenerFn: (...args: any[]) => void, options?: any, extras?: Partial): Promise; flush(): Promise; close(): Promise; }