import { GitProviderDto } from "../entities";
import { IDeleteQueryParams, IGetQueryParams, IPostQueryParams } from "../interfaces";
import type { ResponseData } from "../interfaces/ResponseData";
import type { GitProviderDomain, GitProviderType } from "../interfaces/SystemTypes";
import { GitRepositoryDto } from "../modules/git/git-provider-api";
import { GitProviderService } from "../services/GitProviderService";
import BaseController from "./BaseController";
export default class GitProviderController extends BaseController {
    service: GitProviderService;
    constructor();
    /**
     * List of GIT providers
     */
    read(queryParams?: IGetQueryParams): Promise<ResponseData>;
    create(body: GitProviderDto, queryParams?: IPostQueryParams): Promise<ResponseData>;
    update(body: GitProviderDto, queryParams?: IPostQueryParams): Promise<ResponseData>;
    delete(queryParams?: IDeleteQueryParams): Promise<ResponseData>;
    verify(queryParams?: IPostQueryParams): Promise<ResponseData>;
    getProfile(queryParams?: {
        _id?: string;
        slug?: string;
    }): Promise<ResponseData>;
    getListOrgs(queryParams?: {
        /**
         * Git provider's ID
         */
        _id?: string;
        /**
         * Git provider's SLUG¸¸¸
         */
        slug?: string;
    }): Promise<ResponseData>;
    /**
     * List organization repositories
     */
    getListOrgRepos(queryParams?: {
        /**
         * Git provider's ID
         */
        _id?: string;
        /**
         * Git provider's SLUG¸¸¸
         */
        slug?: string;
    }): Promise<ResponseData>;
    /**
     * Create new repository in git provider organization
     */
    createOrgRepo(body: GitRepositoryDto, queryParams?: {
        /**
         * Git provider's ID
         */
        _id?: string;
        /**
         * Git provider's SLUG¸¸¸
         */
        slug?: string;
    }): Promise<ResponseData>;
    /**
     * Create new repository in git provider organization
     */
    deleteOrgRepo(body: GitRepositoryDto, queryParams?: {
        /**
         * Git provider's ID
         */
        _id?: string;
        /**
         * Git repository's SLUG¸¸¸
         */
        slug?: string;
    }): Promise<ResponseData>;
    /**
     * Create new repository in git provider organization
     */
    listRepoBranches(queryParams?: {
        /**
         * Git provider's ID
         */
        _id?: string;
        /**
         * Git provider's SLUG
         */
        slug?: string;
        /**
         * Git repo's SLUG
         */
        repo: string;
    }): Promise<ResponseData>;
    getPublicKey(): Promise<ResponseData>;
    createKeysSSH(body: {
        gitDomain: GitProviderDomain;
        privateKey: string;
        publicKey: string;
    }): Promise<ResponseData>;
    generateSSH(): Promise<ResponseData & {
        publicKey?: string;
    }>;
    verifySSH(queryParams?: {
        provider: GitProviderType;
    }): Promise<ResponseData>;
}
//# sourceMappingURL=GitProviderController.d.ts.map