import { RecommendationPayload, RecommendationPayloadWithCOT } from '../../commonPayloadTypes/recommendationPayload'; import { ZeniAPIResponse } from '../../responsePayload'; interface RecommendationUpdatePayload { recommendations: RecommendationPayload[]; } export type UpdateRecommendationResponse = ZeniAPIResponse; interface FetchRecommendationPayload { recommendations: RecommendationPayload[]; } export type FetchRecommendationResponse = ZeniAPIResponse; interface FetchRecommendationPayloadWithCOT { recommendations: RecommendationPayloadWithCOT[]; } export type FetchRecommendationResponseWithCOT = ZeniAPIResponse; export type RecommendationFeedbackDimension = 'vendor' | 'category' | 'class'; export type RecommendationFeedbackSource = 'primary' | 'alternate' | 'shadow' | 'qbo'; export type RecommendationFeedbackOutcome = 'accepted' | 'override_ranked' | 'override_outside' | 'retracted'; export interface RecommendationFeedbackValue { name: string; id?: string | null; integrationId?: string | null; } export interface ShownRecommendationForFeedback { rank: number; source: RecommendationFeedbackSource; value: RecommendationFeedbackValue; confidence?: number | null; cot?: string[]; reasoning?: string | null; } export interface SubmitRecommendationFeedbackPayload { dimension: RecommendationFeedbackDimension; outcome: RecommendationFeedbackOutcome; selected: RecommendationFeedbackValue & { isNewEntity?: boolean; }; transactionId: string; features?: Record | null; lineId?: string | null; matchedRank?: number | null; matchedSource?: RecommendationFeedbackSource | null; reasonText?: string | null; recommendationSetId?: string | null; retractsFeedbackId?: string | null; shownRecommendations?: ShownRecommendationForFeedback[]; skipped?: boolean; topPickSource?: RecommendationFeedbackSource | null; } export {};