/** * Create new feedback. * This mutation is intentionally public (no auth required) because: * 1. We want to capture feedback even when auth might be broken * 2. The reporter info is passed explicitly from the client */ export declare const create: import("convex/server").RegisteredMutation<"public", { route?: string; consoleErrors?: string; screenshotStorageId?: import("convex/values").GenericId<"_storage">; openRouterApiKey?: string; resendApiKey?: string; resendFromEmail?: string; skipAutoProcess?: boolean; type: "feature_request" | "change_request" | "general"; description: string; reporterType: "staff" | "customer"; title: string; reporterId: string; reporterEmail: string; reporterName: string; url: string; browserInfo: string; viewportWidth: number; viewportHeight: number; networkState: string; priority: "critical" | "nice_to_have" | "important"; }, Promise>>; /** * List feedback with optional filters. * By default, archived items are excluded unless includeArchived is true. */ export declare const list: import("convex/server").RegisteredQuery<"public", { type?: "feature_request" | "change_request" | "general"; status?: "open" | "under_review" | "planned" | "in_progress" | "completed" | "declined"; priority?: "critical" | "nice_to_have" | "important"; limit?: number; includeArchived?: boolean; }, Promise>; /** * Get a single feedback by ID. */ export declare const get: import("convex/server").RegisteredQuery<"public", { feedbackId: import("convex/values").GenericId<"feedback">; }, Promise<{ _id: import("convex/values").GenericId<"feedback">; _creationTime: number; isArchived?: boolean; route?: string; consoleErrors?: string; screenshotStorageId?: import("convex/values").GenericId<"_storage">; aiSummary?: string; aiEstimatedEffort?: "low" | "medium" | "high"; aiAnalyzedAt?: number; aiThreadId?: string; notificationsSentAt?: number; ticketNumber?: string; aiImpactAnalysis?: string; aiActionItems?: string[]; aiSuggestedPriority?: "critical" | "nice_to_have" | "important"; type: "feature_request" | "change_request" | "general"; description: string; status: "open" | "under_review" | "planned" | "in_progress" | "completed" | "declined"; reporterType: "staff" | "customer"; title: string; reporterId: string; reporterEmail: string; reporterName: string; url: string; browserInfo: string; viewportWidth: number; viewportHeight: number; networkState: string; createdAt: number; updatedAt: number; priority: "critical" | "nice_to_have" | "important"; }>>; /** * Update feedback status. */ export declare const updateStatus: import("convex/server").RegisteredMutation<"public", { status: "open" | "under_review" | "planned" | "in_progress" | "completed" | "declined"; feedbackId: import("convex/values").GenericId<"feedback">; }, Promise>; /** * Generate upload URL for screenshot. */ export declare const generateUploadUrl: import("convex/server").RegisteredMutation<"public", {}, Promise>; /** * Get screenshot URL from storage ID. */ export declare const getScreenshotUrl: import("convex/server").RegisteredQuery<"public", { storageId: import("convex/values").GenericId<"_storage">; }, Promise>; /** * Archive feedback. */ export declare const archive: import("convex/server").RegisteredMutation<"public", { feedbackId: import("convex/values").GenericId<"feedback">; }, Promise>; /** * Unarchive feedback. */ export declare const unarchive: import("convex/server").RegisteredMutation<"public", { feedbackId: import("convex/values").GenericId<"feedback">; }, Promise>; /** * Get AI analysis for a specific feedback. */ export declare const getAiAnalysis: import("convex/server").RegisteredQuery<"public", { feedbackId: import("convex/values").GenericId<"feedback">; }, Promise<{ aiSummary: string; aiImpactAnalysis: string; aiActionItems: string[]; aiEstimatedEffort: "low" | "medium" | "high"; aiSuggestedPriority: "critical" | "nice_to_have" | "important"; aiAnalyzedAt: number; notificationsSentAt: number; }>>; /** * Internal mutation to update feedback with AI analysis results */ export declare const updateWithAnalysis: import("convex/server").RegisteredMutation<"internal", { aiSummary: string; aiEstimatedEffort: "low" | "medium" | "high"; aiThreadId: string; aiImpactAnalysis: string; aiActionItems: string[]; aiSuggestedPriority: "critical" | "nice_to_have" | "important"; feedbackId: import("convex/values").GenericId<"feedback">; }, Promise>; /** * Internal mutation to mark notifications as sent */ export declare const markNotificationsSent: import("convex/server").RegisteredMutation<"internal", { feedbackId: import("convex/values").GenericId<"feedback">; }, Promise>; /** * Internal query to list feedback (for HTTP API). */ export declare const listInternal: import("convex/server").RegisteredQuery<"internal", { type?: "feature_request" | "change_request" | "general"; status?: "open" | "under_review" | "planned" | "in_progress" | "completed" | "declined"; priority?: "critical" | "nice_to_have" | "important"; limit?: number; includeArchived?: boolean; }, Promise>; /** * Public mutation to archive/unarchive feedback by ticket number. * Used by consumer apps via component API and HTTP API. */ export declare const setArchivedByTicketNumber: import("convex/server").RegisteredMutation<"public", { isArchived: boolean; ticketNumber: string; }, Promise<{ success: boolean; ticketNumber: string; isArchived: boolean; }>>; /** * Public mutation to update feedback status by ticket number. * Used by consumer apps via component API and HTTP API. */ export declare const updateStatusByTicketNumber: import("convex/server").RegisteredMutation<"public", { status: "open" | "under_review" | "planned" | "in_progress" | "completed" | "declined"; ticketNumber: string; }, Promise<{ success: boolean; ticketNumber: string; }>>; //# sourceMappingURL=feedback.d.ts.map