@absmartly/sdk-plugins 1.1.1 → 1.2.1

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.
Files changed (115) hide show
  1. package/README.md +34 -33
  2. package/dist/absmartly-cookie.min.js +1 -1
  3. package/dist/absmartly-dom-changes-core.min.js +1 -1
  4. package/dist/absmartly-dom-changes-lite.min.js +1 -1
  5. package/dist/absmartly-overrides-full.min.js +1 -1
  6. package/dist/absmartly-overrides-lite.min.js +1 -1
  7. package/dist/absmartly-sdk-plugins.min.js +1 -1
  8. package/dist/absmartly-vitals.min.js +1 -1
  9. package/es/cookies/CookiePlugin.js +10 -8
  10. package/es/cookies/CookiePlugin.js.map +1 -1
  11. package/es/core/DOMChangesPluginLite.js +226 -248
  12. package/es/core/DOMChangesPluginLite.js.map +1 -1
  13. package/es/core/DOMManipulatorLite.js +68 -10
  14. package/es/core/DOMManipulatorLite.js.map +1 -1
  15. package/es/core/ExposureTracker.js +136 -11
  16. package/es/core/ExposureTracker.js.map +1 -1
  17. package/es/entries/dom-with-overrides-lite.js +3 -0
  18. package/es/entries/dom-with-overrides-lite.js.map +1 -1
  19. package/es/index.js +9 -2
  20. package/es/index.js.map +1 -1
  21. package/es/overrides/OverridesPlugin.js +2 -2
  22. package/es/overrides/OverridesPlugin.js.map +1 -1
  23. package/es/overrides/OverridesPluginLite.js +29 -1
  24. package/es/overrides/OverridesPluginLite.js.map +1 -1
  25. package/es/overrides/overridesUtils.js +27 -18
  26. package/es/overrides/overridesUtils.js.map +1 -1
  27. package/es/parsers/VariantExtractor.js +80 -67
  28. package/es/parsers/VariantExtractor.js.map +1 -1
  29. package/es/url-redirect/URLRedirectExtractor.js +185 -0
  30. package/es/url-redirect/URLRedirectExtractor.js.map +1 -0
  31. package/es/url-redirect/URLRedirectMatcher.js +115 -0
  32. package/es/url-redirect/URLRedirectMatcher.js.map +1 -0
  33. package/es/url-redirect/URLRedirectPlugin.js +350 -0
  34. package/es/url-redirect/URLRedirectPlugin.js.map +1 -0
  35. package/es/url-redirect/index.js +5 -0
  36. package/es/url-redirect/index.js.map +1 -0
  37. package/es/url-redirect/types.js +2 -0
  38. package/es/url-redirect/types.js.map +1 -0
  39. package/es/utils/persistence.js +278 -0
  40. package/es/utils/persistence.js.map +1 -0
  41. package/es/utils/plugin-registry.js +47 -0
  42. package/es/utils/plugin-registry.js.map +1 -0
  43. package/es/vitals/WebVitalsPlugin.js +19 -4
  44. package/es/vitals/WebVitalsPlugin.js.map +1 -1
  45. package/lib/cookies/CookiePlugin.d.ts +2 -1
  46. package/lib/cookies/CookiePlugin.js +10 -8
  47. package/lib/cookies/CookiePlugin.js.map +1 -1
  48. package/lib/core/DOMChangesPluginLite.d.ts +13 -9
  49. package/lib/core/DOMChangesPluginLite.js +226 -248
  50. package/lib/core/DOMChangesPluginLite.js.map +1 -1
  51. package/lib/core/DOMManipulatorLite.js +68 -10
  52. package/lib/core/DOMManipulatorLite.js.map +1 -1
  53. package/lib/core/ExposureTracker.d.ts +6 -0
  54. package/lib/core/ExposureTracker.js +136 -11
  55. package/lib/core/ExposureTracker.js.map +1 -1
  56. package/lib/entries/dom-with-overrides-lite.d.ts +2 -0
  57. package/lib/entries/dom-with-overrides-lite.js +3 -1
  58. package/lib/entries/dom-with-overrides-lite.js.map +1 -1
  59. package/lib/index.d.ts +8 -2
  60. package/lib/index.js +17 -1
  61. package/lib/index.js.map +1 -1
  62. package/lib/overrides/OverridesPlugin.js +2 -2
  63. package/lib/overrides/OverridesPlugin.js.map +1 -1
  64. package/lib/overrides/OverridesPluginLite.d.ts +8 -0
  65. package/lib/overrides/OverridesPluginLite.js +29 -1
  66. package/lib/overrides/OverridesPluginLite.js.map +1 -1
  67. package/lib/overrides/overridesUtils.d.ts +10 -5
  68. package/lib/overrides/overridesUtils.js +28 -18
  69. package/lib/overrides/overridesUtils.js.map +1 -1
  70. package/lib/parsers/VariantExtractor.d.ts +4 -5
  71. package/lib/parsers/VariantExtractor.js +80 -67
  72. package/lib/parsers/VariantExtractor.js.map +1 -1
  73. package/lib/types/index.d.ts +5 -12
  74. package/lib/url-redirect/URLRedirectExtractor.d.ts +16 -0
  75. package/lib/url-redirect/URLRedirectExtractor.js +188 -0
  76. package/lib/url-redirect/URLRedirectExtractor.js.map +1 -0
  77. package/lib/url-redirect/URLRedirectMatcher.d.ts +8 -0
  78. package/lib/url-redirect/URLRedirectMatcher.js +118 -0
  79. package/lib/url-redirect/URLRedirectMatcher.js.map +1 -0
  80. package/lib/url-redirect/URLRedirectPlugin.d.ts +21 -0
  81. package/lib/url-redirect/URLRedirectPlugin.js +353 -0
  82. package/lib/url-redirect/URLRedirectPlugin.js.map +1 -0
  83. package/lib/url-redirect/index.d.ts +4 -0
  84. package/lib/url-redirect/index.js +25 -0
  85. package/lib/url-redirect/index.js.map +1 -0
  86. package/lib/url-redirect/types.d.ts +29 -0
  87. package/lib/url-redirect/types.js +3 -0
  88. package/lib/url-redirect/types.js.map +1 -0
  89. package/lib/utils/persistence.d.ts +23 -0
  90. package/lib/utils/persistence.js +281 -0
  91. package/lib/utils/persistence.js.map +1 -0
  92. package/lib/utils/plugin-registry.d.ts +40 -0
  93. package/lib/utils/plugin-registry.js +53 -0
  94. package/lib/utils/plugin-registry.js.map +1 -0
  95. package/lib/vitals/WebVitalsPlugin.d.ts +2 -0
  96. package/lib/vitals/WebVitalsPlugin.js +19 -4
  97. package/lib/vitals/WebVitalsPlugin.js.map +1 -1
  98. package/package.json +59 -3
  99. package/types/cookies/CookiePlugin.d.ts +2 -1
  100. package/types/core/DOMChangesPluginLite.d.ts +13 -9
  101. package/types/core/ExposureTracker.d.ts +6 -0
  102. package/types/entries/dom-with-overrides-lite.d.ts +2 -0
  103. package/types/index.d.ts +8 -2
  104. package/types/overrides/OverridesPluginLite.d.ts +8 -0
  105. package/types/overrides/overridesUtils.d.ts +10 -5
  106. package/types/parsers/VariantExtractor.d.ts +4 -5
  107. package/types/types/index.d.ts +5 -12
  108. package/types/url-redirect/URLRedirectExtractor.d.ts +16 -0
  109. package/types/url-redirect/URLRedirectMatcher.d.ts +8 -0
  110. package/types/url-redirect/URLRedirectPlugin.d.ts +21 -0
  111. package/types/url-redirect/index.d.ts +4 -0
  112. package/types/url-redirect/types.d.ts +29 -0
  113. package/types/utils/persistence.d.ts +23 -0
  114. package/types/utils/plugin-registry.d.ts +40 -0
  115. package/types/vitals/WebVitalsPlugin.d.ts +2 -0
@@ -5,12 +5,14 @@
5
5
  import { DOMChangesPluginLite } from '../core/DOMChangesPluginLite';
6
6
  import { OverridesPluginLite } from '../overrides/OverridesPluginLite';
7
7
  import { CookiePlugin } from '../cookies/CookiePlugin';
8
+ import { DOMPersistenceManager } from '../utils/persistence';
8
9
  export * from '../types';
9
10
  export * from '../overrides/types';
10
11
  export type { CookiePluginOptions } from '../cookies/CookiePlugin';
11
12
  export type { CookieOptions } from '../cookies/cookieUtils';
12
13
  export { DOMChangesPluginLite, OverridesPluginLite, CookiePlugin };
13
14
  export { DOMChangesPluginLite as DOMChangesPlugin };
15
+ export { DOMPersistenceManager };
14
16
  export { getCookie, setCookie, deleteCookie, generateUniqueId, generateUUID, isLocalStorageAvailable, } from '../cookies/cookieUtils';
15
17
  export { getQueryStringOverrides, parseOverrideCookie, getCookieOverrides as getOverrideCookie, serializeOverrides, persistOverridesToCookie, getOverrides, } from '../overrides/overridesUtils';
16
18
  export type { SimpleOverride, OverrideOptions } from '../overrides/overridesUtils';
package/types/index.d.ts CHANGED
@@ -3,15 +3,21 @@ import { OverridesPlugin } from './overrides/OverridesPlugin';
3
3
  import { BrowserCookieAdapter } from './overrides/BrowserCookieAdapter';
4
4
  import { CookiePlugin } from './cookies/CookiePlugin';
5
5
  import { WebVitalsPlugin } from './vitals/WebVitalsPlugin';
6
+ import { URLRedirectPlugin } from './url-redirect/URLRedirectPlugin';
6
7
  export * from './types';
7
8
  export * from './overrides/types';
9
+ export * from './url-redirect/types';
8
10
  export type { CookiePluginOptions } from './cookies/CookiePlugin';
9
11
  export type { CookieOptions } from './cookies/cookieUtils';
10
12
  export type { WebVitalsPluginOptions, Metric } from './vitals/WebVitalsPlugin';
11
13
  export { DOMChangesPluginLite, DOMChangesPluginLite as DOMChangesPlugin, // Alias for backward compatibility
12
14
  OverridesPlugin, // Legacy export - this is the original full-featured version
13
- BrowserCookieAdapter, CookiePlugin, WebVitalsPlugin, };
15
+ BrowserCookieAdapter, CookiePlugin, WebVitalsPlugin, URLRedirectPlugin, };
14
16
  export { getCookie, setCookie, deleteCookie, generateUniqueId, generateUUID, isLocalStorageAvailable, } from './cookies/cookieUtils';
15
- export { getQueryStringOverrides, parseOverrideCookie, getCookieOverrides, serializeOverrides, persistOverridesToCookie, getOverrides, } from './overrides/overridesUtils';
17
+ export { DEFAULT_OVERRIDE_COOKIE_NAME, DEFAULT_OVERRIDE_QUERY_PREFIX, getQueryStringOverrides, parseOverrideCookie, getCookieOverrides, serializeOverrides, persistOverridesToCookie, getOverrides, } from './overrides/overridesUtils';
16
18
  export type { SimpleOverride, OverrideOptions } from './overrides/overridesUtils';
19
+ export { registerPlugin, unregisterPlugin, isPluginRegistered, getRegisteredPlugins, } from './utils/plugin-registry';
20
+ export type { PluginRegistry, PluginRegistryEntry } from './utils/plugin-registry';
21
+ export { URLRedirectExtractor } from './url-redirect/URLRedirectExtractor';
22
+ export { URLRedirectMatcher } from './url-redirect/URLRedirectMatcher';
17
23
  export default DOMChangesPluginLite;
@@ -23,5 +23,13 @@ export declare class OverridesPluginLite {
23
23
  protected registerWithContext(): void;
24
24
  protected unregisterFromContext(): void;
25
25
  destroy(): void;
26
+ /**
27
+ * Register plugin in global registry for detection
28
+ */
29
+ protected registerGlobally(): void;
30
+ /**
31
+ * Unregister plugin from global registry
32
+ */
33
+ protected unregisterGlobally(): void;
26
34
  }
27
35
  export {};
@@ -3,6 +3,8 @@
3
3
  * These can be used independently for lightweight override operations
4
4
  * without requiring the full OverridesPlugin class
5
5
  */
6
+ export declare const DEFAULT_OVERRIDE_COOKIE_NAME = "absmartly_overrides";
7
+ export declare const DEFAULT_OVERRIDE_QUERY_PREFIX = "exp_";
6
8
  export interface SimpleOverride {
7
9
  variant: number;
8
10
  env?: number;
@@ -15,7 +17,7 @@ export interface OverrideOptions {
15
17
  }
16
18
  /**
17
19
  * Parse query string parameters for experiment overrides
18
- * @param queryPrefix - Prefix for experiment parameters (e.g., '_exp_')
20
+ * @param queryPrefix - Prefix for experiment parameters (default: DEFAULT_OVERRIDE_QUERY_PREFIX)
19
21
  * @param searchParams - Optional URLSearchParams instance (defaults to window.location.search)
20
22
  */
21
23
  export declare function getQueryStringOverrides(queryPrefix?: string, searchParams?: URLSearchParams): Record<string, number | SimpleOverride>;
@@ -26,8 +28,10 @@ export declare function getQueryStringOverrides(queryPrefix?: string, searchPara
26
28
  export declare function parseOverrideCookie(value: string): Record<string, number | SimpleOverride>;
27
29
  /**
28
30
  * Get experiment overrides from cookie
31
+ * @param cookieName - Name of the cookie to read (default: DEFAULT_OVERRIDE_COOKIE_NAME)
32
+ * @param cookieHeader - Optional cookie header string (for server-side use). If not provided, uses document.cookie
29
33
  */
30
- export declare function getCookieOverrides(cookieName?: string): Record<string, number | SimpleOverride>;
34
+ export declare function getCookieOverrides(cookieName?: string, cookieHeader?: string): Record<string, number | SimpleOverride>;
31
35
  /**
32
36
  * Serialize overrides to cookie value format
33
37
  */
@@ -40,9 +44,10 @@ export declare function persistOverridesToCookie(overrides: Record<string, numbe
40
44
  * Get experiment overrides from query string or cookie
41
45
  * Returns normalized Record<string, number> for use with SDK createContext
42
46
  *
43
- * @param cookieName - Name of the cookie to read/write (default: 'absmartly_overrides')
44
- * @param queryPrefix - Prefix for query string parameters (default: '_exp_')
47
+ * @param cookieName - Name of the cookie to read/write (default: DEFAULT_OVERRIDE_COOKIE_NAME)
48
+ * @param queryPrefix - Prefix for query string parameters (default: DEFAULT_OVERRIDE_QUERY_PREFIX)
45
49
  * @param searchParams - Optional URLSearchParams instance (defaults to window.location.search)
50
+ * @param cookieHeader - Optional cookie header string (for server-side use). If not provided, uses document.cookie
46
51
  * @returns Normalized overrides as Record<string, number>
47
52
  */
48
- export declare function getOverrides(cookieName?: string, queryPrefix?: string, searchParams?: URLSearchParams): Record<string, number>;
53
+ export declare function getOverrides(cookieName?: string, queryPrefix?: string, searchParams?: URLSearchParams, cookieHeader?: string): Record<string, number>;
@@ -1,11 +1,10 @@
1
1
  import { DOMChange, ABsmartlyContext, ExperimentData, DOMChangesData, InjectionDataWithFilter } from '../types';
2
2
  export declare class VariantExtractor {
3
3
  private context;
4
- private dataSource;
5
- private dataFieldName;
4
+ private variableName;
6
5
  private debug;
7
6
  private cachedAllChanges;
8
- constructor(context: ABsmartlyContext, dataSource?: 'variable' | 'customField', dataFieldName?: string, debug?: boolean);
7
+ constructor(context: ABsmartlyContext, variableName?: string, debug?: boolean);
9
8
  clearCache(): void;
10
9
  extractAllChanges(): Map<string, Map<number, DOMChange[]>>;
11
10
  private extractAllVariantsForExperiment;
@@ -38,12 +37,12 @@ export declare class VariantExtractor {
38
37
  anyVariantMatchesURL(experimentName: string, url?: string): boolean;
39
38
  /**
40
39
  * Extract __inject_html from all variants for all experiments
41
- * Only extracts from variant.variables (not from config)
40
+ * Checks both variant.variables and variant.config
42
41
  */
43
42
  extractAllInjectHTML(): Map<string, Map<number, InjectionDataWithFilter>>;
44
43
  /**
45
44
  * Extract __inject_html for a single experiment
46
- * Only from variant.variables (not from config)
45
+ * Checks both variant.variables and variant.config
47
46
  */
48
47
  private extractInjectHTMLForExperiment;
49
48
  }
@@ -28,6 +28,7 @@ export interface DOMChange {
28
28
  observerRoot?: string;
29
29
  waitForElement?: boolean;
30
30
  persistStyle?: boolean;
31
+ persistAttribute?: boolean;
31
32
  trigger_on_view?: boolean;
32
33
  }
33
34
  export interface DOMChangesConfig {
@@ -69,13 +70,8 @@ export interface ElementState {
69
70
  nextSibling?: Element | null;
70
71
  };
71
72
  }
72
- export interface ABsmartlyContext {
73
- ready(): Promise<void>;
74
- data(): ContextData | null;
75
- peek(experimentName: string): number | undefined;
76
- treatment(experimentName: string): number;
77
- override(experimentName: string, variant: number): void;
78
- customFieldValue(experimentName: string, fieldName: string): unknown;
73
+ import type { Context } from '@absmartly/javascript-sdk';
74
+ export interface ABsmartlyContext extends Context {
79
75
  __plugins?: {
80
76
  [key: string]: PluginRegistration | undefined;
81
77
  };
@@ -102,13 +98,10 @@ export interface PluginConfig {
102
98
  */
103
99
  spa?: boolean;
104
100
  visibilityTracking?: boolean;
105
- extensionBridge?: boolean;
106
- dataSource?: 'variable' | 'customField';
107
- dataFieldName?: string;
101
+ variableName?: string;
108
102
  debug?: boolean;
109
- hideUntilReady?: boolean | 'body' | 'elements';
103
+ hideUntilReady?: string | false;
110
104
  hideTimeout?: number;
111
- hideSelector?: string;
112
105
  hideTransition?: string | false;
113
106
  }
114
107
  export interface AppliedChange {
@@ -0,0 +1,16 @@
1
+ import { ABsmartlyContext } from '../types';
2
+ import { URLRedirectConfig } from './types';
3
+ export declare class URLRedirectExtractor {
4
+ private context;
5
+ private variableName;
6
+ private debug;
7
+ private cachedConfigs;
8
+ constructor(context: ABsmartlyContext, variableName?: string, debug?: boolean);
9
+ clearCache(): void;
10
+ extractAllConfigs(): Map<string, Map<number, URLRedirectConfig>>;
11
+ private extractConfigsForExperiment;
12
+ private parseConfig;
13
+ private isValidRedirect;
14
+ getConfigForExperiment(experimentName: string): URLRedirectConfig | null;
15
+ getAllVariantConfigs(experimentName: string): Map<number, URLRedirectConfig>;
16
+ }
@@ -0,0 +1,8 @@
1
+ import { URLRedirect, RedirectMatch } from './types';
2
+ export declare class URLRedirectMatcher {
3
+ static findMatch(currentUrl: string, redirects: URLRedirect[], experimentName: string, variant: number): RedirectMatch | null;
4
+ private static matchRedirect;
5
+ private static matchDomainRedirect;
6
+ private static matchPageRedirect;
7
+ static buildTargetUrl(currentUrl: string, redirect: URLRedirect): string;
8
+ }
@@ -0,0 +1,21 @@
1
+ import { URLRedirectPluginConfig, RedirectMatch } from './types';
2
+ import { URLRedirectExtractor } from './URLRedirectExtractor';
3
+ export declare class URLRedirectPlugin {
4
+ static readonly VERSION: string;
5
+ private config;
6
+ private extractor;
7
+ private initialized;
8
+ private readyPromise;
9
+ constructor(config: URLRedirectPluginConfig);
10
+ ready(): Promise<RedirectMatch | null>;
11
+ private initialize;
12
+ findRedirectMatch(url?: string): RedirectMatch | null;
13
+ private getAnyConfig;
14
+ executeRedirect(match: RedirectMatch): Promise<void>;
15
+ private publishViaBeacon;
16
+ getExtractor(): URLRedirectExtractor;
17
+ refreshExperiments(): void;
18
+ destroy(): void;
19
+ private registerWithContext;
20
+ private unregisterFromContext;
21
+ }
@@ -0,0 +1,4 @@
1
+ export * from './types';
2
+ export { URLRedirectPlugin } from './URLRedirectPlugin';
3
+ export { URLRedirectExtractor } from './URLRedirectExtractor';
4
+ export { URLRedirectMatcher } from './URLRedirectMatcher';
@@ -0,0 +1,29 @@
1
+ import type { URLFilter } from '../types';
2
+ export type RedirectType = 'domain' | 'page';
3
+ export type ControlBehavior = 'redirect-same' | 'no-redirect';
4
+ export interface URLRedirect {
5
+ from: string;
6
+ to: string;
7
+ preservePath?: boolean;
8
+ type: RedirectType;
9
+ }
10
+ export interface URLRedirectConfig {
11
+ redirects: URLRedirect[];
12
+ urlFilter?: URLFilter;
13
+ controlBehavior?: ControlBehavior;
14
+ }
15
+ export interface RedirectMatch {
16
+ redirect: URLRedirect;
17
+ targetUrl: string;
18
+ experimentName: string;
19
+ variant: number;
20
+ isControl: boolean;
21
+ }
22
+ export interface URLRedirectPluginConfig {
23
+ context: import('../types').ABsmartlyContext;
24
+ variableName?: string;
25
+ debug?: boolean;
26
+ autoApply?: boolean;
27
+ useBeacon?: boolean;
28
+ onBeforeRedirect?: (match: RedirectMatch) => void | Promise<void>;
29
+ }
@@ -0,0 +1,23 @@
1
+ import type { DOMChange } from '../types';
2
+ export interface PersistenceConfig {
3
+ debug?: boolean;
4
+ onReapply: (change: DOMChange, experimentName: string) => void;
5
+ }
6
+ export declare class DOMPersistenceManager {
7
+ private watchedElements;
8
+ private persistenceObserver;
9
+ private reapplyingElements;
10
+ private reapplyLogThrottle;
11
+ private appliedChanges;
12
+ private config;
13
+ constructor(config: PersistenceConfig);
14
+ watchElement(element: Element, experimentName: string, change: DOMChange): void;
15
+ unwatchElement(element: Element, experimentName: string): void;
16
+ unwatchExperiment(experimentName: string): void;
17
+ getAppliedChanges(): Map<string, DOMChange[]>;
18
+ clearAll(): void;
19
+ destroy(): void;
20
+ private setupPersistenceObserver;
21
+ private checkStyleOverwritten;
22
+ private checkAttributeOverwritten;
23
+ }
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Global plugin registry for ABsmartly plugins
3
+ * Allows detection and inspection of loaded plugins
4
+ */
5
+ export interface PluginRegistryEntry {
6
+ name: string;
7
+ version: string;
8
+ initialized: boolean;
9
+ timestamp: number;
10
+ capabilities?: string[];
11
+ instance?: any;
12
+ }
13
+ export interface PluginRegistry {
14
+ dom?: PluginRegistryEntry;
15
+ overrides?: PluginRegistryEntry;
16
+ cookie?: PluginRegistryEntry;
17
+ vitals?: PluginRegistryEntry;
18
+ urlRedirect?: PluginRegistryEntry;
19
+ }
20
+ declare global {
21
+ interface Window {
22
+ __ABSMARTLY_PLUGINS__?: PluginRegistry;
23
+ }
24
+ }
25
+ /**
26
+ * Register a plugin in the global registry
27
+ */
28
+ export declare function registerPlugin(pluginType: keyof PluginRegistry, entry: PluginRegistryEntry): void;
29
+ /**
30
+ * Unregister a plugin from the global registry
31
+ */
32
+ export declare function unregisterPlugin(pluginType: keyof PluginRegistry): void;
33
+ /**
34
+ * Check if a plugin is registered
35
+ */
36
+ export declare function isPluginRegistered(pluginType: keyof PluginRegistry): boolean;
37
+ /**
38
+ * Get all registered plugins
39
+ */
40
+ export declare function getRegisteredPlugins(): PluginRegistry;
@@ -31,6 +31,8 @@ export declare class WebVitalsPlugin {
31
31
  trackPageMetricsData(context?: Context): void;
32
32
  private trackImmediateMetrics;
33
33
  private trackLoadMetrics;
34
+ start(): Promise<void>;
35
+ ready(): Promise<void>;
34
36
  initialize(): Promise<void>;
35
37
  reset(): void;
36
38
  }