import type { Protocol } from 'devtools-protocol'; import type { BrowsingContext, Script } from '../../../protocol/protocol.js'; import type { LoggerFn } from '../../../utils/log.js'; import type { CdpTarget } from '../cdp/CdpTarget.js'; import { ChannelProxy } from './ChannelProxy.js'; /** * BiDi IDs are generated by the server and are unique within contexts. * * CDP preload script IDs are generated by the client and are unique * within sessions. * * The mapping between BiDi and CDP preload script IDs is 1:many. * BiDi IDs are needed by the mapper to keep track of potential multiple CDP IDs * in the client. */ export declare class PreloadScript { #private; get id(): string; get targetIds(): Set<Protocol.Target.TargetID>; constructor(params: Script.AddPreloadScriptParameters, logger?: LoggerFn); /** Channels of the preload script. */ get channels(): ChannelProxy[]; /** Contexts of the preload script, if any */ get contexts(): BrowsingContext.BrowsingContext[] | undefined; /** * Adds the script to the given CDP targets by calling the * `Page.addScriptToEvaluateOnNewDocument` command. */ initInTargets(cdpTargets: Iterable<CdpTarget>, runImmediately: boolean): Promise<void>; /** * Adds the script to the given CDP target by calling the * `Page.addScriptToEvaluateOnNewDocument` command. */ initInTarget(cdpTarget: CdpTarget, runImmediately: boolean): Promise<void>; /** * Removes this script from all CDP targets. */ remove(): Promise<void>; /** Removes the provided cdp target from the list of cdp preload scripts. */ dispose(cdpTargetId: Protocol.Target.TargetID): void; }