import { i as DictionaryCreationData, n as Dictionary$1, r as DictionaryAPI } from "./dictionary.types-D2UBLKDw.js";
import { t as FiltersAndPagination } from "./getFiltersAndPaginationFromBody--L3RVBYl.js";
import { n as ResponseData, t as PaginatedResponse } from "./responseData-U7Jr-usN.js";
import { n as DictionaryFiltersParams } from "./getDictionaryFiltersAndPagination-_Fzi396i.js";
import { Dictionary, DictionaryId, LocalDictionaryId } from "@intlayer/types/dictionary";
import { FastifyReply, FastifyRequest } from "fastify";

//#region src/controllers/dictionary.controller.d.ts
type GetDictionariesParams = FiltersAndPagination<DictionaryFiltersParams>;
type GetDictionariesResult = PaginatedResponse<DictionaryAPI>;
/**
 * Retrieves a list of dictionaries based on filters and pagination.
 */
declare const getDictionaries: (request: FastifyRequest<{
  Querystring: GetDictionariesParams;
}>, reply: FastifyReply) => Promise<void>;
type GetDictionariesKeysResult = ResponseData<string[]>;
/**
 * Retrieves a list of dictionaries keys based on filters and pagination.
 */
declare const getDictionariesKeys: (_request: FastifyRequest, reply: FastifyReply) => Promise<void>;
type GetDictionariesUpdateTimestampResult = ResponseData<Record<DictionaryId, {
  key: string;
  updatedAt: number;
}>>;
/**
 * Retrieves a list of dictionaries keys based on filters and pagination.
 */
declare const getDictionariesUpdateTimestamp: (_request: FastifyRequest, reply: FastifyReply) => Promise<void>;
type GetDictionaryParams = {
  dictionaryKey: string;
};
type GetDictionaryQuery = {
  version?: string;
};
type GetDictionaryResult = ResponseData<DictionaryAPI>;
/**
 * Retrieves a list of dictionaries based on filters and pagination.
 */
declare const getDictionaryByKey: (request: FastifyRequest<{
  Params: GetDictionaryParams;
  Querystring: GetDictionaryQuery;
}>, reply: FastifyReply) => Promise<void>;
type AddDictionaryBody = {
  dictionary: DictionaryCreationData;
};
type AddDictionaryResult = ResponseData<DictionaryAPI>;
/**
 * Adds a new dictionary to the database.
 */
declare const addDictionary: (request: FastifyRequest<{
  Body: AddDictionaryBody;
}>, reply: FastifyReply) => Promise<void>;
type PushDictionariesBody = {
  dictionaries: Dictionary[];
};
type PushDictionariesResultData = {
  newDictionaries: {
    key: string;
    localId: LocalDictionaryId;
    id: string | undefined;
  }[];
  updatedDictionaries: {
    key: string;
    localId: LocalDictionaryId;
    id: string | undefined;
  }[];
  error: {
    id: string | undefined;
    key: string;
    localId: LocalDictionaryId | undefined;
    message: string;
  }[];
};
type PushDictionariesResult = ResponseData<PushDictionariesResultData>;
/**
 * Check each dictionaries, add the new ones and update the existing ones.
 */
declare const pushDictionaries: (request: FastifyRequest<{
  Body: PushDictionariesBody;
}>, reply: FastifyReply) => Promise<void>;
type UpdateDictionaryParam = {
  dictionaryId: string;
};
type UpdateDictionaryBody = Partial<Dictionary$1>;
type UpdateDictionaryResult = ResponseData<DictionaryAPI>;
/**
 * Updates an existing dictionary in the database.
 */
declare const updateDictionary: (request: FastifyRequest<{
  Params: UpdateDictionaryParam;
  Body: UpdateDictionaryBody;
}>, reply: FastifyReply) => Promise<void>;
type DeleteDictionaryParam = {
  dictionaryId: string;
};
type DeleteDictionaryResult = ResponseData<DictionaryAPI>;
/**
 * Deletes a dictionary from the database by its ID.
 */
declare const deleteDictionary: (request: FastifyRequest<{
  Params: DeleteDictionaryParam;
}>, reply: FastifyReply) => Promise<void>;
//#endregion
export { pushDictionaries as C, getDictionaryByKey as S, addDictionary as _, GetDictionariesKeysResult as a, getDictionariesKeys as b, GetDictionariesUpdateTimestampResult as c, GetDictionaryResult as d, PushDictionariesBody as f, UpdateDictionaryResult as g, UpdateDictionaryParam as h, DeleteDictionaryResult as i, GetDictionaryParams as l, UpdateDictionaryBody as m, AddDictionaryResult as n, GetDictionariesParams as o, PushDictionariesResult as p, DeleteDictionaryParam as r, GetDictionariesResult as s, AddDictionaryBody as t, GetDictionaryQuery as u, deleteDictionary as v, updateDictionary as w, getDictionariesUpdateTimestamp as x, getDictionaries as y };
//# sourceMappingURL=dictionary.controller-DMH0_My7.d.ts.map