export interface FeedbackEventParams {
    conversationId: string;
    feedback: "up" | "down";
    agentId: string;
    questionText?: string;
    answerId?: string;
    timestamp: string;
    env: "staging" | "prod" | "dev" | "local";
    [key: string]: any;
}
export interface FeedbackPayload {
    conversationId?: string;
    projectId?: string;
    questionText?: string;
    dataMode?: string;
    dataKey?: string;
    [key: string]: any;
}
export interface AnalyticsProvider {
    trackEvent(eventName: string, params: FeedbackEventParams): void;
    isAvailable(): boolean;
}
export declare class AnalyticsService {
    private static instance;
    private providers;
    private feedbackCache;
    private constructor();
    static getInstance(): AnalyticsService;
    registerProvider(provider: AnalyticsProvider): void;
    trackFeedback(params: FeedbackEventParams): void;
    changeFeedback(oldParams: FeedbackEventParams, newParams: FeedbackEventParams): void;
    private generateIdempotencyKey;
    clearCache(): void;
}
export declare function getEnvironment(mode: string): "staging" | "prod" | "dev" | "local";
export declare function getQuestionText(chatHistory: any[], answerId?: string): string;
export declare function trackFeedbackAnalytics(feedback: "up" | "down", answerId: string, payload: FeedbackPayload, conversationIdFallback?: string): void;
