import { ResponseData } from "../utils/responseData.js";
import { GitLabProject } from "../services/gitlab.service.js";
import { FastifyReply, FastifyRequest } from "fastify";

//#region src/controllers/gitlab.controller.d.ts
type GitLabGetAuthUrlQuerystring = {
  redirectUri: string;
  instanceUrl?: string;
  login?: string;
};
type GitLabGetAuthUrlResult = ResponseData<{
  authUrl: string;
}>;
declare const getAuthUrl: (request: FastifyRequest<{
  Querystring: GitLabGetAuthUrlQuerystring;
}>, reply: FastifyReply) => Promise<void>;
type GitLabAuthCallbackBody = {
  code: string;
  redirectUri: string;
  instanceUrl?: string;
};
type GitLabAuthCallbackResult = ResponseData<{
  token: string;
}>;
declare const authCallback: (request: FastifyRequest<{
  Body: GitLabAuthCallbackBody;
}>, reply: FastifyReply) => Promise<void>;
type GitLabListProjectsQuerystring = {
  token?: string;
  instanceUrl?: string;
};
type GitLabListProjectsResult = ResponseData<GitLabProject[]>;
declare const listProjects: (request: FastifyRequest<{
  Querystring: GitLabListProjectsQuerystring;
}>, reply: FastifyReply) => Promise<void>;
type GitLabCheckConfigBody = {
  token?: string;
  projectId: number;
  branch?: string;
  instanceUrl?: string;
};
type GitLabCheckConfigResult = ResponseData<{
  hasConfig: boolean;
  configPaths: string[];
}>;
/**
 * Check if intlayer.config.ts (or candidates) exists in a GitLab repository
 */
declare const checkConfig: (request: FastifyRequest<{
  Body: GitLabCheckConfigBody;
}>, reply: FastifyReply) => Promise<void>;
type GitLabGetConfigFileBody = {
  token?: string;
  projectId: number;
  branch?: string;
  path?: string;
  instanceUrl?: string;
};
type GitLabGetConfigFileResult = ResponseData<{
  content: string;
}>;
declare const getConfigFile: (request: FastifyRequest<{
  Body: GitLabGetConfigFileBody;
}>, reply: FastifyReply) => Promise<void>;
//#endregion
export { GitLabAuthCallbackBody, GitLabAuthCallbackResult, GitLabCheckConfigBody, GitLabCheckConfigResult, GitLabGetAuthUrlQuerystring, GitLabGetAuthUrlResult, GitLabGetConfigFileBody, GitLabGetConfigFileResult, GitLabListProjectsQuerystring, GitLabListProjectsResult, authCallback, checkConfig, getAuthUrl, getConfigFile, listProjects };
//# sourceMappingURL=gitlab.controller.d.ts.map