@namiml/web-sdk
Version:
Subscription monetization infrastructure — drop-in SDK with no-code paywalls, onboarding flows, A/B testing for web
52 lines (51 loc) • 1.85 kB
TypeScript
import { CSSResult, PropertyValues } from 'lit';
import { NamiElement } from '../NamiElement';
import { type TCountdownTimerTextComponent, type TSemverObj } from '@namiml/sdk-core';
export declare class NamiCountdownTimerText extends NamiElement {
component: TCountdownTimerTextComponent;
inFocusedState: boolean;
scaleFactor: number;
minSDKVersion: TSemverObj;
private timer;
private startTime;
private initialDuration;
private hasEmittedCompletion;
private timerState;
private static readonly DEFAULT_LABELS;
private static readonly DEFAULT_UNITS;
private static readonly SECONDS_PER_DAY;
private static readonly SECONDS_PER_HOUR;
private static readonly SECONDS_PER_MINUTE;
private static readonly TIMER_INTERVAL_MS;
protected firstUpdated(): void;
disconnectedCallback(): void;
private getTimerId;
private loadTimerState;
private saveTimerState;
private getSavedTimerState;
private startTimer;
private initializeTimerState;
private restoreTimerFromState;
private resetTimerState;
private onTimerTick;
private clearTimer;
private calculateTimeValues;
private calculateTotalRemainingSeconds;
private calculateDurationRemainingSeconds;
private calculateTargetDateTimeRemainingSeconds;
private calculateCurrentRemainingSeconds;
private convertSecondsToTimeUnits;
private formatValue;
private emitCompletionEvent;
updated(changedProperties: PropertyValues): void;
private updateAccessibilityAttributes;
private handleComponentChange;
protected styles(): CSSResult;
render(): import("lit-html").TemplateResult<1>;
private buildUnitsToRender;
private normalizeLabelPosition;
private shouldDisplayLabels;
private getLabel;
private renderTimerUnits;
private renderUnit;
}