import type { Run as BaseRun } from "../run";
import type { TocService } from "../toc";
import type { MetaService } from "../meta";
import type { Contributor, SyncData, VcsConnector, VcsMetadata } from './types';
export type VcsServiceConfig = {
    vcsPath: {
        enabled: boolean;
    };
    mtimes: {
        enabled: boolean;
    };
    authors: {
        enabled: boolean;
        ignore: string[];
    };
    contributors: {
        enabled: boolean;
        ignore: string[];
    };
    vcs: {
        enabled: boolean;
    } & Hash;
};
type Run = BaseRun<VcsServiceConfig> & {
    toc: TocService;
    meta: MetaService;
};
export declare class VcsService implements VcsConnector {
    readonly name = "Vcs";
    readonly run: Run;
    readonly config: VcsServiceConfig;
    private connector;
    constructor(run: Run);
    init(): Promise<void>;
    getData(): SyncData;
    setData(data: SyncData): void;
    metadata(path: RelativePath, deps?: NormalizedPath[]): Promise<VcsMetadata>;
    getBase(): Promise<RelativePath>;
    getContributorsByPath(path: RelativePath, deps?: RelativePath[]): Promise<Contributor[]>;
    getModifiedTimeByPath(path: RelativePath): Promise<number | null>;
    getAuthorByPath(path: RelativePath): Promise<Contributor | null>;
    getUserByLogin(author: string): Promise<Contributor | null>;
    private getResources;
    private getAuthor;
    private getContributors;
    private getMTime;
    private realpath;
}
export {};
