import type { IGitProvider } from "../../entities";
import type { GitProviderType } from "../../interfaces/SystemTypes";
interface GitUser {
    id?: string;
    username?: string;
    display_name?: string;
    url?: string;
    email?: string;
}
export interface GitOrg {
    id: string;
    name: string;
    url: string;
    description: string;
    /**
     * `false` if this is a personal account
     */
    is_org: boolean;
}
export interface GitRepository {
    provider: GitProviderType;
    id: string;
    name: string;
    full_name: string;
    description: string;
    private: boolean;
    fork: boolean;
    repo_url: string;
    ssh_url: string;
    owner: {
        username: string;
        id: string;
        url: string;
        type: string;
    };
    created_at: string;
    updated_at: string;
}
export interface GitRepositoryDto {
    name: string;
    description?: string;
    private: boolean;
}
export interface GitRepoBranch {
    name: string;
    url: string;
}
export declare const deleteGitRepository: (provider: IGitProvider, org: string, slug: string, options?: {
    isDebugging?: boolean;
}) => Promise<any>;
export declare const listRepoBranches: (provider: IGitProvider, org: string, slug: string, options?: {
    isDebugging?: boolean;
}) => Promise<GitRepoBranch[]>;
declare const GitProviderAPI: {
    getProfile: (provider: IGitProvider, options?: {
        isDebugging?: boolean;
    }) => Promise<GitUser>;
    listOrgs: (provider: IGitProvider) => Promise<GitOrg[]>;
    listGitRepositories: (provider: IGitProvider, options?: {
        isDebugging?: boolean;
    }) => Promise<GitRepository[]>;
    createGitRepository: (provider: IGitProvider, data: GitRepositoryDto, options?: {
        isDebugging?: boolean;
    }) => Promise<GitRepository>;
    deleteGitRepository: (provider: IGitProvider, org: string, slug: string, options?: {
        isDebugging?: boolean;
    }) => Promise<any>;
    listRepoBranches: (provider: IGitProvider, org: string, slug: string, options?: {
        isDebugging?: boolean;
    }) => Promise<GitRepoBranch[]>;
};
export default GitProviderAPI;
//# sourceMappingURL=git-provider-api.d.ts.map