import { n as AskDocQuestionResult$1 } from "./askDocQuestion-DQSszcz5.js";
import { n as TagAPI } from "./tag.types-B_et0Nqi.js";
import { t as AuditFileResultData } from "./index-CxK5Tncv.js";
import { n as AuditDictionaryFieldResultData } from "./index-CuQWGbRK.js";
import { t as AuditFileResultData$1 } from "./index-Dce0JIq0.js";
import { n as TranslateJSONResultData } from "./index-1PhP5HqJ.js";
import { n as CustomQueryResultData, t as CustomQueryOptions } from "./index-BKZj-uEq.js";
import { n as TranslateJSONOptions, r as TranslateJSONResultData$1 } from "./index-C0P7g_7_.js";
import { n as DiscussionAPI } from "./discussion.types-a01IpTxp.js";
import { n as DiscussionFiltersParams } from "./getDiscussionFiltersAndPagination-Dbf2PkaR.js";
import { n as ResponseData, t as PaginatedResponse } from "./responseData-U7Jr-usN.js";
import { AIConfig as AIConfig$1, AIOptions, AIOptions as AIOptions$1, AIProvider, ChatCompletionRequestMessage, ChatCompletionRequestMessage as ChatCompletionRequestMessage$1 } from "@intlayer/ai";
import { Locale } from "@intlayer/types/allLocales";
import { KeyPath } from "@intlayer/types/keyPath";
import { FastifyReply, FastifyRequest } from "fastify";

//#region src/controllers/ai.controller.d.ts
type ReplaceAIConfigByOptions<T> = Omit<T, 'aiConfig'> & {
  aiOptions?: AIOptions;
};
type CustomQueryBody = ReplaceAIConfigByOptions<CustomQueryOptions> & {
  tagsKeys?: string[];
  applicationContext?: string;
};
type CustomQueryResult = ResponseData<CustomQueryResultData>;
declare const customQuery: (request: FastifyRequest<{
  Body: CustomQueryBody;
}>, reply: FastifyReply) => Promise<void>;
type TranslateJSONBody = Omit<ReplaceAIConfigByOptions<TranslateJSONOptions<JSON>>, 'tags'> & {
  tagsKeys?: string[];
};
type TranslateJSONResult = ResponseData<TranslateJSONResultData$1<JSON>>;
declare const translateJSON: (request: FastifyRequest<{
  Body: TranslateJSONBody;
}>, reply: FastifyReply) => Promise<void>;
type AuditContentDeclarationBody = {
  aiOptions?: AIOptions;
  locales: Locale[];
  defaultLocale: Locale;
  fileContent: string;
  filePath?: string;
  tagsKeys?: string[];
};
type AuditContentDeclarationResult = ResponseData<AuditFileResultData>;
/**
 * Retrieves a list of dictionaries based on filters and pagination.
 */
declare const auditContentDeclaration: (request: FastifyRequest<{
  Body: AuditContentDeclarationBody;
}>, reply: FastifyReply) => Promise<void>;
type AuditContentDeclarationFieldBody = {
  aiOptions?: AIOptions;
  locales: Locale[];
  fileContent: string;
  filePath?: string;
  tagsKeys?: string[];
  keyPath: KeyPath[];
};
type AuditContentDeclarationFieldResult = ResponseData<AuditDictionaryFieldResultData>;
/**
 * Retrieves a list of dictionaries based on filters and pagination.
 */
declare const auditContentDeclarationField: (request: FastifyRequest<{
  Body: AuditContentDeclarationFieldBody;
}>, reply: FastifyReply) => Promise<void>;
type AuditContentDeclarationMetadataBody = {
  aiOptions?: AIOptions;
  fileContent: string;
};
type AuditContentDeclarationMetadataResult = ResponseData<AuditFileResultData$1>;
/**
 * Retrieves a list of dictionaries based on filters and pagination.
 */
declare const auditContentDeclarationMetadata: (request: FastifyRequest<{
  Body: AuditContentDeclarationMetadataBody;
}>, reply: FastifyReply) => Promise<void>;
type AuditTagBody = {
  aiOptions?: AIOptions;
  tag: TagAPI;
};
type AuditTagResult = ResponseData<TranslateJSONResultData>;
/**
 * Retrieves a list of dictionaries based on filters and pagination.
 */
declare const auditTag: (request: FastifyRequest<{
  Body: AuditTagBody;
}>, reply: FastifyReply) => Promise<void>;
type AskDocQuestionBody = {
  messages: ChatCompletionRequestMessage[];
  discussionId: string;
};
type AskDocQuestionResult = ResponseData<AskDocQuestionResult$1>;
declare const askDocQuestion: (request: FastifyRequest<{
  Body: AskDocQuestionBody;
}>, reply: FastifyReply) => Promise<void>;
type AutocompleteBody = {
  text: string;
  aiOptions?: AIOptions;
  contextBefore?: string;
  currentLine?: string;
  contextAfter?: string;
};
type AutocompleteResponse = ResponseData<{
  autocompletion: string;
}>;
declare const autocomplete: (request: FastifyRequest<{
  Body: AutocompleteBody;
}>, reply: FastifyReply) => Promise<void>;
type GetDiscussionsParams = ({
  page?: string | number;
  pageSize?: string | number;
  includeMessages?: 'true' | 'false';
} & DiscussionFiltersParams) | undefined;
type GetDiscussionsResult = PaginatedResponse<DiscussionAPI>;
/**
 * Retrieves a list of discussions with filters and pagination.
 * Only the owner or admins can access. By default, users only see their own.
 */
declare const getDiscussions: (request: FastifyRequest<{
  Querystring: GetDiscussionsParams;
}>, reply: FastifyReply) => Promise<void>;
//#endregion
export { getDiscussions as A, askDocQuestion as C, auditTag as D, auditContentDeclarationMetadata as E, autocomplete as O, TranslateJSONResult as S, auditContentDeclarationField as T, CustomQueryBody as _, AskDocQuestionResult as a, GetDiscussionsResult as b, AuditContentDeclarationFieldResult as c, AuditContentDeclarationResult as d, AuditTagBody as f, ChatCompletionRequestMessage$1 as g, AutocompleteResponse as h, AskDocQuestionBody as i, translateJSON as j, customQuery as k, AuditContentDeclarationMetadataBody as l, AutocompleteBody as m, AIOptions$1 as n, AuditContentDeclarationBody as o, AuditTagResult as p, AIProvider as r, AuditContentDeclarationFieldBody as s, AIConfig$1 as t, AuditContentDeclarationMetadataResult as u, CustomQueryResult as v, auditContentDeclaration as w, TranslateJSONBody as x, GetDiscussionsParams as y };
//# sourceMappingURL=ai.controller-DnIVQ-41.d.ts.map