/// import { LoadedWorkspace } from '@shopify/loom/config-load'; import { AnyPlugin, WorkspaceTasks, ProjectTasks, Step, Log, Package, Service, WebApp } from '@shopify/loom'; import { Ui } from './ui'; export interface TaskContext extends LoadedWorkspace { readonly ui: Ui; readonly steps: StepTracker; } interface StepInclusionOptions { readonly skipSteps?: ReadonlyArray; readonly skipPreSteps?: ReadonlyArray; readonly skipPostSteps?: ReadonlyArray; readonly isolateSteps?: ReadonlyArray; readonly isolatePreSteps?: ReadonlyArray; readonly isolatePostSteps?: ReadonlyArray; } export interface GlobalCliArguments { root?: string; 'log-level'?: string; interactive?: boolean; 'skip-step'?: ReadonlyArray; 'skip-pre-step'?: ReadonlyArray; 'skip-post-step'?: ReadonlyArray; 'isolate-step'?: ReadonlyArray; 'isolate-pre-step'?: ReadonlyArray; 'isolate-post-step'?: ReadonlyArray; __internal?: { stdin?: NodeJS.ReadStream; stdout?: NodeJS.WriteStream; stderr?: NodeJS.WriteStream; }; } export declare function createCommand(argv: GlobalCliArguments & TPerCommandCliArguments, run: (context: TaskContext, flags: TPerCommandCliArguments) => Promise): Promise; export declare function createWorkspaceTasksAndApplyPlugins(context: TaskContext): Promise; export declare function createProjectTasksAndApplyPlugins(project: TType, context: TaskContext): Promise>; export declare function createStep(options: Omit, run: Step['run']): Step; export declare function logError(error: any, log: Log): void; declare class StepTracker { readonly inclusion: StepInclusionOptions; private sources; private parents; constructor(inclusion: StepInclusionOptions); setSource(step: Step, plugin: AnyPlugin): void; getSource(step: Step): AnyPlugin | undefined; setStepParent(step: Step, parent: Step): void; getStepAncestors(step: Step): ReadonlyArray; } export {}; //# sourceMappingURL=common.d.ts.map