export declare const feedbackSources: readonly ["code_snippet", "contextual", "thumbs_only", "agent"]; export declare const feedbackStates: readonly ["pending", "in_progress", "resolved", "dismissed"]; export declare const reviewStatuses: readonly ["abuse"]; export type FeedbackSource = (typeof feedbackSources)[number]; export type FeedbackState = (typeof feedbackStates)[number]; export type ReviewStatus = (typeof reviewStatuses)[number]; export type BaseFeedback = { _id: string; orgId: string; subdomain: string; source: T; path: string; state: FeedbackState; createdAt: Date; updatedAt: Date; resolvedAt?: Date; internalNotes?: string; }; export type FeedbackFlag = { type: 'abuse'; reason?: string; method?: 'keyword' | 'llm' | 'manual'; confidence?: number; checkedAt?: Date; }; export type CodeSnippetFeedbackSubmission = { code: string; path: string; feedback: string; filename?: string; lang?: string; flag?: FeedbackFlag | null; }; export type ContextualFeedbackSubmission = { path: string; helpful: boolean; feedback?: string; contact?: string; flag?: FeedbackFlag | null; }; export type ThumbsOnlyFeedbackSubmission = { path: string; helpful: boolean; flag?: FeedbackFlag | null; }; export type AgentFeedbackSubmission = { path: string; helpful: boolean; feedback?: string; userAgent?: string; flag?: FeedbackFlag | null; }; export type CodeSnippetFeedback = BaseFeedback<'code_snippet'> & { data: CodeSnippetFeedbackSubmission; }; export type ContextualFeedback = BaseFeedback<'contextual'> & { data: ContextualFeedbackSubmission; }; export type ThumbsOnlyFeedback = BaseFeedback<'thumbs_only'> & { data: ThumbsOnlyFeedbackSubmission; }; export type AgentFeedback = BaseFeedback<'agent'> & { data: AgentFeedbackSubmission; }; export type UserFeedbackData = CodeSnippetFeedbackSubmission | ContextualFeedbackSubmission | ThumbsOnlyFeedbackSubmission | AgentFeedbackSubmission; export type UserFeedback = CodeSnippetFeedback | ContextualFeedback | ThumbsOnlyFeedback | AgentFeedback;