import type React from "react";
export interface UserProfile {
    avatarUrl?: string;
    email?: string;
    id: string;
    name: string;
}
export interface UserPreferences {
    compactMode: boolean;
    fontSize: "small" | "medium" | "large";
    language: string;
    theme: "light" | "dark" | "system";
}
export interface I18nStrings {
    chat: {
        chatList: string;
        deleteChat: string;
        management: string;
        newChat: string;
    };
    error: {
        generic: string;
        network: string;
        retry: string;
        timeout: string;
    };
    feedback: {
        additionalPlaceholder: string;
        cancel: string;
        negative: string;
        positive: string;
        reasonPlaceholder: string;
        submit: string;
        title: string;
    };
    input: {
        cancel: string;
        placeholder: string;
        send: string;
        uploading: string;
    };
    loading: string;
    message: {
        copy: string;
        delete: string;
        edit: string;
        regenerate: string;
        retry: string;
    };
    scrollToBottom?: string;
    welcome: {
        placeholder: string;
        subtitle: string;
        title: string;
    };
}
export interface ComponentBaseProps {
    children?: React.ReactNode;
    className?: string;
    style?: React.CSSProperties;
}
export interface WithUserContext {
    preferences?: UserPreferences;
    user: UserProfile;
}
export interface WithI18n {
    i18n?: Partial<I18nStrings>;
    locale?: string;
}
export interface RatingRecord {
    chatId: string;
    createdAt: string;
    feedback?: {
        comment?: string;
        reason?: string;
    };
    id: string;
    messageId: string;
    question: string;
    rating: "positive" | "negative";
    response: string;
    userId: string;
}
export type RatingItem = RatingRecord & {
    additionalFeedback?: string;
    aiMessageId?: string;
    aiResponse?: string;
    ratedAt?: string;
    reason?: string;
    userMessageId?: string;
    userQuestion?: string;
};
