export abstract class Builder { abstract name: string; abstract setup(): Promise; abstract build(): Promise; abstract stop(): Promise; abstract serialize(): Record; abstract load(data: any): void; abstract warm(): Promise | void; #error: Error | null = null; reportError(e: unknown) { let error = e instanceof Error ? e : new Error("Unknown error"); this.#error = error; } clearError() { this.#error = null; } get error() { return this.#error; } }