import { type StreamedPHPResponse, type UniversalPHP } from '@php-wasm/universal';
import type { BlueprintDeclaration } from '@wp-playground/blueprints';
export type PHPExceptionDetails = {
    exception: string;
    message: string;
    file: string;
    line: number;
    trace: string;
};
export type BlueprintMessage = {
    type: 'blueprint.target_resolved';
} | {
    type: 'blueprint.progress';
    progress: number;
    caption: string;
} | {
    type: 'blueprint.error';
    message: string;
    details?: PHPExceptionDetails;
} | {
    type: 'blueprint.completion';
    message: string;
};
interface RunV2Options {
    php: UniversalPHP;
    cliArgs?: string[];
    blueprint: BlueprintV2Declaration | ParsedBlueprintV2Declaration;
    blueprintOverrides?: {
        wordpressVersion?: string;
        additionalSteps?: any[];
    };
    onMessage?: (message: BlueprintMessage) => void | Promise<void>;
}
export type BlueprintV2Declaration = string | BlueprintDeclaration | undefined;
export type ParsedBlueprintV2Declaration = {
    type: 'inline-file';
    contents: string;
} | {
    type: 'file-reference';
    reference: string;
};
export declare function parseBlueprintDeclaration(source: BlueprintV2Declaration | ParsedBlueprintV2Declaration): ParsedBlueprintV2Declaration;
export declare function getV2Runner(): Promise<File>;
export declare function runBlueprintV2(options: RunV2Options): Promise<StreamedPHPResponse>;
export {};
