import * as Common from '../common/common.js'; import type * as ProtocolClient from '../protocol_client/protocol_client.js'; import type * as Protocol from '../../generated/protocol.js'; import { Type as TargetType } from './Target.js'; import { Target } from './Target.js'; import { type SDKModel } from './SDKModel.js'; export declare class TargetManager extends Common.ObjectWrapper.ObjectWrapper { #private; private constructor(); 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: new (arg1: Target) => T): T[]; inspectedURL(): string; observeModels(modelClass: new (arg1: Target) => T, observer: SDKModelObserver): void; unobserveModels(modelClass: new (arg1: Target) => SDKModel, observer: SDKModelObserver): void; modelAdded(target: Target, modelClass: new (arg1: Target) => SDKModel, model: SDKModel): void; private modelRemoved; addModelListener(modelClass: new (arg1: Target) => SDKModel, eventType: T, listener: Common.EventTarget.EventListener, thisObject?: Object): void; removeModelListener(modelClass: new (arg1: Target) => SDKModel, eventType: T, listener: Common.EventTarget.EventListener, thisObject?: Object): void; observeTargets(targetObserver: Observer): void; unobserveTargets(targetObserver: Observer): void; createTarget(id: Protocol.Target.TargetID | 'main', name: string, type: TargetType, parentTarget: Target | null, sessionId?: string, waitForDebuggerInPage?: boolean, connection?: ProtocolClient.InspectorBackend.Connection, targetInfo?: Protocol.Target.TargetInfo): Target; removeTarget(target: Target): void; targets(): Target[]; targetById(id: string): Target | null; mainTarget(): Target | null; mainFrameTarget(): Target | null; browserTarget(): Target | null; maybeAttachInitialTarget(): Promise; clearAllTargetsForTest(): void; } export declare enum Events { AvailableTargetsChanged = "AvailableTargetsChanged", InspectedURLChanged = "InspectedURLChanged", NameChanged = "NameChanged", SuspendStateChanged = "SuspendStateChanged" } export type EventTypes = { [Events.AvailableTargetsChanged]: Protocol.Target.TargetInfo[]; [Events.InspectedURLChanged]: Target; [Events.NameChanged]: Target; [Events.SuspendStateChanged]: 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; }