import { PromptModule } from '@ionic/cli-framework-prompts'; import { BaseBuildOptions, BuildOptions, CommandLineInputs, CommandLineOptions, CommandMetadata, CommandMetadataOption, IConfig, ILogger, IProject, IShell, NpmClient, Runner } from '../definitions'; export declare const BUILD_SCRIPT = "ionic:build"; export declare const COMMON_BUILD_COMMAND_OPTIONS: readonly CommandMetadataOption[]; export interface BuildRunnerDeps { readonly config: IConfig; readonly log: ILogger; readonly project: IProject; readonly prompt: PromptModule; readonly shell: IShell; } export declare abstract class BuildRunner> implements Runner { protected abstract readonly e: BuildRunnerDeps; abstract getCommandMetadata(): Promise>; abstract createOptionsFromCommandLine(inputs: CommandLineInputs, options: CommandLineOptions): T; abstract buildProject(options: T): Promise; getPkgManagerBuildCLI(): PkgManagerBuildCLI; createBaseOptionsFromCommandLine(inputs: CommandLineInputs, options: CommandLineOptions): BaseBuildOptions; determineEngineFromCommandLine(options: CommandLineOptions): string; beforeBuild(options: T): Promise; run(options: T): Promise; afterBuild(options: T): Promise; } export declare abstract class BuildCLI { protected readonly e: BuildRunnerDeps; /** * The pretty name of this Build CLI. */ abstract readonly name: string; /** * The npm package of this Build CLI. */ abstract readonly pkg: string; /** * The bin program to use for this Build CLI. */ abstract readonly program: string; /** * If specified, `package.json` is inspected for this script to use instead * of `program`. */ abstract readonly script?: string; /** * If true, the Build CLI will not prompt to be installed. */ readonly global: boolean; private _resolvedProgram?; constructor(e: BuildRunnerDeps); readonly resolvedProgram: string; /** * Build the arguments for starting this Build CLI. Called by `this.run()`. */ protected abstract buildArgs(options: T): Promise; resolveScript(): Promise; build(options: T): Promise; protected runWrapper(options: T): Promise; protected run(options: T): Promise; protected resolveProgram(): Promise; protected promptToInstall(): Promise; } declare abstract class PkgManagerBuildCLI extends BuildCLI { readonly abstract program: NpmClient; readonly global = true; readonly script = "ionic:build"; protected resolveProgram(): Promise; protected buildArgs(options: BaseBuildOptions): Promise; } export declare class NpmBuildCLI extends PkgManagerBuildCLI { readonly name = "npm CLI"; readonly pkg = "npm"; readonly program = "npm"; } export declare class YarnBuildCLI extends PkgManagerBuildCLI { readonly name = "Yarn"; readonly pkg = "yarn"; readonly program = "yarn"; } export {};