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