import type { BrowserUserContext } from './browser.js'; import type { BrowsingContextBrowsingContext } from './browsing_context.js'; import type { EmptyResult, JsUint } from './common.js'; export type EmulationCommand = EmulationSetForcedColorsModeThemeOverride | EmulationSetGeolocationOverride | EmulationSetLocaleOverride | EmulationSetNetworkConditions | EmulationSetScreenOrientationOverride | EmulationSetScreenSettingsOverride | EmulationSetScriptingEnabled | EmulationSetScrollbarTypeOverride | EmulationSetTimezoneOverride | EmulationSetTouchOverride | EmulationSetUserAgentOverride; export type EmulationResult = EmulationSetForcedColorsModeThemeOverrideResult | EmulationSetGeolocationOverrideResult | EmulationSetLocaleOverrideResult | EmulationSetScreenOrientationOverrideResult | EmulationSetScriptingEnabledResult | EmulationSetScrollbarTypeOverrideResult | EmulationSetTimezoneOverrideResult | EmulationSetTouchOverrideResult | EmulationSetUserAgentOverrideResult; export interface EmulationSetForcedColorsModeThemeOverride { method: "emulation.setForcedColorsModeThemeOverride"; params: EmulationSetForcedColorsModeThemeOverrideParameters; } export interface EmulationSetForcedColorsModeThemeOverrideParameters { theme: EmulationForcedColorsModeTheme | null; contexts?: BrowsingContextBrowsingContext[]; userContexts?: BrowserUserContext[]; } export type EmulationForcedColorsModeTheme = "light" | "dark"; export type EmulationSetForcedColorsModeThemeOverrideResult = EmptyResult; export interface EmulationSetGeolocationOverride { method: "emulation.setGeolocationOverride"; params: EmulationSetGeolocationOverrideParameters; } export type EmulationSetGeolocationOverrideParameters = ({ coordinates: EmulationGeolocationCoordinates | null; } | { error: EmulationGeolocationPositionError; }) & { contexts?: BrowsingContextBrowsingContext[]; userContexts?: BrowserUserContext[]; }; export interface EmulationGeolocationCoordinates { latitude: number; longitude: number; /** * @default 1 */ accuracy?: number; /** * @default null */ altitude?: number | null; /** * @default null */ altitudeAccuracy?: number | null; /** * @default null */ heading?: number | null; /** * @default null */ speed?: number | null; } export interface EmulationGeolocationPositionError { type: "positionUnavailable"; } export type EmulationSetGeolocationOverrideResult = EmptyResult; export interface EmulationSetLocaleOverride { method: "emulation.setLocaleOverride"; params: EmulationSetLocaleOverrideParameters; } export interface EmulationSetLocaleOverrideParameters { locale: string | null; contexts?: BrowsingContextBrowsingContext[]; userContexts?: BrowserUserContext[]; } export type EmulationSetLocaleOverrideResult = EmptyResult; export interface EmulationSetNetworkConditions { method: "emulation.setNetworkConditions"; params: EmulationSetNetworkConditionsParameters; } export interface EmulationSetNetworkConditionsParameters { networkConditions: EmulationNetworkConditions | null; contexts?: BrowsingContextBrowsingContext[]; userContexts?: BrowserUserContext[]; } export type EmulationNetworkConditions = EmulationNetworkConditionsOffline; export interface EmulationNetworkConditionsOffline { type: "offline"; } export type EmulationSetNetworkConditionsResult = EmptyResult; export interface EmulationSetScreenSettingsOverride { method: "emulation.setScreenSettingsOverride"; params: EmulationSetScreenSettingsOverrideParameters; } export interface EmulationScreenArea { width: JsUint; height: JsUint; } export interface EmulationSetScreenSettingsOverrideParameters { screenArea: EmulationScreenArea | null; contexts?: BrowsingContextBrowsingContext[]; userContexts?: BrowserUserContext[]; } export type EmulationSetScreenSettingsOverrideResult = EmptyResult; export interface EmulationSetScreenOrientationOverride { method: "emulation.setScreenOrientationOverride"; params: EmulationSetScreenOrientationOverrideParameters; } export type EmulationScreenOrientationNatural = "portrait" | "landscape"; export type EmulationScreenOrientationType = "portrait-primary" | "portrait-secondary" | "landscape-primary" | "landscape-secondary"; export interface EmulationScreenOrientation { natural: EmulationScreenOrientationNatural; type: EmulationScreenOrientationType; } export interface EmulationSetScreenOrientationOverrideParameters { screenOrientation: EmulationScreenOrientation | null; contexts?: BrowsingContextBrowsingContext[]; userContexts?: BrowserUserContext[]; } export type EmulationSetScreenOrientationOverrideResult = EmptyResult; export interface EmulationSetUserAgentOverride { method: "emulation.setUserAgentOverride"; params: EmulationSetUserAgentOverrideParameters; } export interface EmulationSetUserAgentOverrideParameters { userAgent: string | null; contexts?: BrowsingContextBrowsingContext[]; userContexts?: BrowserUserContext[]; } export type EmulationSetUserAgentOverrideResult = EmptyResult; export interface EmulationSetScriptingEnabled { method: "emulation.setScriptingEnabled"; params: EmulationSetScriptingEnabledParameters; } export interface EmulationSetScriptingEnabledParameters { enabled: false | null; contexts?: BrowsingContextBrowsingContext[]; userContexts?: BrowserUserContext[]; } export type EmulationSetScriptingEnabledResult = EmptyResult; export interface EmulationSetScrollbarTypeOverride { method: "emulation.setScrollbarTypeOverride"; params: EmulationSetScrollbarTypeOverrideParameters; } export interface EmulationSetScrollbarTypeOverrideParameters { scrollbarType: "classic" | "overlay" | null; contexts?: BrowsingContextBrowsingContext[]; userContexts?: BrowserUserContext[]; } export type EmulationSetScrollbarTypeOverrideResult = EmptyResult; export interface EmulationSetTimezoneOverride { method: "emulation.setTimezoneOverride"; params: EmulationSetTimezoneOverrideParameters; } export interface EmulationSetTimezoneOverrideParameters { timezone: string | null; contexts?: BrowsingContextBrowsingContext[]; userContexts?: BrowserUserContext[]; } export type EmulationSetTimezoneOverrideResult = EmptyResult; export interface EmulationSetTouchOverride { method: "emulation.setTouchOverride"; params: EmulationSetTouchOverrideParameters; } export interface EmulationSetTouchOverrideParameters { maxTouchPoints: JsUint | null; contexts?: BrowsingContextBrowsingContext[]; userContexts?: BrowserUserContext[]; } export type EmulationSetTouchOverrideResult = EmptyResult; export declare class Emulation { private readonly bidi; private constructor(); static create(driver: unknown): Promise; setForcedColorsModeThemeOverride(params: EmulationSetForcedColorsModeThemeOverrideParameters): Promise; setGeolocationOverride(params: EmulationSetGeolocationOverrideParameters): Promise; setLocaleOverride(params: EmulationSetLocaleOverrideParameters): Promise; setNetworkConditions(params: EmulationSetNetworkConditionsParameters): Promise; setScreenOrientationOverride(params: EmulationSetScreenOrientationOverrideParameters): Promise; setScreenSettingsOverride(params: EmulationSetScreenSettingsOverrideParameters): Promise; setScriptingEnabled(params: EmulationSetScriptingEnabledParameters): Promise; setScrollbarTypeOverride(params: EmulationSetScrollbarTypeOverrideParameters): Promise; setTimezoneOverride(params: EmulationSetTimezoneOverrideParameters): Promise; setTouchOverride(params: EmulationSetTouchOverrideParameters): Promise; setUserAgentOverride(params: EmulationSetUserAgentOverrideParameters): Promise; }