import { WorkspaceLike } from '../workspace'; export interface PhpAstNode { readonly nodeType: string; } /** * Represents a PHP program as an array of abstract syntax tree nodes. * * @category AST Builders */ export type PhpProgram = ReadonlyArray; export interface PhpPrettyPrintResult { readonly code: string; readonly ast?: PhpProgram; } export interface PhpPrettyPrintPayload { readonly filePath: string; readonly program: PhpProgram; } export interface PhpPrettyPrinter { prettyPrint: (payload: PhpPrettyPrintPayload) => Promise; } /** * Options for creating a PHP pretty printer. * * @category AST Builders * @public */ export interface CreatePhpPrettyPrinterOptions { readonly workspace: WorkspaceLike; readonly phpBinary?: string; readonly scriptPath?: string; readonly importMetaUrl?: string; readonly autoloadPaths?: readonly string[]; } export declare function resolvePrettyPrintScriptPath(options?: { readonly importMetaUrl?: string; }): string; export declare function buildPhpPrettyPrinter(options: CreatePhpPrettyPrinterOptions): PhpPrettyPrinter;