import Config = require("webpack-chain");
import { BasePkgFields, CommandList, ParsedArgs, builtinServiceCommandName, WebpackConfiguration, CommandPlugin, ConfigPlugin, WebpackConfigQueue, WebpackConfigName, CliArgs } from "../definitions";
import { MockConfig } from "../main";
declare class Service {
    private readonly _context;
    readonly pkg: BasePkgFields;
    readonly webpackConfigQueue: WebpackConfigQueue;
    readonly _commands: Partial<CommandList>;
    private projectConfig;
    configPlugins: ConfigPlugin[];
    commandPlugins: CommandPlugin<CliArgs>[];
    mode: string;
    mockConfig: MockConfig | undefined;
    private readonly rootOptions;
    private readonly PROJECT_CONFIG_FILE_NAME;
    private readonly PROJECT_MOCK_CONFIG_FILE_NAME;
    constructor(context: string);
    private init;
    run(name?: builtinServiceCommandName, args?: ParsedArgs, rawArgv?: string[]): Promise<void>;
    private resolveCommandPlugins;
    private resolveConfigPlugins;
    resolveChainableWebpackConfig(name: WebpackConfigName): Config | undefined;
    resolveWebpackConfig(name: WebpackConfigName): WebpackConfiguration | undefined;
    addWebpackConfigQueueItem(name: WebpackConfigName): void;
    get context(): string;
    get commands(): Partial<Record<builtinServiceCommandName, {
        commandCallback: import("../definitions").CommandCallback;
        opts: Record<string, unknown> | import("../definitions").CommandCallback;
    }>>;
}
export { Service };
