import { IPackageJsonParserService } from "./i-package-json-parser-service";
import { IPackageJsonParserServiceOptions } from "./i-package-json-parser-service-options";
import { IFileLoader } from "@wessberg/fileloader";
import { IPackageJson } from "../../../package-json/i-package-json";
import { NormalizeFunction } from "../../../normalize/normalize-function";
import { IBuildConfig } from "../../../build-config/i-build-config";
import { PackageJsonUserOptions } from "../../../package-json/package-json-user-options";
import { IPackageJsonNormalizeFunctionConfig } from "../../../package-json/i-package-json-normalize-function-config";
import { IWatchService } from "../../watch/i-watch-service";
import { IObserver } from "../../../observable/i-observer";
import { ISubscriber } from "../../../observable/i-subscriber";
/**
 * A class that helps with parsing a package.json file
 */
export declare class PackageJsonParserService implements IPackageJsonParserService {
    private readonly fileLoader;
    private readonly config;
    private readonly watchService;
    private readonly normalizeFunction;
    constructor(fileLoader: IFileLoader, config: IBuildConfig, watchService: IWatchService, normalizeFunction: NormalizeFunction<IPackageJson, PackageJsonUserOptions, IPackageJsonNormalizeFunctionConfig>);
    /**
     * Parses the config matched by the given options and returns an IFoveaCliConfig
     * @param {IPackageJsonParserServiceOptions} options
     * @param {ISubscriber<IPackageJson>} subscriber
     * @returns {IObserver}
     */
    parse({ path, watch }: IPackageJsonParserServiceOptions, subscriber: ISubscriber<IPackageJson>): IObserver;
}
