@@ -18,27 +18,149 @@ declare namespace pendo {
1818 type IdentityCookieDomain = `.${string } `;
1919
2020 interface InitOptions extends Identity {
21+ // Core Configuration
2122 apiKey ?: string | undefined ;
23+ publicAppId ?: string | undefined ;
24+ additionalPublicAppIds ?: string [ ] | undefined ;
2225 excludeAllText ?: boolean | undefined ;
2326 excludeTitle ?: boolean | undefined ;
2427 disableCookies ?: boolean ;
2528 disablePersistence ?: boolean | undefined ;
29+ disablePendo ?: boolean | undefined ;
2630 guides ?: {
31+ attachPoint ?: string | ( ( ) => HTMLElement ) | undefined ;
2732 delay ?: boolean | undefined ;
2833 disabled ?: boolean | undefined ;
34+ ejectOnTimeout ?: boolean | undefined ;
35+ globalScripts ?: any [ ] | undefined ;
2936 timeout ?: number | undefined ;
3037 tooltip ?: {
3138 arrowSize ?: number | undefined ;
3239 } | undefined ;
3340 } | undefined ;
3441 events ?: EventCallbacks | undefined ;
42+
43+ // URL and Location Configuration
44+ annotateUrl ?: (
45+ url : string ,
46+ ) => string | string [ ] | {
47+ exclude ?: string [ ] ;
48+ include ?: string [ ] | Record < string , string | number > ;
49+ fragment ?: string ;
50+ } ;
3551 sanitizeUrl ?: ( url : string ) => string ;
52+ queryStringWhitelist ?: string [ ] | ( ( ) => string [ ] ) | undefined ;
53+ ignoreHashRouting ?: boolean | undefined ;
54+ location ?: {
55+ pushState ?: boolean | undefined ;
56+ } | undefined ;
57+
58+ // Hosting and Delivery
59+ assetHost ?: string | undefined ;
60+ contentHost ?: string | undefined ;
61+ dataHost ?: string | undefined ;
62+ selfHostedWebSDKUrl ?: string | undefined ;
63+
64+ // Frame and Cross-Origin Configuration
65+ allowCrossOriginFrames ?: boolean | undefined ;
66+ autoFrameInstall ?: boolean | undefined ;
67+ frameIdentitySync ?: boolean | undefined ;
68+ frameIdentityTopDownOnly ?: boolean | undefined ;
69+ forcedLeader ?: boolean | undefined ;
70+ preferBroadcastChannel ?: boolean | undefined ;
71+ enableCrossOriginIsolation ?: boolean | undefined ;
72+
73+ // Identity and Persistence
74+ forceAnonymous ?: boolean | undefined ;
75+ identityStorageSuffix ?: string | undefined ;
76+ crossAppGuideStorageSuffix ?: string | undefined ;
77+ localStorageOnly ?: boolean | undefined ;
78+ dropAnonymous ?: boolean | undefined ;
79+
80+ // Analytics Configuration
81+ allowedText ?: string [ ] | undefined ;
82+ analytics ?: {
83+ excludeEvents ?: string [ ] | undefined ;
84+ localStorageUnload ?: boolean | undefined ;
85+ } | undefined ;
86+ enableDebugEvents ?: boolean | undefined ;
87+ eventPropertyMatchParents ?: boolean | undefined ;
88+ eventPropertyConfigurations ?: any [ ] | undefined ;
89+ excludeNonGuideAnalytics ?: boolean | undefined ;
90+ interceptPreventDefault ?: boolean | undefined ;
91+ interceptStopPropagation ?: boolean | undefined ;
92+ syntheticClicks ?: {
93+ elementRemoval ?: boolean | undefined ;
94+ targetChanged ?: boolean | undefined ;
95+ } | undefined ;
96+ interceptElementRemoval ?: boolean | undefined ; // Deprecated: use syntheticClicks.elementRemoval
97+
98+ // Guide Configuration
99+ appAutoOrdering ?: string [ ] | undefined ;
100+ blockAgentMetadata ?: boolean | undefined ;
101+ cacheGuides ?: boolean | undefined ;
102+ cacheGuidesPersistent ?: boolean | undefined ;
103+ cacheGuidesTimeout ?: number | undefined ;
104+ captureConsoleLogs ?: boolean | undefined ;
105+ captureNetworkRequests ?: boolean | undefined ;
106+ disableDesigner ?: boolean | undefined ;
107+ disableDesignerKeyboardShortcut ?: boolean | undefined ;
108+ disableGlobalCSS ?: boolean | undefined ;
109+ disableGuidePseudoStyles ?: boolean | undefined ;
110+ disablePrefetch ?: boolean | undefined ;
111+ enableAllEmbeddedGuideEvents ?: boolean | undefined ;
112+ enableDesignerKeyboardShortcut ?: boolean | undefined ;
113+ enableFullUtmReferrer ?: boolean | undefined ;
114+ enableGuideTimeout ?: boolean | undefined ;
115+ enableSignedMetadata ?: boolean | undefined ;
116+ guideMarkdown ?: boolean | undefined ;
117+ guideSeenTimeoutLength ?: number | undefined ;
118+ guideValidation ?: boolean | undefined ;
119+ htmlAttributeBlacklist ?: string [ ] | null | undefined ;
120+ htmlAttributes ?: RegExp | undefined ;
121+ inlineStyleNonce ?: string | undefined ;
122+ leaderApplication ?: string [ ] | undefined ;
123+ preventCodeInjection ?: boolean | undefined ;
124+ preventCookieRefresh ?: boolean | undefined ;
125+ preventUnloadListener ?: boolean | undefined ;
126+ predictGuides ?: boolean | undefined ;
127+ initializeImmediately ?: boolean | undefined ;
128+ observeShadowRoots ?: boolean | undefined ;
129+ preferMutationObserver ?: boolean | undefined ;
130+
131+ // Feedback Configuration
132+ disableFeedback ?: boolean | undefined ;
133+ disableFeedbackAutoInit ?: boolean | undefined ;
134+ pendoFeedback ?: boolean | undefined ;
135+
136+ // Performance and Monitoring
137+ environmentName ?: string | undefined ;
138+ errorClickLogging ?: boolean | undefined ;
139+ extensionPersistLocalStorage ?: boolean | undefined ;
140+ formValidation ?: boolean | undefined ;
141+ isPendoFree ?: boolean | undefined ;
142+ pendoCore ?: boolean | undefined ;
143+ performanceMetricsEnabled ?: boolean | undefined ;
144+ performanceMetricsSampleRate ?: number | undefined ;
145+ recording ?: { enabled ?: boolean | undefined } | undefined ;
146+ requestSegmentFlags ?: boolean | undefined ;
147+ requireHTTPS ?: boolean | undefined ;
148+ requireSignedMetadata ?: boolean | undefined ;
149+ resourceCaching ?: boolean | undefined ;
150+ sendEventsWithPostOnly ?: boolean | undefined ;
151+ siblingSelectors ?: boolean | undefined ;
152+ stagingServers ?: ( string | RegExp ) [ ] | undefined ;
153+ unminified ?: boolean | undefined ;
154+ vocPortal ?: boolean | undefined ;
36155 }
37156
38157 interface EventCallbacks {
39158 ready ?( ) : void ;
40159 guidesLoaded ?( ) : void ;
41160 guidesFailed ?( ) : void ;
161+ validateGlobalScript ?( result : any ) : void ;
162+ validateGuide ?( signatureString : string , guide : Guide ) : void | Promise < void > ;
163+ validateLauncher ?( signatureString : string ) : void | Promise < void > ;
42164 }
43165
44166 interface Pendo {
@@ -47,30 +169,49 @@ declare namespace pendo {
47169 identify ( visitorId : string , accountId ?: string ) : void ;
48170 identify ( identity : Identity ) : void ;
49171 isReady ( ) : boolean ;
50- flushNow ( ) : Promise < any > ;
172+ flushNow ( options ?: { hidden ?: boolean ; unload ?: boolean } ) : Promise < any > ;
51173 updateOptions ( options : Identity ) : void ;
52174 getVersion ( ) : string ;
53175 getVisitorId ( ) : string ;
176+ get_visitor_id ( ) : string ;
177+ set_visitor_id ( newVisitorId : string ) : void ;
54178 getAccountId ( ) : string | null ;
179+ get_account_id ( ) : string | null ;
180+ set_account_id ( newAccountId : string ) : void ;
55181 getCurrentUrl ( ) : string ;
56182 clearSession ( ) : void ;
57183 teardown ( ) : void ;
184+ isAnonymousVisitor ( id ?: string ) : boolean ;
185+ generate_unique_id ( prefix ?: string ) : string ;
58186
59187 // Guides and Guide Center
60188 // eslint-disable-next-line @typescript-eslint/no-invalid-void-type
61189 findGuideByName ( name : string ) : Guide | void ;
62190 // eslint-disable-next-line @typescript-eslint/no-invalid-void-type
63191 findGuideById ( id : string ) : Guide | void ;
192+ // eslint-disable-next-line @typescript-eslint/no-invalid-void-type
193+ findGuideBy ( field : string , value : any ) : Guide | void ;
194+ findModuleByName ( name : string ) : any ;
195+ findStepInGuide ( guide : Guide , stepId : string ) : GuideStep | undefined ;
64196 showGuideByName ( name : string ) : void ;
65- showGuideById ( id : string ) : void ;
197+ showGuideById ( id : string , reason ?: string ) : void ;
198+ isGuideShown ( ) : boolean ;
199+ getActiveGuides ( ) : Guide [ ] ;
200+ getActiveGuide ( ) : Guide | undefined ;
201+ hideGuides ( hideOptions ?: { stayHidden ?: boolean } ) : void ;
66202 toggleLauncher ( ) : void ;
203+ showLauncher ( ) : void ;
204+ hideLauncher ( ) : void ;
67205 removeLauncher ( ) : void ;
68206
69207 // Troubleshooting
70208 setGuidesDisabled ( state : boolean ) : void ;
209+ areGuidesDisabled ( ) : boolean ;
71210 loadGuides ( ) : void ;
72211 startGuides ( ) : void ;
73212 stopGuides ( ) : void ;
213+ showPreview ( ) : void ;
214+ pageLoad ( ) : void ;
74215
75216 // Debugging
76217 enableDebugging ( ) : void ;
@@ -82,24 +223,59 @@ declare namespace pendo {
82223 // Events
83224 events : Events ;
84225 track ( trackType : string , metadata ?: Metadata ) : void ;
226+ trackAgent ( trackType : string , metadata ?: Metadata ) : void ;
227+ isSendingEvents ( ) : boolean ;
228+ startSendingEvents ( ) : void ;
229+ stopSendingEvents ( ) : void ;
230+ getEventCache ( ) : any [ ] ;
231+ flushEventCache ( ) : void ;
85232
86233 // Guide Events
87234 onGuideAdvanced ( step ?: GuideStep ) : void ;
88235 onGuideAdvanced ( steps : { steps : number } ) : void ;
89236 onGuidePrevious ( step ?: GuideStep ) : void ;
90237 onGuideDismissed ( step ?: GuideStep ) : void ;
91238 onGuideDismissed ( until : { until : "reload" } ) : void ;
239+ onGuideSnoozed ( evt : any , step ?: GuideStep , snoozeDuration ?: number ) : void ;
92240
93241 // feedback
94242 feedback : Feedback ;
95243
96244 // Properties
97245 additionalApiKeys : string [ ] ;
98246 apiKey : string ;
247+ visitorId : string ;
248+ accountId : string ;
249+ guides : Guide [ ] ;
250+ designerEnabled : boolean ;
251+ features : any ;
252+ VERSION : string ;
253+ ENV : string ;
254+
255+ // URL and Location
256+ url : UrlManager ;
257+ location : LocationManager ;
99258
100- // Other
101- validateInstall ( ) : void ;
259+ // Utilities
260+ log ( message : string , ...contexts : string [ ] ) : void ;
261+ ajax : AjaxHelper ;
262+ validateInstall ( skipLogging ?: boolean ) : void ;
263+ validateEnvironment ( skipLogging ?: boolean ) : void ;
102264 dom ( input : any ) : HTMLElement ; // TODO
265+ doesExist ( arg : any ) : boolean ;
266+ getMode ( ) : string | undefined ;
267+ getNormalizedUrl ( ) : string ;
268+ /** @deprecated Use pendo.sniffer or navigator.userAgent directly */
269+ getUA ( ) : string ;
270+ getURL ( ) : string ;
271+ getSerializedMetadata ( ) : Metadata ;
272+ isURLValid ( url : string ) : boolean ;
273+
274+ // Advanced
275+ BuildingBlocks ?: any ; // Internal API
276+ buffers ?: any ; // Internal API
277+ frames ?: any ; // Internal API
278+ sniffer ?: BrowserSniffer ;
103279 }
104280
105281 interface FeedbackOptions {
@@ -110,16 +286,33 @@ declare namespace pendo {
110286 }
111287
112288 interface Debugging {
113- getEventCache ( ) : any [ ] ; // TODO
289+ getEventCache ( ) : any [ ] ;
114290 getAllGuides ( ) : Guide [ ] ;
115291 getAutoGuides ( ) : { auto : Guide [ ] ; override : Guide [ ] } ;
116292 getBadgeGuides ( ) : Guide [ ] ;
117- getLauncherGuides ( ) : Guide [ ] ;
293+ getLauncherGuides ( guideList ?: Guide [ ] ) : Guide [ ] ;
294+ getEventHistory ( ) : any [ ] ;
295+ getMetadata ( ) : any ;
296+ areGuidesDelayed ( ) : boolean ;
297+ isLeader ( ) : boolean ;
298+ getState ( ) : any ;
118299 }
119300
120- type Events = {
121- [ K in keyof EventCallbacks ] -?: ( callback : EventCallbacks [ K ] ) => Events ;
122- } ;
301+ type Events =
302+ & {
303+ [ K in keyof EventCallbacks ] -?: ( callback : EventCallbacks [ K ] ) => Events ;
304+ }
305+ & {
306+ on ( eventName : string , callback : ( ...args : any [ ] ) => void ) : void ;
307+ off ( eventName : string , callback ?: ( ...args : any [ ] ) => void ) : void ;
308+ once ( eventName : string , callback : ( ...args : any [ ] ) => void ) : void ;
309+ one ( eventName : string , callback : ( ...args : any [ ] ) => void ) : void ;
310+ trigger ( eventName : string , ...args : any [ ] ) : void ;
311+ addEventListener ( eventName : string , callback : ( ...args : any [ ] ) => void ) : void ;
312+ removeEventListener ( eventName : string , callback ?: ( ...args : any [ ] ) => void ) : void ;
313+ onClickCaptured ( callback : ( event : any ) => void ) : Events ;
314+ deliverablesLoaded ( callback : ( ) => void ) : Events ;
315+ } ;
123316
124317 interface Guide {
125318 createdByUser : User ;
@@ -180,6 +373,61 @@ declare namespace pendo {
180373 lastUpdatedAt : number ;
181374 resetAt : number ;
182375 }
376+
377+ interface UrlManager {
378+ get ( url ?: string ) : string ;
379+ watch ( callback : ( url : string ) => void ) : void ;
380+ clear ( ) : void ;
381+ getWindowLocation ( ) : Location ;
382+ isElectron ( ) : boolean ;
383+ electronAppName ( ) : string | undefined ;
384+ electronUserDirectory ( ) : string | undefined ;
385+ electronUserHomeDirectory ( ) : string | undefined ;
386+ electronResourcesPath ( ) : string | undefined ;
387+ externalizeURL (
388+ href : string ,
389+ qs ?: string | Record < string , string > ,
390+ xhrWhitelist ?: string [ ] | ( ( ) => string [ ] ) ,
391+ ) : string ;
392+ startPoller ( ) : void ;
393+ }
394+
395+ interface LocationManager {
396+ ( cmd ?: string ) : any ;
397+ getHref ( ) : string ;
398+ clearTransforms ( ) : void ;
399+ addTransforms ( transforms : any ) : void ;
400+ setUrl ( strOrFn : string | ( ( ) => string ) ) : void ;
401+ useBrowserUrl ( ) : void ;
402+ }
403+
404+ interface AjaxHelper {
405+ ( config : any ) : any ;
406+ get ( url : string , headers ?: any ) : Promise < any > ;
407+ post ( url : string , data ?: any , headers ?: any ) : Promise < any > ;
408+ postJSON ( url : string , data ?: any , headers ?: any ) : Promise < any > ;
409+ urlFor ( base : string , params ?: string [ ] | Record < string , string | number > , fragment ?: string ) : string ;
410+ supported ( ) : boolean ;
411+ }
412+
413+ interface BrowserSniffer {
414+ MutationObserver : boolean ;
415+ addEventListener : boolean ;
416+ android : number ;
417+ animations : boolean ;
418+ msie : number ;
419+ msieDocumentMode : number | undefined ;
420+ safari : boolean ;
421+ sri : boolean ;
422+ transitions : boolean ;
423+ vendorPrefix : string ;
424+ isChromeExtension : boolean | undefined ;
425+ hasEvent ( event : string ) : boolean ;
426+ isMinimumIEVersion ( minVersion : number ) : boolean ;
427+ isMobileUserAgent ( key ?: string ) : boolean ;
428+ supportsHashChange ( ) : boolean ;
429+ supportsHistoryApi ( key ?: string ) : boolean ;
430+ }
183431}
184432
185433declare const pendo : pendo . Pendo ;
0 commit comments