@angular-helpers/browser-web-apis 21.3.0 → 21.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,7 +1,15 @@
1
1
  {
2
2
  "name": "@angular-helpers/browser-web-apis",
3
- "version": "21.3.0",
3
+ "version": "21.4.0",
4
4
  "description": "Sistema de servicios Angular para acceso formalizado a Browser Web APIs (cámara, permisos, geolocalización, etc.)",
5
+ "homepage": "https://gaspar1992.github.io/angular-helpers/docs/browser-web-apis",
6
+ "repository": {
7
+ "type": "git",
8
+ "url": "https://github.com/Gaspar1992/angular-helpers"
9
+ },
10
+ "bugs": {
11
+ "url": "https://github.com/Gaspar1992/angular-helpers/issues"
12
+ },
5
13
  "keywords": [
6
14
  "angular",
7
15
  "typescript",
@@ -21,44 +21,74 @@ declare class PermissionsService implements BrowserPermissions {
21
21
  }
22
22
 
23
23
  /**
24
- * Base class for all Browser Web API services
24
+ * Base class for all Browser Web API services.
25
25
  * Provides common functionality for:
26
- * - Support checking
27
- * - Permission management
28
- * - Error handling
26
+ * - Platform detection (browser vs server)
27
+ * - Support assertion via Template Method
28
+ * - Error creation with cause chaining
29
+ * - Structured logging
29
30
  * - Lifecycle management with destroyRef
30
- * - Logging
31
+ *
32
+ * Services that also need permission querying should extend
33
+ * `PermissionAwareBrowserApiBaseService` instead.
31
34
  */
32
35
  declare abstract class BrowserApiBaseService {
33
- protected permissionsService: PermissionsService;
34
36
  protected destroyRef: DestroyRef;
35
37
  protected platformId: Object;
36
38
  /**
37
- * Abstract method that must be implemented by child services
38
- * Returns the API name for support checking
39
+ * Abstract method that must be implemented by child services.
40
+ * Returns the API name used in log messages and error strings.
39
41
  */
40
42
  protected abstract getApiName(): string;
41
43
  /**
42
- * Check if running in browser environment using Angular's platform detection
44
+ * Check if running in browser environment using Angular's platform detection.
43
45
  */
44
46
  protected isBrowserEnvironment(): boolean;
45
47
  /**
46
- * Check if running in server environment using Angular's platform detection
48
+ * Check if running in server environment using Angular's platform detection.
47
49
  */
48
50
  protected isServerEnvironment(): boolean;
49
51
  /**
50
- * Request a permission
52
+ * Template Method: throws a standard error when the API is not available.
53
+ * Uses getApiName() to produce consistent error messages.
51
54
  */
52
- protected requestPermission(permission: PermissionNameExt): Promise<boolean>;
55
+ protected ensureSupported(): void;
53
56
  /**
54
- * Create an error with proper cause chaining
57
+ * Create an error with proper cause chaining.
55
58
  */
56
59
  protected createError(message: string, cause?: unknown): Error;
60
+ /**
61
+ * Log an error with the service name as prefix.
62
+ */
63
+ protected logError(message: string, error?: unknown): void;
64
+ /**
65
+ * Log an informational message with the service name as prefix.
66
+ */
67
+ protected logInfo(message: string): void;
57
68
  static ɵfac: i0.ɵɵFactoryDeclaration<BrowserApiBaseService, never>;
58
69
  static ɵprov: i0.ɵɵInjectableDeclaration<BrowserApiBaseService>;
59
70
  }
60
71
 
61
- declare class CameraService extends BrowserApiBaseService {
72
+ /**
73
+ * Extension of `BrowserApiBaseService` for services that need to query
74
+ * browser permissions via the Permissions API.
75
+ *
76
+ * Only services that actively call `requestPermission()` should extend this
77
+ * class. All other services should extend `BrowserApiBaseService` directly
78
+ * to avoid carrying an unnecessary PermissionsService dependency.
79
+ */
80
+ declare abstract class PermissionAwareBrowserApiBaseService extends BrowserApiBaseService {
81
+ protected permissionsService: PermissionsService;
82
+ /**
83
+ * Query the Permissions API for the given permission name.
84
+ * Returns `true` if the permission state is `'granted'`.
85
+ */
86
+ protected requestPermission(permission: PermissionNameExt): Promise<boolean>;
87
+ static ɵfac: i0.ɵɵFactoryDeclaration<PermissionAwareBrowserApiBaseService, never>;
88
+ static ɵprov: i0.ɵɵInjectableDeclaration<PermissionAwareBrowserApiBaseService>;
89
+ }
90
+
91
+ declare class CameraService extends PermissionAwareBrowserApiBaseService {
62
92
  private currentStream;
63
93
  protected getApiName(): string;
64
94
  private ensureCameraSupport;
@@ -116,12 +146,11 @@ declare class NotificationService extends BrowserApiBaseService {
116
146
  static ɵprov: i0.ɵɵInjectableDeclaration<NotificationService>;
117
147
  }
118
148
 
119
- declare class ClipboardService extends BrowserApiBaseService {
149
+ declare class ClipboardService extends PermissionAwareBrowserApiBaseService {
120
150
  protected getApiName(): string;
121
151
  private ensureClipboardPermission;
122
152
  writeText(text: string): Promise<void>;
123
153
  readText(): Promise<string>;
124
- writeTextSecure(text: string): Promise<void>;
125
154
  static ɵfac: i0.ɵɵFactoryDeclaration<ClipboardService, never>;
126
155
  static ɵprov: i0.ɵɵInjectableDeclaration<ClipboardService>;
127
156
  }
@@ -324,7 +353,6 @@ declare class BatteryService extends BrowserApiBaseService {
324
353
  initialize(): Promise<BatteryInfo>;
325
354
  getBatteryInfo(): BatteryInfo;
326
355
  watchBatteryInfo(): Observable<BatteryInfo>;
327
- private setupEventListeners;
328
356
  getNativeBatteryManager(): BatteryManager;
329
357
  isCharging(): boolean;
330
358
  getLevel(): number;
@@ -497,8 +525,8 @@ interface IntersectionObserverOptions {
497
525
  rootMargin?: string;
498
526
  threshold?: number | number[];
499
527
  }
500
- declare class IntersectionObserverService {
501
- private readonly platformId;
528
+ declare class IntersectionObserverService extends BrowserApiBaseService {
529
+ protected getApiName(): string;
502
530
  isSupported(): boolean;
503
531
  observe(element: Element, options?: IntersectionObserverOptions): Observable<IntersectionObserverEntry[]>;
504
532
  observeVisibility(element: Element, options?: IntersectionObserverOptions): Observable<boolean>;
@@ -515,8 +543,8 @@ interface ElementSize {
515
543
  inlineSize: number;
516
544
  blockSize: number;
517
545
  }
518
- declare class ResizeObserverService {
519
- private readonly platformId;
546
+ declare class ResizeObserverService extends BrowserApiBaseService {
547
+ protected getApiName(): string;
520
548
  isSupported(): boolean;
521
549
  observe(element: Element, options?: ResizeObserverOptions): Observable<ResizeObserverEntry[]>;
522
550
  observeSize(element: Element, options?: ResizeObserverOptions): Observable<ElementSize>;
@@ -525,8 +553,8 @@ declare class ResizeObserverService {
525
553
  }
526
554
 
527
555
  type VisibilityState = 'visible' | 'hidden' | 'prerender';
528
- declare class PageVisibilityService {
529
- private readonly platformId;
556
+ declare class PageVisibilityService extends BrowserApiBaseService {
557
+ protected getApiName(): string;
530
558
  isSupported(): boolean;
531
559
  get isHidden(): boolean;
532
560
  get visibilityState(): VisibilityState;
@@ -536,12 +564,46 @@ declare class PageVisibilityService {
536
564
  static ɵprov: i0.ɵɵInjectableDeclaration<PageVisibilityService>;
537
565
  }
538
566
 
539
- declare class BroadcastChannelService {
540
- private readonly destroyRef;
541
- private readonly platformId;
542
- private channels;
567
+ /**
568
+ * Base class for services that manage a named registry of persistent
569
+ * connections (e.g. BroadcastChannel, EventSource, WebSocket pools).
570
+ *
571
+ * Implements the Template Method pattern: subclasses define how a single
572
+ * native connection is closed via `closeNativeConnection()`, while this
573
+ * class handles the Map lifecycle (remove, closeAll, getActiveKeys).
574
+ *
575
+ * Public-facing method names (`close`, `disconnect`, `getOpenChannels`, etc.)
576
+ * remain the responsibility of the concrete service to preserve the public API.
577
+ */
578
+ declare abstract class ConnectionRegistryBaseService<T> extends BrowserApiBaseService {
579
+ protected readonly connections: Map<string, T>;
580
+ /**
581
+ * Template Method: close a single native connection.
582
+ * Implemented by each concrete service.
583
+ */
584
+ protected abstract closeNativeConnection(connection: T): void;
585
+ /**
586
+ * Remove and close the connection registered under `key`.
587
+ * Safe to call even if the key does not exist.
588
+ */
589
+ protected removeConnection(key: string): void;
590
+ /**
591
+ * Close all registered connections and clear the registry.
592
+ */
593
+ protected closeAllConnections(): void;
594
+ /**
595
+ * Return the keys of all currently open connections.
596
+ */
597
+ protected getConnectionKeys(): string[];
598
+ static ɵfac: i0.ɵɵFactoryDeclaration<ConnectionRegistryBaseService<any>, never>;
599
+ static ɵprov: i0.ɵɵInjectableDeclaration<ConnectionRegistryBaseService<any>>;
600
+ }
601
+
602
+ declare class BroadcastChannelService extends ConnectionRegistryBaseService<BroadcastChannel> {
603
+ protected getApiName(): string;
604
+ protected closeNativeConnection(channel: BroadcastChannel): void;
543
605
  isSupported(): boolean;
544
- private ensureSupport;
606
+ private ensureBroadcastChannelSupported;
545
607
  open<T = unknown>(name: string): Observable<T>;
546
608
  post<T = unknown>(name: string, data: T): void;
547
609
  close(name: string): void;
@@ -562,8 +624,8 @@ interface NetworkInformation {
562
624
  saveData?: boolean;
563
625
  online: boolean;
564
626
  }
565
- declare class NetworkInformationService {
566
- private readonly platformId;
627
+ declare class NetworkInformationService extends BrowserApiBaseService {
628
+ protected getApiName(): string;
567
629
  isSupported(): boolean;
568
630
  getSnapshot(): NetworkInformation;
569
631
  watch(): Observable<NetworkInformation>;
@@ -596,8 +658,8 @@ interface OrientationInfo {
596
658
  type: OrientationType;
597
659
  angle: number;
598
660
  }
599
- declare class ScreenOrientationService {
600
- private readonly platformId;
661
+ declare class ScreenOrientationService extends BrowserApiBaseService {
662
+ protected getApiName(): string;
601
663
  isSupported(): boolean;
602
664
  getSnapshot(): OrientationInfo;
603
665
  get isPortrait(): boolean;
@@ -609,9 +671,8 @@ declare class ScreenOrientationService {
609
671
  static ɵprov: i0.ɵɵInjectableDeclaration<ScreenOrientationService>;
610
672
  }
611
673
 
612
- declare class FullscreenService {
613
- private readonly destroyRef;
614
- private readonly platformId;
674
+ declare class FullscreenService extends BrowserApiBaseService {
675
+ protected getApiName(): string;
615
676
  isSupported(): boolean;
616
677
  get isFullscreen(): boolean;
617
678
  get fullscreenElement(): Element | null;
@@ -703,12 +764,11 @@ interface SSEConfig {
703
764
  withCredentials?: boolean;
704
765
  eventTypes?: string[];
705
766
  }
706
- declare class ServerSentEventsService {
707
- private readonly destroyRef;
708
- private readonly platformId;
709
- private sources;
767
+ declare class ServerSentEventsService extends ConnectionRegistryBaseService<EventSource> {
768
+ protected getApiName(): string;
769
+ protected closeNativeConnection(source: EventSource): void;
710
770
  isSupported(): boolean;
711
- private ensureSupport;
771
+ private ensureSSESupported;
712
772
  connect<T = unknown>(url: string, config?: SSEConfig): Observable<SSEMessage<T>>;
713
773
  disconnect(url: string): void;
714
774
  disconnectAll(): void;
@@ -725,8 +785,8 @@ interface VibrationPreset {
725
785
  notification: VibrationPattern;
726
786
  doubleTap: VibrationPattern;
727
787
  }
728
- declare class VibrationService {
729
- private readonly platformId;
788
+ declare class VibrationService extends BrowserApiBaseService {
789
+ protected getApiName(): string;
730
790
  readonly presets: VibrationPreset;
731
791
  isSupported(): boolean;
732
792
  vibrate(pattern?: VibrationPattern): boolean;
@@ -747,11 +807,10 @@ interface SpeechOptions {
747
807
  rate?: number;
748
808
  pitch?: number;
749
809
  }
750
- declare class SpeechSynthesisService {
751
- private readonly destroyRef;
752
- private readonly platformId;
810
+ declare class SpeechSynthesisService extends BrowserApiBaseService {
811
+ protected getApiName(): string;
753
812
  isSupported(): boolean;
754
- private ensureSupport;
813
+ private ensureSpeechSynthesisSupported;
755
814
  get state(): SpeechState;
756
815
  get isPending(): boolean;
757
816
  getVoices(): SpeechSynthesisVoice[];
@@ -774,8 +833,8 @@ interface MutationObserverOptions {
774
833
  attributeFilter?: string[];
775
834
  }
776
835
 
777
- declare class MutationObserverService {
778
- private readonly platformId;
836
+ declare class MutationObserverService extends BrowserApiBaseService {
837
+ protected getApiName(): string;
779
838
  isSupported(): boolean;
780
839
  observe(target: Node, options?: MutationObserverOptions): Observable<MutationRecord[]>;
781
840
  static ɵfac: i0.ɵɵFactoryDeclaration<MutationObserverService, never>;
@@ -789,8 +848,8 @@ interface PerformanceObserverConfig {
789
848
  buffered?: boolean;
790
849
  }
791
850
 
792
- declare class PerformanceObserverService {
793
- private readonly platformId;
851
+ declare class PerformanceObserverService extends BrowserApiBaseService {
852
+ protected getApiName(): string;
794
853
  isSupported(): boolean;
795
854
  observe(config: PerformanceObserverConfig): Observable<PerformanceEntryList>;
796
855
  observeByType(type: PerformanceEntryType, buffered?: boolean): Observable<PerformanceEntryList>;
@@ -808,8 +867,8 @@ interface IdleState {
808
867
  interface IdleDetectorOptions {
809
868
  threshold?: number;
810
869
  }
811
- declare class IdleDetectorService {
812
- private readonly platformId;
870
+ declare class IdleDetectorService extends BrowserApiBaseService {
871
+ protected getApiName(): string;
813
872
  isSupported(): boolean;
814
873
  requestPermission(): Promise<PermissionState>;
815
874
  watch(options?: IdleDetectorOptions): Observable<IdleState>;
@@ -820,8 +879,8 @@ declare class IdleDetectorService {
820
879
  interface ColorSelectionResult {
821
880
  sRGBHex: string;
822
881
  }
823
- declare class EyeDropperService {
824
- private readonly platformId;
882
+ declare class EyeDropperService extends BrowserApiBaseService {
883
+ protected getApiName(): string;
825
884
  isSupported(): boolean;
826
885
  open(signal?: AbortSignal): Promise<ColorSelectionResult>;
827
886
  static ɵfac: i0.ɵɵFactoryDeclaration<EyeDropperService, never>;
@@ -838,8 +897,8 @@ interface DetectedBarcode {
838
897
  format: BarcodeFormat;
839
898
  rawValue: string;
840
899
  }
841
- declare class BarcodeDetectorService {
842
- private readonly platformId;
900
+ declare class BarcodeDetectorService extends BrowserApiBaseService {
901
+ protected getApiName(): string;
843
902
  isSupported(): boolean;
844
903
  getSupportedFormats(): Promise<BarcodeFormat[]>;
845
904
  detect(image: ImageBitmapSource, formats?: BarcodeFormat[]): Promise<DetectedBarcode[]>;
@@ -852,9 +911,8 @@ interface AudioAnalyserData {
852
911
  frequencyData: Uint8Array;
853
912
  timeDomainData: Uint8Array;
854
913
  }
855
- declare class WebAudioService {
856
- private readonly platformId;
857
- private readonly destroyRef;
914
+ declare class WebAudioService extends BrowserApiBaseService {
915
+ protected getApiName(): string;
858
916
  private context;
859
917
  isSupported(): boolean;
860
918
  getContext(): AudioContext;
@@ -883,8 +941,8 @@ interface GamepadState {
883
941
  timestamp: number;
884
942
  }
885
943
 
886
- declare class GamepadService {
887
- private readonly platformId;
944
+ declare class GamepadService extends BrowserApiBaseService {
945
+ protected getApiName(): string;
888
946
  isSupported(): boolean;
889
947
  getSnapshot(index: number): GamepadState | null;
890
948
  getConnectedGamepads(): GamepadState[];
@@ -980,8 +1038,8 @@ interface BluetoothDeviceInfo {
980
1038
  name: string | undefined;
981
1039
  connected: boolean;
982
1040
  }
983
- declare class WebBluetoothService {
984
- private readonly platformId;
1041
+ declare class WebBluetoothService extends BrowserApiBaseService {
1042
+ protected getApiName(): string;
985
1043
  isSupported(): boolean;
986
1044
  requestDevice(options?: BluetoothRequestDeviceOptions): Promise<BluetoothDeviceRef>;
987
1045
  connect(device: BluetoothDeviceRef): Promise<BluetoothRemoteGATTServer>;
@@ -1002,8 +1060,8 @@ interface UsbDeviceInfo {
1002
1060
  serialNumber: string | undefined;
1003
1061
  opened: boolean;
1004
1062
  }
1005
- declare class WebUsbService {
1006
- private readonly platformId;
1063
+ declare class WebUsbService extends BrowserApiBaseService {
1064
+ protected getApiName(): string;
1007
1065
  isSupported(): boolean;
1008
1066
  requestDevice(filters?: UsbDeviceFilterDef[]): Promise<UsbDeviceRef>;
1009
1067
  getDevices(): Promise<UsbDeviceRef[]>;
@@ -1023,8 +1081,8 @@ declare class WebUsbService {
1023
1081
  static ɵprov: i0.ɵɵInjectableDeclaration<WebUsbService>;
1024
1082
  }
1025
1083
 
1026
- declare class WebNfcService {
1027
- private readonly platformId;
1084
+ declare class WebNfcService extends BrowserApiBaseService {
1085
+ protected getApiName(): string;
1028
1086
  isSupported(): boolean;
1029
1087
  scan(): Observable<NdefReadingEvent>;
1030
1088
  write(message: NdefMessage | string, options?: NdefWriteOptions): Promise<void>;
@@ -1065,8 +1123,8 @@ interface PaymentResult {
1065
1123
  payerEmail: string | null;
1066
1124
  payerPhone: string | null;
1067
1125
  }
1068
- declare class PaymentRequestService {
1069
- private readonly platformId;
1126
+ declare class PaymentRequestService extends BrowserApiBaseService {
1127
+ protected getApiName(): string;
1070
1128
  isSupported(): boolean;
1071
1129
  canMakePayment(methods: PaymentMethodConfig[], details: PaymentDetailsInit): Promise<boolean>;
1072
1130
  show(methods: PaymentMethodConfig[], details: PaymentDetailsInit, options?: PaymentOptionsConfig): Promise<PaymentResult>;
@@ -1104,8 +1162,8 @@ interface CredentialResult {
1104
1162
  id: string;
1105
1163
  type: string;
1106
1164
  }
1107
- declare class CredentialManagementService {
1108
- private readonly platformId;
1165
+ declare class CredentialManagementService extends BrowserApiBaseService {
1166
+ protected getApiName(): string;
1109
1167
  isSupported(): boolean;
1110
1168
  isPublicKeySupported(): boolean;
1111
1169
  get(options?: CredentialRequestOptions): Promise<Credential | null>;
@@ -1391,5 +1449,5 @@ declare function provideCredentialManagement(): EnvironmentProviders;
1391
1449
 
1392
1450
  declare const version = "0.1.0";
1393
1451
 
1394
- export { BarcodeDetectorService, BatteryService, BroadcastChannelService, BrowserApiBaseService, BrowserCapabilityService, BrowserSupportUtil, CameraService, ClipboardService, CredentialManagementService, EyeDropperService, FileSystemAccessService, FullscreenService, GamepadService, GeolocationService, IdleDetectorService, IntersectionObserverService, MediaDevicesService, MediaRecorderService, MutationObserverService, NetworkInformationService, NotificationService, PageVisibilityService, PaymentRequestService, PerformanceObserverService, PermissionsService, ResizeObserverService, ScreenOrientationService, ScreenWakeLockService, ServerSentEventsService, SpeechSynthesisService, VibrationService, WebAudioService, WebBluetoothService, WebNfcService, WebShareService, WebSocketService, WebStorageService, WebUsbService, WebWorkerService, permissionGuard as createPermissionGuard, defaultBrowserWebApisConfig, injectGamepad, injectIdleDetector, injectIntersectionObserver, injectMutationObserver, injectNetworkInformation, injectPageVisibility, injectPerformanceObserver, injectResizeObserver, injectScreenOrientation, permissionGuard, provideBarcodeDetector, provideBattery, provideBroadcastChannel, provideBrowserWebApis, provideCamera, provideClipboard, provideCommunicationApis, provideCredentialManagement, provideEyeDropper, provideFileSystemAccess, provideFullscreen, provideGamepad, provideGeolocation, provideIdleDetector, provideIntersectionObserver, provideLocationApis, provideMediaApis, provideMediaDevices, provideMediaRecorder, provideMutationObserver, provideNetworkInformation, provideNotifications, providePageVisibility, providePaymentRequest, providePerformanceObserver, providePermissions, provideResizeObserver, provideScreenOrientation, provideScreenWakeLock, provideServerSentEvents, provideSpeechSynthesis, provideStorageApis, provideVibration, provideWebAudio, provideWebBluetooth, provideWebNfc, provideWebShare, provideWebSocket, provideWebStorage, provideWebUsb, provideWebWorker, version };
1452
+ export { BarcodeDetectorService, BatteryService, BroadcastChannelService, BrowserApiBaseService, BrowserCapabilityService, BrowserSupportUtil, CameraService, ClipboardService, ConnectionRegistryBaseService, CredentialManagementService, EyeDropperService, FileSystemAccessService, FullscreenService, GamepadService, GeolocationService, IdleDetectorService, IntersectionObserverService, MediaDevicesService, MediaRecorderService, MutationObserverService, NetworkInformationService, NotificationService, PageVisibilityService, PaymentRequestService, PerformanceObserverService, PermissionAwareBrowserApiBaseService, PermissionsService, ResizeObserverService, ScreenOrientationService, ScreenWakeLockService, ServerSentEventsService, SpeechSynthesisService, VibrationService, WebAudioService, WebBluetoothService, WebNfcService, WebShareService, WebSocketService, WebStorageService, WebUsbService, WebWorkerService, permissionGuard as createPermissionGuard, defaultBrowserWebApisConfig, injectGamepad, injectIdleDetector, injectIntersectionObserver, injectMutationObserver, injectNetworkInformation, injectPageVisibility, injectPerformanceObserver, injectResizeObserver, injectScreenOrientation, permissionGuard, provideBarcodeDetector, provideBattery, provideBroadcastChannel, provideBrowserWebApis, provideCamera, provideClipboard, provideCommunicationApis, provideCredentialManagement, provideEyeDropper, provideFileSystemAccess, provideFullscreen, provideGamepad, provideGeolocation, provideIdleDetector, provideIntersectionObserver, provideLocationApis, provideMediaApis, provideMediaDevices, provideMediaRecorder, provideMutationObserver, provideNetworkInformation, provideNotifications, providePageVisibility, providePaymentRequest, providePerformanceObserver, providePermissions, provideResizeObserver, provideScreenOrientation, provideScreenWakeLock, provideServerSentEvents, provideSpeechSynthesis, provideStorageApis, provideVibration, provideWebAudio, provideWebBluetooth, provideWebNfc, provideWebShare, provideWebSocket, provideWebStorage, provideWebUsb, provideWebWorker, version };
1395
1453
  export type { AudioAnalyserData, AudioContextState, BarcodeFormat, BatteryInfo, BatteryManager, BluetoothDeviceInfo, BluetoothDeviceRef, BluetoothRequestDeviceOptions, BrowserCapabilityId, BrowserError, BrowserPermissions, BrowserWebApisConfig, CameraCapabilities, CameraInfo, ColorSelectionResult, ConnectionType, CredentialResult, DetectedBarcode, EffectiveConnectionType, ElementInput, ElementSize, ErrorCallback, EventHandler, FileOpenOptions, FileSaveOptions, GamepadRef, GamepadState, GeolocationCoordinates, GeolocationError, GeolocationOptions, GeolocationPosition$1 as GeolocationPosition, GeolocationWatchOptions, IdleDetectorOptions, IdleDetectorRef, IdleState, IntersectionObserverOptions, IntersectionRef, MediaDevice, MediaDeviceKind, MediaDevicesInfo, MediaStreamConstraints$1 as MediaStreamConstraints, MediaTrackConstraints$1 as MediaTrackConstraints, MutationObserverOptions, MutationRef, NdefMessage, NdefReadingEvent, NdefWriteOptions, NetworkInformation, NetworkInformationRef, OrientationInfo, OrientationLockType, OrientationType, PageVisibilityRef, PasswordCredentialData, PaymentDetailsInit, PaymentMethodConfig, PaymentOptionsConfig, PaymentResult, PerformanceEntryType, PerformanceObserverConfig, PerformanceObserverRef, PermissionNameExt, PermissionRequest, PublicKeyCredentialOptions, RecordingOptions, RecordingResult, RecordingState, ResizeObserverOptions, ResizeRef, SSEConfig, SSEConnectionState, SSEMessage, ScreenIdleState, ScreenOrientationRef, SpeechOptions, SpeechState, StorageEvent, StorageOptions, StorageValue, UsbDeviceFilterDef, UsbDeviceInfo, UsbDeviceRef, UserIdleState, VibrationPattern, VibrationPreset, VisibilityState, WakeLockStatus, WakeLockType, WebSocketConfig, WebSocketMessage, WebSocketStatus, WorkerMessage, WorkerStatus, WorkerTask };