import { i as TagData, n as TagAPI, r as TagCreationData, t as Tag } from "./tag.types-B_et0Nqi.js";
import { t as FiltersAndPagination } from "./getFiltersAndPaginationFromBody--L3RVBYl.js";
import { n as ResponseData, t as PaginatedResponse } from "./responseData-U7Jr-usN.js";
import { n as TagFiltersParams } from "./getTagFiltersAndPagination-Bbi3yih_.js";
import { FastifyReply, FastifyRequest } from "fastify";

//#region src/controllers/tag.controller.d.ts
type GetTagsParams = FiltersAndPagination<TagFiltersParams>;
type GetTagsResult = PaginatedResponse<TagAPI>;
/**
 * Retrieves a list of tags based on filters and pagination.
 */
declare const getTags: (request: FastifyRequest<{
  Querystring: GetTagsParams;
}>, reply: FastifyReply) => Promise<void>;
type AddTagBody = TagCreationData;
type AddTagResult = ResponseData<TagAPI>;
/**
 * Adds a new tag to the database.
 */
declare const addTag: (request: FastifyRequest<{
  Body: AddTagBody;
}>, reply: FastifyReply) => Promise<void>;
type UpdateTagParams = {
  tagId: string | Tag['id'];
};
type UpdateTagBody = Partial<TagData>;
type UpdateTagResult = ResponseData<TagAPI>;
/**
 * Updates an existing tag in the database.
 */
declare const updateTag: (request: FastifyRequest<{
  Params: UpdateTagParams;
  Body: UpdateTagBody;
}>, reply: FastifyReply) => Promise<void>;
type DeleteTagParams = {
  tagId: string | Tag['id'];
};
type DeleteTagResult = ResponseData<TagAPI>;
/**
 * Deletes a tag from the database by its ID.
 */
declare const deleteTag: (request: FastifyRequest<{
  Params: DeleteTagParams;
}>, reply: FastifyReply) => Promise<void>;
//#endregion
export { GetTagsParams as a, UpdateTagParams as c, deleteTag as d, getTags as f, DeleteTagResult as i, UpdateTagResult as l, AddTagResult as n, GetTagsResult as o, updateTag as p, DeleteTagParams as r, UpdateTagBody as s, AddTagBody as t, addTag as u };
//# sourceMappingURL=tag.controller-3T61kRYD.d.ts.map