import { IProject, IProjectMeta, IRecord } from "../interfaces";
import { FileHelper, GitHelper } from "./";
export declare class ProjectHelper {
    /**
     * Extracts the domain from a IProjectMetaData object
     *
     * @param projectMeta - MetaData object
     * @returns Domain of the meta data as formatted string
     */
    static projectMetaToDomain: (projectMeta: IProjectMeta) => string;
    /**
     * Constructs a meta data object from a formatted domain string
     *
     * @param domain - formatted domain string
     * @returns Meta data object based on the formatted string
     */
    static domainToProjectMeta: (domain: string) => IProjectMeta;
    /**
     * @param project - IProject object
     * @returns Filename of the project file
     */
    static projectToProjectFilename: (project: IProject) => string;
    /**
     * @param project - IProject object
     * @returns Path of the project file
     */
    static getProjectPath: (project: IProject) => string;
    private fileHelper;
    private gitHelper;
    constructor(gitHelper: GitHelper, fileHelper: FileHelper);
    getGitttProject: () => Promise<IProject>;
    initProject: () => Promise<IProject>;
    addRecordsToProject: (records: IRecord[], project?: IProject | undefined, uniqueOnly?: boolean | undefined, nonOverlappingOnly?: boolean | undefined) => Promise<void>;
    addRecordToProject: (record: IRecord, project?: IProject | undefined, uniqueOnly?: boolean | undefined, nonOverlappingOnly?: boolean | undefined) => Promise<void>;
    getTotalHours: (projectName: string) => Promise<number>;
    getProjectByName: (name: string) => Promise<IProject>;
    getAllProjects: () => Promise<IProject[]>;
    getProjectFromGit: () => IProject;
    getOrAskForProjectFromGit: () => Promise<IProject>;
}
