sovads-sdk 1.0.8 → 1.1.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/dist/index.d.ts CHANGED
@@ -1,3 +1,7 @@
1
+ /** Runtime SDK version. Kept in sync with `sdk/package.json#version`.
2
+ * Sent as `X-SovAds-SDK-Version` on signed tracking requests and exported
3
+ * so host pages can log / gate on it. */
4
+ export declare const SDK_VERSION = "1.1.0";
1
5
  export interface SovAdsConfig {
2
6
  siteId?: string;
3
7
  apiUrl?: string;
@@ -11,6 +15,17 @@ export interface SovAdsConfig {
11
15
  popupMinIntervalMinutes?: number;
12
16
  popupSessionMax?: number;
13
17
  walletAddress?: string;
18
+ /** Phase 2: render the "Sponsored" disclosure badge on every ad surface.
19
+ * - `true` (default) \u2192 show 'Sponsored'.
20
+ * - `false` \u2192 suppress (advertisers / publishers should NOT use
21
+ * this in production; it exists for very narrow
22
+ * contexts like SDK-internal previews).
23
+ * - string \u2192 use as the label text (e.g. 'Ad', 'Promoted'). */
24
+ disclosureLabel?: boolean | string;
25
+ /** Phase 2: advertiser/brand name to append to the disclosure (rendered as
26
+ * "Sponsored \u00b7 {advertiserName}"). When omitted, only the label is shown.
27
+ * Per-ad advertiser metadata would override this once the server returns it. */
28
+ advertiserName?: string;
14
29
  }
15
30
  export interface AdComponent {
16
31
  id: string;
@@ -30,16 +45,113 @@ export interface AdComponent {
30
45
  placement?: string;
31
46
  size?: string;
32
47
  isUnverified?: boolean;
48
+ /** false when the campaign is out of token budget; the SDK suppresses banner click-through. */
49
+ bannerClickActive?: boolean;
50
+ /** Up to 2 inline CTAs (VISIT_URL / SIGN_MESSAGE / POLL) rendered under the banner. */
51
+ attachedTasks?: AttachedTask[];
52
+ }
53
+ export type AttachedTaskKind = 'VISIT_URL' | 'SIGN_MESSAGE' | 'POLL';
54
+ export interface AttachedPollOption {
55
+ id: string;
56
+ label: string;
57
+ }
58
+ export interface AttachedTask {
59
+ id: string;
60
+ campaignId: string;
61
+ kind: AttachedTaskKind;
62
+ label: string;
63
+ buttonLabel: string | null;
64
+ description: string | null;
65
+ rewardPoints: number;
66
+ rewardGs: number;
67
+ url?: string | null;
68
+ minDwellMs?: number;
69
+ signMessage?: string | null;
70
+ options?: AttachedPollOption[];
71
+ }
72
+ /** Per-task viewer status returned by GET /api/tasks/status. Loose shape —
73
+ * the SDK only consumes `id` + `eligibility.completionsUsed` + the most
74
+ * recent verified/paid completion, so additional fields are tolerated. */
75
+ export interface TaskStatusEntry {
76
+ id: string;
77
+ eligibility?: {
78
+ eligible?: boolean;
79
+ reason?: string;
80
+ completionsUsed?: number;
81
+ maxPerWallet?: number;
82
+ cooldownSecs?: number;
83
+ retryAfterSec?: number;
84
+ };
85
+ completions?: Array<{
86
+ id: string;
87
+ status: string;
88
+ createdAt?: string | Date;
89
+ }>;
33
90
  }
34
91
  interface AdLoadOptions {
35
92
  consumerId?: string;
36
93
  placement?: string;
37
94
  size?: string;
38
95
  walletAddress?: string;
96
+ /** Ask the server to include attached CTA tasks (VISIT_URL/SIGN_MESSAGE/POLL)
97
+ * and to keep serving banners whose token budget is exhausted (with
98
+ * bannerClickActive=false). Off by default for backward compatibility. */
99
+ attached?: boolean;
39
100
  }
40
101
  interface SlotConfig {
41
102
  placementId?: string;
42
103
  size?: string;
104
+ /** Render attached CTAs under the banner (auto-passes attached=true to loadAd). */
105
+ attached?: boolean;
106
+ /** Optional handler invoked after each attached-CTA submission attempt. */
107
+ onCtaComplete?: (ev: AttachedCtaCompleteEvent) => void;
108
+ /** Phase 2: where the click-through is wired.
109
+ * - 'media' (default for inline units) \u2014 the whole banner element is the
110
+ * click target. Preserves today's behaviour for Banner/Sidebar.
111
+ * - 'button' \u2014 an explicit "Learn more \u2192" button below the media is the
112
+ * only click target. Massively reduces accidental clicks. Recommended for
113
+ * new integrations; default for BottomBar (where bar-wide clicks were
114
+ * generating fraudulent traffic). */
115
+ clickTarget?: 'media' | 'button';
116
+ /** Phase 2: per-slot override for the disclosure badge. Falls back to
117
+ * `SovAdsConfig.disclosureLabel` (which defaults to `true`). */
118
+ disclosureLabel?: boolean | string;
119
+ }
120
+ export interface AttachedCtaCompleteEvent {
121
+ taskId: string;
122
+ campaignId: string;
123
+ kind: AttachedTaskKind;
124
+ ok: boolean;
125
+ status: number;
126
+ awarded?: {
127
+ points: number;
128
+ gs: number;
129
+ bonusPointsInLieuOfGs?: number;
130
+ };
131
+ error?: string;
132
+ /** Only emitted for SIGN_MESSAGE when the SDK cannot sign on the viewer's behalf. */
133
+ needsSignature?: {
134
+ message: string;
135
+ };
136
+ }
137
+ export type MountUnitKind = 'BANNER' | 'POLL' | 'FEEDBACK' | 'SURVEY';
138
+ export type MountUnitEventType = 'READY' | 'LOADED' | 'NONE' | 'IMPRESSION' | 'INTERACTION' | 'COMPLETE' | 'CLICK' | 'DISMISS' | 'ERROR' | 'RESIZE';
139
+ export interface MountUnitEvent {
140
+ type: MountUnitEventType;
141
+ slotId: string;
142
+ payload: Record<string, unknown>;
143
+ }
144
+ export interface MountUnitOptions {
145
+ /** csv of BANNER|POLL|FEEDBACK|SURVEY — default BANNER */
146
+ kind?: string;
147
+ slotId?: string;
148
+ location?: string;
149
+ placement?: string;
150
+ size?: string;
151
+ wallet?: string;
152
+ /** minHeight CSS value for the iframe (e.g. '180px') */
153
+ minHeight?: string;
154
+ onEvent?: (ev: MountUnitEvent) => void;
43
155
  }
44
156
  export declare class SovAds {
45
157
  protected config: SovAdsConfig;
@@ -50,12 +162,24 @@ export declare class SovAds {
50
162
  private debugLoggingEnabled;
51
163
  private adTrackingTokens;
52
164
  private walletAddress;
165
+ private unitListeners;
166
+ /** Subscribers notified whenever the viewer's wallet identity becomes known
167
+ * or changes. Used by `renderAttachedCtas` to lazy-mount CTAs once the host
168
+ * page connects a wallet. */
169
+ private identityListeners;
53
170
  constructor(config?: SovAdsConfig);
54
171
  /**
55
172
  * Identifies the current viewer with a wallet address.
56
173
  * This links the device fingerprint to the wallet on the backend.
57
174
  */
58
175
  identify(walletAddress: string): void;
176
+ /**
177
+ * Subscribe to wallet-identity changes. Fires once immediately if a wallet
178
+ * is already known, then on every subsequent `identify()` call that changes
179
+ * the address. Returns an unsubscribe function.
180
+ */
181
+ onIdentify(cb: (wallet: string | null) => void): () => void;
182
+ private notifyIdentityListeners;
59
183
  private loadPersistedIdentity;
60
184
  private generateFingerprint;
61
185
  private detectSiteId;
@@ -107,6 +231,38 @@ export declare class SovAds {
107
231
  * Get config (for components to access debug mode)
108
232
  */
109
233
  getConfig(): SovAdsConfig;
234
+ /**
235
+ * Submit a CTA-task completion (POLL / VISIT_URL / SIGN_MESSAGE) on behalf
236
+ * of the current viewer. Uses plain fetch (no retry) to avoid double-submitting
237
+ * an idempotent task; rate-limit/dedupe is enforced server-side.
238
+ */
239
+ submitTaskCompletion(params: {
240
+ taskId: string;
241
+ proof?: Record<string, unknown>;
242
+ }): Promise<{
243
+ ok: boolean;
244
+ status: number;
245
+ awarded?: {
246
+ points: number;
247
+ gs: number;
248
+ bonusPointsInLieuOfGs?: number;
249
+ };
250
+ error?: string;
251
+ data?: Record<string, unknown> | null;
252
+ }>;
253
+ /**
254
+ * Public accessor for the current wallet address (read-only).
255
+ * CTA renderers use this to suppress wallet-bound rewards on anonymous viewers.
256
+ */
257
+ getWalletAddress(): string | null;
258
+ /**
259
+ * Fetch this viewer's completion / eligibility status for every active task
260
+ * of a campaign. Used by the attached-CTA panel to mark already-completed
261
+ * tasks with a \u2713 badge after the wallet connects. Returns a Map keyed by
262
+ * taskId so callers can do O(1) lookups; tasks missing from the map are
263
+ * assumed eligible.
264
+ */
265
+ fetchTaskStatuses(campaignId: string): Promise<Map<string, TaskStatusEntry>>;
110
266
  /**
111
267
  * Log interaction (public method for components)
112
268
  */
@@ -119,7 +275,180 @@ export declare class SovAds {
119
275
  * Clean up observers when SDK is destroyed
120
276
  */
121
277
  destroy(): void;
278
+ /**
279
+ * Mount a standalone unit iframe (BANNER / POLL / FEEDBACK / SURVEY) into
280
+ * `containerId`. Forwards lifecycle/interaction events from the iframe
281
+ * (via postMessage protocol) to the supplied `onEvent` callback.
282
+ *
283
+ * Returns an object with `unmount()` for cleanup.
284
+ */
285
+ mountUnit(containerId: string, options: MountUnitOptions): {
286
+ slotId: string;
287
+ unmount: () => void;
288
+ };
289
+ }
290
+ export interface StreamingEmbed {
291
+ /** Iframe `src` to use for the embed. */
292
+ embedUrl: string;
293
+ /** Provider name \u2014 useful for analytics / debug. */
294
+ provider: 'youtube' | 'vimeo' | 'tiktok';
122
295
  }
296
+ export declare function toStreamingEmbed(url: string): StreamingEmbed | null;
297
+ /** Build a sandboxed `<iframe>` for a streaming embed URL. Shared by Banner
298
+ * and Popup so both surfaces behave identically. */
299
+ export declare function buildStreamingIframe(embed: StreamingEmbed, alt: string): HTMLIFrameElement;
300
+ export type AdSurface = 'BANNER' | 'SIDEBAR' | 'POPUP' | 'BOTTOM_BAR' | 'NATIVE' | 'OVERLAY' | 'INTERSTITIAL';
301
+ export interface MediaMountResult {
302
+ /** The DOM element to insert into the slot. May be <img>, <video>, or <iframe>. */
303
+ element: HTMLImageElement | HTMLVideoElement | HTMLIFrameElement;
304
+ /** Resolved kind — 'streaming' means a sandboxed platform iframe. */
305
+ kind: 'image' | 'video' | 'streaming';
306
+ /** True if the whole element is safe to wrap in a click-through handler.
307
+ * Videos and streaming iframes intercept their own pointer events, so the
308
+ * publisher should render an external "Learn more" button instead. */
309
+ clickable: boolean;
310
+ }
311
+ /**
312
+ * Build the media element for an ad. Single source of truth for the
313
+ * image / video / streaming-iframe switch that used to be duplicated across
314
+ * Banner, Sidebar, Popup and BottomBar.
315
+ *
316
+ * The caller is responsible for:
317
+ * - Attaching `load` / `loadeddata` / `error` listeners (for impression timing).
318
+ * - Mounting the returned `element` into the DOM.
319
+ * - Adding a click handler — either on the element (when `clickable=true`)
320
+ * or on an external "Learn more" button (always, when false).
321
+ */
322
+ export declare function mountMedia(opts: {
323
+ ad: AdComponent;
324
+ /** Optional inline style override; helper sets sensible defaults. */
325
+ style?: string;
326
+ }): MediaMountResult;
327
+ /**
328
+ * Build a compact "Sponsored" disclosure badge.
329
+ *
330
+ * Phase 0 only EXPORTS the helper — components do not mount it yet. Phase 2
331
+ * wires it into every render path, opt-out via `new SovAds({ disclosureLabel: false })`.
332
+ *
333
+ * The returned span uses `aria-label="Advertisement"` (the FTC-recommended
334
+ * explicit term) and is sized to remain legible (11px min, 1.0 contrast on
335
+ * standard backgrounds). Position is the caller's responsibility.
336
+ */
337
+ export declare function buildDisclosureBadge(opts?: {
338
+ /** Visible text, default 'Sponsored'. */
339
+ label?: string;
340
+ /** Optional advertiser name appended as `Sponsored · {advertiser}`. */
341
+ advertiser?: string;
342
+ /** Visual variant — 'light' for dark backgrounds, 'dark' for light. */
343
+ variant?: 'light' | 'dark';
344
+ }): HTMLElement;
345
+ /**
346
+ * Phase 2 \u2014 resolve the effective disclosure setting from a 3-level cascade:
347
+ * slot-override \u2192 SovAdsConfig.disclosureLabel \u2192 default (true \u2192 'Sponsored').
348
+ *
349
+ * Returns the resolved label string, or `null` if disclosure is explicitly
350
+ * disabled (which callers should treat as "do not render"). Centralised here
351
+ * so every component reads the rule the same way.
352
+ */
353
+ export declare function resolveDisclosureLabel(slotOverride: boolean | string | undefined, configValue: boolean | string | undefined): string | null;
354
+ /**
355
+ * Phase 2 \u2014 small helper that builds AND positions a disclosure badge over
356
+ * the top-left of an ad surface (absolute positioning). Caller must ensure
357
+ * the parent has `position: relative` (or another non-static positioning
358
+ * context). Returns `null` when disclosure is disabled \u2014 caller should
359
+ * handle that as "do not append".
360
+ */
361
+ export declare function buildPositionedDisclosure(opts: {
362
+ slotOverride?: boolean | string;
363
+ configValue?: boolean | string;
364
+ advertiser?: string;
365
+ variant?: 'light' | 'dark';
366
+ /** 'top-left' (default) | 'top-right' \u2014 the only two positions the SDK uses. */
367
+ position?: 'top-left' | 'top-right';
368
+ }): HTMLElement | null;
369
+ /**
370
+ * Parse an IAB-style size string ('300x250', '728x90', '160x600', etc.) into
371
+ * a {width, height} pair. Returns null when the string is malformed so the
372
+ * caller falls back to legacy behaviour rather than throwing.
373
+ */
374
+ export declare function parseAdSize(size: string | undefined): {
375
+ width: number;
376
+ height: number;
377
+ } | null;
378
+ /**
379
+ * Reserve a CLS-safe box on the slot container before the ad fetch starts.
380
+ * Sets `aspect-ratio` so the browser knows the box's intrinsic shape and
381
+ * `max-width` so the slot never grows past the IAB size on large viewports.
382
+ * The container stays visible (no `display: none`) so the page below it
383
+ * keeps its final position.
384
+ *
385
+ * Returns true when reservation was applied. The caller should skip the
386
+ * legacy hide-then-show dance only when this returns true.
387
+ */
388
+ export declare function reserveAdSlot(container: HTMLElement, size: string | undefined): boolean;
389
+ /**
390
+ * Phase 7 \u2014 returns true when the user / OS prefers reduced motion. Used
391
+ * by hover-scale and translate animations so we don't trigger vestibular
392
+ * discomfort for users who've asked the system to dial back animation.
393
+ * Falls back to `false` (= motion allowed) when matchMedia isn't available
394
+ * so server-side rendering / older browsers see the same animation as today.
395
+ */
396
+ export declare function prefersReducedMotion(): boolean;
397
+ /**
398
+ * Mount the attached-CTA panel for a given surface. Thin wrapper around
399
+ * `renderAttachedCtas` that components can call without re-implementing the
400
+ * try/catch + debug-log boilerplate. Phase 1 routes every component through
401
+ * this helper.
402
+ *
403
+ * The `surface` arg is passed through to `onCtaComplete` callers via the
404
+ * existing AttachedCtaCompleteEvent (no new field today) and used as a hint
405
+ * for layout — POPUP / NATIVE / SIDEBAR stack vertically, BOTTOM_BAR may
406
+ * render inline (decided at the call site).
407
+ */
408
+ export declare function mountCtaPanel(opts: {
409
+ container: HTMLElement;
410
+ sovads?: SovAds;
411
+ surface: AdSurface;
412
+ tasks: AttachedTask[];
413
+ campaignId: string;
414
+ bannerClickActive: boolean;
415
+ onComplete?: (ev: AttachedCtaCompleteEvent) => void;
416
+ /** When true, buttons render disabled and do not submit / open links. */
417
+ preview?: boolean;
418
+ /** Visual layout. 'stack' = vertical (default). 'inline' = horizontal row,
419
+ * used by BottomBar where vertical stacking would blow up bar height.
420
+ * 'auto' = stack normally, switch to inline at exactly 2 tasks so small
421
+ * surfaces (Banner, Popup, NativeCard) don't waste a row of vertical space. */
422
+ layout?: 'stack' | 'inline' | 'auto';
423
+ }): void;
424
+ /**
425
+ * Public renderer for the attached-CTA panel.
426
+ *
427
+ * Two modes:
428
+ * - Live (default): mounts the panel with real click handlers; clicking
429
+ * POLL/VISIT_URL/SIGN_MESSAGE submits via `sovads.submitTaskCompletion`.
430
+ * - Preview: pass `preview: true` (and omit `sovads`). Renders the same DOM
431
+ * but disables click handlers and submission — used by the create-campaign
432
+ * page and the advertiser review queue so the advertiser sees the exact
433
+ * button the viewer will see, with no risk of side-effects.
434
+ */
435
+ export declare function renderAttachedCtas(opts: {
436
+ container: HTMLElement;
437
+ /** Required when `preview` is not true. */
438
+ sovads?: SovAds;
439
+ tasks: AttachedTask[];
440
+ campaignId: string;
441
+ bannerClickActive: boolean;
442
+ onComplete?: (ev: AttachedCtaCompleteEvent) => void;
443
+ /** When true, buttons render disabled and do not submit / open links. */
444
+ preview?: boolean;
445
+ /** Layout for the panel itself. 'stack' (default) = today's vertical column.
446
+ * 'inline' = horizontal row, used by BottomBar where vertical stacking
447
+ * would blow up the bar height. 'auto' = stack normally, but switch to
448
+ * inline when there are exactly 2 tasks so small surfaces (Banner, Popup)
449
+ * don't waste a second row of vertical space. Backcompat: omit \u2192 stack. */
450
+ layout?: 'stack' | 'inline' | 'auto';
451
+ }): void;
123
452
  export declare class Banner {
124
453
  private sovads;
125
454
  private containerId;
@@ -128,6 +457,7 @@ export declare class Banner {
128
457
  private hasTrackedImpression;
129
458
  private isRendering;
130
459
  private refreshTimer;
460
+ private lazyLoadObserver;
131
461
  private lastAdId;
132
462
  private retryCount;
133
463
  private maxRetries;
@@ -139,6 +469,21 @@ export declare class Banner {
139
469
  private setupAutoRefresh;
140
470
  destroy(): void;
141
471
  }
472
+ export interface PopupShowOptions {
473
+ consumerId?: string;
474
+ /** Milliseconds to wait after `show()` before mounting the popup. Default 3000. */
475
+ delay?: number;
476
+ /** Phase 1: request attached CTA tasks from the server and render them
477
+ * beneath the media. Off by default for backward compatibility. */
478
+ attached?: boolean;
479
+ /** Phase 1: callback fired after each CTA submission attempt. */
480
+ onCtaComplete?: (ev: AttachedCtaCompleteEvent) => void;
481
+ /** Phase 2: 'media' (default) = media is the click target. 'button' = an
482
+ * explicit "Learn more" button is the only click target. */
483
+ clickTarget?: 'media' | 'button';
484
+ /** Phase 2: per-slot override for the Sponsored badge. */
485
+ disclosureLabel?: boolean | string;
486
+ }
142
487
  export declare class Popup {
143
488
  private sovads;
144
489
  private currentAd;
@@ -148,13 +493,46 @@ export declare class Popup {
148
493
  private maxRetries;
149
494
  private storageKeyLastShown;
150
495
  private storageKeySessionCount;
496
+ /** Phase 1: remembered across the show \u2192 renderPopup boundary so the CTA
497
+ * mount has access to the original opts without changing renderPopup's
498
+ * signature (kept private to preserve subclass compatibility). */
499
+ private currentOpts;
500
+ /** Phase 7: keyboard escape hatch. Bound once per show() so we can
501
+ * removeEventListener on hide() and avoid listener leaks. */
502
+ private escHandler;
151
503
  constructor(sovads: SovAds);
152
504
  private canShowByFrequencyCap;
153
505
  private markShown;
154
- show(consumerId?: string, delay?: number): Promise<void>;
506
+ /**
507
+ * Show the popup. Two call shapes (both supported \u2014 backwards compatible):
508
+ *
509
+ * popup.show() // defaults
510
+ * popup.show('consumer-id', 3000) // legacy positional
511
+ * popup.show({ consumerId, delay, attached, onCtaComplete }) // recommended
512
+ */
513
+ show(consumerIdOrOpts?: string | PopupShowOptions, delay?: number): Promise<void>;
155
514
  private renderPopup;
515
+ /** Phase 7: keyboard escape hatch. The popup is a non-modal sticky card,
516
+ * so we don't trap focus — but pressing Esc anywhere should dismiss it.
517
+ * Bound on each renderPopup() so re-shows install a fresh handler, and
518
+ * always paired with removeEventListener in hide(). */
519
+ private bindEscHandler;
156
520
  hide(): void;
157
521
  }
522
+ export interface BottomBarShowOptions {
523
+ consumerId?: string;
524
+ /** Phase 1: request attached CTA tasks from the server and render them
525
+ * to the right of the media (inline layout). Off by default. */
526
+ attached?: boolean;
527
+ /** Phase 1: callback fired after each CTA submission attempt. */
528
+ onCtaComplete?: (ev: AttachedCtaCompleteEvent) => void;
529
+ /** Phase 2: 'button' (default for BottomBar) = only an explicit "Learn more"
530
+ * button is clickable. 'media' = legacy bar-wide click target (NOT
531
+ * recommended — produces accidental clicks at the screen edge). */
532
+ clickTarget?: 'media' | 'button';
533
+ /** Phase 2: per-slot override for the Sponsored badge. */
534
+ disclosureLabel?: boolean | string;
535
+ }
158
536
  export declare class BottomBar {
159
537
  private sovads;
160
538
  private barElement;
@@ -162,8 +540,21 @@ export declare class BottomBar {
162
540
  private isVisible;
163
541
  private retryCount;
164
542
  private maxRetries;
543
+ /** Phase 1: remembered across show \u2192 renderBar so the CTA mount has
544
+ * access to the original opts. */
545
+ private currentOpts;
546
+ /** Phase 7: keyboard escape hatch. Bound when the bar is appended to
547
+ * the DOM, removed in hide() to avoid listener leaks. */
548
+ private escHandler;
165
549
  constructor(sovads: SovAds);
166
- show(consumerId?: string): Promise<void>;
550
+ /**
551
+ * Show the bottom bar. Two call shapes (both supported \u2014 backwards compatible):
552
+ *
553
+ * bottomBar.show()
554
+ * bottomBar.show('consumer-id') // legacy positional
555
+ * bottomBar.show({ consumerId, attached, onCtaComplete }) // recommended
556
+ */
557
+ show(consumerIdOrOpts?: string | BottomBarShowOptions): Promise<void>;
167
558
  private renderBar;
168
559
  hide(): void;
169
560
  }
@@ -175,6 +566,7 @@ export declare class Sidebar {
175
566
  private hasTrackedImpression;
176
567
  private isRendering;
177
568
  private refreshTimer;
569
+ private lazyLoadObserver;
178
570
  private lastAdId;
179
571
  private retryCount;
180
572
  private maxRetries;
@@ -186,21 +578,105 @@ export declare class Sidebar {
186
578
  private setupAutoRefresh;
187
579
  destroy(): void;
188
580
  }
581
+ export interface OverlayShowOptions {
582
+ consumerId?: string;
583
+ /** Render attached CTA tasks inside the overlay. Off by default. */
584
+ attached?: boolean;
585
+ /** Callback fired after each CTA submission attempt. */
586
+ onCtaComplete?: (ev: AttachedCtaCompleteEvent) => void;
587
+ /** 'media' (default) = whole image is the click target. 'button' = explicit
588
+ * "Learn more" CTA only. */
589
+ clickTarget?: 'media' | 'button';
590
+ /** Per-slot override for the Sponsored badge. */
591
+ disclosureLabel?: boolean | string;
592
+ /** When true, clicking outside the card dismisses the overlay. Default true. */
593
+ dismissOnBackdrop?: boolean;
594
+ /** When true, pressing Escape dismisses the overlay. Default true. */
595
+ dismissOnEscape?: boolean;
596
+ }
189
597
  export declare class Overlay {
190
- private sovads;
191
- private currentAd;
192
- private overlayElement;
598
+ protected sovads: SovAds;
599
+ protected currentAd: AdComponent | null;
600
+ protected overlayElement: HTMLElement | null;
601
+ protected isShowing: boolean;
602
+ protected currentOpts: OverlayShowOptions;
603
+ protected escHandler: ((e: KeyboardEvent) => void) | null;
604
+ protected previousBodyOverflow: string;
605
+ protected storageKeyLastShown: string;
606
+ protected storageKeySessionCount: string;
607
+ protected placement: string;
193
608
  constructor(sovads: SovAds);
194
- show(consumerId?: string): Promise<void>;
609
+ protected canShowByFrequencyCap(): boolean;
610
+ protected markShown(): void;
611
+ /**
612
+ * Show the overlay. Two call shapes (both supported \u2014 backwards compatible):
613
+ *
614
+ * overlay.show() // defaults
615
+ * overlay.show('consumer-id') // legacy positional
616
+ * overlay.show({ consumerId, attached, onCtaComplete, ... })
617
+ */
618
+ show(consumerIdOrOpts?: string | OverlayShowOptions): Promise<void>;
619
+ protected renderOverlay(): void;
620
+ hide(): void;
195
621
  }
196
622
  export declare class Interstitial extends Overlay {
623
+ protected storageKeyLastShown: string;
624
+ protected storageKeySessionCount: string;
625
+ protected placement: string;
626
+ }
627
+ export interface NativeCardRenderOptions {
628
+ consumerId?: string;
629
+ /** Phase 1: request attached CTA tasks and render them under the card body. */
630
+ attached?: boolean;
631
+ /** Phase 1: callback fired after each CTA submission attempt. */
632
+ onCtaComplete?: (ev: AttachedCtaCompleteEvent) => void;
633
+ /** Phase 2: 'media' (default) = card is the click target. 'button' = explicit
634
+ * "Learn more" button only. */
635
+ clickTarget?: 'media' | 'button';
636
+ /** Phase 2: per-slot override for the Sponsored badge. */
637
+ disclosureLabel?: boolean | string;
197
638
  }
198
639
  export declare class NativeCard {
199
640
  private sovads;
200
641
  private containerId;
201
642
  private currentAd;
202
643
  constructor(sovads: SovAds, containerId: string);
203
- render(consumerId?: string): Promise<void>;
644
+ /**
645
+ * Render the native card. Two call shapes (backwards compatible):
646
+ *
647
+ * nativeCard.render()
648
+ * nativeCard.render('consumer-id') // legacy positional
649
+ * nativeCard.render({ consumerId, attached, onCtaComplete }) // recommended
650
+ */
651
+ render(consumerIdOrOpts?: string | NativeCardRenderOptions): Promise<void>;
652
+ }
653
+ export interface CtaUnitRenderOptions {
654
+ consumerId?: string;
655
+ /** Layout for the CTA panel itself. 'stack' (default), 'inline', or 'auto'
656
+ * (inline at exactly 2 tasks, stack otherwise). */
657
+ layout?: 'stack' | 'inline' | 'auto';
658
+ /** Callback fired after each CTA submission attempt. */
659
+ onCtaComplete?: (ev: AttachedCtaCompleteEvent) => void;
660
+ }
661
+ export declare class CtaUnit {
662
+ private sovads;
663
+ private containerId;
664
+ private currentAd;
665
+ private isRendering;
666
+ constructor(sovads: SovAds, containerId: string);
667
+ render(consumerIdOrOpts?: string | CtaUnitRenderOptions): Promise<void>;
204
668
  }
669
+ export declare const GOOD_DOLLAR_ICON_DATA_URI = "data:image/png;base64,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";
670
+ /**
671
+ * Build a compact reward badge ("Earn <icon> <amount>") that ad surfaces
672
+ * overlay to surface the viewer-reward. Returns an HTMLElement; caller is
673
+ * responsible for absolute positioning over the creative.
674
+ */
675
+ export declare function buildRewardBadge(opts?: {
676
+ /** Numeric or pre-formatted reward amount. Default: '0.5'. */
677
+ amount?: number | string;
678
+ /** 'dark' (default, black pill) for light backgrounds; 'light' for dark. */
679
+ variant?: 'light' | 'dark';
680
+ }): HTMLElement;
205
681
  export default SovAds;
206
682
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}