import { type ChildProcess } from 'child_process'; import type { Logger } from '../logger.js'; import type { StateManager } from '../state.js'; import type { BuildProgress, BuildStatus, Target } from '../types.js'; export declare const parseVitestProgressLine: (line: string) => BuildProgress | null; export interface BuildOptions { captureLogs?: boolean; logFile?: string; force?: boolean; onLock?: () => void; } export declare abstract class BaseBuilder { protected target: T; protected projectRoot: string; protected logger: Logger; protected stateManager: StateManager; protected currentProcess?: ChildProcess; constructor(target: T, projectRoot: string, logger: Logger, stateManager: StateManager); getProjectRoot(): string; build(changedFiles: string[], options?: BuildOptions): Promise; protected getExecutionCommand(): string; protected executeBuild(options?: BuildOptions): Promise; protected getGitHash(): string; protected getBuilderName(): string; /** * Expose builder name for logging/telemetry without widening protected access. */ describeBuilder(): string; private formatChangedFiles; stop(): void; protected preBuild(_changedFiles: string[]): Promise; protected postBuild(): Promise; abstract validate(): Promise; abstract getOutputInfo(): string | undefined; } //# sourceMappingURL=base-builder.d.ts.map