import { type GithubRepository, type VcsApi, type VcsRepository } from '../../../shared/vcs';
export type GithubNode = {
    download_url: string;
    git_url: string;
    html_url: string;
    name: string;
    path: string;
    sha: string;
    size: number;
    type: 'file' | 'dir';
    url: string;
};
export declare class GithubApi implements VcsApi {
    token: string;
    baseUrl: string;
    vcsId: string;
    maxFileSize: number;
    constructor({ token, baseUrl, vcsId, maxFileSize, }: {
        token?: string;
        baseUrl: string;
        vcsId: string;
        maxFileSize: number;
    });
    getProjectId(repository: VcsRepository): string;
    getRequestHeaders(): {
        Authorization: string;
    };
    getRepositories(): Promise<Record<string, GithubRepository>>;
    getBranches({ repository }: {
        repository: VcsRepository;
    }): Promise<string[]>;
    getRepositoryContent({ repository, branch, path, }: {
        repository: VcsRepository;
        branch: string;
        path?: string;
    }): Promise<{
        name: string;
        type: 'file' | 'dir';
        url: string;
    }[]>;
    getFileContent({ repository, path, branch, }: {
        repository: VcsRepository;
        branch: string;
        path: string;
    }): Promise<string>;
}
