import { AdrRepository as IAdrRepository } from "@src/adr/application";
import { Adr, AdrFile, AdrSlug, PackageRef } from "@src/adr/domain";
import { Log4brainsConfig } from "@src/infrastructure/config";
import { PackageRepository } from "./PackageRepository";
declare type Deps = {
    config: Log4brainsConfig;
    workdir: string;
    packageRepository: PackageRepository;
};
export declare class AdrRepository implements IAdrRepository {
    private readonly config;
    private readonly workdir;
    private readonly packageRepository;
    private readonly git;
    private gitAvailable?;
    private anonymousAuthor?;
    private readonly markdownAdrLinkResolver;
    constructor({ config, workdir, packageRepository }: Deps);
    private isGitAvailable;
    find(slug: AdrSlug): Promise<Adr>;
    findFromFile(adrFile: AdrFile): Promise<Adr | undefined>;
    findAll(): Promise<Adr[]>;
    private getGitMetadata;
    /**
     * In preview mode, we set the Anonymous author as the current Git `user.name` global config.
     * It should not append in CI. But if this is the case, it will appear as "Anonymous".
     * Response is cached.
     */
    private getAnonymousAuthor;
    private getLastEditDateFromFilesystem;
    private findInPath;
    private findAllInPath;
    generateAvailableSlug(title: string, packageRef?: PackageRef): AdrSlug;
    private getPackageRef;
    private getAdrFolderPath;
    save(adr: Adr): Promise<void>;
}
export {};
//# sourceMappingURL=AdrRepository.d.ts.map