import { AntiSpamConfig } from './sdk/AntiSpamManager';
export interface QualaUser {
    userId: string;
    email?: string;
    trialStartDate?: string;
}
export interface InitResponse {
    configLastUpdated: string | undefined;
    cacheUntil: string | undefined;
    sessionToken: string;
    questionGroupId?: string;
    microWidgetConfig?: MicroWidgetConfig;
    regularWidgetConfig?: {
        enabled: boolean;
    };
    triggerId?: string;
    delayMs?: number;
    projectName?: string;
    antiSpamConfig?: AntiSpamConfig;
}
export interface QuestionsResponse {
    questions: Array<{
        id: string;
        text: string;
        required: boolean;
        type: 'text' | 'textarea' | 'rating' | 'multiple_choice' | 'boolean';
        options?: string[];
        placeholder?: string;
    }>;
}
export interface SubmitResponse {
    success: boolean;
    message?: string;
}
export interface MicroWidgetConfig {
    enabled: boolean;
    triggers: Array<{
        enabled: boolean;
        type: 'time' | 'exit_intent' | 'form_failure' | 'console_error' | 'api_failure';
        delay?: number;
        threshold?: number;
        cooldown: number;
    }>;
    position: 'bottom-right' | 'bottom-left' | 'top-right' | 'top-left' | 'bottom-center' | 'modal';
    emojiSet: 'default' | 'simple' | 'detailed' | 'exit-focused' | 'technical';
    question: string;
    autoHide: boolean;
    hideDelay: number;
    theme: 'light' | 'dark' | 'auto';
    questions?: {
        time?: string;
        exit_intent?: string;
        console_error?: string;
        form_failure?: string;
        api_failure?: string;
        manual?: string;
    };
    triggerStyles?: {
        time?: 'default' | 'simple' | 'detailed' | 'exit-focused' | 'technical';
        exit_intent?: 'default' | 'simple' | 'detailed' | 'exit-focused' | 'technical';
        console_error?: 'default' | 'simple' | 'detailed' | 'exit-focused' | 'technical';
        form_failure?: 'default' | 'simple' | 'detailed' | 'exit-focused' | 'technical';
        api_failure?: 'default' | 'simple' | 'detailed' | 'exit-focused' | 'technical';
        manual?: 'default' | 'simple' | 'detailed' | 'exit-focused' | 'technical';
    };
}
export interface EmojiOption {
    emoji: string;
    label: string;
    value: string;
    isPositive: boolean;
    color?: string;
}
export interface FeedbackData {
    emoji: string;
    label: string;
    value: string;
    isPositive: boolean;
    detail?: string;
    timestamp?: string;
    question?: string;
}
export interface TechnicalContext {
    consoleErrors: Array<{
        message: string;
        stack?: string;
        timestamp: string;
        level: 'error' | 'warn';
    }>;
    failedRequests: Array<{
        url: string;
        status: number;
        method: string;
        timestamp: string;
    }>;
    performanceMetrics: {
        pageLoadTime?: number;
        firstContentfulPaint?: number;
        largestContentfulPaint?: number;
        cumulativeLayoutShift?: number;
    };
    deviceInfo: {
        userAgent: string;
        viewport: string;
        screenResolution: string;
        devicePixelRatio: number;
        connectionType?: string;
    };
    pageContext: {
        url: string;
        referrer: string;
        timestamp: string;
        scrollPosition: number;
        timeOnPage: number;
    };
    userActions: Array<{
        type: 'click' | 'scroll' | 'focus' | 'error' | 'navigation';
        element?: string;
        timestamp: string;
        data?: any;
    }>;
}
export interface MicroFeedbackSubmission {
    sessionToken: string;
    feedback: FeedbackData;
    triggerType: string;
    technicalContext?: TechnicalContext;
    timestamp: string;
}
export interface TriggerCheckResponse {
    shouldShow: boolean;
    questionGroupId?: string;
    triggerId?: string;
    delayMs?: number;
    microWidgetConfig?: MicroWidgetConfig;
}
export interface SdkOptions {
    apiBaseUrl?: string;
    debug?: boolean;
    captureConsoleErrors?: boolean;
    captureNetworkFailures?: boolean;
    capturePerformanceMetrics?: boolean;
    behavioralTracking?: boolean;
}
export interface SessionInfo {
    sessionToken: string | null;
    questionGroupId: string | null;
    triggerId: string | null;
    isInitialized: boolean;
    apiBaseUrl: string;
    debug: boolean;
    microWidgetEnabled: boolean;
}
export type EventType = 'page_visit' | 'feature_used' | 'time_update' | 'milestone_reached';
export interface TrackEventRequest {
    sessionToken: string;
    event: EventType;
    data: Record<string, any>;
}
export interface ModalStyle {
    modalColor?: string;
    modalBoxColor?: string;
    triggerColor?: string;
    progressBarColor?: string;
    progressTrackColor?: string;
    buttonColor?: string;
    backButtonColor?: string;
    inputFocusColor?: string;
}
export interface Question {
    id: string;
    text: string;
    required: boolean;
    type?: 'text' | 'textarea' | 'rating' | 'multiple_choice' | 'boolean';
    options?: string[];
    placeholder?: string;
}
//# sourceMappingURL=types.d.ts.map