import { type GitlabRepository, type VcsApi, type VcsRepository } from '../../../shared/vcs';
export type GitlabNode = {
    id: string;
    mode: string;
    name: string;
    path: string;
    type: 'tree' | 'blob';
};
export declare class GitlabApi 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, GitlabRepository>>;
    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, branch, path, }: {
        repository: VcsRepository;
        branch: string;
        path: string;
    }): Promise<string>;
}
