import type * as Protocol from '../../generated/protocol.js'; import * as Common from '../common/common.js'; import type * as ProtocolClient from '../protocol_client/protocol_client.js'; import * as Root from '../root/root.js'; import { SDKModel, type SDKModelConstructor } from './SDKModel.js'; import { Target, Type as TargetType } from './Target.js'; export declare class TargetManager extends Common.ObjectWrapper.ObjectWrapper { #private; /** * @deprecated * * Intended for {@link SDKModel} classes to be able to retrieve scoped singletons like * the "PageResourceLoader" or the "FrameManager". * * This is only an intermediate step to migrate towards our "layering vision" where * SDKModels don't require things from the next layer. */ readonly context: Root.DevToolsContext.DevToolsContext; get settings(): Common.Settings.Settings; /** * @param overrideAutoStartModels If provided, then the `autostart` flag on {@link RegistrationInfo} will be ignored. */ constructor(context: Root.DevToolsContext.DevToolsContext, overrideAutoStartModels?: Set); static instance({ forceNew }?: { forceNew: boolean; }): TargetManager; static removeInstance(): void; onInspectedURLChange(target: Target): void; onNameChange(target: Target): void; suspendAllTargets(reason?: string): Promise; resumeAllTargets(): Promise; allTargetsSuspended(): boolean; models(modelClass: SDKModelConstructor, opts?: { scoped: boolean; }): T[]; inspectedURL(): string; observeModels(modelClass: SDKModelConstructor, observer: SDKModelObserver, opts?: { scoped: boolean; }): void; unobserveModels(modelClass: SDKModelConstructor, observer: SDKModelObserver): void; modelAdded(modelClass: SDKModelConstructor, model: SDKModel, inScope: boolean): void; private modelRemoved; addModelListener(modelClass: SDKModelConstructor>, eventType: T, listener: Common.EventTarget.EventListener, thisObject?: Object, opts?: { scoped: boolean; }): void; removeModelListener(modelClass: SDKModelConstructor>, eventType: T, listener: Common.EventTarget.EventListener, thisObject?: Object): void; observeTargets(targetObserver: Observer, opts?: { scoped: boolean; }): void; unobserveTargets(targetObserver: Observer): void; createTarget(id: Protocol.Target.TargetID | 'main', name: string, type: TargetType, parentTarget: Target | null, sessionId?: string, waitForDebuggerInPage?: boolean, connection?: ProtocolClient.CDPConnection.CDPConnection, targetInfo?: Protocol.Target.TargetInfo): Target; removeTarget(target: Target): void; targets(): Target[]; targetById(id: string): Target | null; rootTarget(): Target | null; primaryPageTarget(): Target | null; browserTarget(): Target | null; maybeAttachInitialTarget(): Promise; clearAllTargetsForTest(): void; isInScope(arg: SDKModel | Target | Common.EventTarget.EventTargetEvent | null): boolean; setScopeTarget(scopeTarget: Target | null): void; addScopeChangeListener(listener: () => void): void; scopeTarget(): Target | null; } export declare const enum Events { AVAILABLE_TARGETS_CHANGED = "AvailableTargetsChanged", INSPECTED_URL_CHANGED = "InspectedURLChanged", NAME_CHANGED = "NameChanged", SUSPEND_STATE_CHANGED = "SuspendStateChanged" } export interface EventTypes { [Events.AVAILABLE_TARGETS_CHANGED]: Protocol.Target.TargetInfo[]; [Events.INSPECTED_URL_CHANGED]: Target; [Events.NAME_CHANGED]: Target; [Events.SUSPEND_STATE_CHANGED]: void; } export declare class Observer { targetAdded(_target: Target): void; targetRemoved(_target: Target): void; } export declare class SDKModelObserver { modelAdded(_model: T): void; modelRemoved(_model: T): void; }