import { IProjectParserService } from "./i-project-parser-service";
import { IProjectParserServiceOptions } from "./i-project-parser-service-options";
import { IProject } from "./i-project";
import { IConfigParserService } from "../config-parser/i-config-parser-service";
import { IPackageJsonParserService } from "../package-json-parser/i-package-json-parser-service";
import { IProjectPathUtil } from "../../../util/project-path-util/i-project-path-util";
import { IHasherService } from "../../hasher/i-hasher-service";
import { IObserver } from "../../../observable/i-observer";
import { ISubscriber } from "../../../observable/i-subscriber";
/**
 * A class that helps with retrieving things that are relevant to the configuration of a Fovea project
 */
export declare class ProjectParserService implements IProjectParserService {
    private readonly configParser;
    private readonly packageJsonParser;
    private readonly projectPathUtil;
    private readonly hasherService;
    constructor(configParser: IConfigParserService, packageJsonParser: IPackageJsonParserService, projectPathUtil: IProjectPathUtil, hasherService: IHasherService);
    /**
     * Retrieves the IFoveaCliConfig for a project as well as its' root
     * @param {IProjectParserServiceOptions} options
     * @param {ISubscriber<IProject>} subscriber
     * @returns {IObserver}
     */
    parse({ config, watch }: IProjectParserServiceOptions, subscriber: ISubscriber<IProject>): IObserver;
    /**
     * Called each time something within the project is updated
     * @param {string} root
     * @param {string} hash
     * @param {IFoveaCliConfig | null} foveaCliConfig
     * @param {IPackageJson | null} packageJson
     * @param {ISubscriber<IProject>} subscriber
     */
    private onProjectUpdated;
}
