/// <reference types="node" />
import type { FileLockManager } from '@php-wasm/node';
import { EmscriptenDownloadMonitor } from '@php-wasm/progress';
import type { RemoteAPI, SupportedPHPVersion } from '@php-wasm/universal';
import { PHPWorker } from '@php-wasm/universal';
import { type MessagePort } from 'worker_threads';
export interface Mount {
    hostPath: string;
    vfsPath: string;
}
export type WorkerBootOptions = {
    wpVersion?: string;
    phpVersion?: SupportedPHPVersion;
    absoluteUrl: string;
    mountsBeforeWpInstall: Array<Mount>;
    mountsAfterWpInstall: Array<Mount>;
    wordPressZip?: ArrayBuffer;
    sqliteIntegrationPluginZip?: ArrayBuffer;
    firstProcessId: number;
    processIdSpaceLength: number;
    dataSqlPath?: string;
    followSymlinks: boolean;
    trace: boolean;
    /**
     * When true, Playground will not send cookies to the client but will manage
     * them internally. This can be useful in environments that can't store cookies,
     * e.g. VS Code WebView.
     *
     * Default: false.
     */
    internalCookieStore?: boolean;
    withXdebug?: boolean;
};
export declare class PlaygroundCliBlueprintV1Worker extends PHPWorker {
    booted: boolean;
    fileLockManager: RemoteAPI<FileLockManager> | FileLockManager | undefined;
    constructor(monitor: EmscriptenDownloadMonitor);
    /**
     * Call this method before boot() to use file locking.
     *
     * This method is separate from boot() to simplify the related Comlink.transferHandlers
     * setup – if an argument is a MessagePort, we're transferring it, not copying it.
     *
     * @see comlink-sync.ts
     * @see phpwasm-emscripten-library-file-locking-for-node.js
     */
    useFileLockManager(port: MessagePort): Promise<void>;
    bootAsPrimaryWorker({ absoluteUrl, mountsBeforeWpInstall, mountsAfterWpInstall, phpVersion, wordPressZip, sqliteIntegrationPluginZip, firstProcessId, processIdSpaceLength, dataSqlPath, followSymlinks, trace, internalCookieStore, withXdebug, }: WorkerBootOptions): Promise<void>;
    bootAsSecondaryWorker(args: WorkerBootOptions): Promise<void>;
    dispose(): Promise<void>;
}
