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

//#region src/controllers/github.controller.d.ts
type GitHubGetAuthUrlQuerystring = {
  redirectUri: string;
  login?: string;
};
type GitHubGetAuthUrlResult = ResponseData<{
  authUrl: string;
}>;
declare const getAuthUrl: (request: FastifyRequest<{
  Querystring: GitHubGetAuthUrlQuerystring;
}>, reply: FastifyReply) => Promise<void>;
type GitHubAuthCallbackBody = {
  code: string;
};
type GitHubAuthCallbackResult = ResponseData<{
  token: string;
}>;
declare const authCallback: (request: FastifyRequest<{
  Body: GitHubAuthCallbackBody;
}>, reply: FastifyReply) => Promise<void>;
type GitHubListReposQuerystring = {
  token?: string;
};
type GitHubListReposResult = ResponseData<GitHubRepository[]>;
declare const listRepos: (request: FastifyRequest<{
  Querystring: GitHubListReposQuerystring;
}>, reply: FastifyReply) => Promise<void>;
type GitHubCheckConfigBody = {
  token?: string;
  owner: string;
  repository: string;
  branch?: string;
};
type GitHubCheckConfigResult = ResponseData<{
  hasConfig: boolean;
  configPaths: string[];
}>;
/**
 * Check if intlayer.config.ts (or candidates) exists in a repository
 */
declare const checkConfig: (request: FastifyRequest<{
  Body: GitHubCheckConfigBody;
}>, reply: FastifyReply) => Promise<void>;
type GitHubGetConfigFileBody = {
  token?: string;
  owner: string;
  repository: string;
  branch?: string;
  path?: string;
};
type GitHubGetConfigFileResult = ResponseData<{
  content: string;
}>;
declare const getConfigFile: (request: FastifyRequest<{
  Body: GitHubGetConfigFileBody;
}>, reply: FastifyReply) => Promise<void>;
//#endregion
export { GitHubAuthCallbackBody, GitHubAuthCallbackResult, GitHubCheckConfigBody, GitHubCheckConfigResult, GitHubGetAuthUrlQuerystring, GitHubGetAuthUrlResult, GitHubGetConfigFileBody, GitHubGetConfigFileResult, GitHubListReposQuerystring, GitHubListReposResult, authCallback, checkConfig, getAuthUrl, getConfigFile, listRepos };
//# sourceMappingURL=github.controller.d.ts.map