import { ProjectScopeConfig } from "../../db/manage/scope-definitions.js";
import { PaginationConfig } from "../../types/utility.js";
import { feedback } from "../../db/runtime/runtime-schema.js";
import { AgentsRunDatabaseClient } from "../../db/runtime/runtime-client.js";
import "../../types/index.js";
import { FeedbackInsert, FeedbackUpdate } from "../../types/entities.js";

//#region src/data-access/runtime/feedback.d.ts
declare const getFeedbackById: (db: AgentsRunDatabaseClient) => (params: {
  scopes: ProjectScopeConfig;
  feedbackId: string;
}) => Promise<{
  id: string;
  conversationId: string;
  messageId: string | null;
  type: "positive" | "negative";
  details: string | null;
  createdAt: string;
  updatedAt: string;
}>;
declare const listFeedbackByConversation: (db: AgentsRunDatabaseClient) => (params: {
  scopes: ProjectScopeConfig;
  conversationId: string;
  messageId?: string;
  pagination?: PaginationConfig;
}) => Promise<{
  feedback: {
    id: string;
    conversationId: string;
    messageId: string | null;
    type: "positive" | "negative";
    details: string | null;
    createdAt: string;
    updatedAt: string;
    agentId: string | null;
  }[];
  total: number;
}>;
declare const listFeedback: (db: AgentsRunDatabaseClient) => (params: {
  scopes: ProjectScopeConfig;
  conversationId?: string;
  messageId?: string;
  agentId?: string;
  type?: "positive" | "negative";
  startDate?: string;
  endDate?: string;
  pagination?: PaginationConfig;
}) => Promise<{
  feedback: {
    id: string;
    conversationId: string;
    messageId: string | null;
    type: "positive" | "negative";
    details: string | null;
    createdAt: string;
    updatedAt: string;
    agentId: string | null;
  }[];
  total: number;
}>;
declare const getFeedbackByIds: (db: AgentsRunDatabaseClient) => (params: {
  scopes: ProjectScopeConfig;
  feedbackIds: string[];
}) => Promise<{
  id: string;
  conversationId: string;
  type: "positive" | "negative";
  details: string | null;
  createdAt: string;
  agentId: string | null;
}[]>;
declare const createFeedback: (db: AgentsRunDatabaseClient) => (params: FeedbackInsert) => Promise<{
  type: "positive" | "negative";
  id: string;
  createdAt: string;
  updatedAt: string;
  tenantId: string;
  projectId: string;
  details: string | null;
  conversationId: string;
  messageId: string | null;
}>;
declare const createFeedbackBulk: (db: AgentsRunDatabaseClient) => (items: FeedbackInsert[]) => Promise<(typeof feedback.$inferSelect)[]>;
declare const updateFeedback: (db: AgentsRunDatabaseClient) => (params: {
  scopes: ProjectScopeConfig;
  feedbackId: string;
  data: FeedbackUpdate;
}) => Promise<{
  createdAt: string;
  updatedAt: string;
  conversationId: string;
  messageId: string | null;
  type: "positive" | "negative";
  details: string | null;
  projectId: string;
  tenantId: string;
  id: string;
}>;
declare const deleteFeedback: (db: AgentsRunDatabaseClient) => (params: {
  scopes: ProjectScopeConfig;
  feedbackId: string;
}) => Promise<{
  type: "positive" | "negative";
  id: string;
  createdAt: string;
  updatedAt: string;
  tenantId: string;
  projectId: string;
  details: string | null;
  conversationId: string;
  messageId: string | null;
}>;
//#endregion
export { createFeedback, createFeedbackBulk, deleteFeedback, getFeedbackById, getFeedbackByIds, listFeedback, listFeedbackByConversation, updateFeedback };