quala-widget
Version:
Smart feedback widget for SaaS trial optimization
111 lines • 3.67 kB
TypeScript
import { AntiSpamManager } from './AntiSpamManager';
import { QualaUser, MicroWidgetConfig, SdkOptions, SessionInfo, TechnicalContext } from '../types';
interface ConfigValidationResult {
isValid: boolean;
errors: string[];
warnings: string[];
}
interface EventCallback {
(data: any): void;
}
declare class QualaSdkClass {
private isInitialized;
private apiKey;
private apiBaseUrl;
private sessionToken;
private currentQuestionGroupId;
private currentTriggerId;
private container?;
private microContainer?;
private root?;
private microRoot?;
private customStyles?;
private renderer;
private debug;
private contextCollector?;
private microWidgetConfig;
private triggerTimeouts;
private triggerListeners;
private antiSpamManager?;
private cleanupInterval?;
private eventListeners;
private offlineQueue;
private retryQueue;
private isOnline;
private sensitiveHosts;
private configRefreshInterval?;
private configLastUpdated?;
private configCacheUntil?;
private microWidgetsEnabled;
private log;
private emit;
private debounce;
initialize(apiKey: string, options?: SdkOptions): Promise<void>;
private setupNetworkListeners;
private apiRequest;
private validateInitResponse;
private validateKey;
identifyUser(user: QualaUser): Promise<void>;
private startConfigRefresh;
private refreshMicroWidgetConfig;
private validateMicroWidgetConfig;
validateConfig(config: Partial<MicroWidgetConfig>): ConfigValidationResult;
private startCleanupInterval;
private cleanupOldData;
private cleanupLocalStorage;
private cleanupRetryQueue;
private setupMicroWidgetTriggers;
private clearTriggers;
private setupTimeTrigger;
private setupExitIntentTrigger;
private setupErrorTrigger;
private setupFormFailureTrigger;
private setupApiFailureTrigger;
private shouldShowMicroWidget;
private considerShowingMicroWidget;
private getTriggerQuestion;
private getTriggerEmojiSet;
private showMicroWidget;
private hideMicroWidget;
private queueFeedbackOffline;
private getStoredOfflineQueue;
private loadOfflineQueue;
private processOfflineQueue;
private processRetryQueue;
private isSensitiveDomain;
private submitMicroFeedback;
trackEvent(eventName: string, properties?: Record<string, any>): void;
private mapEventName;
triggerSmartFeedback(): Promise<void>;
private shouldShowFeedback;
private showDashboardWidget;
private showWidget;
private renderWidget;
private markTriggerShown;
private submitAnswers;
triggerMicroWidget(question?: string): Promise<void>;
configureMicroWidget(config: Partial<MicroWidgetConfig>): void;
getTechnicalContext(): TechnicalContext | null;
getSessionInfo(): SessionInfo & {
antiSpam?: ReturnType<AntiSpamManager['getStatus']>;
};
checkTriggerAvailable(): Promise<boolean>;
refreshTriggerStatus(): Promise<boolean>;
forceConfigRefresh(): Promise<void>;
getConfigInfo(): {
lastUpdated?: string;
cacheUntil?: string;
hasConfig: boolean;
nextRefresh?: Date;
microWidgetsEnabled: boolean;
};
on(eventName: string, callback: EventCallback): void;
off(eventName: string, callback?: EventCallback): void;
getAntiSpamStatus(): ReturnType<AntiSpamManager['getStatus']> | null;
forceAllowNextWidget(): void;
resetAntiSpamState(): void;
destroy(): void;
}
export declare const qualaSdk: QualaSdkClass;
export {};
//# sourceMappingURL=qualaSdk.d.ts.map