/// <reference types="node" />
/// <reference types="node" />
import type { PlaygroundCliBlueprintV1Worker } from './worker-thread-v1';
import type { MessagePort as NodeMessagePort } from 'worker_threads';
import { type RunCLIArgs, type SpawnedWorker } from '../run-cli';
/**
 * Boots Playground CLI workers using Blueprint version 1.
 *
 * Progress tracking, downloads, steps, and all other features are
 * implemented in TypeScript and orchestrated by this class.
 */
export declare class BlueprintsV1Handler {
    private phpVersion;
    private lastProgressMessage;
    private siteUrl;
    private processIdSpaceLength;
    private args;
    constructor(args: RunCLIArgs, options: {
        siteUrl: string;
        processIdSpaceLength: number;
    });
    getWorkerUrl(): any;
    bootPrimaryWorker(phpPort: NodeMessagePort, fileLockManagerPort: NodeMessagePort): Promise<import("@php-wasm/universal").RemoteAPI<PlaygroundCliBlueprintV1Worker>>;
    bootSecondaryWorker({ worker, fileLockManagerPort, firstProcessId, }: {
        worker: SpawnedWorker;
        fileLockManagerPort: NodeMessagePort;
        firstProcessId: number;
    }): Promise<import("@php-wasm/universal").RemoteAPI<PlaygroundCliBlueprintV1Worker>>;
    compileInputBlueprint(additionalBlueprintSteps: any[]): Promise<import("@wp-playground/blueprints").CompiledBlueprint>;
    writeProgressUpdate(writeStream: NodeJS.WriteStream, message: string, finalUpdate: boolean): void;
}
