/// <reference types="node" />
/// <reference types="node" />
import type { RemoteAPI } from '@php-wasm/universal';
import type { PlaygroundCliBlueprintV2Worker } from './worker-thread-v2';
import type { MessagePort as NodeMessagePort } from 'worker_threads';
import type { RunCLIArgs, SpawnedWorker } from '../run-cli';
/**
 * Boots Playground CLI workers using Blueprint version 2.
 *
 * Progress tracking, downloads, steps, and all other features are
 * implemented in PHP and orchestrated by the worker thread.
 */
export declare class BlueprintsV2Handler {
    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<RemoteAPI<PlaygroundCliBlueprintV2Worker>>;
    bootSecondaryWorker({ worker, fileLockManagerPort, firstProcessId, }: {
        worker: SpawnedWorker;
        fileLockManagerPort: NodeMessagePort;
        firstProcessId: number;
    }): Promise<RemoteAPI<PlaygroundCliBlueprintV2Worker>>;
    writeProgressUpdate(writeStream: NodeJS.WriteStream, message: string, finalUpdate: boolean): void;
}
